From 0d9974a6f42989d9db3d26744d9f1a4e7323b813 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Wed, 26 Sep 2018 11:31:50 +0300 Subject: [PATCH 001/249] sprint 0 initial commit --- package.json | 1 + yarn.lock | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/package.json b/package.json index dd14187..b477cd3 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,7 @@ "private": true, "dependencies": { "@material-ui/core": "^3.1.1", + "@material-ui/icons": "^3.0.1", "ag-grid-community": "^19.0.0", "ag-grid-react": "^19.0.0", "prop-types": "^15.6.2", diff --git a/yarn.lock b/yarn.lock index d292c3e..9ece536 100644 --- a/yarn.lock +++ b/yarn.lock @@ -40,6 +40,13 @@ recompose "0.28.0 - 0.30.0" warning "^4.0.1" +"@material-ui/icons@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@material-ui/icons/-/icons-3.0.1.tgz#671fb3d04dcaf9351dbbd2bf82ae2ae72e3d93cd" + dependencies: + "@babel/runtime" "7.0.0" + recompose "^0.29.0" + "@types/jss@^9.5.3": version "9.5.6" resolved "https://registry.yarnpkg.com/@types/jss/-/jss-9.5.6.tgz#96e1d246ddfbccc4867494077c714773cf29acde" @@ -5975,6 +5982,17 @@ readdirp@^2.0.0: react-lifecycles-compat "^3.0.2" symbol-observable "^1.0.4" +recompose@^0.29.0: + version "0.29.0" + resolved "https://registry.yarnpkg.com/recompose/-/recompose-0.29.0.tgz#f1a4e20d5f24d6ef1440f83924e821de0b1bccef" + dependencies: + "@babel/runtime" "^7.0.0" + change-emitter "^0.1.2" + fbjs "^0.8.1" + hoist-non-react-statics "^2.3.1" + react-lifecycles-compat "^3.0.2" + symbol-observable "^1.0.4" + recursive-readdir@2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.1.tgz#90ef231d0778c5ce093c9a48d74e5c5422d13a99" -- GitLab From 9c9e412d5ec55119bf047db5e985646424920e80 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Wed, 26 Sep 2018 12:08:43 +0300 Subject: [PATCH 002/249] Add HOC --- src/hoc/async-component/async-component.js | 32 +++++++++++++ src/hoc/auxe/auxe.js | 3 ++ .../with-error-handler/with-error-handler.js | 47 +++++++++++++++++++ 3 files changed, 82 insertions(+) create mode 100644 src/hoc/async-component/async-component.js create mode 100644 src/hoc/auxe/auxe.js create mode 100644 src/hoc/with-error-handler/with-error-handler.js diff --git a/src/hoc/async-component/async-component.js b/src/hoc/async-component/async-component.js new file mode 100644 index 0000000..d1623c9 --- /dev/null +++ b/src/hoc/async-component/async-component.js @@ -0,0 +1,32 @@ +import React, { Component } from 'react'; + +const asyncComponent = (importComponent) => { + + return class extends Component { + + state = { + component: null + } + + componentDidMount() { + + console.log('[LAZY LOADING] :: componentDidMount()'); + + importComponent() + + .then(cmp => { + this.setState({ + component: cmp.default + }); + }); + } + + render() { + const C = this.state.component; + + return C ? : null; + } + } +} + +export default asyncComponent; \ No newline at end of file diff --git a/src/hoc/auxe/auxe.js b/src/hoc/auxe/auxe.js new file mode 100644 index 0000000..183d508 --- /dev/null +++ b/src/hoc/auxe/auxe.js @@ -0,0 +1,3 @@ +const Aux = props => props.children; + +export default Aux; diff --git a/src/hoc/with-error-handler/with-error-handler.js b/src/hoc/with-error-handler/with-error-handler.js new file mode 100644 index 0000000..5e67199 --- /dev/null +++ b/src/hoc/with-error-handler/with-error-handler.js @@ -0,0 +1,47 @@ +import React, { Component } from "react"; +import Aux from "../auxe/auxe"; + +const withErrorHandler = (WrappedComponent, axios) => { + + return class extends Component { + + state = { + error: null + } + + componentWillMount() { + // add axios listener here for clearing any errors TO DO.. + + + // add axios listener here for errors + + }; + + componentWillUnmount() { + // console.log("Will Unmount", this.reqInterceptor, this.resInterceptor); TO DO.. + + } + + errorConfirmedHandler = () => { + this.setState({ + error: null + }); + } + + render() { + const { error } = this.state; + console.log("with erorr handler module: ", error); + + return ( + +

+ {error ? error.message : null} +

+ +
+ ); + } + } +} + +export default withErrorHandler; \ No newline at end of file -- GitLab From 39f9ee159e44270edbdbea2ece7d7b79b34c0b3d Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Wed, 26 Sep 2018 12:33:29 +0300 Subject: [PATCH 003/249] initial routing setup --- src/App.js | 32 +++++++++++++++++++++---- src/components/dashboard_users/index.js | 13 ++++++++++ src/components/intro/index.js | 13 ++++++++++ src/components/page_not_found/index.js | 11 +++++++++ src/components/sidebar/index.js | 13 ++++++++++ src/routing/index.js | 16 +++++++++++++ 6 files changed, 94 insertions(+), 4 deletions(-) create mode 100644 src/components/dashboard_users/index.js create mode 100644 src/components/intro/index.js create mode 100644 src/components/page_not_found/index.js create mode 100644 src/components/sidebar/index.js create mode 100644 src/routing/index.js diff --git a/src/App.js b/src/App.js index 7032d2f..b2f46a6 100644 --- a/src/App.js +++ b/src/App.js @@ -1,11 +1,35 @@ -import React, { Component } from 'react'; +import React, { Component, Fragment } from 'react'; +import { BrowserRouter as Router, Route, Switch } from 'react-router-dom'; + +import { routesArray } from './routing'; +import PageNotFound from './components/page_not_found'; +import Sidebar from './components/sidebar'; class App extends Component { render() { return ( -
-

Hello World

-
+ + + + + + + { + routesArray.map((item, index) => { + return + }) + } + + } /> + + + + ); } } diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js new file mode 100644 index 0000000..58bcb78 --- /dev/null +++ b/src/components/dashboard_users/index.js @@ -0,0 +1,13 @@ +import React, { Component, Fragment } from 'react'; + +class DashboardUsers extends Component { + render() { + return ( + +

the user dasboard lives here

+
+ ) + } +} + +export default DashboardUsers \ No newline at end of file diff --git a/src/components/intro/index.js b/src/components/intro/index.js new file mode 100644 index 0000000..7f10241 --- /dev/null +++ b/src/components/intro/index.js @@ -0,0 +1,13 @@ +import React, { Component, Fragment } from 'react'; + +class Intro extends Component { + render() { + return ( + +

Intro lives here

+
+ ) + } +} + +export default Intro; \ No newline at end of file diff --git a/src/components/page_not_found/index.js b/src/components/page_not_found/index.js new file mode 100644 index 0000000..c8bd9c0 --- /dev/null +++ b/src/components/page_not_found/index.js @@ -0,0 +1,11 @@ +import React, { Component, Fragment } from 'react'; + +export default class PageNotFound extends Component { + render() { + return ( + +

404 Page not Found

+
+ ) + } +} \ No newline at end of file diff --git a/src/components/sidebar/index.js b/src/components/sidebar/index.js new file mode 100644 index 0000000..41d0755 --- /dev/null +++ b/src/components/sidebar/index.js @@ -0,0 +1,13 @@ +import React, { Component, Fragment } from 'react'; + +class Sidebar extends Component { + render(){ + return ( + + Sidebar lives here + + ) + } +} + +export default Sidebar; \ No newline at end of file diff --git a/src/routing/index.js b/src/routing/index.js new file mode 100644 index 0000000..5a48a1e --- /dev/null +++ b/src/routing/index.js @@ -0,0 +1,16 @@ +import React from 'react'; + +import Intro from './../components/intro'; +import Dashboard from './../components/dashboard_users'; + +export const routesArray = [ + { + 'exact': true, + 'path': '/', + 'mainComponent': (props) => + }, + { + 'path': '/user-dashboard', + 'mainComponent': (props) => + } +] \ No newline at end of file -- GitLab From ae0d30e79bc2dff7d2c67f46669a83454a0f8773 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Wed, 26 Sep 2018 13:32:36 +0300 Subject: [PATCH 004/249] routing connected with hoc async --- src/App.js | 39 ++++++++++++---------- src/hoc/async-component/async-component.js | 2 -- src/routing/index.js | 10 +++--- 3 files changed, 28 insertions(+), 23 deletions(-) diff --git a/src/App.js b/src/App.js index b2f46a6..6658cbf 100644 --- a/src/App.js +++ b/src/App.js @@ -1,5 +1,6 @@ -import React, { Component, Fragment } from 'react'; +import React, { Component } from 'react'; import { BrowserRouter as Router, Route, Switch } from 'react-router-dom'; +import Grid from '@material-ui/core/Grid'; import { routesArray } from './routing'; import PageNotFound from './components/page_not_found'; @@ -9,26 +10,30 @@ class App extends Component { render() { return ( - + - + + + - - { - routesArray.map((item, index) => { - return - }) - } + + + { + routesArray.map((item, index) => { + return + }) + } - } /> - + } /> + + - + ); } diff --git a/src/hoc/async-component/async-component.js b/src/hoc/async-component/async-component.js index d1623c9..23e1385 100644 --- a/src/hoc/async-component/async-component.js +++ b/src/hoc/async-component/async-component.js @@ -10,8 +10,6 @@ const asyncComponent = (importComponent) => { componentDidMount() { - console.log('[LAZY LOADING] :: componentDidMount()'); - importComponent() .then(cmp => { diff --git a/src/routing/index.js b/src/routing/index.js index 5a48a1e..c3a0f08 100644 --- a/src/routing/index.js +++ b/src/routing/index.js @@ -1,16 +1,18 @@ import React from 'react'; -import Intro from './../components/intro'; -import Dashboard from './../components/dashboard_users'; +import asyncComponent from './../hoc/async-component/async-component'; + +const AsyncIntro = asyncComponent(() => import ('./../components/intro')); +const AsyncDasboard = asyncComponent(() => import ('./../components/dashboard_users')); export const routesArray = [ { 'exact': true, 'path': '/', - 'mainComponent': (props) => + 'mainComponent': (props) => }, { 'path': '/user-dashboard', - 'mainComponent': (props) => + 'mainComponent': (props) => } ] \ No newline at end of file -- GitLab From 32e7a07253d6a654d461c8844adcc0dac86c1029 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Wed, 26 Sep 2018 15:02:59 +0300 Subject: [PATCH 005/249] sidebar initial setup --- src/App.js | 4 +-- src/components/shared/side_nav/index.js | 35 +++++++++++++++++++++++++ src/components/sidebar/index.js | 8 ++++-- 3 files changed, 43 insertions(+), 4 deletions(-) create mode 100644 src/components/shared/side_nav/index.js diff --git a/src/App.js b/src/App.js index 6658cbf..efc88c1 100644 --- a/src/App.js +++ b/src/App.js @@ -12,11 +12,11 @@ class App extends Component { - + - + { routesArray.map((item, index) => { diff --git a/src/components/shared/side_nav/index.js b/src/components/shared/side_nav/index.js new file mode 100644 index 0000000..b935744 --- /dev/null +++ b/src/components/shared/side_nav/index.js @@ -0,0 +1,35 @@ +import React, { Fragment } from 'react'; +import { NavLink } from 'react-router-dom'; + +import MenuList from '@material-ui/core/MenuList'; +import MenuItem from '@material-ui/core/MenuItem'; +import ListItemIcon from '@material-ui/core/ListItemIcon'; +import ListItemText from '@material-ui/core/ListItemText'; +import InboxIcon from '@material-ui/icons/MoveToInbox'; +import DraftsIcon from '@material-ui/icons/Drafts'; +import SendIcon from '@material-ui/icons/Send'; + +export const SideNav = () => { + return ( + + + + + + + + + + + + + + + + + + + + + ) +} \ No newline at end of file diff --git a/src/components/sidebar/index.js b/src/components/sidebar/index.js index 41d0755..40522b0 100644 --- a/src/components/sidebar/index.js +++ b/src/components/sidebar/index.js @@ -1,11 +1,15 @@ import React, { Component, Fragment } from 'react'; +import Paper from '@material-ui/core/Paper'; + +import { SideNav } from './../shared/side_nav' class Sidebar extends Component { render(){ return ( - + Sidebar lives here - + + ) } } -- GitLab From 19471fc366a9264ba2784e1fa1df6d3e1cd2ab29 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Wed, 26 Sep 2018 16:14:07 +0300 Subject: [PATCH 006/249] implement dashboard prototype --- .../dashboard_users/css/ag-grid.css | 1802 ++++++++++++++++ .../dashboard_users/css/ag-theme-material.css | 1878 +++++++++++++++++ src/components/dashboard_users/index.js | 47 +- src/hoc/update-object/update-object.js | 8 + src/routing/index.js | 8 +- 5 files changed, 3733 insertions(+), 10 deletions(-) create mode 100644 src/components/dashboard_users/css/ag-grid.css create mode 100644 src/components/dashboard_users/css/ag-theme-material.css create mode 100644 src/hoc/update-object/update-object.js diff --git a/src/components/dashboard_users/css/ag-grid.css b/src/components/dashboard_users/css/ag-grid.css new file mode 100644 index 0000000..92ee5f9 --- /dev/null +++ b/src/components/dashboard_users/css/ag-grid.css @@ -0,0 +1,1802 @@ +ag-grid, ag-grid-angular, ag-grid-ng2, ag-grid-polymer, ag-grid-aurelia { + display: block; } + +.ag-rtl { + direction: rtl; } + +.ag-ltr { + direction: ltr; } + +.ag-select-agg-func-popup { + position: absolute; } + +.ag-body-no-select { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.ag-root-wrapper { + position: relative; + display: flex; + flex-direction: column; } + .ag-root-wrapper.ag-layout-normal { + height: 100%; } + +.ag-root-wrapper-body { + display: flex; + flex-direction: row; } + .ag-root-wrapper-body.ag-layout-normal { + flex-grow: 1; + height: 0px; + min-height: 0px; } + +.ag-root { + box-sizing: border-box; + position: relative; + display: flex; + flex-direction: column; } + .ag-root.ag-layout-normal, .ag-root.ag-layout-auto-height { + overflow: hidden; + width: 0px; + min-width: 0px; + flex: 1; } + .ag-root.ag-layout-normal { + height: 100%; } + +.ag-font-style { + cursor: default; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.ag-popup-backdrop { + height: 100%; + left: 0; + position: fixed; + top: 0; + width: 100%; } + +.ag-header { + box-sizing: border-box; + white-space: nowrap; + width: 100%; + display: flex; } + +.ag-pinned-left-header { + box-sizing: border-box; + display: inline-block; + height: 100%; + overflow: hidden; } + +.ag-pinned-right-header { + box-sizing: border-box; + display: inline-block; + height: 100%; + overflow: hidden; } + +.ag-header-viewport { + box-sizing: border-box; + height: 100%; + overflow: hidden; + width: 0px; + min-width: 0px; + flex: 1; } + +.ag-header-row { + position: absolute; } + +.ag-header-container { + box-sizing: border-box; + height: 100%; + position: relative; + white-space: nowrap; } + +.ag-header-overlay { + display: block; + position: absolute; } + +.ag-header-cell { + box-sizing: border-box; + display: inline-block; + height: 100%; + position: absolute; + vertical-align: bottom; } + +.ag-floating-filter { + box-sizing: border-box; + display: inline-block; + position: absolute; } + +.ag-floating-filter-body { + height: 20px; + margin-right: 25px; } + +.ag-floating-filter-full-body { + height: 20px; + width: 100%; } + +.ag-floating-filter-input { + width: 100%; } + +.ag-floating-filter-input:-moz-read-only { + background-color: #eee; } + +.ag-floating-filter-input:read-only { + background-color: #eee; } + +.ag-floating-filter-menu { + position: absolute; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.ag-dnd-ghost { + background: #e5e5e5; + border: 1px solid black; + box-sizing: border-box; + cursor: move; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 1.4; + overflow: hidden; + padding: 3px; + position: absolute; + text-overflow: ellipsis; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.ag-dnd-ghost-icon { + display: inline-block; + float: left; + padding: 2px; } + +.ag-dnd-ghost-label { + display: inline-block; } + +.ag-header-group-cell { + box-sizing: border-box; + display: inline-block; + height: 100%; + overflow: hidden; + position: absolute; + text-overflow: ellipsis; } + +.ag-header-group-cell-label { + overflow: hidden; + text-overflow: ellipsis; + display: flex; } + +.ag-header-cell-label { + overflow: hidden; + text-overflow: ellipsis; } + +.ag-header-cell-resize { + position: absolute; + z-index: 4; + cursor: col-resize; + height: 100%; + width: 4px; } + +.ag-ltr .ag-header-cell-resize { + right: -4px; } + +.ag-ltr .ag-pinned-right-header .ag-header-cell-resize { + left: -4px; } + +.ag-rtl .ag-header-cell-resize { + left: -4px; } + +.ag-rtl .ag-pinned-left-header .ag-header-cell-resize { + right: -4px; } + +.ag-ltr .ag-header-select-all { + float: left; } + +.ag-rtl .ag-header-select-all { + float: right; } + +.ag-header-expand-icon { + padding-left: 4px; } + +.ag-header-cell-menu-button { + float: right; } + +.ag-overlay { + height: 100%; + left: 0; + pointer-events: none; + position: absolute; + top: 0; + width: 100%; } + +.ag-overlay-panel { + display: table; + height: 100%; + pointer-events: none; + width: 100%; } + +.ag-overlay-wrapper { + display: table-cell; + text-align: center; + vertical-align: middle; } + +.ag-primary-cols-header-panel .ag-column-name-filter { + flex-grow: 1; + flex-shrink: 1; } + +.ag-primary-cols-header-panel .ag-primary-cols-filter-wrapper { + width: 100%; } + +.ag-tool-panel-wrapper { + display: flex; + overflow-y: auto; } + +.ag-column-panel { + display: flex; + min-height: 400px; + flex-direction: column; + flex-grow: 1; + overflow-x: hidden; + max-height: 100vh; } + +.ag-body-container.ag-layout-auto-height { + min-height: 50px; } + +.ag-overlay-no-rows-wrapper.ag-layout-auto-height { + padding-top: 30px; } + +.ag-body { + box-sizing: border-box; + position: relative; + display: flex; } + .ag-body.ag-layout-normal { + flex: 1; + height: 0px; + min-height: 0px; } + +.ag-rtl .ag-body { + flex-direction: row-reverse; } + +.ag-ltr .ag-body { + flex-direction: row; } + +.ag-rtl .ag-floating-top { + flex-direction: row-reverse; } + +.ag-ltr .ag-floating-top { + flex-direction: row; } + +.ag-ltr .ag-header { + flex-direction: row; } + +.ag-rtl .ag-header { + flex-direction: row-reverse; } + +.ag-floating-top { + box-sizing: border-box; + overflow: hidden; + white-space: nowrap; + width: 100%; + position: relative; + display: flex; } + +.ag-pinned-left-floating-top { + box-sizing: border-box; + display: inline-block; + overflow: hidden; + position: relative; } + +.ag-pinned-right-floating-top { + box-sizing: border-box; + display: inline-block; + overflow: hidden; + position: relative; } + +.ag-floating-top-viewport { + box-sizing: border-box; + overflow: hidden; + width: 0px; + min-width: 0px; + flex: 1; } + .ag-floating-top-viewport.ag-layout-normal { + height: 100%; } + +.ag-floating-top-container { + box-sizing: border-box; + position: relative; + white-space: nowrap; } + +.ag-floating-bottom { + box-sizing: border-box; + overflow: hidden; + white-space: nowrap; + width: 100%; + position: relative; + display: flex; } + +.ag-pinned-left-floating-bottom { + box-sizing: border-box; + display: inline-block; + overflow: hidden; + position: relative; } + +.ag-pinned-right-floating-bottom { + box-sizing: border-box; + display: inline-block; + overflow: hidden; + position: relative; } + +.ag-floating-bottom-viewport { + box-sizing: border-box; + overflow: hidden; + flex: 1; + width: 0px; + min-width: 0px; } + +.ag-floating-bottom-container { + box-sizing: border-box; + position: relative; + white-space: nowrap; } + +.ag-pinned-left-cols-container { + display: block; + position: relative; } + +.ag-pinned-right-cols-viewport { + height: 100%; + overflow-x: hidden; + overflow-y: auto; } + +.ag-pinned-left-cols-viewport { + height: 100%; + overflow-x: hidden; + overflow-y: auto; } + +.ag-pinned-right-cols-container { + display: block; + position: relative; } + +.ag-pinned-left-cols-viewport-wrapper { + height: 100%; + overflow: hidden; } + +.ag-body-viewport-wrapper.ag-layout-auto-height, .ag-body-viewport-wrapper.ag-layout-normal { + height: 100%; + width: 0px; + min-width: 0px; + flex: 1; } + +.ag-body-viewport-wrapper.ag-layout-auto-height { + overflow: hidden; } + +.ag-body-viewport.ag-layout-auto-height { + overflow-x: auto; } + +.ag-body-viewport.ag-layout-normal { + overflow-x: auto; + overflow-y: auto; + height: 100%; } + +.ag-full-width-viewport-wrapper { + height: 100%; + width: 100%; + display: inline-block; + pointer-events: none; + overflow: hidden; + position: absolute; + top: 0px; + left: 0px; + box-sizing: border-box; } + +.ag-full-width-viewport { + box-sizing: border-box; + height: 100%; + pointer-events: none; + overflow-x: hidden; + overflow-y: auto; } + +.ag-full-width-container { + overflow: hidden; + position: relative; + width: 100%; } + +.ag-floating-bottom-full-width-container { + display: inline; + left: 0; + overflow: hidden; + pointer-events: none; + position: absolute; + top: 0; } + +.ag-floating-top-full-width-container { + display: inline; + left: 0; + overflow: hidden; + pointer-events: none; + position: absolute; + top: 0; } + +.ag-full-width-row { + overflow: hidden; + pointer-events: all; } + +.ag-body-container { + margin-bottom: -2px; + position: relative; } + .ag-body-container:not(.ag-layout-print) { + display: block; } + +.ag-row-animation .ag-row { + transition: top 0.4s, height 0.4s, background-color 0.1s, opacity 0.2s, -webkit-transform 0.4s; + transition: transform 0.4s, top 0.4s, height 0.4s, background-color 0.1s, opacity 0.2s; + transition: transform 0.4s, top 0.4s, height 0.4s, background-color 0.1s, opacity 0.2s, -webkit-transform 0.4s; } + +.ag-row-no-animation .ag-row { + transition: background-color 0.1s; } + +.ag-row { + box-sizing: border-box; + white-space: nowrap; + width: 100%; } + +.ag-row-position-absolute { + position: absolute; } + +.ag-row-position-relative { + position: relative; } + +.ag-column-moving .ag-cell { + transition: left 0.2s; } + +.ag-column-moving .ag-header-cell { + transition: left 0.2s; } + +.ag-column-moving .ag-header-group-cell { + transition: left 0.2s, width 0.2s; } + +.ag-column-drop { + box-sizing: border-box; + width: 100%; } + +.ag-column-drop-vertical { + display: flex; + flex-direction: column; + flex-grow: 1; + height: 50px; + overflow: hidden; } + .ag-column-drop-vertical .ag-column-drop-list { + flex-grow: 1; + height: 20px; + overflow-x: auto; } + .ag-column-drop-vertical .ag-column-drop-cell { + display: flex; } + .ag-column-drop-vertical .ag-column-drop-cell .ag-column-drop-cell-text { + overflow: hidden; + flex: 1; + text-overflow: ellipsis; + white-space: nowrap; } + .ag-column-drop-vertical .ag-column-drop-empty-message { + display: block; } + .ag-column-drop-vertical .ag-column-drop-cell-button { + line-height: 16px; } + +.ag-ltr .ag-column-drop-vertical .ag-column-drop-cell-button { + float: right; } + +.ag-rtl .ag-column-drop-vertical .ag-column-drop-cell-button { + float: left; } + +.ag-column-drop-horizontal { + white-space: nowrap; + overflow: hidden; } + .ag-column-drop-horizontal .ag-column-drop-cell { + display: inline-block; } + .ag-column-drop-horizontal .ag-column-drop-empty-message { + display: inline-block; } + .ag-column-drop-horizontal .ag-column-drop-list { + height: 100%; } + +.ag-cell { + box-sizing: border-box; + display: inline-block; + overflow: hidden; + position: absolute; + text-overflow: ellipsis; + white-space: nowrap; } + +.ag-cell-with-height { + height: 100%; } + +.ag-value-slide-out { + margin-right: 5px; + opacity: 1; + transition: opacity 3s, margin-right 3s; + transition-timing-function: linear; } + +.ag-value-slide-out-end { + margin-right: 10px; + opacity: 0; } + +.ag-opacity-zero { + opacity: 0; } + +.ag-cell-edit-input { + height: 100%; + width: 100%; } + +.ag-group-cell-entire-row { + box-sizing: border-box; + display: inline-block; + height: 100%; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + width: 100%; } + +.ag-footer-cell-entire-row { + box-sizing: border-box; + display: inline-block; + height: 100%; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + width: 100%; } + +.ag-popup-editor { + position: absolute; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.ag-menu { + max-height: 100%; + overflow-y: auto; + position: absolute; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.ag-menu-column-select-wrapper { + height: 265px; + overflow: auto; + width: 200px; } + +.ag-menu-list { + border-collapse: collapse; + display: table; } + +.ag-menu-option { + display: table-row; } + +.ag-menu-option-text { + display: table-cell; } + +.ag-menu-option-shortcut { + display: table-cell; } + +.ag-menu-option-icon { + display: table-cell; } + +.ag-menu-option-popup-pointer { + display: table-cell; } + +.ag-menu-separator { + display: table-row; } + +.ag-menu-separator-cell { + display: table-cell; } + +.ag-virtual-list-viewport { + height: 100%; + overflow-x: auto; + width: 100%; } + +.ag-virtual-list-container { + overflow: hidden; + position: relative; } + +.ag-rich-select { + cursor: default; + outline: none; } + +.ag-rich-select-row { + white-space: nowrap; } + +.ag-rich-select-list { + height: 200px; + width: 200px; } + +.ag-set-filter-list { + height: 200px; + width: 200px; } + +.ag-set-filter-item { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } + +.ag-virtual-list-item { + position: absolute; + width: 100%; } + .ag-virtual-list-item span:empty:not(.ag-icon) { + border-left: 1px solid transparent; } + +.ag-filter-filter { + box-sizing: border-box; + width: 100%; } + +.ag-floating-filter-body input { + height: 19px; + margin: 0; + width: 100%; } + +.ag-floating-filter-full-body input { + height: 19px; + margin: 0; + width: 100%; } + +.ag-filter-select { + margin: 4px 4px 0 4px; + width: 110px; } + +.ag-list-selection { + cursor: default; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.ag-tool-panel-wrapper { + box-sizing: border-box; + cursor: default; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + width: 200px; } + +.ag-primary-cols-list-panel { + flex-grow: 1; + height: 50px; + overflow: auto; } + +.ag-column-select-indent { + display: inline-block; } + +.ag-ltr .ag-column-tool-panel-column { + margin-left: 16px; } + +.ag-rtl .ag-column-tool-panel-column { + margin-right: 16px; } + +.ag-column-tool-panel-column, +.ag-column-tool-panel-column-group { + align-items: stretch; + display: flex; + flex-direction: row; + flex-wrap: nowrap; + text-overflow: ellipsis; + white-space: nowrap; } + .ag-column-tool-panel-column .ag-column-tool-panel-column, + .ag-column-tool-panel-column .ag-column-tool-panel-column-group, + .ag-column-tool-panel-column-group .ag-column-tool-panel-column, + .ag-column-tool-panel-column-group .ag-column-tool-panel-column-group { + flex-grow: 1; + flex-shrink: 1; + overflow: hidden; + text-overflow: ellipsis; } + .ag-column-tool-panel-column .ag-column-drag, + .ag-column-tool-panel-column-group .ag-column-drag { + min-width: 16px; + flex-grow: 0; + flex-shrink: 0; } + +.ag-column-select-panel { + display: flex; + flex-direction: column; + overflow: hidden; } + +.ag-side-bar .ag-column-select-panel { + flex-grow: 4; } + +.ag-tool-panel-horizontal-resize { + cursor: col-resize; + height: 100%; + position: absolute; + top: 0; + width: 5px; + z-index: 1; } + +.ag-rtl .ag-tool-panel-horizontal-resize { + float: right; + -webkit-transform: translateX(3px); + transform: translateX(3px); } + +.ag-ltr .ag-tool-panel-horizontal-resize { + float: left; + -webkit-transform: translateX(-3px); + transform: translateX(-3px); } + +.ag-menu-column-select-wrapper .ag-column-select-panel { + height: 100%; } + +.ag-hidden { + display: none !important; } + +.ag-visibility-hidden { + visibility: hidden !important; } + +.ag-faded { + opacity: 0.3; } + +.ag-width-half { + display: inline-block; + width: 50%; } + +.ag-shake-left-to-right { + -webkit-animation-direction: alternate; + animation-direction: alternate; + -webkit-animation-duration: 0.2s; + animation-duration: 0.2s; + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; + -webkit-animation-name: ag-shake-left-to-right; + animation-name: ag-shake-left-to-right; } + +@-webkit-keyframes ag-shake-left-to-right { + from { + padding-left: 6px; + padding-right: 2px; } + to { + padding-left: 2px; + padding-right: 6px; } } + +@keyframes ag-shake-left-to-right { + from { + padding-left: 6px; + padding-right: 2px; } + to { + padding-left: 2px; + padding-right: 6px; } } + +/* icons are used outside of the grid root (in the ghost) */ +.ag-icon-aggregation { + display: inline-block; + background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkuNSAyLjVoLTZsMiAzLjUtMiAzLjVoNiIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2U9IiMwMDAiIGZpbGw9Im5vbmUiLz48L3N2Zz4=) center no-repeat; + background-size: 12px 12px; + -webkit-filter: "initial"; + filter: "initial"; + height: 12px; + width: 12px; } + +.ag-icon-arrows { + display: inline-block; + background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE2IDZsLTEuNDEgMS40MUwxNi4xNyA5SDR2MmgxMi4xN2wtMS41OCAxLjU5TDE2IDE0bDQtNHoiLz48cGF0aCBkPSJNNCA2bDEuNDEgMS40MUwzLjgzIDlIMTZ2MkgzLjgzbDEuNTggMS41OUw0IDE0bC00LTR6Ii8+PHBhdGggZD0iTTYgMTZsMS40MS0xLjQxTDkgMTYuMTdWNGgydjEyLjE3bDEuNTktMS41OEwxNCAxNmwtNCA0eiIvPjxwYXRoIGQ9Ik0xNCA0bC0xLjQxIDEuNDFMMTEgMy44M1YxNkg5VjMuODNMNy40MSA1LjQxIDYgNGw0LTR6Ii8+PC9zdmc+) center no-repeat; + background-size: 12px 12px; + -webkit-filter: "initial"; + filter: "initial"; + height: 12px; + width: 12px; } + +.ag-icon-asc { + display: inline-block; + background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxwYXRoIGlkPSJhIiBkPSJNNSAzaDJ2OUg1eiIvPjxwYXRoIGQ9Ik04Ljk5MyA1LjJWMy40OTNoLTZ2Nkg0LjdWNS4yaDQuMjkzeiIgaWQ9ImIiLz48L2RlZnM+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48dXNlIGZpbGw9IiNEOEQ4RDgiIHhsaW5rOmhyZWY9IiNhIi8+PHBhdGggc3Ryb2tlPSIjMDAwIiBkPSJNNS41IDMuNWgxdjhoLTF6Ii8+PGcgdHJhbnNmb3JtPSJyb3RhdGUoNDUgNS45OTMgNi40OTMpIj48dXNlIGZpbGw9IiNEOEQ4RDgiIHhsaW5rOmhyZWY9IiNiIi8+PHBhdGggc3Ryb2tlPSIjMDAwIiBkPSJNOC40OTMgNC43di0uNzA3aC01djVINC4yVjQuN2g0LjI5M3oiLz48L2c+PC9nPjwvc3ZnPg==) center no-repeat; + background-size: 12px 12px; + -webkit-filter: "initial"; + filter: "initial"; + height: 12px; + width: 12px; } + +.ag-icon-checkbox-checked-readonly { + display: inline-block; + background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxyZWN0IGlkPSJhIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHJ4PSIxIi8+PC9kZWZzPjxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PHVzZSBmaWxsPSIjRDhEOEQ4IiB4bGluazpocmVmPSIjYSIvPjxyZWN0IHN0cm9rZT0iIzAwMCIgeD0iLjUiIHk9Ii41IiB3aWR0aD0iMTEiIGhlaWdodD0iMTEiIHJ4PSIxIi8+PHBhdGggc3Ryb2tlPSIjMDAwIiBkPSJNOSAzTDYgOC41bC0yLjUtMiIvPjwvZz48L3N2Zz4=) center no-repeat; + background-size: 12px 12px; + -webkit-filter: "initial"; + filter: "initial"; + height: 12px; + width: 12px; } + +.ag-icon-checkbox-checked { + display: inline-block; + background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxyZWN0IGlkPSJhIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHJ4PSIxIi8+PC9kZWZzPjxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PHVzZSBmaWxsPSIjRkZGIiB4bGluazpocmVmPSIjYSIvPjxyZWN0IHN0cm9rZT0iIzAwMCIgeD0iLjUiIHk9Ii41IiB3aWR0aD0iMTEiIGhlaWdodD0iMTEiIHJ4PSIxIi8+PHBhdGggc3Ryb2tlPSIjMDAwIiBkPSJNOSAzTDYgOC41bC0yLjUtMiIvPjwvZz48L3N2Zz4=) center no-repeat; + background-size: 12px 12px; + -webkit-filter: "initial"; + filter: "initial"; + height: 12px; + width: 12px; } + +.ag-icon-checkbox-indeterminate-readonly { + display: inline-block; + background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxyZWN0IGlkPSJhIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHJ4PSIxIi8+PC9kZWZzPjxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PHVzZSBmaWxsPSIjRDhEOEQ4IiB4bGluazpocmVmPSIjYSIvPjxyZWN0IHN0cm9rZT0iIzAwMCIgeD0iLjUiIHk9Ii41IiB3aWR0aD0iMTEiIGhlaWdodD0iMTEiIHJ4PSIxIi8+PHBhdGggZmlsbD0iIzAwMCIgZD0iTTQgNWg0djJINHoiLz48L2c+PC9zdmc+) center no-repeat; + background-size: 12px 12px; + -webkit-filter: "initial"; + filter: "initial"; + height: 12px; + width: 12px; } + +.ag-icon-checkbox-indeterminate { + display: inline-block; + background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxyZWN0IGlkPSJhIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHJ4PSIxIi8+PC9kZWZzPjxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PHVzZSBmaWxsPSIjRkZGIiB4bGluazpocmVmPSIjYSIvPjxyZWN0IHN0cm9rZT0iIzAwMCIgeD0iLjUiIHk9Ii41IiB3aWR0aD0iMTEiIGhlaWdodD0iMTEiIHJ4PSIxIi8+PHBhdGggZmlsbD0iIzAwMCIgZD0iTTQgNWg0djJINHoiLz48L2c+PC9zdmc+) center no-repeat; + background-size: 12px 12px; + -webkit-filter: "initial"; + filter: "initial"; + height: 12px; + width: 12px; } + +.ag-icon-checkbox-unchecked-readonly { + display: inline-block; + background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxyZWN0IGlkPSJhIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHJ4PSIxIi8+PC9kZWZzPjxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PHVzZSBmaWxsPSIjRDhEOEQ4IiB4bGluazpocmVmPSIjYSIvPjxyZWN0IHN0cm9rZT0iIzAwMCIgeD0iLjUiIHk9Ii41IiB3aWR0aD0iMTEiIGhlaWdodD0iMTEiIHJ4PSIxIi8+PC9nPjwvc3ZnPg==) center no-repeat; + background-size: 12px 12px; + -webkit-filter: "initial"; + filter: "initial"; + height: 12px; + width: 12px; } + +.ag-icon-checkbox-unchecked { + display: inline-block; + background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxyZWN0IGlkPSJhIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHJ4PSIxIi8+PC9kZWZzPjxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PHVzZSBmaWxsPSIjRkZGIiB4bGluazpocmVmPSIjYSIvPjxyZWN0IHN0cm9rZT0iIzAwMCIgeD0iLjUiIHk9Ii41IiB3aWR0aD0iMTEiIGhlaWdodD0iMTEiIHJ4PSIxIi8+PC9nPjwvc3ZnPg==) center no-repeat; + background-size: 12px 12px; + -webkit-filter: "initial"; + filter: "initial"; + height: 12px; + width: 12px; } + +.ag-icon-column { + display: inline-block; + background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEgMWg0djJIMXptMCAzaDR2N0gxeiIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+) center no-repeat; + background-size: 12px 12px; + -webkit-filter: "initial"; + filter: "initial"; + height: 12px; + width: 12px; } + +.ag-icon-columns { + display: inline-block; + background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEgMWg0djJIMXptNiAwaDR2Mkg3ek0xIDVoNHYySDF6bTYgMGg0djJIN3pNMSA5aDR2Mkgxem02IDBoNHYySDd6IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=) center no-repeat; + background-size: 12px 12px; + -webkit-filter: "initial"; + filter: "initial"; + height: 12px; + width: 12px; } + +.ag-icon-contracted { + display: inline-block; + background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cmVjdCBzdHJva2Utb3BhY2l0eT0iLjUiIHN0cm9rZT0iIzAwMCIgeD0iMS41IiB5PSIxLjUiIHdpZHRoPSI5IiBoZWlnaHQ9IjkiIHJ4PSIxIi8+PHBhdGggZmlsbD0iIzAwMCIgZD0iTTkgNXYySDNWNXoiLz48L2c+PC9zdmc+) center no-repeat; + background-size: 12px 12px; + -webkit-filter: "initial"; + filter: "initial"; + height: 12px; + width: 12px; } + +.ag-icon-copy { + display: inline-block; + background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik00LjUgNC41aDV2NWgtNXoiLz48cGF0aCBkPSJNNy41IDIuNWgtNXY1aDJ2Mmg1di01aC0ydi0yeiIvPjwvZz48L3N2Zz4=) center no-repeat; + background-size: 12px 12px; + -webkit-filter: "initial"; + filter: "initial"; + height: 12px; + width: 12px; } + +.ag-icon-cut { + display: inline-block; + background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0zIDMuMTJjLjY2Ny4wNzggMyAxLjc0NSA3IDUtLjMyNi4yMDQtLjY1OS4yMDQtMSAwLS4zNDEtLjIwNi0xLjY3NC0xLjIwNi00LTMgMCAuNjY2LS42NjcuNjY2LTIgMC0yLTEtMS0yLjEyIDAtMnoiLz48cGF0aCBkPSJNMyA4LjI2NGMuNjY3LS4wOCAzLTEuNzQ2IDctNS0uMzI2LS4yMDUtLjY1OS0uMjA1LTEgMC0uMzQxLjIwNC0xLjY3NCAxLjIwNC00IDMgMC0uNjY3LS42NjctLjY2Ny0yIDAtMiAxLTEgMi4xMTkgMCAyeiIvPjwvZz48L3N2Zz4=) center no-repeat; + background-size: 12px 12px; + -webkit-filter: "initial"; + filter: "initial"; + height: 12px; + width: 12px; } + +.ag-icon-desc { + display: inline-block; + background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxwYXRoIGlkPSJhIiBkPSJNNSAyaDJ2OUg1eiIvPjxwYXRoIGQ9Ik04Ljk5MyA2LjFWNC4zOTNoLTZ2Nkg0LjdWNi4xaDQuMjkzeiIgaWQ9ImIiLz48L2RlZnM+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48dXNlIGZpbGw9IiNEOEQ4RDgiIHhsaW5rOmhyZWY9IiNhIi8+PHBhdGggc3Ryb2tlPSIjMDAwIiBkPSJNNS41IDIuNWgxdjhoLTF6Ii8+PGcgdHJhbnNmb3JtPSJyb3RhdGUoLTEzNSA1Ljk5MyA3LjM5MykiPjx1c2UgZmlsbD0iI0Q4RDhEOCIgeGxpbms6aHJlZj0iI2IiLz48cGF0aCBzdHJva2U9IiMwMDAiIGQ9Ik04LjQ5MyA1LjZ2LS43MDdoLTV2NUg0LjJWNS42aDQuMjkzeiIvPjwvZz48L2c+PC9zdmc+) center no-repeat; + background-size: 12px 12px; + -webkit-filter: "initial"; + filter: "initial"; + height: 12px; + width: 12px; } + +.ag-icon-expanded { + display: inline-block; + background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cmVjdCBzdHJva2Utb3BhY2l0eT0iLjUiIHN0cm9rZT0iIzAwMCIgeD0iMS41IiB5PSIxLjUiIHdpZHRoPSI5IiBoZWlnaHQ9IjkiIHJ4PSIxIi8+PHBhdGggZmlsbD0iIzAwMCIgZD0iTTUgM2gydjZINXoiLz48cGF0aCBmaWxsPSIjMDAwIiBkPSJNOSA1djJIM1Y1eiIvPjwvZz48L3N2Zz4=) center no-repeat; + background-size: 12px 12px; + -webkit-filter: "initial"; + filter: "initial"; + height: 12px; + width: 12px; } + +.ag-icon-eye-slash { + display: inline-block; + background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMy4wMDEgMy45MDhMMyA0YTMgMyAwIDEgMCA1Ljk5OS0uMDkyQTUuMjQ4IDUuMjQ4IDAgMCAwIDYgM2MtMS4xIDAtMi4xLjMwMy0yLjk5OS45MDh6IiBmaWxsPSIjMDAwIi8+PHBhdGggZD0iTTQgNC41Yy42NjctLjMzMyAxLjY2Ny0uNSAzLS41IiBzdHJva2U9IiM5Nzk3OTciLz48cGF0aCBkPSJNMSA2YzEuMzMzLTIgMy0zIDUtM3MzLjY2NyAxIDUgM0M5LjY2NyA4IDggOSA2IDlTMi4zMzMgOCAxIDZ6IiBzdHJva2U9IiMwMDAiLz48cGF0aCBkPSJNNC4wMDQgMi44MzVsNC45OTIgNi4zMyIgc3Ryb2tlPSIjMDAwIiBzdHJva2UtbGluZWNhcD0ic3F1YXJlIi8+PHBhdGggZD0iTTMuMDA0IDIuODM1bDQuOTkyIDYuMzMiIHN0cm9rZT0iI0ZGRiIgc3Ryb2tlLWxpbmVjYXA9InNxdWFyZSIvPjwvZz48L3N2Zz4=) center no-repeat; + background-size: 12px 12px; + -webkit-filter: "initial"; + filter: "initial"; + height: 12px; + width: 12px; } + +.ag-icon-eye { + display: inline-block; + background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMy4wMDEgMy45MDhMMyA0YTMgMyAwIDEgMCA1Ljk5OS0uMDkyQTUuMjQ4IDUuMjQ4IDAgMCAwIDYgM2MtMS4xIDAtMi4xLjMwMy0yLjk5OS45MDh6IiBmaWxsPSIjMDAwIi8+PHBhdGggZD0iTTQgNC41Yy42NjctLjMzMyAxLjY2Ny0uNSAzLS41IiBzdHJva2U9IiM5Nzk3OTciLz48cGF0aCBkPSJNMSA2YzEuMzMzLTIgMy0zIDUtM3MzLjY2NyAxIDUgM0M5LjY2NyA4IDggOSA2IDlTMi4zMzMgOCAxIDZ6IiBzdHJva2U9IiMwMDAiLz48L2c+PC9zdmc+) center no-repeat; + background-size: 12px 12px; + -webkit-filter: "initial"; + filter: "initial"; + height: 12px; + width: 12px; } + +.ag-icon-filter { + display: inline-block; + background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEgMmgxMEw3IDZ2NUw1IDlWNkwxIDJ6bTQgNHYxaDJWNkg1eiIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+) center no-repeat; + background-size: 12px 12px; + -webkit-filter: "initial"; + filter: "initial"; + height: 12px; + width: 12px; } + +.ag-icon-group { + display: inline-block; + background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBzdHJva2U9IiMwMDAiIGQ9Ik03LjUgMS41aDN2MmgtM3ptMCA0aDN2MmgtM3ptMCA0aDN2MmgtM3oiLz48cGF0aCBmaWxsPSIjMDAwIiBkPSJNMiAzaDF2OEgyem0xIDNoNHYxSDN6bTItNGgzdjFINXoiLz48cGF0aCBmaWxsPSIjMDAwIiBkPSJNMiAxMGg1djFIMnoiLz48cGF0aCBzdHJva2U9IiMwMDAiIGQ9Ik0xLjUgMS41aDN2MmgtM3oiLz48L2c+PC9zdmc+) center no-repeat; + background-size: 12px 12px; + -webkit-filter: "initial"; + filter: "initial"; + height: 12px; + width: 12px; } + +.ag-icon-indeterminate { + display: inline-block; + background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMy4wNTYgNC41ODFhMy4wMDEgMy4wMDEgMCAwIDAgNS44ODggMEM4LjA1OSA0LjE5NCA3LjA3OCA0IDYgNGMtMS4wNzggMC0yLjA2LjE5NC0yLjk0NC41ODF6IiBmaWxsPSIjMDAwIi8+PHBhdGggZD0iTTQgNS41Yy42NjctLjMzMyAxLjY2Ny0uNSAzLS41IiBzdHJva2U9IiM5Nzk3OTciLz48cGF0aCBkPSJNMSA2YzEuMzMzLTEuMzMzIDMtMiA1LTJzMy42NjcuNjY3IDUgMkM5LjY2NyA3LjMzMyA4IDggNiA4cy0zLjY2Ny0uNjY3LTUtMnoiIHN0cm9rZT0iIzAwMCIvPjwvZz48L3N2Zz4=) center no-repeat; + background-size: 12px 12px; + -webkit-filter: "initial"; + filter: "initial"; + height: 12px; + width: 12px; } + +.ag-icon-left { + display: inline-block; + background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxwYXRoIGlkPSJhIiBkPSJNNS41IDEuNWgydjloLTJ6Ii8+PHBhdGggZD0iTTcuOTkzIDQuN1YyLjk5M2gtNnY2SDMuN1Y0LjdoNC4yOTN6IiBpZD0iYiIvPjwvZGVmcz48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxnIHRyYW5zZm9ybT0icm90YXRlKDkwIDYuNSA2KSI+PHVzZSBmaWxsPSIjRDhEOEQ4IiB4bGluazpocmVmPSIjYSIvPjxwYXRoIHN0cm9rZT0iIzAwMCIgZD0iTTYgMmgxdjhINnoiLz48L2c+PGcgdHJhbnNmb3JtPSJyb3RhdGUoLTQ1IDQuOTkzIDUuOTkzKSI+PHVzZSBmaWxsPSIjRDhEOEQ4IiB4bGluazpocmVmPSIjYiIvPjxwYXRoIHN0cm9rZT0iIzAwMCIgZD0iTTcuNDkzIDQuMnYtLjcwN2gtNXY1SDMuMlY0LjJoNC4yOTN6Ii8+PC9nPjwvZz48L3N2Zz4=) center no-repeat; + background-size: 12px 12px; + -webkit-filter: "initial"; + filter: "initial"; + height: 12px; + width: 12px; } + +.ag-icon-loading { + display: inline-block; + background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxwYXRoIGlkPSJhIiBkPSJNNSAxaDJ2M0g1eiIvPjxwYXRoIGlkPSJiIiBkPSJNNSA4aDJ2M0g1eiIvPjxwYXRoIGlkPSJjIiBkPSJNMSA1aDN2MkgxeiIvPjxwYXRoIGlkPSJkIiBkPSJNOCA1aDN2Mkg4eiIvPjxwYXRoIGlkPSJlIiBkPSJNNCAwaDJ2M0g0eiIvPjxwYXRoIGlkPSJmIiBkPSJNNCA3aDJ2M0g0eiIvPjxwYXRoIGlkPSJnIiBkPSJNMCA0aDN2MkgweiIvPjxwYXRoIGlkPSJoIiBkPSJNNyA0aDN2Mkg3eiIvPjwvZGVmcz48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjx1c2UgZmlsbD0iI0Q4RDhEOCIgeGxpbms6aHJlZj0iI2EiLz48cGF0aCBzdHJva2U9IiM5Nzk3OTciIGQ9Ik01LjUgMS41aDF2MmgtMXoiLz48dXNlIGZpbGw9IiNEOEQ4RDgiIHhsaW5rOmhyZWY9IiNiIi8+PHBhdGggc3Ryb2tlPSIjOTc5Nzk3IiBkPSJNNS41IDguNWgxdjJoLTF6Ii8+PHVzZSBmaWxsPSIjRDhEOEQ4IiB4bGluazpocmVmPSIjYyIvPjxwYXRoIHN0cm9rZT0iIzk3OTc5NyIgZD0iTTEuNSA1LjVoMnYxaC0yeiIvPjx1c2UgZmlsbD0iI0Q4RDhEOCIgeGxpbms6aHJlZj0iI2QiLz48cGF0aCBzdHJva2U9IiM5Nzk3OTciIGQ9Ik04LjUgNS41aDJ2MWgtMnoiLz48ZyBvcGFjaXR5PSIuNzE0Ij48ZyB0cmFuc2Zvcm09InJvdGF0ZSg0NSA0LjI5MyA2LjcwNykiPjx1c2UgZmlsbD0iI0Q4RDhEOCIgeGxpbms6aHJlZj0iI2UiLz48cGF0aCBzdHJva2U9IiM5Nzk3OTciIGQ9Ik00LjUuNWgxdjJoLTF6Ii8+PC9nPjxnIHRyYW5zZm9ybT0icm90YXRlKDQ1IDQuMjkzIDYuNzA3KSI+PHVzZSBmaWxsPSIjRDhEOEQ4IiB4bGluazpocmVmPSIjZiIvPjxwYXRoIHN0cm9rZT0iIzk3OTc5NyIgZD0iTTQuNSA3LjVoMXYyaC0xeiIvPjwvZz48ZyB0cmFuc2Zvcm09InJvdGF0ZSg0NSA0LjI5MyA2LjcwNykiPjx1c2UgZmlsbD0iI0Q4RDhEOCIgeGxpbms6aHJlZj0iI2ciLz48cGF0aCBzdHJva2U9IiM5Nzk3OTciIGQ9Ik0uNSA0LjVoMnYxaC0yeiIvPjwvZz48ZyB0cmFuc2Zvcm09InJvdGF0ZSg0NSA0LjI5MyA2LjcwNykiPjx1c2UgZmlsbD0iI0Q4RDhEOCIgeGxpbms6aHJlZj0iI2giLz48cGF0aCBzdHJva2U9IiM5Nzk3OTciIGQ9Ik03LjUgNC41aDJ2MWgtMnoiLz48L2c+PC9nPjwvZz48L3N2Zz4=) center no-repeat; + background-size: 12px 12px; + -webkit-filter: "initial"; + filter: "initial"; + height: 12px; + width: 12px; } + +.ag-icon-menu { + display: inline-block; + background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEgMWgxMHYySDF6bTAgNGgxMHYySDF6bTAgNGgxMHYySDF6IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=) center no-repeat; + background-size: 12px 12px; + -webkit-filter: "initial"; + filter: "initial"; + height: 12px; + width: 12px; } + +.ag-icon-minus { + display: inline-block; + background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIgNWg4djJIMnoiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==) center no-repeat; + background-size: 12px 12px; + -webkit-filter: "initial"; + filter: "initial"; + height: 12px; + width: 12px; } + +.ag-icon-none { + display: inline-block; + background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxwYXRoIGlkPSJhIiBkPSJNNSAzaDJ2Nkg1eiIvPjxwYXRoIGQ9Ik04LjE0NiA4LjE4MlY2LjQ3NWgtNXY1aDEuNzA4VjguMTgyaDMuMjkyeiIgaWQ9ImIiLz48cGF0aCBkPSJNOC41IDIuOTE0VjEuMjA3aC01djVoMS43MDdWMi45MTRIOC41eiIgaWQ9ImMiLz48L2RlZnM+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48dXNlIGZpbGw9IiNEOEQ4RDgiIHhsaW5rOmhyZWY9IiNhIi8+PHBhdGggc3Ryb2tlPSIjMDAwIiBkPSJNNS41IDMuNWgxdjVoLTF6Ii8+PGcgdHJhbnNmb3JtPSJyb3RhdGUoLTEzNSA1LjY0NiA4LjQ3NSkiPjx1c2UgZmlsbD0iI0Q4RDhEOCIgeGxpbms6aHJlZj0iI2IiLz48cGF0aCBzdHJva2U9IiMwMDAiIGQ9Ik03LjY0NiA3LjY4MnYtLjcwN2gtNHY0aC43MDhWNy42ODJoMy4yOTJ6Ii8+PC9nPjxnIHRyYW5zZm9ybT0icm90YXRlKDQ1IDYgMy43MDcpIj48dXNlIGZpbGw9IiNEOEQ4RDgiIHhsaW5rOmhyZWY9IiNjIi8+PHBhdGggc3Ryb2tlPSIjMDAwIiBkPSJNOCAyLjQxNHYtLjcwN0g0djRoLjcwN1YyLjQxNEg4eiIvPjwvZz48L2c+PC9zdmc+) center no-repeat; + background-size: 12px 12px; + -webkit-filter: "initial"; + filter: "initial"; + height: 12px; + width: 12px; } + +.ag-icon-not-allowed { + display: inline-block; + background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxjaXJjbGUgY3g9IjYiIGN5PSI2IiByPSI0Ii8+PHBhdGggZD0iTTguNSAzLjVMMy40MDEgOC41OTkiIHN0cm9rZS1saW5lY2FwPSJzcXVhcmUiLz48L2c+PC9zdmc+) center no-repeat; + background-size: 12px 12px; + -webkit-filter: "initial"; + filter: "initial"; + height: 12px; + width: 12px; } + +.ag-icon-paste { + display: inline-block; + background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjUgMi41aDd2N2gtN3oiLz48cGF0aCBkPSJNNi41IDEuNWgtMXYyaC0xdjFoM3YtMWgtMXYtMnoiLz48L2c+PC9zdmc+) center no-repeat; + background-size: 12px 12px; + -webkit-filter: "initial"; + filter: "initial"; + height: 12px; + width: 12px; } + +.ag-icon-pin { + display: inline-block; + background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBmaWxsPSIjMDAwIiBkPSJNMyAyaDZ2MUg4djRsMiAxSDdsLTEgMy0xLTNIMmwyLTFWM0gzeiIvPjxwYXRoIGZpbGwtb3BhY2l0eT0iLjUiIGZpbGw9IiNGRkYiIGQ9Ik01IDNoMXY0SDV6Ii8+PHBhdGggZmlsbC1vcGFjaXR5PSIuMjgiIGZpbGw9IiNGRkYiIGQ9Ik00IDNoMXYzSDR6Ii8+PC9nPjwvc3ZnPg==) center no-repeat; + background-size: 12px 12px; + -webkit-filter: "initial"; + filter: "initial"; + height: 12px; + width: 12px; } + +.ag-icon-pivot { + display: inline-block; + background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxyZWN0IHg9IjEuNSIgeT0iMS41IiB3aWR0aD0iOSIgaGVpZ2h0PSI5IiByeD0iMSIvPjxwYXRoIGQ9Ik0xMC41IDMuNWgtOW0yLTJ2OSIgc3Ryb2tlLWxpbmVjYXA9InNxdWFyZSIvPjxwYXRoIGQ9Ik03LjUgNi41bDEtMSAxIDFtLTMgMWwtMSAxIDEgMSIvPjxwYXRoIGQ9Ik04LjUgNS41djNoLTMiLz48L2c+PC9zdmc+) center no-repeat; + background-size: 12px 12px; + -webkit-filter: "initial"; + filter: "initial"; + height: 12px; + width: 12px; } + +.ag-icon-plus { + display: inline-block; + background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNNSAyaDJ2OEg1eiIvPjxwYXRoIGQ9Ik0yIDVoOHYySDJ6Ii8+PC9nPjwvc3ZnPg==) center no-repeat; + background-size: 12px 12px; + -webkit-filter: "initial"; + filter: "initial"; + height: 12px; + width: 12px; } + +.ag-icon-right { + display: inline-block; + background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxwYXRoIGlkPSJhIiBkPSJNNC41IDEuNWgydjloLTJ6Ii8+PHBhdGggZD0iTTkuOTkzIDQuN1YyLjk5M2gtNnY2SDUuN1Y0LjdoNC4yOTN6IiBpZD0iYiIvPjwvZGVmcz48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxnIHRyYW5zZm9ybT0icm90YXRlKDkwIDUuNSA2KSI+PHVzZSBmaWxsPSIjRDhEOEQ4IiB4bGluazpocmVmPSIjYSIvPjxwYXRoIHN0cm9rZT0iIzAwMCIgZD0iTTUgMmgxdjhINXoiLz48L2c+PGcgdHJhbnNmb3JtPSJzY2FsZSgtMSAxKSByb3RhdGUoLTQ1IDAgMjIuODc0KSI+PHVzZSBmaWxsPSIjRDhEOEQ4IiB4bGluazpocmVmPSIjYiIvPjxwYXRoIHN0cm9rZT0iIzAwMCIgZD0iTTkuNDkzIDQuMnYtLjcwN2gtNXY1SDUuMlY0LjJoNC4yOTN6Ii8+PC9nPjwvZz48L3N2Zz4=) center no-repeat; + background-size: 12px 12px; + -webkit-filter: "initial"; + filter: "initial"; + height: 12px; + width: 12px; } + +.ag-icon-small-left { + display: inline-block; + background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMgNmw0LTR2OHoiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==) center no-repeat; + background-size: 12px 12px; + -webkit-filter: "initial"; + filter: "initial"; + height: 12px; + width: 12px; } + +.ag-icon-small-right { + display: inline-block; + background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUgMmw0IDQtNCA0eiIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+) center no-repeat; + background-size: 12px 12px; + -webkit-filter: "initial"; + filter: "initial"; + height: 12px; + width: 12px; } + +.ag-icon-small-up { + display: inline-block; + background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIgN2w0LTQgNCA0eiIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+) center no-repeat; + background-size: 12px 12px; + -webkit-filter: "initial"; + filter: "initial"; + height: 12px; + width: 12px; } + +.ag-icon-small-down { + display: inline-block; + background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIgNWg4TDYgOXoiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==) center no-repeat; + background-size: 12px 12px; + -webkit-filter: "initial"; + filter: "initial"; + height: 12px; + width: 12px; } + +.ag-icon-tick { + display: inline-block; + background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEuNSA1LjVsMyAzIDYtNiIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2U9IiMwMDAiIGZpbGw9Im5vbmUiLz48L3N2Zz4=) center no-repeat; + background-size: 12px 12px; + -webkit-filter: "initial"; + filter: "initial"; + height: 12px; + width: 12px; } + +.ag-icon-cross { + display: inline-block; + background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIgMTBsOC04bTAgOEwyIDIiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLXdpZHRoPSIyIiBmaWxsPSJub25lIi8+PC9zdmc+) center no-repeat; + background-size: 12px 12px; + -webkit-filter: "initial"; + filter: "initial"; + height: 12px; + width: 12px; } + +.ag-icon-tree-open { + display: inline-block; + background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIgNWg4TDYgOXoiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==) center no-repeat; + background-size: 12px 12px; + -webkit-filter: "initial"; + filter: "initial"; + height: 12px; + width: 12px; } + +.ag-icon-tree-closed { + display: inline-block; + background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUgMmw0IDQtNCA0eiIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+) center no-repeat; + background-size: 12px 12px; + -webkit-filter: "initial"; + filter: "initial"; + height: 12px; + width: 12px; } + +.ag-icon-tree-indeterminate { + display: inline-block; + background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIgNWg4djJIMnoiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==) center no-repeat; + background-size: 12px 12px; + -webkit-filter: "initial"; + filter: "initial"; + height: 12px; + width: 12px; } + +.loading-filter { + background-color: #e6e6e6; + height: 100%; + padding: 5px; + position: absolute; + top: 34px; + width: 100%; + z-index: 1; } + +.ag-details-row { + height: 100%; + width: 100%; } + +.ag-details-grid { + height: 100%; + width: 100%; } + +.ag-primary-cols-header-panel { + display: flex; + flex-direction: row; } + +.ag-ltr .ag-toolpanel-indent-1 { + padding-left: 10px; } + +.ag-rtl .ag-toolpanel-indent-1 { + padding-right: 10px; } + +.ag-ltr .ag-row-group-indent-1 { + padding-left: 10px; } + +.ag-rtl .ag-row-group-indent-1 { + padding-right: 10px; } + +.ag-ltr .ag-toolpanel-indent-2 { + padding-left: 20px; } + +.ag-rtl .ag-toolpanel-indent-2 { + padding-right: 20px; } + +.ag-ltr .ag-row-group-indent-2 { + padding-left: 20px; } + +.ag-rtl .ag-row-group-indent-2 { + padding-right: 20px; } + +.ag-ltr .ag-toolpanel-indent-3 { + padding-left: 30px; } + +.ag-rtl .ag-toolpanel-indent-3 { + padding-right: 30px; } + +.ag-ltr .ag-row-group-indent-3 { + padding-left: 30px; } + +.ag-rtl .ag-row-group-indent-3 { + padding-right: 30px; } + +.ag-ltr .ag-toolpanel-indent-4 { + padding-left: 40px; } + +.ag-rtl .ag-toolpanel-indent-4 { + padding-right: 40px; } + +.ag-ltr .ag-row-group-indent-4 { + padding-left: 40px; } + +.ag-rtl .ag-row-group-indent-4 { + padding-right: 40px; } + +.ag-ltr .ag-toolpanel-indent-5 { + padding-left: 50px; } + +.ag-rtl .ag-toolpanel-indent-5 { + padding-right: 50px; } + +.ag-ltr .ag-row-group-indent-5 { + padding-left: 50px; } + +.ag-rtl .ag-row-group-indent-5 { + padding-right: 50px; } + +.ag-ltr .ag-toolpanel-indent-6 { + padding-left: 60px; } + +.ag-rtl .ag-toolpanel-indent-6 { + padding-right: 60px; } + +.ag-ltr .ag-row-group-indent-6 { + padding-left: 60px; } + +.ag-rtl .ag-row-group-indent-6 { + padding-right: 60px; } + +.ag-ltr .ag-toolpanel-indent-7 { + padding-left: 70px; } + +.ag-rtl .ag-toolpanel-indent-7 { + padding-right: 70px; } + +.ag-ltr .ag-row-group-indent-7 { + padding-left: 70px; } + +.ag-rtl .ag-row-group-indent-7 { + padding-right: 70px; } + +.ag-ltr .ag-toolpanel-indent-8 { + padding-left: 80px; } + +.ag-rtl .ag-toolpanel-indent-8 { + padding-right: 80px; } + +.ag-ltr .ag-row-group-indent-8 { + padding-left: 80px; } + +.ag-rtl .ag-row-group-indent-8 { + padding-right: 80px; } + +.ag-ltr .ag-toolpanel-indent-9 { + padding-left: 90px; } + +.ag-rtl .ag-toolpanel-indent-9 { + padding-right: 90px; } + +.ag-ltr .ag-row-group-indent-9 { + padding-left: 90px; } + +.ag-rtl .ag-row-group-indent-9 { + padding-right: 90px; } + +.ag-ltr .ag-toolpanel-indent-10 { + padding-left: 100px; } + +.ag-rtl .ag-toolpanel-indent-10 { + padding-right: 100px; } + +.ag-ltr .ag-row-group-indent-10 { + padding-left: 100px; } + +.ag-rtl .ag-row-group-indent-10 { + padding-right: 100px; } + +.ag-ltr .ag-toolpanel-indent-11 { + padding-left: 110px; } + +.ag-rtl .ag-toolpanel-indent-11 { + padding-right: 110px; } + +.ag-ltr .ag-row-group-indent-11 { + padding-left: 110px; } + +.ag-rtl .ag-row-group-indent-11 { + padding-right: 110px; } + +.ag-ltr .ag-toolpanel-indent-12 { + padding-left: 120px; } + +.ag-rtl .ag-toolpanel-indent-12 { + padding-right: 120px; } + +.ag-ltr .ag-row-group-indent-12 { + padding-left: 120px; } + +.ag-rtl .ag-row-group-indent-12 { + padding-right: 120px; } + +.ag-ltr .ag-toolpanel-indent-13 { + padding-left: 130px; } + +.ag-rtl .ag-toolpanel-indent-13 { + padding-right: 130px; } + +.ag-ltr .ag-row-group-indent-13 { + padding-left: 130px; } + +.ag-rtl .ag-row-group-indent-13 { + padding-right: 130px; } + +.ag-ltr .ag-toolpanel-indent-14 { + padding-left: 140px; } + +.ag-rtl .ag-toolpanel-indent-14 { + padding-right: 140px; } + +.ag-ltr .ag-row-group-indent-14 { + padding-left: 140px; } + +.ag-rtl .ag-row-group-indent-14 { + padding-right: 140px; } + +.ag-ltr .ag-toolpanel-indent-15 { + padding-left: 150px; } + +.ag-rtl .ag-toolpanel-indent-15 { + padding-right: 150px; } + +.ag-ltr .ag-row-group-indent-15 { + padding-left: 150px; } + +.ag-rtl .ag-row-group-indent-15 { + padding-right: 150px; } + +.ag-ltr .ag-toolpanel-indent-16 { + padding-left: 160px; } + +.ag-rtl .ag-toolpanel-indent-16 { + padding-right: 160px; } + +.ag-ltr .ag-row-group-indent-16 { + padding-left: 160px; } + +.ag-rtl .ag-row-group-indent-16 { + padding-right: 160px; } + +.ag-ltr .ag-toolpanel-indent-17 { + padding-left: 170px; } + +.ag-rtl .ag-toolpanel-indent-17 { + padding-right: 170px; } + +.ag-ltr .ag-row-group-indent-17 { + padding-left: 170px; } + +.ag-rtl .ag-row-group-indent-17 { + padding-right: 170px; } + +.ag-ltr .ag-toolpanel-indent-18 { + padding-left: 180px; } + +.ag-rtl .ag-toolpanel-indent-18 { + padding-right: 180px; } + +.ag-ltr .ag-row-group-indent-18 { + padding-left: 180px; } + +.ag-rtl .ag-row-group-indent-18 { + padding-right: 180px; } + +.ag-ltr .ag-toolpanel-indent-19 { + padding-left: 190px; } + +.ag-rtl .ag-toolpanel-indent-19 { + padding-right: 190px; } + +.ag-ltr .ag-row-group-indent-19 { + padding-left: 190px; } + +.ag-rtl .ag-row-group-indent-19 { + padding-right: 190px; } + +.ag-ltr .ag-toolpanel-indent-20 { + padding-left: 200px; } + +.ag-rtl .ag-toolpanel-indent-20 { + padding-right: 200px; } + +.ag-ltr .ag-row-group-indent-20 { + padding-left: 200px; } + +.ag-rtl .ag-row-group-indent-20 { + padding-right: 200px; } + +.ag-ltr .ag-toolpanel-indent-21 { + padding-left: 210px; } + +.ag-rtl .ag-toolpanel-indent-21 { + padding-right: 210px; } + +.ag-ltr .ag-row-group-indent-21 { + padding-left: 210px; } + +.ag-rtl .ag-row-group-indent-21 { + padding-right: 210px; } + +.ag-ltr .ag-toolpanel-indent-22 { + padding-left: 220px; } + +.ag-rtl .ag-toolpanel-indent-22 { + padding-right: 220px; } + +.ag-ltr .ag-row-group-indent-22 { + padding-left: 220px; } + +.ag-rtl .ag-row-group-indent-22 { + padding-right: 220px; } + +.ag-ltr .ag-toolpanel-indent-23 { + padding-left: 230px; } + +.ag-rtl .ag-toolpanel-indent-23 { + padding-right: 230px; } + +.ag-ltr .ag-row-group-indent-23 { + padding-left: 230px; } + +.ag-rtl .ag-row-group-indent-23 { + padding-right: 230px; } + +.ag-ltr .ag-toolpanel-indent-24 { + padding-left: 240px; } + +.ag-rtl .ag-toolpanel-indent-24 { + padding-right: 240px; } + +.ag-ltr .ag-row-group-indent-24 { + padding-left: 240px; } + +.ag-rtl .ag-row-group-indent-24 { + padding-right: 240px; } + +.ag-ltr .ag-toolpanel-indent-25 { + padding-left: 250px; } + +.ag-rtl .ag-toolpanel-indent-25 { + padding-right: 250px; } + +.ag-ltr .ag-row-group-indent-25 { + padding-left: 250px; } + +.ag-rtl .ag-row-group-indent-25 { + padding-right: 250px; } + +.ag-ltr .ag-toolpanel-indent-26 { + padding-left: 260px; } + +.ag-rtl .ag-toolpanel-indent-26 { + padding-right: 260px; } + +.ag-ltr .ag-row-group-indent-26 { + padding-left: 260px; } + +.ag-rtl .ag-row-group-indent-26 { + padding-right: 260px; } + +.ag-ltr .ag-toolpanel-indent-27 { + padding-left: 270px; } + +.ag-rtl .ag-toolpanel-indent-27 { + padding-right: 270px; } + +.ag-ltr .ag-row-group-indent-27 { + padding-left: 270px; } + +.ag-rtl .ag-row-group-indent-27 { + padding-right: 270px; } + +.ag-ltr .ag-toolpanel-indent-28 { + padding-left: 280px; } + +.ag-rtl .ag-toolpanel-indent-28 { + padding-right: 280px; } + +.ag-ltr .ag-row-group-indent-28 { + padding-left: 280px; } + +.ag-rtl .ag-row-group-indent-28 { + padding-right: 280px; } + +.ag-ltr .ag-toolpanel-indent-29 { + padding-left: 290px; } + +.ag-rtl .ag-toolpanel-indent-29 { + padding-right: 290px; } + +.ag-ltr .ag-row-group-indent-29 { + padding-left: 290px; } + +.ag-rtl .ag-row-group-indent-29 { + padding-right: 290px; } + +.ag-ltr .ag-toolpanel-indent-30 { + padding-left: 300px; } + +.ag-rtl .ag-toolpanel-indent-30 { + padding-right: 300px; } + +.ag-ltr .ag-row-group-indent-30 { + padding-left: 300px; } + +.ag-rtl .ag-row-group-indent-30 { + padding-right: 300px; } + +.ag-ltr .ag-toolpanel-indent-31 { + padding-left: 310px; } + +.ag-rtl .ag-toolpanel-indent-31 { + padding-right: 310px; } + +.ag-ltr .ag-row-group-indent-31 { + padding-left: 310px; } + +.ag-rtl .ag-row-group-indent-31 { + padding-right: 310px; } + +.ag-ltr .ag-toolpanel-indent-32 { + padding-left: 320px; } + +.ag-rtl .ag-toolpanel-indent-32 { + padding-right: 320px; } + +.ag-ltr .ag-row-group-indent-32 { + padding-left: 320px; } + +.ag-rtl .ag-row-group-indent-32 { + padding-right: 320px; } + +.ag-ltr .ag-toolpanel-indent-33 { + padding-left: 330px; } + +.ag-rtl .ag-toolpanel-indent-33 { + padding-right: 330px; } + +.ag-ltr .ag-row-group-indent-33 { + padding-left: 330px; } + +.ag-rtl .ag-row-group-indent-33 { + padding-right: 330px; } + +.ag-ltr .ag-toolpanel-indent-34 { + padding-left: 340px; } + +.ag-rtl .ag-toolpanel-indent-34 { + padding-right: 340px; } + +.ag-ltr .ag-row-group-indent-34 { + padding-left: 340px; } + +.ag-rtl .ag-row-group-indent-34 { + padding-right: 340px; } + +.ag-ltr .ag-toolpanel-indent-35 { + padding-left: 350px; } + +.ag-rtl .ag-toolpanel-indent-35 { + padding-right: 350px; } + +.ag-ltr .ag-row-group-indent-35 { + padding-left: 350px; } + +.ag-rtl .ag-row-group-indent-35 { + padding-right: 350px; } + +.ag-ltr .ag-toolpanel-indent-36 { + padding-left: 360px; } + +.ag-rtl .ag-toolpanel-indent-36 { + padding-right: 360px; } + +.ag-ltr .ag-row-group-indent-36 { + padding-left: 360px; } + +.ag-rtl .ag-row-group-indent-36 { + padding-right: 360px; } + +.ag-ltr .ag-toolpanel-indent-37 { + padding-left: 370px; } + +.ag-rtl .ag-toolpanel-indent-37 { + padding-right: 370px; } + +.ag-ltr .ag-row-group-indent-37 { + padding-left: 370px; } + +.ag-rtl .ag-row-group-indent-37 { + padding-right: 370px; } + +.ag-ltr .ag-toolpanel-indent-38 { + padding-left: 380px; } + +.ag-rtl .ag-toolpanel-indent-38 { + padding-right: 380px; } + +.ag-ltr .ag-row-group-indent-38 { + padding-left: 380px; } + +.ag-rtl .ag-row-group-indent-38 { + padding-right: 380px; } + +.ag-ltr .ag-toolpanel-indent-39 { + padding-left: 390px; } + +.ag-rtl .ag-toolpanel-indent-39 { + padding-right: 390px; } + +.ag-ltr .ag-row-group-indent-39 { + padding-left: 390px; } + +.ag-rtl .ag-row-group-indent-39 { + padding-right: 390px; } + +.ag-ltr .ag-toolpanel-indent-40 { + padding-left: 400px; } + +.ag-rtl .ag-toolpanel-indent-40 { + padding-right: 400px; } + +.ag-ltr .ag-row-group-indent-40 { + padding-left: 400px; } + +.ag-rtl .ag-row-group-indent-40 { + padding-right: 400px; } + +.ag-ltr .ag-toolpanel-indent-41 { + padding-left: 410px; } + +.ag-rtl .ag-toolpanel-indent-41 { + padding-right: 410px; } + +.ag-ltr .ag-row-group-indent-41 { + padding-left: 410px; } + +.ag-rtl .ag-row-group-indent-41 { + padding-right: 410px; } + +.ag-ltr .ag-toolpanel-indent-42 { + padding-left: 420px; } + +.ag-rtl .ag-toolpanel-indent-42 { + padding-right: 420px; } + +.ag-ltr .ag-row-group-indent-42 { + padding-left: 420px; } + +.ag-rtl .ag-row-group-indent-42 { + padding-right: 420px; } + +.ag-ltr .ag-toolpanel-indent-43 { + padding-left: 430px; } + +.ag-rtl .ag-toolpanel-indent-43 { + padding-right: 430px; } + +.ag-ltr .ag-row-group-indent-43 { + padding-left: 430px; } + +.ag-rtl .ag-row-group-indent-43 { + padding-right: 430px; } + +.ag-ltr .ag-toolpanel-indent-44 { + padding-left: 440px; } + +.ag-rtl .ag-toolpanel-indent-44 { + padding-right: 440px; } + +.ag-ltr .ag-row-group-indent-44 { + padding-left: 440px; } + +.ag-rtl .ag-row-group-indent-44 { + padding-right: 440px; } + +.ag-ltr .ag-toolpanel-indent-45 { + padding-left: 450px; } + +.ag-rtl .ag-toolpanel-indent-45 { + padding-right: 450px; } + +.ag-ltr .ag-row-group-indent-45 { + padding-left: 450px; } + +.ag-rtl .ag-row-group-indent-45 { + padding-right: 450px; } + +.ag-ltr .ag-toolpanel-indent-46 { + padding-left: 460px; } + +.ag-rtl .ag-toolpanel-indent-46 { + padding-right: 460px; } + +.ag-ltr .ag-row-group-indent-46 { + padding-left: 460px; } + +.ag-rtl .ag-row-group-indent-46 { + padding-right: 460px; } + +.ag-ltr .ag-toolpanel-indent-47 { + padding-left: 470px; } + +.ag-rtl .ag-toolpanel-indent-47 { + padding-right: 470px; } + +.ag-ltr .ag-row-group-indent-47 { + padding-left: 470px; } + +.ag-rtl .ag-row-group-indent-47 { + padding-right: 470px; } + +.ag-ltr .ag-toolpanel-indent-48 { + padding-left: 480px; } + +.ag-rtl .ag-toolpanel-indent-48 { + padding-right: 480px; } + +.ag-ltr .ag-row-group-indent-48 { + padding-left: 480px; } + +.ag-rtl .ag-row-group-indent-48 { + padding-right: 480px; } + +.ag-ltr .ag-toolpanel-indent-49 { + padding-left: 490px; } + +.ag-rtl .ag-toolpanel-indent-49 { + padding-right: 490px; } + +.ag-ltr .ag-row-group-indent-49 { + padding-left: 490px; } + +.ag-rtl .ag-row-group-indent-49 { + padding-right: 490px; } + +.ag-side-bar { + display: flex; + flex-direction: row-reverse; + box-sizing: border-box; } + .ag-side-bar .ag-side-buttons { + width: 20px; } + .ag-side-bar .ag-side-buttons div button { + display: block; + white-space: nowrap; + outline: none; } + .ag-side-bar .ag-side-buttons div button span { + -webkit-writing-mode: tb; + -ms-writing-mode: tb; + writing-mode: tb; + -webkit-writing-mode: vertical-lr; + -ms-writing-mode: tb-lr; + writing-mode: vertical-lr; } + .ag-side-bar .panel-container { + width: 180px; } + .ag-side-bar.full-width .panel-container { + width: 200px; } + +.ag-rtl .ag-side-bar .ag-side-buttons button span { + -webkit-writing-mode: tb-rl; + -ms-writing-mode: tb-rl; + writing-mode: tb-rl; + -webkit-writing-mode: vertical-rl; + writing-mode: vertical-rl; } + +.ag-row-inline-editing { + z-index: 1; } + +.ag-status-bar { + display: flex; + justify-content: space-between; } + .ag-status-bar .ag-status-panel { + display: inline-flex; } + +.ag-status-bar-left { + display: inline-flex; } + +.ag-status-bar-center { + display: inline-flex; } + +.ag-status-bar-right { + display: inline-flex; } + +@media print { + .ag-body-viewport { + display: block; } + .ag-row { + page-break-inside: avoid; } } + +.ag-body .ag-pinned-left-cols-viewport, .ag-body .ag-body-viewport, .ag-body .ag-pinned-right-cols-viewport { + -webkit-overflow-scrolling: touch; } diff --git a/src/components/dashboard_users/css/ag-theme-material.css b/src/components/dashboard_users/css/ag-theme-material.css new file mode 100644 index 0000000..48eb4c8 --- /dev/null +++ b/src/components/dashboard_users/css/ag-theme-material.css @@ -0,0 +1,1878 @@ +.ag-theme-material { + background-color: #fff; + color: rgba(0, 0, 0, 0.87); + font: 400 13px "Roboto", sans-serif; } + .ag-theme-material .ag-tab-header .ag-tab.ag-tab-selected { + border-bottom: 2px solid #3f51b5; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-1 { + padding-left: 26px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-1 { + padding-right: 26px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-1 { + padding-left: 42px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-1 { + padding-right: 42px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-2 { + padding-left: 52px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-2 { + padding-right: 52px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-2 { + padding-left: 84px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-2 { + padding-right: 84px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-3 { + padding-left: 78px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-3 { + padding-right: 78px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-3 { + padding-left: 126px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-3 { + padding-right: 126px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-4 { + padding-left: 104px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-4 { + padding-right: 104px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-4 { + padding-left: 168px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-4 { + padding-right: 168px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-5 { + padding-left: 130px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-5 { + padding-right: 130px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-5 { + padding-left: 210px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-5 { + padding-right: 210px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-6 { + padding-left: 156px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-6 { + padding-right: 156px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-6 { + padding-left: 252px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-6 { + padding-right: 252px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-7 { + padding-left: 182px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-7 { + padding-right: 182px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-7 { + padding-left: 294px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-7 { + padding-right: 294px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-8 { + padding-left: 208px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-8 { + padding-right: 208px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-8 { + padding-left: 336px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-8 { + padding-right: 336px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-9 { + padding-left: 234px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-9 { + padding-right: 234px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-9 { + padding-left: 378px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-9 { + padding-right: 378px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-10 { + padding-left: 260px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-10 { + padding-right: 260px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-10 { + padding-left: 420px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-10 { + padding-right: 420px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-11 { + padding-left: 286px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-11 { + padding-right: 286px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-11 { + padding-left: 462px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-11 { + padding-right: 462px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-12 { + padding-left: 312px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-12 { + padding-right: 312px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-12 { + padding-left: 504px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-12 { + padding-right: 504px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-13 { + padding-left: 338px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-13 { + padding-right: 338px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-13 { + padding-left: 546px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-13 { + padding-right: 546px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-14 { + padding-left: 364px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-14 { + padding-right: 364px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-14 { + padding-left: 588px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-14 { + padding-right: 588px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-15 { + padding-left: 390px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-15 { + padding-right: 390px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-15 { + padding-left: 630px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-15 { + padding-right: 630px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-16 { + padding-left: 416px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-16 { + padding-right: 416px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-16 { + padding-left: 672px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-16 { + padding-right: 672px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-17 { + padding-left: 442px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-17 { + padding-right: 442px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-17 { + padding-left: 714px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-17 { + padding-right: 714px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-18 { + padding-left: 468px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-18 { + padding-right: 468px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-18 { + padding-left: 756px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-18 { + padding-right: 756px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-19 { + padding-left: 494px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-19 { + padding-right: 494px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-19 { + padding-left: 798px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-19 { + padding-right: 798px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-20 { + padding-left: 520px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-20 { + padding-right: 520px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-20 { + padding-left: 840px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-20 { + padding-right: 840px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-21 { + padding-left: 546px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-21 { + padding-right: 546px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-21 { + padding-left: 882px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-21 { + padding-right: 882px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-22 { + padding-left: 572px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-22 { + padding-right: 572px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-22 { + padding-left: 924px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-22 { + padding-right: 924px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-23 { + padding-left: 598px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-23 { + padding-right: 598px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-23 { + padding-left: 966px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-23 { + padding-right: 966px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-24 { + padding-left: 624px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-24 { + padding-right: 624px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-24 { + padding-left: 1008px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-24 { + padding-right: 1008px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-25 { + padding-left: 650px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-25 { + padding-right: 650px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-25 { + padding-left: 1050px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-25 { + padding-right: 1050px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-26 { + padding-left: 676px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-26 { + padding-right: 676px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-26 { + padding-left: 1092px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-26 { + padding-right: 1092px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-27 { + padding-left: 702px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-27 { + padding-right: 702px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-27 { + padding-left: 1134px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-27 { + padding-right: 1134px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-28 { + padding-left: 728px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-28 { + padding-right: 728px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-28 { + padding-left: 1176px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-28 { + padding-right: 1176px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-29 { + padding-left: 754px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-29 { + padding-right: 754px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-29 { + padding-left: 1218px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-29 { + padding-right: 1218px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-30 { + padding-left: 780px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-30 { + padding-right: 780px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-30 { + padding-left: 1260px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-30 { + padding-right: 1260px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-31 { + padding-left: 806px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-31 { + padding-right: 806px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-31 { + padding-left: 1302px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-31 { + padding-right: 1302px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-32 { + padding-left: 832px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-32 { + padding-right: 832px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-32 { + padding-left: 1344px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-32 { + padding-right: 1344px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-33 { + padding-left: 858px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-33 { + padding-right: 858px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-33 { + padding-left: 1386px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-33 { + padding-right: 1386px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-34 { + padding-left: 884px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-34 { + padding-right: 884px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-34 { + padding-left: 1428px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-34 { + padding-right: 1428px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-35 { + padding-left: 910px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-35 { + padding-right: 910px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-35 { + padding-left: 1470px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-35 { + padding-right: 1470px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-36 { + padding-left: 936px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-36 { + padding-right: 936px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-36 { + padding-left: 1512px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-36 { + padding-right: 1512px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-37 { + padding-left: 962px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-37 { + padding-right: 962px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-37 { + padding-left: 1554px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-37 { + padding-right: 1554px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-38 { + padding-left: 988px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-38 { + padding-right: 988px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-38 { + padding-left: 1596px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-38 { + padding-right: 1596px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-39 { + padding-left: 1014px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-39 { + padding-right: 1014px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-39 { + padding-left: 1638px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-39 { + padding-right: 1638px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-40 { + padding-left: 1040px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-40 { + padding-right: 1040px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-40 { + padding-left: 1680px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-40 { + padding-right: 1680px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-41 { + padding-left: 1066px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-41 { + padding-right: 1066px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-41 { + padding-left: 1722px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-41 { + padding-right: 1722px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-42 { + padding-left: 1092px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-42 { + padding-right: 1092px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-42 { + padding-left: 1764px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-42 { + padding-right: 1764px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-43 { + padding-left: 1118px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-43 { + padding-right: 1118px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-43 { + padding-left: 1806px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-43 { + padding-right: 1806px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-44 { + padding-left: 1144px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-44 { + padding-right: 1144px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-44 { + padding-left: 1848px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-44 { + padding-right: 1848px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-45 { + padding-left: 1170px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-45 { + padding-right: 1170px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-45 { + padding-left: 1890px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-45 { + padding-right: 1890px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-46 { + padding-left: 1196px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-46 { + padding-right: 1196px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-46 { + padding-left: 1932px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-46 { + padding-right: 1932px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-47 { + padding-left: 1222px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-47 { + padding-right: 1222px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-47 { + padding-left: 1974px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-47 { + padding-right: 1974px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-48 { + padding-left: 1248px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-48 { + padding-right: 1248px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-48 { + padding-left: 2016px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-48 { + padding-right: 2016px; } + .ag-theme-material .ag-ltr .ag-toolpanel-indent-49 { + padding-left: 1274px; } + .ag-theme-material .ag-rtl .ag-toolpanel-indent-49 { + padding-right: 1274px; } + .ag-theme-material .ag-ltr .ag-row-group-indent-49 { + padding-left: 2058px; } + .ag-theme-material .ag-rtl .ag-row-group-indent-49 { + padding-right: 2058px; } + .ag-theme-material .ag-ltr .ag-row-group-leaf-indent { + margin-left: 42px; } + .ag-theme-material .ag-rtl .ag-row-group-leaf-indent { + margin-right: 42px; } + .ag-theme-material .ag-rtl .ag-cell-first-right-pinned { + border-left: 1px solid #e0e0e0; } + .ag-theme-material .ag-ltr .ag-cell-first-right-pinned { + border-left: 1px solid #e0e0e0; } + .ag-theme-material .ag-rtl .ag-cell-last-left-pinned { + border-right: 1px solid #e0e0e0; } + .ag-theme-material .ag-ltr .ag-cell-last-left-pinned { + border-right: 1px solid #e0e0e0; } + .ag-theme-material .ag-value-change-delta { + padding-right: 2px; } + .ag-theme-material .ag-value-change-delta-up { + color: #43a047; } + .ag-theme-material .ag-value-change-delta-down { + color: #e53935; } + .ag-theme-material .ag-value-change-value { + background-color: transparent; + border-radius: 1px; + padding-left: 1px; + padding-right: 1px; + transition: background-color 1s; } + .ag-theme-material .ag-value-change-value-highlight { + background-color: #00acc1; + transition: background-color 0.1s; } + .ag-theme-material .ag-header { + color: rgba(0, 0, 0, 0.54); + font: 700 12px "Roboto", sans-serif; } + .ag-theme-material .ag-header-row { + border-bottom: 1px solid #e0e0e0; + box-sizing: border-box; } + .ag-theme-material .ag-row { + border-bottom: 1px solid #e0e0e0; + box-sizing: border-box; } + .ag-theme-material .ag-row-hover { + background-color: #fafafa; } + .ag-theme-material .ag-numeric-cell { + text-align: right; } + .ag-theme-material .ag-header-cell-label { + display: flex; + float: left; + height: 100%; + width: calc(100% - 18px); } + .ag-theme-material .ag-header-cell-label span { + height: 100%; } + .ag-theme-material .ag-header-cell-label > span { + float: left; } + .ag-theme-material .ag-header-cell-label .ag-header-icon { + background-position-y: 20px; + background-size: 14px 14px; + height: 100%; + margin: 0; + margin-left: 8px; + opacity: 0.87; } + .ag-theme-material .ag-header-cell-label .ag-header-cell-text { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } + .ag-theme-material .ag-numeric-header .ag-header-cell-label { + flex-direction: row-reverse; + float: right; } + .ag-theme-material .ag-numeric-header .ag-header-cell-label > span { + float: right; } + .ag-theme-material .ag-numeric-header .ag-header-cell-menu-button { + float: left; } + .ag-theme-material .ag-header-group-text { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } + .ag-theme-material .ag-header-cell, + .ag-theme-material .ag-header-group-cell { + line-height: 56px; + padding-left: 24px; + padding-right: 24px; } + .ag-theme-material .ag-cell { + line-height: 46px; + padding-left: 24px; + padding-right: 24px; + border: 1px solid transparent; + padding-left: 23px; + padding-right: 23px; } + .ag-theme-material .ag-row-drag { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMgNmgxMnYySDN6bTAgNGgxMnYySDN6IiBmaWxsPSIjMzMzIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + background-position-x: left; + background-position-y: 6px; + float: left; + height: 100%; + width: 42px; } + .ag-theme-material .ag-column-drag { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMgNmgxMnYySDN6bTAgNGgxMnYySDN6IiBmaWxsPSIjMzMzIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + background-position-x: left; + background-position-y: 8px !important; + height: 100%; + min-width: 26px; } + .ag-theme-material .ag-row-dragging { + opacity: 0.5; + z-index: 10000; } + .ag-theme-material .ag-ltr .ag-cell-focus { + border: 1px solid #3f51b5; + outline: initial; } + .ag-theme-material .ag-rtl .ag-cell-focus { + border: 1px solid #3f51b5; + outline: initial; } + .ag-theme-material .ag-header-cell-resize { + width: 16px; } + .ag-theme-material .ag-icon-aggregation { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEzIDEzdjFhMSAxIDAgMCAxLTEgMUg1YTEgMSAwIDAgMS0xLTF2LTFsMy00LTMtNFY0YTEgMSAwIDAgMSAxLTFoN2ExIDEgMCAwIDEgMSAxdjFINi41bDIuNTUgMy40YTEgMSAwIDAgMSAwIDEuMkw2LjUgMTNIMTN6IiBmaWxsPSIjMzMzIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + display: inline-block; } + .ag-theme-material .ag-icon-arrows { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTcuNSA2LjVoM3YtMmgyTDkgMSA1LjUgNC41aDJ2MnptLTEgMWgtMnYtMkwxIDlsMy41IDMuNXYtMmgydi0zek0xNyA5bC0zLjUtMy41djJoLTJ2M2gydjJMMTcgOXptLTYuNSAyLjVoLTN2MmgtMkw5IDE3bDMuNS0zLjVoLTJ2LTJ6IiBmaWxsPSIjMzMzIi8+PC9zdmc+); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + display: inline-block; } + .ag-theme-material .ag-icon-asc { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEwIDE1VjZsNCA0IDEtMS02LTYtNiA2IDEgMSA0LTR2OXoiIGZpbGw9IiMzMzMiLz48L3N2Zz4=); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + display: inline-block; } + .ag-theme-material .ag-icon-checkbox-checked-readonly { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE2IDBIMmEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJ6TTcgMTRMMiA5bDEuNDEtMS40MUw3IDExLjE3bDcuNTktNy41OUwxNiA1bC05IDl6IiBmaWxsPSIjMzMzIiBvcGFjaXR5PSIuNSIvPjwvc3ZnPg==); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + display: inline-block; } + .ag-theme-material .ag-icon-checkbox-checked { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE2IDBIMmEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJ6TTcgMTRMMiA5bDEuNDEtMS40MUw3IDExLjE3bDcuNTktNy41OUwxNiA1bC05IDl6IiBmaWxsPSIjMzMzIi8+PC9zdmc+); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + display: inline-block; } + .ag-theme-material .ag-icon-checkbox-indeterminate-readonly { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE2IDBIMkMuOSAwIDAgLjkgMCAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWMmMwLTEuMS0uOS0yLTItMnptLTIgMTBINFY4aDEwdjJ6IiBmaWxsPSIjMzMzIiBmaWxsLW9wYWNpdHk9Ii41Ii8+PC9zdmc+); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + display: inline-block; } + .ag-theme-material .ag-icon-checkbox-indeterminate { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE2IDBIMkMuOSAwIDAgLjkgMCAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWMmMwLTEuMS0uOS0yLTItMnptLTIgMTBINFY4aDEwdjJ6IiBmaWxsPSIjMzMzIi8+PC9zdmc+); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + display: inline-block; } + .ag-theme-material .ag-icon-checkbox-unchecked-readonly { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE2IDJ2MTRIMlYyaDE0em0wLTJIMkMuOSAwIDAgLjkgMCAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWMmMwLTEuMS0uOS0yLTItMnoiIGZpbGw9IiMzMzMiIGZpbGwtb3BhY2l0eT0iLjUiLz48L3N2Zz4=); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + display: inline-block; } + .ag-theme-material .ag-icon-checkbox-unchecked { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE2IDJ2MTRIMlYyaDE0em0wLTJIMkMuOSAwIDAgLjkgMCAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWMmMwLTEuMS0uOS0yLTItMnoiIGZpbGw9IiMzMzMiLz48L3N2Zz4=); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + display: inline-block; } + .ag-theme-material .ag-icon-column { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIgMmg0djJIMnptMCA0aDR2MTBIMnoiIGZpbGw9IiMzMzMiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + display: inline-block; } + .ag-theme-material .ag-icon-columns { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMgNGgzdjJIM3ptNSAwaDN2Mkg4em01IDBoM3YyaC0zek0zIDhoM3YySDN6bTUgMGgzdjJIOHptNSAwaDN2MmgtM3pNMyAxMmgzdjJIM3ptNSAwaDN2Mkg4em01IDBoM3YyaC0zeiIgZmlsbD0iIzMzMyIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + display: inline-block; } + .ag-theme-material .ag-icon-contracted { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTExLjUgMTIuNUw4IDlsMy41LTMuNS0xLTFMNiA5bDQuNSA0LjV6IiBmaWxsPSIjMzMzIi8+PC9zdmc+); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + display: inline-block; } + .ag-theme-material .ag-icon-copy { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzMzMyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMTEgMkg0YTEgMSAwIDAgMC0xIDF2OWgxVjNoN1YyeiIgZmlsbC1ydWxlPSJub256ZXJvIi8+PHBhdGggZD0iTTYgNGg2YTEgMSAwIDAgMSAxIDF2OWExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMVY1YTEgMSAwIDAgMSAxLTF6bTAgMXY5aDZWNUg2eiIvPjwvZz48L3N2Zz4=); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + display: inline-block; } + .ag-theme-material .ag-icon-cut { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTcuMzQ4IDUuOTQ4Yy4xNjEtLjM1LjI1Mi0uNzM1LjI1Mi0xLjE0OGEyLjggMi44IDAgMSAwLTUuNiAwIDIuOCAyLjggMCAwIDAgMi44IDIuOGMuNDEzIDAgLjc5OC0uMDkxIDEuMTQ4LS4yNTJMNy42IDlsLTEuNjUyIDEuNjUyQTIuNzI4IDIuNzI4IDAgMCAwIDQuOCAxMC40YTIuOCAyLjggMCAxIDAgMCA1LjYgMi44IDIuOCAwIDAgMCAyLjgtMi44YzAtLjQxMy0uMDkxLS43OTgtLjI1Mi0xLjE0OEw5IDEwLjRsNC45IDQuOUgxNnYtLjdMNy4zNDggNS45NDh6TTQuOCA2LjJhMS40IDEuNCAwIDEgMSAwLTIuOCAxLjQgMS40IDAgMCAxIDAgMi44em0wIDguNGExLjQgMS40IDAgMSAxIDAtMi44IDEuNCAxLjQgMCAwIDEgMCAyLjh6TTkgOS4zNUEuMzQ3LjM0NyAwIDAgMSA4LjY1IDljMC0uMTk2LjE1NC0uMzUuMzUtLjM1LjE5NiAwIC4zNS4xNTQuMzUuMzUgMCAuMTk2LS4xNTQuMzUtLjM1LjM1em00LjktNi42NUw5LjcgNi45bDEuNCAxLjRMMTYgMy40di0uN2gtMi4xeiIgZmlsbD0iIzMzMyIvPjwvc3ZnPg==); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + display: inline-block; } + .ag-theme-material .ag-icon-desc { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTggM3Y5LjEzTDQgOCAzIDlsNiA2IDYtNi0xLTEtNCA0LjEzVjN6IiBmaWxsPSIjMzMzIi8+PC9zdmc+); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + display: inline-block; } + .ag-theme-material .ag-icon-expanded { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTYgMTIuNUw5LjUgOSA2IDUuNWwxLTFMMTEuNSA5IDcgMTMuNXoiIGZpbGw9IiMzMzMiLz48L3N2Zz4=); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + display: inline-block; } + .ag-theme-material .ag-icon-eye-slash { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzMzMyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMTIuNDQ5IDEyLjQ1bC0xLjM4OC0xLjM4N2EyLjkxOCAyLjkxOCAwIDAgMC00LjEyNC00LjEyNEw1LjU1IDUuNTVBNi44NSA2Ljg1IDAgMCAxIDkgNC42MjUgNi44OTkgNi44OTkgMCAwIDEgMTUuNDE3IDlhNi45MzUgNi45MzUgMCAwIDEtMi45NjggMy40NXptLS45NTUuNDZBNi44OTkgNi44OTkgMCAwIDEgMi41ODQgOSA2LjkzMyA2LjkzMyAwIDAgMSA0LjcxIDYuMTI1TDYuMzU1IDcuNzdhMi45MTggMi45MTggMCAwIDAgMy44NzUgMy44NzVsMS4yNjQgMS4yNjR6IiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48cGF0aCBkPSJNMTAuMjQyIDEwLjIzNUw3Ljc2NSA3Ljc1OEExLjc0NCAxLjc0NCAwIDAgMSA5IDcuMjVjLjk2OCAwIDEuNzUuNzgyIDEuNzUgMS43NSAwIC40ODItLjE5NC45MTgtLjUwOCAxLjIzNXptLS45MjcuNDg3YTEuNzQ4IDEuNzQ4IDAgMCAxLTIuMDM3LTIuMDM3bDIuMDM3IDIuMDM3eiIvPjxwYXRoIGQ9Ik0zLjA3IDguNDg3aDEyLjQxN3YxSDMuMDd6Ii8+PC9nPjwvc3ZnPg==); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + display: inline-block; } + .ag-theme-material .ag-icon-eye { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkgNC42MjVBNi44OTkgNi44OTkgMCAwIDAgMi41ODMgOSA2Ljg5OSA2Ljg5OSAwIDAgMCA5IDEzLjM3NSA2Ljg5OSA2Ljg5OSAwIDAgMCAxNS40MTcgOSA2Ljg5OSA2Ljg5OSAwIDAgMCA5IDQuNjI1em0wIDcuMjkyYTIuOTE4IDIuOTE4IDAgMCAxIDAtNS44MzQgMi45MTggMi45MTggMCAwIDEgMCA1LjgzNHpNOSA3LjI1Yy0uOTY4IDAtMS43NS43ODItMS43NSAxLjc1cy43ODIgMS43NSAxLjc1IDEuNzUgMS43NS0uNzgyIDEuNzUtMS43NVM5Ljk2OCA3LjI1IDkgNy4yNXoiIGZpbGw9IiMzMzMiLz48L3N2Zz4=); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + display: inline-block; } + .ag-theme-material .ag-icon-filter { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzMzMyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNNCAxMGgxMFY4SDR6TTIgNHYyaDE0VjR6Ii8+PHBhdGggZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNNyAxNGg0di0ySDd6Ii8+PC9nPjwvc3ZnPg==); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + display: inline-block; } + .ag-theme-material .ag-icon-group { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzMzMyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMTQgMTRIN3YtMmg5YTIgMiAwIDAgMS0yIDJ6bS01LTJ2Mmgydi0ySDl6IiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48cGF0aCBkPSJNMTYgNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMmgxM3pNNyA0djJINVY0aDJ6bTkgNkg3VjhoOXYyek05IDh2MmgyVjhIOXoiLz48L2c+PC9zdmc+); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + display: inline-block; } + .ag-theme-material .ag-icon-indeterminate { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkgNC42MjVBNi44OTkgNi44OTkgMCAwIDAgMi41ODMgOSA2Ljg5OSA2Ljg5OSAwIDAgMCA5IDEzLjM3NSA2Ljg5OSA2Ljg5OSAwIDAgMCAxNS40MTcgOSA2Ljg5OSA2Ljg5OSAwIDAgMCA5IDQuNjI1em0wIDcuMjkyYTIuOTE4IDIuOTE4IDAgMCAxIDAtNS44MzQgMi45MTggMi45MTggMCAwIDEgMCA1LjgzNHoiIGZpbGw9IiMzMzMiLz48L3N2Zz4=); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + display: inline-block; } + .ag-theme-material .ag-icon-left { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE1IDhINmw0LTQtMS0xLTYgNiA2IDYgMS0xLTQtNGg5eiIgZmlsbD0iIzMzMyIvPjwvc3ZnPg==); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + display: inline-block; } + .ag-theme-material .ag-icon-loading { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxwYXRoIGlkPSJhIiBkPSJNNCAwaDJ2M0g0eiIvPjxwYXRoIGlkPSJiIiBkPSJNNCA3aDJ2M0g0eiIvPjxwYXRoIGlkPSJjIiBkPSJNMCA0aDN2MkgweiIvPjxwYXRoIGlkPSJkIiBkPSJNNyA0aDN2Mkg3eiIvPjxwYXRoIGlkPSJlIiBkPSJNNCAwaDJ2M0g0eiIvPjxwYXRoIGlkPSJmIiBkPSJNNCA3aDJ2M0g0eiIvPjxwYXRoIGlkPSJnIiBkPSJNMCA0aDN2MkgweiIvPjxwYXRoIGlkPSJoIiBkPSJNNyA0aDN2Mkg3eiIvPjwvZGVmcz48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDMgNCkiPjx1c2UgZmlsbD0iI0Q4RDhEOCIgeGxpbms6aHJlZj0iI2EiLz48cGF0aCBzdHJva2U9IiM5Nzk3OTciIGQ9Ik00LjUuNWgxdjJoLTF6Ii8+PC9nPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDMgNCkiPjx1c2UgZmlsbD0iI0Q4RDhEOCIgeGxpbms6aHJlZj0iI2IiLz48cGF0aCBzdHJva2U9IiM5Nzk3OTciIGQ9Ik00LjUgNy41aDF2MmgtMXoiLz48L2c+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMyA0KSI+PHVzZSBmaWxsPSIjRDhEOEQ4IiB4bGluazpocmVmPSIjYyIvPjxwYXRoIHN0cm9rZT0iIzk3OTc5NyIgZD0iTS41IDQuNWgydjFoLTJ6Ii8+PC9nPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDMgNCkiPjx1c2UgZmlsbD0iI0Q4RDhEOCIgeGxpbms6aHJlZj0iI2QiLz48cGF0aCBzdHJva2U9IiM5Nzk3OTciIGQ9Ik03LjUgNC41aDJ2MWgtMnoiLz48L2c+PGcgb3BhY2l0eT0iLjcxNCI+PGcgdHJhbnNmb3JtPSJyb3RhdGUoNDUgMS42NzIgMTAuNjIxKSI+PHVzZSBmaWxsPSIjRDhEOEQ4IiB4bGluazpocmVmPSIjZSIvPjxwYXRoIHN0cm9rZT0iIzk3OTc5NyIgZD0iTTQuNS41aDF2MmgtMXoiLz48L2c+PGcgdHJhbnNmb3JtPSJyb3RhdGUoNDUgMS42NzIgMTAuNjIxKSI+PHVzZSBmaWxsPSIjRDhEOEQ4IiB4bGluazpocmVmPSIjZiIvPjxwYXRoIHN0cm9rZT0iIzk3OTc5NyIgZD0iTTQuNSA3LjVoMXYyaC0xeiIvPjwvZz48ZyB0cmFuc2Zvcm09InJvdGF0ZSg0NSAxLjY3MiAxMC42MjEpIj48dXNlIGZpbGw9IiNEOEQ4RDgiIHhsaW5rOmhyZWY9IiNnIi8+PHBhdGggc3Ryb2tlPSIjOTc5Nzk3IiBkPSJNLjUgNC41aDJ2MWgtMnoiLz48L2c+PGcgdHJhbnNmb3JtPSJyb3RhdGUoNDUgMS42NzIgMTAuNjIxKSI+PHVzZSBmaWxsPSIjRDhEOEQ4IiB4bGluazpocmVmPSIjaCIvPjxwYXRoIHN0cm9rZT0iIzk3OTc5NyIgZD0iTTcuNSA0LjVoMnYxaC0yeiIvPjwvZz48L2c+PC9nPjwvc3ZnPg==); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + display: inline-block; } + .ag-theme-material .ag-icon-menu { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzMzMyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBmaWxsLXJ1bGU9Im5vbnplcm8iIGQ9Ik0yIDE0aDE0di0ySDJ6Ii8+PHBhdGggZD0iTTIgMTBoMTRWOEgyem0wLTZ2MmgxNFY0eiIvPjwvZz48L3N2Zz4=); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + display: inline-block; } + .ag-theme-material .ag-icon-minus { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE0IDEwSDRWOGgxMHoiIGZpbGw9IiMzMzMiLz48L3N2Zz4=); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + display: inline-block; } + .ag-theme-material .ag-icon-none { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzMzMyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBmaWxsLXJ1bGU9Im5vbnplcm8iIGQ9Ik0yIDE0aDV2LTJIMnoiLz48cGF0aCBkPSJNMiA0djJoMTRWNHptMCA2aDlWOEgyeiIvPjwvZz48L3N2Zz4=); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + display: inline-block; } + .ag-theme-material .ag-icon-not-allowed { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkgMS41QzQuODYgMS41IDEuNSA0Ljg2IDEuNSA5YzAgNC4xNCAzLjM2IDcuNSA3LjUgNy41IDQuMTQgMCA3LjUtMy4zNiA3LjUtNy41IDAtNC4xNC0zLjM2LTcuNS03LjUtNy41ek0zIDljMC0zLjMxNSAyLjY4NS02IDYtNmE1LjkzIDUuOTMgMCAwIDEgMy42NzUgMS4yNjhsLTguNDA4IDguNDA3QTUuOTI3IDUuOTI3IDAgMCAxIDMgOXptNiA2YTUuOTI3IDUuOTI3IDAgMCAxLTMuNjc1LTEuMjY4bDguNDA3LTguNDA3QTUuOTI3IDUuOTI3IDAgMCAxIDE1IDljMCAzLjMxNS0yLjY4NSA2LTYgNnoiIGZpbGw9IiMzMzMiLz48L3N2Zz4=); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + display: inline-block; } + .ag-theme-material .ag-icon-paste { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTExIDNjMC0uNS0uNS0xLjUtMi0xLjVTNyAyLjUgNyAzSDRhMSAxIDAgMCAwLTEgMXYxMWExIDEgMCAwIDAgMSAxaDEwYTEgMSAwIDAgMCAxLTFWNGExIDEgMCAwIDAtMS0xaC0zem0tMiAuMjczYy4zNjcgMCAuNjY3LjI4Ni42NjcuNjM2IDAgLjM1LS4zLjYzNi0uNjY3LjYzNi0uMzY3IDAtLjY2Ny0uMjg2LS42NjctLjYzNiAwLS4zNS4zLS42MzYuNjY3LS42MzZ6TTE0IDE1SDRWNGgydjJoNlY0aDJ2MTF6IiBmaWxsPSIjMzMzIi8+PC9zdmc+); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + display: inline-block; } + .ag-theme-material .ag-icon-pin { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBmaWxsPSIjMzMzIiBkPSJNOS42NTcgMmw1LjQxIDUuNDEtLjU0LjU0Mi0uNTQyLS41NDEtNC4zMjggMi4xNjQgMS4wODIgMS4wODItMS41NDEgMS41NEw0Ljg2OSA3Ljg3bDEuNTQyLTEuNTQgMS4wODIgMS4wOCAyLjE2NC00LjMyOS0uNTQxLS41NHoiLz48cGF0aCBkPSJNNiAxMWwtMi41IDIuNSIgc3Ryb2tlPSIjMzMzIi8+PC9nPjwvc3ZnPg==); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + display: inline-block; } + .ag-theme-material .ag-icon-pivot { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBzdHJva2U9IiMzMzMiIGQ9Ik0xMS41IDEwLjVMMTMgOWwxLjUgMS41bS01IDFMOCAxM2wxLjUgMS41Ii8+PHBhdGggZD0iTTAgMGgxOHYxOEgweiIvPjxwYXRoIGQ9Ik0zIDFoMTJhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDNhMiAyIDAgMCAxLTItMlYzYTIgMiAwIDAgMSAyLTJ6bTMgMTR2LTNIM3YzaDN6bTAtNFY4SDN2M2gzem0wLTVWM0gzdjNoM3ptNSAwVjNIN3YzaDR6bTQgOVY4SDd2N2g4em0wLTlWM2gtM3YzaDN6IiBmaWxsPSIjMzMzIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48L2c+PC9zdmc+); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + display: inline-block; } + .ag-theme-material .ag-icon-plus { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE0IDEwaC00djRIOHYtNEg0VjhoNFY0aDJ2NGg0eiIgZmlsbD0iIzMzMyIvPjwvc3ZnPg==); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + display: inline-block; } + .ag-theme-material .ag-icon-right { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkgM0w4IDRsNCA0SDN2Mmg5bC00IDQgMSAxIDYtNnoiIGZpbGw9IiMzMzMiLz48L3N2Zz4=); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + display: inline-block; } + .ag-theme-material .ag-icon-small-left { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEwIDEzTDYgOWw0LTR6IiBmaWxsPSIjMzMzIi8+PC9zdmc+); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + display: inline-block; } + .ag-theme-material .ag-icon-small-right { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTggNWw0IDQtNCA0eiIgZmlsbD0iIzMzMyIvPjwvc3ZnPg==); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + display: inline-block; } + .ag-theme-material .ag-icon-small-up { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUgMTBsNC00IDQgNHoiIGZpbGw9IiMzMzMiLz48L3N2Zz4=); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + display: inline-block; } + .ag-theme-material .ag-icon-small-down { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUgOGw0IDQgNC00eiIgZmlsbD0iIzMzMyIvPjwvc3ZnPg==); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + display: inline-block; } + .ag-theme-material .ag-icon-tick { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTYuNSAxMi41TDMgOWwtMSAxIDQuNSA0LjUgOS05LTEtMXoiIGZpbGw9IiMzMzMiLz48L3N2Zz4=); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + display: inline-block; } + .ag-theme-material .ag-icon-cross { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE0IDVsLTEtMS00IDQtNC00LTEgMSA0IDQtNCA0IDEgMSA0LTQgNCA0IDEtMS00LTR6IiBmaWxsPSIjMzMzIi8+PC9zdmc+); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + display: inline-block; } + .ag-theme-material .ag-icon-tree-open { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyLjUgNi41TDkgMTAgNS41IDYuNWwtMSAxTDkgMTJsNC41LTQuNXoiIGZpbGw9IiMzMzMiLz48L3N2Zz4=); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + display: inline-block; } + .ag-theme-material .ag-icon-tree-closed { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTYgMTIuNUw5LjUgOSA2IDUuNWwxLTFMMTEuNSA5IDcgMTMuNXoiIGZpbGw9IiMzMzMiLz48L3N2Zz4=); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + display: inline-block; } + .ag-theme-material .ag-icon-tree-indeterminate { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMgOGgxMnYxLjVIM3oiIGZpbGw9IiMzMzMiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + display: inline-block; } + .ag-theme-material .ag-header-cell-menu-button .ag-icon-menu { + display: block; + height: 56px; } + .ag-theme-material .ag-icon-checkbox-checked:empty { + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE2IDBIMmEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJ6TTcgMTRMMiA5bDEuNDEtMS40MUw3IDExLjE3bDcuNTktNy41OUwxNiA1bC05IDl6IiBmaWxsPSIjRkY0MDgxIi8+PC9zdmc+); } + .ag-theme-material .ag-menu { + background: #fff; + border-radius: 2px; + box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); + padding: 8px; + padding: 0; + z-index: 5; } + .ag-theme-material .ag-menu .ag-menu-list { + cursor: default; + margin-bottom: 8px; + margin-top: 8px; + width: 100%; } + .ag-theme-material .ag-menu .ag-menu-option { + line-height: 32px; + padding-left: 16px; + padding-right: 16px; } + .ag-theme-material .ag-menu .ag-menu-option > span { + display: table-cell; + vertical-align: middle; } + .ag-theme-material .ag-menu .ag-menu-option-active { + background: #fafafa; } + .ag-theme-material .ag-menu .ag-menu-option-disabled { + opacity: 0.5; } + .ag-theme-material .ag-menu .ag-menu-option-icon { + padding-left: 8px; + padding-right: 8px; } + .ag-theme-material .ag-menu .ag-menu-option-icon span { + height: 18px; + line-height: 0; + margin-top: 8px; } + .ag-theme-material .ag-menu .ag-menu-option-shortcut { + padding-left: 16px; } + .ag-theme-material .ag-menu .ag-menu-separator { + margin-left: -8px; } + .ag-theme-material .ag-menu .ag-menu-separator > span { + background-image: url("data:image/svg+xml;utf8, "); + height: 16px; } + .ag-theme-material .ag-menu .ag-menu-option-popup-pointer { + width: 34px; } + .ag-theme-material.ag-dnd-ghost { + background: #fff; + border-radius: 2px; + box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); + padding: 8px; + border: 1px solid #e0e0e0; + color: rgba(0, 0, 0, 0.54); + font: 700 12px "Roboto", sans-serif; + height: 56px !important; + line-height: 56px; + margin: 0; + padding: 0 16px; + transform: translateY(16px); + z-index: 5; } + .ag-theme-material.ag-dnd-ghost span, + .ag-theme-material.ag-dnd-ghost div { + float: left; + height: 100%; + margin: 0; + padding: 0; } + .ag-theme-material.ag-dnd-ghost .ag-dnd-ghost-icon { + margin-right: 8px; + opacity: 0.87; } + .ag-theme-material .ag-tab-header { + background: #eee; + min-width: 220px; + width: 100%; + display: table; } + .ag-theme-material .ag-tab-header .ag-tab { + border-bottom: 2px solid transparent; + height: 32px; + text-align: center; + vertical-align: middle; + display: table-cell; } + .ag-theme-material .ag-tab-header .ag-tab.ag-tab-selected .ag-icon-filter { + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzNGNTFCNSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNNCAxMGgxMFY4SDR6TTIgNHYyaDE0VjR6Ii8+PHBhdGggZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNNyAxNGg0di0ySDd6Ii8+PC9nPjwvc3ZnPg==); + display: inline-block; } + .ag-theme-material .ag-tab-header .ag-tab.ag-tab-selected .ag-icon-columns { + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMgNGgzdjJIM3ptNSAwaDN2Mkg4em01IDBoM3YyaC0zek0zIDhoM3YySDN6bTUgMGgzdjJIOHptNSAwaDN2MmgtM3pNMyAxMmgzdjJIM3ptNSAwaDN2Mkg4em01IDBoM3YyaC0zeiIgZmlsbD0iIzNGNTFCNSIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+); + display: inline-block; } + .ag-theme-material .ag-tab-header .ag-tab.ag-tab-selected .ag-icon-menu { + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzNGNTFCNSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBmaWxsLXJ1bGU9Im5vbnplcm8iIGQ9Ik0yIDE0aDE0di0ySDJ6Ii8+PHBhdGggZD0iTTIgMTBoMTRWOEgyem0wLTZ2MmgxNFY0eiIvPjwvZz48L3N2Zz4=); + display: inline-block; } + .ag-theme-material .ag-tab-body { + padding: 8px 0; } + .ag-theme-material .ag-tab-body .ag-filter-select { + margin: 8px; + width: calc(100% - 16px); } + .ag-theme-material .ag-tab-body .ag-menu-list { + margin-bottom: 0; + margin-top: 0; } + .ag-theme-material .ag-tab-body .ag-menu-list > div:first-child > span { + padding-top: 0; } + .ag-theme-material .ag-tab-body .ag-menu-list > div:last-child > span { + padding-bottom: 0; } + .ag-theme-material .ag-tab-body .ag-menu-list > div:last-child > .ag-menu-option-popup-pointer { + background-position-y: 0; } + .ag-theme-material .ag-filter-select { + margin: 8px; + width: calc(100% - 16px); } + .ag-theme-material .ag-filter input[type="radio"] { + margin: 0 3px 0 6px; + width: 12px; + height: 17px; + vertical-align: top; } + .ag-theme-material .ag-filter input[type="text"], + .ag-theme-material .ag-filter input[type="date"] { + background: transparent; + box-sizing: border-box; + color: rgba(0, 0, 0, 0.87); + font-family: inherit; + font-size: inherit; + height: 24px; + padding-bottom: 8px; + border-width: 0; + border-bottom: 1px solid #e0e0e0; + padding-left: 8px; } + .ag-theme-material .ag-filter input[type="text"]:focus, + .ag-theme-material .ag-filter input[type="date"]:focus { + border-bottom: 2px solid #3f51b5; + outline: none; + padding-bottom: 7px; } + .ag-theme-material .ag-filter input[type="text"]::placeholder, + .ag-theme-material .ag-filter input[type="date"]::placeholder { + color: rgba(0, 0, 0, 0.38); } + .ag-theme-material .ag-filter label { + display: block; + padding-left: 8px; } + .ag-theme-material .ag-filter .ag-set-filter-list { + height: 260px; + padding-top: 8px; } + .ag-theme-material .ag-filter .ag-filter-header-container { + box-sizing: border-box; + height: 40px; } + .ag-theme-material .ag-filter .ag-filter-header-container:nth-child(2) { + border-bottom: 1px solid #e0e0e0; } + .ag-theme-material .ag-filter .ag-filter-checkbox { + float: left; + height: 40px; + margin-right: 8px; + padding-top: 4px; } + .ag-theme-material .ag-filter .ag-filter-value { + height: 40px; + line-height: 28px; } + .ag-theme-material .ag-filter .ag-filter-apply-panel { + display: flex; + justify-content: flex-end; + padding: 8px; + padding-top: 16px; } + .ag-theme-material .ag-filter .ag-filter-apply-panel button { + appearance: none; + background-color: transparent; + border: 0; + color: #3f51b5; + font-family: inherit; + font-size: inherit; + margin: 0; + padding: 0; + text-transform: uppercase; } + .ag-theme-material .ag-filter .ag-filter-apply-panel button + button { + margin-left: 16px; } + .ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column-group, + .ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column { + height: 32px; + line-height: 32px; + margin-left: 0; } + .ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column-group span, + .ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column span { + float: left; + height: 100%; } + .ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column-group .ag-column-select-indent, + .ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column .ag-column-select-indent { + width: 16px; } + .ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column-group .ag-column-select-checkbox, + .ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column-group .ag-column-group-icons, + .ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column .ag-column-select-checkbox, + .ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column .ag-column-group-icons { + margin-left: 8px; + margin-right: 8px; } + .ag-theme-material .ag-column-select-panel .ag-primary-cols-list-panel { + padding-top: 8px; } + .ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column.ag-toolpanel-add-group-indent { + margin-left: 34px; } + .ag-theme-material .ag-filter-filter { + margin-bottom: 8px; } + .ag-theme-material .ag-primary-cols-header-panel { + border-bottom: 1px solid #e0e0e0; + box-sizing: border-box; + height: 56px; + padding-top: 8px; } + .ag-theme-material .ag-primary-cols-header-panel a { + margin: 0 8px; + padding-top: 4px; } + .ag-theme-material .ag-primary-cols-header-panel .ag-filter-body { + margin-left: 8px; + margin-right: 8px; } + .ag-theme-material .ag-group-child-count::before { + content: " "; } + .ag-theme-material .ag-tool-panel-wrapper { + border-right: 0; } + .ag-theme-material .ag-tool-panel-wrapper .ag-filter-panel { + width: 100%; } + .ag-theme-material .ag-tool-panel-wrapper .ag-filter-panel .ag-filter-toolpanel-instance { + color: rgba(0, 0, 0, 0.54); + font-weight: 600; + flex: auto; + flex-direction: column; + flex-wrap: nowrap; + display: flex; + flex-flow: column nowrap; } + .ag-theme-material .ag-tool-panel-wrapper .ag-filter-panel .ag-filter-toolpanel-instance .ag-filter-toolpanel-header { + padding: 5px 0 5px 5px; } + .ag-theme-material .ag-tool-panel-wrapper .ag-filter-panel .ag-filter-body-wrapper { + padding-top: 5px; } + .ag-theme-material .ag-tool-panel-wrapper .ag-filter-panel .ag-filter-air { + border: 1px solid #e0e0e0; + border-left: 0; + border-right: 0; + padding: 8px 0; } + .ag-theme-material .ag-tool-panel-wrapper .ag-pivot-mode-panel { + border-bottom: 1px solid #e0e0e0; + box-sizing: border-box; + height: 56px; + line-height: 56px; } + .ag-theme-material .ag-tool-panel-wrapper .ag-pivot-mode-panel span { + float: left; + height: 100%; } + .ag-theme-material .ag-tool-panel-wrapper .ag-pivot-mode-panel .ag-pivot-mode-select { + margin-left: 8px; } + .ag-theme-material .ag-tool-panel-wrapper .ag-pivot-mode-panel .ag-pivot-mode-select .ag-checkbox-label { + margin-left: 8px; } + .ag-theme-material .ag-tool-panel-wrapper .ag-column-select-panel { + border-bottom: 1px solid #e0e0e0; + padding-bottom: 7px; + padding-top: 0; } + .ag-theme-material .ag-tool-panel-wrapper .ag-column-drop { + border-bottom: 1px solid #e0e0e0; + clear: both; + overflow: auto; + padding: 8px 0; + padding-bottom: 16px; } + .ag-theme-material .ag-tool-panel-wrapper .ag-column-drop .ag-icon { + float: left; + height: 40px; + margin: 0 8px; } + .ag-theme-material .ag-tool-panel-wrapper .ag-column-drop .ag-column-drop-title { + clear: right; + float: left; + height: 40px; + line-height: 40px; + width: calc(100% - 34px); } + .ag-theme-material .ag-tool-panel-wrapper .ag-column-drop .ag-column-drop-empty-message { + clear: both; + color: rgba(0, 0, 0, 0.38); + font: 700 12px "Roboto", sans-serif; + line-height: 16px; + padding-left: 32px; + padding-right: 8px; } + .ag-theme-material .ag-tool-panel-wrapper .ag-column-drop:last-child { + border-bottom: 0; } + .ag-theme-material .ag-filter-icon:empty { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzMzMyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNNCAxMGgxMFY4SDR6TTIgNHYyaDE0VjR6Ii8+PHBhdGggZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNNyAxNGg0di0ySDd6Ii8+PC9nPjwvc3ZnPg==); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; } + .ag-theme-material .ag-sort-ascending-icon:empty { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEwIDE1VjZsNCA0IDEtMS02LTYtNiA2IDEgMSA0LTR2OXoiIGZpbGw9IiMzMzMiLz48L3N2Zz4=); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; } + .ag-theme-material .ag-sort-descending-icon:empty { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTggM3Y5LjEzTDQgOCAzIDlsNiA2IDYtNi0xLTEtNCA0LjEzVjN6IiBmaWxsPSIjMzMzIi8+PC9zdmc+); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; } + .ag-theme-material .ag-sort-none-icon:empty { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzMzMyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBmaWxsLXJ1bGU9Im5vbnplcm8iIGQ9Ik0yIDE0aDV2LTJIMnoiLz48cGF0aCBkPSJNMiA0djJoMTRWNHptMCA2aDlWOEgyeiIvPjwvZz48L3N2Zz4=); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; } + .ag-theme-material .ag-numeric-header .ag-header-cell-label .ag-header-icon { + margin-left: 0; + margin-right: 8px; } + .ag-theme-material .ag-paging-panel { + align-items: center; + border-top: 1px solid #e0e0e0; + color: rgba(0, 0, 0, 0.54); + display: flex; + height: 56px; + justify-content: flex-end; + padding: 0 24px; } + .ag-theme-material .ag-paging-panel > span { + margin-left: 32px; } + .ag-theme-material button[ref="btFirst"] { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzMzMyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNNC41IDQuNUg2djlINC41eiIvPjxwYXRoIGZpbGwtcnVsZT0ibm9uemVybyIgZD0iTTE0IDEyLjVMMTAuNSA5IDE0IDUuNWwtMS0xTDguNSA5bDQuNSA0LjV6Ii8+PC9nPjwvc3ZnPg==); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + overflow: hidden; + text-indent: 100%; + appearance: none; + border: 0; + opacity: 0.54; + padding: 0; } + .ag-theme-material button[ref="btFirst"][disabled] { + opacity: 0.38; } + .ag-theme-material button[ref="btPrevious"] { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTExLjUgMTIuNUw4IDlsMy41LTMuNS0xLTFMNiA5bDQuNSA0LjV6IiBmaWxsPSIjMzMzIi8+PC9zdmc+); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + overflow: hidden; + text-indent: 100%; + appearance: none; + border: 0; + opacity: 0.54; + padding: 0; } + .ag-theme-material button[ref="btPrevious"][disabled] { + opacity: 0.38; } + .ag-theme-material button[ref="btLast"] { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzMzMyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMTMuNSA0LjVIMTJ2OWgxLjV6Ii8+PHBhdGggZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNNCAxMi41TDcuNSA5IDQgNS41bDEtMUw5LjUgOSA1IDEzLjV6Ii8+PC9nPjwvc3ZnPg==); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + overflow: hidden; + text-indent: 100%; + appearance: none; + border: 0; + opacity: 0.54; + padding: 0; } + .ag-theme-material button[ref="btLast"][disabled] { + opacity: 0.38; } + .ag-theme-material button[ref="btNext"] { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTYgMTIuNUw5LjUgOSA2IDUuNWwxLTFMMTEuNSA5IDcgMTMuNXoiIGZpbGw9IiMzMzMiLz48L3N2Zz4=); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + overflow: hidden; + text-indent: 100%; + appearance: none; + border: 0; + opacity: 0.54; + padding: 0; } + .ag-theme-material button[ref="btNext"][disabled] { + opacity: 0.38; } + .ag-theme-material .ag-rtl button[ref="btFirst"] { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzMzMyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMTMuNSA0LjVIMTJ2OWgxLjV6Ii8+PHBhdGggZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNNCAxMi41TDcuNSA5IDQgNS41bDEtMUw5LjUgOSA1IDEzLjV6Ii8+PC9nPjwvc3ZnPg==); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; } + .ag-theme-material .ag-rtl button[ref="btPrevious"] { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTYgMTIuNUw5LjUgOSA2IDUuNWwxLTFMMTEuNSA5IDcgMTMuNXoiIGZpbGw9IiMzMzMiLz48L3N2Zz4=); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; } + .ag-theme-material .ag-rtl button[ref="btLast"] { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzMzMyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNNC41IDQuNUg2djlINC41eiIvPjxwYXRoIGZpbGwtcnVsZT0ibm9uemVybyIgZD0iTTE0IDEyLjVMMTAuNSA5IDE0IDUuNWwtMS0xTDguNSA5bDQuNSA0LjV6Ii8+PC9nPjwvc3ZnPg==); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; } + .ag-theme-material .ag-rtl button[ref="btNext"] { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTExLjUgMTIuNUw4IDlsMy41LTMuNS0xLTFMNiA5bDQuNSA0LjV6IiBmaWxsPSIjMzMzIi8+PC9zdmc+); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; } + .ag-theme-material .ag-row-selected { + background-color: #eee; } + .ag-theme-material .ag-cell-range-selected:not(.ag-cell-focus) { + background-color: #e8eaf6; } + .ag-theme-material .ag-cell-inline-editing { + background: #fff; + border-radius: 2px; + box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); + padding: 8px; + background: #fafafa; + height: 72px; + line-height: normal; + padding: 24px; + z-index: 2; } + .ag-theme-material .ag-cell-inline-editing input[type="text"], + .ag-theme-material .ag-cell-inline-editing input[type="tel"], + .ag-theme-material .ag-cell-inline-editing input[type="date"], + .ag-theme-material .ag-cell-inline-editing input[type="datetime-local"] { + background: transparent; + box-sizing: border-box; + color: rgba(0, 0, 0, 0.87); + font-family: inherit; + font-size: inherit; + height: 24px; + padding-bottom: 8px; + border-width: 0; + border-bottom: 1px solid #e0e0e0; } + .ag-theme-material .ag-cell-inline-editing input[type="text"]:focus, + .ag-theme-material .ag-cell-inline-editing input[type="tel"]:focus, + .ag-theme-material .ag-cell-inline-editing input[type="date"]:focus, + .ag-theme-material .ag-cell-inline-editing input[type="datetime-local"]:focus { + border-bottom: 2px solid #3f51b5; + outline: none; + padding-bottom: 7px; } + .ag-theme-material .ag-cell-inline-editing input[type="text"]::placeholder, + .ag-theme-material .ag-cell-inline-editing input[type="tel"]::placeholder, + .ag-theme-material .ag-cell-inline-editing input[type="date"]::placeholder, + .ag-theme-material .ag-cell-inline-editing input[type="datetime-local"]::placeholder { + color: rgba(0, 0, 0, 0.38); } + .ag-theme-material .ag-cell-inline-editing select { + height: auto; } + .ag-theme-material .ag-popup-editor { + background: #fff; + border-radius: 2px; + box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); + padding: 8px; + background: #fafafa; + padding: 0; + z-index: 1; } + .ag-theme-material .ag-popup-editor .ag-large-textarea textarea { + background: transparent; + box-sizing: border-box; + color: rgba(0, 0, 0, 0.87); + font-family: inherit; + font-size: inherit; + height: 24px; + padding-bottom: 8px; + border-width: 0; + border-bottom: 1px solid #e0e0e0; + height: auto; + padding: 24px; } + .ag-theme-material .ag-popup-editor .ag-large-textarea textarea:focus { + border-bottom: 2px solid #3f51b5; + outline: none; + padding-bottom: 7px; } + .ag-theme-material .ag-popup-editor .ag-large-textarea textarea::placeholder { + color: rgba(0, 0, 0, 0.38); } + .ag-theme-material .ag-rich-select { + background-color: #fafafa; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyLjUgNi41TDkgMTAgNS41IDYuNWwtMSAxTDkgMTJsNC41LTQuNXoiIGZpbGw9IiMzMzMiLz48L3N2Zz4=); + background-position-x: calc(100% - 8px); + background-position-y: 16px; + background-repeat: no-repeat; } + .ag-theme-material .ag-rich-select .ag-rich-select-list { + height: 312px; } + .ag-theme-material .ag-rich-select .ag-rich-select-value { + height: 48px; + line-height: 48px; + padding-left: 24px; } + .ag-theme-material .ag-rich-select .ag-virtual-list-item { + cursor: default; + height: 48px; + line-height: 48px; } + .ag-theme-material .ag-rich-select .ag-virtual-list-item:hover { + background-color: #fafafa; } + .ag-theme-material .ag-rich-select .ag-rich-select-row { + padding-left: 24px; } + .ag-theme-material .ag-rich-select .ag-rich-select-row-selected { + background-color: #eee; } + .ag-theme-material .ag-floating-filter-body { + float: left; + height: 100%; + margin-right: 0; + width: calc(100% - 34px); } + .ag-theme-material .ag-floating-filter-body input { + box-sizing: border-box; + background: transparent; + box-sizing: border-box; + color: rgba(0, 0, 0, 0.87); + font-family: inherit; + font-size: inherit; + height: 24px; + padding-bottom: 8px; + border-width: 0; + border-bottom: 1px solid #e0e0e0; } + .ag-theme-material .ag-floating-filter-body input:focus { + border-bottom: 2px solid #3f51b5; + outline: none; + padding-bottom: 7px; } + .ag-theme-material .ag-floating-filter-body input::placeholder { + color: rgba(0, 0, 0, 0.38); } + .ag-theme-material .ag-floating-filter-full-body input { + box-sizing: border-box; + background: transparent; + box-sizing: border-box; + color: rgba(0, 0, 0, 0.87); + font-family: inherit; + font-size: inherit; + height: 24px; + padding-bottom: 8px; + border-width: 0; + border-bottom: 1px solid #e0e0e0; } + .ag-theme-material .ag-floating-filter-full-body input:focus { + border-bottom: 2px solid #3f51b5; + outline: none; + padding-bottom: 7px; } + .ag-theme-material .ag-floating-filter-full-body input::placeholder { + color: rgba(0, 0, 0, 0.38); } + .ag-theme-material .ag-floating-filter-input { + line-height: normal; } + .ag-theme-material .ag-floating-filter-button { + float: right; + line-height: 18px; + margin-top: 20px; } + .ag-theme-material .ag-floating-filter-button button { + appearance: none; + background: transparent; + border: 0; + height: 18px; + padding: 0; + width: 18px; } + .ag-theme-material .ag-cell-label-container { + height: 100%; } + .ag-theme-material .ag-header-group-cell-label { + height: 100%; } + .ag-theme-material .ag-header-group-cell-label span { + float: left; + height: 100%; } + .ag-theme-material .ag-header-select-all { + height: 100%; + margin-right: 24px; } + .ag-theme-material .ag-header-select-all span { + height: 100%; } + .ag-theme-material .ag-header-select-all:not(.ag-hidden) + .ag-cell-label-container { + float: left; + width: calc(100% - 18px - 24px); } + .ag-theme-material .ag-selection-checkbox span, + .ag-theme-material .ag-group-expanded span, + .ag-theme-material .ag-group-contracted span { + margin-right: 24px; } + .ag-theme-material .ag-selection-checkbox span { + position: relative; + top: 4px; } + .ag-theme-material .ag-group-expanded .ag-icon-contracted:empty { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyLjUgNi41TDkgMTAgNS41IDYuNWwtMSAxTDkgMTJsNC41LTQuNXoiIGZpbGw9IiMzMzMiLz48L3N2Zz4=); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; } + .ag-theme-material .ag-column-drop-horizontal { + background-color: #eee; + height: 48px; + line-height: 32px; + padding-left: 24px; } + .ag-theme-material .ag-column-drop-horizontal.ag-width-half { + margin-bottom: -3px; } + .ag-theme-material .ag-column-drop-horizontal span { + float: left; + height: 100%; } + .ag-theme-material .ag-column-drop-horizontal > div:first-child { + float: left; + height: 100%; } + .ag-theme-material .ag-column-drop-horizontal .ag-icon-group, + .ag-theme-material .ag-column-drop-horizontal .ag-icon-pivot { + margin-right: 24px; } + .ag-theme-material .ag-column-drop-horizontal .ag-right-arrow { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkgM0w4IDRsNCA0SDN2Mmg5bC00IDQgMSAxIDYtNnoiIGZpbGw9IiMzMzMiLz48L3N2Zz4=); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; } + .ag-theme-material .ag-column-drop-horizontal .ag-left-arrow { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE1IDhINmw0LTQtMS0xLTYgNiA2IDYgMS0xLTQtNGg5eiIgZmlsbD0iIzMzMyIvPjwvc3ZnPg==); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; } + .ag-theme-material .ag-column-drop-horizontal .ag-left-arrow, + .ag-theme-material .ag-column-drop-horizontal .ag-right-arrow { + overflow: hidden; + text-indent: 100%; + height: 100%; + margin: 0 8px; + opacity: 0.54; } + .ag-theme-material .ag-column-drop-horizontal .ag-column-drop-empty-message { + height: 100%; + line-height: 48px; + opacity: 0.38; } + .ag-theme-material .ag-column-drop-cell { + background: #e0e0e0; + border-radius: 32px; + box-sizing: border-box; + height: 32px !important; + margin-top: 8px; + padding: 0 4px; } + .ag-theme-material .ag-column-drop-cell .ag-column-drop-cell-text { + height: 100%; + line-height: 32px; + margin: 0 8px; } + .ag-theme-material .ag-column-drop-cell .ag-column-drop-cell-button { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkgMS41QTcuNDkzIDcuNDkzIDAgMCAwIDEuNSA5YzAgNC4xNDggMy4zNTMgNy41IDcuNSA3LjUgNC4xNDggMCA3LjUtMy4zNTIgNy41LTcuNSAwLTQuMTQ3LTMuMzUyLTcuNS03LjUtNy41em0zLjc1IDEwLjE5M2wtMS4wNTcgMS4wNTdMOSAxMC4wNTcgNi4zMDggMTIuNzUgNS4yNSAxMS42OTMgNy45NDIgOSA1LjI1IDYuMzA4IDYuMzA4IDUuMjUgOSA3Ljk0MmwyLjY5My0yLjY5MiAxLjA1NyAxLjA1OEwxMC4wNTcgOWwyLjY5MyAyLjY5M3oiIGZpbGw9IiMzMzMiLz48L3N2Zz4=); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + overflow: hidden; + text-indent: 100%; + min-width: 32px; + height: 100%; + margin: 0 4px; + opacity: 0.54; } + .ag-theme-material .ag-column-drop-cell .ag-column-drop-cell-button:hover { + opacity: 0.87; } + .ag-theme-material .ag-column-drop-cell .ag-column-drag { + margin-left: 16px; + margin-top: 4px; + width: 18px; } + .ag-theme-material .ag-select-agg-func-popup { + background: #fff; + border-radius: 2px; + box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); + padding: 8px; + background: #fff; + height: 140px; + padding: 0; } + .ag-theme-material .ag-select-agg-func-popup .ag-virtual-list-item { + cursor: default; + line-height: 40px; + padding-left: 16px; } + .ag-theme-material .ag-set-filter-list, + .ag-theme-material .ag-menu-column-select-wrapper { + width: auto; } + .ag-theme-material .ag-column-drop-vertical > .ag-column-drop-cell { + float: left; + margin-bottom: 8px; + margin-left: 8px; + margin-top: 0; } + .ag-theme-material .ag-cell-data-changed { + background-color: #00acc1 !important; } + .ag-theme-material .ag-cell-data-changed-animation { + background-color: transparent; + transition: background-color 1s; } + .ag-theme-material .ag-stub-cell { + padding-left: 24px; + padding-top: 8px; } + .ag-theme-material .ag-stub-cell .ag-loading-icon { + float: left; + height: 100%; } + .ag-theme-material .ag-stub-cell .ag-loading-text { + float: left; + height: 100%; + margin-left: 8px; + margin-top: 8px; } + .ag-theme-material .ag-rtl .ag-numeric-cell { + text-align: left; } + .ag-theme-material .ag-rtl .ag-header-cell-menu-button { + float: left; } + .ag-theme-material .ag-rtl .ag-header-cell-label { + float: right; + width: calc(100% - 18px); } + .ag-theme-material .ag-rtl .ag-header-cell-label > span { + float: right; } + .ag-theme-material .ag-rtl .ag-header-cell-label .ag-header-icon { + margin-top: 2px; } + .ag-theme-material .ag-rtl .ag-numeric-header .ag-header-cell-menu-button { + float: right; } + .ag-theme-material .ag-rtl .ag-numeric-header .ag-header-cell-label { + float: left; } + .ag-theme-material .ag-rtl .ag-numeric-header .ag-header-cell-label > span { + float: left; } + .ag-theme-material .ag-rtl .ag-tool-panel-wrapper .ag-pivot-mode-panel span { + float: right; } + .ag-theme-material .ag-rtl .ag-tool-panel-wrapper .ag-pivot-mode-panel .ag-pivot-mode-select { + margin-right: 8px; } + .ag-theme-material .ag-rtl .ag-tool-panel-wrapper .ag-pivot-mode-panel .ag-pivot-mode-select .ag-checkbox-label { + margin-right: 8px; } + .ag-theme-material .ag-rtl .ag-tool-panel-wrapper .ag-column-drop .ag-icon { + float: right; } + .ag-theme-material .ag-rtl .ag-tool-panel-wrapper .ag-column-drop .ag-column-drop-title { + clear: left; + float: right; } + .ag-theme-material .ag-rtl .ag-tool-panel-wrapper .ag-column-drop .ag-column-drop-empty-message { + padding-left: 8px; + padding-right: 32px; } + .ag-theme-material .ag-rtl .ag-filter-checkbox { + float: right; + margin-left: 8px; } + .ag-theme-material .ag-rtl .ag-column-select-panel .ag-column-tool-panel-column-group span, + .ag-theme-material .ag-rtl .ag-column-select-panel .ag-column-tool-panel-column span { + float: right; } + .ag-theme-material .ag-rtl .ag-column-select-panel .ag-column-tool-panel-column-group .ag-column-select-checkbox, + .ag-theme-material .ag-rtl .ag-column-select-panel .ag-column-tool-panel-column-group .ag-column-group-icons, + .ag-theme-material .ag-rtl .ag-column-select-panel .ag-column-tool-panel-column .ag-column-select-checkbox, + .ag-theme-material .ag-rtl .ag-column-select-panel .ag-column-tool-panel-column .ag-column-group-icons { + margin-left: 8px; + margin-right: 8px; } + .ag-theme-material .ag-rtl .ag-column-select-panel .ag-column-tool-panel-column.ag-toolpanel-add-group-indent { + margin-left: 0; + margin-right: 34px; } + .ag-theme-material .ag-rtl .ag-icon-tree-closed { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTExLjUgMTIuNUw4IDlsMy41LTMuNS0xLTFMNiA5bDQuNSA0LjV6IiBmaWxsPSIjMzMzIi8+PC9zdmc+); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; } + .ag-theme-material .ag-rtl .ag-header-group-cell-label { + height: 100%; } + .ag-theme-material .ag-rtl .ag-header-group-cell-label span { + float: right; + height: 100%; } + .ag-theme-material .ag-rtl .ag-header-select-all:not(.ag-hidden) + .ag-cell-label-container { + float: right; } + .ag-theme-material .ag-rtl .ag-header-select-all { + margin-left: 24px; + margin-right: 0; } + .ag-theme-material .ag-rtl .ag-selection-checkbox span, + .ag-theme-material .ag-rtl .ag-group-expanded span, + .ag-theme-material .ag-rtl .ag-group-contracted span { + margin-left: 24px; + margin-right: 0; } + .ag-theme-material .ag-rtl .ag-column-drop-horizontal { + padding-right: 24px; } + .ag-theme-material .ag-rtl .ag-column-drop-horizontal span { + float: right; } + .ag-theme-material .ag-rtl .ag-column-drop-horizontal > div:first-child { + float: right; } + .ag-theme-material .ag-rtl .ag-column-drop-horizontal .ag-icon-group, + .ag-theme-material .ag-rtl .ag-column-drop-horizontal .ag-icon-pivot { + margin-left: 24px; + margin-right: 0; } + .ag-theme-material .ag-rtl .ag-column-drop-horizontal .ag-right-arrow { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkgM0w4IDRsNCA0SDN2Mmg5bC00IDQgMSAxIDYtNnoiIGZpbGw9IiMzMzMiLz48L3N2Zz4=); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + height: 100%; } + .ag-theme-material .ag-rtl .ag-column-drop-horizontal .ag-left-arrow { + background-color: transparent; + background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE1IDhINmw0LTQtMS0xLTYgNiA2IDYgMS0xLTQtNGg5eiIgZmlsbD0iIzMzMyIvPjwvc3ZnPg==); + background-position: center; + background-repeat: no-repeat; + background-size: 18px 18px; + height: 18px; + opacity: 0.87; + width: 18px; + height: 100%; } + .ag-theme-material .ag-rtl .ag-floating-filter-body { + float: right; + margin-left: 0; } + .ag-theme-material .ag-rtl .ag-floating-filter-button { + float: left; } + .ag-theme-material .ag-rtl .ag-header .ag-header-cell-resize::after { + border-left: 1px solid #e0e0e0; + border-right: 0; } + .ag-theme-material .ag-rtl .ag-column-drag { + background-position-x: right; } + .ag-theme-material .ag-status-bar { + background: #fff; + border: 1px solid #e0e0e0; + border-top: 0; + color: rgba(0, 0, 0, 0.38); + font: 700 12px "Roboto", sans-serif; + padding-right: 32px; + padding-left: 32px; } + .ag-theme-material .ag-name-value-value { + color: rgba(0, 0, 0, 0.87); } + .ag-theme-material .ag-status-bar-center { + text-align: center; } + .ag-theme-material .ag-name-value { + margin-left: 8px; + margin-right: 8px; + padding-top: 16px; + padding-bottom: 16px; } + .ag-theme-material .ag-details-row { + box-sizing: border-box; + padding: 40px; } + .ag-theme-material .ag-overlay-loading-wrapper { + background-color: rgba(255, 255, 255, 0.5); } + .ag-theme-material .ag-overlay-loading-center { + background: #fff; + border-radius: 2px; + box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); + padding: 8px; } + .ag-theme-material .ag-side-bar { + background-color: #fafafa; + border-right: 1px solid #e0e0e0; + border-top: 1px solid #e0e0e0; + position: relative; } + .ag-theme-material .ag-side-bar .ag-side-buttons { + padding-top: 32px; + background: #fff; + border-bottom: 1px solid #e0e0e0; + position: relative; } + .ag-theme-material .ag-side-bar .ag-side-buttons .ag-side-button button { + background: transparent; + border: 0; + color: rgba(0, 0, 0, 0.87); + padding: 16px 0 16px 0; + width: 100%; + margin: 0; + min-height: 144px; + border-width: 1px 0 1px 0; + border-style: solid; + border-color: transparent; + background-position-y: 8px; + background-position-x: center; + background-repeat: no-repeat; } + .ag-theme-material .ag-side-bar .ag-side-buttons .ag-selected button { + background-color: #fafafa; + margin-left: -1px; + padding-left: 1px; + width: calc(100% + 1px); + border-color: #e0e0e0; } + .ag-theme-material .ag-side-bar .ag-panel-container { + border-right: 1px solid #e0e0e0; + box-sizing: border-box; } + .ag-theme-material .ag-side-bar.full-width .ag-panel-container { + border-right: 0; } + .ag-theme-material .ag-side-bar .ag-column-drop { + min-height: 50px; } + .ag-theme-material .ag-rtl .ag-side-bar .ag-panel-container { + border-left: 1px solid #e0e0e0; + border-right: 0; } + .ag-theme-material .ag-rtl .ag-side-bar.full-width .ag-panel-container { + border-left: 0; } + .ag-theme-material .ag-primary-cols-filter { + background: transparent; + box-sizing: border-box; + color: rgba(0, 0, 0, 0.87); + font-family: inherit; + font-size: inherit; + height: 24px; + padding-bottom: 8px; + border-width: 0; + border-bottom: 1px solid #e0e0e0; + box-sizing: border-box; + width: 100%; } + .ag-theme-material .ag-primary-cols-filter:focus { + border-bottom: 2px solid #3f51b5; + outline: none; + padding-bottom: 7px; } + .ag-theme-material .ag-primary-cols-filter::placeholder { + color: rgba(0, 0, 0, 0.38); } + .ag-theme-material .ag-primary-cols-filter-wrapper { + margin-left: 8px; + margin-right: 8px; } + .ag-theme-material .sass-variables::after { + content: '{ "autoSizePadding": "24px", "headerHeight": "56px", "groupPaddingSize": "42px", "footerPaddingAddition": "32px", "virtualItemHeight": "40px", "aggFuncPopupHeight": "140px", "checkboxIndentWidth": "26px", "leafNodePadding": "24px", "rowHeight": "48px", "gridSize": "8px", "iconSize": "18px" }'; + display: none; } + .ag-theme-material .ag-cell-highlight { + background-color: #fce4ec !important; } + .ag-theme-material .ag-cell-highlight-animation { + transition: background-color 1s; } + .ag-theme-material .ag-row-drag { + background-position-y: center; } + .ag-theme-material .ag-column-drag { + background-position-y: center; } + .ag-theme-material .ag-cell-range-selected-1:not(.ag-cell-focus) { + background-color: #e8eaf6; } + .ag-theme-material .ag-cell-range-selected-2:not(.ag-cell-focus) { + background-color: #d9ddf0; } + .ag-theme-material .ag-cell-range-selected-3:not(.ag-cell-focus) { + background-color: #cbcfeb; } + .ag-theme-material .ag-cell-range-selected-4:not(.ag-cell-focus) { + background-color: #bcc2e5; } + .ag-theme-material .ag-side-bar { + border-bottom: 0; + border-right: 0; + border-top: 0; } + .ag-theme-material .ag-side-bar .ag-side-buttons button { + border: 0; + color: rgba(0, 0, 0, 0.54); + font-family: "Roboto", sans-serif; + font-size: 12px; + font-weight: 700; + background: transparent; } + .ag-theme-material .ag-side-bar .ag-side-buttons .ag-side-button button { + background-color: transparent; + border-width: 0; } + .ag-theme-material .ag-side-bar .ag-side-buttons .ag-selected button { + border-left: 2px solid #3f51b5; + background-color: #fafafa; + margin-left: -2px; + padding-left: 1px; } + .ag-theme-material .ag-side-bar .ag-filter-toolpanel-body { + background-color: #fff; } + .ag-theme-material .ag-rtl .ag-side-bar .ag-side-buttons .ag-selected button { + border-left: 0; + margin-left: 0; + padding-left: 0; + border-right: 2px solid #3f51b5; + margin-right: -2px; + padding-right: 1px; } diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 58bcb78..04bfc3b 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -1,13 +1,48 @@ -import React, { Component, Fragment } from 'react'; +import React, { Component } from 'react'; +import { AgGridReact } from "ag-grid-react"; + +import "./css/ag-grid.css"; +import "./css/ag-theme-material.css"; class DashboardUsers extends Component { + + state = { + colDef: [ + { headerName: "Make", field: "make", filter: 'agTextColumnFilter' }, + { headerName: "Model", field: "model", filter: 'agTextColumnFilter' }, + { headerName: "Price", field: "price", filter: 'agTextColumnFilter' } + + ], + rowData: [ + { make: "Toyota", model: "Celica", price: 35000 }, + { make: "Ford", model: "Mondeo", price: 32000 }, + { make: "Porsche", model: "Boxter", price: 72000 } + ] + } + render() { + const { colDef, rowData } = this.state; + return ( - -

the user dasboard lives here

-
+
+ + + + +
) } -} +}; -export default DashboardUsers \ No newline at end of file +export default DashboardUsers; \ No newline at end of file diff --git a/src/hoc/update-object/update-object.js b/src/hoc/update-object/update-object.js new file mode 100644 index 0000000..903c2be --- /dev/null +++ b/src/hoc/update-object/update-object.js @@ -0,0 +1,8 @@ +export const updateObject = (oldObject, updatedProperties) => { + + return { + ...oldObject, + ...updatedProperties + } + +}; \ No newline at end of file diff --git a/src/routing/index.js b/src/routing/index.js index c3a0f08..e9bf1a0 100644 --- a/src/routing/index.js +++ b/src/routing/index.js @@ -3,16 +3,16 @@ import React from 'react'; import asyncComponent from './../hoc/async-component/async-component'; const AsyncIntro = asyncComponent(() => import ('./../components/intro')); -const AsyncDasboard = asyncComponent(() => import ('./../components/dashboard_users')); +const AsyncDashboard = asyncComponent(() => import ('./../components/dashboard_users')); export const routesArray = [ { 'exact': true, 'path': '/', - 'mainComponent': (props) => + 'mainComponent': (props) => }, { 'path': '/user-dashboard', - 'mainComponent': (props) => + 'mainComponent': (props) => } -] \ No newline at end of file +] \ No newline at end of file -- GitLab From f7d0ea1612273c1f79f26c5aba7f039b387a9d52 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Wed, 26 Sep 2018 18:17:53 +0300 Subject: [PATCH 007/249] minor changes add spinner --- src/components/dashboard_users/index.js | 27 ++++++++++++++++--------- src/components/shared/ui/spinner.js | 26 ++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 10 deletions(-) create mode 100644 src/components/shared/ui/spinner.js diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 04bfc3b..1caa811 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -1,5 +1,6 @@ import React, { Component } from 'react'; import { AgGridReact } from "ag-grid-react"; +import Spinner from '../shared/ui/spinner'; import "./css/ag-grid.css"; import "./css/ag-theme-material.css"; @@ -8,9 +9,9 @@ class DashboardUsers extends Component { state = { colDef: [ - { headerName: "Make", field: "make", filter: 'agTextColumnFilter' }, - { headerName: "Model", field: "model", filter: 'agTextColumnFilter' }, - { headerName: "Price", field: "price", filter: 'agTextColumnFilter' } + { headerName: "Make", field: "make", filter: 'agTextColumnFilter'}, + { headerName: "Model", field: "model", filter: 'agTextColumnFilter'}, + { headerName: "Price", field: "price", filter: 'agTextColumnFilter'} ], rowData: [ @@ -23,23 +24,29 @@ class DashboardUsers extends Component { render() { const { colDef, rowData } = this.state; - return ( -
+ let content = null; + + if (!colDef) { + content = + } else { - + } + + return ( +
+ {content}
) } diff --git a/src/components/shared/ui/spinner.js b/src/components/shared/ui/spinner.js new file mode 100644 index 0000000..1e50ef4 --- /dev/null +++ b/src/components/shared/ui/spinner.js @@ -0,0 +1,26 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import { withStyles } from '@material-ui/core/styles'; +import CircularProgress from '@material-ui/core/CircularProgress'; +import purple from '@material-ui/core/colors/purple'; + +const styles = theme => ({ + progress: { + margin: theme.spacing.unit * 2, + }, +}); + +function spinner(props) { + const { classes } = props; + return ( +
+ +
+ ); +} + +spinner.propTypes = { + classes: PropTypes.object.isRequired, +}; + +export default withStyles(styles)(spinner); \ No newline at end of file -- GitLab From c24a81990f06035439c4a841b4fb90a2e1231684 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Wed, 26 Sep 2018 18:19:50 +0300 Subject: [PATCH 008/249] inclusion of dummy data and api --- src/components/shared/side_nav/index.js | 3 - src/components/sidebar/index.js | 2 +- src/utils/api/_DATA.js | 198 ++++++++++++++++++++++++ src/utils/api/index.js | 7 + 4 files changed, 206 insertions(+), 4 deletions(-) create mode 100644 src/utils/api/_DATA.js create mode 100644 src/utils/api/index.js diff --git a/src/components/shared/side_nav/index.js b/src/components/shared/side_nav/index.js index b935744..e235a4a 100644 --- a/src/components/shared/side_nav/index.js +++ b/src/components/shared/side_nav/index.js @@ -1,13 +1,10 @@ import React, { Fragment } from 'react'; import { NavLink } from 'react-router-dom'; - -import MenuList from '@material-ui/core/MenuList'; import MenuItem from '@material-ui/core/MenuItem'; import ListItemIcon from '@material-ui/core/ListItemIcon'; import ListItemText from '@material-ui/core/ListItemText'; import InboxIcon from '@material-ui/icons/MoveToInbox'; import DraftsIcon from '@material-ui/icons/Drafts'; -import SendIcon from '@material-ui/icons/Send'; export const SideNav = () => { return ( diff --git a/src/components/sidebar/index.js b/src/components/sidebar/index.js index 40522b0..4fed7b5 100644 --- a/src/components/sidebar/index.js +++ b/src/components/sidebar/index.js @@ -1,4 +1,4 @@ -import React, { Component, Fragment } from 'react'; +import React, { Component } from 'react'; import Paper from '@material-ui/core/Paper'; import { SideNav } from './../shared/side_nav' diff --git a/src/utils/api/_DATA.js b/src/utils/api/_DATA.js new file mode 100644 index 0000000..a7519a1 --- /dev/null +++ b/src/utils/api/_DATA.js @@ -0,0 +1,198 @@ +export const users = [ + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-e', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'admin', + firstName: 'Jane', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-z' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-a', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'owner', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'blocked', + qrCode: '456951789', + communicationProviders: 'vendor-c' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + } +] \ No newline at end of file diff --git a/src/utils/api/index.js b/src/utils/api/index.js new file mode 100644 index 0000000..5b334ad --- /dev/null +++ b/src/utils/api/index.js @@ -0,0 +1,7 @@ +import { users } from './_DATA' + +export function _getUsers () { + return new Promise((res, rej) => { + setTimeout(() => res(users), 1000) + }) +} \ No newline at end of file -- GitLab From 4c756d3a9b2431d54f8caa88356128a859b07243 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Thu, 27 Sep 2018 12:00:21 +0300 Subject: [PATCH 009/249] error component handler and global modal component --- .../shared/ui/back_drop/back_drop.css | 12 +++++++ .../shared/ui/back_drop/back_drop.js | 11 +++++++ src/components/shared/ui/modal/modal.css | 23 +++++++++++++ src/components/shared/ui/modal/modal.js | 32 +++++++++++++++++++ .../with-error-handler/with-error-handler.js | 7 ++-- 5 files changed, 82 insertions(+), 3 deletions(-) create mode 100644 src/components/shared/ui/back_drop/back_drop.css create mode 100644 src/components/shared/ui/back_drop/back_drop.js create mode 100644 src/components/shared/ui/modal/modal.css create mode 100644 src/components/shared/ui/modal/modal.js diff --git a/src/components/shared/ui/back_drop/back_drop.css b/src/components/shared/ui/back_drop/back_drop.css new file mode 100644 index 0000000..428dfd3 --- /dev/null +++ b/src/components/shared/ui/back_drop/back_drop.css @@ -0,0 +1,12 @@ +.backdrop { + position: fixed; + + width: 100%; + height: 100%; + + left: 0; + top: 0; + + background-color: rgba(0, 0, 0, 0.5); + z-index: 100; +} \ No newline at end of file diff --git a/src/components/shared/ui/back_drop/back_drop.js b/src/components/shared/ui/back_drop/back_drop.js new file mode 100644 index 0000000..5992c2a --- /dev/null +++ b/src/components/shared/ui/back_drop/back_drop.js @@ -0,0 +1,11 @@ +import React from 'react'; +import './back-drop.css'; + +const backdrop = (props) => ( + + props.show + ?
+ : null +); + +export default backdrop; \ No newline at end of file diff --git a/src/components/shared/ui/modal/modal.css b/src/components/shared/ui/modal/modal.css new file mode 100644 index 0000000..60e0fb9 --- /dev/null +++ b/src/components/shared/ui/modal/modal.css @@ -0,0 +1,23 @@ +.modal { + position: fixed; + box-sizing: border-box; + + left: 15%; + top: 30%; + padding: 16px; + width: 70%; + + box-shadow: 1px 1px 1px black; + border: 1px solid #ccc; + transition: all 0.3s ease-out; + + background-color: white; + z-index: 500; +} + +@media (min-width: 600px) { + .modal { + width: 500px; + left: calc(50% - 250px); + } +} \ No newline at end of file diff --git a/src/components/shared/ui/modal/modal.js b/src/components/shared/ui/modal/modal.js new file mode 100644 index 0000000..0438972 --- /dev/null +++ b/src/components/shared/ui/modal/modal.js @@ -0,0 +1,32 @@ +import React, { Component } from 'react'; +import './modal.css'; +import Aux from '../../../../hoc/auxe/auxe'; +import Backdrop from '../back_drop/back_drop'; + +class Modal extends Component { + + shouldComponentUpdate(nextProps, nextState) { + console.log('[Modal] shouldComponentUpdate()'); + return nextProps.show !== this.props.show || nextProps.children !== this.props.children; + } + + render() { + const { show, modalClosed } = this.props; + + return ( + + +
+ {this.props.children} +
+
+ ) + } +} + +export default Modal; \ No newline at end of file diff --git a/src/hoc/with-error-handler/with-error-handler.js b/src/hoc/with-error-handler/with-error-handler.js index 5e67199..bd97037 100644 --- a/src/hoc/with-error-handler/with-error-handler.js +++ b/src/hoc/with-error-handler/with-error-handler.js @@ -1,4 +1,5 @@ import React, { Component } from "react"; +import Modal from "../../components/shared/ui/"; import Aux from "../auxe/auxe"; const withErrorHandler = (WrappedComponent, axios) => { @@ -34,9 +35,9 @@ const withErrorHandler = (WrappedComponent, axios) => { return ( -

- {error ? error.message : null} -

+ + {error ? error : null} +
); -- GitLab From 004bdfcb397cb67fc09785f21a0e0fda0b9cbced Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Thu, 27 Sep 2018 12:31:05 +0300 Subject: [PATCH 010/249] file identation changed --- .../shared/ui/back_drop/back_drop.css | 14 ++-- .../shared/ui/back_drop/back_drop.js | 6 +- src/components/shared/ui/modal/modal.css | 29 +++---- src/components/shared/ui/modal/modal.js | 40 +++++----- src/components/shared/ui/spinner.js | 20 ++--- .../with-error-handler/with-error-handler.js | 80 +++++++++---------- 6 files changed, 88 insertions(+), 101 deletions(-) diff --git a/src/components/shared/ui/back_drop/back_drop.css b/src/components/shared/ui/back_drop/back_drop.css index 428dfd3..57372a8 100644 --- a/src/components/shared/ui/back_drop/back_drop.css +++ b/src/components/shared/ui/back_drop/back_drop.css @@ -1,12 +1,12 @@ .backdrop { - position: fixed; + position: fixed; - width: 100%; - height: 100%; + width: 100%; + height: 100%; - left: 0; - top: 0; + left: 0; + top: 0; - background-color: rgba(0, 0, 0, 0.5); - z-index: 100; + background-color: rgba(0, 0, 0, 0.5); + z-index: 100; } \ No newline at end of file diff --git a/src/components/shared/ui/back_drop/back_drop.js b/src/components/shared/ui/back_drop/back_drop.js index 5992c2a..7df4ece 100644 --- a/src/components/shared/ui/back_drop/back_drop.js +++ b/src/components/shared/ui/back_drop/back_drop.js @@ -3,9 +3,9 @@ import './back-drop.css'; const backdrop = (props) => ( - props.show - ?
- : null + props.show + ?
+ : null ); export default backdrop; \ No newline at end of file diff --git a/src/components/shared/ui/modal/modal.css b/src/components/shared/ui/modal/modal.css index 60e0fb9..fe14ef0 100644 --- a/src/components/shared/ui/modal/modal.css +++ b/src/components/shared/ui/modal/modal.css @@ -1,23 +1,16 @@ .modal { - position: fixed; - box-sizing: border-box; + position: fixed; + box-sizing: border-box; - left: 15%; - top: 30%; - padding: 16px; - width: 70%; + left: 15%; + top: 30%; + padding: 16px; + width: 70%; - box-shadow: 1px 1px 1px black; - border: 1px solid #ccc; - transition: all 0.3s ease-out; + box-shadow: 1px 1px 1px black; + border: 1px solid #ccc; + transition: all 0.3s ease-out; - background-color: white; - z-index: 500; -} - -@media (min-width: 600px) { - .modal { - width: 500px; - left: calc(50% - 250px); - } + background-color: white; + z-index: 500; } \ No newline at end of file diff --git a/src/components/shared/ui/modal/modal.js b/src/components/shared/ui/modal/modal.js index 0438972..ee38490 100644 --- a/src/components/shared/ui/modal/modal.js +++ b/src/components/shared/ui/modal/modal.js @@ -5,28 +5,28 @@ import Backdrop from '../back_drop/back_drop'; class Modal extends Component { - shouldComponentUpdate(nextProps, nextState) { - console.log('[Modal] shouldComponentUpdate()'); - return nextProps.show !== this.props.show || nextProps.children !== this.props.children; - } + shouldComponentUpdate(nextProps, nextState) { + console.log('[Modal] shouldComponentUpdate()'); + return nextProps.show !== this.props.show || nextProps.children !== this.props.children; + } - render() { - const { show, modalClosed } = this.props; + render() { + const { show, modalClosed } = this.props; - return ( - - -
- {this.props.children} -
-
- ) - } + return ( + + +
+ {this.props.children} +
+
+ ) + } } export default Modal; \ No newline at end of file diff --git a/src/components/shared/ui/spinner.js b/src/components/shared/ui/spinner.js index 1e50ef4..c0cf7a2 100644 --- a/src/components/shared/ui/spinner.js +++ b/src/components/shared/ui/spinner.js @@ -5,22 +5,22 @@ import CircularProgress from '@material-ui/core/CircularProgress'; import purple from '@material-ui/core/colors/purple'; const styles = theme => ({ - progress: { - margin: theme.spacing.unit * 2, - }, + progress: { + margin: theme.spacing.unit * 2, + }, }); function spinner(props) { - const { classes } = props; - return ( -
- -
- ); + const { classes } = props; + return ( +
+ +
+ ); } spinner.propTypes = { - classes: PropTypes.object.isRequired, + classes: PropTypes.object.isRequired, }; export default withStyles(styles)(spinner); \ No newline at end of file diff --git a/src/hoc/with-error-handler/with-error-handler.js b/src/hoc/with-error-handler/with-error-handler.js index bd97037..f306407 100644 --- a/src/hoc/with-error-handler/with-error-handler.js +++ b/src/hoc/with-error-handler/with-error-handler.js @@ -3,46 +3,40 @@ import Modal from "../../components/shared/ui/"; import Aux from "../auxe/auxe"; const withErrorHandler = (WrappedComponent, axios) => { - - return class extends Component { - - state = { - error: null - } - - componentWillMount() { - // add axios listener here for clearing any errors TO DO.. - - - // add axios listener here for errors - - }; - - componentWillUnmount() { - // console.log("Will Unmount", this.reqInterceptor, this.resInterceptor); TO DO.. - - } - - errorConfirmedHandler = () => { - this.setState({ - error: null - }); - } - - render() { - const { error } = this.state; - console.log("with erorr handler module: ", error); - - return ( - - - {error ? error : null} - - - - ); - } - } -} - -export default withErrorHandler; \ No newline at end of file + return class extends Component { + state = { + error: null + }; + + componentWillMount() { + // add axios listener here for clearing any errors TO DO.. + // add axios listener here for errors + } + + componentWillUnmount() { + // console.log("Will Unmount", this.reqInterceptor, this.resInterceptor); TO DO.. + } + + errorConfirmedHandler = () => { + this.setState({ + error: null + }); + }; + + render() { + const { error } = this.state; + console.log("with erorr handler module: ", error); + + return ( + + + {error ? error : null} + + + + ); + } + }; +}; + +export default withErrorHandler; -- GitLab From e28040f3ee0a03107fb8e4aefffcc5931fc2fd82 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Thu, 27 Sep 2018 13:40:54 +0300 Subject: [PATCH 011/249] NY-3879 redux saga store composition --- src/App.js | 4 ++- src/components/dashboard_users/actions.js | 15 +++++++++++ src/components/dashboard_users/index.js | 18 +++++++++++--- src/components/dashboard_users/middleware.js | 26 ++++++++++++++++++++ src/components/dashboard_users/reducer.js | 15 +++++++++++ src/index.js | 16 +++++++++++- src/utils/root_middleware/index.js | 23 +++++++++++++++++ src/utils/root_middleware/logger.js | 11 +++++++++ src/utils/root_reducers/index.js | 9 +++++++ 9 files changed, 132 insertions(+), 5 deletions(-) create mode 100644 src/components/dashboard_users/actions.js create mode 100644 src/components/dashboard_users/middleware.js create mode 100644 src/components/dashboard_users/reducer.js create mode 100644 src/utils/root_middleware/index.js create mode 100644 src/utils/root_middleware/logger.js create mode 100644 src/utils/root_reducers/index.js diff --git a/src/App.js b/src/App.js index efc88c1..774e747 100644 --- a/src/App.js +++ b/src/App.js @@ -1,5 +1,6 @@ import React, { Component } from 'react'; import { BrowserRouter as Router, Route, Switch } from 'react-router-dom'; +import { connect } from 'react-redux'; import Grid from '@material-ui/core/Grid'; import { routesArray } from './routing'; @@ -7,6 +8,7 @@ import PageNotFound from './components/page_not_found'; import Sidebar from './components/sidebar'; class App extends Component { + render() { return ( @@ -39,4 +41,4 @@ class App extends Component { } } -export default App; \ No newline at end of file +export default connect()(App); \ No newline at end of file diff --git a/src/components/dashboard_users/actions.js b/src/components/dashboard_users/actions.js new file mode 100644 index 0000000..8ea3e56 --- /dev/null +++ b/src/components/dashboard_users/actions.js @@ -0,0 +1,15 @@ +export const GET_USERS = 'GET_USERS'; +export const DELIVER_USERS = 'DELIVER_USERS'; + +export function getUsers() { + return ({ + type: GET_USERS + }) +} + +export function deliverUsersPayload(users) { + return ({ + type: DELIVER_USERS, + users + }) +} \ No newline at end of file diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 1caa811..7afd596 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -1,6 +1,8 @@ import React, { Component } from 'react'; import { AgGridReact } from "ag-grid-react"; -import Spinner from '../shared/ui/spinner'; +import { connect } from 'react-redux'; +import Spinner from './../shared/ui/spinner'; +import { getUsers } from './actions' import "./css/ag-grid.css"; import "./css/ag-theme-material.css"; @@ -11,7 +13,7 @@ class DashboardUsers extends Component { colDef: [ { headerName: "Make", field: "make", filter: 'agTextColumnFilter'}, { headerName: "Model", field: "model", filter: 'agTextColumnFilter'}, - { headerName: "Price", field: "price", filter: 'agTextColumnFilter'} + { headerName: "Price", field: "price", filter: 'agTextColumnFilter'}, ], rowData: [ @@ -21,6 +23,10 @@ class DashboardUsers extends Component { ] } + componentDidMount() { + this.props.dispatch(getUsers()); + } + render() { const { colDef, rowData } = this.state; @@ -52,4 +58,10 @@ class DashboardUsers extends Component { } }; -export default DashboardUsers; \ No newline at end of file +function mapStateToProps({users}) { + return { + users + } +} + +export default connect(mapStateToProps)(DashboardUsers); \ No newline at end of file diff --git a/src/components/dashboard_users/middleware.js b/src/components/dashboard_users/middleware.js new file mode 100644 index 0000000..f9aa5f5 --- /dev/null +++ b/src/components/dashboard_users/middleware.js @@ -0,0 +1,26 @@ +import { call, put } from 'redux-saga/effects'; +import { _getUsers } from './../../utils/api'; +import { deliverUsersPayload } from './actions'; + +export function* getUsers() { + try { + const payloadArray = yield call(_getUsers); + const payload = yield call(getUsersArray, payloadArray); + yield put(deliverUsersPayload(payload)); + } + catch(error) { + console.log('error', error) + } +} + +function getUsersArray(data) { + return data.map((item) => { + + let newObj = { + ...item + }; + + return newObj + + }) +} \ No newline at end of file diff --git a/src/components/dashboard_users/reducer.js b/src/components/dashboard_users/reducer.js new file mode 100644 index 0000000..83896cb --- /dev/null +++ b/src/components/dashboard_users/reducer.js @@ -0,0 +1,15 @@ +import { DELIVER_USERS } from './actions'; + +export default function users(stateUSERS = {}, action){ + switch(action.type) { + case DELIVER_USERS: + return { + ...stateUSERS, + ...action.users + } + default : + return { + ...stateUSERS + } + } +} \ No newline at end of file diff --git a/src/index.js b/src/index.js index 563c948..22f468e 100644 --- a/src/index.js +++ b/src/index.js @@ -1,6 +1,20 @@ import React from 'react'; import ReactDOM from 'react-dom'; +import { createStore } from 'redux'; +import { Provider } from 'react-redux'; + +import combineReducers from './utils/root_reducers'; +import combineMiddleware, { sagaMiddleware, combineSagas } from './utils/root_middleware'; + import './index.css'; import App from './App'; -ReactDOM.render(, document.getElementById('root')); \ No newline at end of file +const store = createStore(combineReducers, combineMiddleware); +sagaMiddleware.run(combineSagas); + +ReactDOM.render( + + + , + document.getElementById('root') +); \ No newline at end of file diff --git a/src/utils/root_middleware/index.js b/src/utils/root_middleware/index.js new file mode 100644 index 0000000..aca5933 --- /dev/null +++ b/src/utils/root_middleware/index.js @@ -0,0 +1,23 @@ +import { applyMiddleware, compose } from 'redux'; +import createSagaMiddleware from 'redux-saga'; +import { all, takeEvery } from 'redux-saga/effects'; + +import logger from './logger'; + +import { GET_USERS } from './../../components/dashboard_users/actions'; +import { getUsers } from './../../components/dashboard_users/middleware'; + +const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose; + +export const sagaMiddleware = createSagaMiddleware(); + +export default composeEnhancers(applyMiddleware(sagaMiddleware)); + +export function* combineSagas() { + yield all ( + [ + logger(), + takeEvery(GET_USERS, getUsers) + ] + ) +} \ No newline at end of file diff --git a/src/utils/root_middleware/logger.js b/src/utils/root_middleware/logger.js new file mode 100644 index 0000000..37b4cf0 --- /dev/null +++ b/src/utils/root_middleware/logger.js @@ -0,0 +1,11 @@ +import { take, select } from 'redux-saga/effects'; + +export default function* logger() { + while (true) { + const action = yield take('*') + const state = yield select(); + + console.log(action); + console.log(state); + } +} \ No newline at end of file diff --git a/src/utils/root_reducers/index.js b/src/utils/root_reducers/index.js new file mode 100644 index 0000000..0b4cf88 --- /dev/null +++ b/src/utils/root_reducers/index.js @@ -0,0 +1,9 @@ +import { combineReducers } from 'redux'; + +import users from './../../components/dashboard_users/reducer'; + +export default combineReducers( + { + users + } +) \ No newline at end of file -- GitLab From e06c1d31a429844ae3a89d5ffd8c2676df62af5a Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Thu, 27 Sep 2018 16:13:20 +0300 Subject: [PATCH 012/249] Fetching data Dashboard --- src/components/dashboard_users/actions.js | 4 +- src/components/dashboard_users/index.js | 54 +++++++++++++++-------- src/components/dashboard_users/reducer.js | 25 +++++++---- 3 files changed, 55 insertions(+), 28 deletions(-) diff --git a/src/components/dashboard_users/actions.js b/src/components/dashboard_users/actions.js index 8ea3e56..206fcca 100644 --- a/src/components/dashboard_users/actions.js +++ b/src/components/dashboard_users/actions.js @@ -1,5 +1,5 @@ -export const GET_USERS = 'GET_USERS'; -export const DELIVER_USERS = 'DELIVER_USERS'; +export const GET_USERS = 'GET_USERS'; +export const DELIVER_USERS = 'DELIVER_USERS'; export function getUsers() { return ({ diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 7afd596..6031094 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -1,8 +1,9 @@ import React, { Component } from 'react'; import { AgGridReact } from "ag-grid-react"; import { connect } from 'react-redux'; +import { bindActionCreators } from 'redux'; import Spinner from './../shared/ui/spinner'; -import { getUsers } from './actions' +import * as actions from './actions'; import "./css/ag-grid.css"; import "./css/ag-theme-material.css"; @@ -11,28 +12,37 @@ class DashboardUsers extends Component { state = { colDef: [ - { headerName: "Make", field: "make", filter: 'agTextColumnFilter'}, - { headerName: "Model", field: "model", filter: 'agTextColumnFilter'}, - { headerName: "Price", field: "price", filter: 'agTextColumnFilter'}, - - ], - rowData: [ - { make: "Toyota", model: "Celica", price: 35000 }, - { make: "Ford", model: "Mondeo", price: 32000 }, - { make: "Porsche", model: "Boxter", price: 72000 } + { headerName: "accountId", field: "accountId", filter: 'agTextColumnFilter' }, + { headerName: "profileId", field: "profileId", filter: 'agTextColumnFilter' }, + { headerName: "authenticationIdentifier", field: "authenticationIdentifier", filter: 'agTextColumnFilter' }, + + { headerName: "authenticationType", field: "authenticationType", filter: 'agTextColumnFilter' }, + { headerName: "avatar", field: "avatar", filter: 'agTextColumnFilter' }, + { headerName: "accountMark", field: "accountMark", filter: 'agTextColumnFilter' }, + + { headerName: "accountName", field: "accountName", filter: 'agTextColumnFilter' }, + { headerName: "firstName", field: "firstName", filter: 'agTextColumnFilter' }, + { headerName: "lastName", field: "lastName", filter: 'agTextColumnFilter' }, + + { headerName: "accountStatus", field: "accountStatus", filter: 'agTextColumnFilter' }, + { headerName: "qrCode", field: "qrCode", filter: 'agTextColumnFilter' }, + { headerName: "communicationProviders", field: "communicationProviders", filter: 'agTextColumnFilter' } ] } componentDidMount() { - this.props.dispatch(getUsers()); + this.props.getUsers(); } - + render() { - const { colDef, rowData } = this.state; + const { colDef } = this.state; + const { users } = this.props; + + console.log(users) let content = null; - if (!colDef) { + if (users.length === 0) { content = } else { @@ -45,7 +55,7 @@ class DashboardUsers extends Component { pagination={true} columnDefs={colDef} - rowData={rowData}> + rowData={users}> } @@ -58,10 +68,18 @@ class DashboardUsers extends Component { } }; -function mapStateToProps({users}) { +function mapStateToProps(state) { + return { - users + users: state.users.usersData } } -export default connect(mapStateToProps)(DashboardUsers); \ No newline at end of file +function mapDispatchToProps(dispatch) { + + return bindActionCreators({ + ...actions + }, dispatch) +} + +export default connect(mapStateToProps, mapDispatchToProps)(DashboardUsers); \ No newline at end of file diff --git a/src/components/dashboard_users/reducer.js b/src/components/dashboard_users/reducer.js index 83896cb..0bd4bca 100644 --- a/src/components/dashboard_users/reducer.js +++ b/src/components/dashboard_users/reducer.js @@ -1,15 +1,24 @@ import { DELIVER_USERS } from './actions'; +import { updateObject } from '../../hoc/update-object/update-object' -export default function users(stateUSERS = {}, action){ +const initialState = { + usersData: [], +}; + +export default function users(state = initialState, action) { switch(action.type) { + case DELIVER_USERS: - return { - ...stateUSERS, - ...action.users - } - default : - return { - ...stateUSERS + const { users } = action; + let userData = []; + + for (let key in users) { + userData.push(users[key]); } + + return updateObject(state, { usersData: userData }) + + default: + return state; } } \ No newline at end of file -- GitLab From 916c131af7351d6f78708427fc28b7c5ade09a90 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Thu, 27 Sep 2018 16:22:55 +0300 Subject: [PATCH 013/249] dashboard table height --- src/components/dashboard_users/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 6031094..37858df 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -61,7 +61,7 @@ class DashboardUsers extends Component { } return ( -
+
{content}
) -- GitLab From c5a85d710fbb5fd3d87460c7671eed978aa36bf1 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Thu, 27 Sep 2018 16:40:47 +0300 Subject: [PATCH 014/249] monor change --- src/components/dashboard_users/index.js | 42 +++++++++++-------------- 1 file changed, 18 insertions(+), 24 deletions(-) diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 37858df..fa97f5d 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -10,36 +10,12 @@ import "./css/ag-theme-material.css"; class DashboardUsers extends Component { - state = { - colDef: [ - { headerName: "accountId", field: "accountId", filter: 'agTextColumnFilter' }, - { headerName: "profileId", field: "profileId", filter: 'agTextColumnFilter' }, - { headerName: "authenticationIdentifier", field: "authenticationIdentifier", filter: 'agTextColumnFilter' }, - - { headerName: "authenticationType", field: "authenticationType", filter: 'agTextColumnFilter' }, - { headerName: "avatar", field: "avatar", filter: 'agTextColumnFilter' }, - { headerName: "accountMark", field: "accountMark", filter: 'agTextColumnFilter' }, - - { headerName: "accountName", field: "accountName", filter: 'agTextColumnFilter' }, - { headerName: "firstName", field: "firstName", filter: 'agTextColumnFilter' }, - { headerName: "lastName", field: "lastName", filter: 'agTextColumnFilter' }, - - { headerName: "accountStatus", field: "accountStatus", filter: 'agTextColumnFilter' }, - { headerName: "qrCode", field: "qrCode", filter: 'agTextColumnFilter' }, - { headerName: "communicationProviders", field: "communicationProviders", filter: 'agTextColumnFilter' } - ] - } - componentDidMount() { this.props.getUsers(); } render() { - const { colDef } = this.state; const { users } = this.props; - - console.log(users) - let content = null; if (users.length === 0) { @@ -68,6 +44,24 @@ class DashboardUsers extends Component { } }; +const colDef = [ + { headerName: "accountId", field: "accountId", filter: 'agTextColumnFilter' }, + { headerName: "profileId", field: "profileId", filter: 'agTextColumnFilter' }, + { headerName: "authenticationIdentifier", field: "authenticationIdentifier", filter: 'agTextColumnFilter' }, + + { headerName: "authenticationType", field: "authenticationType", filter: 'agTextColumnFilter' }, + { headerName: "avatar", field: "avatar", filter: 'agTextColumnFilter' }, + { headerName: "accountMark", field: "accountMark", filter: 'agTextColumnFilter' }, + + { headerName: "accountName", field: "accountName", filter: 'agTextColumnFilter' }, + { headerName: "firstName", field: "firstName", filter: 'agTextColumnFilter' }, + { headerName: "lastName", field: "lastName", filter: 'agTextColumnFilter' }, + + { headerName: "accountStatus", field: "accountStatus", filter: 'agTextColumnFilter' }, + { headerName: "qrCode", field: "qrCode", filter: 'agTextColumnFilter' }, + { headerName: "communicationProviders", field: "communicationProviders", filter: 'agTextColumnFilter' } +] + function mapStateToProps(state) { return { -- GitLab From 6ad308fc784eb7293c5bf3b01015ff379720bef1 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Thu, 27 Sep 2018 17:15:39 +0300 Subject: [PATCH 015/249] loading and file structure update --- src/App.js | 2 +- src/components/dashboard_users/actions.js | 7 ++++ src/components/dashboard_users/index.js | 33 ++++++++++--------- src/components/dashboard_users/middleware.js | 6 ++-- src/components/dashboard_users/reducer.js | 20 +++++++++-- src/components/shared/ui/spinner.js | 9 +++-- src/index.css | 7 ++++ src/index.js | 4 +-- src/{utils => store}/root_middleware/index.js | 0 .../root_middleware/logger.js | 0 src/{utils => store}/root_reducers/index.js | 0 11 files changed, 63 insertions(+), 25 deletions(-) rename src/{utils => store}/root_middleware/index.js (100%) rename src/{utils => store}/root_middleware/logger.js (100%) rename src/{utils => store}/root_reducers/index.js (100%) diff --git a/src/App.js b/src/App.js index 774e747..94710df 100644 --- a/src/App.js +++ b/src/App.js @@ -12,7 +12,7 @@ class App extends Component { render() { return ( - + diff --git a/src/components/dashboard_users/actions.js b/src/components/dashboard_users/actions.js index 206fcca..930d574 100644 --- a/src/components/dashboard_users/actions.js +++ b/src/components/dashboard_users/actions.js @@ -1,5 +1,6 @@ export const GET_USERS = 'GET_USERS'; export const DELIVER_USERS = 'DELIVER_USERS'; +export const FAIL_USERS = 'FAIL_USERS'; export function getUsers() { return ({ @@ -7,6 +8,12 @@ export function getUsers() { }) } +export function failUsers() { + return ({ + type: FAIL_USERS + }) +} + export function deliverUsersPayload(users) { return ({ type: DELIVER_USERS, diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index fa97f5d..be8410d 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -1,4 +1,4 @@ -import React, { Component } from 'react'; +import React, { Component, Fragment } from 'react'; import { AgGridReact } from "ag-grid-react"; import { connect } from 'react-redux'; import { bindActionCreators } from 'redux'; @@ -15,31 +15,33 @@ class DashboardUsers extends Component { } render() { - const { users } = this.props; + const { users, loading } = this.props; let content = null; - if (users.length === 0) { + if (users.length === 0 && loading) { content = } else { - content = + - + columnDefs={colDef} + rowData={users}> + +
} return ( -
+ {content} -
+ ) } }; @@ -65,7 +67,8 @@ const colDef = [ function mapStateToProps(state) { return { - users: state.users.usersData + users: state.users.usersData, + loading: state.users.loading } } diff --git a/src/components/dashboard_users/middleware.js b/src/components/dashboard_users/middleware.js index f9aa5f5..10a2d09 100644 --- a/src/components/dashboard_users/middleware.js +++ b/src/components/dashboard_users/middleware.js @@ -1,15 +1,17 @@ import { call, put } from 'redux-saga/effects'; import { _getUsers } from './../../utils/api'; -import { deliverUsersPayload } from './actions'; +import { deliverUsersPayload, failUsers } from './actions'; export function* getUsers() { try { + const payloadArray = yield call(_getUsers); const payload = yield call(getUsersArray, payloadArray); + yield put(deliverUsersPayload(payload)); } catch(error) { - console.log('error', error) + yield put(failUsers()); } } diff --git a/src/components/dashboard_users/reducer.js b/src/components/dashboard_users/reducer.js index 0bd4bca..7c2cd11 100644 --- a/src/components/dashboard_users/reducer.js +++ b/src/components/dashboard_users/reducer.js @@ -1,13 +1,20 @@ -import { DELIVER_USERS } from './actions'; +import { GET_USERS, DELIVER_USERS, FAIL_USERS } from './actions'; import { updateObject } from '../../hoc/update-object/update-object' const initialState = { usersData: [], + loading: false }; export default function users(state = initialState, action) { switch(action.type) { + case GET_USERS: + + return updateObject(state, { + loading: true + }) + case DELIVER_USERS: const { users } = action; let userData = []; @@ -16,7 +23,16 @@ export default function users(state = initialState, action) { userData.push(users[key]); } - return updateObject(state, { usersData: userData }) + return updateObject(state, { + usersData: userData, + loading: false + }) + + case FAIL_USERS: + + return updateObject(state, { + loading: false + }) default: return state; diff --git a/src/components/shared/ui/spinner.js b/src/components/shared/ui/spinner.js index c0cf7a2..c4a6fc7 100644 --- a/src/components/shared/ui/spinner.js +++ b/src/components/shared/ui/spinner.js @@ -3,6 +3,7 @@ import PropTypes from 'prop-types'; import { withStyles } from '@material-ui/core/styles'; import CircularProgress from '@material-ui/core/CircularProgress'; import purple from '@material-ui/core/colors/purple'; +import Grid from '@material-ui/core/Grid'; const styles = theme => ({ progress: { @@ -13,9 +14,11 @@ const styles = theme => ({ function spinner(props) { const { classes } = props; return ( -
- -
+ + + + + ); } diff --git a/src/index.css b/src/index.css index b4cc725..da93e52 100644 --- a/src/index.css +++ b/src/index.css @@ -3,3 +3,10 @@ body { padding: 0; font-family: sans-serif; } + +html, +body, +#root, +.main-wrap { + height: 100%; +} \ No newline at end of file diff --git a/src/index.js b/src/index.js index 22f468e..d8f718b 100644 --- a/src/index.js +++ b/src/index.js @@ -3,8 +3,8 @@ import ReactDOM from 'react-dom'; import { createStore } from 'redux'; import { Provider } from 'react-redux'; -import combineReducers from './utils/root_reducers'; -import combineMiddleware, { sagaMiddleware, combineSagas } from './utils/root_middleware'; +import combineReducers from './store/root_reducers'; +import combineMiddleware, { sagaMiddleware, combineSagas } from './store/root_middleware'; import './index.css'; import App from './App'; diff --git a/src/utils/root_middleware/index.js b/src/store/root_middleware/index.js similarity index 100% rename from src/utils/root_middleware/index.js rename to src/store/root_middleware/index.js diff --git a/src/utils/root_middleware/logger.js b/src/store/root_middleware/logger.js similarity index 100% rename from src/utils/root_middleware/logger.js rename to src/store/root_middleware/logger.js diff --git a/src/utils/root_reducers/index.js b/src/store/root_reducers/index.js similarity index 100% rename from src/utils/root_reducers/index.js rename to src/store/root_reducers/index.js -- GitLab From a442d708ce7c8b7ab3f86bdc09d343efe078a587 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Thu, 27 Sep 2018 18:41:14 +0300 Subject: [PATCH 016/249] NY-3879 updating structure for error handling --- src/components/dashboard_users/actions.js | 5 ++-- src/components/dashboard_users/index.js | 27 +++++++++++++++++--- src/components/dashboard_users/middleware.js | 2 +- src/components/dashboard_users/reducer.js | 15 +++++++---- 4 files changed, 38 insertions(+), 11 deletions(-) diff --git a/src/components/dashboard_users/actions.js b/src/components/dashboard_users/actions.js index 930d574..c27b6f1 100644 --- a/src/components/dashboard_users/actions.js +++ b/src/components/dashboard_users/actions.js @@ -8,9 +8,10 @@ export function getUsers() { }) } -export function failUsers() { +export function failUsers(error) { return ({ - type: FAIL_USERS + type: FAIL_USERS, + error }) } diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index be8410d..14457fb 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -2,6 +2,7 @@ import React, { Component, Fragment } from 'react'; import { AgGridReact } from "ag-grid-react"; import { connect } from 'react-redux'; import { bindActionCreators } from 'redux'; +import Snackbar from '@material-ui/core/Snackbar'; import Spinner from './../shared/ui/spinner'; import * as actions from './actions'; @@ -15,7 +16,9 @@ class DashboardUsers extends Component { } render() { - const { users, loading } = this.props; + + const { users, loading, error, errorMessage } = this.props; + let content = null; if (users.length === 0 && loading) { @@ -39,8 +42,25 @@ class DashboardUsers extends Component { } return ( + - {content} + { + error + ? {errorMessage !== undefined ? errorMessage : 'Unknown Connection Error'}} + /> + : content + } + ) } @@ -68,7 +88,8 @@ function mapStateToProps(state) { return { users: state.users.usersData, - loading: state.users.loading + loading: state.users.loading, + error: state.users.error } } diff --git a/src/components/dashboard_users/middleware.js b/src/components/dashboard_users/middleware.js index 10a2d09..638b58d 100644 --- a/src/components/dashboard_users/middleware.js +++ b/src/components/dashboard_users/middleware.js @@ -11,7 +11,7 @@ export function* getUsers() { yield put(deliverUsersPayload(payload)); } catch(error) { - yield put(failUsers()); + yield put(failUsers(error)); } } diff --git a/src/components/dashboard_users/reducer.js b/src/components/dashboard_users/reducer.js index 7c2cd11..6bad1cf 100644 --- a/src/components/dashboard_users/reducer.js +++ b/src/components/dashboard_users/reducer.js @@ -3,7 +3,8 @@ import { updateObject } from '../../hoc/update-object/update-object' const initialState = { usersData: [], - loading: false + loading: false, + error: false, }; export default function users(state = initialState, action) { @@ -17,21 +18,25 @@ export default function users(state = initialState, action) { case DELIVER_USERS: const { users } = action; - let userData = []; + let usersData = []; for (let key in users) { - userData.push(users[key]); + usersData.push(users[key]); } return updateObject(state, { - usersData: userData, + usersData, loading: false }) case FAIL_USERS: + + const { error } = action; return updateObject(state, { - loading: false + errorMessage: error, + error: true, + loading: false }) default: -- GitLab From 1b347c8ef28060565faab7e0aa1c033552534353 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Fri, 28 Sep 2018 13:35:51 +0300 Subject: [PATCH 017/249] NY-3985 ag-grid integration with redux --- src/components/dashboard_users/index.js | 45 +++++++++++++---------- src/components/dashboard_users/reducer.js | 17 +++++++++ 2 files changed, 42 insertions(+), 20 deletions(-) diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 14457fb..41a4f72 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -2,6 +2,7 @@ import React, { Component, Fragment } from 'react'; import { AgGridReact } from "ag-grid-react"; import { connect } from 'react-redux'; import { bindActionCreators } from 'redux'; +import * as PropTypes from 'prop-types'; import Snackbar from '@material-ui/core/Snackbar'; import Spinner from './../shared/ui/spinner'; import * as actions from './actions'; @@ -15,9 +16,13 @@ class DashboardUsers extends Component { this.props.getUsers(); } - render() { + onGridReady = (params) => { + this.gridApi = params.api; + this.columnApi = params.columnApi; + } - const { users, loading, error, errorMessage } = this.props; + render() { + const { users, coldef, loading, error, errorMessage } = this.props; let content = null; @@ -34,8 +39,14 @@ class DashboardUsers extends Component { floatingFilter={true} pagination={true} - columnDefs={colDef} - rowData={users}> + reactNext={true} + reduxStore={this.context.store} + + columnDefs={coldef} + rowData={users} + + // events go here + onGridReady={this.onGridReady}>
@@ -66,28 +77,22 @@ class DashboardUsers extends Component { } }; -const colDef = [ - { headerName: "accountId", field: "accountId", filter: 'agTextColumnFilter' }, - { headerName: "profileId", field: "profileId", filter: 'agTextColumnFilter' }, - { headerName: "authenticationIdentifier", field: "authenticationIdentifier", filter: 'agTextColumnFilter' }, - - { headerName: "authenticationType", field: "authenticationType", filter: 'agTextColumnFilter' }, - { headerName: "avatar", field: "avatar", filter: 'agTextColumnFilter' }, - { headerName: "accountMark", field: "accountMark", filter: 'agTextColumnFilter' }, - - { headerName: "accountName", field: "accountName", filter: 'agTextColumnFilter' }, - { headerName: "firstName", field: "firstName", filter: 'agTextColumnFilter' }, - { headerName: "lastName", field: "lastName", filter: 'agTextColumnFilter' }, +DashboardUsers.contextTypes = { + store: PropTypes.object +} - { headerName: "accountStatus", field: "accountStatus", filter: 'agTextColumnFilter' }, - { headerName: "qrCode", field: "qrCode", filter: 'agTextColumnFilter' }, - { headerName: "communicationProviders", field: "communicationProviders", filter: 'agTextColumnFilter' } -] +DashboardUsers.propTypes = { + users: PropTypes.array.isRequired, + coldef: PropTypes.array.isRequired, + loading: PropTypes.bool.isRequired, + error: PropTypes.bool.isRequired +}; function mapStateToProps(state) { return { users: state.users.usersData, + coldef: state.users.coldef, loading: state.users.loading, error: state.users.error } diff --git a/src/components/dashboard_users/reducer.js b/src/components/dashboard_users/reducer.js index 6bad1cf..e387799 100644 --- a/src/components/dashboard_users/reducer.js +++ b/src/components/dashboard_users/reducer.js @@ -3,6 +3,23 @@ import { updateObject } from '../../hoc/update-object/update-object' const initialState = { usersData: [], + coldef: [ + { headerName: "accountId", field: "accountId", filter: 'agTextColumnFilter' }, + { headerName: "profileId", field: "profileId", filter: 'agTextColumnFilter' }, + { headerName: "authenticationIdentifier", field: "authenticationIdentifier", filter: 'agTextColumnFilter' }, + + { headerName: "authenticationType", field: "authenticationType", filter: 'agTextColumnFilter' }, + { headerName: "avatar", field: "avatar", filter: 'agTextColumnFilter' }, + { headerName: "accountMark", field: "accountMark", filter: 'agTextColumnFilter' }, + + { headerName: "accountName", field: "accountName", filter: 'agTextColumnFilter' }, + { headerName: "firstName", field: "firstName", filter: 'agTextColumnFilter' }, + { headerName: "lastName", field: "lastName", filter: 'agTextColumnFilter' }, + + { headerName: "accountStatus", field: "accountStatus", filter: 'agTextColumnFilter' }, + { headerName: "qrCode", field: "qrCode", filter: 'agTextColumnFilter' }, + { headerName: "communicationProviders", field: "communicationProviders", filter: 'agTextColumnFilter' } + ], loading: false, error: false, }; -- GitLab From 67fb766cb61598c22b1aebf0d22eea98dafd5f5c Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Fri, 28 Sep 2018 14:04:28 +0300 Subject: [PATCH 018/249] Minor changes --- src/components/dashboard_users/index.js | 30 ++++----- src/components/dashboard_users/reducer.js | 77 ++++++++++++----------- 2 files changed, 57 insertions(+), 50 deletions(-) diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 41a4f72..1598de4 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -14,23 +14,24 @@ class DashboardUsers extends Component { componentDidMount() { this.props.getUsers(); - } + }; onGridReady = (params) => { this.gridApi = params.api; this.columnApi = params.columnApi; - } + }; render() { const { users, coldef, loading, error, errorMessage } = this.props; - let content = null; if (users.length === 0 && loading) { content = + } else { - content =
+ content = ( +
- + ) } return ( + { - error + error ? {errorMessage !== undefined ? errorMessage : 'Unknown Connection Error'}} /> : content } - + ) } @@ -79,7 +79,7 @@ class DashboardUsers extends Component { DashboardUsers.contextTypes = { store: PropTypes.object -} +}; DashboardUsers.propTypes = { users: PropTypes.array.isRequired, @@ -88,7 +88,7 @@ DashboardUsers.propTypes = { error: PropTypes.bool.isRequired }; -function mapStateToProps(state) { +const mapStateToProps = (state) => { return { users: state.users.usersData, @@ -96,13 +96,13 @@ function mapStateToProps(state) { loading: state.users.loading, error: state.users.error } -} +}; -function mapDispatchToProps(dispatch) { +const mapDispatchToProps = (dispatch) => { return bindActionCreators({ ...actions }, dispatch) -} +}; export default connect(mapStateToProps, mapDispatchToProps)(DashboardUsers); \ No newline at end of file diff --git a/src/components/dashboard_users/reducer.js b/src/components/dashboard_users/reducer.js index e387799..b25998e 100644 --- a/src/components/dashboard_users/reducer.js +++ b/src/components/dashboard_users/reducer.js @@ -7,15 +7,15 @@ const initialState = { { headerName: "accountId", field: "accountId", filter: 'agTextColumnFilter' }, { headerName: "profileId", field: "profileId", filter: 'agTextColumnFilter' }, { headerName: "authenticationIdentifier", field: "authenticationIdentifier", filter: 'agTextColumnFilter' }, - + { headerName: "authenticationType", field: "authenticationType", filter: 'agTextColumnFilter' }, { headerName: "avatar", field: "avatar", filter: 'agTextColumnFilter' }, { headerName: "accountMark", field: "accountMark", filter: 'agTextColumnFilter' }, - + { headerName: "accountName", field: "accountName", filter: 'agTextColumnFilter' }, { headerName: "firstName", field: "firstName", filter: 'agTextColumnFilter' }, { headerName: "lastName", field: "lastName", filter: 'agTextColumnFilter' }, - + { headerName: "accountStatus", field: "accountStatus", filter: 'agTextColumnFilter' }, { headerName: "qrCode", field: "qrCode", filter: 'agTextColumnFilter' }, { headerName: "communicationProviders", field: "communicationProviders", filter: 'agTextColumnFilter' } @@ -24,39 +24,46 @@ const initialState = { error: false, }; +const getUsers = (state, action) => { + + return updateObject(state, { + loading: true + }) +}; + +const deliverUsers = (state, action) => { + + const { users } = action; + let usersData = []; + + for (let key in users) { + usersData.push(users[key]); + } + + return updateObject(state, { + usersData, + loading: false + }) +}; + +const failUsers = (state, action) => { + const { error } = action; + + return updateObject(state, { + errorMessage: error, + error: true, + loading: false + }) +}; + export default function users(state = initialState, action) { + switch(action.type) { - case GET_USERS: - - return updateObject(state, { - loading: true - }) - - case DELIVER_USERS: - const { users } = action; - let usersData = []; - - for (let key in users) { - usersData.push(users[key]); - } - - return updateObject(state, { - usersData, - loading: false - }) - - case FAIL_USERS: - - const { error } = action; - - return updateObject(state, { - errorMessage: error, - error: true, - loading: false - }) - - default: - return state; + case GET_USERS: return getUsers(state, action); + case DELIVER_USERS: return deliverUsers(state, action); + case FAIL_USERS: return failUsers(state, action) + + default: return state; } -} \ No newline at end of file +}; \ No newline at end of file -- GitLab From 27b5b55ea58ed1ac70f376eb16e5ff5b37f557e8 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Fri, 28 Sep 2018 15:46:13 +0300 Subject: [PATCH 019/249] implement requeirment for Ag-grid --- .../dashboard_users/css/ag-theme-material.css | 10 +++ src/components/dashboard_users/index.js | 72 +++++++++++++------ src/components/dashboard_users/reducer.js | 5 +- 3 files changed, 66 insertions(+), 21 deletions(-) diff --git a/src/components/dashboard_users/css/ag-theme-material.css b/src/components/dashboard_users/css/ag-theme-material.css index 48eb4c8..be29efd 100644 --- a/src/components/dashboard_users/css/ag-theme-material.css +++ b/src/components/dashboard_users/css/ag-theme-material.css @@ -1,4 +1,6 @@ .ag-theme-material { + width: 100%; + height: 100vh; background-color: #fff; color: rgba(0, 0, 0, 0.87); font: 400 13px "Roboto", sans-serif; } @@ -1876,3 +1878,11 @@ border-right: 2px solid #3f51b5; margin-right: -2px; padding-right: 1px; } + + .page-size-changed { + position: fixed; + bottom: 20px; + left: 50%; + + transform: translate(-50%, 0); + } diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 1598de4..d5fe690 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -2,9 +2,10 @@ import React, { Component, Fragment } from 'react'; import { AgGridReact } from "ag-grid-react"; import { connect } from 'react-redux'; import { bindActionCreators } from 'redux'; -import * as PropTypes from 'prop-types'; import Snackbar from '@material-ui/core/Snackbar'; import Spinner from './../shared/ui/spinner'; + +import * as PropTypes from 'prop-types'; import * as actions from './actions'; import "./css/ag-grid.css"; @@ -21,35 +22,61 @@ class DashboardUsers extends Component { this.columnApi = params.columnApi; }; + onPageSizeChanged = (e) => { + const value = e.target.value; + this.gridApi.paginationSetPageSize(Number(value)); + }; + render() { - const { users, coldef, loading, error, errorMessage } = this.props; + const { users, coldef, loading, error, errorMessage, rowSelection, paginationPageSize, paginationNumberFormatter } = this.props; let content = null; + if (users.length === 0 && loading) { content = } else { content = ( -
- + + + - floatingFilter={true} - pagination={true} +
+ - reactNext={true} - reduxStore={this.context.store} + - columnDefs={coldef} - rowData={users} +
- // events go here - onGridReady={this.onGridReady}> -
-
+
) } @@ -82,10 +109,12 @@ DashboardUsers.contextTypes = { }; DashboardUsers.propTypes = { - users: PropTypes.array.isRequired, + users: PropTypes.array.isRequired, coldef: PropTypes.array.isRequired, loading: PropTypes.bool.isRequired, - error: PropTypes.bool.isRequired + error: PropTypes.bool.isRequired, + paginationPageSize: PropTypes.number.isRequired, + paginationNumberFormatter: PropTypes.func.isRequired }; const mapStateToProps = (state) => { @@ -94,7 +123,10 @@ const mapStateToProps = (state) => { users: state.users.usersData, coldef: state.users.coldef, loading: state.users.loading, - error: state.users.error + error: state.users.error, + rowSelection: state.users.rowSelection, + paginationPageSize: state.users.paginationPageSize, + paginationNumberFormatter: state.users.paginationNumberFormatter } }; diff --git a/src/components/dashboard_users/reducer.js b/src/components/dashboard_users/reducer.js index b25998e..27f0e36 100644 --- a/src/components/dashboard_users/reducer.js +++ b/src/components/dashboard_users/reducer.js @@ -4,7 +4,7 @@ import { updateObject } from '../../hoc/update-object/update-object' const initialState = { usersData: [], coldef: [ - { headerName: "accountId", field: "accountId", filter: 'agTextColumnFilter' }, + { headerName: "accountId", field: "accountId", filter: 'agTextColumnFilter', headerCheckboxSelection: true, headerCheckboxSelectionFilteredOnly: true, checkboxSelection: true }, { headerName: "profileId", field: "profileId", filter: 'agTextColumnFilter' }, { headerName: "authenticationIdentifier", field: "authenticationIdentifier", filter: 'agTextColumnFilter' }, @@ -22,6 +22,9 @@ const initialState = { ], loading: false, error: false, + rowSelection: "multiple", + paginationPageSize: 10, + paginationNumberFormatter: (params) => `[ ${params.value.toLocaleString()} ]` }; const getUsers = (state, action) => { -- GitLab From 4e514956393cc392e0208c1d949c9b035296bbbc Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Fri, 28 Sep 2018 16:02:08 +0300 Subject: [PATCH 020/249] NY-3880 dummy data increased for review purposes, pagination step updated according requirements --- src/components/dashboard_users/index.js | 5 +- src/components/dashboard_users/reducer.js | 2 +- src/utils/api/_DATA.js | 2142 +++++++++++++++++++++ yarn.lock | 48 +- 4 files changed, 2169 insertions(+), 28 deletions(-) diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index d5fe690..51a0d27 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -69,9 +69,10 @@ class DashboardUsers extends Component { diff --git a/src/components/dashboard_users/reducer.js b/src/components/dashboard_users/reducer.js index 27f0e36..4aa3551 100644 --- a/src/components/dashboard_users/reducer.js +++ b/src/components/dashboard_users/reducer.js @@ -23,7 +23,7 @@ const initialState = { loading: false, error: false, rowSelection: "multiple", - paginationPageSize: 10, + paginationPageSize: 30, paginationNumberFormatter: (params) => `[ ${params.value.toLocaleString()} ]` }; diff --git a/src/utils/api/_DATA.js b/src/utils/api/_DATA.js index a7519a1..e0beecf 100644 --- a/src/utils/api/_DATA.js +++ b/src/utils/api/_DATA.js @@ -181,6 +181,2148 @@ export const users = [ qrCode: '456951789', communicationProviders: 'vendor-y' }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-e', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'admin', + firstName: 'Jane', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-z' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-a', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'owner', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'blocked', + qrCode: '456951789', + communicationProviders: 'vendor-c' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-e', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'admin', + firstName: 'Jane', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-z' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-a', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'owner', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'blocked', + qrCode: '456951789', + communicationProviders: 'vendor-c' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-e', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'admin', + firstName: 'Jane', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-z' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-a', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'owner', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'blocked', + qrCode: '456951789', + communicationProviders: 'vendor-c' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-e', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'admin', + firstName: 'Jane', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-z' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-a', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'owner', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'blocked', + qrCode: '456951789', + communicationProviders: 'vendor-c' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-e', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'admin', + firstName: 'Jane', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-z' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-a', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'owner', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'blocked', + qrCode: '456951789', + communicationProviders: 'vendor-c' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-e', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'admin', + firstName: 'Jane', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-z' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-a', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'owner', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'blocked', + qrCode: '456951789', + communicationProviders: 'vendor-c' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-e', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'admin', + firstName: 'Jane', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-z' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-a', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'owner', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'blocked', + qrCode: '456951789', + communicationProviders: 'vendor-c' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-e', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'admin', + firstName: 'Jane', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-z' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-a', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'owner', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'blocked', + qrCode: '456951789', + communicationProviders: 'vendor-c' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-e', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'admin', + firstName: 'Jane', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-z' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-a', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'owner', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'blocked', + qrCode: '456951789', + communicationProviders: 'vendor-c' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-e', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'admin', + firstName: 'Jane', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-z' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-a', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'owner', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'blocked', + qrCode: '456951789', + communicationProviders: 'vendor-c' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-e', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'admin', + firstName: 'Jane', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-z' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-a', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'owner', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'blocked', + qrCode: '456951789', + communicationProviders: 'vendor-c' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, { accountId: '159654753', profileId: '951753852', diff --git a/yarn.lock b/yarn.lock index 9ece536..3229ed0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -55,10 +55,8 @@ indefinite-observable "^1.0.1" "@types/prop-types@*": - version "15.5.5" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.5.5.tgz#17038dd322c2325f5da650a94d5f9974943625e3" - dependencies: - "@types/react" "*" + version "15.5.6" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.5.6.tgz#9c03d3fed70a8d517c191b7734da2879b50ca26c" "@types/react-transition-group@^2.0.8": version "2.0.14" @@ -1394,12 +1392,12 @@ caniuse-api@^1.5.2: lodash.uniq "^4.5.0" caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: - version "1.0.30000887" - resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000887.tgz#9abf538610e3349870ed525f7062de649cc3c570" + version "1.0.30000888" + resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000888.tgz#38081675206f8856b648c1cd793a28a2c5762448" caniuse-lite@^1.0.30000748, caniuse-lite@^1.0.30000792: - version "1.0.30000887" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000887.tgz#1769458c27bbdcf61b0cb6b5072bb6cd11fd9c23" + version "1.0.30000888" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000888.tgz#22edb50d91dd70612b5898e3b36f460600c6492f" capture-stack-trace@^1.0.0: version "1.0.1" @@ -2232,8 +2230,8 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.30: - version "1.3.70" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.70.tgz#ded377256d92d81b4257d36c65aa890274afcfd2" + version "1.3.72" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.72.tgz#b69683081d5b7eee6e1ea07b2f5fa30b3c72252d" elliptic@^6.0.0: version "6.4.1" @@ -2301,12 +2299,12 @@ es-abstract@^1.7.0: is-regex "^1.0.4" es-to-primitive@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" + version "1.2.0" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" dependencies: - is-callable "^1.1.1" + is-callable "^1.1.4" is-date-object "^1.0.1" - is-symbol "^1.0.1" + is-symbol "^1.0.2" es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: version "0.10.46" @@ -2568,7 +2566,7 @@ eventemitter3@^3.0.0: events@^1.0.0: version "1.1.1" - resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" + resolved "http://registry.npmjs.org/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" eventsource@0.1.6: version "0.1.6" @@ -2839,7 +2837,7 @@ fill-range@^4.0.0: finalhandler@1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105" + resolved "http://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105" dependencies: debug "2.6.9" encodeurl "~1.0.2" @@ -3553,7 +3551,7 @@ is-builtin-module@^1.0.0: dependencies: builtin-modules "^1.0.0" -is-callable@^1.1.1, is-callable@^1.1.3: +is-callable@^1.1.3, is-callable@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" @@ -3770,7 +3768,7 @@ is-svg@^2.0.0: dependencies: html-comment-regex "^1.1.0" -is-symbol@^1.0.1: +is-symbol@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" dependencies: @@ -4193,7 +4191,7 @@ json3@^3.3.2: json5@^0.5.0, json5@^0.5.1: version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + resolved "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" jsonfile@^2.1.0: version "2.4.0" @@ -4477,7 +4475,7 @@ longest@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1: +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" dependencies: @@ -5895,11 +5893,11 @@ react-scripts@1.1.5: fsevents "^1.1.3" react-transition-group@^2.2.1: - version "2.4.0" - resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-2.4.0.tgz#1d9391fabfd82e016f26fabd1eec329dbd922b5a" + version "2.5.0" + resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-2.5.0.tgz#70bca0e3546102c4dc5cf3f5f57f73447cce6874" dependencies: dom-helpers "^3.3.1" - loose-envify "^1.3.1" + loose-envify "^1.4.0" prop-types "^15.6.2" react-lifecycles-compat "^3.0.4" @@ -6545,8 +6543,8 @@ source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" spdx-correct@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82" + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.1.tgz#434434ff9d1726b4d9f4219d1004813d80639e30" dependencies: spdx-expression-parse "^3.0.0" spdx-license-ids "^3.0.0" -- GitLab From 0c321ea78606d28d6d06734e523f10c97f0cbee1 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Fri, 28 Sep 2018 16:34:35 +0300 Subject: [PATCH 021/249] minor chnages --- .../dashboard_users/css/ag-theme-material.css | 12 +----------- src/components/dashboard_users/css/index.css | 11 +++++++++++ src/components/dashboard_users/index.js | 8 +++++--- 3 files changed, 17 insertions(+), 14 deletions(-) create mode 100644 src/components/dashboard_users/css/index.css diff --git a/src/components/dashboard_users/css/ag-theme-material.css b/src/components/dashboard_users/css/ag-theme-material.css index be29efd..e35e119 100644 --- a/src/components/dashboard_users/css/ag-theme-material.css +++ b/src/components/dashboard_users/css/ag-theme-material.css @@ -1,6 +1,4 @@ .ag-theme-material { - width: 100%; - height: 100vh; background-color: #fff; color: rgba(0, 0, 0, 0.87); font: 400 13px "Roboto", sans-serif; } @@ -1877,12 +1875,4 @@ padding-left: 0; border-right: 2px solid #3f51b5; margin-right: -2px; - padding-right: 1px; } - - .page-size-changed { - position: fixed; - bottom: 20px; - left: 50%; - - transform: translate(-50%, 0); - } + padding-right: 1px; } \ No newline at end of file diff --git a/src/components/dashboard_users/css/index.css b/src/components/dashboard_users/css/index.css new file mode 100644 index 0000000..3e0d4f4 --- /dev/null +++ b/src/components/dashboard_users/css/index.css @@ -0,0 +1,11 @@ +.page-size-changed { + position: fixed; + bottom: 20px; + left: 50%; + + transform: translate(-50%, 0); +} +.ag-grid-wrapper { + width: 100%; + height: 100vh; +} \ No newline at end of file diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 51a0d27..2828765 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -8,6 +8,7 @@ import Spinner from './../shared/ui/spinner'; import * as PropTypes from 'prop-types'; import * as actions from './actions'; +import "./css/index.css"; import "./css/ag-grid.css"; import "./css/ag-theme-material.css"; @@ -38,14 +39,14 @@ class DashboardUsers extends Component { } else { content = ( -
+
+ onGridReady={this.onGridReady} + >
-- GitLab From a64e4910e6dc639dc1cc75fd31ce783da9270f5b Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Mon, 1 Oct 2018 13:31:22 +0300 Subject: [PATCH 022/249] ag-grid community version, grouping extended --- public/index.html | 2 +- src/components/dashboard_users/css/index.css | 13 +++++ src/components/dashboard_users/index.js | 50 +++++++++++++++++++- 3 files changed, 62 insertions(+), 3 deletions(-) diff --git a/public/index.html b/public/index.html index ed0ebaf..d82e08f 100644 --- a/public/index.html +++ b/public/index.html @@ -19,7 +19,7 @@ work correctly both with client-side routing and a non-root public URL. Learn how to configure a non-root public URL by running `npm run build`. --> - React App + Nynja Admin Console
) } -- GitLab From 09342bf97c5be3489f162d8d489f33bbbf726e8d Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Mon, 1 Oct 2018 14:30:25 +0300 Subject: [PATCH 023/249] fetching Avatar from data --- src/components/dashboard_users/css/index.css | 16 +++++++++++++++- src/components/dashboard_users/index.js | 8 +++++--- src/components/dashboard_users/reducer.js | 16 +++++++++------- 3 files changed, 29 insertions(+), 11 deletions(-) diff --git a/src/components/dashboard_users/css/index.css b/src/components/dashboard_users/css/index.css index 206502f..0a1ecd2 100644 --- a/src/components/dashboard_users/css/index.css +++ b/src/components/dashboard_users/css/index.css @@ -12,13 +12,27 @@ .table-grouping { position: fixed; + right: 17px; + bottom: 76px; top: 0px; + max-width: 265px; background: #fff; - bottom: 76px; } .table-grouping h2 { padding-left: 32px; +} +.user-avatar { + display: inline-block; + + width: 30px; + height: 30px; +} +.user-avatar-img { + display: block; + + margin-top: 6px; + width: 100%; } \ No newline at end of file diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 5bff874..7d0e4fa 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -34,10 +34,12 @@ class DashboardUsers extends Component { showHideColumns = (e) => { - const { id, checked } = e.target - + const { id, checked } = e.target + this.columnApi.setColumnVisible(id, checked); - } + }; + + render() { const { users, coldef, loading, error, errorMessage, rowSelection, paginationPageSize, paginationNumberFormatter } = this.props; diff --git a/src/components/dashboard_users/reducer.js b/src/components/dashboard_users/reducer.js index 4aa3551..b558a6c 100644 --- a/src/components/dashboard_users/reducer.js +++ b/src/components/dashboard_users/reducer.js @@ -1,24 +1,26 @@ import { GET_USERS, DELIVER_USERS, FAIL_USERS } from './actions'; -import { updateObject } from '../../hoc/update-object/update-object' +import { updateObject } from '../../hoc/update-object/update-object'; + +const userAvatar = params => { + const avatar = `${params.value}`; + return avatar ? avatar : null; +}; const initialState = { usersData: [], coldef: [ - { headerName: "accountId", field: "accountId", filter: 'agTextColumnFilter', headerCheckboxSelection: true, headerCheckboxSelectionFilteredOnly: true, checkboxSelection: true }, + { headerName: "avatar", field: "avatar", filter: 'agTextColumnFilter', cellRenderer: "agGroupCellRenderer", cellRendererParams: { innerRenderer: userAvatar }, headerCheckboxSelection: true, headerCheckboxSelectionFilteredOnly: true, checkboxSelection: true }, + { headerName: "accountId", field: "accountId", filter: 'agTextColumnFilter' }, { headerName: "profileId", field: "profileId", filter: 'agTextColumnFilter' }, { headerName: "authenticationIdentifier", field: "authenticationIdentifier", filter: 'agTextColumnFilter' }, - { headerName: "authenticationType", field: "authenticationType", filter: 'agTextColumnFilter' }, - { headerName: "avatar", field: "avatar", filter: 'agTextColumnFilter' }, { headerName: "accountMark", field: "accountMark", filter: 'agTextColumnFilter' }, - { headerName: "accountName", field: "accountName", filter: 'agTextColumnFilter' }, { headerName: "firstName", field: "firstName", filter: 'agTextColumnFilter' }, { headerName: "lastName", field: "lastName", filter: 'agTextColumnFilter' }, - { headerName: "accountStatus", field: "accountStatus", filter: 'agTextColumnFilter' }, { headerName: "qrCode", field: "qrCode", filter: 'agTextColumnFilter' }, - { headerName: "communicationProviders", field: "communicationProviders", filter: 'agTextColumnFilter' } + { headerName: "communicationProviders", field: "communicationProviders", filter: 'agTextColumnFilter' }, ], loading: false, error: false, -- GitLab From d491aea36eda200f9e6bb5eb3799ec8dbeb85aa6 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Mon, 1 Oct 2018 15:53:54 +0300 Subject: [PATCH 024/249] grouping options appended --- src/components/dashboard_users/css/index.css | 35 ++++++++++++++++---- src/components/dashboard_users/index.js | 21 ++++++++---- 2 files changed, 43 insertions(+), 13 deletions(-) diff --git a/src/components/dashboard_users/css/index.css b/src/components/dashboard_users/css/index.css index 0a1ecd2..fc16dd5 100644 --- a/src/components/dashboard_users/css/index.css +++ b/src/components/dashboard_users/css/index.css @@ -6,24 +6,23 @@ transform: translate(-50%, 0); } .ag-grid-wrapper { - width: 100%; + width: calc(100% - 20px); height: 100vh; } .table-grouping { position: fixed; - right: 17px; - bottom: 76px; - top: 0px; + top: 115px; + right: 2px; + bottom: 0; + padding: 0 0 0 20px; max-width: 265px; background: #fff; + overflow-y: auto; } -.table-grouping h2 { - padding-left: 32px; -} .user-avatar { display: inline-block; @@ -35,4 +34,26 @@ margin-top: 6px; width: 100%; +} + +.toggleGrouping { + display: block; + position: absolute; + top: 0; + left: 0; + -webkit-writing-mode: vertical-lr; + -ms-writing-mode: tb-lr; + writing-mode: vertical-lr; +} + +.toggleGrouping:hover { + cursor: pointer; +} + +.grouping-options { + display: none; +} + +.grouping-options.visible-grouping-options { + display: block; } \ No newline at end of file diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 7d0e4fa..5216108 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -18,6 +18,10 @@ import "./css/ag-theme-material.css"; class DashboardUsers extends Component { + state = { + groupingBarVisible: false + } + componentDidMount() { this.props.getUsers(); }; @@ -39,7 +43,13 @@ class DashboardUsers extends Component { this.columnApi.setColumnVisible(id, checked); }; + toggleGroupingBar = (e) => { + e.preventDefault() + this.setState(() => ({ + groupingBarVisible: !this.state.groupingBarVisible + })) + } render() { const { users, coldef, loading, error, errorMessage, rowSelection, paginationPageSize, paginationNumberFormatter } = this.props; @@ -90,13 +100,12 @@ class DashboardUsers extends Component {
- +
) } -- GitLab From cf251039c2a4ccbd13acae227078bd58cdb7ad78 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Mon, 1 Oct 2018 16:26:24 +0300 Subject: [PATCH 025/249] NY-3880 refactoring and separating components --- .../dashboard_users/grouping/index.js | 48 +++++++++++++++ src/components/dashboard_users/index.js | 59 +++---------------- .../dashboard_users/page_size/index.js | 18 ++++++ 3 files changed, 75 insertions(+), 50 deletions(-) create mode 100644 src/components/dashboard_users/grouping/index.js create mode 100644 src/components/dashboard_users/page_size/index.js diff --git a/src/components/dashboard_users/grouping/index.js b/src/components/dashboard_users/grouping/index.js new file mode 100644 index 0000000..391cd68 --- /dev/null +++ b/src/components/dashboard_users/grouping/index.js @@ -0,0 +1,48 @@ +import React from 'react'; +import List from '@material-ui/core/List'; +import ListItem from '@material-ui/core/ListItem'; +import ListItemText from '@material-ui/core/ListItemText'; +import Checkbox from '@material-ui/core/Checkbox'; + +export const Grouping = (props) => { + + const {coldef, showHideColumns, toggleGroupingBar, groupingBarVisible} = props; + console.log(props); + + return ( + + ) +} \ No newline at end of file diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 5216108..143514c 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -3,11 +3,9 @@ import { AgGridReact } from "ag-grid-react"; import { connect } from 'react-redux'; import { bindActionCreators } from 'redux'; import Snackbar from '@material-ui/core/Snackbar'; -import List from '@material-ui/core/List'; -import ListItem from '@material-ui/core/ListItem'; -import ListItemText from '@material-ui/core/ListItemText'; -import Checkbox from '@material-ui/core/Checkbox'; import Spinner from './../shared/ui/spinner'; +import { Grouping } from './grouping'; +import { PageSize } from './page_size'; import * as PropTypes from 'prop-types'; import * as actions from './actions'; @@ -88,53 +86,14 @@ class DashboardUsers extends Component { > -
- - - - -
- + + ) diff --git a/src/components/dashboard_users/page_size/index.js b/src/components/dashboard_users/page_size/index.js new file mode 100644 index 0000000..b9de46c --- /dev/null +++ b/src/components/dashboard_users/page_size/index.js @@ -0,0 +1,18 @@ +import React from 'react'; + +export const PageSize = (props) => { + return ( +
+ + + + +
+ ) +} \ No newline at end of file -- GitLab From 1852cc1f9492f5ea142e2fd3f7bb30469b138ece Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Mon, 1 Oct 2018 16:42:33 +0300 Subject: [PATCH 026/249] Add Sidebar toggle button --- src/App.js | 66 +++++++++++++++----- src/components/dashboard_users/css/index.css | 2 + src/components/sidebar/index.js | 14 +++-- src/components/sidebar/sidebar.css | 3 + src/index.css | 34 +++++++++- 5 files changed, 97 insertions(+), 22 deletions(-) create mode 100644 src/components/sidebar/sidebar.css diff --git a/src/App.js b/src/App.js index 94710df..0a7082a 100644 --- a/src/App.js +++ b/src/App.js @@ -1,44 +1,78 @@ import React, { Component } from 'react'; import { BrowserRouter as Router, Route, Switch } from 'react-router-dom'; import { connect } from 'react-redux'; + +import { withStyles } from "@material-ui/core/styles"; import Grid from '@material-ui/core/Grid'; +import IconButton from "@material-ui/core/IconButton"; +import MenuIcon from "@material-ui/icons/Menu"; import { routesArray } from './routing'; import PageNotFound from './components/page_not_found'; import Sidebar from './components/sidebar'; +import PropTypes from "prop-types"; +const styles = {}; class App extends Component { + state = { + show: false + }; + + sideBarToggleHandler = () => { + + this.setState((prevState) => { + return { + show: !prevState.show + } + + }); + } + render() { + + const { classes } = this.props; + const { show } = this.state; + return ( + - - - +
+ + + +
- + { + show + ? + + + + : null + } + + { - routesArray.map((item, index) => { - return - }) + routesArray.map((item, index) => ) } - - } /> + } />
- ); + + ) + } } -export default connect()(App); \ No newline at end of file +App.propTypes = { + classes: PropTypes.object.isRequired +}; + +export default withStyles(styles)(connect()(App)); \ No newline at end of file diff --git a/src/components/dashboard_users/css/index.css b/src/components/dashboard_users/css/index.css index fc16dd5..0bc5b71 100644 --- a/src/components/dashboard_users/css/index.css +++ b/src/components/dashboard_users/css/index.css @@ -8,6 +8,8 @@ .ag-grid-wrapper { width: calc(100% - 20px); height: 100vh; + + padding-top: 40px; } .table-grouping { diff --git a/src/components/sidebar/index.js b/src/components/sidebar/index.js index 4fed7b5..83e9495 100644 --- a/src/components/sidebar/index.js +++ b/src/components/sidebar/index.js @@ -1,15 +1,19 @@ import React, { Component } from 'react'; import Paper from '@material-ui/core/Paper'; - import { SideNav } from './../shared/side_nav' +import './sidebar.css' class Sidebar extends Component { + render(){ + return ( - - Sidebar lives here - - + +
+ + + +
) } } diff --git a/src/components/sidebar/sidebar.css b/src/components/sidebar/sidebar.css new file mode 100644 index 0000000..eb86bdd --- /dev/null +++ b/src/components/sidebar/sidebar.css @@ -0,0 +1,3 @@ +.sidebar-menu { + margin-top: 40px; +} \ No newline at end of file diff --git a/src/index.css b/src/index.css index da93e52..19e3583 100644 --- a/src/index.css +++ b/src/index.css @@ -1,7 +1,16 @@ +* { + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + box-sizing: border-box; + outline: none; +} +*, *:before, *:after { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} body { margin: 0; padding: 0; - font-family: sans-serif; } html, @@ -9,4 +18,27 @@ body, #root, .main-wrap { height: 100%; +} + +a { + -webkit-tap-highlight-color: transparent; + -webkit-focus-ring-color: transparent; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + + text-decoration: none; + outline: 0; +} + +a:hover { + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + -webkit-tap-highlight-color: transparent; + -webkit-focus-ring-color: transparent; +} + +.toggle-menu-btn { + position: fixed; + top: 0; + left: 9px; + + z-index: 1000; } \ No newline at end of file -- GitLab From c1126c009b112e1c505e0668e7afa11bc22a7e52 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Mon, 1 Oct 2018 16:48:14 +0300 Subject: [PATCH 027/249] minor toggle update --- src/App.js | 2 +- src/components/dashboard_users/index.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/App.js b/src/App.js index 0a7082a..ebafe8a 100644 --- a/src/App.js +++ b/src/App.js @@ -16,7 +16,7 @@ const styles = {}; class App extends Component { state = { - show: false + show: true }; sideBarToggleHandler = () => { diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 143514c..17fbc1d 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -44,8 +44,8 @@ class DashboardUsers extends Component { toggleGroupingBar = (e) => { e.preventDefault() - this.setState(() => ({ - groupingBarVisible: !this.state.groupingBarVisible + this.setState((prevState) => ({ + groupingBarVisible: !prevState.groupingBarVisible })) } -- GitLab From 409f3149c74ad1eef62d15db9d478aa1b081f735 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Tue, 2 Oct 2018 13:38:12 +0300 Subject: [PATCH 028/249] Fixed pagination page size --- src/components/dashboard_users/actions.js | 8 +++++++ src/components/dashboard_users/index.js | 23 +++++++++---------- .../dashboard_users/page_size/index.js | 11 ++++++--- src/components/dashboard_users/reducer.js | 12 ++++++++-- 4 files changed, 37 insertions(+), 17 deletions(-) diff --git a/src/components/dashboard_users/actions.js b/src/components/dashboard_users/actions.js index c27b6f1..a97ef3d 100644 --- a/src/components/dashboard_users/actions.js +++ b/src/components/dashboard_users/actions.js @@ -1,6 +1,7 @@ export const GET_USERS = 'GET_USERS'; export const DELIVER_USERS = 'DELIVER_USERS'; export const FAIL_USERS = 'FAIL_USERS'; +export const PAGE_SIZE_UPDATE = 'PAGE_SIZE_UPDATE'; export function getUsers() { return ({ @@ -15,6 +16,13 @@ export function failUsers(error) { }) } +export function PageSizeUpdate(pageSize) { + return ({ + type: PAGE_SIZE_UPDATE, + pageSize + }) +} + export function deliverUsersPayload(users) { return ({ type: DELIVER_USERS, diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 17fbc1d..96c664b 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -5,7 +5,7 @@ import { bindActionCreators } from 'redux'; import Snackbar from '@material-ui/core/Snackbar'; import Spinner from './../shared/ui/spinner'; import { Grouping } from './grouping'; -import { PageSize } from './page_size'; +import PageSize from './page_size'; import * as PropTypes from 'prop-types'; import * as actions from './actions'; @@ -17,7 +17,7 @@ import "./css/ag-theme-material.css"; class DashboardUsers extends Component { state = { - groupingBarVisible: false + groupingBarVisible: false } componentDidMount() { @@ -32,12 +32,11 @@ class DashboardUsers extends Component { onPageSizeChanged = (e) => { const value = e.target.value; this.gridApi.paginationSetPageSize(Number(value)); + this.props.PageSizeUpdate(Number(value)); }; showHideColumns = (e) => { - const { id, checked } = e.target - this.columnApi.setColumnVisible(id, checked); }; @@ -46,8 +45,8 @@ class DashboardUsers extends Component { this.setState((prevState) => ({ groupingBarVisible: !prevState.groupingBarVisible - })) - } + })) + } render() { const { users, coldef, loading, error, errorMessage, rowSelection, paginationPageSize, paginationNumberFormatter } = this.props; @@ -86,13 +85,13 @@ class DashboardUsers extends Component { > - + - diff --git a/src/components/dashboard_users/page_size/index.js b/src/components/dashboard_users/page_size/index.js index b9de46c..0f6e703 100644 --- a/src/components/dashboard_users/page_size/index.js +++ b/src/components/dashboard_users/page_size/index.js @@ -1,11 +1,14 @@ import React from 'react'; -export const PageSize = (props) => { + const PageSize = (props) => { + + console.log(props.paginationPageSize) + return (
- @@ -15,4 +18,6 @@ export const PageSize = (props) => {
) -} \ No newline at end of file +} + +export default PageSize; \ No newline at end of file diff --git a/src/components/dashboard_users/reducer.js b/src/components/dashboard_users/reducer.js index b558a6c..0e13fa2 100644 --- a/src/components/dashboard_users/reducer.js +++ b/src/components/dashboard_users/reducer.js @@ -1,4 +1,4 @@ -import { GET_USERS, DELIVER_USERS, FAIL_USERS } from './actions'; +import { GET_USERS, DELIVER_USERS, FAIL_USERS, PAGE_SIZE_UPDATE } from './actions'; import { updateObject } from '../../hoc/update-object/update-object'; const userAvatar = params => { @@ -61,13 +61,21 @@ const failUsers = (state, action) => { }) }; +const pageSizeUpdate = (state, action) => { + + return updateObject(state, { + paginationPageSize: action.pageSize + }); +}; + export default function users(state = initialState, action) { switch(action.type) { case GET_USERS: return getUsers(state, action); case DELIVER_USERS: return deliverUsers(state, action); - case FAIL_USERS: return failUsers(state, action) + case FAIL_USERS: return failUsers(state, action); + case PAGE_SIZE_UPDATE: return pageSizeUpdate(state, action); default: return state; } -- GitLab From 33120c33aa00f39b649617b1a1c6c3604ec1b696 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Tue, 2 Oct 2018 13:47:56 +0300 Subject: [PATCH 029/249] descriptive name for left side bar show hide flag --- src/App.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/App.js b/src/App.js index ebafe8a..989410a 100644 --- a/src/App.js +++ b/src/App.js @@ -16,14 +16,14 @@ const styles = {}; class App extends Component { state = { - show: true + leftSideNav: true }; sideBarToggleHandler = () => { this.setState((prevState) => { return { - show: !prevState.show + leftSideNav: !prevState.leftSideNav } }); @@ -32,21 +32,21 @@ class App extends Component { render() { const { classes } = this.props; - const { show } = this.state; + const { leftSideNav } = this.state; return ( -
+
-
+
{ - show + leftSideNav ? @@ -54,7 +54,7 @@ class App extends Component { : null } - + { routesArray.map((item, index) => ) -- GitLab From e1bd7b41eee670836bbe230c4ebd449b31bde9bb Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Tue, 2 Oct 2018 14:43:22 +0300 Subject: [PATCH 030/249] NY-4042 initial documentation applied --- src/App.js | 12 ++++++ .../dashboard_users/grouping/index.js | 8 +++- src/components/dashboard_users/index.js | 38 +++++++++++++++++++ .../dashboard_users/page_size/index.js | 8 +++- src/routing/index.js | 14 +++++++ 5 files changed, 77 insertions(+), 3 deletions(-) diff --git a/src/App.js b/src/App.js index 989410a..62c5cf9 100644 --- a/src/App.js +++ b/src/App.js @@ -12,13 +12,21 @@ import PageNotFound from './components/page_not_found'; import Sidebar from './components/sidebar'; import PropTypes from "prop-types"; +/** + * { styles } coming from Material UI will go here + */ const styles = {}; + class App extends Component { state = { leftSideNav: true }; + /** + * { sideBarToggleHandler } toggling function + * checks state.leftSideNav bool and toggles it + */ sideBarToggleHandler = () => { this.setState((prevState) => { @@ -31,6 +39,10 @@ class App extends Component { render() { + /** + * { classes } material ui + * { leftSideNav } bool coming from component state, related to show hide left side Navbar + */ const { classes } = this.props; const { leftSideNav } = this.state; diff --git a/src/components/dashboard_users/grouping/index.js b/src/components/dashboard_users/grouping/index.js index 391cd68..f1b74ce 100644 --- a/src/components/dashboard_users/grouping/index.js +++ b/src/components/dashboard_users/grouping/index.js @@ -6,8 +6,14 @@ import Checkbox from '@material-ui/core/Checkbox'; export const Grouping = (props) => { + /** + * { coldef } is an array coming from the parent component + * { showHideColumns } is function coming from the parent component + * { toggleGroupingBar } is function coming from the parent component + * { groupingBarVisible } is bool coming from parent component state + */ + const {coldef, showHideColumns, toggleGroupingBar, groupingBarVisible} = props; - console.log(props); return ( ) -} \ No newline at end of file +} + +Grouping.proptypes = { + coldef: PropTypes.array.isRequired, + showHideColumns: PropTypes.func.isRequired, + toggleGroupingBar: PropTypes.func.isRequired, + groupingBarVisible: PropTypes.bool.isRequired +} \ No newline at end of file diff --git a/src/components/dashboard_users/page_size/index.js b/src/components/dashboard_users/page_size/index.js index 510f7bb..ca9685c 100644 --- a/src/components/dashboard_users/page_size/index.js +++ b/src/components/dashboard_users/page_size/index.js @@ -1,4 +1,5 @@ import React from 'react'; +import * as PropTypes from 'prop-types'; const PageSize = (props) => { @@ -24,4 +25,9 @@ import React from 'react'; ) } +PageSize.proptypes = { + onPageSizeChanged: PropTypes.func.isRequired, + paginationPageSize: PropTypes.bool.isRequired +} + export default PageSize; \ No newline at end of file -- GitLab From b75711a83c447a6dc3a8c1f1058c266a9663eff7 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Wed, 3 Oct 2018 10:57:17 +0300 Subject: [PATCH 035/249] unit test user reducer --- package.json | 2 +- src/components/dashboard_users/actions.js | 16 +++++----- .../dashboard_users/reducer.test.js | 30 +++++++++++++++++++ 3 files changed, 39 insertions(+), 9 deletions(-) create mode 100644 src/components/dashboard_users/reducer.test.js diff --git a/package.json b/package.json index 94a496c..08468c3 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "scripts": { "start": "react-scripts start", "build": "react-scripts build", - "test": "react-scripts test --env=jsdom", + "test": "react-scripts test --coverage --env=jsdom", "eject": "react-scripts eject" } } diff --git a/src/components/dashboard_users/actions.js b/src/components/dashboard_users/actions.js index a97ef3d..f7d176b 100644 --- a/src/components/dashboard_users/actions.js +++ b/src/components/dashboard_users/actions.js @@ -4,28 +4,28 @@ export const FAIL_USERS = 'FAIL_USERS'; export const PAGE_SIZE_UPDATE = 'PAGE_SIZE_UPDATE'; export function getUsers() { - return ({ + return { type: GET_USERS - }) + } } export function failUsers(error) { - return ({ + return { type: FAIL_USERS, error - }) + } } export function PageSizeUpdate(pageSize) { - return ({ + return { type: PAGE_SIZE_UPDATE, pageSize - }) + } } export function deliverUsersPayload(users) { - return ({ + return { type: DELIVER_USERS, users - }) + } } \ No newline at end of file diff --git a/src/components/dashboard_users/reducer.test.js b/src/components/dashboard_users/reducer.test.js new file mode 100644 index 0000000..a8a000a --- /dev/null +++ b/src/components/dashboard_users/reducer.test.js @@ -0,0 +1,30 @@ +import reducer from './reducer'; +import userAvatar from '../../utils/services/avatar_insertion'; + +describe('users reducer', () => { + it("Should return the Initial State", () => { + + expect(reducer(undefined, {})).toEqual({ + usersData: [], + coldef: [ + { headerName: "avatar", field: "avatar", filter: 'agTextColumnFilter', cellRenderer: "agGroupCellRenderer", cellRendererParams: { innerRenderer: userAvatar }, headerCheckboxSelection: true, headerCheckboxSelectionFilteredOnly: true, checkboxSelection: true }, + { headerName: "accountId", field: "accountId", filter: 'agTextColumnFilter' }, + { headerName: "profileId", field: "profileId", filter: 'agTextColumnFilter' }, + { headerName: "authenticationIdentifier", field: "authenticationIdentifier", filter: 'agTextColumnFilter' }, + { headerName: "authenticationType", field: "authenticationType", filter: 'agTextColumnFilter' }, + { headerName: "accountMark", field: "accountMark", filter: 'agTextColumnFilter' }, + { headerName: "accountName", field: "accountName", filter: 'agTextColumnFilter' }, + { headerName: "firstName", field: "firstName", filter: 'agTextColumnFilter' }, + { headerName: "lastName", field: "lastName", filter: 'agTextColumnFilter' }, + { headerName: "accountStatus", field: "accountStatus", filter: 'agTextColumnFilter' }, + { headerName: "qrCode", field: "qrCode", filter: 'agTextColumnFilter' }, + { headerName: "communicationProviders", field: "communicationProviders", filter: 'agTextColumnFilter' }, + ], + loading: false, + error: false, + rowSelection: "multiple", + paginationPageSize: 30 + }); + + }) +}); \ No newline at end of file -- GitLab From e3d5aa34457719b86236ff1ea1b0448bedcd16b5 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Wed, 3 Oct 2018 12:09:03 +0300 Subject: [PATCH 036/249] NY-4042 documentation rework and finalization for the module integrated so far --- src/App.js | 6 +- .../dashboard_users/grouping/index.js | 14 +- src/components/dashboard_users/index.js | 20 +- src/components/dashboard_users/middleware.js | 8 + .../dashboard_users/page_size/index.js | 5 +- src/components/dashboard_users/reducer.js | 3 + src/routing/index.js | 4 +- yarn.lock | 346 +++++++++++++++--- 8 files changed, 329 insertions(+), 77 deletions(-) diff --git a/src/App.js b/src/App.js index 62c5cf9..5aa0d3b 100644 --- a/src/App.js +++ b/src/App.js @@ -13,7 +13,7 @@ import Sidebar from './components/sidebar'; import PropTypes from "prop-types"; /** - * { styles } coming from Material UI will go here + * @const {object} styles coming from Material UI will go here */ const styles = {}; @@ -40,8 +40,8 @@ class App extends Component { render() { /** - * { classes } material ui - * { leftSideNav } bool coming from component state, related to show hide left side Navbar + * @const {object} classes coming from material ui + * @const {object} leftSideNav related to show hide left side Navbar */ const { classes } = this.props; const { leftSideNav } = this.state; diff --git a/src/components/dashboard_users/grouping/index.js b/src/components/dashboard_users/grouping/index.js index 70c3977..3d6c946 100644 --- a/src/components/dashboard_users/grouping/index.js +++ b/src/components/dashboard_users/grouping/index.js @@ -5,13 +5,13 @@ import ListItemText from '@material-ui/core/ListItemText'; import Checkbox from '@material-ui/core/Checkbox'; import * as PropTypes from 'prop-types'; -export const Grouping = (props) => { +const Grouping = (props) => { /** - * { coldef } is an array coming from the parent component - * { showHideColumns } is function coming from the parent component - * { toggleGroupingBar } is function coming from the parent component - * { groupingBarVisible } is bool coming from parent component state + * @const {array} coldef + * @const {function} showHideColumns + * @const {function} toggleGroupingBar + * @const {bool} groupingBarVisible */ const {coldef, showHideColumns, toggleGroupingBar, groupingBarVisible} = props; @@ -59,4 +59,6 @@ Grouping.proptypes = { showHideColumns: PropTypes.func.isRequired, toggleGroupingBar: PropTypes.func.isRequired, groupingBarVisible: PropTypes.bool.isRequired -} \ No newline at end of file +} + +export default Grouping; \ No newline at end of file diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 072dd68..5d61e9c 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -4,7 +4,7 @@ import { connect } from 'react-redux'; import { bindActionCreators } from 'redux'; import Snackbar from '@material-ui/core/Snackbar'; import Spinner from './../shared/ui/spinner'; -import { Grouping } from './grouping'; +import Grouping from './grouping'; import PageSize from './page_size'; import * as PropTypes from 'prop-types'; @@ -67,7 +67,7 @@ class DashboardUsers extends Component { }; /** - * { toggleGroupingBar } is a function component state groupingBarVisible flag + * { toggleGroupingBar } is a function managing component state groupingBarVisible flag * given its true or false value, the Right Sidebar is visble or hidden */ toggleGroupingBar = (e) => { @@ -80,14 +80,14 @@ class DashboardUsers extends Component { render() { /** - * { users } is an array coming after async request - * { coldef } is an array built in as initial state - * { loading } is bool built in as initial state - * { error } is bool built in as initial state - * { errorMessage } is string built in as initial state - * { rowSelection } is string built in as initial state and using reserved AG-Grid description - * { paginationPageSize } is number built in as initial state - * { paginationNumberFormatter } is function using AG-Grid API to apply necessary UI updates + * @const {array} users + * @const {array} coldef + * @const {bool} loading + * @const {bool} error + * @const {string} errorMessage + * @const {string} rowSelection + * @const {number} paginationPageSize + * @const {func} paginationNumberFormatter */ const { users, coldef, loading, error, errorMessage, rowSelection, paginationPageSize } = this.props; let content = null; diff --git a/src/components/dashboard_users/middleware.js b/src/components/dashboard_users/middleware.js index 638b58d..b32b0df 100644 --- a/src/components/dashboard_users/middleware.js +++ b/src/components/dashboard_users/middleware.js @@ -2,6 +2,9 @@ import { call, put } from 'redux-saga/effects'; import { _getUsers } from './../../utils/api'; import { deliverUsersPayload, failUsers } from './actions'; +/** + * API call saga + */ export function* getUsers() { try { @@ -15,6 +18,11 @@ export function* getUsers() { } } +/** + * Convert data array to an object containing array entries + * @param {array} data + * returns object + */ function getUsersArray(data) { return data.map((item) => { diff --git a/src/components/dashboard_users/page_size/index.js b/src/components/dashboard_users/page_size/index.js index ca9685c..dce9fdb 100644 --- a/src/components/dashboard_users/page_size/index.js +++ b/src/components/dashboard_users/page_size/index.js @@ -4,9 +4,10 @@ import * as PropTypes from 'prop-types'; const PageSize = (props) => { /** - * { onPageSizeChanged } is function coming from the parent component - * { paginationPageSize } is number coming from the store + * @const {function} onPageSizeChanged + * @const {number} paginationPageSize */ + const { onPageSizeChanged, paginationPageSize } = props; return ( diff --git a/src/components/dashboard_users/reducer.js b/src/components/dashboard_users/reducer.js index a6a48e3..68b4bf2 100644 --- a/src/components/dashboard_users/reducer.js +++ b/src/components/dashboard_users/reducer.js @@ -2,6 +2,9 @@ import { GET_USERS, DELIVER_USERS, FAIL_USERS, PAGE_SIZE_UPDATE } from './action import { updateObject } from '../../hoc/update-object/update-object'; import userAvatar from '../../utils/services/avatar_insertion'; +/** + * AG-Grid initial column definitions, row empty data, loading and error flags + */ const initialState = { usersData: [], coldef: [ diff --git a/src/routing/index.js b/src/routing/index.js index 92ca5bc..4cd9ed8 100644 --- a/src/routing/index.js +++ b/src/routing/index.js @@ -10,8 +10,8 @@ const AsyncIntro = asyncComponent(() => import ('./../components/intro')); const AsyncDashboard = asyncComponent(() => import ('./../components/dashboard_users')); /** - * { routesArray } is an array of objects - * each object holds: + * @const {array} routesArray + * each object entry holds: * if it's an exact view or not (optional) * path to view (mandatory) * mainComponent relative to the view (mandatory) diff --git a/yarn.lock b/yarn.lock index 3229ed0..425ad41 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,18 +2,24 @@ # yarn lockfile v1 -"@babel/runtime@7.0.0", "@babel/runtime@^7.0.0": +"@babel/runtime@7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.0.0.tgz#adeb78fedfc855aa05bc041640f3f6f98e85424c" dependencies: regenerator-runtime "^0.12.0" +"@babel/runtime@^7.0.0": + version "7.1.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.1.2.tgz#81c89935f4647706fc54541145e6b4ecfef4b8e3" + dependencies: + regenerator-runtime "^0.12.0" + "@material-ui/core@^3.1.1": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@material-ui/core/-/core-3.1.1.tgz#377b406fd26b88df6626c1697eef3f488fddb553" + version "3.1.2" + resolved "https://registry.yarnpkg.com/@material-ui/core/-/core-3.1.2.tgz#0ba7c510320c41be672792e3f3ab73ab79ff100f" dependencies: "@babel/runtime" "7.0.0" - "@types/jss" "^9.5.3" + "@types/jss" "^9.5.6" "@types/react-transition-group" "^2.0.8" brcast "^3.0.1" classnames "^2.2.5" @@ -47,13 +53,17 @@ "@babel/runtime" "7.0.0" recompose "^0.29.0" -"@types/jss@^9.5.3": +"@types/jss@^9.5.6": version "9.5.6" resolved "https://registry.yarnpkg.com/@types/jss/-/jss-9.5.6.tgz#96e1d246ddfbccc4867494077c714773cf29acde" dependencies: csstype "^2.0.0" indefinite-observable "^1.0.1" +"@types/node@*": + version "10.11.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.11.3.tgz#c055536ac8a5e871701aa01914be5731539d01ee" + "@types/prop-types@*": version "15.5.6" resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.5.6.tgz#9c03d3fed70a8d517c191b7734da2879b50ca26c" @@ -319,6 +329,14 @@ array-unique@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" +array.prototype.flat@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.1.tgz#812db8f02cad24d3fab65dd67eabe3b8903494a4" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.10.0" + function-bind "^1.1.1" + arrify@^1.0.0, arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" @@ -365,7 +383,7 @@ async-each@^1.0.0: async@^1.5.2: version "1.5.2" - resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + resolved "http://registry.npmjs.org/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" async@^2.1.2, async@^2.1.4, async@^2.4.1, async@^2.5.0: version "2.6.1" @@ -1392,12 +1410,12 @@ caniuse-api@^1.5.2: lodash.uniq "^4.5.0" caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: - version "1.0.30000888" - resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000888.tgz#38081675206f8856b648c1cd793a28a2c5762448" + version "1.0.30000889" + resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000889.tgz#f6177927a0c56bbd56ff70f11e4bb28be3889052" caniuse-lite@^1.0.30000748, caniuse-lite@^1.0.30000792: - version "1.0.30000888" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000888.tgz#22edb50d91dd70612b5898e3b36f460600c6492f" + version "1.0.30000889" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000889.tgz#53e266c83e725ad3bd2e4a3ea76d5031a8aa4c3e" capture-stack-trace@^1.0.0: version "1.0.1" @@ -1444,6 +1462,17 @@ chardet@^0.4.0: version "0.4.2" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" +cheerio@^1.0.0-rc.2: + version "1.0.0-rc.2" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.2.tgz#4b9f53a81b27e4d5dac31c0ffd0cfa03cc6830db" + dependencies: + css-select "~1.2.0" + dom-serializer "~0.1.0" + entities "~1.1.1" + htmlparser2 "^3.9.1" + lodash "^4.15.0" + parse5 "^3.0.1" + chokidar@^2.0.0, chokidar@^2.0.2: version "2.0.4" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.4.tgz#356ff4e2b0e8e43e322d18a372460bbcf3accd26" @@ -1598,6 +1627,10 @@ colormin@^1.0.5: css-color-names "0.0.4" has "^1.0.1" +colors@0.5.x: + version "0.5.1" + resolved "https://registry.yarnpkg.com/colors/-/colors-0.5.1.tgz#7d0023eaeb154e8ee9fce75dcb923d0ed1667774" + colors@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" @@ -1833,7 +1866,7 @@ css-loader@0.28.7: postcss-value-parser "^3.3.0" source-list-map "^2.0.0" -css-select@^1.1.0: +css-select@^1.1.0, css-select@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" dependencies: @@ -2112,6 +2145,10 @@ diffie-hellman@^5.0.0: miller-rabin "^4.0.0" randombytes "^2.0.0" +discontinuous-range@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/discontinuous-range/-/discontinuous-range-1.0.0.tgz#e38331f0844bba49b9a9cb71c771585aab1bc65a" + dns-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" @@ -2142,17 +2179,17 @@ doctrine@^2.0.0: dependencies: esutils "^2.0.2" -dom-converter@~0.1: - version "0.1.4" - resolved "http://registry.npmjs.org/dom-converter/-/dom-converter-0.1.4.tgz#a45ef5727b890c9bffe6d7c876e7b19cb0e17f3b" +dom-converter@~0.2: + version "0.2.0" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" dependencies: - utila "~0.3" + utila "~0.4" dom-helpers@^3.2.1, dom-helpers@^3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.3.1.tgz#fc1a4e15ffdf60ddde03a480a9c0fece821dd4a6" -dom-serializer@0: +dom-serializer@0, dom-serializer@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" dependencies: @@ -2169,7 +2206,7 @@ domain-browser@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" -domelementtype@1: +domelementtype@1, domelementtype@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" @@ -2183,6 +2220,12 @@ domhandler@2.1: dependencies: domelementtype "1" +domhandler@^2.3.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" + dependencies: + domelementtype "1" + domutils@1.1: version "1.1.6" resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.1.6.tgz#bddc3de099b9a2efacc51c623f28f416ecc57485" @@ -2196,6 +2239,13 @@ domutils@1.5.1: dom-serializer "0" domelementtype "1" +domutils@^1.5.1: + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + dependencies: + dom-serializer "0" + domelementtype "1" + dot-prop@^4.1.0: version "4.2.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" @@ -2230,8 +2280,8 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.30: - version "1.3.72" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.72.tgz#b69683081d5b7eee6e1ea07b2f5fa30b3c72252d" + version "1.3.73" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.73.tgz#aa67787067d58cc3920089368b3b8d6fe0fc12f6" elliptic@^6.0.0: version "6.4.1" @@ -2272,10 +2322,54 @@ enhanced-resolve@^3.4.0: object-assign "^4.0.1" tapable "^0.2.7" -entities@~1.1.1: +entities@^1.1.1, entities@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" +enzyme-adapter-react-16@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.5.0.tgz#50af8d76a45fe0915de932bd95d34cdca75c0be3" + dependencies: + enzyme-adapter-utils "^1.8.0" + function.prototype.name "^1.1.0" + object.assign "^4.1.0" + object.values "^1.0.4" + prop-types "^15.6.2" + react-is "^16.4.2" + react-test-renderer "^16.0.0-0" + +enzyme-adapter-utils@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.8.0.tgz#ee9f07250663a985f1f2caaf297720787da559f1" + dependencies: + function.prototype.name "^1.1.0" + object.assign "^4.1.0" + prop-types "^15.6.2" + +enzyme@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.6.0.tgz#d213f280a258f61e901bc663d4cc2d6fd9a9dec8" + dependencies: + array.prototype.flat "^1.2.1" + cheerio "^1.0.0-rc.2" + function.prototype.name "^1.1.0" + has "^1.0.3" + is-boolean-object "^1.0.0" + is-callable "^1.1.4" + is-number-object "^1.0.3" + is-string "^1.0.4" + is-subset "^0.1.1" + lodash.escape "^4.0.1" + lodash.isequal "^4.5.0" + object-inspect "^1.6.0" + object-is "^1.0.1" + object.assign "^4.1.0" + object.entries "^1.0.4" + object.values "^1.0.4" + raf "^3.4.0" + rst-selector-parser "^2.2.3" + string.prototype.trim "^1.1.2" + errno@^0.1.3, errno@~0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" @@ -2288,7 +2382,7 @@ error-ex@^1.2.0: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.7.0: +es-abstract@^1.10.0, es-abstract@^1.5.0, es-abstract@^1.6.1, es-abstract@^1.7.0: version "1.12.0" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165" dependencies: @@ -2966,10 +3060,18 @@ fsevents@^1.1.3, fsevents@^1.2.2: nan "^2.9.2" node-pre-gyp "^0.10.0" -function-bind@^1.1.1: +function-bind@^1.0.2, function-bind@^1.1.0, function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" +function.prototype.name@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.0.tgz#8bd763cc0af860a859cc5d49384d74b932cd2327" + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + is-callable "^1.1.3" + functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" @@ -2997,7 +3099,7 @@ get-stdin@^4.0.1: get-stream@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + resolved "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" @@ -3197,7 +3299,7 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" -has@^1.0.1: +has@^1.0.1, has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" dependencies: @@ -3306,6 +3408,17 @@ html-webpack-plugin@2.29.0: pretty-error "^2.0.2" toposort "^1.0.0" +htmlparser2@^3.9.1: + version "3.9.2" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.9.2.tgz#1bdf87acca0f3f9e53fa4fcceb0f4b4cbb00b338" + dependencies: + domelementtype "^1.3.0" + domhandler "^2.3.0" + domutils "^1.5.1" + entities "^1.1.1" + inherits "^2.0.1" + readable-stream "^2.0.2" + htmlparser2@~3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.3.0.tgz#cc70d05a59f6542e43f0e685c982e14c924a9efe" @@ -3378,13 +3491,7 @@ iconv-lite@0.4.19: version "0.4.19" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" -iconv-lite@0.4.23: - version "0.4.23" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" - dependencies: - safer-buffer ">= 2.1.2 < 3" - -iconv-lite@^0.4.17, iconv-lite@^0.4.4, iconv-lite@~0.4.13: +iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.4, iconv-lite@~0.4.13: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" dependencies: @@ -3541,6 +3648,10 @@ is-binary-path@^1.0.0: dependencies: binary-extensions "^1.0.0" +is-boolean-object@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.0.0.tgz#98f8b28030684219a95f375cfbd88ce3405dff93" + is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" @@ -3678,6 +3789,10 @@ is-npm@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" +is-number-object@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.3.tgz#f265ab89a9f445034ef6aff15a8f00b00f551799" + is-number@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" @@ -3762,6 +3877,14 @@ is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" +is-string@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.4.tgz#cc3a9b69857d621e963725a24caeec873b826e64" + +is-subset@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" + is-svg@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9" @@ -4442,6 +4565,18 @@ lodash.defaults@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" +lodash.escape@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-4.0.1.tgz#c9044690c21e04294beaa517712fded1fa88de98" + +lodash.flattendeep@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" + +lodash.isequal@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" @@ -4538,11 +4673,12 @@ math-random@^1.0.1: resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.1.tgz#8b3aac588b8a66e4975e3cdea67f7bb329601fac" md5.js@^1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d" + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" dependencies: hash-base "^3.0.0" inherits "^2.0.1" + safe-buffer "^5.1.2" media-typer@0.3.0: version "0.3.0" @@ -4711,6 +4847,10 @@ mkdirp@0.5.1, mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@ dependencies: minimist "0.0.8" +moo@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/moo/-/moo-0.4.3.tgz#3f847a26f31cf625a956a87f2b10fbc013bfd10e" + ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" @@ -4735,8 +4875,8 @@ mute-stream@0.0.7: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" nan@^2.9.2: - version "2.11.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.11.0.tgz#574e360e4d954ab16966ec102c0c049fd961a099" + version "2.11.1" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.11.1.tgz#90e22bccb8ca57ea4cd37cc83d3819b52eea6766" nanomatch@^1.2.9: version "1.2.13" @@ -4758,6 +4898,16 @@ natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" +nearley@^2.7.10: + version "2.15.1" + resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.15.1.tgz#965e4e6ec9ed6b80fc81453e161efbcebb36d247" + dependencies: + moo "^0.4.3" + nomnom "~1.6.2" + railroad-diagrams "^1.0.0" + randexp "0.4.6" + semver "^5.4.1" + needle@^2.2.1: version "2.2.4" resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.4.tgz#51931bff82533b1928b7d1d69e01f1b00ffd2a4e" @@ -4851,6 +5001,13 @@ node-pre-gyp@^0.10.0: semver "^5.3.0" tar "^4" +nomnom@~1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.6.2.tgz#84a66a260174408fc5b77a18f888eccc44fb6971" + dependencies: + colors "0.5.x" + underscore "~1.4.4" + nopt@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" @@ -4954,7 +5111,15 @@ object-hash@^1.1.4: version "1.3.0" resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.3.0.tgz#76d9ba6ff113cf8efc0d996102851fe6723963e2" -object-keys@^1.0.12: +object-inspect@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b" + +object-is@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6" + +object-keys@^1.0.11, object-keys@^1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2" @@ -4964,6 +5129,24 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" +object.assign@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + +object.entries@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.0.4.tgz#1bf9a4dd2288f5b33f3a993d257661f05d161a5f" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.6.1" + function-bind "^1.1.0" + has "^1.0.1" + object.omit@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" @@ -4977,6 +5160,15 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" +object.values@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.0.4.tgz#e524da09b4f66ff05df457546ec72ac99f13069a" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.6.1" + function-bind "^1.1.0" + has "^1.0.1" + obuf@^1.0.0, obuf@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" @@ -5148,6 +5340,12 @@ parse5@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/parse5/-/parse5-1.5.1.tgz#9b7f3b0de32be78dc2401b17573ccaf0f6f59d94" +parse5@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c" + dependencies: + "@types/node" "*" + parseurl@~1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" @@ -5654,14 +5852,15 @@ psl@^1.1.24: resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.29.tgz#60f580d360170bb722a797cc704411e6da850c67" public-encrypt@^4.0.0: - version "4.0.2" - resolved "http://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.2.tgz#46eb9107206bf73489f8b85b69d91334c6610994" + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" dependencies: bn.js "^4.1.0" browserify-rsa "^4.0.0" create-hash "^1.1.0" parse-asn1 "^5.0.0" randombytes "^2.0.1" + safe-buffer "^5.1.2" punycode@1.3.2: version "1.3.2" @@ -5706,12 +5905,23 @@ querystringify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.0.0.tgz#fa3ed6e68eb15159457c89b37bc6472833195755" -raf@3.4.0: +raf@3.4.0, raf@^3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.0.tgz#a28876881b4bc2ca9117d4138163ddb80f781575" dependencies: performance-now "^2.1.0" +railroad-diagrams@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz#eb7e6267548ddedfb899c1b90e57374559cddb7e" + +randexp@0.4.6: + version "0.4.6" + resolved "https://registry.yarnpkg.com/randexp/-/randexp-0.4.6.tgz#e986ad5e5e31dae13ddd6f7b3019aa7c87f60ca3" + dependencies: + discontinuous-range "1.0.0" + ret "~0.1.10" + randomatic@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.0.tgz#36f2ca708e9e567f5ed2ec01949026d50aa10116" @@ -5799,6 +6009,10 @@ react-event-listener@^0.6.2: prop-types "^15.6.0" warning "^4.0.1" +react-is@^16.4.2, react-is@^16.5.2: + version "16.5.2" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.5.2.tgz#e2a7b7c3f5d48062eb769fcb123505eb928722e3" + react-jss@^8.1.0: version "8.6.1" resolved "https://registry.yarnpkg.com/react-jss/-/react-jss-8.6.1.tgz#a06e2e1d2c4d91b4d11befda865e6c07fbd75252" @@ -5892,6 +6106,15 @@ react-scripts@1.1.5: optionalDependencies: fsevents "^1.1.3" +react-test-renderer@^16.0.0-0, react-test-renderer@^16.5.2: + version "16.5.2" + resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.5.2.tgz#92e9d2c6f763b9821b2e0b22f994ee675068b5ae" + dependencies: + object-assign "^4.1.1" + prop-types "^15.6.2" + react-is "^16.5.2" + schedule "^0.5.0" + react-transition-group@^2.2.1: version "2.5.0" resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-2.5.0.tgz#70bca0e3546102c4dc5cf3f5f57f73447cce6874" @@ -6110,14 +6333,14 @@ remove-trailing-separator@^1.0.1: resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" renderkid@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.1.tgz#898cabfc8bede4b7b91135a3ffd323e58c0db319" + version "2.0.2" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.2.tgz#12d310f255360c07ad8fde253f6c9e9de372d2aa" dependencies: css-select "^1.1.0" - dom-converter "~0.1" + dom-converter "~0.2" htmlparser2 "~3.3.0" strip-ansi "^3.0.0" - utila "~0.3" + utila "^0.4.0" repeat-element@^1.1.2: version "1.1.3" @@ -6256,6 +6479,13 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" +rst-selector-parser@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz#81b230ea2fcc6066c89e3472de794285d9b03d91" + dependencies: + lodash.flattendeep "^4.4.0" + nearley "^2.7.10" + run-async@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" @@ -6550,8 +6780,8 @@ spdx-correct@^3.0.0: spdx-license-ids "^3.0.0" spdx-exceptions@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9" + version "2.2.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" spdx-expression-parse@^3.0.0: version "3.0.0" @@ -6669,6 +6899,14 @@ string-width@^1.0.1, string-width@^1.0.2: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" +string.prototype.trim@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz#d04de2c89e137f4d7d206f086b5ed2fae6be8cea" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.5.0" + function-bind "^1.0.2" + string_decoder@^1.0.0, string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" @@ -6681,7 +6919,7 @@ string_decoder@~0.10.x: strip-ansi@3.0.1, strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + resolved "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" dependencies: ansi-regex "^2.0.0" @@ -7006,6 +7244,10 @@ uglifyjs-webpack-plugin@^0.4.6: uglify-js "^2.8.29" webpack-sources "^1.0.1" +underscore@~1.4.4: + version "1.4.4" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.4.4.tgz#61a6a32010622afa07963bf325203cf12239d604" + union-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" @@ -7133,11 +7375,7 @@ util@^0.10.3: dependencies: inherits "2.0.3" -utila@~0.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/utila/-/utila-0.3.3.tgz#d7e8e7d7e309107092b05f8d9688824d633a4226" - -utila@~0.4: +utila@^0.4.0, utila@~0.4: version "0.4.0" resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" @@ -7321,10 +7559,10 @@ websocket-extensions@>=0.1.1: resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" whatwg-encoding@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.4.tgz#63fb016b7435b795d9025632c086a5209dbd2621" + version "1.0.5" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" dependencies: - iconv-lite "0.4.23" + iconv-lite "0.4.24" whatwg-fetch@2.0.3: version "2.0.3" -- GitLab From 185a15807418e7b5bd02afa61e7c8b5cd48a1c6f Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Wed, 3 Oct 2018 12:37:14 +0300 Subject: [PATCH 037/249] Add a copule unit test for user reducer --- .../dashboard_users/reducer.test.js | 42 ++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/src/components/dashboard_users/reducer.test.js b/src/components/dashboard_users/reducer.test.js index a8a000a..17cf9d5 100644 --- a/src/components/dashboard_users/reducer.test.js +++ b/src/components/dashboard_users/reducer.test.js @@ -1,6 +1,8 @@ import reducer from './reducer'; import userAvatar from '../../utils/services/avatar_insertion'; +import * as actionTypes from "./actions"; + describe('users reducer', () => { it("Should return the Initial State", () => { @@ -23,8 +25,46 @@ describe('users reducer', () => { loading: false, error: false, rowSelection: "multiple", - paginationPageSize: 30 + paginationPageSize: 30, + errorMessage: null }); }) + + it('Should store the userData', () => { + + expect(reducer( + { + usersData: [], + loading: false + }, + { + type: actionTypes.DELIVER_USERS, + users: ['This is mock data'], + } + )).toEqual({ + usersData: ['This is mock data'], + loading: false, + }); + }); + + it('Should store the userData', () => { + + expect(reducer( + { + loading: false, + error: false, + errorMessage: null + }, + { + type: actionTypes.FAIL_USERS, + error: 'Some error message', + } + )).toEqual({ + loading: false, + error: true, + errorMessage: 'Some error message' + }); + }); + }); \ No newline at end of file -- GitLab From e414d7e73ae3d34e3e13a7f6d6924af938fc4093 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Wed, 3 Oct 2018 12:41:56 +0300 Subject: [PATCH 038/249] dashboard error message update --- src/components/dashboard_users/index.js | 2 ++ src/components/dashboard_users/reducer.js | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 5d61e9c..8bf2e45 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -171,6 +171,7 @@ DashboardUsers.propTypes = { coldef: PropTypes.array.isRequired, loading: PropTypes.bool.isRequired, error: PropTypes.bool.isRequired, + errorMessage: PropTypes.string, paginationPageSize: PropTypes.number.isRequired, }; @@ -181,6 +182,7 @@ const mapStateToProps = (state) => { coldef: state.users.coldef, loading: state.users.loading, error: state.users.error, + errorMessage: state.users.errorMessage, rowSelection: state.users.rowSelection, paginationPageSize: state.users.paginationPageSize, } diff --git a/src/components/dashboard_users/reducer.js b/src/components/dashboard_users/reducer.js index 68b4bf2..024e064 100644 --- a/src/components/dashboard_users/reducer.js +++ b/src/components/dashboard_users/reducer.js @@ -24,7 +24,8 @@ const initialState = { loading: false, error: false, rowSelection: "multiple", - paginationPageSize: 30 + paginationPageSize: 30, + errorMessage: null }; const getUsers = (state, action) => { -- GitLab From d9d6b2ad8aa5d38056e85211d4b1046a737d79a5 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Wed, 3 Oct 2018 17:29:34 +0300 Subject: [PATCH 039/249] NY-4088 sidebar prototype --- src/App.js | 64 +++++++++-------- src/components/dashboard_users/css/index.css | 2 +- src/components/dashboard_users/middleware.js | 21 +----- src/components/dashboard_users/reducer.js | 7 +- src/components/header_bar/actions.js | 15 ++++ src/components/header_bar/index.js | 75 ++++++++++++++++++++ src/components/header_bar/middleware.js | 14 ++++ src/components/header_bar/reducer.js | 24 +++++++ src/components/sidebar/sidebar.css | 2 +- src/index.css | 16 +++-- src/store/root_middleware/index.js | 6 +- src/store/root_reducers/index.js | 4 +- src/utils/api/_DATA.js | 17 +++++ src/utils/api/index.js | 12 +++- 14 files changed, 212 insertions(+), 67 deletions(-) create mode 100644 src/components/header_bar/actions.js create mode 100644 src/components/header_bar/index.js create mode 100644 src/components/header_bar/middleware.js create mode 100644 src/components/header_bar/reducer.js diff --git a/src/App.js b/src/App.js index 5aa0d3b..42f25ca 100644 --- a/src/App.js +++ b/src/App.js @@ -1,6 +1,7 @@ -import React, { Component } from 'react'; +import React, { Component, Fragment } from 'react'; import { BrowserRouter as Router, Route, Switch } from 'react-router-dom'; import { connect } from 'react-redux'; +import PropTypes from "prop-types"; import { withStyles } from "@material-ui/core/styles"; import Grid from '@material-ui/core/Grid'; @@ -10,7 +11,7 @@ import MenuIcon from "@material-ui/icons/Menu"; import { routesArray } from './routing'; import PageNotFound from './components/page_not_found'; import Sidebar from './components/sidebar'; -import PropTypes from "prop-types"; +import HeaderBar from './components/header_bar'; /** * @const {object} styles coming from Material UI will go here @@ -48,35 +49,38 @@ class App extends Component { return ( - - - -
- - - -
- - { - leftSideNav - ? - - - - : null - } - - - - { - routesArray.map((item, index) => ) - } - } /> - - + + +
+ + + +
+ + + + + { + leftSideNav + ? + + + + : null + } + + + + { + routesArray.map((item, index) => ) + } + } /> + + - - +
+
+ ) diff --git a/src/components/dashboard_users/css/index.css b/src/components/dashboard_users/css/index.css index 0bc5b71..8a32780 100644 --- a/src/components/dashboard_users/css/index.css +++ b/src/components/dashboard_users/css/index.css @@ -7,7 +7,7 @@ } .ag-grid-wrapper { width: calc(100% - 20px); - height: 100vh; + height: calc(100vh - 50px); padding-top: 40px; } diff --git a/src/components/dashboard_users/middleware.js b/src/components/dashboard_users/middleware.js index b32b0df..ebeec71 100644 --- a/src/components/dashboard_users/middleware.js +++ b/src/components/dashboard_users/middleware.js @@ -9,28 +9,9 @@ export function* getUsers() { try { const payloadArray = yield call(_getUsers); - const payload = yield call(getUsersArray, payloadArray); - - yield put(deliverUsersPayload(payload)); + yield put(deliverUsersPayload(payloadArray)); } catch(error) { yield put(failUsers(error)); } -} - -/** - * Convert data array to an object containing array entries - * @param {array} data - * returns object - */ -function getUsersArray(data) { - return data.map((item) => { - - let newObj = { - ...item - }; - - return newObj - - }) } \ No newline at end of file diff --git a/src/components/dashboard_users/reducer.js b/src/components/dashboard_users/reducer.js index 024e064..fdc4b7d 100644 --- a/src/components/dashboard_users/reducer.js +++ b/src/components/dashboard_users/reducer.js @@ -38,14 +38,9 @@ const getUsers = (state, action) => { const deliverUsers = (state, action) => { const { users } = action; - let usersData = []; - - for (let key in users) { - usersData.push(users[key]); - } return updateObject(state, { - usersData, + usersData: users, loading: false }) }; diff --git a/src/components/header_bar/actions.js b/src/components/header_bar/actions.js new file mode 100644 index 0000000..d32f789 --- /dev/null +++ b/src/components/header_bar/actions.js @@ -0,0 +1,15 @@ +export const GET_AUTH_USER = "GET_AUTH_USER"; +export const DELIVER_AUTH_USER = "DELIVER_AUTH_USER"; + +export function getAuthedUser(){ + return { + type: GET_AUTH_USER + } +} + +export function deliverAuthedUser(authedUser){ + return { + type: DELIVER_AUTH_USER, + authedUser + } +} \ No newline at end of file diff --git a/src/components/header_bar/index.js b/src/components/header_bar/index.js new file mode 100644 index 0000000..21c000f --- /dev/null +++ b/src/components/header_bar/index.js @@ -0,0 +1,75 @@ +import React, { Component } from 'react'; +import { connect } from 'react-redux'; +import { bindActionCreators } from 'redux'; +import PropTypes from 'prop-types'; + +import { withStyles } from '@material-ui/core/styles'; +import AppBar from '@material-ui/core/AppBar'; +import Typography from '@material-ui/core/Typography'; +import AccountCircle from '@material-ui/icons/AccountCircle'; + +import * as actions from './actions' + +/** + * @const {object} styles + */ +const styles = { + positionFixed: { + padding: "12px 0 12px 50px", + color: '#000', + background: '#fff', + flexDirection: 'row', + width: 'auto', + justifyContent: 'flex-end' + } +}; +class HeaderBar extends Component { + + componentDidMount() { + this.props.getAuthedUser(); + } + + render() { + + /** + * @const {object} classes + * @const {string} adaptiveWidth + * @const {string} firstName + * @const {string} lastName + */ + const { classes, adaptiveWidth, firstName, lastName } = this.props; + + return ( + + + {firstName} {lastName} + + + + ) + } +} + +HeaderBar.propTypes = { + classes: PropTypes.object.isRequired, + adaptiveWidth: PropTypes.string.isRequired, + firstName: PropTypes.string.isRequired, + lastName: PropTypes.string.isRequired +}; + +const mapStateToProps = (state) => { + + return { + firstName: state.authedUser.firstName, + lastName: state.authedUser.lastName + } +} + +const mapDispatchToProps = (dispatch) => { + + return bindActionCreators({ + ...actions + }, dispatch) +} + +export default withStyles(styles)(connect(mapStateToProps, mapDispatchToProps)(HeaderBar));; \ No newline at end of file diff --git a/src/components/header_bar/middleware.js b/src/components/header_bar/middleware.js new file mode 100644 index 0000000..0790f2a --- /dev/null +++ b/src/components/header_bar/middleware.js @@ -0,0 +1,14 @@ +import { call, put } from 'redux-saga/effects'; +import { _getAuthUser } from './../../utils/api'; +import { deliverAuthedUser } from './actions'; + +export function* getAuthedUser() { + try { + const payloadArray = yield call(_getAuthUser); + yield put(deliverAuthedUser(payloadArray)) + } + catch (error) { + // TODO: build uinified error handler + console.log(error) + } +} \ No newline at end of file diff --git a/src/components/header_bar/reducer.js b/src/components/header_bar/reducer.js new file mode 100644 index 0000000..aaa4b43 --- /dev/null +++ b/src/components/header_bar/reducer.js @@ -0,0 +1,24 @@ +import { DELIVER_AUTH_USER } from './actions'; +import { updateObject } from '../../hoc/update-object/update-object'; + +const initialState = { + firstName: '', + lastName: '' +} + +const deliverAuthUser = (state, action) => { + const { authedUser } = action; + + return updateObject(state, { + firstName: authedUser[0].firstName, + lastName: authedUser[0].lastName + }) +} + +export default function authedUser(state = initialState, action) { + switch(action.type) { + case DELIVER_AUTH_USER: return deliverAuthUser(state, action) + + default: return state + } +} \ No newline at end of file diff --git a/src/components/sidebar/sidebar.css b/src/components/sidebar/sidebar.css index eb86bdd..95d5a04 100644 --- a/src/components/sidebar/sidebar.css +++ b/src/components/sidebar/sidebar.css @@ -1,3 +1,3 @@ .sidebar-menu { - margin-top: 40px; + margin-top: -50px; } \ No newline at end of file diff --git a/src/index.css b/src/index.css index 19e3583..d534186 100644 --- a/src/index.css +++ b/src/index.css @@ -20,6 +20,10 @@ body, height: 100%; } +#root { + padding-top: 50px; +} + a { -webkit-tap-highlight-color: transparent; -webkit-focus-ring-color: transparent; @@ -36,9 +40,13 @@ a:hover { } .toggle-menu-btn { - position: fixed; - top: 0; - left: 9px; + position: fixed; + top: 0; + left: 9px; + + z-index: 1200; +} - z-index: 1000; +.active.toggle-menu-btn { + left: 16.6667%; } \ No newline at end of file diff --git a/src/store/root_middleware/index.js b/src/store/root_middleware/index.js index aca5933..24a2089 100644 --- a/src/store/root_middleware/index.js +++ b/src/store/root_middleware/index.js @@ -7,6 +7,9 @@ import logger from './logger'; import { GET_USERS } from './../../components/dashboard_users/actions'; import { getUsers } from './../../components/dashboard_users/middleware'; +import { GET_AUTH_USER } from './../../components/header_bar/actions'; +import { getAuthedUser } from './../../components/header_bar/middleware'; + const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose; export const sagaMiddleware = createSagaMiddleware(); @@ -17,7 +20,8 @@ export function* combineSagas() { yield all ( [ logger(), - takeEvery(GET_USERS, getUsers) + takeEvery(GET_USERS, getUsers), + takeEvery(GET_AUTH_USER, getAuthedUser) ] ) } \ No newline at end of file diff --git a/src/store/root_reducers/index.js b/src/store/root_reducers/index.js index 0b4cf88..591277b 100644 --- a/src/store/root_reducers/index.js +++ b/src/store/root_reducers/index.js @@ -1,9 +1,11 @@ import { combineReducers } from 'redux'; import users from './../../components/dashboard_users/reducer'; +import authedUser from './../../components/header_bar/reducer' export default combineReducers( { - users + users, + authedUser } ) \ No newline at end of file diff --git a/src/utils/api/_DATA.js b/src/utils/api/_DATA.js index e0beecf..9c2c327 100644 --- a/src/utils/api/_DATA.js +++ b/src/utils/api/_DATA.js @@ -1,3 +1,20 @@ +export const authUser = [ + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + } +] + export const users = [ { accountId: '159654753', diff --git a/src/utils/api/index.js b/src/utils/api/index.js index 5b334ad..3a4f0c1 100644 --- a/src/utils/api/index.js +++ b/src/utils/api/index.js @@ -1,7 +1,13 @@ -import { users } from './_DATA' +import { authUser, users } from './_DATA' -export function _getUsers () { +export function _getUsers() { return new Promise((res, rej) => { setTimeout(() => res(users), 1000) }) -} \ No newline at end of file +} + +export function _getAuthUser() { + return new Promise((res, rej) => { + setTimeout(() => res(authUser), 100) + }) +} \ No newline at end of file -- GitLab From 3bd26bf5886ac3e26829f634ef56ce22268469e4 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Wed, 3 Oct 2018 17:43:41 +0300 Subject: [PATCH 040/249] unit test for dashboard --- package.json | 7 ++- .../dashboard_users/actions.test.js | 47 +++++++++++++++ src/components/dashboard_users/index.test.js | 57 +++++++++++++++++++ .../dashboard_users/reducer.test.js | 34 ++++++++++- 4 files changed, 141 insertions(+), 4 deletions(-) create mode 100644 src/components/dashboard_users/actions.test.js create mode 100644 src/components/dashboard_users/index.test.js diff --git a/package.json b/package.json index 08468c3..6745f15 100644 --- a/package.json +++ b/package.json @@ -17,12 +17,15 @@ "react-scripts": "1.1.5", "react-test-renderer": "^16.5.2", "redux": "^4.0.0", - "redux-saga": "^0.16.0" + "redux-mock-store": "^1.5.3", + "redux-saga": "^0.16.0", + "redux-saga-test-plan": "^3.7.0" }, "scripts": { "start": "react-scripts start", "build": "react-scripts build", - "test": "react-scripts test --coverage --env=jsdom", + "test": "react-scripts test --env=jsdom", + "test-cover": "react-scripts test --coverage --env=jsdom", "eject": "react-scripts eject" } } diff --git a/src/components/dashboard_users/actions.test.js b/src/components/dashboard_users/actions.test.js new file mode 100644 index 0000000..801e44a --- /dev/null +++ b/src/components/dashboard_users/actions.test.js @@ -0,0 +1,47 @@ +import * as actions from './actions'; + +describe("actions", () => { + + it("should create an action to GET users", () => { + + const expectedAction = { + type: actions.GET_USERS + }; + + expect(actions.getUsers()).toEqual(expectedAction); + }); + + it("should create an action to FAIL users", () => { + + const error = "Error Message"; + const expectedAction = { + type: actions.FAIL_USERS, + error + }; + + expect(actions.failUsers(error)).toEqual(expectedAction); + }); + + it("should create an action to Page Size Update", () => { + + const pageSize = 30; + const expectedAction = { + type: actions.PAGE_SIZE_UPDATE, + pageSize + }; + + expect(actions.PageSizeUpdate(pageSize)).toEqual(expectedAction); + }); + + it("should create an action to Deliver user Payload", () => { + + const users = [{accountTest: 'test'}]; + const expectedAction = { + type: actions.DELIVER_USERS, + users + }; + + expect(actions.deliverUsersPayload(users)).toEqual(expectedAction); + }); + +}); \ No newline at end of file diff --git a/src/components/dashboard_users/index.test.js b/src/components/dashboard_users/index.test.js new file mode 100644 index 0000000..57d1033 --- /dev/null +++ b/src/components/dashboard_users/index.test.js @@ -0,0 +1,57 @@ +import React from "react"; +import configureStore from 'redux-mock-store'; +import { Provider } from 'react-redux'; + +import { configure, shallow, mount } from "enzyme"; +import Adapter from "enzyme-adapter-react-16"; + +import DashboardUsers from './index'; +import { AgGridReact } from "ag-grid-react"; +import userAvatar from "../../utils/services/avatar_insertion"; + +configure({ adapter: new Adapter() }); + +let initialState = { + users: { + usersData: [ {accountId: "159654753"} ], + coldef: [ + { headerName: "avatar", field: "avatar", filter: 'agTextColumnFilter', cellRenderer: "agGroupCellRenderer", cellRendererParams: { innerRenderer: userAvatar }, headerCheckboxSelection: true, headerCheckboxSelectionFilteredOnly: true, checkboxSelection: true }, + { headerName: "accountId", field: "accountId", filter: 'agTextColumnFilter' }, + { headerName: "profileId", field: "profileId", filter: 'agTextColumnFilter' }, + { headerName: "authenticationIdentifier", field: "authenticationIdentifier", filter: 'agTextColumnFilter' }, + { headerName: "authenticationType", field: "authenticationType", filter: 'agTextColumnFilter' }, + { headerName: "accountMark", field: "accountMark", filter: 'agTextColumnFilter' }, + { headerName: "accountName", field: "accountName", filter: 'agTextColumnFilter' }, + { headerName: "firstName", field: "firstName", filter: 'agTextColumnFilter' }, + { headerName: "lastName", field: "lastName", filter: 'agTextColumnFilter' }, + { headerName: "accountStatus", field: "accountStatus", filter: 'agTextColumnFilter' }, + { headerName: "qrCode", field: "qrCode", filter: 'agTextColumnFilter' }, + { headerName: "communicationProviders", field: "communicationProviders", filter: 'agTextColumnFilter' }, + ], + loading: false, + error: false, + rowSelection: "multiple", + paginationPageSize: 30, + errorMessage: null + } +}; + +describe("", () => { + + let wrapper, store; + let mockStore = configureStore(); + + beforeEach(() => { + + store = mockStore(initialState); + wrapper = mount( + + + ); + }); + + it("shoud render DashboardUsers when receiving DATA", () => { + expect(wrapper.find(AgGridReact)); + }); + +}); \ No newline at end of file diff --git a/src/components/dashboard_users/reducer.test.js b/src/components/dashboard_users/reducer.test.js index 17cf9d5..105f32c 100644 --- a/src/components/dashboard_users/reducer.test.js +++ b/src/components/dashboard_users/reducer.test.js @@ -4,6 +4,7 @@ import userAvatar from '../../utils/services/avatar_insertion'; import * as actionTypes from "./actions"; describe('users reducer', () => { + it("Should return the Initial State", () => { expect(reducer(undefined, {})).toEqual({ @@ -29,7 +30,7 @@ describe('users reducer', () => { errorMessage: null }); - }) + }); it('Should store the userData', () => { @@ -48,7 +49,21 @@ describe('users reducer', () => { }); }); - it('Should store the userData', () => { + it('Should init loading', () => { + + expect(reducer( + { + loading: false, + }, + { + type: actionTypes.GET_USERS + } + )).toEqual({ + loading: true + }); + }); + + it('Should store the error', () => { expect(reducer( { @@ -67,4 +82,19 @@ describe('users reducer', () => { }); }); + it('Should store pagination page size', () => { + + expect(reducer( + { + paginationPageSize: 30, + }, + { + type: actionTypes.PAGE_SIZE_UPDATE, + pageSize: 30, + } + )).toEqual({ + paginationPageSize: 30, + }); + }); + }); \ No newline at end of file -- GitLab From e7143d0297c03d63843352ab6c98e7c238d85a52 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Wed, 3 Oct 2018 18:06:59 +0300 Subject: [PATCH 041/249] NY-4088 minor header bar style update --- src/components/dashboard_users/css/index.css | 2 - yarn.lock | 63 ++++++++++++++++++-- 2 files changed, 58 insertions(+), 7 deletions(-) diff --git a/src/components/dashboard_users/css/index.css b/src/components/dashboard_users/css/index.css index 8a32780..cb3a272 100644 --- a/src/components/dashboard_users/css/index.css +++ b/src/components/dashboard_users/css/index.css @@ -8,8 +8,6 @@ .ag-grid-wrapper { width: calc(100% - 20px); height: calc(100vh - 50px); - - padding-top: 40px; } .table-grouping { diff --git a/yarn.lock b/yarn.lock index 425ad41..634cda4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -303,11 +303,11 @@ array-includes@^3.0.3: define-properties "^1.1.2" es-abstract "^1.7.0" -array-map@~0.0.0: +array-map@0.0.0, array-map@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662" -array-reduce@~0.0.0: +array-reduce@0.0.0, array-reduce@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" @@ -1761,7 +1761,7 @@ core-js@^1.0.0: version "1.2.7" resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" -core-js@^2.4.0, core-js@^2.5.0: +core-js@^2.4.0, core-js@^2.4.1, core-js@^2.5.0: version "2.5.7" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e" @@ -2024,8 +2024,8 @@ deep-is@~0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" deepmerge@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.1.1.tgz#e862b4e45ea0555072bf51e7fd0d9845170ae768" + version "2.2.0" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.2.0.tgz#17087b22e1dccf14310ec892e696269e85374b45" default-require-extensions@^1.0.0: version "1.0.0" @@ -2999,6 +2999,10 @@ for-own@^0.1.4: dependencies: for-in "^1.0.1" +foreach@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.4.tgz#cc5d0d8ae1d46cc9a555c2682f910977859935df" + forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" @@ -3060,6 +3064,10 @@ fsevents@^1.1.3, fsevents@^1.2.2: nan "^2.9.2" node-pre-gyp "^0.10.0" +fsm-iterator@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fsm-iterator/-/fsm-iterator-1.1.0.tgz#337de45de19eb205788cf02e3a955ec206760dec" + function-bind@^1.0.2, function-bind@^1.1.0, function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" @@ -4308,6 +4316,10 @@ json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" +json3@3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.0.tgz#0e9e7f6c5d270b758929af4d6fefdc84bd66e259" + json3@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" @@ -4577,6 +4589,14 @@ lodash.isequal@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" +lodash.ismatch@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" @@ -5119,6 +5139,10 @@ object-is@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6" +object-keys@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.5.0.tgz#09e211f3e00318afc4f592e36e7cdc10d9ad7293" + object-keys@^1.0.11, object-keys@^1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2" @@ -6241,6 +6265,23 @@ reduce-function-call@^1.0.1: dependencies: balanced-match "^0.4.2" +redux-mock-store@^1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/redux-mock-store/-/redux-mock-store-1.5.3.tgz#1f10528949b7ce8056c2532624f7cafa98576c6d" + dependencies: + lodash.isplainobject "^4.0.6" + +redux-saga-test-plan@^3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/redux-saga-test-plan/-/redux-saga-test-plan-3.7.0.tgz#c8f513b1c6e13eef526a6b8a2e9076b6f26f5698" + dependencies: + core-js "^2.4.1" + fsm-iterator "^1.1.0" + lodash.isequal "^4.5.0" + lodash.ismatch "^4.4.0" + object-assign "^4.1.0" + util-inspect "^0.1.8" + redux-saga@^0.16.0: version "0.16.0" resolved "https://registry.yarnpkg.com/redux-saga/-/redux-saga-0.16.0.tgz#0a231db0a1489301dd980f6f2f88d8ced418f724" @@ -7363,6 +7404,18 @@ util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" +util-inspect@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/util-inspect/-/util-inspect-0.1.8.tgz#2b39dbcd2d921f2d8430923caff40f4b5cea5db1" + dependencies: + array-map "0.0.0" + array-reduce "0.0.0" + foreach "2.0.4" + indexof "0.0.1" + isarray "0.0.1" + json3 "3.3.0" + object-keys "0.5.0" + util@0.10.3: version "0.10.3" resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" -- GitLab From 9b7eab7eb58f9d6f0453074e060a768b4d4548b6 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Thu, 4 Oct 2018 17:49:56 +0300 Subject: [PATCH 042/249] NY-4131 initial edit user logic setup --- src/components/dashboard_users/index.js | 10 + .../edit_user/available_data/index.js | 20 ++ src/components/edit_user/categories/index.js | 29 ++ .../edit_user/generic_data/index.js | 20 ++ src/components/edit_user/index.js | 81 +++++ src/components/edit_user/update_data/index.js | 10 + src/routing/index.js | 5 + src/utils/api/_DATA.js | 336 +++++++++--------- 8 files changed, 343 insertions(+), 168 deletions(-) create mode 100644 src/components/edit_user/available_data/index.js create mode 100644 src/components/edit_user/categories/index.js create mode 100644 src/components/edit_user/generic_data/index.js create mode 100644 src/components/edit_user/index.js create mode 100644 src/components/edit_user/update_data/index.js diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 8bf2e45..5e1d942 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -43,6 +43,14 @@ class DashboardUsers extends Component { this.columnApi = params.columnApi; }; + onCellClicked = (clickedCell) => { + + // TODO: make checks what you've clicked on and redirect adequatelly + const id = clickedCell.value; + + this.props.history.push(`/edit-user/${id}`); + } + paginationNumberFormatter = (params) => `[ ${params.value.toLocaleString()} ]`; /** @@ -120,6 +128,8 @@ class DashboardUsers extends Component { columnDefs={coldef} rowData={users} + onCellClicked={this.onCellClicked} + // events go here onGridReady={this.onGridReady} > diff --git a/src/components/edit_user/available_data/index.js b/src/components/edit_user/available_data/index.js new file mode 100644 index 0000000..8623d75 --- /dev/null +++ b/src/components/edit_user/available_data/index.js @@ -0,0 +1,20 @@ +import React from 'react'; + +export default function AvailableData(props){ + + /** + * @const {array} selectedUser + * @const {string} editUserField + */ + const { selectedUser } = props; + const { editUserField } = props.match.params; + + return ( +
+ { + selectedUser.length > 0 && + selectedUser[0][editUserField] + } +
+ ) +} \ No newline at end of file diff --git a/src/components/edit_user/categories/index.js b/src/components/edit_user/categories/index.js new file mode 100644 index 0000000..5455857 --- /dev/null +++ b/src/components/edit_user/categories/index.js @@ -0,0 +1,29 @@ +import React, { Fragment } from 'react'; +import { Link } from 'react-router-dom'; + +export default function Categories(props){ + + /** + * @const {array} coldef + * @const {string} url + */ + const { coldef, url } = props; + + return ( + + { + coldef.length > 0 + ? coldef.map((item) => { + return ( +
+ + {item.headerName} + +
+ ) + }) + : null + } +
+ ) +} \ No newline at end of file diff --git a/src/components/edit_user/generic_data/index.js b/src/components/edit_user/generic_data/index.js new file mode 100644 index 0000000..aec4c41 --- /dev/null +++ b/src/components/edit_user/generic_data/index.js @@ -0,0 +1,20 @@ +import React, { Fragment } from 'react'; + +export default function genericUserData(props){ + + /** + * @const {array} selectedUser + */ + const { selectedUser } = props; + + return ( + + { + selectedUser.length > 0 && +
+ {selectedUser[0].firstName} {selectedUser[0].lastName} +
+ } +
+ ) +} \ No newline at end of file diff --git a/src/components/edit_user/index.js b/src/components/edit_user/index.js new file mode 100644 index 0000000..db7bc7b --- /dev/null +++ b/src/components/edit_user/index.js @@ -0,0 +1,81 @@ +import React, { Component } from 'react'; +import { connect } from 'react-redux'; +import { bindActionCreators } from 'redux'; +import { Route, withRouter } from 'react-router-dom'; +import PropTypes from 'prop-types'; + +import Grid from '@material-ui/core/Grid'; + +import * as actionsDashboard from './../dashboard_users/actions'; + +import GenericData from './generic_data'; +import Categories from './categories'; +import AvailableData from './available_data'; +import UpdateData from './update_data'; + +class EditUser extends Component{ + + componentDidMount(){ + if (this.props.selectedUser.length === 0) { + this.props.getUsers(); + } + } + + render() { + + /** + * @const {array} coldef + * @const {array} selectedUser + * @const {string} url + * @const {string} path + */ + const { coldef, selectedUser } = this.props; + const { url, path } = this.props.match; + + return( + + + + + + + + + } /> + + + + + + ) + } +} + +EditUser.propTypes = { + selectedUser: PropTypes.array.isRequired, + coldef: PropTypes.array.isRequired +} + +function mapStateToProps(state, { match }){ + const { id } = match.params; + const { usersData } = state.users; + let selectedUser = []; + + usersData.length !== 0 + ? selectedUser = usersData.filter(item => item.accountId === id) + : selectedUser = [] + + return { + selectedUser, + coldef: state.users.coldef + } +} + +const mapDispatchToProps = (dispatch) => { + + return bindActionCreators({ + ...actionsDashboard + }, dispatch) +}; + +export default withRouter(connect(mapStateToProps, mapDispatchToProps)(EditUser)); \ No newline at end of file diff --git a/src/components/edit_user/update_data/index.js b/src/components/edit_user/update_data/index.js new file mode 100644 index 0000000..ed32e05 --- /dev/null +++ b/src/components/edit_user/update_data/index.js @@ -0,0 +1,10 @@ +import React from 'react'; + +export default function UpdateData(props){ + + return ( +
+ here the update user data lives +
+ ) +} \ No newline at end of file diff --git a/src/routing/index.js b/src/routing/index.js index 4cd9ed8..0afbd03 100644 --- a/src/routing/index.js +++ b/src/routing/index.js @@ -8,6 +8,7 @@ import asyncComponent from './../hoc/async-component/async-component'; */ const AsyncIntro = asyncComponent(() => import ('./../components/intro')); const AsyncDashboard = asyncComponent(() => import ('./../components/dashboard_users')); +const AsyncEditUser = asyncComponent(() => import ('./../components/edit_user')); /** * @const {array} routesArray @@ -28,5 +29,9 @@ export const routesArray = [ { 'path': '/user-dashboard', 'mainComponent': (props) => + }, + { + 'path': '/edit-user/:id', + 'mainComponent': (props) => } ] \ No newline at end of file diff --git a/src/utils/api/_DATA.js b/src/utils/api/_DATA.js index 9c2c327..2198fe2 100644 --- a/src/utils/api/_DATA.js +++ b/src/utils/api/_DATA.js @@ -1,6 +1,6 @@ export const authUser = [ { - accountId: '159654753', + accountId: '359654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -17,7 +17,7 @@ export const authUser = [ export const users = [ { - accountId: '159654753', + accountId: '359654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -31,7 +31,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-e', authenticationType: 'Email', @@ -45,7 +45,7 @@ export const users = [ communicationProviders: 'vendor-z' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-a', authenticationType: 'OAuth', @@ -59,7 +59,7 @@ export const users = [ communicationProviders: 'vendor-c' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'Email', @@ -73,7 +73,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -87,7 +87,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -101,7 +101,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -115,7 +115,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -129,7 +129,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -143,7 +143,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -157,7 +157,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -171,7 +171,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -185,7 +185,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -199,7 +199,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -213,7 +213,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -227,7 +227,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-e', authenticationType: 'Email', @@ -241,7 +241,7 @@ export const users = [ communicationProviders: 'vendor-z' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-a', authenticationType: 'OAuth', @@ -255,7 +255,7 @@ export const users = [ communicationProviders: 'vendor-c' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'Email', @@ -269,7 +269,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -283,7 +283,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -297,7 +297,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -311,7 +311,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -325,7 +325,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -339,7 +339,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -353,7 +353,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -367,7 +367,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -381,7 +381,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -395,7 +395,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -409,7 +409,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -423,7 +423,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-e', authenticationType: 'Email', @@ -437,7 +437,7 @@ export const users = [ communicationProviders: 'vendor-z' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-a', authenticationType: 'OAuth', @@ -451,7 +451,7 @@ export const users = [ communicationProviders: 'vendor-c' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'Email', @@ -465,7 +465,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -479,7 +479,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -493,7 +493,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -507,7 +507,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -521,7 +521,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -535,7 +535,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -549,7 +549,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -563,7 +563,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -577,7 +577,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -591,7 +591,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -605,7 +605,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -619,7 +619,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-e', authenticationType: 'Email', @@ -633,7 +633,7 @@ export const users = [ communicationProviders: 'vendor-z' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-a', authenticationType: 'OAuth', @@ -647,7 +647,7 @@ export const users = [ communicationProviders: 'vendor-c' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'Email', @@ -661,7 +661,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -675,7 +675,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -689,7 +689,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -703,7 +703,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -717,7 +717,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -731,7 +731,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -745,7 +745,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -759,7 +759,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -773,7 +773,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -787,7 +787,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -801,7 +801,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -815,7 +815,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-e', authenticationType: 'Email', @@ -829,7 +829,7 @@ export const users = [ communicationProviders: 'vendor-z' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-a', authenticationType: 'OAuth', @@ -843,7 +843,7 @@ export const users = [ communicationProviders: 'vendor-c' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'Email', @@ -857,7 +857,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -871,7 +871,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -885,7 +885,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -899,7 +899,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -913,7 +913,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -927,7 +927,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -941,7 +941,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -955,7 +955,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -969,7 +969,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -983,7 +983,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -997,7 +997,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1011,7 +1011,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-e', authenticationType: 'Email', @@ -1025,7 +1025,7 @@ export const users = [ communicationProviders: 'vendor-z' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-a', authenticationType: 'OAuth', @@ -1039,7 +1039,7 @@ export const users = [ communicationProviders: 'vendor-c' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'Email', @@ -1053,7 +1053,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1067,7 +1067,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1081,7 +1081,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1095,7 +1095,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1109,7 +1109,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1123,7 +1123,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1137,7 +1137,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1151,7 +1151,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1165,7 +1165,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1179,7 +1179,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1193,7 +1193,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-e', authenticationType: 'Email', @@ -1207,7 +1207,7 @@ export const users = [ communicationProviders: 'vendor-z' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-a', authenticationType: 'OAuth', @@ -1221,7 +1221,7 @@ export const users = [ communicationProviders: 'vendor-c' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'Email', @@ -1235,7 +1235,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1249,7 +1249,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1263,7 +1263,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1277,7 +1277,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1291,7 +1291,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1305,7 +1305,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1319,7 +1319,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1333,7 +1333,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1347,7 +1347,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1361,7 +1361,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1375,7 +1375,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1389,7 +1389,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-e', authenticationType: 'Email', @@ -1403,7 +1403,7 @@ export const users = [ communicationProviders: 'vendor-z' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-a', authenticationType: 'OAuth', @@ -1417,7 +1417,7 @@ export const users = [ communicationProviders: 'vendor-c' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'Email', @@ -1431,7 +1431,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1445,7 +1445,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1459,7 +1459,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1473,7 +1473,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1487,7 +1487,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1501,7 +1501,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1515,7 +1515,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1529,7 +1529,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1543,7 +1543,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1557,7 +1557,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1571,7 +1571,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1585,7 +1585,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-e', authenticationType: 'Email', @@ -1599,7 +1599,7 @@ export const users = [ communicationProviders: 'vendor-z' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-a', authenticationType: 'OAuth', @@ -1613,7 +1613,7 @@ export const users = [ communicationProviders: 'vendor-c' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'Email', @@ -1627,7 +1627,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1641,7 +1641,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1655,7 +1655,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1669,7 +1669,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1683,7 +1683,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1697,7 +1697,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1711,7 +1711,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1725,7 +1725,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1739,7 +1739,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1753,7 +1753,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1767,7 +1767,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1781,7 +1781,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-e', authenticationType: 'Email', @@ -1795,7 +1795,7 @@ export const users = [ communicationProviders: 'vendor-z' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-a', authenticationType: 'OAuth', @@ -1809,7 +1809,7 @@ export const users = [ communicationProviders: 'vendor-c' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'Email', @@ -1823,7 +1823,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1837,7 +1837,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1851,7 +1851,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1865,7 +1865,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1879,7 +1879,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1893,7 +1893,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1907,7 +1907,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1921,7 +1921,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1935,7 +1935,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1949,7 +1949,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1963,7 +1963,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -1977,7 +1977,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-e', authenticationType: 'Email', @@ -1991,7 +1991,7 @@ export const users = [ communicationProviders: 'vendor-z' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-a', authenticationType: 'OAuth', @@ -2005,7 +2005,7 @@ export const users = [ communicationProviders: 'vendor-c' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'Email', @@ -2019,7 +2019,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -2033,7 +2033,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -2047,7 +2047,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -2061,7 +2061,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -2075,7 +2075,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -2089,7 +2089,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -2103,7 +2103,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -2117,7 +2117,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -2131,7 +2131,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -2145,7 +2145,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -2159,7 +2159,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -2173,7 +2173,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-e', authenticationType: 'Email', @@ -2187,7 +2187,7 @@ export const users = [ communicationProviders: 'vendor-z' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-a', authenticationType: 'OAuth', @@ -2201,7 +2201,7 @@ export const users = [ communicationProviders: 'vendor-c' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'Email', @@ -2215,7 +2215,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -2229,7 +2229,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -2243,7 +2243,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -2257,7 +2257,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -2271,7 +2271,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -2285,7 +2285,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -2299,7 +2299,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -2313,7 +2313,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -2327,7 +2327,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -2341,7 +2341,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654753', + accountId: '159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', -- GitLab From 309007f56cd885dee2416cedeffbd1d6d38b9335 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Thu, 4 Oct 2018 17:58:48 +0300 Subject: [PATCH 043/249] NY-2806 :: NY-2806 :: Dashboard Unit Test ag-grid init --- src/components/dashboard_users/index.test.js | 84 +++++++++++++++++++- 1 file changed, 80 insertions(+), 4 deletions(-) diff --git a/src/components/dashboard_users/index.test.js b/src/components/dashboard_users/index.test.js index 57d1033..6569029 100644 --- a/src/components/dashboard_users/index.test.js +++ b/src/components/dashboard_users/index.test.js @@ -9,11 +9,42 @@ import DashboardUsers from './index'; import { AgGridReact } from "ag-grid-react"; import userAvatar from "../../utils/services/avatar_insertion"; +import Grouping from "./grouping/index"; + configure({ adapter: new Adapter() }); let initialState = { users: { - usersData: [ {accountId: "159654753"} ], + usersData: [ + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-y' + }, + { + accountId: '159654753', + profileId: '951753852', + authenticationIdentifier: 'vendor-e', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'admin', + firstName: 'Jane', + lastName: 'Doe', + accountStatus: 'active', + qrCode: '456951789', + communicationProviders: 'vendor-z' + }, + ], coldef: [ { headerName: "avatar", field: "avatar", filter: 'agTextColumnFilter', cellRenderer: "agGroupCellRenderer", cellRendererParams: { innerRenderer: userAvatar }, headerCheckboxSelection: true, headerCheckboxSelectionFilteredOnly: true, checkboxSelection: true }, { headerName: "accountId", field: "accountId", filter: 'agTextColumnFilter' }, @@ -38,20 +69,65 @@ let initialState = { describe("", () => { - let wrapper, store; + let wrapper, store, dashboard, ready; let mockStore = configureStore(); beforeEach(() => { - store = mockStore(initialState); + // ready = jest.spyOn(DashboardUsers.prototype, "onGridReady"); + wrapper = mount( ); + + dashboard = wrapper.find('DashboardUsers') }); it("shoud render DashboardUsers when receiving DATA", () => { - expect(wrapper.find(AgGridReact)); + + let instance = dashboard.instance(); + + const onGridReady = jest.spyOn(instance, "onGridReady"); + const agGrid = dashboard.find(AgGridReact).first(); + instance.onGridReady({ gridApi: "mockdata", columnApi: "mockdata" }); + + instance.forceUpdate(); + + expect(agGrid).toHaveLength(1); + expect(onGridReady).toHaveBeenCalledWith({ gridApi: "mockdata", columnApi: "mockdata" }); + + }); + + it("shoud Simulate events onClick to check showHideColumns", () => { + + let mockSetColumnVisible = jest.fn(); + let instance = dashboard.instance(); + + const showHideColumns = jest.spyOn(instance, "showHideColumns"), + checkbox = dashboard.find("input[type='checkbox']").first(); + + instance.columnApi = { setColumnVisible: mockSetColumnVisible }; + instance.forceUpdate(); + + checkbox.simulate("click", { target: { id: 1, checked: true } }); + + expect(showHideColumns).toHaveBeenCalledTimes(1); + expect(mockSetColumnVisible).toHaveBeenCalledWith(1, true); + }); + + it("shoud Simulate events onClick for toggleGroupingBar", () => { + + let instance = dashboard.instance(); + + const toggleGroupingBar = jest.spyOn(instance, "toggleGroupingBar"); + const link = dashboard.find(".toggleGrouping").first(); + + instance.forceUpdate(); + link.simulate('click'); + + expect(toggleGroupingBar).toHaveBeenCalled(); + }); }); \ No newline at end of file -- GitLab From 6a9db0d62437a6579d4af1888107d07d4615dc9e Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Fri, 5 Oct 2018 15:45:04 +0300 Subject: [PATCH 044/249] NY-4131 finalization of edit user protype layout --- src/components/dashboard_users/index.js | 13 ++++++++++--- src/components/edit_user/index.js | 6 +++--- src/components/edit_user/update_data/index.js | 2 +- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 5e1d942..b3de3b4 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -43,12 +43,19 @@ class DashboardUsers extends Component { this.columnApi = params.columnApi; }; + /** + * @param {object} clickedCell + */ onCellClicked = (clickedCell) => { - // TODO: make checks what you've clicked on and redirect adequatelly - const id = clickedCell.value; + /** + * @const {string} userId + * @const {string} category + */ + const userId = clickedCell.data.accountId; + const category = clickedCell.colDef.field; - this.props.history.push(`/edit-user/${id}`); + this.props.history.push(`/edit-user/${userId}/${category}`); } paginationNumberFormatter = (params) => `[ ${params.value.toLocaleString()} ]`; diff --git a/src/components/edit_user/index.js b/src/components/edit_user/index.js index db7bc7b..3628222 100644 --- a/src/components/edit_user/index.js +++ b/src/components/edit_user/index.js @@ -56,9 +56,9 @@ EditUser.propTypes = { coldef: PropTypes.array.isRequired } -function mapStateToProps(state, { match }){ +function mapStateToProps({ users }, { match }){ const { id } = match.params; - const { usersData } = state.users; + const { usersData } = users; let selectedUser = []; usersData.length !== 0 @@ -67,7 +67,7 @@ function mapStateToProps(state, { match }){ return { selectedUser, - coldef: state.users.coldef + coldef: users.coldef } } diff --git a/src/components/edit_user/update_data/index.js b/src/components/edit_user/update_data/index.js index ed32e05..25a157b 100644 --- a/src/components/edit_user/update_data/index.js +++ b/src/components/edit_user/update_data/index.js @@ -4,7 +4,7 @@ export default function UpdateData(props){ return (
- here the update user data lives + update options live here
) } \ No newline at end of file -- GitLab From fb0faaaf88d808d484801e411a22f82b7932ecfa Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Fri, 5 Oct 2018 18:07:07 +0300 Subject: [PATCH 045/249] NY-2806 :: NY-2806 dashborad spinners and onchange function --- src/components/dashboard_users/index.test.js | 46 ++++++++++++++++++-- 1 file changed, 43 insertions(+), 3 deletions(-) diff --git a/src/components/dashboard_users/index.test.js b/src/components/dashboard_users/index.test.js index 6569029..a592769 100644 --- a/src/components/dashboard_users/index.test.js +++ b/src/components/dashboard_users/index.test.js @@ -9,7 +9,7 @@ import DashboardUsers from './index'; import { AgGridReact } from "ag-grid-react"; import userAvatar from "../../utils/services/avatar_insertion"; -import Grouping from "./grouping/index"; +import Spinner from "../shared/ui/spinner"; configure({ adapter: new Adapter() }); @@ -69,12 +69,11 @@ let initialState = { describe("", () => { - let wrapper, store, dashboard, ready; + let wrapper, store, dashboard; let mockStore = configureStore(); beforeEach(() => { store = mockStore(initialState); - // ready = jest.spyOn(DashboardUsers.prototype, "onGridReady"); wrapper = mount( @@ -130,4 +129,45 @@ describe("", () => { }); + it("shoud Simulate events onClick to check onPageSizeChanged", () => { + + let mockSetPageSizeVisible = jest.fn(); + let instance = dashboard.instance(); + + const onPageSizeChanged = jest.spyOn(instance, "onPageSizeChanged"), + select = dashboard.find(".page-size-select").first(); + + instance.gridApi = { paginationSetPageSize: mockSetPageSizeVisible }; + instance.forceUpdate(); + + select.simulate("change", { target: { value: 1 } }); + + expect(onPageSizeChanged).toHaveBeenCalledTimes(1); + expect(mockSetPageSizeVisible).toHaveBeenCalledWith(1); + }); + + test("shoud check Spinner", () => { + + const initState = { + users: { + ...initialState.users, + usersData: [], + loading: true, + } + } + + const storeData = mockStore(initState); + + const componentWrapper = mount( + + + ); + + const userDashboard = componentWrapper.find("DashboardUsers"), + spinner = userDashboard.find(Spinner).first() + + expect(spinner).toHaveLength(1) + + }); + }); \ No newline at end of file -- GitLab From 75321c97066c04eb5580cbb61f7d369c7b0aacaf Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Fri, 5 Oct 2018 20:39:31 +0300 Subject: [PATCH 046/249] NY-4245 initial edit user redux communication --- src/components/dashboard_users/reducer.js | 14 ++++++++++++++ src/components/edit_user/actions.js | 16 ++++++++++++++++ src/components/edit_user/index.js | 16 ++++++++++++++-- src/components/edit_user/middleware.js | 13 +++++++++++++ src/components/edit_user/update_data/index.js | 8 +++++++- src/store/root_middleware/index.js | 6 +++++- 6 files changed, 69 insertions(+), 4 deletions(-) create mode 100644 src/components/edit_user/actions.js create mode 100644 src/components/edit_user/middleware.js diff --git a/src/components/dashboard_users/reducer.js b/src/components/dashboard_users/reducer.js index fdc4b7d..841a3cf 100644 --- a/src/components/dashboard_users/reducer.js +++ b/src/components/dashboard_users/reducer.js @@ -1,4 +1,5 @@ import { GET_USERS, DELIVER_USERS, FAIL_USERS, PAGE_SIZE_UPDATE } from './actions'; +import { DELIVER_UPDATE_USER_DATA_CATEGORY_X } from './../edit_user/actions'; import { updateObject } from '../../hoc/update-object/update-object'; import userAvatar from '../../utils/services/avatar_insertion'; @@ -62,6 +63,18 @@ const pageSizeUpdate = (state, action) => { }); }; +const updateUserCategoryX = (state, action) => { + + // TODO: apply changes on selected user + // const { newName, id } = action; + // const currentUser = state.usersData[0]; + // const usersData = state.usersData; + + return { + ...state + } +} + export default function users(state = initialState, action) { switch(action.type) { @@ -70,6 +83,7 @@ export default function users(state = initialState, action) { case DELIVER_USERS: return deliverUsers(state, action); case FAIL_USERS: return failUsers(state, action); case PAGE_SIZE_UPDATE: return pageSizeUpdate(state, action); + case DELIVER_UPDATE_USER_DATA_CATEGORY_X: return updateUserCategoryX(state, action); default: return state; } diff --git a/src/components/edit_user/actions.js b/src/components/edit_user/actions.js new file mode 100644 index 0000000..f13dcd3 --- /dev/null +++ b/src/components/edit_user/actions.js @@ -0,0 +1,16 @@ +export const UPDATE_USER_DATA_CATEGORY_X = "UPDATE_USER_DATA_CATEGORY_X"; +export const DELIVER_UPDATE_USER_DATA_CATEGORY_X = "DELIVER_UPDATE_USER_DATA_CATEGORY_X"; + +export function updateUserDataName(id) { + return { + type: UPDATE_USER_DATA_CATEGORY_X, + ...id + } +} + +export function deliverUpdateUserDataName(newData) { + return { + type: DELIVER_UPDATE_USER_DATA_CATEGORY_X, + ...newData + } +} \ No newline at end of file diff --git a/src/components/edit_user/index.js b/src/components/edit_user/index.js index 3628222..f6057e1 100644 --- a/src/components/edit_user/index.js +++ b/src/components/edit_user/index.js @@ -6,6 +6,7 @@ import PropTypes from 'prop-types'; import Grid from '@material-ui/core/Grid'; +import * as actions from './actions'; import * as actionsDashboard from './../dashboard_users/actions'; import GenericData from './generic_data'; @@ -21,6 +22,16 @@ class EditUser extends Component{ } } + updateUserDataCategoryX(){ + + const userIdtoPass = { + id: this.props.selectedUser[0].accountId + } + + this.props.updateUserDataName(userIdtoPass); + + } + render() { /** @@ -44,7 +55,7 @@ class EditUser extends Component{ } />
- + this.updateUserDataCategoryX()} />} />
) @@ -74,7 +85,8 @@ function mapStateToProps({ users }, { match }){ const mapDispatchToProps = (dispatch) => { return bindActionCreators({ - ...actionsDashboard + ...actionsDashboard, + ...actions }, dispatch) }; diff --git a/src/components/edit_user/middleware.js b/src/components/edit_user/middleware.js new file mode 100644 index 0000000..7ee0edd --- /dev/null +++ b/src/components/edit_user/middleware.js @@ -0,0 +1,13 @@ +import { put } from 'redux-saga/effects'; +import { deliverUpdateUserDataName } from './actions' + +export function* updateUserDataName(action) { + + const newData = { + newName: 'faking change of name', + id: action.id + } + + yield put(deliverUpdateUserDataName(newData)) + +} diff --git a/src/components/edit_user/update_data/index.js b/src/components/edit_user/update_data/index.js index 25a157b..f852cf6 100644 --- a/src/components/edit_user/update_data/index.js +++ b/src/components/edit_user/update_data/index.js @@ -2,9 +2,15 @@ import React from 'react'; export default function UpdateData(props){ + /** + * @const {string} editUserField + */ + const { updateUserDataCategoryX } = props; + const { editUserField } = props.match.params; + return (
- update options live here + Update current {editUserField} status
) } \ No newline at end of file diff --git a/src/store/root_middleware/index.js b/src/store/root_middleware/index.js index 24a2089..b81cc82 100644 --- a/src/store/root_middleware/index.js +++ b/src/store/root_middleware/index.js @@ -10,6 +10,9 @@ import { getUsers } from './../../components/dashboard_users/middleware'; import { GET_AUTH_USER } from './../../components/header_bar/actions'; import { getAuthedUser } from './../../components/header_bar/middleware'; +import { UPDATE_USER_DATA_CATEGORY_X } from './../../components/edit_user/actions'; +import { updateUserDataName } from './../../components/edit_user/middleware'; + const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose; export const sagaMiddleware = createSagaMiddleware(); @@ -21,7 +24,8 @@ export function* combineSagas() { [ logger(), takeEvery(GET_USERS, getUsers), - takeEvery(GET_AUTH_USER, getAuthedUser) + takeEvery(GET_AUTH_USER, getAuthedUser), + takeEvery(UPDATE_USER_DATA_CATEGORY_X, updateUserDataName) ] ) } \ No newline at end of file -- GitLab From 37a09204766c9b4231080eaacdfb6f9d8834681a Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Mon, 8 Oct 2018 11:04:11 +0300 Subject: [PATCH 047/249] NY-4245 edit user more descriptive url param applied --- src/components/edit_user/available_data/index.js | 6 +++--- src/components/edit_user/index.js | 4 ++-- src/components/edit_user/update_data/index.js | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/components/edit_user/available_data/index.js b/src/components/edit_user/available_data/index.js index 8623d75..21da1b3 100644 --- a/src/components/edit_user/available_data/index.js +++ b/src/components/edit_user/available_data/index.js @@ -4,16 +4,16 @@ export default function AvailableData(props){ /** * @const {array} selectedUser - * @const {string} editUserField + * @const {string} selectedCategory */ const { selectedUser } = props; - const { editUserField } = props.match.params; + const { selectedCategory } = props.match.params; return (
{ selectedUser.length > 0 && - selectedUser[0][editUserField] + selectedUser[0][selectedCategory] }
) diff --git a/src/components/edit_user/index.js b/src/components/edit_user/index.js index f6057e1..2ed1210 100644 --- a/src/components/edit_user/index.js +++ b/src/components/edit_user/index.js @@ -52,10 +52,10 @@ class EditUser extends Component{
- } /> + } /> - this.updateUserDataCategoryX()} />} /> + this.updateUserDataCategoryX()} />} />
) diff --git a/src/components/edit_user/update_data/index.js b/src/components/edit_user/update_data/index.js index f852cf6..02c939a 100644 --- a/src/components/edit_user/update_data/index.js +++ b/src/components/edit_user/update_data/index.js @@ -3,14 +3,14 @@ import React from 'react'; export default function UpdateData(props){ /** - * @const {string} editUserField + * @const {string} selectedCategory */ const { updateUserDataCategoryX } = props; - const { editUserField } = props.match.params; + const { selectedCategory } = props.match.params; return ( ) } \ No newline at end of file -- GitLab From 93c3b72acf2337e1148e2eb5850f9b173d26dd8b Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Mon, 8 Oct 2018 12:01:35 +0300 Subject: [PATCH 048/249] style and missing proptypes for edit user component --- src/components/edit_user/categories/index.js | 49 ++++++++++++++++--- .../edit_user/generic_data/index.js | 36 ++++++++++++-- 2 files changed, 73 insertions(+), 12 deletions(-) diff --git a/src/components/edit_user/categories/index.js b/src/components/edit_user/categories/index.js index 5455857..05543c7 100644 --- a/src/components/edit_user/categories/index.js +++ b/src/components/edit_user/categories/index.js @@ -1,29 +1,64 @@ import React, { Fragment } from 'react'; import { Link } from 'react-router-dom'; -export default function Categories(props){ +import PropTypes from "prop-types"; +import { withStyles } from "@material-ui/core/styles"; + +import List from "@material-ui/core/List"; +import ListItem from "@material-ui/core/ListItem"; +import ListItemText from "@material-ui/core/ListItemText"; +import Card from "@material-ui/core/Card"; + +const styles = {}; + +const Categories = (props) => { /** * @const {array} coldef * @const {string} url + * @const {object} classes */ - const { coldef, url } = props; + + const { coldef, url, classes } = props; return ( + { coldef.length > 0 ? coldef.map((item) => { + return ( -
- - {item.headerName} - +
+ + + + + + + + + + + + +
) + }) + : null } + ) -} \ No newline at end of file +}; + +Categories.propTypes = { + classes: PropTypes.object.isRequired, + coldef: PropTypes.array.isRequired, + url: PropTypes.string.isRequired +}; + +export default withStyles(styles)(Categories); \ No newline at end of file diff --git a/src/components/edit_user/generic_data/index.js b/src/components/edit_user/generic_data/index.js index aec4c41..67e1cd1 100644 --- a/src/components/edit_user/generic_data/index.js +++ b/src/components/edit_user/generic_data/index.js @@ -1,20 +1,46 @@ import React, { Fragment } from 'react'; -export default function genericUserData(props){ +import PropTypes from "prop-types"; +import { withStyles } from "@material-ui/core/styles"; + +import Card from "@material-ui/core/Card"; +import CardContent from "@material-ui/core/CardContent"; +import Typography from "@material-ui/core/Typography"; + +const styles = {}; + +const genericUserData = (props) => { /** * @const {array} selectedUser + * @const {Object} classes */ - const { selectedUser } = props; + + const { selectedUser, classes } = props; return ( { selectedUser.length > 0 && -
- {selectedUser[0].firstName} {selectedUser[0].lastName} +
+ + + + + {selectedUser[0].firstName} {selectedUser[0].lastName} + + + +
} ) -} \ No newline at end of file +} + +genericUserData.propTypes = { + classes: PropTypes.object.isRequired, + selectedUser: PropTypes.array.isRequired +}; + +export default withStyles(styles)(genericUserData); \ No newline at end of file -- GitLab From a5aef95ebbd308dbe2ce950efd8aa554d9513b95 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Mon, 8 Oct 2018 13:12:28 +0300 Subject: [PATCH 049/249] NY-4245 edit user dynamically update category values --- src/components/dashboard_users/reducer.js | 11 +++++++---- src/components/edit_user/actions.js | 4 ++-- src/components/edit_user/index.js | 14 +++++++++----- src/components/edit_user/middleware.js | 13 ++++++++----- src/components/edit_user/update_data/index.js | 4 +++- 5 files changed, 29 insertions(+), 17 deletions(-) diff --git a/src/components/dashboard_users/reducer.js b/src/components/dashboard_users/reducer.js index 841a3cf..ea7a334 100644 --- a/src/components/dashboard_users/reducer.js +++ b/src/components/dashboard_users/reducer.js @@ -65,10 +65,13 @@ const pageSizeUpdate = (state, action) => { const updateUserCategoryX = (state, action) => { - // TODO: apply changes on selected user - // const { newName, id } = action; - // const currentUser = state.usersData[0]; - // const usersData = state.usersData; + const { newValue, category } = action; + state.usersData[0] = Object.defineProperties(state.usersData[0], { + [category]: { + value: newValue, + writable: true + } + }) return { ...state diff --git a/src/components/edit_user/actions.js b/src/components/edit_user/actions.js index f13dcd3..4237949 100644 --- a/src/components/edit_user/actions.js +++ b/src/components/edit_user/actions.js @@ -1,10 +1,10 @@ export const UPDATE_USER_DATA_CATEGORY_X = "UPDATE_USER_DATA_CATEGORY_X"; export const DELIVER_UPDATE_USER_DATA_CATEGORY_X = "DELIVER_UPDATE_USER_DATA_CATEGORY_X"; -export function updateUserDataName(id) { +export function updateUserDataName(updateDetails) { return { type: UPDATE_USER_DATA_CATEGORY_X, - ...id + ...updateDetails } } diff --git a/src/components/edit_user/index.js b/src/components/edit_user/index.js index 2ed1210..603e6d5 100644 --- a/src/components/edit_user/index.js +++ b/src/components/edit_user/index.js @@ -22,13 +22,17 @@ class EditUser extends Component{ } } - updateUserDataCategoryX(){ + updateUserDataCategoryX = (category) => { - const userIdtoPass = { - id: this.props.selectedUser[0].accountId + const userId = this.props.selectedUser[0].accountId; + + const updateDetails = { + id: userId, + newValue: 'Value updated', + category } - this.props.updateUserDataName(userIdtoPass); + this.props.updateUserDataName(updateDetails); } @@ -55,7 +59,7 @@ class EditUser extends Component{ } /> - this.updateUserDataCategoryX()} />} /> + this.updateUserDataCategoryX(data)} />} /> ) diff --git a/src/components/edit_user/middleware.js b/src/components/edit_user/middleware.js index 7ee0edd..9aab797 100644 --- a/src/components/edit_user/middleware.js +++ b/src/components/edit_user/middleware.js @@ -3,11 +3,14 @@ import { deliverUpdateUserDataName } from './actions' export function* updateUserDataName(action) { - const newData = { - newName: 'faking change of name', - id: action.id - } + console.log(action); - yield put(deliverUpdateUserDataName(newData)) + const newData = { + id: action.id, + category: action.category, + newValue: action.newValue + } + + yield put(deliverUpdateUserDataName(newData)) } diff --git a/src/components/edit_user/update_data/index.js b/src/components/edit_user/update_data/index.js index 02c939a..1ebfad6 100644 --- a/src/components/edit_user/update_data/index.js +++ b/src/components/edit_user/update_data/index.js @@ -10,7 +10,9 @@ export default function UpdateData(props){ return ( ) } \ No newline at end of file -- GitLab From 423e908316a400ef70cfbd86103d5a222f8b260f Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Mon, 8 Oct 2018 13:31:04 +0300 Subject: [PATCH 050/249] NY-4245 edit user dynamicly update specfic category --- src/components/dashboard_users/index.js | 4 +- src/components/dashboard_users/reducer.js | 6 ++- src/utils/api/_DATA.js | 46 +++++++++++------------ 3 files changed, 30 insertions(+), 26 deletions(-) diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index b3de3b4..4c24d45 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -32,7 +32,9 @@ class DashboardUsers extends Component { * the users from the API */ componentDidMount() { - this.props.getUsers(); + if (this.props.users.length === 0) { + this.props.getUsers(); + } }; /** diff --git a/src/components/dashboard_users/reducer.js b/src/components/dashboard_users/reducer.js index ea7a334..0046221 100644 --- a/src/components/dashboard_users/reducer.js +++ b/src/components/dashboard_users/reducer.js @@ -65,8 +65,10 @@ const pageSizeUpdate = (state, action) => { const updateUserCategoryX = (state, action) => { - const { newValue, category } = action; - state.usersData[0] = Object.defineProperties(state.usersData[0], { + const { newValue, category, id } = action; + const userIndex = state.usersData.findIndex(item => item.accountId === id); + + state.usersData[userIndex] = Object.defineProperties(state.usersData[userIndex], { [category]: { value: newValue, writable: true diff --git a/src/utils/api/_DATA.js b/src/utils/api/_DATA.js index 2198fe2..45fa63c 100644 --- a/src/utils/api/_DATA.js +++ b/src/utils/api/_DATA.js @@ -31,7 +31,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654755', + accountId: '259654755', profileId: '951753852', authenticationIdentifier: 'vendor-e', authenticationType: 'Email', @@ -45,7 +45,7 @@ export const users = [ communicationProviders: 'vendor-z' }, { - accountId: '159654755', + accountId: '3159654755', profileId: '951753852', authenticationIdentifier: 'vendor-a', authenticationType: 'OAuth', @@ -59,7 +59,7 @@ export const users = [ communicationProviders: 'vendor-c' }, { - accountId: '159654755', + accountId: '1549654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'Email', @@ -73,7 +73,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654755', + accountId: '1595654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -87,7 +87,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654755', + accountId: '1569654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -101,7 +101,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654755', + accountId: '1597654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -115,7 +115,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654755', + accountId: '1596547585', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -129,7 +129,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654755', + accountId: '1599654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -143,7 +143,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654755', + accountId: '1596504755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -157,7 +157,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654755', + accountId: '1529654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -171,7 +171,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654755', + accountId: '1595654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -185,7 +185,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654755', + accountId: '7159654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -199,7 +199,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654755', + accountId: '1259654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -213,7 +213,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654755', + accountId: '1596954755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -227,7 +227,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654755', + accountId: '1596154755', profileId: '951753852', authenticationIdentifier: 'vendor-e', authenticationType: 'Email', @@ -241,7 +241,7 @@ export const users = [ communicationProviders: 'vendor-z' }, { - accountId: '159654755', + accountId: '1596542755', profileId: '951753852', authenticationIdentifier: 'vendor-a', authenticationType: 'OAuth', @@ -255,7 +255,7 @@ export const users = [ communicationProviders: 'vendor-c' }, { - accountId: '159654755', + accountId: '1539654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'Email', @@ -269,7 +269,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654755', + accountId: '1596544755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -283,7 +283,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654755', + accountId: '1596545755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -297,7 +297,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654755', + accountId: '1596564755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -311,7 +311,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654755', + accountId: '1579654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -325,7 +325,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654755', + accountId: '1599654755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', @@ -339,7 +339,7 @@ export const users = [ communicationProviders: 'vendor-y' }, { - accountId: '159654755', + accountId: '1596540755', profileId: '951753852', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', -- GitLab From 4e99f3762e3acec562b71fdc7b85b4c8eb1cf922 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Mon, 8 Oct 2018 14:04:04 +0300 Subject: [PATCH 051/249] style for available data and propTypes --- .../edit_user/available_data/index.js | 41 +++++++++++++++---- src/components/edit_user/categories/index.js | 6 +-- 2 files changed, 37 insertions(+), 10 deletions(-) diff --git a/src/components/edit_user/available_data/index.js b/src/components/edit_user/available_data/index.js index 21da1b3..171c503 100644 --- a/src/components/edit_user/available_data/index.js +++ b/src/components/edit_user/available_data/index.js @@ -1,20 +1,47 @@ import React from 'react'; -export default function AvailableData(props){ +import PropTypes from "prop-types"; + +import { withStyles } from "@material-ui/core/styles"; +import Card from "@material-ui/core/Card"; +import CardContent from "@material-ui/core/CardContent"; +import Typography from "@material-ui/core/Typography"; + +const styles = {}; + +const AvailableData = (props) => { /** * @const {array} selectedUser * @const {string} selectedCategory */ - const { selectedUser } = props; + const { selectedUser, classes } = props; const { selectedCategory } = props.match.params; return (
- { - selectedUser.length > 0 && - selectedUser[0][selectedCategory] - } + + + + + + { + selectedUser.length > 0 && + selectedUser[0][selectedCategory] + } + + + + +
) -} \ No newline at end of file +}; + +AvailableData.propTypes = { + classes: PropTypes.object.isRequired, + selectedUser: PropTypes.array.isRequired, + selectedCategory: PropTypes.string +}; + +export default withStyles(styles)(AvailableData); \ No newline at end of file diff --git a/src/components/edit_user/categories/index.js b/src/components/edit_user/categories/index.js index 05543c7..6b25d95 100644 --- a/src/components/edit_user/categories/index.js +++ b/src/components/edit_user/categories/index.js @@ -1,13 +1,12 @@ import React, { Fragment } from 'react'; import { Link } from 'react-router-dom'; - import PropTypes from "prop-types"; -import { withStyles } from "@material-ui/core/styles"; import List from "@material-ui/core/List"; import ListItem from "@material-ui/core/ListItem"; import ListItemText from "@material-ui/core/ListItemText"; import Card from "@material-ui/core/Card"; +import { withStyles } from "@material-ui/core/styles"; const styles = {}; @@ -29,7 +28,7 @@ const Categories = (props) => { ? coldef.map((item) => { return ( -
+
@@ -41,6 +40,7 @@ const Categories = (props) => { +
-- GitLab From 177bc8aabe9a78d4c3bb803a1cf9ad84bb07951e Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Mon, 8 Oct 2018 16:21:40 +0300 Subject: [PATCH 052/249] [WEB] :: NY-2806 :: Edit user update specific category module logic --- src/components/edit_user/index.js | 15 ++- src/components/edit_user/update_data/index.js | 91 ++++++++++++++++--- 2 files changed, 85 insertions(+), 21 deletions(-) diff --git a/src/components/edit_user/index.js b/src/components/edit_user/index.js index 603e6d5..7416380 100644 --- a/src/components/edit_user/index.js +++ b/src/components/edit_user/index.js @@ -4,7 +4,7 @@ import { bindActionCreators } from 'redux'; import { Route, withRouter } from 'react-router-dom'; import PropTypes from 'prop-types'; -import Grid from '@material-ui/core/Grid'; +import Grid from '@material-ui/core/Grid'; import * as actions from './actions'; import * as actionsDashboard from './../dashboard_users/actions'; @@ -12,7 +12,7 @@ import * as actionsDashboard from './../dashboard_users/actions'; import GenericData from './generic_data'; import Categories from './categories'; import AvailableData from './available_data'; -import UpdateData from './update_data'; +import UpdateData from './update_data'; class EditUser extends Component{ @@ -22,14 +22,13 @@ class EditUser extends Component{ } } - updateUserDataCategoryX = (category) => { + updateUserDataCategoryX = (dataCategoryEdit) => { const userId = this.props.selectedUser[0].accountId; const updateDetails = { id: userId, - newValue: 'Value updated', - category + ...dataCategoryEdit } this.props.updateUserDataName(updateDetails); @@ -76,10 +75,10 @@ function mapStateToProps({ users }, { match }){ const { usersData } = users; let selectedUser = []; - usersData.length !== 0 + usersData.length !== 0 ? selectedUser = usersData.filter(item => item.accountId === id) : selectedUser = [] - + return { selectedUser, coldef: users.coldef @@ -87,7 +86,7 @@ function mapStateToProps({ users }, { match }){ } const mapDispatchToProps = (dispatch) => { - + return bindActionCreators({ ...actionsDashboard, ...actions diff --git a/src/components/edit_user/update_data/index.js b/src/components/edit_user/update_data/index.js index 1ebfad6..8468fc6 100644 --- a/src/components/edit_user/update_data/index.js +++ b/src/components/edit_user/update_data/index.js @@ -1,18 +1,83 @@ -import React from 'react'; +import React, {Component} from 'react'; +import PropTypes from "prop-types"; -export default function UpdateData(props){ +import TextField from "@material-ui/core/TextField"; +import Button from "@material-ui/core/Button"; - /** - * @const {string} selectedCategory - */ - const { updateUserDataCategoryX } = props; - const { selectedCategory } = props.match.params; +import { withStyles } from "@material-ui/core/styles"; - return ( -
+const styles = {}; - {updateUserDataCategoryX(selectedCategory)}}>Update current {selectedCategory} status +class UpdateData extends Component { -
- ) -} \ No newline at end of file + state = { + name: "" + }; + + onSubmitHandler = e => { + e.preventDefault(); + + const { name } = this.state; + const { selectedCategory } = this.props.match.params; + + const dataToChange = { + newValue: name, + category: selectedCategory + } + + e.currentTarget.reset(); + + this.setState({ name: ""}); + this.props.updateUserDataCategoryX(dataToChange); + + + }; + + handleChange = e => { + this.setState({ + [e.currentTarget.name]: e.currentTarget.value + }); + }; + + isDisabled = () => { + const { name } = this.state; + + return name === ""; + }; + + render() { + /** + * @const {string} selectedCategory + * @const {Func} updateUserDataCategoryX + * @const {object} classes + */ + + const {classes } = this.props; + + return ( +
+ +
+ + + + + +
+ ); + } +} + +UpdateData.propTypes = { + classes: PropTypes.object.isRequired, + updateUserDataCategoryX: PropTypes.func.isRequired, + selectedCategory: PropTypes.string +}; + +export default withStyles(styles)(UpdateData); \ No newline at end of file -- GitLab From dd9b463a316467d63b642e364daac8517a9a0f79 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Mon, 8 Oct 2018 16:35:28 +0300 Subject: [PATCH 053/249] Minor change --- .../edit_user/available_data/index.js | 1 - src/components/edit_user/update_data/index.js | 44 +++++++++++-------- 2 files changed, 25 insertions(+), 20 deletions(-) diff --git a/src/components/edit_user/available_data/index.js b/src/components/edit_user/available_data/index.js index 171c503..3be4a12 100644 --- a/src/components/edit_user/available_data/index.js +++ b/src/components/edit_user/available_data/index.js @@ -1,5 +1,4 @@ import React from 'react'; - import PropTypes from "prop-types"; import { withStyles } from "@material-ui/core/styles"; diff --git a/src/components/edit_user/update_data/index.js b/src/components/edit_user/update_data/index.js index 8468fc6..b5e76ab 100644 --- a/src/components/edit_user/update_data/index.js +++ b/src/components/edit_user/update_data/index.js @@ -3,10 +3,16 @@ import PropTypes from "prop-types"; import TextField from "@material-ui/core/TextField"; import Button from "@material-ui/core/Button"; +import Card from "@material-ui/core/Card"; +import CardContent from "@material-ui/core/CardContent"; import { withStyles } from "@material-ui/core/styles"; -const styles = {}; +const styles = { + button: { + marginTop: "20px", + } +}; class UpdateData extends Component { @@ -29,20 +35,15 @@ class UpdateData extends Component { this.setState({ name: ""}); this.props.updateUserDataCategoryX(dataToChange); - - }; handleChange = e => { - this.setState({ - [e.currentTarget.name]: e.currentTarget.value - }); + this.setState({ [e.currentTarget.name]: e.currentTarget.value }); }; isDisabled = () => { const { name } = this.state; - - return name === ""; + return name === "" ? true : false; }; render() { @@ -57,17 +58,22 @@ class UpdateData extends Component { return (
-
- - - - + + + +
+ + + + +
+
); -- GitLab From cbb8815d276d39a0718e4902e07af7ea6576d7cd Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Mon, 8 Oct 2018 16:40:23 +0300 Subject: [PATCH 054/249] NY-2806 :: NY-2806 :: Edit user prototype style --- src/components/edit_user/update_data/index.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/components/edit_user/update_data/index.js b/src/components/edit_user/update_data/index.js index b5e76ab..5d701b2 100644 --- a/src/components/edit_user/update_data/index.js +++ b/src/components/edit_user/update_data/index.js @@ -10,7 +10,8 @@ import { withStyles } from "@material-ui/core/styles"; const styles = { button: { - marginTop: "20px", + marginTop: "20px" + } }; @@ -68,8 +69,9 @@ class UpdateData extends Component { label="Text here..." placeholder="Placeholder" className={classes.textField} + fullWidth /> - + -- GitLab From a2f62437686a7008462eb9341892775de8955b06 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Mon, 8 Oct 2018 17:07:29 +0300 Subject: [PATCH 055/249] NY-4245 edit user files restructuring --- src/components/{ => dashboard_users}/edit_user/actions.js | 0 .../{ => dashboard_users}/edit_user/available_data/index.js | 0 .../{ => dashboard_users}/edit_user/categories/index.js | 0 .../{ => dashboard_users}/edit_user/generic_data/index.js | 0 src/components/{ => dashboard_users}/edit_user/index.js | 2 +- .../{ => dashboard_users}/edit_user/middleware.js | 0 .../{ => dashboard_users}/edit_user/update_data/index.js | 0 src/components/dashboard_users/reducer.js | 2 +- src/routing/index.js | 2 +- src/store/root_middleware/index.js | 6 +++--- 10 files changed, 6 insertions(+), 6 deletions(-) rename src/components/{ => dashboard_users}/edit_user/actions.js (100%) rename src/components/{ => dashboard_users}/edit_user/available_data/index.js (100%) rename src/components/{ => dashboard_users}/edit_user/categories/index.js (100%) rename src/components/{ => dashboard_users}/edit_user/generic_data/index.js (100%) rename src/components/{ => dashboard_users}/edit_user/index.js (96%) rename src/components/{ => dashboard_users}/edit_user/middleware.js (100%) rename src/components/{ => dashboard_users}/edit_user/update_data/index.js (100%) diff --git a/src/components/edit_user/actions.js b/src/components/dashboard_users/edit_user/actions.js similarity index 100% rename from src/components/edit_user/actions.js rename to src/components/dashboard_users/edit_user/actions.js diff --git a/src/components/edit_user/available_data/index.js b/src/components/dashboard_users/edit_user/available_data/index.js similarity index 100% rename from src/components/edit_user/available_data/index.js rename to src/components/dashboard_users/edit_user/available_data/index.js diff --git a/src/components/edit_user/categories/index.js b/src/components/dashboard_users/edit_user/categories/index.js similarity index 100% rename from src/components/edit_user/categories/index.js rename to src/components/dashboard_users/edit_user/categories/index.js diff --git a/src/components/edit_user/generic_data/index.js b/src/components/dashboard_users/edit_user/generic_data/index.js similarity index 100% rename from src/components/edit_user/generic_data/index.js rename to src/components/dashboard_users/edit_user/generic_data/index.js diff --git a/src/components/edit_user/index.js b/src/components/dashboard_users/edit_user/index.js similarity index 96% rename from src/components/edit_user/index.js rename to src/components/dashboard_users/edit_user/index.js index 7416380..0c23858 100644 --- a/src/components/edit_user/index.js +++ b/src/components/dashboard_users/edit_user/index.js @@ -7,7 +7,7 @@ import PropTypes from 'prop-types'; import Grid from '@material-ui/core/Grid'; import * as actions from './actions'; -import * as actionsDashboard from './../dashboard_users/actions'; +import * as actionsDashboard from './../actions'; import GenericData from './generic_data'; import Categories from './categories'; diff --git a/src/components/edit_user/middleware.js b/src/components/dashboard_users/edit_user/middleware.js similarity index 100% rename from src/components/edit_user/middleware.js rename to src/components/dashboard_users/edit_user/middleware.js diff --git a/src/components/edit_user/update_data/index.js b/src/components/dashboard_users/edit_user/update_data/index.js similarity index 100% rename from src/components/edit_user/update_data/index.js rename to src/components/dashboard_users/edit_user/update_data/index.js diff --git a/src/components/dashboard_users/reducer.js b/src/components/dashboard_users/reducer.js index 0046221..a45215b 100644 --- a/src/components/dashboard_users/reducer.js +++ b/src/components/dashboard_users/reducer.js @@ -1,5 +1,5 @@ import { GET_USERS, DELIVER_USERS, FAIL_USERS, PAGE_SIZE_UPDATE } from './actions'; -import { DELIVER_UPDATE_USER_DATA_CATEGORY_X } from './../edit_user/actions'; +import { DELIVER_UPDATE_USER_DATA_CATEGORY_X } from './edit_user/actions'; import { updateObject } from '../../hoc/update-object/update-object'; import userAvatar from '../../utils/services/avatar_insertion'; diff --git a/src/routing/index.js b/src/routing/index.js index 0afbd03..72219cc 100644 --- a/src/routing/index.js +++ b/src/routing/index.js @@ -8,7 +8,7 @@ import asyncComponent from './../hoc/async-component/async-component'; */ const AsyncIntro = asyncComponent(() => import ('./../components/intro')); const AsyncDashboard = asyncComponent(() => import ('./../components/dashboard_users')); -const AsyncEditUser = asyncComponent(() => import ('./../components/edit_user')); +const AsyncEditUser = asyncComponent(() => import ('./../components/dashboard_users/edit_user')); /** * @const {array} routesArray diff --git a/src/store/root_middleware/index.js b/src/store/root_middleware/index.js index b81cc82..e2df8e8 100644 --- a/src/store/root_middleware/index.js +++ b/src/store/root_middleware/index.js @@ -7,12 +7,12 @@ import logger from './logger'; import { GET_USERS } from './../../components/dashboard_users/actions'; import { getUsers } from './../../components/dashboard_users/middleware'; +import { UPDATE_USER_DATA_CATEGORY_X } from './../../components/dashboard_users/edit_user/actions'; +import { updateUserDataName } from './../../components/dashboard_users/edit_user/middleware'; + import { GET_AUTH_USER } from './../../components/header_bar/actions'; import { getAuthedUser } from './../../components/header_bar/middleware'; -import { UPDATE_USER_DATA_CATEGORY_X } from './../../components/edit_user/actions'; -import { updateUserDataName } from './../../components/edit_user/middleware'; - const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose; export const sagaMiddleware = createSagaMiddleware(); -- GitLab From 2353b434225b561bc55b49195aa2ca8484ff2224 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Tue, 9 Oct 2018 15:09:25 +0300 Subject: [PATCH 056/249] NY-3876 :: error handler HOC --- src/components/dashboard_users/index.js | 39 +++++++++-------- src/components/dashboard_users/middleware.js | 3 +- .../shared/ui/back_drop/back_drop.js | 2 +- src/components/shared/ui/modal/modal.js | 7 ++-- src/hoc/auxe/auxe.js | 3 -- src/hoc/error_handler/error_handler.js | 36 ++++++++++++++++ .../with-error-handler/with-error-handler.js | 42 ------------------- 7 files changed, 63 insertions(+), 69 deletions(-) delete mode 100644 src/hoc/auxe/auxe.js create mode 100644 src/hoc/error_handler/error_handler.js delete mode 100644 src/hoc/with-error-handler/with-error-handler.js diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 4c24d45..ea0fa6e 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -14,6 +14,8 @@ import "./css/index.css"; import "./css/ag-grid.css"; import "./css/ag-theme-material.css"; +import ErrorHandler from "../../hoc/error_handler/error_handler"; + class DashboardUsers extends Component { /** @@ -97,14 +99,14 @@ class DashboardUsers extends Component { render() { /** - * @const {array} users - * @const {array} coldef - * @const {bool} loading - * @const {bool} error - * @const {string} errorMessage - * @const {string} rowSelection - * @const {number} paginationPageSize - * @const {func} paginationNumberFormatter + * @const {array} users + * @const {array} coldef + * @const {bool} loading + * @const {bool} error + * @const {string} errorMessage + * @const {string} rowSelection + * @const {number} paginationPageSize + * @const {func} paginationNumberFormatter */ const { users, coldef, loading, error, errorMessage, rowSelection, paginationPageSize } = this.props; let content = null; @@ -163,16 +165,17 @@ class DashboardUsers extends Component { { error - ? {errorMessage !== undefined ? errorMessage : 'Unknown Connection Error'}} - /> + // ? {errorMessage !== undefined ? errorMessage : 'Unknown Connection Error'}} + // /> + ? : content } diff --git a/src/components/dashboard_users/middleware.js b/src/components/dashboard_users/middleware.js index ebeec71..6da0e16 100644 --- a/src/components/dashboard_users/middleware.js +++ b/src/components/dashboard_users/middleware.js @@ -12,6 +12,7 @@ export function* getUsers() { yield put(deliverUsersPayload(payloadArray)); } catch(error) { + console.log(error) yield put(failUsers(error)); - } + } } \ No newline at end of file diff --git a/src/components/shared/ui/back_drop/back_drop.js b/src/components/shared/ui/back_drop/back_drop.js index 7df4ece..0f46a90 100644 --- a/src/components/shared/ui/back_drop/back_drop.js +++ b/src/components/shared/ui/back_drop/back_drop.js @@ -1,5 +1,5 @@ import React from 'react'; -import './back-drop.css'; +import './back_drop.css'; const backdrop = (props) => ( diff --git a/src/components/shared/ui/modal/modal.js b/src/components/shared/ui/modal/modal.js index ee38490..d54b780 100644 --- a/src/components/shared/ui/modal/modal.js +++ b/src/components/shared/ui/modal/modal.js @@ -1,6 +1,5 @@ -import React, { Component } from 'react'; +import React, { Component, Fragment } from 'react'; import './modal.css'; -import Aux from '../../../../hoc/auxe/auxe'; import Backdrop from '../back_drop/back_drop'; class Modal extends Component { @@ -14,7 +13,7 @@ class Modal extends Component { const { show, modalClosed } = this.props; return ( - +
{this.props.children}
-
+ ) } } diff --git a/src/hoc/auxe/auxe.js b/src/hoc/auxe/auxe.js deleted file mode 100644 index 183d508..0000000 --- a/src/hoc/auxe/auxe.js +++ /dev/null @@ -1,3 +0,0 @@ -const Aux = props => props.children; - -export default Aux; diff --git a/src/hoc/error_handler/error_handler.js b/src/hoc/error_handler/error_handler.js new file mode 100644 index 0000000..21c525d --- /dev/null +++ b/src/hoc/error_handler/error_handler.js @@ -0,0 +1,36 @@ +import React, { Component, Fragment } from "react"; +import { connect } from "react-redux"; + +import Modal from "../../components/shared/ui/modal/modal"; + +class WithErrorHandler extends Component { + + errorConfirmedHandler = () => { + // TO DO.. + }; + + render() { + const { errorMessage, error } = this.props; + console.log(this.props) + + return ( + + + + {errorMessage ? errorMessage : 'Unknown Connection Error'} + + + ) + } +}; + +const mapStateToProps = (state) => { + + return { + error: state.users.error, + errorMessage: state.users.errorMessage, + } + +} + +export default connect(mapStateToProps)(WithErrorHandler); diff --git a/src/hoc/with-error-handler/with-error-handler.js b/src/hoc/with-error-handler/with-error-handler.js deleted file mode 100644 index f306407..0000000 --- a/src/hoc/with-error-handler/with-error-handler.js +++ /dev/null @@ -1,42 +0,0 @@ -import React, { Component } from "react"; -import Modal from "../../components/shared/ui/"; -import Aux from "../auxe/auxe"; - -const withErrorHandler = (WrappedComponent, axios) => { - return class extends Component { - state = { - error: null - }; - - componentWillMount() { - // add axios listener here for clearing any errors TO DO.. - // add axios listener here for errors - } - - componentWillUnmount() { - // console.log("Will Unmount", this.reqInterceptor, this.resInterceptor); TO DO.. - } - - errorConfirmedHandler = () => { - this.setState({ - error: null - }); - }; - - render() { - const { error } = this.state; - console.log("with erorr handler module: ", error); - - return ( - - - {error ? error : null} - - - - ); - } - }; -}; - -export default withErrorHandler; -- GitLab From 32401a513b39741c5a6c0748d5e6745e6baafbe6 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Tue, 9 Oct 2018 16:07:23 +0300 Subject: [PATCH 057/249] NY-3876 error handling moved to a stand alone component --- .../dashboard_users/edit_user/middleware.js | 2 - src/components/dashboard_users/index.js | 22 ++-------- src/components/dashboard_users/middleware.js | 4 +- src/components/dashboard_users/reducer.js | 18 ++++---- src/components/header_bar/middleware.js | 4 +- src/components/shared/ui/modal/modal.js | 1 - src/hoc/error_handler/actions.js | 18 ++++++++ src/hoc/error_handler/error_handler.js | 36 --------------- src/hoc/error_handler/index.js | 44 +++++++++++++++++++ src/hoc/error_handler/reducer.js | 26 +++++++++++ src/store/root_reducers/index.js | 6 ++- 11 files changed, 109 insertions(+), 72 deletions(-) create mode 100644 src/hoc/error_handler/actions.js delete mode 100644 src/hoc/error_handler/error_handler.js create mode 100644 src/hoc/error_handler/index.js create mode 100644 src/hoc/error_handler/reducer.js diff --git a/src/components/dashboard_users/edit_user/middleware.js b/src/components/dashboard_users/edit_user/middleware.js index 9aab797..09d8d25 100644 --- a/src/components/dashboard_users/edit_user/middleware.js +++ b/src/components/dashboard_users/edit_user/middleware.js @@ -3,8 +3,6 @@ import { deliverUpdateUserDataName } from './actions' export function* updateUserDataName(action) { - console.log(action); - const newData = { id: action.id, category: action.category, diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index ea0fa6e..aa54d01 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -2,7 +2,6 @@ import React, { Component, Fragment } from 'react'; import { AgGridReact } from "ag-grid-react"; import { connect } from 'react-redux'; import { bindActionCreators } from 'redux'; -import Snackbar from '@material-ui/core/Snackbar'; import Spinner from './../shared/ui/spinner'; import Grouping from './grouping'; import PageSize from './page_size'; @@ -14,7 +13,7 @@ import "./css/index.css"; import "./css/ag-grid.css"; import "./css/ag-theme-material.css"; -import ErrorHandler from "../../hoc/error_handler/error_handler"; +import ErrorHandler from "../../hoc/error_handler/"; class DashboardUsers extends Component { @@ -103,12 +102,11 @@ class DashboardUsers extends Component { * @const {array} coldef * @const {bool} loading * @const {bool} error - * @const {string} errorMessage * @const {string} rowSelection * @const {number} paginationPageSize * @const {func} paginationNumberFormatter */ - const { users, coldef, loading, error, errorMessage, rowSelection, paginationPageSize } = this.props; + const { users, coldef, loading, error, rowSelection, paginationPageSize } = this.props; let content = null; if (users.length === 0 && loading) { @@ -165,16 +163,6 @@ class DashboardUsers extends Component { { error - // ? {errorMessage !== undefined ? errorMessage : 'Unknown Connection Error'}} - // /> ? : content } @@ -192,8 +180,7 @@ DashboardUsers.propTypes = { users: PropTypes.array.isRequired, coldef: PropTypes.array.isRequired, loading: PropTypes.bool.isRequired, - error: PropTypes.bool.isRequired, - errorMessage: PropTypes.string, + error: PropTypes.bool, paginationPageSize: PropTypes.number.isRequired, }; @@ -203,8 +190,7 @@ const mapStateToProps = (state) => { users: state.users.usersData, coldef: state.users.coldef, loading: state.users.loading, - error: state.users.error, - errorMessage: state.users.errorMessage, + error: state.error.error, rowSelection: state.users.rowSelection, paginationPageSize: state.users.paginationPageSize, } diff --git a/src/components/dashboard_users/middleware.js b/src/components/dashboard_users/middleware.js index 6da0e16..161f9f1 100644 --- a/src/components/dashboard_users/middleware.js +++ b/src/components/dashboard_users/middleware.js @@ -1,6 +1,7 @@ import { call, put } from 'redux-saga/effects'; import { _getUsers } from './../../utils/api'; -import { deliverUsersPayload, failUsers } from './actions'; +import { deliverUsersPayload } from './actions'; +import { failUsers } from './../../hoc/error_handler/actions'; /** * API call saga @@ -12,7 +13,6 @@ export function* getUsers() { yield put(deliverUsersPayload(payloadArray)); } catch(error) { - console.log(error) yield put(failUsers(error)); } } \ No newline at end of file diff --git a/src/components/dashboard_users/reducer.js b/src/components/dashboard_users/reducer.js index a45215b..d15bd85 100644 --- a/src/components/dashboard_users/reducer.js +++ b/src/components/dashboard_users/reducer.js @@ -46,15 +46,15 @@ const deliverUsers = (state, action) => { }) }; -const failUsers = (state, action) => { - const { error } = action; +// const failUsers = (state, action) => { +// const { error } = action; - return updateObject(state, { - errorMessage: error, - error: true, - loading: false - }) -}; +// return updateObject(state, { +// errorMessage: error, +// error: true, +// loading: false +// }) +// }; const pageSizeUpdate = (state, action) => { @@ -86,7 +86,7 @@ export default function users(state = initialState, action) { case GET_USERS: return getUsers(state, action); case DELIVER_USERS: return deliverUsers(state, action); - case FAIL_USERS: return failUsers(state, action); + // case FAIL_USERS: return failUsers(state, action); case PAGE_SIZE_UPDATE: return pageSizeUpdate(state, action); case DELIVER_UPDATE_USER_DATA_CATEGORY_X: return updateUserCategoryX(state, action); diff --git a/src/components/header_bar/middleware.js b/src/components/header_bar/middleware.js index 0790f2a..14c75c7 100644 --- a/src/components/header_bar/middleware.js +++ b/src/components/header_bar/middleware.js @@ -1,6 +1,7 @@ import { call, put } from 'redux-saga/effects'; import { _getAuthUser } from './../../utils/api'; import { deliverAuthedUser } from './actions'; +import { failUsers } from './../../hoc/error_handler/actions'; export function* getAuthedUser() { try { @@ -8,7 +9,6 @@ export function* getAuthedUser() { yield put(deliverAuthedUser(payloadArray)) } catch (error) { - // TODO: build uinified error handler - console.log(error) + yield put(failUsers(error)); } } \ No newline at end of file diff --git a/src/components/shared/ui/modal/modal.js b/src/components/shared/ui/modal/modal.js index d54b780..bf3646f 100644 --- a/src/components/shared/ui/modal/modal.js +++ b/src/components/shared/ui/modal/modal.js @@ -5,7 +5,6 @@ import Backdrop from '../back_drop/back_drop'; class Modal extends Component { shouldComponentUpdate(nextProps, nextState) { - console.log('[Modal] shouldComponentUpdate()'); return nextProps.show !== this.props.show || nextProps.children !== this.props.children; } diff --git a/src/hoc/error_handler/actions.js b/src/hoc/error_handler/actions.js new file mode 100644 index 0000000..23c9335 --- /dev/null +++ b/src/hoc/error_handler/actions.js @@ -0,0 +1,18 @@ +export const FAIL_USERS = 'FAIL_USERS'; +export const REMOVE_ERROR = 'REMOVE_ERROR'; + +export function failUsers(error) { + + return { + type: FAIL_USERS, + error + } +} + +export function removeError() { + + return { + type: REMOVE_ERROR, + error: false + } +} \ No newline at end of file diff --git a/src/hoc/error_handler/error_handler.js b/src/hoc/error_handler/error_handler.js deleted file mode 100644 index 21c525d..0000000 --- a/src/hoc/error_handler/error_handler.js +++ /dev/null @@ -1,36 +0,0 @@ -import React, { Component, Fragment } from "react"; -import { connect } from "react-redux"; - -import Modal from "../../components/shared/ui/modal/modal"; - -class WithErrorHandler extends Component { - - errorConfirmedHandler = () => { - // TO DO.. - }; - - render() { - const { errorMessage, error } = this.props; - console.log(this.props) - - return ( - - - - {errorMessage ? errorMessage : 'Unknown Connection Error'} - - - ) - } -}; - -const mapStateToProps = (state) => { - - return { - error: state.users.error, - errorMessage: state.users.errorMessage, - } - -} - -export default connect(mapStateToProps)(WithErrorHandler); diff --git a/src/hoc/error_handler/index.js b/src/hoc/error_handler/index.js new file mode 100644 index 0000000..35a4d34 --- /dev/null +++ b/src/hoc/error_handler/index.js @@ -0,0 +1,44 @@ +import React, { Component, Fragment } from "react"; +import { connect } from "react-redux"; +import { bindActionCreators } from 'redux'; + +import * as actions from './actions'; +import Modal from "../../components/shared/ui/modal/modal"; + +class ErrorHandler extends Component { + + errorConfirmedHandler = () => { + this.props.removeError(); + }; + + render() { + const { errorMessage, error } = this.props; + + return ( + + + + {typeof errorMessage === 'string' ? errorMessage : 'Unknown Connection Error'} + + + ) + } +}; + +const mapStateToProps = (state) => { + + return { + error: state.error.error, + errorMessage: state.error.errorMessage, + } + +} + +const mapDispatchToProps = (dispatch) => { + + return bindActionCreators({ + ...actions + }, dispatch) +}; + +export default connect(mapStateToProps, mapDispatchToProps)(ErrorHandler); diff --git a/src/hoc/error_handler/reducer.js b/src/hoc/error_handler/reducer.js new file mode 100644 index 0000000..3d357ca --- /dev/null +++ b/src/hoc/error_handler/reducer.js @@ -0,0 +1,26 @@ +import { FAIL_USERS, REMOVE_ERROR } from './actions'; +import { updateObject } from './../update-object/update-object'; + +const failUsers = (state, action) => { + return updateObject(state, { + errorMessage: action.error, + error: true + }) +}; + +const removeError = (state, action) => { + return updateObject (state, { + error: action.error + }) +} + +export default function error(state = {}, action) { + + switch(action.type) { + + case FAIL_USERS: return failUsers(state, action); + case REMOVE_ERROR: return removeError(state, action); + + default: return state; + } +}; \ No newline at end of file diff --git a/src/store/root_reducers/index.js b/src/store/root_reducers/index.js index 591277b..14232e5 100644 --- a/src/store/root_reducers/index.js +++ b/src/store/root_reducers/index.js @@ -1,11 +1,13 @@ import { combineReducers } from 'redux'; import users from './../../components/dashboard_users/reducer'; -import authedUser from './../../components/header_bar/reducer' +import authedUser from './../../components/header_bar/reducer'; +import error from './../../hoc/error_handler/reducer'; export default combineReducers( { users, - authedUser + authedUser, + error } ) \ No newline at end of file -- GitLab From 502dd899e4bc0d35c05a5d535553f6e16f86c782 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Tue, 9 Oct 2018 16:36:10 +0300 Subject: [PATCH 058/249] NY-3874 --- .../dashboard_users/grouping/index.js | 18 +++++++++--------- src/components/dashboard_users/index.js | 6 ++++-- .../dashboard_users/page_size/index.js | 18 +++++++++--------- src/components/dashboard_users/reducer.js | 16 ++-------------- 4 files changed, 24 insertions(+), 34 deletions(-) diff --git a/src/components/dashboard_users/grouping/index.js b/src/components/dashboard_users/grouping/index.js index 3d6c946..0f07c70 100644 --- a/src/components/dashboard_users/grouping/index.js +++ b/src/components/dashboard_users/grouping/index.js @@ -5,23 +5,23 @@ import ListItemText from '@material-ui/core/ListItemText'; import Checkbox from '@material-ui/core/Checkbox'; import * as PropTypes from 'prop-types'; -const Grouping = (props) => { +const Grouping = (props) => { /** - * @const {array} coldef - * @const {function} showHideColumns - * @const {function} toggleGroupingBar - * @const {bool} groupingBarVisible + * @const {array} coldef + * @const {function} showHideColumns + * @const {function} toggleGroupingBar + * @const {bool} groupingBarVisible */ - + const {coldef, showHideColumns, toggleGroupingBar, groupingBarVisible} = props; return ( ) -} +} Grouping.proptypes = { coldef: PropTypes.array.isRequired, diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index aa54d01..7b79a5e 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -106,7 +106,7 @@ class DashboardUsers extends Component { * @const {number} paginationPageSize * @const {func} paginationNumberFormatter */ - const { users, coldef, loading, error, rowSelection, paginationPageSize } = this.props; + const { users, coldef, loading, error, rowSelection, paginationPageSize, selectOptions } = this.props; let content = null; if (users.length === 0 && loading) { @@ -144,7 +144,7 @@ class DashboardUsers extends Component { > - + { @@ -193,6 +194,7 @@ const mapStateToProps = (state) => { error: state.error.error, rowSelection: state.users.rowSelection, paginationPageSize: state.users.paginationPageSize, + selectOptions: state.users.selectOptions } }; diff --git a/src/components/dashboard_users/page_size/index.js b/src/components/dashboard_users/page_size/index.js index dce9fdb..68906fe 100644 --- a/src/components/dashboard_users/page_size/index.js +++ b/src/components/dashboard_users/page_size/index.js @@ -5,21 +5,20 @@ import * as PropTypes from 'prop-types'; /** * @const {function} onPageSizeChanged - * @const {number} paginationPageSize + * @const {number} paginationPageSize + * @const {array} selectOptions */ - const { onPageSizeChanged, paginationPageSize } = props; + const { onPageSizeChanged, paginationPageSize, selectOptions } = props; return (
- + { + selectOptions.map((option, index) => ) + }
@@ -28,7 +27,8 @@ import * as PropTypes from 'prop-types'; PageSize.proptypes = { onPageSizeChanged: PropTypes.func.isRequired, - paginationPageSize: PropTypes.bool.isRequired + paginationPageSize: PropTypes.bool.isRequired, + selectOptions: PropTypes.array.isRequired } export default PageSize; \ No newline at end of file diff --git a/src/components/dashboard_users/reducer.js b/src/components/dashboard_users/reducer.js index d15bd85..e7010df 100644 --- a/src/components/dashboard_users/reducer.js +++ b/src/components/dashboard_users/reducer.js @@ -1,4 +1,4 @@ -import { GET_USERS, DELIVER_USERS, FAIL_USERS, PAGE_SIZE_UPDATE } from './actions'; +import { GET_USERS, DELIVER_USERS, PAGE_SIZE_UPDATE } from './actions'; import { DELIVER_UPDATE_USER_DATA_CATEGORY_X } from './edit_user/actions'; import { updateObject } from '../../hoc/update-object/update-object'; import userAvatar from '../../utils/services/avatar_insertion'; @@ -23,10 +23,9 @@ const initialState = { { headerName: "communicationProviders", field: "communicationProviders", filter: 'agTextColumnFilter' }, ], loading: false, - error: false, rowSelection: "multiple", paginationPageSize: 30, - errorMessage: null + selectOptions: [10, 20, 30, 50, 100] }; const getUsers = (state, action) => { @@ -46,16 +45,6 @@ const deliverUsers = (state, action) => { }) }; -// const failUsers = (state, action) => { -// const { error } = action; - -// return updateObject(state, { -// errorMessage: error, -// error: true, -// loading: false -// }) -// }; - const pageSizeUpdate = (state, action) => { return updateObject(state, { @@ -86,7 +75,6 @@ export default function users(state = initialState, action) { case GET_USERS: return getUsers(state, action); case DELIVER_USERS: return deliverUsers(state, action); - // case FAIL_USERS: return failUsers(state, action); case PAGE_SIZE_UPDATE: return pageSizeUpdate(state, action); case DELIVER_UPDATE_USER_DATA_CATEGORY_X: return updateUserCategoryX(state, action); -- GitLab From ab3ba293f0effbd1b470b3c41121980fe962816d Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Tue, 9 Oct 2018 16:57:54 +0300 Subject: [PATCH 059/249] NY-3871 --- src/components/shared/ui/back_drop/back_drop.js | 6 ++++++ src/components/shared/ui/modal/modal.js | 12 +++++++++--- src/hoc/error_handler/actions.js | 3 +-- src/hoc/error_handler/index.js | 8 +++++++- src/hoc/error_handler/reducer.js | 10 +++++++--- src/utils/api/index.js | 4 ++-- 6 files changed, 32 insertions(+), 11 deletions(-) diff --git a/src/components/shared/ui/back_drop/back_drop.js b/src/components/shared/ui/back_drop/back_drop.js index 0f46a90..2501980 100644 --- a/src/components/shared/ui/back_drop/back_drop.js +++ b/src/components/shared/ui/back_drop/back_drop.js @@ -1,6 +1,8 @@ import React from 'react'; import './back_drop.css'; +import PropTypes from "prop-types"; + const backdrop = (props) => ( props.show @@ -8,4 +10,8 @@ const backdrop = (props) => ( : null ); +backdrop.propTypes = { + clicked: PropTypes.func.isRequired +}; + export default backdrop; \ No newline at end of file diff --git a/src/components/shared/ui/modal/modal.js b/src/components/shared/ui/modal/modal.js index bf3646f..6d6fbe8 100644 --- a/src/components/shared/ui/modal/modal.js +++ b/src/components/shared/ui/modal/modal.js @@ -1,12 +1,13 @@ import React, { Component, Fragment } from 'react'; -import './modal.css'; import Backdrop from '../back_drop/back_drop'; +import PropTypes from "prop-types"; +import './modal.css'; class Modal extends Component { shouldComponentUpdate(nextProps, nextState) { return nextProps.show !== this.props.show || nextProps.children !== this.props.children; - } + }; render() { const { show, modalClosed } = this.props; @@ -24,7 +25,12 @@ class Modal extends Component {
) - } + }; } +Modal.propTypes = { + show: PropTypes.bool.isRequired, + modalClosed: PropTypes.func.isRequired +}; + export default Modal; \ No newline at end of file diff --git a/src/hoc/error_handler/actions.js b/src/hoc/error_handler/actions.js index 23c9335..2d833f6 100644 --- a/src/hoc/error_handler/actions.js +++ b/src/hoc/error_handler/actions.js @@ -12,7 +12,6 @@ export function failUsers(error) { export function removeError() { return { - type: REMOVE_ERROR, - error: false + type: REMOVE_ERROR } } \ No newline at end of file diff --git a/src/hoc/error_handler/index.js b/src/hoc/error_handler/index.js index 35a4d34..5524d00 100644 --- a/src/hoc/error_handler/index.js +++ b/src/hoc/error_handler/index.js @@ -4,6 +4,7 @@ import { bindActionCreators } from 'redux'; import * as actions from './actions'; import Modal from "../../components/shared/ui/modal/modal"; +import PropTypes from "prop-types"; class ErrorHandler extends Component { @@ -25,6 +26,11 @@ class ErrorHandler extends Component { } }; +ErrorHandler.propTypes = { + errorMessage: PropTypes.string.isRequired, + error: PropTypes.bool.isRequired +}; + const mapStateToProps = (state) => { return { @@ -35,7 +41,7 @@ const mapStateToProps = (state) => { } const mapDispatchToProps = (dispatch) => { - + return bindActionCreators({ ...actions }, dispatch) diff --git a/src/hoc/error_handler/reducer.js b/src/hoc/error_handler/reducer.js index 3d357ca..cc2e339 100644 --- a/src/hoc/error_handler/reducer.js +++ b/src/hoc/error_handler/reducer.js @@ -1,6 +1,10 @@ import { FAIL_USERS, REMOVE_ERROR } from './actions'; import { updateObject } from './../update-object/update-object'; +initialState = { + error: false +}; + const failUsers = (state, action) => { return updateObject(state, { errorMessage: action.error, @@ -10,12 +14,12 @@ const failUsers = (state, action) => { const removeError = (state, action) => { return updateObject (state, { - error: action.error + error: false }) } -export default function error(state = {}, action) { - +export default function error(state = initialState, action) { + switch(action.type) { case FAIL_USERS: return failUsers(state, action); diff --git a/src/utils/api/index.js b/src/utils/api/index.js index 3a4f0c1..6934ae4 100644 --- a/src/utils/api/index.js +++ b/src/utils/api/index.js @@ -2,7 +2,7 @@ import { authUser, users } from './_DATA' export function _getUsers() { return new Promise((res, rej) => { - setTimeout(() => res(users), 1000) + setTimeout(() => rej(), 1000) }) } @@ -10,4 +10,4 @@ export function _getAuthUser() { return new Promise((res, rej) => { setTimeout(() => res(authUser), 100) }) -} \ No newline at end of file +} \ No newline at end of file -- GitLab From 95ce909b8ee4735dbd57d4a7e03cfee2c2fbe235 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Tue, 9 Oct 2018 17:03:55 +0300 Subject: [PATCH 060/249] NY-3876 error handler fix --- src/hoc/error_handler/reducer.js | 2 +- src/utils/api/index.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/hoc/error_handler/reducer.js b/src/hoc/error_handler/reducer.js index cc2e339..7c32e6c 100644 --- a/src/hoc/error_handler/reducer.js +++ b/src/hoc/error_handler/reducer.js @@ -1,7 +1,7 @@ import { FAIL_USERS, REMOVE_ERROR } from './actions'; import { updateObject } from './../update-object/update-object'; -initialState = { +const initialState = { error: false }; diff --git a/src/utils/api/index.js b/src/utils/api/index.js index 6934ae4..68afd72 100644 --- a/src/utils/api/index.js +++ b/src/utils/api/index.js @@ -2,7 +2,7 @@ import { authUser, users } from './_DATA' export function _getUsers() { return new Promise((res, rej) => { - setTimeout(() => rej(), 1000) + setTimeout(() => res(users), 1000) }) } -- GitLab From 82b293829280be249fb5d748c7c79f1b00526dd9 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Wed, 10 Oct 2018 13:08:29 +0300 Subject: [PATCH 061/249] NY-4306 initial mock api server communication added --- package-lock.json | 11885 ++++++++++++++++++++++ package.json | 1 + src/components/header_bar/middleware.js | 8 +- src/utils/api/mock_api_requests.js | 19 + 4 files changed, 11910 insertions(+), 3 deletions(-) create mode 100644 package-lock.json create mode 100644 src/utils/api/mock_api_requests.js diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..39c4329 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,11885 @@ +{ + "name": "nynja_admin", + "version": "0.1.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/runtime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.0.0.tgz", + "integrity": "sha512-7hGhzlcmg01CvH1EHdSPVXYX1aJ8KCEyz6I9xYIi/asDtzBPMyMhVibhM/K6g/5qnKBwjZtp10bNZIEFTRW1MA==", + "requires": { + "regenerator-runtime": "^0.12.0" + } + }, + "@material-ui/core": { + "version": "3.1.2", + "requires": { + "@babel/runtime": "7.0.0", + "@types/jss": "^9.5.6", + "@types/react-transition-group": "^2.0.8", + "brcast": "^3.0.1", + "classnames": "^2.2.5", + "csstype": "^2.5.2", + "debounce": "^1.1.0", + "deepmerge": "^2.0.1", + "dom-helpers": "^3.2.1", + "hoist-non-react-statics": "^2.5.0", + "is-plain-object": "^2.0.4", + "jss": "^9.3.3", + "jss-camel-case": "^6.0.0", + "jss-default-unit": "^8.0.2", + "jss-global": "^3.0.0", + "jss-nested": "^6.0.1", + "jss-props-sort": "^6.0.0", + "jss-vendor-prefixer": "^7.0.0", + "keycode": "^2.1.9", + "normalize-scroll-left": "^0.1.2", + "popper.js": "^1.14.1", + "prop-types": "^15.6.0", + "react-event-listener": "^0.6.2", + "react-jss": "^8.1.0", + "react-transition-group": "^2.2.1", + "recompose": "0.28.0 - 0.30.0", + "warning": "^4.0.1" + }, + "dependencies": { + "prop-types": { + "version": "15.6.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", + "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", + "requires": { + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" + } + }, + "warning": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.2.tgz", + "integrity": "sha512-wbTp09q/9C+jJn4KKJfJfoS6VleK/Dti0yqWSm6KMvJ4MRCXFQNapHuJXutJIrWV0Cf4AhTdeIe4qdKHR1+Hug==", + "requires": { + "loose-envify": "^1.0.0" + } + } + } + }, + "@material-ui/icons": { + "version": "3.0.1", + "requires": { + "@babel/runtime": "7.0.0", + "recompose": "^0.29.0" + }, + "dependencies": { + "recompose": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/recompose/-/recompose-0.29.0.tgz", + "integrity": "sha512-J/qLXNU4W+AeHCDR70ajW8eMd1uroqZaECTj6qqDLPMILz3y0EzpYlvrnxKB9DnqcngWrtGwjXY9JeXaW9kS1A==", + "requires": { + "@babel/runtime": "^7.0.0", + "change-emitter": "^0.1.2", + "fbjs": "^0.8.1", + "hoist-non-react-statics": "^2.3.1", + "react-lifecycles-compat": "^3.0.2", + "symbol-observable": "^1.0.4" + } + } + } + }, + "@types/jss": { + "version": "9.5.6", + "resolved": "https://registry.npmjs.org/@types/jss/-/jss-9.5.6.tgz", + "integrity": "sha512-7TWmR5y1jYG4ka4wTZt65RR0kw4WgALFUWktQIWbLnDd6/z/0SQZ/4+UeH0rhdp+HEdIfmzPBH0VwE/4Z9Evzw==", + "requires": { + "csstype": "^2.0.0", + "indefinite-observable": "^1.0.1" + } + }, + "@types/node": { + "version": "10.11.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.11.6.tgz", + "integrity": "sha512-fnA7yvqg3oKQDb3skBif9w5RRKVKAaeKeNuLzZL37XcSiWL4IoSXQnnbchR3UnBu2EMLHBip7ZVEkqoIVBP8QQ==" + }, + "@types/prop-types": { + "version": "15.5.6", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.5.6.tgz", + "integrity": "sha512-ZBFR7TROLVzCkswA3Fmqq+IIJt62/T7aY/Dmz+QkU7CaW2QFqAitCE8Ups7IzmGhcN1YWMBT4Qcoc07jU9hOJQ==" + }, + "@types/react": { + "version": "16.4.16", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.4.16.tgz", + "integrity": "sha512-lxyoipLWweAnLnSsV4Ho2NAZTKKmxeYgkTQ6PaDiPDU9JJBUY2zJVVGiK1smzYv8+ZgbqEmcm5xM74GCpunSEA==", + "requires": { + "@types/prop-types": "*", + "csstype": "^2.2.0" + } + }, + "@types/react-transition-group": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-2.0.14.tgz", + "integrity": "sha512-pa7qB0/mkhwWMBFoXhX8BcntK8G4eQl4sIfSrJCxnivTYRQWjOWf2ClR9bWdm0EUFBDHzMbKYS+QYfDtBzkY4w==", + "requires": { + "@types/react": "*" + } + }, + "abab": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz", + "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=" + }, + "accepts": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", + "requires": { + "mime-types": "~2.1.18", + "negotiator": "0.6.1" + } + }, + "acorn": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", + "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==" + }, + "acorn-dynamic-import": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", + "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", + "requires": { + "acorn": "^4.0.3" + }, + "dependencies": { + "acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=" + } + } + }, + "acorn-globals": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz", + "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=", + "requires": { + "acorn": "^4.0.4" + }, + "dependencies": { + "acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=" + } + } + }, + "acorn-jsx": { + "version": "3.0.1", + "resolved": "http://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "requires": { + "acorn": "^3.0.4" + }, + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "http://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=" + } + } + }, + "address": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/address/-/address-1.0.3.tgz", + "integrity": "sha512-z55ocwKBRLryBs394Sm3ushTtBeg6VAeuku7utSoSnsJKvKcnXFIyC6vh27n3rXyxSgkJBBCAvyOn7gSUcTYjg==" + }, + "ag-grid-community": { + "version": "19.0.0" + }, + "ag-grid-react": { + "version": "19.0.0", + "requires": { + "prop-types": "15.6.0" + }, + "dependencies": { + "prop-types": { + "version": "15.6.0", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.0.tgz", + "integrity": "sha1-zq8IMCL8RrSjX2nhPvda7Q1jmFY=", + "requires": { + "fbjs": "^0.8.16", + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" + } + } + } + }, + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "ajv-keywords": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", + "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=" + }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "requires": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + } + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=" + }, + "ansi-align": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", + "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "requires": { + "string-width": "^2.0.0" + } + }, + "ansi-escapes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", + "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==" + }, + "ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=" + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "requires": { + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" + } + }, + "append-transform": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", + "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", + "requires": { + "default-require-extensions": "^1.0.0" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "aria-query": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-0.7.1.tgz", + "integrity": "sha1-Jsu1r/ZBRLCoJb4YRuCxbPoAsR4=", + "requires": { + "ast-types-flow": "0.0.7", + "commander": "^2.11.0" + } + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + }, + "array-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", + "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=" + }, + "array-filter": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", + "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=" + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" + }, + "array-flatten": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.1.tgz", + "integrity": "sha1-Qmu52oQJDBg42BLIFQryCoMx4pY=" + }, + "array-includes": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", + "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.7.0" + } + }, + "array-map": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", + "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=" + }, + "array-reduce": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", + "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=" + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=" + }, + "array.prototype.flat": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.1.tgz", + "integrity": "sha512-rVqIs330nLJvfC7JqYvEWwqVr5QjYF1ib02i3YJtR/fICO6527Tjpc/e4Mvmxh3GIePPreRXMdaGyC99YphWEw==", + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.10.0", + "function-bind": "^1.1.1" + } + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "assert": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "requires": { + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + }, + "ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=" + }, + "async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", + "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", + "requires": { + "lodash": "^4.17.10" + } + }, + "async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + }, + "autoprefixer": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-7.1.6.tgz", + "integrity": "sha512-C9yv/UF3X+eJTi/zvfxuyfxmLibYrntpF3qoJYrMeQwgUJOZrZvpJiMG2FMQ3qnhWtF/be4pYONBBw95ZGe3vA==", + "requires": { + "browserslist": "^2.5.1", + "caniuse-lite": "^1.0.30000748", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^6.0.13", + "postcss-value-parser": "^3.2.3" + } + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + }, + "aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" + }, + "axios": { + "version": "0.18.0", + "resolved": "http://registry.npmjs.org/axios/-/axios-0.18.0.tgz", + "integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=", + "requires": { + "follow-redirects": "^1.3.0", + "is-buffer": "^1.1.5" + } + }, + "axobject-query": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-0.1.0.tgz", + "integrity": "sha1-YvWdvFnJ+SQnWco0mWDnov48NsA=", + "requires": { + "ast-types-flow": "0.0.7" + } + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + }, + "dependencies": { + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" + } + } + }, + "babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "requires": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + } + }, + "babel-eslint": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-7.2.3.tgz", + "integrity": "sha1-sv4tgBJkcPXBlELcdXJTqJdxCCc=", + "requires": { + "babel-code-frame": "^6.22.0", + "babel-traverse": "^6.23.1", + "babel-types": "^6.23.0", + "babylon": "^6.17.0" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "requires": { + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" + } + }, + "babel-helper-builder-binary-assignment-operator-visitor": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", + "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", + "requires": { + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-builder-react-jsx": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", + "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", + "requires": { + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "esutils": "^2.0.2" + } + }, + "babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "requires": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-define-map": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", + "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-helper-explode-assignable-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", + "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "requires": { + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-optimise-call-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", + "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-regex": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", + "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "requires": { + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-helper-remap-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", + "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-replace-supers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", + "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "requires": { + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-jest": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-20.0.3.tgz", + "integrity": "sha1-5KA7E9wQOJ4UD8ZF0J/8TO0wFnE=", + "requires": { + "babel-core": "^6.0.0", + "babel-plugin-istanbul": "^4.0.0", + "babel-preset-jest": "^20.0.3" + } + }, + "babel-loader": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.2.tgz", + "integrity": "sha512-jRwlFbINAeyDStqK6Dd5YuY0k5YuzQUvlz2ZamuXrXmxav3pNqe9vfJ402+2G+OmlJSXxCOpB6Uz0INM7RQe2A==", + "requires": { + "find-cache-dir": "^1.0.0", + "loader-utils": "^1.0.2", + "mkdirp": "^0.5.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", + "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-dynamic-import-node": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-1.1.0.tgz", + "integrity": "sha512-tTfZbM9Ecwj3GK50mnPrUpinTwA4xXmDiQGCk/aBYbvl1+X8YqldK86wZ1owVJ4u3mrKbRlXMma80J18qwiaTQ==", + "requires": { + "babel-plugin-syntax-dynamic-import": "^6.18.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" + } + }, + "babel-plugin-istanbul": { + "version": "4.1.6", + "resolved": "http://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz", + "integrity": "sha512-PWP9FQ1AhZhS01T/4qLSKoHGY/xvkZdVBGlKM/HuxxS3+sC66HhTNR7+MpbO/so/cz/wY94MeSWJuP1hXIPfwQ==", + "requires": { + "babel-plugin-syntax-object-rest-spread": "^6.13.0", + "find-up": "^2.1.0", + "istanbul-lib-instrument": "^1.10.1", + "test-exclude": "^4.2.1" + } + }, + "babel-plugin-jest-hoist": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-20.0.3.tgz", + "integrity": "sha1-r+3IU70/jcNUjqZx++adA8wsF2c=" + }, + "babel-plugin-syntax-async-functions": { + "version": "6.13.0", + "resolved": "http://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", + "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=" + }, + "babel-plugin-syntax-class-properties": { + "version": "6.13.0", + "resolved": "http://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz", + "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=" + }, + "babel-plugin-syntax-dynamic-import": { + "version": "6.18.0", + "resolved": "http://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz", + "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=" + }, + "babel-plugin-syntax-exponentiation-operator": { + "version": "6.13.0", + "resolved": "http://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=" + }, + "babel-plugin-syntax-flow": { + "version": "6.18.0", + "resolved": "http://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz", + "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=" + }, + "babel-plugin-syntax-jsx": { + "version": "6.18.0", + "resolved": "http://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", + "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=" + }, + "babel-plugin-syntax-object-rest-spread": { + "version": "6.13.0", + "resolved": "http://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=" + }, + "babel-plugin-syntax-trailing-function-commas": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=" + }, + "babel-plugin-transform-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", + "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "requires": { + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-class-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz", + "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=", + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-plugin-syntax-class-properties": "^6.8.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-block-scoping": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", + "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", + "requires": { + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-plugin-transform-es2015-classes": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "requires": { + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-duplicate-keys": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", + "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-modules-amd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "requires": { + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", + "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", + "requires": { + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-systemjs": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", + "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "requires": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-modules-umd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", + "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "requires": { + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-object-super": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "requires": { + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "requires": { + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "requires": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "requires": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" + } + }, + "babel-plugin-transform-exponentiation-operator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", + "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", + "requires": { + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-flow-strip-types": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", + "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", + "requires": { + "babel-plugin-syntax-flow": "^6.18.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-object-rest-spread": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", + "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", + "requires": { + "babel-plugin-syntax-object-rest-spread": "^6.8.0", + "babel-runtime": "^6.26.0" + } + }, + "babel-plugin-transform-react-constant-elements": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-constant-elements/-/babel-plugin-transform-react-constant-elements-6.23.0.tgz", + "integrity": "sha1-LxGb9NLN1F65uqrldAU8YE9hR90=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-react-display-name": { + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", + "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-react-jsx": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", + "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", + "requires": { + "babel-helper-builder-react-jsx": "^6.24.1", + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-react-jsx-self": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", + "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", + "requires": { + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-react-jsx-source": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", + "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", + "requires": { + "babel-plugin-syntax-jsx": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-regenerator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", + "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", + "requires": { + "regenerator-transform": "^0.10.0" + } + }, + "babel-plugin-transform-runtime": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz", + "integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-preset-env": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.6.1.tgz", + "integrity": "sha512-W6VIyA6Ch9ePMI7VptNn2wBM6dbG0eSz25HEiL40nQXCsXGTGZSTZu1Iap+cj3Q0S5a7T9+529l/5Bkvd+afNA==", + "requires": { + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-classes": "^6.23.0", + "babel-plugin-transform-es2015-computed-properties": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", + "babel-plugin-transform-es2015-for-of": "^6.23.0", + "babel-plugin-transform-es2015-function-name": "^6.22.0", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-umd": "^6.23.0", + "babel-plugin-transform-es2015-object-super": "^6.22.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", + "babel-plugin-transform-exponentiation-operator": "^6.22.0", + "babel-plugin-transform-regenerator": "^6.22.0", + "browserslist": "^2.1.2", + "invariant": "^2.2.2", + "semver": "^5.3.0" + } + }, + "babel-preset-flow": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", + "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", + "requires": { + "babel-plugin-transform-flow-strip-types": "^6.22.0" + } + }, + "babel-preset-jest": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-20.0.3.tgz", + "integrity": "sha1-y6yq3stdaJyh4d4TYOv8ZoYsF4o=", + "requires": { + "babel-plugin-jest-hoist": "^20.0.3" + } + }, + "babel-preset-react": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", + "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", + "requires": { + "babel-plugin-syntax-jsx": "^6.3.13", + "babel-plugin-transform-react-display-name": "^6.23.0", + "babel-plugin-transform-react-jsx": "^6.24.1", + "babel-plugin-transform-react-jsx-self": "^6.22.0", + "babel-plugin-transform-react-jsx-source": "^6.22.0", + "babel-preset-flow": "^6.23.0" + } + }, + "babel-preset-react-app": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-3.1.2.tgz", + "integrity": "sha512-/sh5Qd5T08PYa6t4kuCdKh9tXp6/m/Jwyx7PJTqugsYMfsDUJMlBXOs5EwFODHprzjWrmQ0SydnMZu9FY4MZYg==", + "requires": { + "babel-plugin-dynamic-import-node": "1.1.0", + "babel-plugin-syntax-dynamic-import": "6.18.0", + "babel-plugin-transform-class-properties": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-object-rest-spread": "6.26.0", + "babel-plugin-transform-react-constant-elements": "6.23.0", + "babel-plugin-transform-react-jsx": "6.24.1", + "babel-plugin-transform-react-jsx-self": "6.22.0", + "babel-plugin-transform-react-jsx-source": "6.22.0", + "babel-plugin-transform-regenerator": "6.26.0", + "babel-plugin-transform-runtime": "6.23.0", + "babel-preset-env": "1.6.1", + "babel-preset-react": "6.24.1" + } + }, + "babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "requires": { + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + } + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "requires": { + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "requires": { + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "requires": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" + }, + "balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, + "base64-js": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", + "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==" + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "optional": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "big.js": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" + }, + "binary-extensions": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.12.0.tgz", + "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==" + }, + "bluebird": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.2.tgz", + "integrity": "sha512-dhHTWMI7kMx5whMQntl7Vr9C6BvV10lFXDAasnqnrMYhXVCzzk6IO9Fo2L75jXHT07WrOngL1WDXOp+yYS91Yg==" + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + }, + "body-parser": { + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", + "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", + "requires": { + "bytes": "3.0.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.1", + "http-errors": "~1.6.2", + "iconv-lite": "0.4.19", + "on-finished": "~2.3.0", + "qs": "6.5.1", + "raw-body": "2.3.2", + "type-is": "~1.6.15" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" + }, + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" + } + } + }, + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "requires": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" + }, + "boxen": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", + "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", + "requires": { + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + }, + "dependencies": { + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + } + } + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "brcast": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/brcast/-/brcast-3.0.1.tgz", + "integrity": "sha512-eI3yqf9YEqyGl9PCNTR46MGvDylGtaHjalcz6Q3fAPnP/PhpKkkve52vFdfGpwp4VUvK6LUr4TQN+2stCrEwTg==" + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "browser-resolve": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", + "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", + "requires": { + "resolve": "1.1.7" + }, + "dependencies": { + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=" + } + } + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "http://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "requires": { + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", + "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "requires": { + "bn.js": "^4.1.1", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.2", + "elliptic": "^6.0.0", + "inherits": "^2.0.1", + "parse-asn1": "^5.0.0" + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "2.11.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.11.3.tgz", + "integrity": "sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==", + "requires": { + "caniuse-lite": "^1.0.30000792", + "electron-to-chromium": "^1.3.30" + } + }, + "bser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.0.0.tgz", + "integrity": "sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk=", + "requires": { + "node-int64": "^0.4.0" + } + }, + "buffer": { + "version": "4.9.1", + "resolved": "http://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "requires": { + "callsites": "^0.2.0" + } + }, + "callsites": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=" + }, + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" + } + } + }, + "caniuse-api": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz", + "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=", + "requires": { + "browserslist": "^1.3.6", + "caniuse-db": "^1.0.30000529", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + }, + "dependencies": { + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "requires": { + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" + } + } + } + }, + "caniuse-db": { + "version": "1.0.30000890", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000890.tgz", + "integrity": "sha512-aO5uw1Taw8GkNMMXIWOz/WJz3y6tR1ETUAdH/pvO5EoJ3I1Po9vNJd9aMjY1GKucS/OXWMiQbXRbk3O1sgCbRA==" + }, + "caniuse-lite": { + "version": "1.0.30000890", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000890.tgz", + "integrity": "sha512-4NI3s4Y6ROm+SgZN5sLUG4k7nVWQnedis3c/RWkynV5G6cHSY7+a8fwFyn2yoBDE3E6VswhTNNwR3PvzGqlTkg==" + }, + "capture-stack-trace": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", + "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==" + }, + "case-sensitive-paths-webpack-plugin": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.1.1.tgz", + "integrity": "sha1-PSnO2MHxJL9vU4Rvs/WJRzH9yQk=" + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "requires": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "change-emitter": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/change-emitter/-/change-emitter-0.1.6.tgz", + "integrity": "sha1-6LL+PX8at9aaMhma/5HqaTFAlRU=" + }, + "chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=" + }, + "cheerio": { + "version": "1.0.0-rc.2", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.2.tgz", + "integrity": "sha1-S59TqBsn5NXawxwP/Qz6A8xoMNs=", + "requires": { + "css-select": "~1.2.0", + "dom-serializer": "~0.1.0", + "entities": "~1.1.1", + "htmlparser2": "^3.9.1", + "lodash": "^4.15.0", + "parse5": "^3.0.1" + } + }, + "chokidar": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", + "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.0", + "braces": "^2.3.0", + "fsevents": "^1.2.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "lodash.debounce": "^4.0.8", + "normalize-path": "^2.1.1", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0", + "upath": "^1.0.5" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + } + } + }, + "ci-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", + "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==" + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "circular-json": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", + "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==" + }, + "clap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz", + "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==", + "requires": { + "chalk": "^1.1.3" + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "classnames": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", + "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" + }, + "clean-css": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", + "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", + "requires": { + "source-map": "~0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "cli-boxes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", + "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=" + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "coa": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz", + "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=", + "requires": { + "q": "^1.1.2" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color": { + "version": "0.11.4", + "resolved": "http://registry.npmjs.org/color/-/color-0.11.4.tgz", + "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=", + "requires": { + "clone": "^1.0.2", + "color-convert": "^1.3.0", + "color-string": "^0.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "color-string": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz", + "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=", + "requires": { + "color-name": "^1.0.0" + } + }, + "colormin": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", + "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=", + "requires": { + "color": "^0.11.0", + "css-color-names": "0.0.4", + "has": "^1.0.1" + } + }, + "colors": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.5.1.tgz", + "integrity": "sha1-fQAj6usVTo7p/Oddy5I9DtFmd3Q=" + }, + "combined-stream": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", + "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + }, + "compressible": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.15.tgz", + "integrity": "sha512-4aE67DL33dSW9gw4CI2H/yTxqHLNcxp0yS6jB+4h+wr3e43+1z7vm0HU9qXOH8j+qjKuL8+UtkOxYQSMq60Ylw==", + "requires": { + "mime-db": ">= 1.36.0 < 2" + } + }, + "compression": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.3.tgz", + "integrity": "sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==", + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.14", + "debug": "2.6.9", + "on-headers": "~1.0.1", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "configstore": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", + "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", + "requires": { + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" + } + }, + "connect-history-api-fallback": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", + "integrity": "sha1-sGhzk0vF40T+9hGhlqb6rgruAVo=" + }, + "console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "requires": { + "date-now": "^0.1.4" + } + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" + }, + "contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=" + }, + "content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "content-type-parser": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/content-type-parser/-/content-type-parser-1.0.2.tgz", + "integrity": "sha512-lM4l4CnMEwOLHAHr/P6MEZwZFPJFtAAKgL6pogbXmVZggIqXhdB6RbBtPOTsw2FcXwYhehRGERJmRrjOiIB8pQ==" + }, + "convert-source-map": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", + "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, + "core-js": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cosmiconfig": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz", + "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==", + "requires": { + "is-directory": "^0.3.1", + "js-yaml": "^3.4.3", + "minimist": "^1.2.0", + "object-assign": "^4.1.0", + "os-homedir": "^1.0.1", + "parse-json": "^2.2.0", + "require-from-string": "^1.1.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + } + } + }, + "create-ecdh": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", + "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" + } + }, + "create-error-class": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", + "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", + "requires": { + "capture-stack-trace": "^1.0.0" + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "crypto-random-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=" + }, + "css-color-names": { + "version": "0.0.4", + "resolved": "http://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=" + }, + "css-loader": { + "version": "0.28.7", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.7.tgz", + "integrity": "sha512-GxMpax8a/VgcfRrVy0gXD6yLd5ePYbXX/5zGgTVYp4wXtJklS8Z2VaUArJgc//f6/Dzil7BaJObdSv8eKKCPgg==", + "requires": { + "babel-code-frame": "^6.11.0", + "css-selector-tokenizer": "^0.7.0", + "cssnano": ">=2.6.1 <4", + "icss-utils": "^2.1.0", + "loader-utils": "^1.0.2", + "lodash.camelcase": "^4.3.0", + "object-assign": "^4.0.1", + "postcss": "^5.0.6", + "postcss-modules-extract-imports": "^1.0.0", + "postcss-modules-local-by-default": "^1.0.1", + "postcss-modules-scope": "^1.0.0", + "postcss-modules-values": "^1.1.0", + "postcss-value-parser": "^3.3.0", + "source-list-map": "^2.0.0" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "requires": { + "boolbase": "~1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "~1.0.1" + } + }, + "css-selector-tokenizer": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz", + "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=", + "requires": { + "cssesc": "^0.1.0", + "fastparse": "^1.1.1", + "regexpu-core": "^1.0.0" + }, + "dependencies": { + "regexpu-core": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", + "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", + "requires": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } + } + } + }, + "css-vendor": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-0.3.8.tgz", + "integrity": "sha1-ZCHP0wNM5mT+dnOXL9ARn8KJQfo=", + "requires": { + "is-in-browser": "^1.0.2" + } + }, + "css-what": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz", + "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=" + }, + "cssesc": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", + "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=" + }, + "cssnano": { + "version": "3.10.0", + "resolved": "http://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz", + "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=", + "requires": { + "autoprefixer": "^6.3.1", + "decamelize": "^1.1.2", + "defined": "^1.0.0", + "has": "^1.0.1", + "object-assign": "^4.0.1", + "postcss": "^5.0.14", + "postcss-calc": "^5.2.0", + "postcss-colormin": "^2.1.8", + "postcss-convert-values": "^2.3.4", + "postcss-discard-comments": "^2.0.4", + "postcss-discard-duplicates": "^2.0.1", + "postcss-discard-empty": "^2.0.1", + "postcss-discard-overridden": "^0.1.1", + "postcss-discard-unused": "^2.2.1", + "postcss-filter-plugins": "^2.0.0", + "postcss-merge-idents": "^2.1.5", + "postcss-merge-longhand": "^2.0.1", + "postcss-merge-rules": "^2.0.3", + "postcss-minify-font-values": "^1.0.2", + "postcss-minify-gradients": "^1.0.1", + "postcss-minify-params": "^1.0.4", + "postcss-minify-selectors": "^2.0.4", + "postcss-normalize-charset": "^1.1.0", + "postcss-normalize-url": "^3.0.7", + "postcss-ordered-values": "^2.1.0", + "postcss-reduce-idents": "^2.2.2", + "postcss-reduce-initial": "^1.0.0", + "postcss-reduce-transforms": "^1.0.3", + "postcss-svgo": "^2.1.1", + "postcss-unique-selectors": "^2.0.2", + "postcss-value-parser": "^3.2.3", + "postcss-zindex": "^2.0.1" + }, + "dependencies": { + "autoprefixer": { + "version": "6.7.7", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", + "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", + "requires": { + "browserslist": "^1.7.6", + "caniuse-db": "^1.0.30000634", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^5.2.16", + "postcss-value-parser": "^3.2.3" + } + }, + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "requires": { + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "csso": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", + "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=", + "requires": { + "clap": "^1.0.9", + "source-map": "^0.5.3" + } + }, + "cssom": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.4.tgz", + "integrity": "sha512-+7prCSORpXNeR4/fUP3rL+TzqtiFfhMvTd7uEqMdgPvLPt4+uzFUeufx5RHjGTACCargg/DiEt/moMQmvnfkog==" + }, + "cssstyle": { + "version": "0.2.37", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz", + "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=", + "requires": { + "cssom": "0.3.x" + } + }, + "csstype": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.5.7.tgz", + "integrity": "sha512-Nt5VDyOTIIV4/nRFswoCKps1R5CD1hkiyjBE9/thNaNZILLEviVw9yWQw15+O+CpNjQKB/uvdcxFFOrSflY3Yw==" + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "requires": { + "array-find-index": "^1.0.1" + } + }, + "d": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", + "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", + "requires": { + "es5-ext": "^0.10.9" + } + }, + "damerau-levenshtein": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz", + "integrity": "sha1-AxkcQyy27qFou3fzpV/9zLiXhRQ=" + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=" + }, + "debounce": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.0.tgz", + "integrity": "sha512-mYtLl1xfZLi1m4RtQYlZgJUNQjl4ZxVnHzIR8nLLgi4q1YT8o/WM+MK/f8yfcc9s5Ir5zRaPZyZU6xs1Syoocg==" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, + "deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=" + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + }, + "deepmerge": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.0.tgz", + "integrity": "sha512-7iuEZ5j20aoFhiiaFZiSipk23nPl+UGKsglMJ+dy27HTpQ3wm2tj2esD/UHXlrqh5o6p6MW7m+fYSUz4JvuqVQ==" + }, + "default-require-extensions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", + "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", + "requires": { + "strip-bom": "^2.0.0" + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, + "defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" + }, + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "requires": { + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "des.js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", + "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "requires": { + "repeating": "^2.0.0" + } + }, + "detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", + "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==" + }, + "detect-port-alt": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", + "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", + "requires": { + "address": "^1.0.1", + "debug": "^2.6.0" + } + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==" + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "http://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "discontinuous-range": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz", + "integrity": "sha1-44Mx8IRLukm5qctxx3FYWqsbxlo=" + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=" + }, + "dns-packet": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", + "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", + "requires": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "requires": { + "buffer-indexof": "^1.0.0" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "requires": { + "esutils": "^2.0.2" + } + }, + "dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "requires": { + "utila": "~0.4" + } + }, + "dom-helpers": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.3.1.tgz", + "integrity": "sha512-2Sm+JaYn74OiTM2wHvxJOo3roiq/h25Yi69Fqk269cNUwIXsCvATB6CRSFC9Am/20G2b28hGv/+7NiWydIrPvg==" + }, + "dom-serializer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", + "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", + "requires": { + "domelementtype": "~1.1.1", + "entities": "~1.1.1" + }, + "dependencies": { + "domelementtype": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", + "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=" + } + } + }, + "dom-urls": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/dom-urls/-/dom-urls-1.1.0.tgz", + "integrity": "sha1-AB3fgWKM0ecGElxxdvU8zsVdkY4=", + "requires": { + "urijs": "^1.16.1" + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" + }, + "domelementtype": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", + "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=" + }, + "domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "dot-prop": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "requires": { + "is-obj": "^1.0.0" + } + }, + "dotenv": { + "version": "4.0.0", + "resolved": "http://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz", + "integrity": "sha1-hk7xN5rO1Vzm+V3r7NzhefegzR0=" + }, + "dotenv-expand": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-4.2.0.tgz", + "integrity": "sha1-3vHxyl1gWdJKdm5YeULCEQbOEnU=" + }, + "duplexer": { + "version": "0.1.1", + "resolved": "http://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=" + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "optional": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "electron-to-chromium": { + "version": "1.3.75", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.75.tgz", + "integrity": "sha512-nLo03Qpw++8R6BxDZL/B1c8SQvUe/htdgc5LWYHe5YotV2jVvRUMP5AlOmxOsyeOzgMiXrNln2mC05Ixz6vuUQ==" + }, + "elliptic": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", + "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + }, + "emoji-regex": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.5.1.tgz", + "integrity": "sha512-PAHp6TxrCy7MGMFidro8uikr+zlJJKJ/Q6mm2ExZ7HwkyR9lSVFfE3kt36qcwa24BQL7y0G9axycGjK1A/0uNQ==" + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "requires": { + "iconv-lite": "~0.4.13" + } + }, + "enhanced-resolve": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", + "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.4.0", + "object-assign": "^4.0.1", + "tapable": "^0.2.7" + } + }, + "entities": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", + "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=" + }, + "enzyme": { + "version": "3.6.0", + "requires": { + "array.prototype.flat": "^1.2.1", + "cheerio": "^1.0.0-rc.2", + "function.prototype.name": "^1.1.0", + "has": "^1.0.3", + "is-boolean-object": "^1.0.0", + "is-callable": "^1.1.4", + "is-number-object": "^1.0.3", + "is-string": "^1.0.4", + "is-subset": "^0.1.1", + "lodash.escape": "^4.0.1", + "lodash.isequal": "^4.5.0", + "object-inspect": "^1.6.0", + "object-is": "^1.0.1", + "object.assign": "^4.1.0", + "object.entries": "^1.0.4", + "object.values": "^1.0.4", + "raf": "^3.4.0", + "rst-selector-parser": "^2.2.3", + "string.prototype.trim": "^1.1.2" + } + }, + "enzyme-adapter-react-16": { + "version": "1.5.0", + "requires": { + "enzyme-adapter-utils": "^1.8.0", + "function.prototype.name": "^1.1.0", + "object.assign": "^4.1.0", + "object.values": "^1.0.4", + "prop-types": "^15.6.2", + "react-is": "^16.4.2", + "react-test-renderer": "^16.0.0-0" + }, + "dependencies": { + "prop-types": { + "version": "15.6.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", + "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", + "requires": { + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" + } + }, + "react-test-renderer": { + "version": "16.5.2", + "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.5.2.tgz", + "integrity": "sha512-AGbJYbCVx1J6jdUgI4s0hNp+9LxlgzKvXl0ROA3DHTrtjAr00Po1RhDZ/eAq2VC/ww8AHgpDXULh5V2rhEqqJg==", + "requires": { + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "react-is": "^16.5.2", + "schedule": "^0.5.0" + } + } + } + }, + "enzyme-adapter-utils": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/enzyme-adapter-utils/-/enzyme-adapter-utils-1.8.0.tgz", + "integrity": "sha512-K9U2RGr1pvWPGEAIRQRVH4UdlqzpfLsKonuHyAK6lxu46yfGsMDVlO3+YvQwQpVjVw8eviEVIOmlFAnMbIhv/w==", + "requires": { + "function.prototype.name": "^1.1.0", + "object.assign": "^4.1.0", + "prop-types": "^15.6.2" + }, + "dependencies": { + "prop-types": { + "version": "15.6.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", + "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", + "requires": { + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" + } + } + } + }, + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", + "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", + "requires": { + "es-to-primitive": "^1.1.1", + "function-bind": "^1.1.1", + "has": "^1.0.1", + "is-callable": "^1.1.3", + "is-regex": "^1.0.4" + } + }, + "es-to-primitive": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", + "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es5-ext": { + "version": "0.10.46", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.46.tgz", + "integrity": "sha512-24XxRvJXNFwEMpJb3nOkiRJKRoupmjYmOPVlI65Qy2SrtxwOTB+g6ODjBKOtwEHbYrhWRty9xxOWLNdClT2djw==", + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.1", + "next-tick": "1" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-map": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", + "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", + "requires": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-set": "~0.1.5", + "es6-symbol": "~3.1.1", + "event-emitter": "~0.3.5" + } + }, + "es6-promise": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.5.tgz", + "integrity": "sha512-n6wvpdE43VFtJq+lUDYDBFUwV8TZbuGXLV4D6wKafg13ldznKsyEvatubnmUe31zcvelSzOHF+XbaT+Bl9ObDg==" + }, + "es6-set": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", + "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", + "requires": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-symbol": "3.1.1", + "event-emitter": "~0.3.5" + } + }, + "es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "es6-weak-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", + "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", + "requires": { + "d": "1", + "es5-ext": "^0.10.14", + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "escodegen": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.11.0.tgz", + "integrity": "sha512-IeMV45ReixHS53K/OmfKAIztN/igDHzTJUhZM3k1jMhIZWjk45SMwAtBsEXiJp3vSPmTcu6CXn7mDvFHRN66fw==", + "requires": { + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true + } + } + }, + "escope": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", + "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", + "requires": { + "es6-map": "^0.1.3", + "es6-weak-map": "^2.0.1", + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.10.0.tgz", + "integrity": "sha512-MMVl8P/dYUFZEvolL8PYt7qc5LNdS2lwheq9BYa5Y07FblhcZqFyaUqlS8TW5QITGex21tV4Lk0a3fK8lsJIkA==", + "requires": { + "ajv": "^5.2.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.0.1", + "doctrine": "^2.0.0", + "eslint-scope": "^3.7.1", + "espree": "^3.5.1", + "esquery": "^1.0.0", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^9.17.0", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^3.0.6", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.9.1", + "json-stable-stringify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", + "table": "^4.0.1", + "text-table": "~0.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "js-yaml": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", + "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "eslint-config-react-app": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-2.1.0.tgz", + "integrity": "sha512-8QZrKWuHVC57Fmu+SsKAVxnI9LycZl7NFQ4H9L+oeISuCXhYdXqsOOIVSjQFW6JF5MXZLFE+21Syhd7mF1IRZQ==" + }, + "eslint-import-resolver-node": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", + "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", + "requires": { + "debug": "^2.6.9", + "resolve": "^1.5.0" + } + }, + "eslint-loader": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-1.9.0.tgz", + "integrity": "sha512-40aN976qSNPyb9ejTqjEthZITpls1SVKtwguahmH1dzGCwQU/vySE+xX33VZmD8csU0ahVNCtFlsPgKqRBiqgg==", + "requires": { + "loader-fs-cache": "^1.0.0", + "loader-utils": "^1.0.2", + "object-assign": "^4.0.1", + "object-hash": "^1.1.4", + "rimraf": "^2.6.1" + } + }, + "eslint-module-utils": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz", + "integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=", + "requires": { + "debug": "^2.6.8", + "pkg-dir": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pkg-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "requires": { + "find-up": "^1.0.0" + } + } + } + }, + "eslint-plugin-flowtype": { + "version": "2.39.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.39.1.tgz", + "integrity": "sha512-RiQv+7Z9QDJuzt+NO8sYgkLGT+h+WeCrxP7y8lI7wpU41x3x/2o3PGtHk9ck8QnA9/mlbNcy/hG0eKvmd7npaA==", + "requires": { + "lodash": "^4.15.0" + } + }, + "eslint-plugin-import": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.8.0.tgz", + "integrity": "sha512-Rf7dfKJxZ16QuTgVv1OYNxkZcsu/hULFnC+e+w0Gzi6jMC3guQoWQgxYxc54IDRinlb6/0v5z/PxxIKmVctN+g==", + "requires": { + "builtin-modules": "^1.1.1", + "contains-path": "^0.1.0", + "debug": "^2.6.8", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "^0.3.1", + "eslint-module-utils": "^2.1.1", + "has": "^1.0.1", + "lodash.cond": "^4.3.0", + "minimatch": "^3.0.3", + "read-pkg-up": "^2.0.0" + }, + "dependencies": { + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "requires": { + "esutils": "^2.0.2", + "isarray": "^1.0.0" + } + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "requires": { + "pify": "^2.0.0" + } + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "requires": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + } + } + }, + "eslint-plugin-jsx-a11y": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-5.1.1.tgz", + "integrity": "sha512-5I9SpoP7gT4wBFOtXT8/tXNPYohHBVfyVfO17vkbC7r9kEIxYJF12D3pKqhk8+xnk12rfxKClS3WCFpVckFTPQ==", + "requires": { + "aria-query": "^0.7.0", + "array-includes": "^3.0.3", + "ast-types-flow": "0.0.7", + "axobject-query": "^0.1.0", + "damerau-levenshtein": "^1.0.0", + "emoji-regex": "^6.1.0", + "jsx-ast-utils": "^1.4.0" + } + }, + "eslint-plugin-react": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.4.0.tgz", + "integrity": "sha512-tvjU9u3VqmW2vVuYnE8Qptq+6ji4JltjOjJ9u7VAOxVYkUkyBZWRvNYKbDv5fN+L6wiA+4we9+qQahZ0m63XEA==", + "requires": { + "doctrine": "^2.0.0", + "has": "^1.0.1", + "jsx-ast-utils": "^2.0.0", + "prop-types": "^15.5.10" + }, + "dependencies": { + "jsx-ast-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz", + "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", + "requires": { + "array-includes": "^3.0.3" + } + }, + "prop-types": { + "version": "15.6.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", + "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", + "requires": { + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" + } + } + } + }, + "eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "espree": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", + "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", + "requires": { + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" + } + }, + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=" + }, + "esquery": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", + "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", + "requires": { + "estraverse": "^4.0.0" + } + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "eventemitter3": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.0.tgz", + "integrity": "sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA==" + }, + "events": { + "version": "1.1.1", + "resolved": "http://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" + }, + "eventsource": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz", + "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", + "requires": { + "original": ">=0.0.5" + } + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "exec-sh": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.2.tgz", + "integrity": "sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw==", + "requires": { + "merge": "^1.2.0" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "requires": { + "fill-range": "^2.1.0" + }, + "dependencies": { + "fill-range": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "requires": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + } + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "express": { + "version": "4.16.3", + "resolved": "http://registry.npmjs.org/express/-/express-4.16.3.tgz", + "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", + "requires": { + "accepts": "~1.3.5", + "array-flatten": "1.1.1", + "body-parser": "1.18.2", + "content-disposition": "0.5.2", + "content-type": "~1.0.4", + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.1.1", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.3", + "qs": "6.5.1", + "range-parser": "~1.2.0", + "safe-buffer": "5.1.1", + "send": "0.16.2", + "serve-static": "1.13.2", + "setprototypeof": "1.1.0", + "statuses": "~1.4.0", + "type-is": "~1.6.16", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "external-editor": { + "version": "2.2.0", + "resolved": "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "requires": { + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "requires": { + "is-extglob": "^1.0.0" + } + }, + "extract-text-webpack-plugin": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-3.0.2.tgz", + "integrity": "sha512-bt/LZ4m5Rqt/Crl2HiKuAl/oqg0psx1tsTLkvWbJen1CtD+fftkZhMaQ9HOtY2gWsl2Wq+sABmMVi9z3DhKWQQ==", + "requires": { + "async": "^2.4.1", + "loader-utils": "^1.1.0", + "schema-utils": "^0.3.0", + "webpack-sources": "^1.0.1" + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "fastparse": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz", + "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=" + }, + "faye-websocket": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz", + "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "fb-watchman": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz", + "integrity": "sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=", + "requires": { + "bser": "^2.0.0" + } + }, + "fbjs": { + "version": "0.8.17", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", + "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", + "requires": { + "core-js": "^1.0.0", + "isomorphic-fetch": "^2.1.1", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.18" + }, + "dependencies": { + "core-js": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "requires": { + "asap": "~2.0.3" + } + } + } + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "requires": { + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" + } + }, + "file-loader": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.5.tgz", + "integrity": "sha512-RzGHDatcVNpGISTvCpfUfOGpYuSR7HSsSg87ki+wF6rw1Hm0RALPTiAdsxAq1UwLf0RRhbe22/eHK6nhXspiOQ==", + "requires": { + "loader-utils": "^1.0.2", + "schema-utils": "^0.3.0" + } + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=" + }, + "fileset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", + "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", + "requires": { + "glob": "^7.0.3", + "minimatch": "^3.0.3" + } + }, + "filesize": { + "version": "3.5.11", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.5.11.tgz", + "integrity": "sha512-ZH7loueKBoDb7yG9esn1U+fgq7BzlzW6NRi5/rMdxIZ05dj7GFD/Xc5rq2CDt5Yq86CyfSYVyx4242QQNZbx1g==" + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "finalhandler": { + "version": "1.1.1", + "resolved": "http://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", + "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.4.0", + "unpipe": "~1.0.0" + } + }, + "find-cache-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", + "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "^2.0.0" + } + }, + "flat-cache": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", + "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", + "requires": { + "circular-json": "^0.3.1", + "del": "^2.0.2", + "graceful-fs": "^4.1.2", + "write": "^0.2.1" + } + }, + "flatten": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", + "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=" + }, + "follow-redirects": { + "version": "1.5.8", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.8.tgz", + "integrity": "sha512-sy1mXPmv7kLAMKW/8XofG7o9T+6gAjzdZK4AJF6ryqQYUa/hnzgiypoeUecZ53x7XiqKNEpNqLtS97MshW2nxg==", + "requires": { + "debug": "=3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + } + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "requires": { + "for-in": "^1.0.1" + } + }, + "foreach": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.4.tgz", + "integrity": "sha1-zF0NiuHUbMmlVcJoL5EJd4WZNd8=" + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "form-data": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", + "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "1.0.6", + "mime-types": "^2.1.12" + }, + "dependencies": { + "combined-stream": { + "version": "1.0.6", + "resolved": "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "requires": { + "delayed-stream": "~1.0.0" + } + } + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "fs-extra": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", + "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^3.0.0", + "universalify": "^0.1.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", + "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", + "optional": true, + "requires": { + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "debug": { + "version": "2.6.9", + "bundled": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.1", + "bundled": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.21", + "bundled": true, + "optional": true, + "requires": { + "safer-buffer": "^2.1.0" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true + }, + "minipass": { + "version": "2.2.4", + "bundled": true, + "requires": { + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.1.0", + "bundled": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "needle": { + "version": "2.2.0", + "bundled": true, + "optional": true, + "requires": { + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.10.0", + "bundled": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.0", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.1.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.3", + "bundled": true, + "optional": true + }, + "npm-packlist": { + "version": "1.1.10", + "bundled": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "rc": { + "version": "1.2.7", + "bundled": true, + "optional": true, + "requires": { + "deep-extend": "^0.5.1", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "optional": true, + "requires": { + "glob": "^7.0.5" + } + }, + "safe-buffer": { + "version": "5.1.1", + "bundled": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "optional": true + }, + "semver": { + "version": "5.5.0", + "bundled": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "tar": { + "version": "4.4.1", + "bundled": true, + "optional": true, + "requires": { + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.2.4", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.1", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "optional": true, + "requires": { + "string-width": "^1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true + }, + "yallist": { + "version": "3.0.2", + "bundled": true + } + } + }, + "fsm-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fsm-iterator/-/fsm-iterator-1.1.0.tgz", + "integrity": "sha1-M33kXeGesgV4jPAuOpVewgZ2Dew=" + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "function.prototype.name": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.0.tgz", + "integrity": "sha512-Bs0VRrTz4ghD8pTmbJQD1mZ8A/mN0ur/jGz+A6FBxPDUPkm1tNfF6bhTYPA7i7aF4lZJVr+OXTNNrnnIl58Wfg==", + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "is-callable": "^1.1.3" + } + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" + }, + "get-stream": { + "version": "3.0.0", + "resolved": "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "requires": { + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" + } + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "requires": { + "is-glob": "^2.0.0" + } + }, + "global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "requires": { + "ini": "^1.3.4" + } + }, + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" + }, + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "requires": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "got": { + "version": "6.7.1", + "resolved": "http://registry.npmjs.org/got/-/got-6.7.1.tgz", + "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", + "requires": { + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + }, + "growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=" + }, + "gzip-size": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-3.0.0.tgz", + "integrity": "sha1-VGGI6b3DN/Zzdy+BZgRks4nc5SA=", + "requires": { + "duplexer": "^0.1.1" + } + }, + "handle-thing": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz", + "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=" + }, + "handlebars": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.12.tgz", + "integrity": "sha512-RhmTekP+FZL+XNhwS1Wf+bTTZpdLougwt5pcgA1tuz6Jcx0fpH/7z0qd71RKnZHBCxIRBHfBOnio4gViPemNzA==", + "requires": { + "async": "^2.5.0", + "optimist": "^0.6.1", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", + "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", + "requires": { + "ajv": "^5.3.0", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=" + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "hash.js": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz", + "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=" + }, + "history": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/history/-/history-4.7.2.tgz", + "integrity": "sha512-1zkBRWW6XweO0NBcjiphtVJVsIQ+SXF29z9DVkceeaSLVMFXHool+fdCZD4spDCfZJCILPILc3bm7Bc+HRi0nA==", + "requires": { + "invariant": "^2.2.1", + "loose-envify": "^1.2.0", + "resolve-pathname": "^2.2.0", + "value-equal": "^0.4.0", + "warning": "^3.0.0" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hoist-non-react-statics": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", + "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==" + }, + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" + } + }, + "homedir-polyfill": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", + "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", + "requires": { + "parse-passwd": "^1.0.0" + } + }, + "hosted-git-info": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", + "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==" + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "html-comment-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", + "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==" + }, + "html-encoding-sniffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", + "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", + "requires": { + "whatwg-encoding": "^1.0.1" + } + }, + "html-entities": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", + "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=" + }, + "html-minifier": { + "version": "3.5.20", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.20.tgz", + "integrity": "sha512-ZmgNLaTp54+HFKkONyLFEfs5dd/ZOtlquKaTnqIWFmx3Av5zG6ZPcV2d0o9XM2fXOTxxIf6eDcwzFFotke/5zA==", + "requires": { + "camel-case": "3.0.x", + "clean-css": "4.2.x", + "commander": "2.17.x", + "he": "1.1.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.4.x" + }, + "dependencies": { + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==" + } + } + }, + "html-webpack-plugin": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-2.29.0.tgz", + "integrity": "sha1-6Yf0IYU9O2k4yMTIFxhC5f0XryM=", + "requires": { + "bluebird": "^3.4.7", + "html-minifier": "^3.2.3", + "loader-utils": "^0.2.16", + "lodash": "^4.17.3", + "pretty-error": "^2.0.2", + "toposort": "^1.0.0" + }, + "dependencies": { + "loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", + "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "requires": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0", + "object-assign": "^4.0.1" + } + } + } + }, + "htmlparser2": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", + "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", + "requires": { + "domelementtype": "^1.3.0", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^2.0.2" + } + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" + }, + "http-errors": { + "version": "1.6.3", + "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "http-parser-js": { + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.13.tgz", + "integrity": "sha1-O9bW/ebjFyyTNMOzO2wZPYD+ETc=" + }, + "http-proxy": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz", + "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==", + "requires": { + "eventemitter3": "^3.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-middleware": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz", + "integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=", + "requires": { + "http-proxy": "^1.16.2", + "is-glob": "^3.1.0", + "lodash": "^4.17.2", + "micromatch": "^2.3.11" + }, + "dependencies": { + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" + }, + "hyphenate-style-name": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.2.tgz", + "integrity": "sha1-MRYKNpMK2vH8BMYHT360FGXU7Es=" + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=" + }, + "icss-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", + "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", + "requires": { + "postcss": "^6.0.1" + } + }, + "ieee754": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", + "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==" + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" + }, + "import-local": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz", + "integrity": "sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==", + "requires": { + "pkg-dir": "^2.0.0", + "resolve-cwd": "^2.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "indefinite-observable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indefinite-observable/-/indefinite-observable-1.0.1.tgz", + "integrity": "sha1-CZFUI8yNb36xy3iCrRNGM8mm7cM=", + "requires": { + "symbol-observable": "1.0.4" + }, + "dependencies": { + "symbol-observable": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.4.tgz", + "integrity": "sha1-Kb9hXUqnEhvdiYsi1LP5vE4qoD0=" + } + } + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "requires": { + "repeating": "^2.0.0" + } + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=" + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + }, + "inquirer": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", + "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "internal-ip": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-1.2.0.tgz", + "integrity": "sha1-rp+/k7mEh4eF1QqN4bNWlWBYz1w=", + "requires": { + "meow": "^3.3.0" + } + }, + "interpret": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", + "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=" + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "requires": { + "loose-envify": "^1.0.0" + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + }, + "ipaddr.js": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", + "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=" + }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=" + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-boolean-object": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.0.0.tgz", + "integrity": "sha1-mPiygDBoQhmpXzdc+9iM40Bd/5M=" + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "requires": { + "builtin-modules": "^1.0.0" + } + }, + "is-callable": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==" + }, + "is-ci": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", + "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "requires": { + "ci-info": "^1.5.0" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=" + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "requires": { + "is-primitive": "^2.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "is-function": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz", + "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=" + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "requires": { + "is-extglob": "^1.0.0" + } + }, + "is-in-browser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz", + "integrity": "sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU=" + }, + "is-installed-globally": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "requires": { + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" + } + }, + "is-npm": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", + "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=" + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-number-object": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.3.tgz", + "integrity": "sha1-8mWrian0RQNO9q/xWo8AsA9VF5k=" + }, + "is-obj": { + "version": "1.0.1", + "resolved": "http://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=" + }, + "is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "requires": { + "is-path-inside": "^1.0.0" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "requires": { + "isobject": "^3.0.1" + } + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=" + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=" + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" + }, + "is-redirect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", + "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=" + }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "requires": { + "has": "^1.0.1" + } + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==" + }, + "is-retry-allowed": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", + "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=" + }, + "is-root": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-1.0.0.tgz", + "integrity": "sha1-B7bCM7w5TNnQK6FclmvWZg1jQtU=" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-string": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.4.tgz", + "integrity": "sha1-zDqbaYV9Yh6WNyWiTK7shzuCbmQ=" + }, + "is-subset": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", + "integrity": "sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=" + }, + "is-svg": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", + "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", + "requires": { + "html-comment-regex": "^1.1.0" + } + }, + "is-symbol": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", + "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "requires": { + "has-symbols": "^1.0.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "requires": { + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "istanbul-api": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.3.7.tgz", + "integrity": "sha512-4/ApBnMVeEPG3EkSzcw25wDe4N66wxwn+KKn6b47vyek8Xb3NBAcg4xfuQbS7BqcZuTX4wxfD5lVagdggR3gyA==", + "requires": { + "async": "^2.1.4", + "fileset": "^2.0.2", + "istanbul-lib-coverage": "^1.2.1", + "istanbul-lib-hook": "^1.2.2", + "istanbul-lib-instrument": "^1.10.2", + "istanbul-lib-report": "^1.1.5", + "istanbul-lib-source-maps": "^1.2.6", + "istanbul-reports": "^1.5.1", + "js-yaml": "^3.7.0", + "mkdirp": "^0.5.1", + "once": "^1.4.0" + } + }, + "istanbul-lib-coverage": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz", + "integrity": "sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ==" + }, + "istanbul-lib-hook": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.2.2.tgz", + "integrity": "sha512-/Jmq7Y1VeHnZEQ3TL10VHyb564mn6VrQXHchON9Jf/AEcmQ3ZIiyD1BVzNOKTZf/G3gE+kiGK6SmpF9y3qGPLw==", + "requires": { + "append-transform": "^0.4.0" + } + }, + "istanbul-lib-instrument": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz", + "integrity": "sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A==", + "requires": { + "babel-generator": "^6.18.0", + "babel-template": "^6.16.0", + "babel-traverse": "^6.18.0", + "babel-types": "^6.18.0", + "babylon": "^6.18.0", + "istanbul-lib-coverage": "^1.2.1", + "semver": "^5.3.0" + } + }, + "istanbul-lib-report": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.5.tgz", + "integrity": "sha512-UsYfRMoi6QO/doUshYNqcKJqVmFe9w51GZz8BS3WB0lYxAllQYklka2wP9+dGZeHYaWIdcXUx8JGdbqaoXRXzw==", + "requires": { + "istanbul-lib-coverage": "^1.2.1", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "supports-color": "^3.1.2" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.6.tgz", + "integrity": "sha512-TtbsY5GIHgbMsMiRw35YBHGpZ1DVFEO19vxxeiDMYaeOFOCzfnYVxvl6pOUIZR4dtPhAGpSMup8OyF8ubsaqEg==", + "requires": { + "debug": "^3.1.0", + "istanbul-lib-coverage": "^1.2.1", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.3" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + } + } + }, + "istanbul-reports": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.5.1.tgz", + "integrity": "sha512-+cfoZ0UXzWjhAdzosCPP3AN8vvef8XDkWtTfgaN+7L3YTpNYITnCaEkceo5SEYy644VkHka/P1FvkWvrG/rrJw==", + "requires": { + "handlebars": "^4.0.3" + } + }, + "jest": { + "version": "20.0.4", + "resolved": "https://registry.npmjs.org/jest/-/jest-20.0.4.tgz", + "integrity": "sha1-PdJgwpidba1nix6cxNkZRPbWAqw=", + "requires": { + "jest-cli": "^20.0.4" + }, + "dependencies": { + "ansi-escapes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", + "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=" + }, + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=" + }, + "jest-cli": { + "version": "20.0.4", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-20.0.4.tgz", + "integrity": "sha1-5TKxnYiuW8bEF+iwWTpv6VSx3JM=", + "requires": { + "ansi-escapes": "^1.4.0", + "callsites": "^2.0.0", + "chalk": "^1.1.3", + "graceful-fs": "^4.1.11", + "is-ci": "^1.0.10", + "istanbul-api": "^1.1.1", + "istanbul-lib-coverage": "^1.0.1", + "istanbul-lib-instrument": "^1.4.2", + "istanbul-lib-source-maps": "^1.1.0", + "jest-changed-files": "^20.0.3", + "jest-config": "^20.0.4", + "jest-docblock": "^20.0.3", + "jest-environment-jsdom": "^20.0.3", + "jest-haste-map": "^20.0.4", + "jest-jasmine2": "^20.0.4", + "jest-message-util": "^20.0.3", + "jest-regex-util": "^20.0.3", + "jest-resolve-dependencies": "^20.0.3", + "jest-runtime": "^20.0.4", + "jest-snapshot": "^20.0.3", + "jest-util": "^20.0.3", + "micromatch": "^2.3.11", + "node-notifier": "^5.0.2", + "pify": "^2.3.0", + "slash": "^1.0.0", + "string-length": "^1.0.1", + "throat": "^3.0.0", + "which": "^1.2.12", + "worker-farm": "^1.3.1", + "yargs": "^7.0.2" + } + } + } + }, + "jest-changed-files": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-20.0.3.tgz", + "integrity": "sha1-k5TVzGXEOEBhSb7xv01Sto4D4/g=" + }, + "jest-config": { + "version": "20.0.4", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-20.0.4.tgz", + "integrity": "sha1-43kwqyIXyRNgXv8T5712PsSPruo=", + "requires": { + "chalk": "^1.1.3", + "glob": "^7.1.1", + "jest-environment-jsdom": "^20.0.3", + "jest-environment-node": "^20.0.3", + "jest-jasmine2": "^20.0.4", + "jest-matcher-utils": "^20.0.3", + "jest-regex-util": "^20.0.3", + "jest-resolve": "^20.0.4", + "jest-validate": "^20.0.3", + "pretty-format": "^20.0.3" + } + }, + "jest-diff": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-20.0.3.tgz", + "integrity": "sha1-gfKI/Z5nXw+yPHXxwrGURf5YZhc=", + "requires": { + "chalk": "^1.1.3", + "diff": "^3.2.0", + "jest-matcher-utils": "^20.0.3", + "pretty-format": "^20.0.3" + } + }, + "jest-docblock": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-20.0.3.tgz", + "integrity": "sha1-F76phDQswz2DxQ++FUXqDvqkRxI=" + }, + "jest-environment-jsdom": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-20.0.3.tgz", + "integrity": "sha1-BIqKwS7iJfcZBBdxODS7mZeH3pk=", + "requires": { + "jest-mock": "^20.0.3", + "jest-util": "^20.0.3", + "jsdom": "^9.12.0" + } + }, + "jest-environment-node": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-20.0.3.tgz", + "integrity": "sha1-1Ii8RhKvLCRumG6K52caCZFj1AM=", + "requires": { + "jest-mock": "^20.0.3", + "jest-util": "^20.0.3" + } + }, + "jest-haste-map": { + "version": "20.0.5", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-20.0.5.tgz", + "integrity": "sha512-0IKAQjUvuZjMCNi/0VNQQF74/H9KB67hsHJqGiwTWQC6XO5Azs7kLWm+6Q/dwuhvDUvABDOBMFK2/FwZ3sZ07Q==", + "requires": { + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.1.11", + "jest-docblock": "^20.0.3", + "micromatch": "^2.3.11", + "sane": "~1.6.0", + "worker-farm": "^1.3.1" + } + }, + "jest-jasmine2": { + "version": "20.0.4", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-20.0.4.tgz", + "integrity": "sha1-/MWxQReA2RHQQpAu8YWehS5g1eE=", + "requires": { + "chalk": "^1.1.3", + "graceful-fs": "^4.1.11", + "jest-diff": "^20.0.3", + "jest-matcher-utils": "^20.0.3", + "jest-matchers": "^20.0.3", + "jest-message-util": "^20.0.3", + "jest-snapshot": "^20.0.3", + "once": "^1.4.0", + "p-map": "^1.1.1" + } + }, + "jest-matcher-utils": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-20.0.3.tgz", + "integrity": "sha1-s6a443yld4A7CDKpixZPRLeBVhI=", + "requires": { + "chalk": "^1.1.3", + "pretty-format": "^20.0.3" + } + }, + "jest-matchers": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jest-matchers/-/jest-matchers-20.0.3.tgz", + "integrity": "sha1-ymnbHDLbWm9wf6XgQBq7VXAN/WA=", + "requires": { + "jest-diff": "^20.0.3", + "jest-matcher-utils": "^20.0.3", + "jest-message-util": "^20.0.3", + "jest-regex-util": "^20.0.3" + } + }, + "jest-message-util": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-20.0.3.tgz", + "integrity": "sha1-auwoRDBvyw5udNV5bBAG2W/dgxw=", + "requires": { + "chalk": "^1.1.3", + "micromatch": "^2.3.11", + "slash": "^1.0.0" + } + }, + "jest-mock": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-20.0.3.tgz", + "integrity": "sha1-i8Bw6QQUqhVcEajWTIaaDVxx2lk=" + }, + "jest-regex-util": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-20.0.3.tgz", + "integrity": "sha1-hburXRM+RGJbGfr4xqpRItCF12I=" + }, + "jest-resolve": { + "version": "20.0.4", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-20.0.4.tgz", + "integrity": "sha1-lEiz6La6/BVHlETGSZBFt//ll6U=", + "requires": { + "browser-resolve": "^1.11.2", + "is-builtin-module": "^1.0.0", + "resolve": "^1.3.2" + } + }, + "jest-resolve-dependencies": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-20.0.3.tgz", + "integrity": "sha1-bhSntxevDyyzZnxUneQK8Bexcjo=", + "requires": { + "jest-regex-util": "^20.0.3" + } + }, + "jest-runtime": { + "version": "20.0.4", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-20.0.4.tgz", + "integrity": "sha1-osgCIZxCA/dU3xQE5JAYYWnRJNg=", + "requires": { + "babel-core": "^6.0.0", + "babel-jest": "^20.0.3", + "babel-plugin-istanbul": "^4.0.0", + "chalk": "^1.1.3", + "convert-source-map": "^1.4.0", + "graceful-fs": "^4.1.11", + "jest-config": "^20.0.4", + "jest-haste-map": "^20.0.4", + "jest-regex-util": "^20.0.3", + "jest-resolve": "^20.0.4", + "jest-util": "^20.0.3", + "json-stable-stringify": "^1.0.1", + "micromatch": "^2.3.11", + "strip-bom": "3.0.0", + "yargs": "^7.0.2" + }, + "dependencies": { + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + } + } + }, + "jest-snapshot": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-20.0.3.tgz", + "integrity": "sha1-W4R+GtsaTZCFKn+fElCG4YfHZWY=", + "requires": { + "chalk": "^1.1.3", + "jest-diff": "^20.0.3", + "jest-matcher-utils": "^20.0.3", + "jest-util": "^20.0.3", + "natural-compare": "^1.4.0", + "pretty-format": "^20.0.3" + } + }, + "jest-util": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-20.0.3.tgz", + "integrity": "sha1-DAf32A2C9OWmfG+LnD/n9lz9Mq0=", + "requires": { + "chalk": "^1.1.3", + "graceful-fs": "^4.1.11", + "jest-message-util": "^20.0.3", + "jest-mock": "^20.0.3", + "jest-validate": "^20.0.3", + "leven": "^2.1.0", + "mkdirp": "^0.5.1" + } + }, + "jest-validate": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-20.0.3.tgz", + "integrity": "sha1-0M/R3k9XnymEhJJcKA+PHZTsPKs=", + "requires": { + "chalk": "^1.1.3", + "jest-matcher-utils": "^20.0.3", + "leven": "^2.1.0", + "pretty-format": "^20.0.3" + } + }, + "js-base64": { + "version": "2.4.9", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.9.tgz", + "integrity": "sha512-xcinL3AuDJk7VSzsHgb9DvvIXayBbadtMZ4HFPx8rUszbW1MuNMlwYVC4zzCZ6e1sqZpnNS5ZFYOhXqA39T7LQ==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", + "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=", + "requires": { + "argparse": "^1.0.7", + "esprima": "^2.6.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "optional": true + }, + "jsdom": { + "version": "9.12.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-9.12.0.tgz", + "integrity": "sha1-6MVG//ywbADUgzyoRBD+1/igl9Q=", + "requires": { + "abab": "^1.0.3", + "acorn": "^4.0.4", + "acorn-globals": "^3.1.0", + "array-equal": "^1.0.0", + "content-type-parser": "^1.0.1", + "cssom": ">= 0.3.2 < 0.4.0", + "cssstyle": ">= 0.2.37 < 0.3.0", + "escodegen": "^1.6.1", + "html-encoding-sniffer": "^1.0.1", + "nwmatcher": ">= 1.3.9 < 2.0.0", + "parse5": "^1.5.1", + "request": "^2.79.0", + "sax": "^1.2.1", + "symbol-tree": "^3.2.1", + "tough-cookie": "^2.3.2", + "webidl-conversions": "^4.0.0", + "whatwg-encoding": "^1.0.1", + "whatwg-url": "^4.3.0", + "xml-name-validator": "^2.0.1" + }, + "dependencies": { + "acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=" + }, + "parse5": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz", + "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=" + } + } + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" + }, + "json-loader": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", + "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==" + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "requires": { + "jsonify": "~0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "json3": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.0.tgz", + "integrity": "sha1-Dp5/bF0nC3WJKa9Nb+/chL1m4lk=" + }, + "json5": { + "version": "0.5.1", + "resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" + }, + "jsonfile": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", + "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "jss": { + "version": "9.8.7", + "resolved": "https://registry.npmjs.org/jss/-/jss-9.8.7.tgz", + "integrity": "sha512-awj3XRZYxbrmmrx9LUSj5pXSUfm12m8xzi/VKeqI1ZwWBtQ0kVPTs3vYs32t4rFw83CgFDukA8wKzOE9sMQnoQ==", + "requires": { + "is-in-browser": "^1.1.3", + "symbol-observable": "^1.1.0", + "warning": "^3.0.0" + } + }, + "jss-camel-case": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jss-camel-case/-/jss-camel-case-6.1.0.tgz", + "integrity": "sha512-HPF2Q7wmNW1t79mCqSeU2vdd/vFFGpkazwvfHMOhPlMgXrJDzdj9viA2SaHk9ZbD5pfL63a8ylp4++irYbbzMQ==", + "requires": { + "hyphenate-style-name": "^1.0.2" + } + }, + "jss-compose": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/jss-compose/-/jss-compose-5.0.0.tgz", + "integrity": "sha512-YofRYuiA0+VbeOw0VjgkyO380sA4+TWDrW52nSluD9n+1FWOlDzNbgpZ/Sb3Y46+DcAbOS21W5jo6SAqUEiuwA==", + "requires": { + "warning": "^3.0.0" + } + }, + "jss-default-unit": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/jss-default-unit/-/jss-default-unit-8.0.2.tgz", + "integrity": "sha512-WxNHrF/18CdoAGw2H0FqOEvJdREXVXLazn7PQYU7V6/BWkCV0GkmWsppNiExdw8dP4TU1ma1dT9zBNJ95feLmg==" + }, + "jss-expand": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/jss-expand/-/jss-expand-5.3.0.tgz", + "integrity": "sha512-NiM4TbDVE0ykXSAw6dfFmB1LIqXP/jdd0ZMnlvlGgEMkMt+weJIl8Ynq1DsuBY9WwkNyzWktdqcEW2VN0RAtQg==" + }, + "jss-extend": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jss-extend/-/jss-extend-6.2.0.tgz", + "integrity": "sha512-YszrmcB6o9HOsKPszK7NeDBNNjVyiW864jfoiHoMlgMIg2qlxKw70axZHqgczXHDcoyi/0/ikP1XaHDPRvYtEA==", + "requires": { + "warning": "^3.0.0" + } + }, + "jss-global": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jss-global/-/jss-global-3.0.0.tgz", + "integrity": "sha512-wxYn7vL+TImyQYGAfdplg7yaxnPQ9RaXY/cIA8hawaVnmmWxDHzBK32u1y+RAvWboa3lW83ya3nVZ/C+jyjZ5Q==" + }, + "jss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jss-nested/-/jss-nested-6.0.1.tgz", + "integrity": "sha512-rn964TralHOZxoyEgeq3hXY8hyuCElnvQoVrQwKHVmu55VRDd6IqExAx9be5HgK0yN/+hQdgAXQl/GUrBbbSTA==", + "requires": { + "warning": "^3.0.0" + } + }, + "jss-preset-default": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/jss-preset-default/-/jss-preset-default-4.5.0.tgz", + "integrity": "sha512-qZbpRVtHT7hBPpZEBPFfafZKWmq3tA/An5RNqywDsZQGrlinIF/mGD9lmj6jGqu8GrED2SMHZ3pPKLmjCZoiaQ==", + "requires": { + "jss-camel-case": "^6.1.0", + "jss-compose": "^5.0.0", + "jss-default-unit": "^8.0.2", + "jss-expand": "^5.3.0", + "jss-extend": "^6.2.0", + "jss-global": "^3.0.0", + "jss-nested": "^6.0.1", + "jss-props-sort": "^6.0.0", + "jss-template": "^1.0.1", + "jss-vendor-prefixer": "^7.0.0" + } + }, + "jss-props-sort": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/jss-props-sort/-/jss-props-sort-6.0.0.tgz", + "integrity": "sha512-E89UDcrphmI0LzmvYk25Hp4aE5ZBsXqMWlkFXS0EtPkunJkRr+WXdCNYbXbksIPnKlBenGB9OxzQY+mVc70S+g==" + }, + "jss-template": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/jss-template/-/jss-template-1.0.1.tgz", + "integrity": "sha512-m5BqEWha17fmIVXm1z8xbJhY6GFJxNB9H68GVnCWPyGYfxiAgY9WTQyvDAVj+pYRgrXSOfN5V1T4+SzN1sJTeg==", + "requires": { + "warning": "^3.0.0" + } + }, + "jss-vendor-prefixer": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/jss-vendor-prefixer/-/jss-vendor-prefixer-7.0.0.tgz", + "integrity": "sha512-Agd+FKmvsI0HLcYXkvy8GYOw3AAASBUpsmIRvVQheps+JWaN892uFOInTr0DRydwaD91vSSUCU4NssschvF7MA==", + "requires": { + "css-vendor": "^0.3.8" + } + }, + "jsx-ast-utils": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz", + "integrity": "sha1-OGchPo3Xm/Ho8jAMDPwe+xgsDfE=" + }, + "keycode": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.2.0.tgz", + "integrity": "sha1-PQr1bce4uOXLqNCpfxByBO7CKwQ=" + }, + "killable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==" + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + }, + "klaw": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", + "requires": { + "graceful-fs": "^4.1.9" + } + }, + "latest-version": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", + "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", + "requires": { + "package-json": "^4.0.0" + } + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "requires": { + "invert-kv": "^1.0.0" + } + }, + "leven": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", + "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=" + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "loader-fs-cache": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.1.tgz", + "integrity": "sha1-VuC/CL2XCLJqdltoUJhAyN7J/bw=", + "requires": { + "find-cache-dir": "^0.1.1", + "mkdirp": "0.5.1" + }, + "dependencies": { + "find-cache-dir": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", + "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "requires": { + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pkg-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "requires": { + "find-up": "^1.0.0" + } + } + } + }, + "loader-runner": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.1.tgz", + "integrity": "sha512-By6ZFY7ETWOc9RFaAIb23IjJVcM4dvJC/N57nmdz9RSkMXvAXGI7SyVlAw3v8vjtDRlqThgVDVmTnr9fqMlxkw==" + }, + "loader-utils": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", + "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", + "requires": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + } + } + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" + }, + "lodash-es": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.11.tgz", + "integrity": "sha512-DHb1ub+rMjjrxqlB3H56/6MXtm1lSksDp2rA2cNWjG8mlDUYFhUj3Di2Zn5IwSU87xLv8tNIQ7sSwE/YOX/D/Q==" + }, + "lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" + }, + "lodash.cond": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/lodash.cond/-/lodash.cond-4.5.2.tgz", + "integrity": "sha1-9HGh2khr5g9quVXRcRVSPdHSVdU=" + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + }, + "lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=" + }, + "lodash.escape": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-4.0.1.tgz", + "integrity": "sha1-yQRGkMIeBClL6qUXcS/e0fqI3pg=" + }, + "lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=" + }, + "lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" + }, + "lodash.ismatch": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", + "integrity": "sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc=" + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" + }, + "lodash.template": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz", + "integrity": "sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=", + "requires": { + "lodash._reinterpolate": "~3.0.0", + "lodash.templatesettings": "^4.0.0" + } + }, + "lodash.templatesettings": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz", + "integrity": "sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=", + "requires": { + "lodash._reinterpolate": "~3.0.0" + } + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" + }, + "loglevel": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.1.tgz", + "integrity": "sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=" + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + }, + "lru-cache": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } + } + }, + "makeerror": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", + "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "requires": { + "tmpl": "1.0.x" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "requires": { + "object-visit": "^1.0.0" + } + }, + "math-expression-evaluator": { + "version": "1.2.17", + "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz", + "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=" + }, + "math-random": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", + "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=" + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + } + } + }, + "merge": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz", + "integrity": "sha1-dTHjnUlJwoGma4xabgJl6LBYlNo=" + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.36.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz", + "integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==" + }, + "mime-types": { + "version": "2.1.20", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz", + "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==", + "requires": { + "mime-db": "~1.36.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.10", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=" + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + } + } + }, + "moo": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/moo/-/moo-0.4.3.tgz", + "integrity": "sha512-gFD2xGCl8YFgGHsqJ9NKRVdwlioeW3mI1iqfLNYQOv0+6JRwG58Zk9DIGQgyIaffSYaO1xsKnMaYzzNr1KyIAw==" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "requires": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + } + }, + "multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=" + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" + }, + "nan": { + "version": "2.11.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.1.tgz", + "integrity": "sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA==", + "optional": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" + }, + "nearley": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.15.1.tgz", + "integrity": "sha512-8IUY/rUrKz2mIynUGh8k+tul1awMKEjeHHC5G3FHvvyAW6oq4mQfNp2c0BMea+sYZJvYcrrM6GmZVIle/GRXGw==", + "requires": { + "moo": "^0.4.3", + "nomnom": "~1.6.2", + "railroad-diagrams": "^1.0.0", + "randexp": "0.4.6", + "semver": "^5.4.1" + } + }, + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" + }, + "neo-async": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.2.tgz", + "integrity": "sha512-vdqTKI9GBIYcAEbFAcpKPErKINfPF5zIuz3/niBfq8WUZjpT2tytLlFVrBgWdOtqI4uaA/Rb6No0hux39XXDuw==" + }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "requires": { + "lower-case": "^1.1.1" + } + }, + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "requires": { + "encoding": "^0.1.11", + "is-stream": "^1.0.1" + } + }, + "node-forge": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz", + "integrity": "sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==" + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" + }, + "node-libs-browser": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", + "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^1.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.0", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.10.3", + "vm-browserify": "0.0.4" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + } + } + }, + "node-notifier": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.2.1.tgz", + "integrity": "sha512-MIBs+AAd6dJ2SklbbE8RUDRlIVhU8MaNLh1A9SUZDUHPiZkWLFde6UNwG41yQHZEToHgJMXqyVZ9UcS/ReOVTg==", + "requires": { + "growly": "^1.3.0", + "semver": "^5.4.1", + "shellwords": "^0.1.1", + "which": "^1.3.0" + } + }, + "nomnom": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.6.2.tgz", + "integrity": "sha1-hKZqJgF0QI/Ft3oY+IjszET7aXE=", + "requires": { + "colors": "0.5.x", + "underscore": "~1.4.4" + } + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "requires": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" + }, + "normalize-scroll-left": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-scroll-left/-/normalize-scroll-left-0.1.2.tgz", + "integrity": "sha512-F9YMRls0zCF6BFIE2YnXDRpHPpfd91nOIaNdDgrx5YMoPLo8Wqj+6jNXHQsYBavJeXP4ww8HCt0xQAKc5qk2Fg==" + }, + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "requires": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + }, + "dependencies": { + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "requires": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" + } + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "^2.0.0" + } + }, + "nth-check": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz", + "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", + "requires": { + "boolbase": "~1.0.0" + } + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=" + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "nwmatcher": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.4.tgz", + "integrity": "sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ==" + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "object-hash": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.0.tgz", + "integrity": "sha512-05KzQ70lSeGSrZJQXE5wNDiTkBJDlUT/myi6RX9dVIvz7a7Qh4oH93BQdiPMn27nldYvVQCKMUaM83AfizZlsQ==" + }, + "object-inspect": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", + "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==" + }, + "object-is": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.1.tgz", + "integrity": "sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY=" + }, + "object-keys": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", + "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==" + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.entries": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.0.4.tgz", + "integrity": "sha1-G/mk3SKI9bM/Opk9JXZh8F0WGl8=", + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.6.1", + "function-bind": "^1.1.0", + "has": "^1.0.1" + } + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "requires": { + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "requires": { + "isobject": "^3.0.1" + } + }, + "object.values": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.0.4.tgz", + "integrity": "sha1-5STaCbT2b/Bd9FdUbscqyZ8TBpo=", + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.6.1", + "function-bind": "^1.1.0", + "has": "^1.0.1" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", + "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "opn": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.2.0.tgz", + "integrity": "sha512-Jd/GpzPyHF4P2/aNOVmS3lfMSWV9J7cOhCG1s08XCEAsPkB7lp6ddiU0J7XzyQRDUh8BqJ7PchfINjR8jyofRQ==", + "requires": { + "is-wsl": "^1.1.0" + } + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" + } + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" + } + }, + "original": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", + "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "requires": { + "url-parse": "^1.4.3" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + }, + "os-locale": { + "version": "1.4.0", + "resolved": "http://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "requires": { + "lcid": "^1.0.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-map": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", + "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==" + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + }, + "package-json": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", + "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", + "requires": { + "got": "^6.7.1", + "registry-auth-token": "^3.0.1", + "registry-url": "^3.0.3", + "semver": "^5.1.0" + } + }, + "pako": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", + "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==" + }, + "param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "requires": { + "no-case": "^2.2.0" + } + }, + "parse-asn1": { + "version": "5.1.1", + "resolved": "http://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz", + "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==", + "requires": { + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3" + } + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "requires": { + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "requires": { + "error-ex": "^1.2.0" + } + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" + }, + "parse5": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz", + "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==", + "requires": { + "@types/node": "*" + } + }, + "parseurl": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, + "path-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", + "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=" + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + }, + "path-to-regexp": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", + "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", + "requires": { + "isarray": "0.0.1" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + } + } + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pbkdf2": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", + "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "requires": { + "find-up": "^2.1.0" + } + }, + "pluralize": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", + "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==" + }, + "popper.js": { + "version": "1.14.4", + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.14.4.tgz", + "integrity": "sha1-juwdj/AqWjoVLdQ0FKFce3n9abY=" + }, + "portfinder": { + "version": "1.0.17", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.17.tgz", + "integrity": "sha512-syFcRIRzVI1BoEFOCaAiizwDolh1S1YXSodsVhncbhjzjZQulhczNRbqnUl9N31Q4dKGOXsNDqxC2BWBgSMqeQ==", + "requires": { + "async": "^1.5.2", + "debug": "^2.2.0", + "mkdirp": "0.5.x" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "http://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-calc": { + "version": "5.3.1", + "resolved": "http://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", + "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=", + "requires": { + "postcss": "^5.0.2", + "postcss-message-helpers": "^2.0.0", + "reduce-css-calc": "^1.2.6" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-colormin": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz", + "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=", + "requires": { + "colormin": "^1.0.5", + "postcss": "^5.0.13", + "postcss-value-parser": "^3.2.3" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-convert-values": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz", + "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=", + "requires": { + "postcss": "^5.0.11", + "postcss-value-parser": "^3.1.2" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-discard-comments": { + "version": "2.0.4", + "resolved": "http://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz", + "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=", + "requires": { + "postcss": "^5.0.14" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-discard-duplicates": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz", + "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=", + "requires": { + "postcss": "^5.0.4" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-discard-empty": { + "version": "2.1.0", + "resolved": "http://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz", + "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=", + "requires": { + "postcss": "^5.0.14" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-discard-overridden": { + "version": "0.1.1", + "resolved": "http://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz", + "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=", + "requires": { + "postcss": "^5.0.16" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-discard-unused": { + "version": "2.2.3", + "resolved": "http://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz", + "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=", + "requires": { + "postcss": "^5.0.14", + "uniqs": "^2.0.0" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-filter-plugins": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.3.tgz", + "integrity": "sha512-T53GVFsdinJhgwm7rg1BzbeBRomOg9y5MBVhGcsV0CxurUdVj1UlPdKtn7aqYA/c/QVkzKMjq2bSV5dKG5+AwQ==", + "requires": { + "postcss": "^5.0.4" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-flexbugs-fixes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-3.2.0.tgz", + "integrity": "sha512-0AuD9HG1Ey3/3nqPWu9yqf7rL0KCPu5VgjDsjf5mzEcuo9H/z8nco/fljKgjsOUrZypa95MI0kS4xBZeBzz2lw==", + "requires": { + "postcss": "^6.0.1" + } + }, + "postcss-load-config": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-1.2.0.tgz", + "integrity": "sha1-U56a/J3chiASHr+djDZz4M5Q0oo=", + "requires": { + "cosmiconfig": "^2.1.0", + "object-assign": "^4.1.0", + "postcss-load-options": "^1.2.0", + "postcss-load-plugins": "^2.3.0" + } + }, + "postcss-load-options": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-load-options/-/postcss-load-options-1.2.0.tgz", + "integrity": "sha1-sJixVZ3awt8EvAuzdfmaXP4rbYw=", + "requires": { + "cosmiconfig": "^2.1.0", + "object-assign": "^4.1.0" + } + }, + "postcss-load-plugins": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz", + "integrity": "sha1-dFdoEWWZrKLwCfrUJrABdQSdjZI=", + "requires": { + "cosmiconfig": "^2.1.1", + "object-assign": "^4.1.0" + } + }, + "postcss-loader": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.0.8.tgz", + "integrity": "sha512-KtXBiQ/r/WYW8LxTSJK7h8wLqvCMSub/BqmRnud/Mu8RzwflW9cmXxwsMwbn15TNv287Hcufdb3ZSs7xHKnG8Q==", + "requires": { + "loader-utils": "^1.1.0", + "postcss": "^6.0.0", + "postcss-load-config": "^1.2.0", + "schema-utils": "^0.3.0" + } + }, + "postcss-merge-idents": { + "version": "2.1.7", + "resolved": "http://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", + "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=", + "requires": { + "has": "^1.0.1", + "postcss": "^5.0.10", + "postcss-value-parser": "^3.1.1" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-merge-longhand": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz", + "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=", + "requires": { + "postcss": "^5.0.4" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-merge-rules": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz", + "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=", + "requires": { + "browserslist": "^1.5.2", + "caniuse-api": "^1.5.2", + "postcss": "^5.0.4", + "postcss-selector-parser": "^2.2.2", + "vendors": "^1.0.0" + }, + "dependencies": { + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "requires": { + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-message-helpers": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz", + "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=" + }, + "postcss-minify-font-values": { + "version": "1.0.5", + "resolved": "http://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz", + "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=", + "requires": { + "object-assign": "^4.0.1", + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.2" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-minify-gradients": { + "version": "1.0.5", + "resolved": "http://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz", + "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=", + "requires": { + "postcss": "^5.0.12", + "postcss-value-parser": "^3.3.0" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-minify-params": { + "version": "1.2.2", + "resolved": "http://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz", + "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=", + "requires": { + "alphanum-sort": "^1.0.1", + "postcss": "^5.0.2", + "postcss-value-parser": "^3.0.2", + "uniqs": "^2.0.0" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-minify-selectors": { + "version": "2.1.1", + "resolved": "http://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz", + "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=", + "requires": { + "alphanum-sort": "^1.0.2", + "has": "^1.0.1", + "postcss": "^5.0.14", + "postcss-selector-parser": "^2.0.0" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-modules-extract-imports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz", + "integrity": "sha1-thTJcgvmgW6u41+zpfqh26agXds=", + "requires": { + "postcss": "^6.0.1" + } + }, + "postcss-modules-local-by-default": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", + "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", + "requires": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + } + }, + "postcss-modules-scope": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", + "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", + "requires": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + } + }, + "postcss-modules-values": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", + "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", + "requires": { + "icss-replace-symbols": "^1.1.0", + "postcss": "^6.0.1" + } + }, + "postcss-normalize-charset": { + "version": "1.1.1", + "resolved": "http://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", + "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=", + "requires": { + "postcss": "^5.0.5" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-normalize-url": { + "version": "3.0.8", + "resolved": "http://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz", + "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=", + "requires": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^1.4.0", + "postcss": "^5.0.14", + "postcss-value-parser": "^3.2.3" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-ordered-values": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz", + "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=", + "requires": { + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.1" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-reduce-idents": { + "version": "2.4.0", + "resolved": "http://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz", + "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=", + "requires": { + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.2" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-reduce-initial": { + "version": "1.0.1", + "resolved": "http://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz", + "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=", + "requires": { + "postcss": "^5.0.4" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-reduce-transforms": { + "version": "1.0.4", + "resolved": "http://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz", + "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=", + "requires": { + "has": "^1.0.1", + "postcss": "^5.0.8", + "postcss-value-parser": "^3.0.1" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-selector-parser": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", + "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", + "requires": { + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "postcss-svgo": { + "version": "2.1.6", + "resolved": "http://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz", + "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=", + "requires": { + "is-svg": "^2.0.0", + "postcss": "^5.0.14", + "postcss-value-parser": "^3.2.3", + "svgo": "^0.7.0" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-unique-selectors": { + "version": "2.0.2", + "resolved": "http://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", + "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=", + "requires": { + "alphanum-sort": "^1.0.1", + "postcss": "^5.0.4", + "uniqs": "^2.0.0" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-value-parser": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", + "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=" + }, + "postcss-zindex": { + "version": "2.2.0", + "resolved": "http://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz", + "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=", + "requires": { + "has": "^1.0.1", + "postcss": "^5.0.4", + "uniqs": "^2.0.0" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=" + }, + "pretty-bytes": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz", + "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=" + }, + "pretty-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", + "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", + "requires": { + "renderkid": "^2.0.1", + "utila": "~0.4" + } + }, + "pretty-format": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-20.0.3.tgz", + "integrity": "sha1-Ag41ClYKH+GpjcO+tsz/s4beixQ=", + "requires": { + "ansi-regex": "^2.1.1", + "ansi-styles": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + } + } + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" + }, + "progress": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", + "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=" + }, + "promise": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.0.1.tgz", + "integrity": "sha1-5F1osAoXZHttpxG/he1u1HII9FA=", + "requires": { + "asap": "~2.0.3" + } + }, + "proxy-addr": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", + "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.8.0" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, + "psl": { + "version": "1.1.29", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz", + "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==" + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" + }, + "querystringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.0.0.tgz", + "integrity": "sha512-eTPo5t/4bgaMNZxyjWx6N2a6AuE0mq51KWvpc7nU/MAqixcI6v6KrGUKES0HaomdnolQBBXU/++X6/QQ9KL4tw==" + }, + "raf": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.0.tgz", + "integrity": "sha512-pDP/NMRAXoTfrhCfyfSEwJAKLaxBU9eApMeBPB1TkDouZmvPerIClV8lTAd+uF8ZiTaVl69e1FCxQrAd/VTjGw==", + "requires": { + "performance-now": "^2.1.0" + } + }, + "railroad-diagrams": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz", + "integrity": "sha1-635iZ1SN3t+4mcG5Dlc3RVnN234=" + }, + "randexp": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz", + "integrity": "sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==", + "requires": { + "discontinuous-range": "1.0.0", + "ret": "~0.1.10" + } + }, + "randomatic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.0.tgz", + "integrity": "sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==", + "requires": { + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, + "randombytes": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", + "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" + }, + "raw-body": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", + "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", + "requires": { + "bytes": "3.0.0", + "http-errors": "1.6.2", + "iconv-lite": "0.4.19", + "unpipe": "1.0.0" + }, + "dependencies": { + "depd": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", + "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" + }, + "http-errors": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", + "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "requires": { + "depd": "1.1.1", + "inherits": "2.0.3", + "setprototypeof": "1.0.3", + "statuses": ">= 1.3.1 < 2" + } + }, + "iconv-lite": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" + }, + "setprototypeof": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" + } + } + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + } + } + }, + "react": { + "version": "16.5.2", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "schedule": "^0.5.0" + }, + "dependencies": { + "prop-types": { + "version": "15.6.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", + "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", + "requires": { + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" + } + } + } + }, + "react-dev-utils": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-5.0.2.tgz", + "integrity": "sha512-d2FbKvYe4XAQx5gjHBoWG+ADqC3fGZzjb7i9vxd/Y5xfLkBGtQyX7aOb8lBRQPYUhjngiD3d49LevjY1stUR0Q==", + "requires": { + "address": "1.0.3", + "babel-code-frame": "6.26.0", + "chalk": "1.1.3", + "cross-spawn": "5.1.0", + "detect-port-alt": "1.1.6", + "escape-string-regexp": "1.0.5", + "filesize": "3.5.11", + "global-modules": "1.0.0", + "gzip-size": "3.0.0", + "inquirer": "3.3.0", + "is-root": "1.0.0", + "opn": "5.2.0", + "react-error-overlay": "^4.0.1", + "recursive-readdir": "2.2.1", + "shell-quote": "1.6.1", + "sockjs-client": "1.1.5", + "strip-ansi": "3.0.1", + "text-table": "0.2.0" + } + }, + "react-dom": { + "version": "16.5.2", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "schedule": "^0.5.0" + }, + "dependencies": { + "prop-types": { + "version": "15.6.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", + "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", + "requires": { + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" + } + } + } + }, + "react-error-overlay": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-4.0.1.tgz", + "integrity": "sha512-xXUbDAZkU08aAkjtUvldqbvI04ogv+a1XdHxvYuHPYKIVk/42BIOD0zSKTHAWV4+gDy3yGm283z2072rA2gdtw==" + }, + "react-event-listener": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/react-event-listener/-/react-event-listener-0.6.4.tgz", + "integrity": "sha512-t7VSjIuUFmN+GeyKb+wm025YLeojVB85kJL6sSs0wEBJddfmKBEQz+CNBZ2zBLKVWkPy/fZXM6U5yvojjYBVYQ==", + "requires": { + "@babel/runtime": "7.0.0", + "prop-types": "^15.6.0", + "warning": "^4.0.1" + }, + "dependencies": { + "prop-types": { + "version": "15.6.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", + "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", + "requires": { + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" + } + }, + "warning": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.2.tgz", + "integrity": "sha512-wbTp09q/9C+jJn4KKJfJfoS6VleK/Dti0yqWSm6KMvJ4MRCXFQNapHuJXutJIrWV0Cf4AhTdeIe4qdKHR1+Hug==", + "requires": { + "loose-envify": "^1.0.0" + } + } + } + }, + "react-is": { + "version": "16.5.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.5.2.tgz", + "integrity": "sha512-hSl7E6l25GTjNEZATqZIuWOgSnpXb3kD0DVCujmg46K5zLxsbiKaaT6VO9slkSBDPZfYs30lwfJwbOFOnoEnKQ==" + }, + "react-jss": { + "version": "8.6.1", + "resolved": "https://registry.npmjs.org/react-jss/-/react-jss-8.6.1.tgz", + "integrity": "sha512-SH6XrJDJkAphp602J14JTy3puB2Zxz1FkM3bKVE8wON+va99jnUTKWnzGECb3NfIn9JPR5vHykge7K3/A747xQ==", + "requires": { + "hoist-non-react-statics": "^2.5.0", + "jss": "^9.7.0", + "jss-preset-default": "^4.3.0", + "prop-types": "^15.6.0", + "theming": "^1.3.0" + }, + "dependencies": { + "prop-types": { + "version": "15.6.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", + "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", + "requires": { + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" + } + } + } + }, + "react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + }, + "react-redux": { + "version": "5.0.7", + "requires": { + "hoist-non-react-statics": "^2.5.0", + "invariant": "^2.0.0", + "lodash": "^4.17.5", + "lodash-es": "^4.17.5", + "loose-envify": "^1.1.0", + "prop-types": "^15.6.0" + }, + "dependencies": { + "prop-types": { + "version": "15.6.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", + "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", + "requires": { + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" + } + } + } + }, + "react-router": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-4.3.1.tgz", + "integrity": "sha512-yrvL8AogDh2X42Dt9iknk4wF4V8bWREPirFfS9gLU1huk6qK41sg7Z/1S81jjTrGHxa3B8R3J6xIkDAA6CVarg==", + "requires": { + "history": "^4.7.2", + "hoist-non-react-statics": "^2.5.0", + "invariant": "^2.2.4", + "loose-envify": "^1.3.1", + "path-to-regexp": "^1.7.0", + "prop-types": "^15.6.1", + "warning": "^4.0.1" + }, + "dependencies": { + "prop-types": { + "version": "15.6.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", + "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", + "requires": { + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" + } + }, + "warning": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.2.tgz", + "integrity": "sha512-wbTp09q/9C+jJn4KKJfJfoS6VleK/Dti0yqWSm6KMvJ4MRCXFQNapHuJXutJIrWV0Cf4AhTdeIe4qdKHR1+Hug==", + "requires": { + "loose-envify": "^1.0.0" + } + } + } + }, + "react-router-dom": { + "version": "4.3.1", + "requires": { + "history": "^4.7.2", + "invariant": "^2.2.4", + "loose-envify": "^1.3.1", + "prop-types": "^15.6.1", + "react-router": "^4.3.1", + "warning": "^4.0.1" + }, + "dependencies": { + "prop-types": { + "version": "15.6.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", + "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", + "requires": { + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" + } + }, + "warning": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.2.tgz", + "integrity": "sha512-wbTp09q/9C+jJn4KKJfJfoS6VleK/Dti0yqWSm6KMvJ4MRCXFQNapHuJXutJIrWV0Cf4AhTdeIe4qdKHR1+Hug==", + "requires": { + "loose-envify": "^1.0.0" + } + } + } + }, + "react-scripts": { + "version": "1.1.5", + "requires": { + "autoprefixer": "7.1.6", + "babel-core": "6.26.0", + "babel-eslint": "7.2.3", + "babel-jest": "20.0.3", + "babel-loader": "7.1.2", + "babel-preset-react-app": "^3.1.2", + "babel-runtime": "6.26.0", + "case-sensitive-paths-webpack-plugin": "2.1.1", + "chalk": "1.1.3", + "css-loader": "0.28.7", + "dotenv": "4.0.0", + "dotenv-expand": "4.2.0", + "eslint": "4.10.0", + "eslint-config-react-app": "^2.1.0", + "eslint-loader": "1.9.0", + "eslint-plugin-flowtype": "2.39.1", + "eslint-plugin-import": "2.8.0", + "eslint-plugin-jsx-a11y": "5.1.1", + "eslint-plugin-react": "7.4.0", + "extract-text-webpack-plugin": "3.0.2", + "file-loader": "1.1.5", + "fs-extra": "3.0.1", + "fsevents": "^1.1.3", + "html-webpack-plugin": "2.29.0", + "jest": "20.0.4", + "object-assign": "4.1.1", + "postcss-flexbugs-fixes": "3.2.0", + "postcss-loader": "2.0.8", + "promise": "8.0.1", + "raf": "3.4.0", + "react-dev-utils": "^5.0.2", + "resolve": "1.6.0", + "style-loader": "0.19.0", + "sw-precache-webpack-plugin": "0.11.4", + "url-loader": "0.6.2", + "webpack": "3.8.1", + "webpack-dev-server": "2.11.3", + "webpack-manifest-plugin": "1.3.2", + "whatwg-fetch": "2.0.3" + }, + "dependencies": { + "babel-core": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", + "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", + "requires": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.0", + "debug": "^2.6.8", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.7", + "slash": "^1.0.0", + "source-map": "^0.5.6" + } + } + } + }, + "react-transition-group": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.5.0.tgz", + "integrity": "sha512-qYB3JBF+9Y4sE4/Mg/9O6WFpdoYjeeYqx0AFb64PTazVy8RPMiE3A47CG9QmM4WJ/mzDiZYslV+Uly6O1Erlgw==", + "requires": { + "dom-helpers": "^3.3.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2", + "react-lifecycles-compat": "^3.0.4" + }, + "dependencies": { + "prop-types": { + "version": "15.6.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", + "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", + "requires": { + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" + } + } + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + } + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + } + } + }, + "recompose": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/recompose/-/recompose-0.30.0.tgz", + "integrity": "sha512-ZTrzzUDa9AqUIhRk4KmVFihH0rapdCSMFXjhHbNrjAWxBuUD/guYlyysMnuHjlZC/KRiOKRtB4jf96yYSkKE8w==", + "requires": { + "@babel/runtime": "^7.0.0", + "change-emitter": "^0.1.2", + "fbjs": "^0.8.1", + "hoist-non-react-statics": "^2.3.1", + "react-lifecycles-compat": "^3.0.2", + "symbol-observable": "^1.0.4" + } + }, + "recursive-readdir": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.1.tgz", + "integrity": "sha1-kO8jHQd4xc4JPJpI105cVCLROpk=", + "requires": { + "minimatch": "3.0.3" + }, + "dependencies": { + "minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=", + "requires": { + "brace-expansion": "^1.0.0" + } + } + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + } + }, + "reduce-css-calc": { + "version": "1.3.0", + "resolved": "http://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", + "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", + "requires": { + "balanced-match": "^0.4.2", + "math-expression-evaluator": "^1.2.14", + "reduce-function-call": "^1.0.1" + } + }, + "reduce-function-call": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz", + "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=", + "requires": { + "balanced-match": "^0.4.2" + } + }, + "redux": { + "version": "4.0.0", + "requires": { + "loose-envify": "^1.1.0", + "symbol-observable": "^1.2.0" + } + }, + "redux-mock-store": { + "version": "1.5.3", + "requires": { + "lodash.isplainobject": "^4.0.6" + } + }, + "redux-saga": { + "version": "0.16.0" + }, + "redux-saga-test-plan": { + "version": "3.7.0", + "requires": { + "core-js": "^2.4.1", + "fsm-iterator": "^1.1.0", + "lodash.isequal": "^4.5.0", + "lodash.ismatch": "^4.4.0", + "object-assign": "^4.1.0", + "util-inspect": "^0.1.8" + } + }, + "regenerate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==" + }, + "regenerator-runtime": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", + "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==" + }, + "regenerator-transform": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", + "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "requires": { + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" + } + }, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "requires": { + "is-equal-shallow": "^0.1.3" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "requires": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } + }, + "registry-auth-token": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", + "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", + "requires": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, + "registry-url": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", + "requires": { + "rc": "^1.0.1" + } + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=" + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" + } + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=" + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + }, + "renderkid": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.2.tgz", + "integrity": "sha512-FsygIxevi1jSiPY9h7vZmBFUbAOcbYm9UwyiLNdVsLRs/5We9Ob5NMPbGYUTWiLq5L+ezlVdE0A8bbME5CWTpg==", + "requires": { + "css-select": "^1.1.0", + "dom-converter": "~0.2", + "htmlparser2": "~3.3.0", + "strip-ansi": "^3.0.0", + "utila": "^0.4.0" + }, + "dependencies": { + "domhandler": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.1.0.tgz", + "integrity": "sha1-0mRvXlf2w7qxHPbLBdPArPdBJZQ=", + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.1.6.tgz", + "integrity": "sha1-vdw94Jm5ou+sxRxiPyj0FuzFdIU=", + "requires": { + "domelementtype": "1" + } + }, + "htmlparser2": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.3.0.tgz", + "integrity": "sha1-zHDQWln2VC5D8OaFyYLhTJJKnv4=", + "requires": { + "domelementtype": "1", + "domhandler": "2.1", + "domutils": "1.1", + "readable-stream": "1.0" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "requires": { + "is-finite": "^1.0.0" + } + }, + "request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-from-string": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", + "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=" + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + }, + "require-uncached": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", + "requires": { + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" + } + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" + }, + "resolve": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.6.0.tgz", + "integrity": "sha512-mw7JQNu5ExIkcw4LPih0owX/TZXjD/ZUF/ZQ/pDnkw3ZKhDcZZw5klmBlj6gVMwjQ3Pz5Jgu7F3d0jcDVuEWdw==", + "requires": { + "path-parse": "^1.0.5" + } + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "requires": { + "resolve-from": "^3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" + } + } + }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + } + }, + "resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=" + }, + "resolve-pathname": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-2.2.0.tgz", + "integrity": "sha512-bAFz9ld18RzJfddgrO2e/0S2O81710++chRMUxHjXOYKF6jTAMrUNZrEZ1PvV0zlhfjidm08iRPdTLPno1FuRg==" + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "requires": { + "align-text": "^0.1.1" + } + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "requires": { + "glob": "^7.0.5" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "rst-selector-parser": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz", + "integrity": "sha1-gbIw6i/MYGbInjRy3nlChdmwPZE=", + "requires": { + "lodash.flattendeep": "^4.4.0", + "nearley": "^2.7.10" + } + }, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "requires": { + "is-promise": "^2.1.0" + } + }, + "rx-lite": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=" + }, + "rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "requires": { + "rx-lite": "*" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sane": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/sane/-/sane-1.6.0.tgz", + "integrity": "sha1-lhDEUjB6E10pwf3+JUcDQYDEZ3U=", + "requires": { + "anymatch": "^1.3.0", + "exec-sh": "^0.2.0", + "fb-watchman": "^1.8.0", + "minimatch": "^3.0.2", + "minimist": "^1.1.1", + "walker": "~1.0.5", + "watch": "~0.10.0" + }, + "dependencies": { + "bser": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bser/-/bser-1.0.2.tgz", + "integrity": "sha1-OBEWlwsqbe6lZG3RXdcnhES1YWk=", + "requires": { + "node-int64": "^0.4.0" + } + }, + "fb-watchman": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-1.9.2.tgz", + "integrity": "sha1-okz0eCf4LTj7Waaa1wt247auc4M=", + "requires": { + "bser": "1.0.2" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + } + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "schedule": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/schedule/-/schedule-0.5.0.tgz", + "integrity": "sha512-HUcJicG5Ou8xfR//c2rPT0lPIRR09vVvN81T9fqfVgBmhERUbDEQoYKjpBxbueJnCPpSu2ujXzOnRQt6x9o/jw==", + "requires": { + "object-assign": "^4.1.1" + } + }, + "schema-utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", + "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", + "requires": { + "ajv": "^5.0.0" + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" + }, + "selfsigned": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.3.tgz", + "integrity": "sha512-vmZenZ+8Al3NLHkWnhBQ0x6BkML1eCP2xEi3JE+f3D9wW9fipD9NNJHYtE9XJM4TsPaHGZJIamrSI6MTg1dU2Q==", + "requires": { + "node-forge": "0.7.5" + } + }, + "semver": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", + "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==" + }, + "semver-diff": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", + "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", + "requires": { + "semver": "^5.0.3" + } + }, + "send": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" + }, + "dependencies": { + "mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" + } + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + } + }, + "serve-static": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", + "send": "0.16.2" + } + }, + "serviceworker-cache-polyfill": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serviceworker-cache-polyfill/-/serviceworker-cache-polyfill-4.0.0.tgz", + "integrity": "sha1-3hnuc77yGrPAdAo3sz22JGS6ves=" + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "sha.js": { + "version": "2.4.11", + "resolved": "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + }, + "shell-quote": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", + "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", + "requires": { + "array-filter": "~0.0.0", + "array-map": "~0.0.0", + "array-reduce": "~0.0.0", + "jsonify": "~0.0.0" + } + }, + "shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==" + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" + }, + "slice-ansi": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", + "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "requires": { + "is-fullwidth-code-point": "^2.0.0" + } + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "requires": { + "kind-of": "^3.2.0" + } + }, + "sockjs": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", + "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", + "requires": { + "faye-websocket": "^0.10.0", + "uuid": "^3.0.1" + }, + "dependencies": { + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "requires": { + "websocket-driver": ">=0.5.1" + } + } + } + }, + "sockjs-client": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.5.tgz", + "integrity": "sha1-G7fA9yIsQPQq3xT0RCy9Eml3GoM=", + "requires": { + "debug": "^2.6.6", + "eventsource": "0.1.6", + "faye-websocket": "~0.11.0", + "inherits": "^2.0.1", + "json3": "^3.3.2", + "url-parse": "^1.1.8" + }, + "dependencies": { + "json3": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", + "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=" + } + } + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "requires": { + "is-plain-obj": "^1.0.0" + } + }, + "source-list-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", + "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "source-map-resolve": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "requires": { + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "requires": { + "source-map": "^0.5.6" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" + }, + "spdx-correct": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz", + "integrity": "sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ==", + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==" + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.1.tgz", + "integrity": "sha512-TfOfPcYGBB5sDuPn3deByxPhmfegAhpDYKSOXZQN81Oyrrif8ZCodOLzK3AesELnCx03kikhyDwh0pfvvQvF8w==" + }, + "spdy": { + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz", + "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", + "requires": { + "debug": "^2.6.8", + "handle-thing": "^1.2.5", + "http-deceiver": "^1.2.7", + "safe-buffer": "^5.0.1", + "select-hose": "^2.0.0", + "spdy-transport": "^2.0.18" + } + }, + "spdy-transport": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.1.0.tgz", + "integrity": "sha512-bpUeGpZcmZ692rrTiqf9/2EUakI6/kXX1Rpe0ib/DyOzbiexVfXkw6GnvI9hVGvIwVaUhkaBojjCZwLNRGQg1g==", + "requires": { + "debug": "^2.6.8", + "detect-node": "^2.0.3", + "hpack.js": "^2.1.6", + "obuf": "^1.1.1", + "readable-stream": "^2.2.9", + "safe-buffer": "^5.0.1", + "wbuf": "^1.7.2" + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "sshpk": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", + "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" + }, + "stream-browserify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", + "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "string-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz", + "integrity": "sha1-VpcPscOFWOnnC3KL894mmsRa36w=", + "requires": { + "strip-ansi": "^3.0.0" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "string.prototype.trim": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz", + "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=", + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.5.0", + "function-bind": "^1.0.2" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "requires": { + "get-stdin": "^4.0.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + }, + "style-loader": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.19.0.tgz", + "integrity": "sha512-9mx9sC9nX1dgP96MZOODpGC6l1RzQBITI2D5WJhu+wnbrSYVKLGuy14XJSLVQih/0GFrPpjelt+s//VcZQ2Evw==", + "requires": { + "loader-utils": "^1.0.2", + "schema-utils": "^0.3.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + }, + "svgo": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", + "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=", + "requires": { + "coa": "~1.0.1", + "colors": "~1.1.2", + "csso": "~2.3.1", + "js-yaml": "~3.7.0", + "mkdirp": "~0.5.1", + "sax": "~1.2.1", + "whet.extend": "~0.9.9" + }, + "dependencies": { + "colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=" + } + } + }, + "sw-precache": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/sw-precache/-/sw-precache-5.2.1.tgz", + "integrity": "sha512-8FAy+BP/FXE+ILfiVTt+GQJ6UEf4CVHD9OfhzH0JX+3zoy2uFk7Vn9EfXASOtVmmIVbL3jE/W8Z66VgPSZcMhw==", + "requires": { + "dom-urls": "^1.1.0", + "es6-promise": "^4.0.5", + "glob": "^7.1.1", + "lodash.defaults": "^4.2.0", + "lodash.template": "^4.4.0", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "pretty-bytes": "^4.0.2", + "sw-toolbox": "^3.4.0", + "update-notifier": "^2.3.0" + } + }, + "sw-precache-webpack-plugin": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/sw-precache-webpack-plugin/-/sw-precache-webpack-plugin-0.11.4.tgz", + "integrity": "sha1-ppUBflTu1XVVFJOlGdwdqNotxeA=", + "requires": { + "del": "^2.2.2", + "sw-precache": "^5.1.1", + "uglify-js": "^3.0.13" + } + }, + "sw-toolbox": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/sw-toolbox/-/sw-toolbox-3.6.0.tgz", + "integrity": "sha1-Jt8dHHA0hljk3qKIQxkUm3sxg7U=", + "requires": { + "path-to-regexp": "^1.0.1", + "serviceworker-cache-polyfill": "^4.0.0" + } + }, + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" + }, + "symbol-tree": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz", + "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=" + }, + "table": { + "version": "4.0.3", + "resolved": "http://registry.npmjs.org/table/-/table-4.0.3.tgz", + "integrity": "sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg==", + "requires": { + "ajv": "^6.0.1", + "ajv-keywords": "^3.0.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", + "slice-ansi": "1.0.0", + "string-width": "^2.1.1" + }, + "dependencies": { + "ajv": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.4.tgz", + "integrity": "sha512-4Wyjt8+t6YszqaXnLDfMmG/8AlO5Zbcsy3ATHncCzjW/NoPzAId8AK6749Ybjmdt+kUY1gP60fCu46oDxPv/mg==", + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "tapable": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz", + "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=" + }, + "term-size": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", + "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "requires": { + "execa": "^0.7.0" + } + }, + "test-exclude": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.3.tgz", + "integrity": "sha512-SYbXgY64PT+4GAL2ocI3HwPa4Q4TBKm0cwAVeKOt/Aoc0gSpNRjJX8w0pA1LMKZ3LBmd8pYBqApFNQLII9kavA==", + "requires": { + "arrify": "^1.0.1", + "micromatch": "^2.3.11", + "object-assign": "^4.1.0", + "read-pkg-up": "^1.0.1", + "require-main-filename": "^1.0.1" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + }, + "theming": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/theming/-/theming-1.3.0.tgz", + "integrity": "sha512-ya5Ef7XDGbTPBv5ENTwrwkPUexrlPeiAg/EI9kdlUAZhNlRbCdhMKRgjNX1IcmsmiPcqDQZE6BpSaH+cr31FKw==", + "requires": { + "brcast": "^3.0.1", + "is-function": "^1.0.1", + "is-plain-object": "^2.0.1", + "prop-types": "^15.5.8" + }, + "dependencies": { + "prop-types": { + "version": "15.6.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", + "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", + "requires": { + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" + } + } + } + }, + "throat": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-3.2.0.tgz", + "integrity": "sha512-/EY8VpvlqJ+sFtLPeOgc8Pl7kQVOWv0woD87KTXVHPIAE842FGT+rokxIhe8xIUP1cfgrkt0as0vDLjDiMtr8w==" + }, + "through": { + "version": "2.3.8", + "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "thunky": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.2.tgz", + "integrity": "sha1-qGLgGOP7HqLsP85dVWBc9X8kc3E=" + }, + "time-stamp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-2.1.0.tgz", + "integrity": "sha512-lJbq6KsFhZJtN3fPUVje1tq/hHsJOKUUcUj/MGCiQR6qWBDcyi5kxL9J7/RnaEChCn0+L/DUN2WvemDrkk4i3Q==" + }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" + }, + "timers-browserify": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", + "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", + "requires": { + "setimmediate": "^1.0.4" + } + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "tmpl": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", + "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=" + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "toposort": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz", + "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=" + }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + } + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=" + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "optional": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-is": { + "version": "1.6.16", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", + "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.18" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "ua-parser-js": { + "version": "0.7.18", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.18.tgz", + "integrity": "sha512-LtzwHlVHwFGTptfNSgezHp7WUlwiqb0gA9AALRbKaERfxwJoiX0A73QbTToxteIAuIaFshhgIZfqK8s7clqgnA==" + }, + "uglify-js": { + "version": "3.4.9", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.9.tgz", + "integrity": "sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==", + "requires": { + "commander": "~2.17.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "optional": true + }, + "uglifyjs-webpack-plugin": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", + "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", + "requires": { + "source-map": "^0.5.6", + "uglify-js": "^2.8.29", + "webpack-sources": "^1.0.1" + }, + "dependencies": { + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=" + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "requires": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + } + }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "requires": { + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" + } + }, + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=" + }, + "yargs": { + "version": "3.10.0", + "resolved": "http://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "requires": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } + } + } + }, + "underscore": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz", + "integrity": "sha1-YaajIBBiKvoHljvzJSA88SI51gQ=" + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" + } + } + } + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=" + }, + "unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "requires": { + "crypto-random-string": "^1.0.0" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + } + } + }, + "unzip-response": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", + "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=" + }, + "upath": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz", + "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==" + }, + "update-notifier": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", + "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", + "requires": { + "boxen": "^1.2.1", + "chalk": "^2.0.1", + "configstore": "^3.0.0", + "import-lazy": "^2.1.0", + "is-ci": "^1.0.10", + "is-installed-globally": "^0.1.0", + "is-npm": "^1.0.0", + "latest-version": "^3.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "requires": { + "punycode": "^2.1.0" + } + }, + "urijs": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.1.tgz", + "integrity": "sha512-xVrGVi94ueCJNrBSTjWqjvtgvl3cyOTThp2zaMaFNGp3F542TR6sM3f2o8RqZl+AwteClSVmoCyt0ka4RjQOQg==" + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + } + } + }, + "url-loader": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-0.6.2.tgz", + "integrity": "sha512-h3qf9TNn53BpuXTTcpC+UehiRrl0Cv45Yr/xWayApjw6G8Bg2dGke7rIwDQ39piciWCWrC+WiqLjOh3SUp9n0Q==", + "requires": { + "loader-utils": "^1.0.2", + "mime": "^1.4.1", + "schema-utils": "^0.3.0" + } + }, + "url-parse": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.3.tgz", + "integrity": "sha512-rh+KuAW36YKo0vClhQzLLveoj8FwPJNu65xLb7Mrt+eZht0IPT0IXgSv8gcMegZ6NvjJUALf6Mf25POlMwD1Fw==", + "requires": { + "querystringify": "^2.0.0", + "requires-port": "^1.0.0" + } + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "requires": { + "prepend-http": "^1.0.1" + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + }, + "util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "requires": { + "inherits": "2.0.3" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "util-inspect": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/util-inspect/-/util-inspect-0.1.8.tgz", + "integrity": "sha1-KznbzS2SHy2EMJI8r/QPS1zqXbE=", + "requires": { + "array-map": "0.0.0", + "array-reduce": "0.0.0", + "foreach": "2.0.4", + "indexof": "0.0.1", + "isarray": "0.0.1", + "json3": "3.3.0", + "object-keys": "0.5.0" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "object-keys": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.5.0.tgz", + "integrity": "sha1-CeIR8+ADGK/E9ZLjbnzcENmtcpM=" + } + } + }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "value-equal": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-0.4.0.tgz", + "integrity": "sha512-x+cYdNnaA3CxvMaTX0INdTCN8m8aF2uY9BvEqmxuYp8bL09cs/kWVQPVGcA35fMktdOsP69IgU7wFj/61dJHEw==" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "vendors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.2.tgz", + "integrity": "sha512-w/hry/368nO21AN9QljsaIhb9ZiZtZARoVH5f3CsFbawdLdayCgKRPup7CggujvySMxx0I91NOyxdVENohprLQ==" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vm-browserify": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", + "requires": { + "indexof": "0.0.1" + } + }, + "walker": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", + "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", + "requires": { + "makeerror": "1.0.x" + } + }, + "warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", + "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", + "requires": { + "loose-envify": "^1.0.0" + } + }, + "watch": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/watch/-/watch-0.10.0.tgz", + "integrity": "sha1-d3mLLaD5kQ1ZXxrOWwwiWFIfIdw=" + }, + "watchpack": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", + "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", + "requires": { + "chokidar": "^2.0.2", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" + }, + "webpack": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.8.1.tgz", + "integrity": "sha512-5ZXLWWsMqHKFr5y0N3Eo5IIisxeEeRAajNq4mELb/WELOR7srdbQk2N5XiyNy2A/AgvlR3AmeBCZJW8lHrolbw==", + "requires": { + "acorn": "^5.0.0", + "acorn-dynamic-import": "^2.0.0", + "ajv": "^5.1.5", + "ajv-keywords": "^2.0.0", + "async": "^2.1.2", + "enhanced-resolve": "^3.4.0", + "escope": "^3.6.0", + "interpret": "^1.0.0", + "json-loader": "^0.5.4", + "json5": "^0.5.1", + "loader-runner": "^2.3.0", + "loader-utils": "^1.1.0", + "memory-fs": "~0.4.1", + "mkdirp": "~0.5.0", + "node-libs-browser": "^2.0.0", + "source-map": "^0.5.3", + "supports-color": "^4.2.1", + "tapable": "^0.2.7", + "uglifyjs-webpack-plugin": "^0.4.6", + "watchpack": "^1.4.0", + "webpack-sources": "^1.0.1", + "yargs": "^8.0.2" + }, + "dependencies": { + "ajv-keywords": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", + "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=" + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + } + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "requires": { + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "requires": { + "pify": "^2.0.0" + } + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "requires": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "requires": { + "has-flag": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "yargs": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", + "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", + "requires": { + "camelcase": "^4.1.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "read-pkg-up": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^7.0.0" + } + }, + "yargs-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "requires": { + "camelcase": "^4.1.0" + } + } + } + }, + "webpack-dev-middleware": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz", + "integrity": "sha512-FCrqPy1yy/sN6U/SaEZcHKRXGlqU0DUaEBL45jkUYoB8foVb6wCnbIJ1HKIx+qUFTW+3JpVcCJCxZ8VATL4e+A==", + "requires": { + "memory-fs": "~0.4.1", + "mime": "^1.5.0", + "path-is-absolute": "^1.0.0", + "range-parser": "^1.0.3", + "time-stamp": "^2.0.0" + } + }, + "webpack-dev-server": { + "version": "2.11.3", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-2.11.3.tgz", + "integrity": "sha512-Qz22YEFhWx+M2vvJ+rQppRv39JA0h5NNbOOdODApdX6iZ52Diz7vTPXjF7kJlfn+Uc24Qr48I3SZ9yncQwRycg==", + "requires": { + "ansi-html": "0.0.7", + "array-includes": "^3.0.3", + "bonjour": "^3.5.0", + "chokidar": "^2.0.0", + "compression": "^1.5.2", + "connect-history-api-fallback": "^1.3.0", + "debug": "^3.1.0", + "del": "^3.0.0", + "express": "^4.16.2", + "html-entities": "^1.2.0", + "http-proxy-middleware": "~0.17.4", + "import-local": "^1.0.0", + "internal-ip": "1.2.0", + "ip": "^1.1.5", + "killable": "^1.0.0", + "loglevel": "^1.4.1", + "opn": "^5.1.0", + "portfinder": "^1.0.9", + "selfsigned": "^1.9.1", + "serve-index": "^1.7.2", + "sockjs": "0.3.19", + "sockjs-client": "1.1.5", + "spdy": "^3.4.1", + "strip-ansi": "^3.0.0", + "supports-color": "^5.1.0", + "webpack-dev-middleware": "1.12.2", + "yargs": "6.6.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "del": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", + "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", + "requires": { + "globby": "^6.1.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "p-map": "^1.1.1", + "pify": "^3.0.0", + "rimraf": "^2.2.8" + } + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "yargs": { + "version": "6.6.0", + "resolved": "http://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", + "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", + "requires": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^4.2.0" + } + }, + "yargs-parser": { + "version": "4.2.1", + "resolved": "http://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", + "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", + "requires": { + "camelcase": "^3.0.0" + } + } + } + }, + "webpack-manifest-plugin": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-1.3.2.tgz", + "integrity": "sha512-MX60Bv2G83Zks9pi3oLOmRgnPAnwrlMn+lftMrWBm199VQjk46/xgzBi9lPfpZldw2+EI2S+OevuLIaDuxCWRw==", + "requires": { + "fs-extra": "^0.30.0", + "lodash": ">=3.5 <5" + }, + "dependencies": { + "fs-extra": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", + "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0", + "path-is-absolute": "^1.0.0", + "rimraf": "^2.2.8" + } + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "http://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "requires": { + "graceful-fs": "^4.1.6" + } + } + } + }, + "webpack-sources": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz", + "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==", + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "websocket-driver": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", + "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", + "requires": { + "http-parser-js": ">=0.4.0", + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", + "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==" + }, + "whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "requires": { + "iconv-lite": "0.4.24" + } + }, + "whatwg-fetch": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz", + "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=" + }, + "whatwg-url": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-4.8.0.tgz", + "integrity": "sha1-0pgaqRSMHgCkHFphMRZqtGg7vMA=", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + }, + "dependencies": { + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + } + } + }, + "whet.extend": { + "version": "0.9.9", + "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", + "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=" + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" + }, + "widest-line": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.0.tgz", + "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", + "requires": { + "string-width": "^2.1.1" + } + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=" + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + }, + "worker-farm": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz", + "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", + "requires": { + "errno": "~0.1.7" + } + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "requires": { + "mkdirp": "^0.5.1" + } + }, + "write-file-atomic": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", + "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "xdg-basedir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", + "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=" + }, + "xml-name-validator": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz", + "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=" + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + }, + "yargs": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", + "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "requires": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^5.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "yargs-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", + "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", + "requires": { + "camelcase": "^3.0.0" + } + } + } +} diff --git a/package.json b/package.json index 6745f15..7e78a94 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "@material-ui/icons": "^3.0.1", "ag-grid-community": "^19.0.0", "ag-grid-react": "^19.0.0", + "axios": "^0.18.0", "enzyme": "^3.6.0", "enzyme-adapter-react-16": "^1.5.0", "prop-types": "^15.6.2", diff --git a/src/components/header_bar/middleware.js b/src/components/header_bar/middleware.js index 14c75c7..97b416b 100644 --- a/src/components/header_bar/middleware.js +++ b/src/components/header_bar/middleware.js @@ -1,14 +1,16 @@ import { call, put } from 'redux-saga/effects'; -import { _getAuthUser } from './../../utils/api'; +import { _getAuthedUserData } from './../../utils/api/mock_api_requests'; import { deliverAuthedUser } from './actions'; import { failUsers } from './../../hoc/error_handler/actions'; export function* getAuthedUser() { try { - const payloadArray = yield call(_getAuthUser); - yield put(deliverAuthedUser(payloadArray)) + const payloadData = yield call( _getAuthedUserData); + + yield put(deliverAuthedUser([payloadData])) } catch (error) { + debugger yield put(failUsers(error)); } } \ No newline at end of file diff --git a/src/utils/api/mock_api_requests.js b/src/utils/api/mock_api_requests.js new file mode 100644 index 0000000..d6d7277 --- /dev/null +++ b/src/utils/api/mock_api_requests.js @@ -0,0 +1,19 @@ +import axios from 'axios'; + +export function _getAuthedUserData () { + + const response = axios.get('http://www.mocky.io/v2/5bbdcb733100009c00711167').then(function (data){ + return data; + }); + + const returnedData = axios.all ([ + response + ]).then((data) => { + return data[0].data + }).catch((error) => { + console.log(error); + }) + + return returnedData; + +} \ No newline at end of file -- GitLab From a8e497df175a68b3f21ed2aa47f48c0fab2f6c23 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Wed, 10 Oct 2018 15:46:47 +0300 Subject: [PATCH 062/249] NY-4307 :: Intergrade redux persists localstorage --- package.json | 1 + src/index.js | 33 +++++++++++++++++---- src/utils/localstorage/configure_persist.js | 10 +++++++ 3 files changed, 39 insertions(+), 5 deletions(-) create mode 100644 src/utils/localstorage/configure_persist.js diff --git a/package.json b/package.json index 7e78a94..7a8237c 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "react-test-renderer": "^16.5.2", "redux": "^4.0.0", "redux-mock-store": "^1.5.3", + "redux-persist": "^5.10.0", "redux-saga": "^0.16.0", "redux-saga-test-plan": "^3.7.0" }, diff --git a/src/index.js b/src/index.js index d8f718b..ef20415 100644 --- a/src/index.js +++ b/src/index.js @@ -3,18 +3,41 @@ import ReactDOM from 'react-dom'; import { createStore } from 'redux'; import { Provider } from 'react-redux'; -import combineReducers from './store/root_reducers'; -import combineMiddleware, { sagaMiddleware, combineSagas } from './store/root_middleware'; +import rootReducer from './store/root_reducers'; +import rootMiddleware, { sagaMiddleware, combineSagas } from './store/root_middleware'; + +import { persistStore, persistReducer } from "redux-persist"; +import { PersistGate } from "redux-persist/integration/react"; +import persistConfig from './utils/localstorage/configure_persist'; + +import { MuiThemeProvider, createMuiTheme } from "@material-ui/core/styles"; import './index.css'; import App from './App'; -const store = createStore(combineReducers, combineMiddleware); +const theme = createMuiTheme({ + typography: { + useNextVariants: true + } +}); + +const persistedReducer = persistReducer(persistConfig, rootReducer); +const store = createStore(persistedReducer, rootMiddleware); +const persistor = persistStore(store); + sagaMiddleware.run(combineSagas); ReactDOM.render( - - , + + + + + + + + + + , document.getElementById('root') ); \ No newline at end of file diff --git a/src/utils/localstorage/configure_persist.js b/src/utils/localstorage/configure_persist.js new file mode 100644 index 0000000..7323883 --- /dev/null +++ b/src/utils/localstorage/configure_persist.js @@ -0,0 +1,10 @@ +import storage from "redux-persist/lib/storage"; +import autoMergeLevel1 from "redux-persist/lib/stateReconciler/autoMergeLevel1"; + +const persistConfig = { + key: "root", + storage, + stateReconciler: autoMergeLevel1 +}; + +export default persistConfig; \ No newline at end of file -- GitLab From 0c0b4cf24ba7b664070b7db038cce9bda51fa179 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Wed, 10 Oct 2018 16:41:03 +0300 Subject: [PATCH 063/249] NY-4307 localstorage update influencing package log data --- package-lock.json | 39 +++++++++++++++++++++++++++++++++++++-- yarn.lock | 17 +++++++++++++++++ 2 files changed, 54 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 39c4329..682b1b6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,6 +14,8 @@ }, "@material-ui/core": { "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-3.1.2.tgz", + "integrity": "sha512-tTRjlTVJY78GDKRHKSuxpoghrFyDAu9GrYCnaARHaZ2pZWiBHuviqUgAC8n8jWUXG3e6vfAXn9zZWzFedb4LwQ==", "requires": { "@babel/runtime": "7.0.0", "@types/jss": "^9.5.6", @@ -65,6 +67,8 @@ }, "@material-ui/icons": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@material-ui/icons/-/icons-3.0.1.tgz", + "integrity": "sha512-1kNcxYiIT1x8iDPEAlgmKrfRTIV8UyK6fLVcZ9kMHIKGWft9I451V5mvSrbCjbf7MX1TbLWzZjph0aVCRf9MqQ==", "requires": { "@babel/runtime": "7.0.0", "recompose": "^0.29.0" @@ -191,10 +195,14 @@ "integrity": "sha512-z55ocwKBRLryBs394Sm3ushTtBeg6VAeuku7utSoSnsJKvKcnXFIyC6vh27n3rXyxSgkJBBCAvyOn7gSUcTYjg==" }, "ag-grid-community": { - "version": "19.0.0" + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/ag-grid-community/-/ag-grid-community-19.0.0.tgz", + "integrity": "sha512-Qvf3+GUf+4XKxJTGGMZfxFiKBlMlBaGRSjNV2PdvyUuMs69nva++1p+jrRcbwS/jFHRdCqap6toNvzbc+EU2yQ==" }, "ag-grid-react": { "version": "19.0.0", + "resolved": "https://registry.npmjs.org/ag-grid-react/-/ag-grid-react-19.0.0.tgz", + "integrity": "sha512-AhpblCmO3LWhKVvA513MzqCYwDWfMpFJ8/wqL0DXqOqnDajvVRfnQsxVvuv37kLR3L1w+3g4GLroyQ9MuyiIEQ==", "requires": { "prop-types": "15.6.0" }, @@ -3166,6 +3174,8 @@ }, "enzyme": { "version": "3.6.0", + "resolved": "https://registry.npmjs.org/enzyme/-/enzyme-3.6.0.tgz", + "integrity": "sha512-onsINzVLGqKIapTVfWkkw6bYvm1o4CyJ9s8POExtQhAkVa4qFDW6DGCQGRy/5bfZYk+gmUbMNyayXiWDzTkHFQ==", "requires": { "array.prototype.flat": "^1.2.1", "cheerio": "^1.0.0-rc.2", @@ -3190,6 +3200,8 @@ }, "enzyme-adapter-react-16": { "version": "1.5.0", + "resolved": "https://registry.npmjs.org/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.5.0.tgz", + "integrity": "sha512-R2LcVvMB2UwPH763d5jDtVedAIcEj+uZjOnq0nd1sOUs6z8TDbyHDvt8VwfrS4wMt7CawoyPmH0XzC8MtEqqDw==", "requires": { "enzyme-adapter-utils": "^1.8.0", "function.prototype.name": "^1.1.0", @@ -8884,6 +8896,8 @@ }, "react": { "version": "16.5.2", + "resolved": "https://registry.npmjs.org/react/-/react-16.5.2.tgz", + "integrity": "sha512-FDCSVd3DjVTmbEAjUNX6FgfAmQ+ypJfHUsqUJOYNCBUp1h8lqmtC+0mXJ+JjsWx4KAVTkk1vKd1hLQPvEviSuw==", "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", @@ -8929,6 +8943,8 @@ }, "react-dom": { "version": "16.5.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.5.2.tgz", + "integrity": "sha512-RC8LDw8feuZOHVgzEf7f+cxBr/DnKdqp56VU0lAs1f4UfKc4cU8wU4fTq/mgnvynLQo8OtlPC19NUFh/zjZPuA==", "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", @@ -9016,6 +9032,8 @@ }, "react-redux": { "version": "5.0.7", + "resolved": "http://registry.npmjs.org/react-redux/-/react-redux-5.0.7.tgz", + "integrity": "sha512-5VI8EV5hdgNgyjfmWzBbdrqUkrVRKlyTKk1sGH3jzM2M2Mhj/seQgPXaz6gVAj2lz/nz688AdTqMO18Lr24Zhg==", "requires": { "hoist-non-react-statics": "^2.5.0", "invariant": "^2.0.0", @@ -9071,6 +9089,8 @@ }, "react-router-dom": { "version": "4.3.1", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-4.3.1.tgz", + "integrity": "sha512-c/MlywfxDdCp7EnB7YfPMOfMD3tOtIjrQlj/CKfNMBxdmpJP8xcz5P/UAFn3JbnQCNUxsHyVVqllF9LhgVyFCA==", "requires": { "history": "^4.7.2", "invariant": "^2.2.4", @@ -9101,6 +9121,8 @@ }, "react-scripts": { "version": "1.1.5", + "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-1.1.5.tgz", + "integrity": "sha512-ZXqnbg+kLRaacAkjuedMFTgKu9lNltMDDsuwn37CTV7X2tuZQmDKi08eI3LYvtpjqh5vm8/6BhwHRHkRtvMyJg==", "requires": { "autoprefixer": "7.1.6", "babel-core": "6.26.0", @@ -9513,6 +9535,8 @@ }, "redux": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.0.0.tgz", + "integrity": "sha512-NnnHF0h0WVE/hXyrB6OlX67LYRuaf/rJcbWvnHHEPCF/Xa/AZpwhs/20WyqzQae5x4SD2F9nPObgBh2rxAgLiA==", "requires": { "loose-envify": "^1.1.0", "symbol-observable": "^1.2.0" @@ -9520,15 +9544,26 @@ }, "redux-mock-store": { "version": "1.5.3", + "resolved": "https://registry.npmjs.org/redux-mock-store/-/redux-mock-store-1.5.3.tgz", + "integrity": "sha512-ryhkkb/4D4CUGpAV2ln1GOY/uh51aczjcRz9k2L2bPx/Xja3c5pSGJJPyR25GNVRXtKIExScdAgFdiXp68GmJA==", "requires": { "lodash.isplainobject": "^4.0.6" } }, + "redux-persist": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/redux-persist/-/redux-persist-5.10.0.tgz", + "integrity": "sha512-sSJAzNq7zka3qVHKce1hbvqf0Vf5DuTVm7dr4GtsqQVOexnrvbV47RWFiPxQ8fscnyiuWyD2O92DOxPl0tGCRg==" + }, "redux-saga": { - "version": "0.16.0" + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/redux-saga/-/redux-saga-0.16.0.tgz", + "integrity": "sha1-CiMdsKFIkwHdmA9vL4jYztQY9yQ=" }, "redux-saga-test-plan": { "version": "3.7.0", + "resolved": "https://registry.npmjs.org/redux-saga-test-plan/-/redux-saga-test-plan-3.7.0.tgz", + "integrity": "sha512-et9kCnME01kjoKXFfSk4FkozgOPPvllt9TlpL6A7ZYIS/WgoEFMLXk/UYww8KWXbmk5Qo2IF6xCc/IS1KmvP6A==", "requires": { "core-js": "^2.4.1", "fsm-iterator": "^1.1.0", diff --git a/yarn.lock b/yarn.lock index 634cda4..fd6845f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -429,6 +429,13 @@ aws4@^1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" +axios@^0.18.0: + version "0.18.0" + resolved "http://registry.npmjs.org/axios/-/axios-0.18.0.tgz#32d53e4851efdc0a11993b6cd000789d70c05102" + dependencies: + follow-redirects "^1.3.0" + is-buffer "^1.1.5" + axobject-query@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-0.1.0.tgz#62f59dbc59c9f9242759ca349960e7a2fe3c36c0" @@ -2989,6 +2996,12 @@ follow-redirects@^1.0.0: dependencies: debug "=3.1.0" +follow-redirects@^1.3.0: + version "1.5.9" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.9.tgz#c9ed9d748b814a39535716e531b9196a845d89c6" + dependencies: + debug "=3.1.0" + for-in@^1.0.1, for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" @@ -6271,6 +6284,10 @@ redux-mock-store@^1.5.3: dependencies: lodash.isplainobject "^4.0.6" +redux-persist@^5.10.0: + version "5.10.0" + resolved "https://registry.yarnpkg.com/redux-persist/-/redux-persist-5.10.0.tgz#5d8d802c5571e55924efc1c3a9b23575283be62b" + redux-saga-test-plan@^3.7.0: version "3.7.0" resolved "https://registry.yarnpkg.com/redux-saga-test-plan/-/redux-saga-test-plan-3.7.0.tgz#c8f513b1c6e13eef526a6b8a2e9076b6f26f5698" -- GitLab From 984a1c2f47549707e22ab3bddbc469b8b0c42e73 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Wed, 10 Oct 2018 18:13:53 +0300 Subject: [PATCH 064/249] NY-4333 :: [WEB] Global Error Interceptor integrated --- src/App.js | 8 +-- .../edit_user/available_data/index.js | 5 +- .../edit_user/generic_data/index.js | 5 +- src/components/dashboard_users/index.js | 5 +- src/components/header_bar/index.js | 6 +-- src/components/header_bar/middleware.js | 6 +-- src/components/shared/ui/modal/modal.js | 1 - src/components/shared/ui/spinner.js | 1 + src/data_instance.js | 8 +++ .../interceptor_error/interceptor_error.js | 53 +++++++++++++++++++ src/index.js | 3 +- src/utils/api/mock_api_requests.js | 14 ++--- 12 files changed, 88 insertions(+), 27 deletions(-) create mode 100644 src/data_instance.js create mode 100644 src/hoc/interceptor_error/interceptor_error.js diff --git a/src/App.js b/src/App.js index 42f25ca..e71b60b 100644 --- a/src/App.js +++ b/src/App.js @@ -1,6 +1,5 @@ import React, { Component, Fragment } from 'react'; import { BrowserRouter as Router, Route, Switch } from 'react-router-dom'; -import { connect } from 'react-redux'; import PropTypes from "prop-types"; import { withStyles } from "@material-ui/core/styles"; @@ -13,6 +12,9 @@ import PageNotFound from './components/page_not_found'; import Sidebar from './components/sidebar'; import HeaderBar from './components/header_bar'; +import ErrorInterceptor from "./hoc/interceptor_error/interceptor_error"; +import axios from "./data_instance"; + /** * @const {object} styles coming from Material UI will go here */ @@ -42,7 +44,7 @@ class App extends Component { /** * @const {object} classes coming from material ui - * @const {object} leftSideNav related to show hide left side Navbar + * @const {object} leftSideNav related to show hide left side Navbar */ const { classes } = this.props; const { leftSideNav } = this.state; @@ -91,4 +93,4 @@ App.propTypes = { classes: PropTypes.object.isRequired }; -export default withStyles(styles)(connect()(App)); \ No newline at end of file +export default withStyles(styles)(ErrorInterceptor(App, axios)); \ No newline at end of file diff --git a/src/components/dashboard_users/edit_user/available_data/index.js b/src/components/dashboard_users/edit_user/available_data/index.js index 3be4a12..2658b15 100644 --- a/src/components/dashboard_users/edit_user/available_data/index.js +++ b/src/components/dashboard_users/edit_user/available_data/index.js @@ -4,7 +4,6 @@ import PropTypes from "prop-types"; import { withStyles } from "@material-ui/core/styles"; import Card from "@material-ui/core/Card"; import CardContent from "@material-ui/core/CardContent"; -import Typography from "@material-ui/core/Typography"; const styles = {}; @@ -23,12 +22,12 @@ const AvailableData = (props) => { - +

{ selectedUser.length > 0 && selectedUser[0][selectedCategory] } - +

diff --git a/src/components/dashboard_users/edit_user/generic_data/index.js b/src/components/dashboard_users/edit_user/generic_data/index.js index 67e1cd1..da68ea0 100644 --- a/src/components/dashboard_users/edit_user/generic_data/index.js +++ b/src/components/dashboard_users/edit_user/generic_data/index.js @@ -5,7 +5,6 @@ import { withStyles } from "@material-ui/core/styles"; import Card from "@material-ui/core/Card"; import CardContent from "@material-ui/core/CardContent"; -import Typography from "@material-ui/core/Typography"; const styles = {}; @@ -26,9 +25,9 @@ const genericUserData = (props) => { - +

{selectedUser[0].firstName} {selectedUser[0].lastName} - +

diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 7b79a5e..1acd44a 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -14,7 +14,6 @@ import "./css/ag-grid.css"; import "./css/ag-theme-material.css"; import ErrorHandler from "../../hoc/error_handler/"; - class DashboardUsers extends Component { /** @@ -162,9 +161,7 @@ class DashboardUsers extends Component { { - error - ? - : content + content } diff --git a/src/components/header_bar/index.js b/src/components/header_bar/index.js index 21c000f..5fec241 100644 --- a/src/components/header_bar/index.js +++ b/src/components/header_bar/index.js @@ -35,12 +35,12 @@ class HeaderBar extends Component { * @const {object} classes * @const {string} adaptiveWidth * @const {string} firstName - * @const {string} lastName + * @const {string} lastName */ const { classes, adaptiveWidth, firstName, lastName } = this.props; return ( - + {firstName} {lastName} @@ -72,4 +72,4 @@ const mapDispatchToProps = (dispatch) => { }, dispatch) } -export default withStyles(styles)(connect(mapStateToProps, mapDispatchToProps)(HeaderBar));; \ No newline at end of file +export default withStyles(styles)(connect(mapStateToProps, mapDispatchToProps)(HeaderBar)); \ No newline at end of file diff --git a/src/components/header_bar/middleware.js b/src/components/header_bar/middleware.js index 97b416b..9edc6e2 100644 --- a/src/components/header_bar/middleware.js +++ b/src/components/header_bar/middleware.js @@ -6,11 +6,11 @@ import { failUsers } from './../../hoc/error_handler/actions'; export function* getAuthedUser() { try { const payloadData = yield call( _getAuthedUserData); - + yield put(deliverAuthedUser([payloadData])) } catch (error) { - debugger + yield put(failUsers(error)); - } + } } \ No newline at end of file diff --git a/src/components/shared/ui/modal/modal.js b/src/components/shared/ui/modal/modal.js index 6d6fbe8..51c9fb0 100644 --- a/src/components/shared/ui/modal/modal.js +++ b/src/components/shared/ui/modal/modal.js @@ -29,7 +29,6 @@ class Modal extends Component { } Modal.propTypes = { - show: PropTypes.bool.isRequired, modalClosed: PropTypes.func.isRequired }; diff --git a/src/components/shared/ui/spinner.js b/src/components/shared/ui/spinner.js index c4a6fc7..6d4aca4 100644 --- a/src/components/shared/ui/spinner.js +++ b/src/components/shared/ui/spinner.js @@ -13,6 +13,7 @@ const styles = theme => ({ function spinner(props) { const { classes } = props; + return ( diff --git a/src/data_instance.js b/src/data_instance.js new file mode 100644 index 0000000..a210bd0 --- /dev/null +++ b/src/data_instance.js @@ -0,0 +1,8 @@ +import axios from 'axios'; + +const instance = axios.create({ + baseURL: "http://www.mocky.io/v2/5bbdcb733100009c00711167", + // baseURL: "http://www.mocky.io/v2/5bbe0dd631000038007113a5" +}); + +export default instance; \ No newline at end of file diff --git a/src/hoc/interceptor_error/interceptor_error.js b/src/hoc/interceptor_error/interceptor_error.js new file mode 100644 index 0000000..8466306 --- /dev/null +++ b/src/hoc/interceptor_error/interceptor_error.js @@ -0,0 +1,53 @@ +import React, { Component, Fragment } from "react"; +import Modal from "../../components/shared/ui/modal/modal"; + +const ErrorInterceptor = (WrappedComponent, axios) => { + + return class extends Component { + + state = { + error: null + }; + + componentWillMount() { + console.log("[GLOBAL ERROR LISTENER WAS ACTIVATED] :: componentWillMount()"); + + this.reqInterceptor = axios.interceptors.request.use(request => { + + this.setState({ error: null }); + return request; + }); + + this.resInterceptor = axios.interceptors.response.use(response => response, error => { + this.setState({ error: error }) + }); + }; + + componentWillUnmount() { + + axios.interceptors.request.eject(this.reqInterceptor); + axios.interceptors.response.eject(this.resInterceptor); + }; + + errorConfirmedHandler = () => { + this.setState({ error: null }) + }; + + render() { + const { error } = this.state; + return ( + + + + {error ? error.message : null} + + + + + + ); + } + } +} + +export default ErrorInterceptor; \ No newline at end of file diff --git a/src/index.js b/src/index.js index ef20415..4eae180 100644 --- a/src/index.js +++ b/src/index.js @@ -11,6 +11,7 @@ import { PersistGate } from "redux-persist/integration/react"; import persistConfig from './utils/localstorage/configure_persist'; import { MuiThemeProvider, createMuiTheme } from "@material-ui/core/styles"; +import Spinner from './components/shared//ui/spinner'; import './index.css'; import App from './App'; @@ -30,7 +31,7 @@ sagaMiddleware.run(combineSagas); ReactDOM.render( - + } persistor={persistor}> diff --git a/src/utils/api/mock_api_requests.js b/src/utils/api/mock_api_requests.js index d6d7277..8c4304c 100644 --- a/src/utils/api/mock_api_requests.js +++ b/src/utils/api/mock_api_requests.js @@ -1,17 +1,19 @@ -import axios from 'axios'; +// import axios from 'axios'; +import axios from '../../data_instance'; export function _getAuthedUserData () { - - const response = axios.get('http://www.mocky.io/v2/5bbdcb733100009c00711167').then(function (data){ - return data; - }); - const returnedData = axios.all ([ + const response = axios.get(); + + const returnedData = axios.all ([ response ]).then((data) => { return data[0].data + }).catch((error) => { + console.log('===================================='); console.log(error); + console.log('===================================='); }) return returnedData; -- GitLab From 5ba3a0c5124143ffb613fb81fd58a1fae94c19ea Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Thu, 11 Oct 2018 10:31:08 +0300 Subject: [PATCH 065/249] minor chnages --- src/components/header_bar/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/header_bar/index.js b/src/components/header_bar/index.js index 5fec241..e06905a 100644 --- a/src/components/header_bar/index.js +++ b/src/components/header_bar/index.js @@ -5,7 +5,7 @@ import PropTypes from 'prop-types'; import { withStyles } from '@material-ui/core/styles'; import AppBar from '@material-ui/core/AppBar'; -import Typography from '@material-ui/core/Typography'; +import Typography from "@material-ui/core/Typography"; import AccountCircle from '@material-ui/icons/AccountCircle'; import * as actions from './actions' @@ -41,7 +41,7 @@ class HeaderBar extends Component { return ( - + {firstName} {lastName} -- GitLab From 6e71e6013069e4f49ad9090c55eacd877c53ecd0 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Thu, 11 Oct 2018 12:08:53 +0300 Subject: [PATCH 066/249] minor changes --- src/components/header_bar/index.js | 2 +- src/utils/api/mock_api_requests.js | 8 +++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/components/header_bar/index.js b/src/components/header_bar/index.js index e06905a..8bffb0a 100644 --- a/src/components/header_bar/index.js +++ b/src/components/header_bar/index.js @@ -41,7 +41,7 @@ class HeaderBar extends Component { return ( - + {firstName} {lastName} diff --git a/src/utils/api/mock_api_requests.js b/src/utils/api/mock_api_requests.js index 8c4304c..98a7e5d 100644 --- a/src/utils/api/mock_api_requests.js +++ b/src/utils/api/mock_api_requests.js @@ -1,9 +1,9 @@ -// import axios from 'axios'; -import axios from '../../data_instance'; +import axios from 'axios'; +// import axios from '../../data_instance'; export function _getAuthedUserData () { - const response = axios.get(); + const response = axios.get("http://www.mocky.io/v2/5bbdcb733100009c00711167"); const returnedData = axios.all ([ response @@ -11,9 +11,7 @@ export function _getAuthedUserData () { return data[0].data }).catch((error) => { - console.log('===================================='); console.log(error); - console.log('===================================='); }) return returnedData; -- GitLab From 5934c59e5aee39ce8f172305c1736c4c0e645228 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Thu, 11 Oct 2018 12:18:05 +0300 Subject: [PATCH 067/249] NY-4333 server side error handler debugging --- src/components/dashboard_users/index.js | 5 +++-- src/components/header_bar/index.js | 5 ++--- src/components/header_bar/middleware.js | 4 ++-- src/utils/api/mock_api_requests.js | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 1acd44a..e810d34 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -13,7 +13,7 @@ import "./css/index.css"; import "./css/ag-grid.css"; import "./css/ag-theme-material.css"; -import ErrorHandler from "../../hoc/error_handler/"; +// import ErrorHandler from "../../hoc/error_handler/"; class DashboardUsers extends Component { /** @@ -80,6 +80,7 @@ class DashboardUsers extends Component { */ showHideColumns = (e) => { const { id, checked } = e.target + console.log(id, checked); this.columnApi.setColumnVisible(id, checked); }; @@ -105,7 +106,7 @@ class DashboardUsers extends Component { * @const {number} paginationPageSize * @const {func} paginationNumberFormatter */ - const { users, coldef, loading, error, rowSelection, paginationPageSize, selectOptions } = this.props; + const { users, coldef, loading, rowSelection, paginationPageSize, selectOptions } = this.props; let content = null; if (users.length === 0 && loading) { diff --git a/src/components/header_bar/index.js b/src/components/header_bar/index.js index 8bffb0a..ad0f384 100644 --- a/src/components/header_bar/index.js +++ b/src/components/header_bar/index.js @@ -5,7 +5,6 @@ import PropTypes from 'prop-types'; import { withStyles } from '@material-ui/core/styles'; import AppBar from '@material-ui/core/AppBar'; -import Typography from "@material-ui/core/Typography"; import AccountCircle from '@material-ui/icons/AccountCircle'; import * as actions from './actions' @@ -41,9 +40,9 @@ class HeaderBar extends Component { return ( - + {firstName} {lastName} - + ) diff --git a/src/components/header_bar/middleware.js b/src/components/header_bar/middleware.js index 9edc6e2..afe43a0 100644 --- a/src/components/header_bar/middleware.js +++ b/src/components/header_bar/middleware.js @@ -6,11 +6,11 @@ import { failUsers } from './../../hoc/error_handler/actions'; export function* getAuthedUser() { try { const payloadData = yield call( _getAuthedUserData); - + debugger yield put(deliverAuthedUser([payloadData])) } catch (error) { - + debugger yield put(failUsers(error)); } } \ No newline at end of file diff --git a/src/utils/api/mock_api_requests.js b/src/utils/api/mock_api_requests.js index 98a7e5d..34b1da4 100644 --- a/src/utils/api/mock_api_requests.js +++ b/src/utils/api/mock_api_requests.js @@ -1,9 +1,9 @@ import axios from 'axios'; -// import axios from '../../data_instance'; +import instance from '../../data_instance'; export function _getAuthedUserData () { - const response = axios.get("http://www.mocky.io/v2/5bbdcb733100009c00711167"); + const response = instance.get(); const returnedData = axios.all ([ response -- GitLab From e46614b45a51913e59b8afe53e2809d2113d4599 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Thu, 11 Oct 2018 13:10:36 +0300 Subject: [PATCH 068/249] NY-4307 columns hide show state added --- src/components/dashboard_users/actions.js | 9 ++++ .../dashboard_users/grouping/index.js | 2 +- src/components/dashboard_users/index.js | 6 +-- src/components/dashboard_users/reducer.js | 49 ++++++++++++++----- src/components/header_bar/middleware.js | 2 - 5 files changed, 49 insertions(+), 19 deletions(-) diff --git a/src/components/dashboard_users/actions.js b/src/components/dashboard_users/actions.js index f7d176b..ae37120 100644 --- a/src/components/dashboard_users/actions.js +++ b/src/components/dashboard_users/actions.js @@ -2,6 +2,7 @@ export const GET_USERS = 'GET_USERS'; export const DELIVER_USERS = 'DELIVER_USERS'; export const FAIL_USERS = 'FAIL_USERS'; export const PAGE_SIZE_UPDATE = 'PAGE_SIZE_UPDATE'; +export const DASHBOARD_GROUPING_UPDATE = 'DASHBOARD_GROUPING_UPDATE'; export function getUsers() { return { @@ -28,4 +29,12 @@ export function deliverUsersPayload(users) { type: DELIVER_USERS, users } +} + +export function dashboardGroupingUpdate(field, checked) { + return { + type: DASHBOARD_GROUPING_UPDATE, + field, + hide: !checked + } } \ No newline at end of file diff --git a/src/components/dashboard_users/grouping/index.js b/src/components/dashboard_users/grouping/index.js index 0f07c70..9596a84 100644 --- a/src/components/dashboard_users/grouping/index.js +++ b/src/components/dashboard_users/grouping/index.js @@ -37,7 +37,7 @@ const Grouping = (props) => { onClick={showHideColumns} > { const { id, checked } = e.target - console.log(id, checked); this.columnApi.setColumnVisible(id, checked); + this.props.dashboardGroupingUpdate(id, checked); }; /** diff --git a/src/components/dashboard_users/reducer.js b/src/components/dashboard_users/reducer.js index e7010df..41054c8 100644 --- a/src/components/dashboard_users/reducer.js +++ b/src/components/dashboard_users/reducer.js @@ -1,4 +1,4 @@ -import { GET_USERS, DELIVER_USERS, PAGE_SIZE_UPDATE } from './actions'; +import { GET_USERS, DELIVER_USERS, PAGE_SIZE_UPDATE, DASHBOARD_GROUPING_UPDATE } from './actions'; import { DELIVER_UPDATE_USER_DATA_CATEGORY_X } from './edit_user/actions'; import { updateObject } from '../../hoc/update-object/update-object'; import userAvatar from '../../utils/services/avatar_insertion'; @@ -9,18 +9,18 @@ import userAvatar from '../../utils/services/avatar_insertion'; const initialState = { usersData: [], coldef: [ - { headerName: "avatar", field: "avatar", filter: 'agTextColumnFilter', cellRenderer: "agGroupCellRenderer", cellRendererParams: { innerRenderer: userAvatar }, headerCheckboxSelection: true, headerCheckboxSelectionFilteredOnly: true, checkboxSelection: true }, - { headerName: "accountId", field: "accountId", filter: 'agTextColumnFilter' }, - { headerName: "profileId", field: "profileId", filter: 'agTextColumnFilter' }, - { headerName: "authenticationIdentifier", field: "authenticationIdentifier", filter: 'agTextColumnFilter' }, - { headerName: "authenticationType", field: "authenticationType", filter: 'agTextColumnFilter' }, - { headerName: "accountMark", field: "accountMark", filter: 'agTextColumnFilter' }, - { headerName: "accountName", field: "accountName", filter: 'agTextColumnFilter' }, - { headerName: "firstName", field: "firstName", filter: 'agTextColumnFilter' }, - { headerName: "lastName", field: "lastName", filter: 'agTextColumnFilter' }, - { headerName: "accountStatus", field: "accountStatus", filter: 'agTextColumnFilter' }, - { headerName: "qrCode", field: "qrCode", filter: 'agTextColumnFilter' }, - { headerName: "communicationProviders", field: "communicationProviders", filter: 'agTextColumnFilter' }, + { headerName: "avatar", hide: false, field: "avatar", filter: 'agTextColumnFilter', cellRenderer: "agGroupCellRenderer", cellRendererParams: { innerRenderer: userAvatar }, headerCheckboxSelection: true, headerCheckboxSelectionFilteredOnly: true, checkboxSelection: true }, + { headerName: "accountId", hide: false, field: "accountId", filter: 'agTextColumnFilter' }, + { headerName: "profileId", hide: false, field: "profileId", filter: 'agTextColumnFilter' }, + { headerName: "authenticationIdentifier", hide: false, field: "authenticationIdentifier", filter: 'agTextColumnFilter' }, + { headerName: "authenticationType", hide: false, field: "authenticationType", filter: 'agTextColumnFilter' }, + { headerName: "accountMark", hide: false, field: "accountMark", filter: 'agTextColumnFilter' }, + { headerName: "accountName", hide: false, field: "accountName", filter: 'agTextColumnFilter' }, + { headerName: "firstName", hide: false, field: "firstName", filter: 'agTextColumnFilter' }, + { headerName: "lastName", hide: false, field: "lastName", filter: 'agTextColumnFilter' }, + { headerName: "accountStatus", hide: false, field: "accountStatus", filter: 'agTextColumnFilter' }, + { headerName: "qrCode", hide: false, field: "qrCode", filter: 'agTextColumnFilter' }, + { headerName: "communicationProviders", hide: false, field: "communicationProviders", filter: 'agTextColumnFilter' }, ], loading: false, rowSelection: "multiple", @@ -69,6 +69,28 @@ const updateUserCategoryX = (state, action) => { } } +const dashboardGroupingUpdate = (state, action) => { + + const {field, hide} = action; + const colIndex = state.coldef.findIndex(item => item.field === field); + + console.log(field) + console.log(hide) + console.log(colIndex) + + state.coldef[colIndex] = Object.defineProperties(state.coldef[colIndex], { + hide: { + value: hide, + writable: true + } + }) + + debugger + return { + ...state + } +} + export default function users(state = initialState, action) { switch(action.type) { @@ -77,6 +99,7 @@ export default function users(state = initialState, action) { case DELIVER_USERS: return deliverUsers(state, action); case PAGE_SIZE_UPDATE: return pageSizeUpdate(state, action); case DELIVER_UPDATE_USER_DATA_CATEGORY_X: return updateUserCategoryX(state, action); + case DASHBOARD_GROUPING_UPDATE: return dashboardGroupingUpdate(state, action); default: return state; } diff --git a/src/components/header_bar/middleware.js b/src/components/header_bar/middleware.js index afe43a0..89317b3 100644 --- a/src/components/header_bar/middleware.js +++ b/src/components/header_bar/middleware.js @@ -6,11 +6,9 @@ import { failUsers } from './../../hoc/error_handler/actions'; export function* getAuthedUser() { try { const payloadData = yield call( _getAuthedUserData); - debugger yield put(deliverAuthedUser([payloadData])) } catch (error) { - debugger yield put(failUsers(error)); } } \ No newline at end of file -- GitLab From a3bb7e771303a3a8074bbe445d39887399092ac8 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Thu, 11 Oct 2018 13:15:59 +0300 Subject: [PATCH 069/249] NY-4307 debugger removed --- src/components/dashboard_users/reducer.js | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/components/dashboard_users/reducer.js b/src/components/dashboard_users/reducer.js index 41054c8..3994c89 100644 --- a/src/components/dashboard_users/reducer.js +++ b/src/components/dashboard_users/reducer.js @@ -73,10 +73,6 @@ const dashboardGroupingUpdate = (state, action) => { const {field, hide} = action; const colIndex = state.coldef.findIndex(item => item.field === field); - - console.log(field) - console.log(hide) - console.log(colIndex) state.coldef[colIndex] = Object.defineProperties(state.coldef[colIndex], { hide: { @@ -85,7 +81,6 @@ const dashboardGroupingUpdate = (state, action) => { } }) - debugger return { ...state } -- GitLab From 95881a3d49d6455e14fd27347d23c759e774db11 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Thu, 11 Oct 2018 13:24:14 +0300 Subject: [PATCH 070/249] NY-4307 check for passed value --- src/components/dashboard_users/index.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 301b7e7..8a899b2 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -80,8 +80,10 @@ class DashboardUsers extends Component { */ showHideColumns = (e) => { const { id, checked } = e.target - this.columnApi.setColumnVisible(id, checked); - this.props.dashboardGroupingUpdate(id, checked); + if(checked !== undefined) { + this.columnApi.setColumnVisible(id, checked); + this.props.dashboardGroupingUpdate(id, checked); + } }; /** -- GitLab From e9f59dd8071a969a31b381f2eed5d30802560133 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Thu, 11 Oct 2018 17:53:42 +0300 Subject: [PATCH 071/249] NY-4307 --- src/store/root_reducers/index.js | 5 ++++- src/utils/localstorage/configure_persist.js | 9 ++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/store/root_reducers/index.js b/src/store/root_reducers/index.js index 14232e5..067579f 100644 --- a/src/store/root_reducers/index.js +++ b/src/store/root_reducers/index.js @@ -1,12 +1,15 @@ import { combineReducers } from 'redux'; +import { persistReducer } from "redux-persist"; import users from './../../components/dashboard_users/reducer'; import authedUser from './../../components/header_bar/reducer'; import error from './../../hoc/error_handler/reducer'; +import { usersPersistConfig } from '../../utils/localstorage/configure_persist'; + export default combineReducers( { - users, + users: persistReducer(usersPersistConfig, users), authedUser, error } diff --git a/src/utils/localstorage/configure_persist.js b/src/utils/localstorage/configure_persist.js index 7323883..0a3cb20 100644 --- a/src/utils/localstorage/configure_persist.js +++ b/src/utils/localstorage/configure_persist.js @@ -4,7 +4,14 @@ import autoMergeLevel1 from "redux-persist/lib/stateReconciler/autoMergeLevel1"; const persistConfig = { key: "root", storage, - stateReconciler: autoMergeLevel1 + stateReconciler: autoMergeLevel1, + blacklist: ["users"] +}; + +export const usersPersistConfig = { + key: "users", + storage: storage, + blacklist: ["usersData"] }; export default persistConfig; \ No newline at end of file -- GitLab From 389209e937a37ae29b9d4fcd17a4a763db360260 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Fri, 12 Oct 2018 16:10:45 +0300 Subject: [PATCH 072/249] NY-3881 sidebar navigation ui ux update --- src/App.js | 19 +++++++++-------- src/components/dashboard_users/index.js | 2 +- src/components/header_bar/css/style.css | 10 +++++++++ src/components/header_bar/index.js | 17 ++++----------- src/components/shared/side_nav/index.js | 8 +++---- src/components/sidebar/css/style.css | 28 +++++++++++++++++++++++++ src/components/sidebar/index.js | 5 +++-- src/components/sidebar/sidebar.css | 3 --- 8 files changed, 60 insertions(+), 32 deletions(-) create mode 100644 src/components/header_bar/css/style.css create mode 100644 src/components/sidebar/css/style.css delete mode 100644 src/components/sidebar/sidebar.css diff --git a/src/App.js b/src/App.js index e71b60b..eac2069 100644 --- a/src/App.js +++ b/src/App.js @@ -23,7 +23,7 @@ const styles = {}; class App extends Component { state = { - leftSideNav: true + leftSideNav: false }; /** @@ -40,6 +40,11 @@ class App extends Component { }); } + componentDidUpdate(prevProps) { + console.log(this.props); + console.log(prevProps); + } + render() { /** @@ -52,8 +57,8 @@ class App extends Component { return ( - -
+ +
@@ -61,17 +66,13 @@ class App extends Component { - { leftSideNav - ? - - - + ? : null } - + { routesArray.map((item, index) => ) diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 8a899b2..17c76d6 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -34,7 +34,7 @@ class DashboardUsers extends Component { componentDidMount() { this.props.getUsers(); - + }; /** diff --git a/src/components/header_bar/css/style.css b/src/components/header_bar/css/style.css new file mode 100644 index 0000000..d8d271d --- /dev/null +++ b/src/components/header_bar/css/style.css @@ -0,0 +1,10 @@ +.main-header.mui-fixed { + left: 0; + padding: 12px 0 12px 50px; + color: #000; + background: #fff; + flex-direction: row; + width: 100%; + justify-content: flex-end; + z-index: 500; +} \ No newline at end of file diff --git a/src/components/header_bar/index.js b/src/components/header_bar/index.js index ad0f384..7695682 100644 --- a/src/components/header_bar/index.js +++ b/src/components/header_bar/index.js @@ -2,6 +2,7 @@ import React, { Component } from 'react'; import { connect } from 'react-redux'; import { bindActionCreators } from 'redux'; import PropTypes from 'prop-types'; +import './css/style.css' import { withStyles } from '@material-ui/core/styles'; import AppBar from '@material-ui/core/AppBar'; @@ -12,16 +13,7 @@ import * as actions from './actions' /** * @const {object} styles */ -const styles = { - positionFixed: { - padding: "12px 0 12px 50px", - color: '#000', - background: '#fff', - flexDirection: 'row', - width: 'auto', - justifyContent: 'flex-end' - } -}; +const styles = {}; class HeaderBar extends Component { componentDidMount() { @@ -36,10 +28,10 @@ class HeaderBar extends Component { * @const {string} firstName * @const {string} lastName */ - const { classes, adaptiveWidth, firstName, lastName } = this.props; + const { firstName, lastName } = this.props; return ( - + {firstName} {lastName} @@ -51,7 +43,6 @@ class HeaderBar extends Component { HeaderBar.propTypes = { classes: PropTypes.object.isRequired, - adaptiveWidth: PropTypes.string.isRequired, firstName: PropTypes.string.isRequired, lastName: PropTypes.string.isRequired }; diff --git a/src/components/shared/side_nav/index.js b/src/components/shared/side_nav/index.js index e235a4a..515b177 100644 --- a/src/components/shared/side_nav/index.js +++ b/src/components/shared/side_nav/index.js @@ -6,11 +6,11 @@ import ListItemText from '@material-ui/core/ListItemText'; import InboxIcon from '@material-ui/icons/MoveToInbox'; import DraftsIcon from '@material-ui/icons/Drafts'; -export const SideNav = () => { - return ( +export const SideNav = (props) => { + return ( - + @@ -18,7 +18,7 @@ export const SideNav = () => { - + diff --git a/src/components/sidebar/css/style.css b/src/components/sidebar/css/style.css new file mode 100644 index 0000000..0449895 --- /dev/null +++ b/src/components/sidebar/css/style.css @@ -0,0 +1,28 @@ +.sidebar-menu { + position: fixed; + top: 0; + bottom: 0; + left: 0; + right: 0; + z-index: 1500; + width: auto; +} + +.sidebar-curtain { + position: absolute; + display: block; + top: 0; + bottom: 0; + left: 0; + right: 0; + background: rgba(0, 0, 0, 0.5); + z-index: 1300; +} + +.sidebar-menu > .sidebar-curtain + div { + position: relative; + display: block; + width: 30%; + height: 100%; + z-index: 1400; +} \ No newline at end of file diff --git a/src/components/sidebar/index.js b/src/components/sidebar/index.js index 83e9495..ecb2682 100644 --- a/src/components/sidebar/index.js +++ b/src/components/sidebar/index.js @@ -1,7 +1,7 @@ import React, { Component } from 'react'; import Paper from '@material-ui/core/Paper'; import { SideNav } from './../shared/side_nav' -import './sidebar.css' +import './css/style.css' class Sidebar extends Component { @@ -10,8 +10,9 @@ class Sidebar extends Component { return (
+
- +
) diff --git a/src/components/sidebar/sidebar.css b/src/components/sidebar/sidebar.css deleted file mode 100644 index 95d5a04..0000000 --- a/src/components/sidebar/sidebar.css +++ /dev/null @@ -1,3 +0,0 @@ -.sidebar-menu { - margin-top: -50px; -} \ No newline at end of file -- GitLab From 6c05564797255b41b763fca0fafc573d938c5082 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Fri, 12 Oct 2018 16:32:30 +0300 Subject: [PATCH 073/249] NY-3881 unecessary code removed --- src/App.js | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/App.js b/src/App.js index eac2069..915862e 100644 --- a/src/App.js +++ b/src/App.js @@ -40,11 +40,6 @@ class App extends Component { }); } - componentDidUpdate(prevProps) { - console.log(this.props); - console.log(prevProps); - } - render() { /** -- GitLab From 160d59c18fa88341294f78fcb5250c43840c487d Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Fri, 12 Oct 2018 18:03:37 +0300 Subject: [PATCH 074/249] Minor chnages --- src/components/dashboard_users/index.js | 4 +-- .../shared/ui/back_drop/back_drop.css | 2 +- src/components/shared/ui/modal/modal.css | 3 +- .../interceptor_error/interceptor_error.css | 34 +++++++++++++++++++ .../interceptor_error/interceptor_error.js | 14 +++++++- 5 files changed, 51 insertions(+), 6 deletions(-) create mode 100644 src/hoc/interceptor_error/interceptor_error.css diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 17c76d6..a39d91d 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -13,7 +13,7 @@ import "./css/index.css"; import "./css/ag-grid.css"; import "./css/ag-theme-material.css"; -// import ErrorHandler from "../../hoc/error_handler/"; +import ErrorHandler from "../../hoc/error_handler/"; class DashboardUsers extends Component { /** @@ -34,7 +34,7 @@ class DashboardUsers extends Component { componentDidMount() { this.props.getUsers(); - + }; /** diff --git a/src/components/shared/ui/back_drop/back_drop.css b/src/components/shared/ui/back_drop/back_drop.css index 57372a8..1be58f7 100644 --- a/src/components/shared/ui/back_drop/back_drop.css +++ b/src/components/shared/ui/back_drop/back_drop.css @@ -8,5 +8,5 @@ top: 0; background-color: rgba(0, 0, 0, 0.5); - z-index: 100; + z-index:2010; } \ No newline at end of file diff --git a/src/components/shared/ui/modal/modal.css b/src/components/shared/ui/modal/modal.css index fe14ef0..a723a2f 100644 --- a/src/components/shared/ui/modal/modal.css +++ b/src/components/shared/ui/modal/modal.css @@ -4,7 +4,6 @@ left: 15%; top: 30%; - padding: 16px; width: 70%; box-shadow: 1px 1px 1px black; @@ -12,5 +11,5 @@ transition: all 0.3s ease-out; background-color: white; - z-index: 500; + z-index: 2100; } \ No newline at end of file diff --git a/src/hoc/interceptor_error/interceptor_error.css b/src/hoc/interceptor_error/interceptor_error.css new file mode 100644 index 0000000..6cdd544 --- /dev/null +++ b/src/hoc/interceptor_error/interceptor_error.css @@ -0,0 +1,34 @@ +.interceptor-wrapper { + position: relative; + padding: 50px; +} +.interceptor-error-size-lg { + margin: 0; + font-weight: 700; + font-size: 40px; +} +.interceptor-error-mesage-md { + font-weight: 700; + font-size: 25px; +} +.error-message-bg { + padding: 5px; + background-color: red; + color: #fff; +} +.error-center { + text-align: center; +} +.interceptor-close { + position: absolute; + cursor: pointer; + + font-size: 15px; + font-weight: 700; + text-transform: uppercase; + + top: 10px; + right: 20px; + + color: #000; +} \ No newline at end of file diff --git a/src/hoc/interceptor_error/interceptor_error.js b/src/hoc/interceptor_error/interceptor_error.js index 8466306..8817c6e 100644 --- a/src/hoc/interceptor_error/interceptor_error.js +++ b/src/hoc/interceptor_error/interceptor_error.js @@ -1,5 +1,6 @@ import React, { Component, Fragment } from "react"; import Modal from "../../components/shared/ui/modal/modal"; +import './interceptor_error.css'; const ErrorInterceptor = (WrappedComponent, axios) => { @@ -35,11 +36,22 @@ const ErrorInterceptor = (WrappedComponent, axios) => { render() { const { error } = this.state; + + console.dir(error); return ( - {error ? error.message : null} + { + error + ?
+ close +

{error.message}

+

Error status Request: {error.request.statusText}

+

Error status Response: {error.response.statusText}

+
+ : null + }
-- GitLab From 0d578c67f089de5b60672b24ce61d660f4940f9f Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Mon, 15 Oct 2018 13:55:25 +0300 Subject: [PATCH 075/249] NY-3881 sidebar and header style polish --- src/components/header_bar/css/style.css | 13 +++++-- src/components/sidebar/css/style.css | 36 ++++++++++++++++--- src/components/sidebar/index.js | 6 ++-- .../{shared => sidebar}/side_nav/index.js | 13 ++++--- src/components/sidebar/side_nav/svg/logo.svg | 16 +++++++++ src/index.css | 6 +++- 6 files changed, 75 insertions(+), 15 deletions(-) rename src/components/{shared => sidebar}/side_nav/index.js (60%) create mode 100644 src/components/sidebar/side_nav/svg/logo.svg diff --git a/src/components/header_bar/css/style.css b/src/components/header_bar/css/style.css index d8d271d..af7da03 100644 --- a/src/components/header_bar/css/style.css +++ b/src/components/header_bar/css/style.css @@ -1,10 +1,17 @@ .main-header.mui-fixed { left: 0; - padding: 12px 0 12px 50px; - color: #000; - background: #fff; + padding: 20px 20px 12px 50px; + color: #fff; + background: #24262b; flex-direction: row; width: 100%; justify-content: flex-end; z-index: 500; + box-shadow: none; + min-height: 60px; +} + +.main-header.mui-fixed > span { + font-size: 20px; + margin: 0 15px; } \ No newline at end of file diff --git a/src/components/sidebar/css/style.css b/src/components/sidebar/css/style.css index 0449895..f776f8d 100644 --- a/src/components/sidebar/css/style.css +++ b/src/components/sidebar/css/style.css @@ -1,4 +1,4 @@ -.sidebar-menu { +.sidebar-menu-wrap { position: fixed; top: 0; bottom: 0; @@ -19,10 +19,38 @@ z-index: 1300; } -.sidebar-menu > .sidebar-curtain + div { +.sidebar-menu { position: relative; display: block; - width: 30%; + width: 20%; height: 100%; z-index: 1400; -} \ No newline at end of file + background: #24262b; +} + +.side-menu-logo-wrap { + background: #24262b; + min-height: 60px; + padding: 9px 10px; + border-right: 1px solid #cccccc; +} + +.side-menu-logo { + width: 150px; +} + +.side-menu-logo-text { + font-size: 15px; + color: #fff; +} + +.side-menu-nav-link > div:hover, +.side-menu-nav-link.active > div { + background-color: transparent; +} + +.side-menu-nav-link > div:hover span, +.side-menu-nav-link.active > div span { + color: #4b74ff; + font-weight: bold; +} \ No newline at end of file diff --git a/src/components/sidebar/index.js b/src/components/sidebar/index.js index ecb2682..10ec817 100644 --- a/src/components/sidebar/index.js +++ b/src/components/sidebar/index.js @@ -1,6 +1,6 @@ import React, { Component } from 'react'; import Paper from '@material-ui/core/Paper'; -import { SideNav } from './../shared/side_nav' +import { SideNav } from './side_nav' import './css/style.css' class Sidebar extends Component { @@ -9,9 +9,9 @@ class Sidebar extends Component { return ( -
+
- +
diff --git a/src/components/shared/side_nav/index.js b/src/components/sidebar/side_nav/index.js similarity index 60% rename from src/components/shared/side_nav/index.js rename to src/components/sidebar/side_nav/index.js index 515b177..5aa08e4 100644 --- a/src/components/shared/side_nav/index.js +++ b/src/components/sidebar/side_nav/index.js @@ -5,21 +5,26 @@ import ListItemIcon from '@material-ui/core/ListItemIcon'; import ListItemText from '@material-ui/core/ListItemText'; import InboxIcon from '@material-ui/icons/MoveToInbox'; import DraftsIcon from '@material-ui/icons/Drafts'; +import logo from './svg/logo.svg'; export const SideNav = (props) => { return ( - - +
+ logo +
Admin Console
+
+ + - - + + diff --git a/src/components/sidebar/side_nav/svg/logo.svg b/src/components/sidebar/side_nav/svg/logo.svg new file mode 100644 index 0000000..a3c3228 --- /dev/null +++ b/src/components/sidebar/side_nav/svg/logo.svg @@ -0,0 +1,16 @@ + + + + ICONS/app bar/text logo + Created with Sketch. + + + + + + \ No newline at end of file diff --git a/src/index.css b/src/index.css index d534186..9bc39e9 100644 --- a/src/index.css +++ b/src/index.css @@ -41,7 +41,7 @@ a:hover { .toggle-menu-btn { position: fixed; - top: 0; + top: 5px; left: 9px; z-index: 1200; @@ -49,4 +49,8 @@ a:hover { .active.toggle-menu-btn { left: 16.6667%; +} + +.toggle-menu-btn svg { + fill: #fff; } \ No newline at end of file -- GitLab From 0316bb5ae53e8bb1203818edb4c68487a573c1de Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Mon, 15 Oct 2018 14:29:56 +0300 Subject: [PATCH 076/249] NY-3881 slide in animation added --- src/components/sidebar/css/style.css | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/components/sidebar/css/style.css b/src/components/sidebar/css/style.css index f776f8d..9aabcd6 100644 --- a/src/components/sidebar/css/style.css +++ b/src/components/sidebar/css/style.css @@ -6,6 +6,7 @@ right: 0; z-index: 1500; width: auto; + overflow: hidden; } .sidebar-curtain { @@ -26,6 +27,10 @@ height: 100%; z-index: 1400; background: #24262b; + transform: translateX(0); + -webkit-transform:translateX(0); + -webkit-animation: move-right ease 1 normal 0.5s; + animation: move-right ease 1 normal 0.5s; } .side-menu-logo-wrap { @@ -53,4 +58,27 @@ .side-menu-nav-link.active > div span { color: #4b74ff; font-weight: bold; +} + + +@-webkit-keyframes move-right { + from { + transform: translateX(-100%); + -webkit-transform:translateX(-100%); + } + to { + transform: translateX(0); + -webkit-transform:translateX(0); + } +} + +@keyframes move-right { + from { + transform: translateX(-100%); + -webkit-transform:translateX(-100%); + } + to { + transform: translateX(0); + -webkit-transform:translateX(0); + } } \ No newline at end of file -- GitLab From 4d205f633fce71e1c85d709ef8df9dc12bf6164e Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Mon, 15 Oct 2018 18:27:27 +0300 Subject: [PATCH 077/249] Paging functionality --- src/components/dashboard_users/css/index.css | 35 ++++- src/components/dashboard_users/index.js | 135 ++++++++++++++++++- 2 files changed, 164 insertions(+), 6 deletions(-) diff --git a/src/components/dashboard_users/css/index.css b/src/components/dashboard_users/css/index.css index cb3a272..6792b5a 100644 --- a/src/components/dashboard_users/css/index.css +++ b/src/components/dashboard_users/css/index.css @@ -1,9 +1,9 @@ .page-size-changed { position: fixed; bottom: 20px; - left: 50%; + left: 0; - transform: translate(-50%, 0); + transform: translate(0, 0); } .ag-grid-wrapper { width: calc(100% - 20px); @@ -56,4 +56,35 @@ .grouping-options.visible-grouping-options { display: block; +} + +/* Pagination */ +.pagination-control-wrapper { + padding: 20px; + text-align: center; + font-size: 0; +} +.pagination-cotrol { + display: inline-block; + + -webkit-appearance: none; + appearance: none; + + margin: 0 5px; + + width: 50px; + height: 50px; + + background-color: #fff; + border: solid 1px #eee; + border-radius: 5px; +} +.pagination-dots { + display: inline-block; + + margin: 0 5px; + font-size: 20px; +} +.pagination-cotrol:disabled { + border: none; } \ No newline at end of file diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index a39d91d..90d9da0 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -14,6 +14,12 @@ import "./css/ag-grid.css"; import "./css/ag-theme-material.css"; import ErrorHandler from "../../hoc/error_handler/"; + +function setText(selector, text) { + document.querySelector(selector).innerHTML = text; +} + + class DashboardUsers extends Component { /** @@ -23,7 +29,11 @@ class DashboardUsers extends Component { * is available for the user */ state = { - groupingBarVisible: false + groupingBarVisible: false, + isDisableLast: false, + isDisableFirst: false, + lastPageNumber: null, + currentPageNumber: 0 } /** @@ -32,9 +42,7 @@ class DashboardUsers extends Component { * the users from the API */ componentDidMount() { - this.props.getUsers(); - }; /** @@ -43,6 +51,9 @@ class DashboardUsers extends Component { onGridReady = (params) => { this.gridApi = params.api; this.columnApi = params.columnApi; + this.setState({ + lastPageNumber: Number(this.gridApi.paginationGetTotalPages()) + }); }; /** @@ -96,7 +107,71 @@ class DashboardUsers extends Component { this.setState((prevState) => ({ groupingBarVisible: !prevState.groupingBarVisible })) - } + }; + + onPaginationChanged = () => { + + if (this.gridApi) { + setText("#lbLastPageFound", this.gridApi.paginationIsLastPageFound()); + setText("#lbPageSize", this.gridApi.paginationGetPageSize()); + setText("#lbCurrentPage", this.gridApi.paginationGetCurrentPage() + 1); + setText("#lbTotalPages", this.gridApi.paginationGetTotalPages()); + this.setLastButtonDisabled(this.gridApi.paginationGetTotalPages(), this.gridApi.paginationGetCurrentPage()); + + this.setState({ + currentPageNumber: this.gridApi.paginationGetCurrentPage() + }) + } + }; + + setLastButtonDisabled = (total, current) => { + let isDisableFlagLastPage = false; + let isDisableFlagFirstPage = false; + + switch (current) { + + case total - 1: + isDisableFlagLastPage = true; + break; + + case 0: + isDisableFlagFirstPage = true; + break; + + default: + break; + } + + this.setState({ + isDisableLast: isDisableFlagLastPage, + isDisableFirst: isDisableFlagFirstPage + }); + + }; + + onBtFirst =() => { + this.gridApi.paginationGoToFirstPage(); + }; + + onBtLast =() => { + this.gridApi.paginationGoToLastPage(); + }; + + onBtNext =() => { + this.gridApi.paginationGoToNextPage(); + }; + + onBtPrevious =() => { + this.gridApi.paginationGoToPreviousPage(); + }; + + onBtnPaging = (index) => { + this.gridApi.paginationGoToPage(index); + }; + + onBtnLastPage = (e) => { + this.gridApi.paginationGoToPage(this.gridApi.paginationGetTotalPages()); + }; render() { /** @@ -109,12 +184,23 @@ class DashboardUsers extends Component { * @const {func} paginationNumberFormatter */ const { users, coldef, loading, rowSelection, paginationPageSize, selectOptions } = this.props; + const { isDisableFirst, isDisableLast, lastPageNumber, currentPageNumber } = this.state; let content = null; + if (users.length === 0 && loading) { content = } else { + let pagingContent = []; + if (currentPageNumber + 2 <= lastPageNumber) { + + + for (let index = 0; index < 3; index++) { + pagingContent.push() + } + + } content = (
@@ -128,6 +214,8 @@ class DashboardUsers extends Component { floatingFilter={true} pagination={true} + suppressPaginationPanel={true} + onPaginationChanged={this.onPaginationChanged} paginationPageSize={paginationPageSize} paginationNumberFormatter={this.paginationNumberFormatter} @@ -155,6 +243,45 @@ class DashboardUsers extends Component { showHideColumns={this.showHideColumns} /> +
+ + + + + { pagingContent } + ... + { + lastPageNumber + ? + : null + } + + + + + + +
+ Last Page Found: + + - + + Page Size: + + - + + Total Pages: + + - + + Current Page: + + - + +
+ +
+
) } -- GitLab From 1ad4917871ca7af8f5bdfe5e39f7aa9507a5ce7d Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Tue, 16 Oct 2018 11:39:35 +0300 Subject: [PATCH 078/249] NY-3882 --- src/components/dashboard_users/css/index.css | 38 ---- src/components/dashboard_users/index.js | 163 +++++++----------- .../dashboard_users/page_size/index.js | 2 + .../dashboard_users/page_size/page_size.css | 7 + .../dashboard_users/paging/paging.css | 30 ++++ .../dashboard_users/paging/paging.js | 83 +++++++++ 6 files changed, 185 insertions(+), 138 deletions(-) create mode 100644 src/components/dashboard_users/page_size/page_size.css create mode 100644 src/components/dashboard_users/paging/paging.css create mode 100644 src/components/dashboard_users/paging/paging.js diff --git a/src/components/dashboard_users/css/index.css b/src/components/dashboard_users/css/index.css index 6792b5a..2c3acea 100644 --- a/src/components/dashboard_users/css/index.css +++ b/src/components/dashboard_users/css/index.css @@ -1,10 +1,3 @@ -.page-size-changed { - position: fixed; - bottom: 20px; - left: 0; - - transform: translate(0, 0); -} .ag-grid-wrapper { width: calc(100% - 20px); height: calc(100vh - 50px); @@ -56,35 +49,4 @@ .grouping-options.visible-grouping-options { display: block; -} - -/* Pagination */ -.pagination-control-wrapper { - padding: 20px; - text-align: center; - font-size: 0; -} -.pagination-cotrol { - display: inline-block; - - -webkit-appearance: none; - appearance: none; - - margin: 0 5px; - - width: 50px; - height: 50px; - - background-color: #fff; - border: solid 1px #eee; - border-radius: 5px; -} -.pagination-dots { - display: inline-block; - - margin: 0 5px; - font-size: 20px; -} -.pagination-cotrol:disabled { - border: none; } \ No newline at end of file diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 90d9da0..e058bfe 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -5,6 +5,7 @@ import { bindActionCreators } from 'redux'; import Spinner from './../shared/ui/spinner'; import Grouping from './grouping'; import PageSize from './page_size'; +import Paging from './paging/paging'; import * as PropTypes from 'prop-types'; import * as actions from './actions'; @@ -19,7 +20,6 @@ function setText(selector, text) { document.querySelector(selector).innerHTML = text; } - class DashboardUsers extends Component { /** @@ -79,8 +79,12 @@ class DashboardUsers extends Component { */ onPageSizeChanged = (e) => { const value = e.target.value; + this.gridApi.paginationSetPageSize(Number(value)); this.props.PageSizeUpdate(Number(value)); + this.setState({ + lastPageNumber: Number(this.gridApi.paginationGetTotalPages()) + }); }; /** @@ -90,7 +94,8 @@ class DashboardUsers extends Component { * shows or hides the target column */ showHideColumns = (e) => { - const { id, checked } = e.target + const { id, checked } = e.target; + if(checked !== undefined) { this.columnApi.setColumnVisible(id, checked); this.props.dashboardGroupingUpdate(id, checked); @@ -149,27 +154,27 @@ class DashboardUsers extends Component { }; - onBtFirst =() => { + onFirst =() => { this.gridApi.paginationGoToFirstPage(); }; - onBtLast =() => { + onLast =() => { this.gridApi.paginationGoToLastPage(); }; - onBtNext =() => { + onNext =() => { this.gridApi.paginationGoToNextPage(); }; - onBtPrevious =() => { + onPrevious =() => { this.gridApi.paginationGoToPreviousPage(); }; - onBtnPaging = (index) => { + onPaging = (index) => { this.gridApi.paginationGoToPage(index); }; - onBtnLastPage = (e) => { + onLastPage = () => { this.gridApi.paginationGoToPage(this.gridApi.paginationGetTotalPages()); }; @@ -192,97 +197,57 @@ class DashboardUsers extends Component { content = } else { - let pagingContent = []; - if (currentPageNumber + 2 <= lastPageNumber) { - - - for (let index = 0; index < 3; index++) { - pagingContent.push() - } - - } content = ( -
- - - - - - - - -
- - - - - { pagingContent } - ... - { - lastPageNumber - ? - : null - } - - - - - - -
- Last Page Found: - - - - - Page Size: - - - - - Total Pages: - - - - - Current Page: - - - - -
- -
- -
+
+ + + + + + + + + +
) } @@ -290,9 +255,7 @@ class DashboardUsers extends Component { - { - content - } + { content } ) diff --git a/src/components/dashboard_users/page_size/index.js b/src/components/dashboard_users/page_size/index.js index 68906fe..a6781a8 100644 --- a/src/components/dashboard_users/page_size/index.js +++ b/src/components/dashboard_users/page_size/index.js @@ -1,6 +1,8 @@ import React from 'react'; import * as PropTypes from 'prop-types'; +import './page_size.css'; + const PageSize = (props) => { /** diff --git a/src/components/dashboard_users/page_size/page_size.css b/src/components/dashboard_users/page_size/page_size.css new file mode 100644 index 0000000..93b7624 --- /dev/null +++ b/src/components/dashboard_users/page_size/page_size.css @@ -0,0 +1,7 @@ +.page-size-changed { + position: fixed; + bottom: 20px; + left: 0; + + transform: translate(0, 0); +} \ No newline at end of file diff --git a/src/components/dashboard_users/paging/paging.css b/src/components/dashboard_users/paging/paging.css new file mode 100644 index 0000000..76af72d --- /dev/null +++ b/src/components/dashboard_users/paging/paging.css @@ -0,0 +1,30 @@ +/* Pagination */ +.pagination-control-wrapper { + padding: 20px; + text-align: center; + font-size: 0; +} +.pagination-cotrol { + display: inline-block; + + -webkit-appearance: none; + appearance: none; + + margin: 0 5px; + + width: 50px; + height: 50px; + + background-color: #fff; + border: solid 1px #eee; + border-radius: 5px; +} +.pagination-dots { + display: inline-block; + + margin: 0 5px; + font-size: 20px; +} +.pagination-cotrol:disabled { + border: none; +} \ No newline at end of file diff --git a/src/components/dashboard_users/paging/paging.js b/src/components/dashboard_users/paging/paging.js new file mode 100644 index 0000000..230c171 --- /dev/null +++ b/src/components/dashboard_users/paging/paging.js @@ -0,0 +1,83 @@ +import React from 'react'; +import PropTypes from "prop-types"; + +import './paging.css'; + +const Paging = (props) => { + + const { currentPageNumber, lastPageNumber, isDisableFirst, isDisableLast, onPaging, onFirst, onPrevious, onLastPage, onNext, onLast } = props; + + let pagingContent = []; + + if (currentPageNumber + 3 < lastPageNumber) { + + for (let index = 1; index < 4; index++) { + + const pagingControls = ; + + pagingContent.push(pagingControls); + } + + } + + return ( +
+ + + + + {pagingContent} + + ... + { + lastPageNumber + ? + : null + } + + + + + +
+ Last Page Found: + + - + + Page Size: + + - + + Total Pages: + + - + + Current Page: + + - + +
+ +
+ ) +} + +Paging.propTypes = { + currentPageNumber: PropTypes.number.isRequired, + lastPageNumber: PropTypes.number, + isDisableFirst: PropTypes.bool.isRequired, + isDisableLast: PropTypes.bool.isRequired, + onPaging: PropTypes.func.isRequired, + onFirst: PropTypes.func.isRequired, + onPrevious: PropTypes.func.isRequired, + onLastPage: PropTypes.func.isRequired, + onNext: PropTypes.func.isRequired, + onLast: PropTypes.func.isRequired +}; + + +export default Paging; \ No newline at end of file -- GitLab From 079410243d9afed185051c75dc1d084a8f8915fb Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Tue, 16 Oct 2018 15:41:52 +0300 Subject: [PATCH 079/249] NY-3882 --- src/components/dashboard_users/css/index.css | 2 +- src/components/dashboard_users/index.js | 10 +-- .../dashboard_users/page_size/page_size.css | 2 +- .../dashboard_users/paging/paging.css | 9 +++ .../dashboard_users/paging/paging.js | 71 ++++++++++--------- 5 files changed, 53 insertions(+), 41 deletions(-) diff --git a/src/components/dashboard_users/css/index.css b/src/components/dashboard_users/css/index.css index 2c3acea..2650da0 100644 --- a/src/components/dashboard_users/css/index.css +++ b/src/components/dashboard_users/css/index.css @@ -1,6 +1,6 @@ .ag-grid-wrapper { width: calc(100% - 20px); - height: calc(100vh - 50px); + height: calc(100vh - 150px); } .table-grouping { diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index e058bfe..1e2ef94 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -32,7 +32,7 @@ class DashboardUsers extends Component { groupingBarVisible: false, isDisableLast: false, isDisableFirst: false, - lastPageNumber: null, + totalPageNumber: null, currentPageNumber: 0 } @@ -52,7 +52,7 @@ class DashboardUsers extends Component { this.gridApi = params.api; this.columnApi = params.columnApi; this.setState({ - lastPageNumber: Number(this.gridApi.paginationGetTotalPages()) + totalPageNumber: Number(this.gridApi.paginationGetTotalPages()) }); }; @@ -83,7 +83,7 @@ class DashboardUsers extends Component { this.gridApi.paginationSetPageSize(Number(value)); this.props.PageSizeUpdate(Number(value)); this.setState({ - lastPageNumber: Number(this.gridApi.paginationGetTotalPages()) + totalPageNumber: Number(this.gridApi.paginationGetTotalPages()) }); }; @@ -189,7 +189,7 @@ class DashboardUsers extends Component { * @const {func} paginationNumberFormatter */ const { users, coldef, loading, rowSelection, paginationPageSize, selectOptions } = this.props; - const { isDisableFirst, isDisableLast, lastPageNumber, currentPageNumber } = this.state; + const { isDisableFirst, isDisableLast, totalPageNumber, currentPageNumber } = this.state; let content = null; @@ -243,7 +243,7 @@ class DashboardUsers extends Component { onFirst={this.onFirst} isDisableFirst={isDisableFirst} isDisableLast={isDisableLast} - lastPageNumber={lastPageNumber} + totalPageNumber={totalPageNumber} currentPageNumber={currentPageNumber} /> diff --git a/src/components/dashboard_users/page_size/page_size.css b/src/components/dashboard_users/page_size/page_size.css index 93b7624..6da03c2 100644 --- a/src/components/dashboard_users/page_size/page_size.css +++ b/src/components/dashboard_users/page_size/page_size.css @@ -1,6 +1,6 @@ .page-size-changed { position: fixed; - bottom: 20px; + top: 20px; left: 0; transform: translate(0, 0); diff --git a/src/components/dashboard_users/paging/paging.css b/src/components/dashboard_users/paging/paging.css index 76af72d..ba4d4a5 100644 --- a/src/components/dashboard_users/paging/paging.css +++ b/src/components/dashboard_users/paging/paging.css @@ -27,4 +27,13 @@ } .pagination-cotrol:disabled { border: none; + color: #cfcfcf; +} +.pagination-cotrol.selected, +.pagination-cotrol:hover { + background-color: #4a4a4a; + color: #fff; +} +.paging-value, .label { + font-size: 15px; } \ No newline at end of file diff --git a/src/components/dashboard_users/paging/paging.js b/src/components/dashboard_users/paging/paging.js index 230c171..0d46b5f 100644 --- a/src/components/dashboard_users/paging/paging.js +++ b/src/components/dashboard_users/paging/paging.js @@ -5,70 +5,73 @@ import './paging.css'; const Paging = (props) => { - const { currentPageNumber, lastPageNumber, isDisableFirst, isDisableLast, onPaging, onFirst, onPrevious, onLastPage, onNext, onLast } = props; + const { currentPageNumber, totalPageNumber, isDisableFirst, isDisableLast, onPaging, onFirst, onPrevious, onLastPage, onNext, onLast } = props; let pagingContent = []; - - if (currentPageNumber + 3 < lastPageNumber) { + if (currentPageNumber + 2 <= totalPageNumber) { for (let index = 1; index < 4; index++) { const pagingControls = ; - pagingContent.push(pagingControls); + if (currentPageNumber + index < totalPageNumber) { + pagingContent.push(pagingControls); + } + } } return ( -
- - - - - {pagingContent} - - ... - { - lastPageNumber - ? - : null - } - - - - - +
Last Page Found: - + - - + Page Size: - + - - + Total Pages: - + - - + Current Page: - + - - +
+
+ + + + + {pagingContent} + + ... + { + totalPageNumber + ? + : null + } + + + + +
) } Paging.propTypes = { currentPageNumber: PropTypes.number.isRequired, - lastPageNumber: PropTypes.number, + totalPageNumber: PropTypes.number, isDisableFirst: PropTypes.bool.isRequired, isDisableLast: PropTypes.bool.isRequired, onPaging: PropTypes.func.isRequired, -- GitLab From 0e98961aa5eb1688a5b6a619f3466d9c06891ef6 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Tue, 16 Oct 2018 16:31:28 +0300 Subject: [PATCH 080/249] ag grdi enterpize version activation --- package.json | 1 + .../dashboard_users/css/ag-grid.css | 1802 ---------------- .../dashboard_users/css/ag-theme-material.css | 1878 ----------------- src/components/dashboard_users/index.js | 7 +- src/components/dashboard_users/reducer.js | 24 +- .../interceptor_error/interceptor_error.js | 2 +- src/index.js | 3 + yarn.lock | 4 + 8 files changed, 25 insertions(+), 3696 deletions(-) delete mode 100644 src/components/dashboard_users/css/ag-grid.css delete mode 100644 src/components/dashboard_users/css/ag-theme-material.css diff --git a/package.json b/package.json index 7a8237c..9c2fc51 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "@material-ui/core": "^3.1.1", "@material-ui/icons": "^3.0.1", "ag-grid-community": "^19.0.0", + "ag-grid-enterprise": "^19.0.0", "ag-grid-react": "^19.0.0", "axios": "^0.18.0", "enzyme": "^3.6.0", diff --git a/src/components/dashboard_users/css/ag-grid.css b/src/components/dashboard_users/css/ag-grid.css deleted file mode 100644 index 92ee5f9..0000000 --- a/src/components/dashboard_users/css/ag-grid.css +++ /dev/null @@ -1,1802 +0,0 @@ -ag-grid, ag-grid-angular, ag-grid-ng2, ag-grid-polymer, ag-grid-aurelia { - display: block; } - -.ag-rtl { - direction: rtl; } - -.ag-ltr { - direction: ltr; } - -.ag-select-agg-func-popup { - position: absolute; } - -.ag-body-no-select { - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; } - -.ag-root-wrapper { - position: relative; - display: flex; - flex-direction: column; } - .ag-root-wrapper.ag-layout-normal { - height: 100%; } - -.ag-root-wrapper-body { - display: flex; - flex-direction: row; } - .ag-root-wrapper-body.ag-layout-normal { - flex-grow: 1; - height: 0px; - min-height: 0px; } - -.ag-root { - box-sizing: border-box; - position: relative; - display: flex; - flex-direction: column; } - .ag-root.ag-layout-normal, .ag-root.ag-layout-auto-height { - overflow: hidden; - width: 0px; - min-width: 0px; - flex: 1; } - .ag-root.ag-layout-normal { - height: 100%; } - -.ag-font-style { - cursor: default; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; } - -.ag-popup-backdrop { - height: 100%; - left: 0; - position: fixed; - top: 0; - width: 100%; } - -.ag-header { - box-sizing: border-box; - white-space: nowrap; - width: 100%; - display: flex; } - -.ag-pinned-left-header { - box-sizing: border-box; - display: inline-block; - height: 100%; - overflow: hidden; } - -.ag-pinned-right-header { - box-sizing: border-box; - display: inline-block; - height: 100%; - overflow: hidden; } - -.ag-header-viewport { - box-sizing: border-box; - height: 100%; - overflow: hidden; - width: 0px; - min-width: 0px; - flex: 1; } - -.ag-header-row { - position: absolute; } - -.ag-header-container { - box-sizing: border-box; - height: 100%; - position: relative; - white-space: nowrap; } - -.ag-header-overlay { - display: block; - position: absolute; } - -.ag-header-cell { - box-sizing: border-box; - display: inline-block; - height: 100%; - position: absolute; - vertical-align: bottom; } - -.ag-floating-filter { - box-sizing: border-box; - display: inline-block; - position: absolute; } - -.ag-floating-filter-body { - height: 20px; - margin-right: 25px; } - -.ag-floating-filter-full-body { - height: 20px; - width: 100%; } - -.ag-floating-filter-input { - width: 100%; } - -.ag-floating-filter-input:-moz-read-only { - background-color: #eee; } - -.ag-floating-filter-input:read-only { - background-color: #eee; } - -.ag-floating-filter-menu { - position: absolute; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; } - -.ag-dnd-ghost { - background: #e5e5e5; - border: 1px solid black; - box-sizing: border-box; - cursor: move; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 14px; - line-height: 1.4; - overflow: hidden; - padding: 3px; - position: absolute; - text-overflow: ellipsis; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; } - -.ag-dnd-ghost-icon { - display: inline-block; - float: left; - padding: 2px; } - -.ag-dnd-ghost-label { - display: inline-block; } - -.ag-header-group-cell { - box-sizing: border-box; - display: inline-block; - height: 100%; - overflow: hidden; - position: absolute; - text-overflow: ellipsis; } - -.ag-header-group-cell-label { - overflow: hidden; - text-overflow: ellipsis; - display: flex; } - -.ag-header-cell-label { - overflow: hidden; - text-overflow: ellipsis; } - -.ag-header-cell-resize { - position: absolute; - z-index: 4; - cursor: col-resize; - height: 100%; - width: 4px; } - -.ag-ltr .ag-header-cell-resize { - right: -4px; } - -.ag-ltr .ag-pinned-right-header .ag-header-cell-resize { - left: -4px; } - -.ag-rtl .ag-header-cell-resize { - left: -4px; } - -.ag-rtl .ag-pinned-left-header .ag-header-cell-resize { - right: -4px; } - -.ag-ltr .ag-header-select-all { - float: left; } - -.ag-rtl .ag-header-select-all { - float: right; } - -.ag-header-expand-icon { - padding-left: 4px; } - -.ag-header-cell-menu-button { - float: right; } - -.ag-overlay { - height: 100%; - left: 0; - pointer-events: none; - position: absolute; - top: 0; - width: 100%; } - -.ag-overlay-panel { - display: table; - height: 100%; - pointer-events: none; - width: 100%; } - -.ag-overlay-wrapper { - display: table-cell; - text-align: center; - vertical-align: middle; } - -.ag-primary-cols-header-panel .ag-column-name-filter { - flex-grow: 1; - flex-shrink: 1; } - -.ag-primary-cols-header-panel .ag-primary-cols-filter-wrapper { - width: 100%; } - -.ag-tool-panel-wrapper { - display: flex; - overflow-y: auto; } - -.ag-column-panel { - display: flex; - min-height: 400px; - flex-direction: column; - flex-grow: 1; - overflow-x: hidden; - max-height: 100vh; } - -.ag-body-container.ag-layout-auto-height { - min-height: 50px; } - -.ag-overlay-no-rows-wrapper.ag-layout-auto-height { - padding-top: 30px; } - -.ag-body { - box-sizing: border-box; - position: relative; - display: flex; } - .ag-body.ag-layout-normal { - flex: 1; - height: 0px; - min-height: 0px; } - -.ag-rtl .ag-body { - flex-direction: row-reverse; } - -.ag-ltr .ag-body { - flex-direction: row; } - -.ag-rtl .ag-floating-top { - flex-direction: row-reverse; } - -.ag-ltr .ag-floating-top { - flex-direction: row; } - -.ag-ltr .ag-header { - flex-direction: row; } - -.ag-rtl .ag-header { - flex-direction: row-reverse; } - -.ag-floating-top { - box-sizing: border-box; - overflow: hidden; - white-space: nowrap; - width: 100%; - position: relative; - display: flex; } - -.ag-pinned-left-floating-top { - box-sizing: border-box; - display: inline-block; - overflow: hidden; - position: relative; } - -.ag-pinned-right-floating-top { - box-sizing: border-box; - display: inline-block; - overflow: hidden; - position: relative; } - -.ag-floating-top-viewport { - box-sizing: border-box; - overflow: hidden; - width: 0px; - min-width: 0px; - flex: 1; } - .ag-floating-top-viewport.ag-layout-normal { - height: 100%; } - -.ag-floating-top-container { - box-sizing: border-box; - position: relative; - white-space: nowrap; } - -.ag-floating-bottom { - box-sizing: border-box; - overflow: hidden; - white-space: nowrap; - width: 100%; - position: relative; - display: flex; } - -.ag-pinned-left-floating-bottom { - box-sizing: border-box; - display: inline-block; - overflow: hidden; - position: relative; } - -.ag-pinned-right-floating-bottom { - box-sizing: border-box; - display: inline-block; - overflow: hidden; - position: relative; } - -.ag-floating-bottom-viewport { - box-sizing: border-box; - overflow: hidden; - flex: 1; - width: 0px; - min-width: 0px; } - -.ag-floating-bottom-container { - box-sizing: border-box; - position: relative; - white-space: nowrap; } - -.ag-pinned-left-cols-container { - display: block; - position: relative; } - -.ag-pinned-right-cols-viewport { - height: 100%; - overflow-x: hidden; - overflow-y: auto; } - -.ag-pinned-left-cols-viewport { - height: 100%; - overflow-x: hidden; - overflow-y: auto; } - -.ag-pinned-right-cols-container { - display: block; - position: relative; } - -.ag-pinned-left-cols-viewport-wrapper { - height: 100%; - overflow: hidden; } - -.ag-body-viewport-wrapper.ag-layout-auto-height, .ag-body-viewport-wrapper.ag-layout-normal { - height: 100%; - width: 0px; - min-width: 0px; - flex: 1; } - -.ag-body-viewport-wrapper.ag-layout-auto-height { - overflow: hidden; } - -.ag-body-viewport.ag-layout-auto-height { - overflow-x: auto; } - -.ag-body-viewport.ag-layout-normal { - overflow-x: auto; - overflow-y: auto; - height: 100%; } - -.ag-full-width-viewport-wrapper { - height: 100%; - width: 100%; - display: inline-block; - pointer-events: none; - overflow: hidden; - position: absolute; - top: 0px; - left: 0px; - box-sizing: border-box; } - -.ag-full-width-viewport { - box-sizing: border-box; - height: 100%; - pointer-events: none; - overflow-x: hidden; - overflow-y: auto; } - -.ag-full-width-container { - overflow: hidden; - position: relative; - width: 100%; } - -.ag-floating-bottom-full-width-container { - display: inline; - left: 0; - overflow: hidden; - pointer-events: none; - position: absolute; - top: 0; } - -.ag-floating-top-full-width-container { - display: inline; - left: 0; - overflow: hidden; - pointer-events: none; - position: absolute; - top: 0; } - -.ag-full-width-row { - overflow: hidden; - pointer-events: all; } - -.ag-body-container { - margin-bottom: -2px; - position: relative; } - .ag-body-container:not(.ag-layout-print) { - display: block; } - -.ag-row-animation .ag-row { - transition: top 0.4s, height 0.4s, background-color 0.1s, opacity 0.2s, -webkit-transform 0.4s; - transition: transform 0.4s, top 0.4s, height 0.4s, background-color 0.1s, opacity 0.2s; - transition: transform 0.4s, top 0.4s, height 0.4s, background-color 0.1s, opacity 0.2s, -webkit-transform 0.4s; } - -.ag-row-no-animation .ag-row { - transition: background-color 0.1s; } - -.ag-row { - box-sizing: border-box; - white-space: nowrap; - width: 100%; } - -.ag-row-position-absolute { - position: absolute; } - -.ag-row-position-relative { - position: relative; } - -.ag-column-moving .ag-cell { - transition: left 0.2s; } - -.ag-column-moving .ag-header-cell { - transition: left 0.2s; } - -.ag-column-moving .ag-header-group-cell { - transition: left 0.2s, width 0.2s; } - -.ag-column-drop { - box-sizing: border-box; - width: 100%; } - -.ag-column-drop-vertical { - display: flex; - flex-direction: column; - flex-grow: 1; - height: 50px; - overflow: hidden; } - .ag-column-drop-vertical .ag-column-drop-list { - flex-grow: 1; - height: 20px; - overflow-x: auto; } - .ag-column-drop-vertical .ag-column-drop-cell { - display: flex; } - .ag-column-drop-vertical .ag-column-drop-cell .ag-column-drop-cell-text { - overflow: hidden; - flex: 1; - text-overflow: ellipsis; - white-space: nowrap; } - .ag-column-drop-vertical .ag-column-drop-empty-message { - display: block; } - .ag-column-drop-vertical .ag-column-drop-cell-button { - line-height: 16px; } - -.ag-ltr .ag-column-drop-vertical .ag-column-drop-cell-button { - float: right; } - -.ag-rtl .ag-column-drop-vertical .ag-column-drop-cell-button { - float: left; } - -.ag-column-drop-horizontal { - white-space: nowrap; - overflow: hidden; } - .ag-column-drop-horizontal .ag-column-drop-cell { - display: inline-block; } - .ag-column-drop-horizontal .ag-column-drop-empty-message { - display: inline-block; } - .ag-column-drop-horizontal .ag-column-drop-list { - height: 100%; } - -.ag-cell { - box-sizing: border-box; - display: inline-block; - overflow: hidden; - position: absolute; - text-overflow: ellipsis; - white-space: nowrap; } - -.ag-cell-with-height { - height: 100%; } - -.ag-value-slide-out { - margin-right: 5px; - opacity: 1; - transition: opacity 3s, margin-right 3s; - transition-timing-function: linear; } - -.ag-value-slide-out-end { - margin-right: 10px; - opacity: 0; } - -.ag-opacity-zero { - opacity: 0; } - -.ag-cell-edit-input { - height: 100%; - width: 100%; } - -.ag-group-cell-entire-row { - box-sizing: border-box; - display: inline-block; - height: 100%; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - width: 100%; } - -.ag-footer-cell-entire-row { - box-sizing: border-box; - display: inline-block; - height: 100%; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - width: 100%; } - -.ag-popup-editor { - position: absolute; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; } - -.ag-menu { - max-height: 100%; - overflow-y: auto; - position: absolute; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; } - -.ag-menu-column-select-wrapper { - height: 265px; - overflow: auto; - width: 200px; } - -.ag-menu-list { - border-collapse: collapse; - display: table; } - -.ag-menu-option { - display: table-row; } - -.ag-menu-option-text { - display: table-cell; } - -.ag-menu-option-shortcut { - display: table-cell; } - -.ag-menu-option-icon { - display: table-cell; } - -.ag-menu-option-popup-pointer { - display: table-cell; } - -.ag-menu-separator { - display: table-row; } - -.ag-menu-separator-cell { - display: table-cell; } - -.ag-virtual-list-viewport { - height: 100%; - overflow-x: auto; - width: 100%; } - -.ag-virtual-list-container { - overflow: hidden; - position: relative; } - -.ag-rich-select { - cursor: default; - outline: none; } - -.ag-rich-select-row { - white-space: nowrap; } - -.ag-rich-select-list { - height: 200px; - width: 200px; } - -.ag-set-filter-list { - height: 200px; - width: 200px; } - -.ag-set-filter-item { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; } - -.ag-virtual-list-item { - position: absolute; - width: 100%; } - .ag-virtual-list-item span:empty:not(.ag-icon) { - border-left: 1px solid transparent; } - -.ag-filter-filter { - box-sizing: border-box; - width: 100%; } - -.ag-floating-filter-body input { - height: 19px; - margin: 0; - width: 100%; } - -.ag-floating-filter-full-body input { - height: 19px; - margin: 0; - width: 100%; } - -.ag-filter-select { - margin: 4px 4px 0 4px; - width: 110px; } - -.ag-list-selection { - cursor: default; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; } - -.ag-tool-panel-wrapper { - box-sizing: border-box; - cursor: default; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - width: 200px; } - -.ag-primary-cols-list-panel { - flex-grow: 1; - height: 50px; - overflow: auto; } - -.ag-column-select-indent { - display: inline-block; } - -.ag-ltr .ag-column-tool-panel-column { - margin-left: 16px; } - -.ag-rtl .ag-column-tool-panel-column { - margin-right: 16px; } - -.ag-column-tool-panel-column, -.ag-column-tool-panel-column-group { - align-items: stretch; - display: flex; - flex-direction: row; - flex-wrap: nowrap; - text-overflow: ellipsis; - white-space: nowrap; } - .ag-column-tool-panel-column .ag-column-tool-panel-column, - .ag-column-tool-panel-column .ag-column-tool-panel-column-group, - .ag-column-tool-panel-column-group .ag-column-tool-panel-column, - .ag-column-tool-panel-column-group .ag-column-tool-panel-column-group { - flex-grow: 1; - flex-shrink: 1; - overflow: hidden; - text-overflow: ellipsis; } - .ag-column-tool-panel-column .ag-column-drag, - .ag-column-tool-panel-column-group .ag-column-drag { - min-width: 16px; - flex-grow: 0; - flex-shrink: 0; } - -.ag-column-select-panel { - display: flex; - flex-direction: column; - overflow: hidden; } - -.ag-side-bar .ag-column-select-panel { - flex-grow: 4; } - -.ag-tool-panel-horizontal-resize { - cursor: col-resize; - height: 100%; - position: absolute; - top: 0; - width: 5px; - z-index: 1; } - -.ag-rtl .ag-tool-panel-horizontal-resize { - float: right; - -webkit-transform: translateX(3px); - transform: translateX(3px); } - -.ag-ltr .ag-tool-panel-horizontal-resize { - float: left; - -webkit-transform: translateX(-3px); - transform: translateX(-3px); } - -.ag-menu-column-select-wrapper .ag-column-select-panel { - height: 100%; } - -.ag-hidden { - display: none !important; } - -.ag-visibility-hidden { - visibility: hidden !important; } - -.ag-faded { - opacity: 0.3; } - -.ag-width-half { - display: inline-block; - width: 50%; } - -.ag-shake-left-to-right { - -webkit-animation-direction: alternate; - animation-direction: alternate; - -webkit-animation-duration: 0.2s; - animation-duration: 0.2s; - -webkit-animation-iteration-count: infinite; - animation-iteration-count: infinite; - -webkit-animation-name: ag-shake-left-to-right; - animation-name: ag-shake-left-to-right; } - -@-webkit-keyframes ag-shake-left-to-right { - from { - padding-left: 6px; - padding-right: 2px; } - to { - padding-left: 2px; - padding-right: 6px; } } - -@keyframes ag-shake-left-to-right { - from { - padding-left: 6px; - padding-right: 2px; } - to { - padding-left: 2px; - padding-right: 6px; } } - -/* icons are used outside of the grid root (in the ghost) */ -.ag-icon-aggregation { - display: inline-block; - background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkuNSAyLjVoLTZsMiAzLjUtMiAzLjVoNiIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2U9IiMwMDAiIGZpbGw9Im5vbmUiLz48L3N2Zz4=) center no-repeat; - background-size: 12px 12px; - -webkit-filter: "initial"; - filter: "initial"; - height: 12px; - width: 12px; } - -.ag-icon-arrows { - display: inline-block; - background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE2IDZsLTEuNDEgMS40MUwxNi4xNyA5SDR2MmgxMi4xN2wtMS41OCAxLjU5TDE2IDE0bDQtNHoiLz48cGF0aCBkPSJNNCA2bDEuNDEgMS40MUwzLjgzIDlIMTZ2MkgzLjgzbDEuNTggMS41OUw0IDE0bC00LTR6Ii8+PHBhdGggZD0iTTYgMTZsMS40MS0xLjQxTDkgMTYuMTdWNGgydjEyLjE3bDEuNTktMS41OEwxNCAxNmwtNCA0eiIvPjxwYXRoIGQ9Ik0xNCA0bC0xLjQxIDEuNDFMMTEgMy44M1YxNkg5VjMuODNMNy40MSA1LjQxIDYgNGw0LTR6Ii8+PC9zdmc+) center no-repeat; - background-size: 12px 12px; - -webkit-filter: "initial"; - filter: "initial"; - height: 12px; - width: 12px; } - -.ag-icon-asc { - display: inline-block; - background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxwYXRoIGlkPSJhIiBkPSJNNSAzaDJ2OUg1eiIvPjxwYXRoIGQ9Ik04Ljk5MyA1LjJWMy40OTNoLTZ2Nkg0LjdWNS4yaDQuMjkzeiIgaWQ9ImIiLz48L2RlZnM+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48dXNlIGZpbGw9IiNEOEQ4RDgiIHhsaW5rOmhyZWY9IiNhIi8+PHBhdGggc3Ryb2tlPSIjMDAwIiBkPSJNNS41IDMuNWgxdjhoLTF6Ii8+PGcgdHJhbnNmb3JtPSJyb3RhdGUoNDUgNS45OTMgNi40OTMpIj48dXNlIGZpbGw9IiNEOEQ4RDgiIHhsaW5rOmhyZWY9IiNiIi8+PHBhdGggc3Ryb2tlPSIjMDAwIiBkPSJNOC40OTMgNC43di0uNzA3aC01djVINC4yVjQuN2g0LjI5M3oiLz48L2c+PC9nPjwvc3ZnPg==) center no-repeat; - background-size: 12px 12px; - -webkit-filter: "initial"; - filter: "initial"; - height: 12px; - width: 12px; } - -.ag-icon-checkbox-checked-readonly { - display: inline-block; - background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxyZWN0IGlkPSJhIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHJ4PSIxIi8+PC9kZWZzPjxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PHVzZSBmaWxsPSIjRDhEOEQ4IiB4bGluazpocmVmPSIjYSIvPjxyZWN0IHN0cm9rZT0iIzAwMCIgeD0iLjUiIHk9Ii41IiB3aWR0aD0iMTEiIGhlaWdodD0iMTEiIHJ4PSIxIi8+PHBhdGggc3Ryb2tlPSIjMDAwIiBkPSJNOSAzTDYgOC41bC0yLjUtMiIvPjwvZz48L3N2Zz4=) center no-repeat; - background-size: 12px 12px; - -webkit-filter: "initial"; - filter: "initial"; - height: 12px; - width: 12px; } - -.ag-icon-checkbox-checked { - display: inline-block; - background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxyZWN0IGlkPSJhIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHJ4PSIxIi8+PC9kZWZzPjxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PHVzZSBmaWxsPSIjRkZGIiB4bGluazpocmVmPSIjYSIvPjxyZWN0IHN0cm9rZT0iIzAwMCIgeD0iLjUiIHk9Ii41IiB3aWR0aD0iMTEiIGhlaWdodD0iMTEiIHJ4PSIxIi8+PHBhdGggc3Ryb2tlPSIjMDAwIiBkPSJNOSAzTDYgOC41bC0yLjUtMiIvPjwvZz48L3N2Zz4=) center no-repeat; - background-size: 12px 12px; - -webkit-filter: "initial"; - filter: "initial"; - height: 12px; - width: 12px; } - -.ag-icon-checkbox-indeterminate-readonly { - display: inline-block; - background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxyZWN0IGlkPSJhIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHJ4PSIxIi8+PC9kZWZzPjxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PHVzZSBmaWxsPSIjRDhEOEQ4IiB4bGluazpocmVmPSIjYSIvPjxyZWN0IHN0cm9rZT0iIzAwMCIgeD0iLjUiIHk9Ii41IiB3aWR0aD0iMTEiIGhlaWdodD0iMTEiIHJ4PSIxIi8+PHBhdGggZmlsbD0iIzAwMCIgZD0iTTQgNWg0djJINHoiLz48L2c+PC9zdmc+) center no-repeat; - background-size: 12px 12px; - -webkit-filter: "initial"; - filter: "initial"; - height: 12px; - width: 12px; } - -.ag-icon-checkbox-indeterminate { - display: inline-block; - background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxyZWN0IGlkPSJhIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHJ4PSIxIi8+PC9kZWZzPjxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PHVzZSBmaWxsPSIjRkZGIiB4bGluazpocmVmPSIjYSIvPjxyZWN0IHN0cm9rZT0iIzAwMCIgeD0iLjUiIHk9Ii41IiB3aWR0aD0iMTEiIGhlaWdodD0iMTEiIHJ4PSIxIi8+PHBhdGggZmlsbD0iIzAwMCIgZD0iTTQgNWg0djJINHoiLz48L2c+PC9zdmc+) center no-repeat; - background-size: 12px 12px; - -webkit-filter: "initial"; - filter: "initial"; - height: 12px; - width: 12px; } - -.ag-icon-checkbox-unchecked-readonly { - display: inline-block; - background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxyZWN0IGlkPSJhIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHJ4PSIxIi8+PC9kZWZzPjxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PHVzZSBmaWxsPSIjRDhEOEQ4IiB4bGluazpocmVmPSIjYSIvPjxyZWN0IHN0cm9rZT0iIzAwMCIgeD0iLjUiIHk9Ii41IiB3aWR0aD0iMTEiIGhlaWdodD0iMTEiIHJ4PSIxIi8+PC9nPjwvc3ZnPg==) center no-repeat; - background-size: 12px 12px; - -webkit-filter: "initial"; - filter: "initial"; - height: 12px; - width: 12px; } - -.ag-icon-checkbox-unchecked { - display: inline-block; - background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxyZWN0IGlkPSJhIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHJ4PSIxIi8+PC9kZWZzPjxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+PHVzZSBmaWxsPSIjRkZGIiB4bGluazpocmVmPSIjYSIvPjxyZWN0IHN0cm9rZT0iIzAwMCIgeD0iLjUiIHk9Ii41IiB3aWR0aD0iMTEiIGhlaWdodD0iMTEiIHJ4PSIxIi8+PC9nPjwvc3ZnPg==) center no-repeat; - background-size: 12px 12px; - -webkit-filter: "initial"; - filter: "initial"; - height: 12px; - width: 12px; } - -.ag-icon-column { - display: inline-block; - background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEgMWg0djJIMXptMCAzaDR2N0gxeiIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+) center no-repeat; - background-size: 12px 12px; - -webkit-filter: "initial"; - filter: "initial"; - height: 12px; - width: 12px; } - -.ag-icon-columns { - display: inline-block; - background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEgMWg0djJIMXptNiAwaDR2Mkg3ek0xIDVoNHYySDF6bTYgMGg0djJIN3pNMSA5aDR2Mkgxem02IDBoNHYySDd6IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=) center no-repeat; - background-size: 12px 12px; - -webkit-filter: "initial"; - filter: "initial"; - height: 12px; - width: 12px; } - -.ag-icon-contracted { - display: inline-block; - background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cmVjdCBzdHJva2Utb3BhY2l0eT0iLjUiIHN0cm9rZT0iIzAwMCIgeD0iMS41IiB5PSIxLjUiIHdpZHRoPSI5IiBoZWlnaHQ9IjkiIHJ4PSIxIi8+PHBhdGggZmlsbD0iIzAwMCIgZD0iTTkgNXYySDNWNXoiLz48L2c+PC9zdmc+) center no-repeat; - background-size: 12px 12px; - -webkit-filter: "initial"; - filter: "initial"; - height: 12px; - width: 12px; } - -.ag-icon-copy { - display: inline-block; - background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik00LjUgNC41aDV2NWgtNXoiLz48cGF0aCBkPSJNNy41IDIuNWgtNXY1aDJ2Mmg1di01aC0ydi0yeiIvPjwvZz48L3N2Zz4=) center no-repeat; - background-size: 12px 12px; - -webkit-filter: "initial"; - filter: "initial"; - height: 12px; - width: 12px; } - -.ag-icon-cut { - display: inline-block; - background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0zIDMuMTJjLjY2Ny4wNzggMyAxLjc0NSA3IDUtLjMyNi4yMDQtLjY1OS4yMDQtMSAwLS4zNDEtLjIwNi0xLjY3NC0xLjIwNi00LTMgMCAuNjY2LS42NjcuNjY2LTIgMC0yLTEtMS0yLjEyIDAtMnoiLz48cGF0aCBkPSJNMyA4LjI2NGMuNjY3LS4wOCAzLTEuNzQ2IDctNS0uMzI2LS4yMDUtLjY1OS0uMjA1LTEgMC0uMzQxLjIwNC0xLjY3NCAxLjIwNC00IDMgMC0uNjY3LS42NjctLjY2Ny0yIDAtMiAxLTEgMi4xMTkgMCAyeiIvPjwvZz48L3N2Zz4=) center no-repeat; - background-size: 12px 12px; - -webkit-filter: "initial"; - filter: "initial"; - height: 12px; - width: 12px; } - -.ag-icon-desc { - display: inline-block; - background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxwYXRoIGlkPSJhIiBkPSJNNSAyaDJ2OUg1eiIvPjxwYXRoIGQ9Ik04Ljk5MyA2LjFWNC4zOTNoLTZ2Nkg0LjdWNi4xaDQuMjkzeiIgaWQ9ImIiLz48L2RlZnM+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48dXNlIGZpbGw9IiNEOEQ4RDgiIHhsaW5rOmhyZWY9IiNhIi8+PHBhdGggc3Ryb2tlPSIjMDAwIiBkPSJNNS41IDIuNWgxdjhoLTF6Ii8+PGcgdHJhbnNmb3JtPSJyb3RhdGUoLTEzNSA1Ljk5MyA3LjM5MykiPjx1c2UgZmlsbD0iI0Q4RDhEOCIgeGxpbms6aHJlZj0iI2IiLz48cGF0aCBzdHJva2U9IiMwMDAiIGQ9Ik04LjQ5MyA1LjZ2LS43MDdoLTV2NUg0LjJWNS42aDQuMjkzeiIvPjwvZz48L2c+PC9zdmc+) center no-repeat; - background-size: 12px 12px; - -webkit-filter: "initial"; - filter: "initial"; - height: 12px; - width: 12px; } - -.ag-icon-expanded { - display: inline-block; - background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cmVjdCBzdHJva2Utb3BhY2l0eT0iLjUiIHN0cm9rZT0iIzAwMCIgeD0iMS41IiB5PSIxLjUiIHdpZHRoPSI5IiBoZWlnaHQ9IjkiIHJ4PSIxIi8+PHBhdGggZmlsbD0iIzAwMCIgZD0iTTUgM2gydjZINXoiLz48cGF0aCBmaWxsPSIjMDAwIiBkPSJNOSA1djJIM1Y1eiIvPjwvZz48L3N2Zz4=) center no-repeat; - background-size: 12px 12px; - -webkit-filter: "initial"; - filter: "initial"; - height: 12px; - width: 12px; } - -.ag-icon-eye-slash { - display: inline-block; - background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMy4wMDEgMy45MDhMMyA0YTMgMyAwIDEgMCA1Ljk5OS0uMDkyQTUuMjQ4IDUuMjQ4IDAgMCAwIDYgM2MtMS4xIDAtMi4xLjMwMy0yLjk5OS45MDh6IiBmaWxsPSIjMDAwIi8+PHBhdGggZD0iTTQgNC41Yy42NjctLjMzMyAxLjY2Ny0uNSAzLS41IiBzdHJva2U9IiM5Nzk3OTciLz48cGF0aCBkPSJNMSA2YzEuMzMzLTIgMy0zIDUtM3MzLjY2NyAxIDUgM0M5LjY2NyA4IDggOSA2IDlTMi4zMzMgOCAxIDZ6IiBzdHJva2U9IiMwMDAiLz48cGF0aCBkPSJNNC4wMDQgMi44MzVsNC45OTIgNi4zMyIgc3Ryb2tlPSIjMDAwIiBzdHJva2UtbGluZWNhcD0ic3F1YXJlIi8+PHBhdGggZD0iTTMuMDA0IDIuODM1bDQuOTkyIDYuMzMiIHN0cm9rZT0iI0ZGRiIgc3Ryb2tlLWxpbmVjYXA9InNxdWFyZSIvPjwvZz48L3N2Zz4=) center no-repeat; - background-size: 12px 12px; - -webkit-filter: "initial"; - filter: "initial"; - height: 12px; - width: 12px; } - -.ag-icon-eye { - display: inline-block; - background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMy4wMDEgMy45MDhMMyA0YTMgMyAwIDEgMCA1Ljk5OS0uMDkyQTUuMjQ4IDUuMjQ4IDAgMCAwIDYgM2MtMS4xIDAtMi4xLjMwMy0yLjk5OS45MDh6IiBmaWxsPSIjMDAwIi8+PHBhdGggZD0iTTQgNC41Yy42NjctLjMzMyAxLjY2Ny0uNSAzLS41IiBzdHJva2U9IiM5Nzk3OTciLz48cGF0aCBkPSJNMSA2YzEuMzMzLTIgMy0zIDUtM3MzLjY2NyAxIDUgM0M5LjY2NyA4IDggOSA2IDlTMi4zMzMgOCAxIDZ6IiBzdHJva2U9IiMwMDAiLz48L2c+PC9zdmc+) center no-repeat; - background-size: 12px 12px; - -webkit-filter: "initial"; - filter: "initial"; - height: 12px; - width: 12px; } - -.ag-icon-filter { - display: inline-block; - background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEgMmgxMEw3IDZ2NUw1IDlWNkwxIDJ6bTQgNHYxaDJWNkg1eiIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+) center no-repeat; - background-size: 12px 12px; - -webkit-filter: "initial"; - filter: "initial"; - height: 12px; - width: 12px; } - -.ag-icon-group { - display: inline-block; - background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBzdHJva2U9IiMwMDAiIGQ9Ik03LjUgMS41aDN2MmgtM3ptMCA0aDN2MmgtM3ptMCA0aDN2MmgtM3oiLz48cGF0aCBmaWxsPSIjMDAwIiBkPSJNMiAzaDF2OEgyem0xIDNoNHYxSDN6bTItNGgzdjFINXoiLz48cGF0aCBmaWxsPSIjMDAwIiBkPSJNMiAxMGg1djFIMnoiLz48cGF0aCBzdHJva2U9IiMwMDAiIGQ9Ik0xLjUgMS41aDN2MmgtM3oiLz48L2c+PC9zdmc+) center no-repeat; - background-size: 12px 12px; - -webkit-filter: "initial"; - filter: "initial"; - height: 12px; - width: 12px; } - -.ag-icon-indeterminate { - display: inline-block; - background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMy4wNTYgNC41ODFhMy4wMDEgMy4wMDEgMCAwIDAgNS44ODggMEM4LjA1OSA0LjE5NCA3LjA3OCA0IDYgNGMtMS4wNzggMC0yLjA2LjE5NC0yLjk0NC41ODF6IiBmaWxsPSIjMDAwIi8+PHBhdGggZD0iTTQgNS41Yy42NjctLjMzMyAxLjY2Ny0uNSAzLS41IiBzdHJva2U9IiM5Nzk3OTciLz48cGF0aCBkPSJNMSA2YzEuMzMzLTEuMzMzIDMtMiA1LTJzMy42NjcuNjY3IDUgMkM5LjY2NyA3LjMzMyA4IDggNiA4cy0zLjY2Ny0uNjY3LTUtMnoiIHN0cm9rZT0iIzAwMCIvPjwvZz48L3N2Zz4=) center no-repeat; - background-size: 12px 12px; - -webkit-filter: "initial"; - filter: "initial"; - height: 12px; - width: 12px; } - -.ag-icon-left { - display: inline-block; - background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxwYXRoIGlkPSJhIiBkPSJNNS41IDEuNWgydjloLTJ6Ii8+PHBhdGggZD0iTTcuOTkzIDQuN1YyLjk5M2gtNnY2SDMuN1Y0LjdoNC4yOTN6IiBpZD0iYiIvPjwvZGVmcz48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxnIHRyYW5zZm9ybT0icm90YXRlKDkwIDYuNSA2KSI+PHVzZSBmaWxsPSIjRDhEOEQ4IiB4bGluazpocmVmPSIjYSIvPjxwYXRoIHN0cm9rZT0iIzAwMCIgZD0iTTYgMmgxdjhINnoiLz48L2c+PGcgdHJhbnNmb3JtPSJyb3RhdGUoLTQ1IDQuOTkzIDUuOTkzKSI+PHVzZSBmaWxsPSIjRDhEOEQ4IiB4bGluazpocmVmPSIjYiIvPjxwYXRoIHN0cm9rZT0iIzAwMCIgZD0iTTcuNDkzIDQuMnYtLjcwN2gtNXY1SDMuMlY0LjJoNC4yOTN6Ii8+PC9nPjwvZz48L3N2Zz4=) center no-repeat; - background-size: 12px 12px; - -webkit-filter: "initial"; - filter: "initial"; - height: 12px; - width: 12px; } - -.ag-icon-loading { - display: inline-block; - background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxwYXRoIGlkPSJhIiBkPSJNNSAxaDJ2M0g1eiIvPjxwYXRoIGlkPSJiIiBkPSJNNSA4aDJ2M0g1eiIvPjxwYXRoIGlkPSJjIiBkPSJNMSA1aDN2MkgxeiIvPjxwYXRoIGlkPSJkIiBkPSJNOCA1aDN2Mkg4eiIvPjxwYXRoIGlkPSJlIiBkPSJNNCAwaDJ2M0g0eiIvPjxwYXRoIGlkPSJmIiBkPSJNNCA3aDJ2M0g0eiIvPjxwYXRoIGlkPSJnIiBkPSJNMCA0aDN2MkgweiIvPjxwYXRoIGlkPSJoIiBkPSJNNyA0aDN2Mkg3eiIvPjwvZGVmcz48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjx1c2UgZmlsbD0iI0Q4RDhEOCIgeGxpbms6aHJlZj0iI2EiLz48cGF0aCBzdHJva2U9IiM5Nzk3OTciIGQ9Ik01LjUgMS41aDF2MmgtMXoiLz48dXNlIGZpbGw9IiNEOEQ4RDgiIHhsaW5rOmhyZWY9IiNiIi8+PHBhdGggc3Ryb2tlPSIjOTc5Nzk3IiBkPSJNNS41IDguNWgxdjJoLTF6Ii8+PHVzZSBmaWxsPSIjRDhEOEQ4IiB4bGluazpocmVmPSIjYyIvPjxwYXRoIHN0cm9rZT0iIzk3OTc5NyIgZD0iTTEuNSA1LjVoMnYxaC0yeiIvPjx1c2UgZmlsbD0iI0Q4RDhEOCIgeGxpbms6aHJlZj0iI2QiLz48cGF0aCBzdHJva2U9IiM5Nzk3OTciIGQ9Ik04LjUgNS41aDJ2MWgtMnoiLz48ZyBvcGFjaXR5PSIuNzE0Ij48ZyB0cmFuc2Zvcm09InJvdGF0ZSg0NSA0LjI5MyA2LjcwNykiPjx1c2UgZmlsbD0iI0Q4RDhEOCIgeGxpbms6aHJlZj0iI2UiLz48cGF0aCBzdHJva2U9IiM5Nzk3OTciIGQ9Ik00LjUuNWgxdjJoLTF6Ii8+PC9nPjxnIHRyYW5zZm9ybT0icm90YXRlKDQ1IDQuMjkzIDYuNzA3KSI+PHVzZSBmaWxsPSIjRDhEOEQ4IiB4bGluazpocmVmPSIjZiIvPjxwYXRoIHN0cm9rZT0iIzk3OTc5NyIgZD0iTTQuNSA3LjVoMXYyaC0xeiIvPjwvZz48ZyB0cmFuc2Zvcm09InJvdGF0ZSg0NSA0LjI5MyA2LjcwNykiPjx1c2UgZmlsbD0iI0Q4RDhEOCIgeGxpbms6aHJlZj0iI2ciLz48cGF0aCBzdHJva2U9IiM5Nzk3OTciIGQ9Ik0uNSA0LjVoMnYxaC0yeiIvPjwvZz48ZyB0cmFuc2Zvcm09InJvdGF0ZSg0NSA0LjI5MyA2LjcwNykiPjx1c2UgZmlsbD0iI0Q4RDhEOCIgeGxpbms6aHJlZj0iI2giLz48cGF0aCBzdHJva2U9IiM5Nzk3OTciIGQ9Ik03LjUgNC41aDJ2MWgtMnoiLz48L2c+PC9nPjwvZz48L3N2Zz4=) center no-repeat; - background-size: 12px 12px; - -webkit-filter: "initial"; - filter: "initial"; - height: 12px; - width: 12px; } - -.ag-icon-menu { - display: inline-block; - background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEgMWgxMHYySDF6bTAgNGgxMHYySDF6bTAgNGgxMHYySDF6IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=) center no-repeat; - background-size: 12px 12px; - -webkit-filter: "initial"; - filter: "initial"; - height: 12px; - width: 12px; } - -.ag-icon-minus { - display: inline-block; - background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIgNWg4djJIMnoiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==) center no-repeat; - background-size: 12px 12px; - -webkit-filter: "initial"; - filter: "initial"; - height: 12px; - width: 12px; } - -.ag-icon-none { - display: inline-block; - background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxwYXRoIGlkPSJhIiBkPSJNNSAzaDJ2Nkg1eiIvPjxwYXRoIGQ9Ik04LjE0NiA4LjE4MlY2LjQ3NWgtNXY1aDEuNzA4VjguMTgyaDMuMjkyeiIgaWQ9ImIiLz48cGF0aCBkPSJNOC41IDIuOTE0VjEuMjA3aC01djVoMS43MDdWMi45MTRIOC41eiIgaWQ9ImMiLz48L2RlZnM+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48dXNlIGZpbGw9IiNEOEQ4RDgiIHhsaW5rOmhyZWY9IiNhIi8+PHBhdGggc3Ryb2tlPSIjMDAwIiBkPSJNNS41IDMuNWgxdjVoLTF6Ii8+PGcgdHJhbnNmb3JtPSJyb3RhdGUoLTEzNSA1LjY0NiA4LjQ3NSkiPjx1c2UgZmlsbD0iI0Q4RDhEOCIgeGxpbms6aHJlZj0iI2IiLz48cGF0aCBzdHJva2U9IiMwMDAiIGQ9Ik03LjY0NiA3LjY4MnYtLjcwN2gtNHY0aC43MDhWNy42ODJoMy4yOTJ6Ii8+PC9nPjxnIHRyYW5zZm9ybT0icm90YXRlKDQ1IDYgMy43MDcpIj48dXNlIGZpbGw9IiNEOEQ4RDgiIHhsaW5rOmhyZWY9IiNjIi8+PHBhdGggc3Ryb2tlPSIjMDAwIiBkPSJNOCAyLjQxNHYtLjcwN0g0djRoLjcwN1YyLjQxNEg4eiIvPjwvZz48L2c+PC9zdmc+) center no-repeat; - background-size: 12px 12px; - -webkit-filter: "initial"; - filter: "initial"; - height: 12px; - width: 12px; } - -.ag-icon-not-allowed { - display: inline-block; - background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxjaXJjbGUgY3g9IjYiIGN5PSI2IiByPSI0Ii8+PHBhdGggZD0iTTguNSAzLjVMMy40MDEgOC41OTkiIHN0cm9rZS1saW5lY2FwPSJzcXVhcmUiLz48L2c+PC9zdmc+) center no-repeat; - background-size: 12px 12px; - -webkit-filter: "initial"; - filter: "initial"; - height: 12px; - width: 12px; } - -.ag-icon-paste { - display: inline-block; - background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjUgMi41aDd2N2gtN3oiLz48cGF0aCBkPSJNNi41IDEuNWgtMXYyaC0xdjFoM3YtMWgtMXYtMnoiLz48L2c+PC9zdmc+) center no-repeat; - background-size: 12px 12px; - -webkit-filter: "initial"; - filter: "initial"; - height: 12px; - width: 12px; } - -.ag-icon-pin { - display: inline-block; - background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBmaWxsPSIjMDAwIiBkPSJNMyAyaDZ2MUg4djRsMiAxSDdsLTEgMy0xLTNIMmwyLTFWM0gzeiIvPjxwYXRoIGZpbGwtb3BhY2l0eT0iLjUiIGZpbGw9IiNGRkYiIGQ9Ik01IDNoMXY0SDV6Ii8+PHBhdGggZmlsbC1vcGFjaXR5PSIuMjgiIGZpbGw9IiNGRkYiIGQ9Ik00IDNoMXYzSDR6Ii8+PC9nPjwvc3ZnPg==) center no-repeat; - background-size: 12px 12px; - -webkit-filter: "initial"; - filter: "initial"; - height: 12px; - width: 12px; } - -.ag-icon-pivot { - display: inline-block; - background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgc3Ryb2tlPSIjMDAwIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxyZWN0IHg9IjEuNSIgeT0iMS41IiB3aWR0aD0iOSIgaGVpZ2h0PSI5IiByeD0iMSIvPjxwYXRoIGQ9Ik0xMC41IDMuNWgtOW0yLTJ2OSIgc3Ryb2tlLWxpbmVjYXA9InNxdWFyZSIvPjxwYXRoIGQ9Ik03LjUgNi41bDEtMSAxIDFtLTMgMWwtMSAxIDEgMSIvPjxwYXRoIGQ9Ik04LjUgNS41djNoLTMiLz48L2c+PC9zdmc+) center no-repeat; - background-size: 12px 12px; - -webkit-filter: "initial"; - filter: "initial"; - height: 12px; - width: 12px; } - -.ag-icon-plus { - display: inline-block; - background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNNSAyaDJ2OEg1eiIvPjxwYXRoIGQ9Ik0yIDVoOHYySDJ6Ii8+PC9nPjwvc3ZnPg==) center no-repeat; - background-size: 12px 12px; - -webkit-filter: "initial"; - filter: "initial"; - height: 12px; - width: 12px; } - -.ag-icon-right { - display: inline-block; - background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxwYXRoIGlkPSJhIiBkPSJNNC41IDEuNWgydjloLTJ6Ii8+PHBhdGggZD0iTTkuOTkzIDQuN1YyLjk5M2gtNnY2SDUuN1Y0LjdoNC4yOTN6IiBpZD0iYiIvPjwvZGVmcz48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxnIHRyYW5zZm9ybT0icm90YXRlKDkwIDUuNSA2KSI+PHVzZSBmaWxsPSIjRDhEOEQ4IiB4bGluazpocmVmPSIjYSIvPjxwYXRoIHN0cm9rZT0iIzAwMCIgZD0iTTUgMmgxdjhINXoiLz48L2c+PGcgdHJhbnNmb3JtPSJzY2FsZSgtMSAxKSByb3RhdGUoLTQ1IDAgMjIuODc0KSI+PHVzZSBmaWxsPSIjRDhEOEQ4IiB4bGluazpocmVmPSIjYiIvPjxwYXRoIHN0cm9rZT0iIzAwMCIgZD0iTTkuNDkzIDQuMnYtLjcwN2gtNXY1SDUuMlY0LjJoNC4yOTN6Ii8+PC9nPjwvZz48L3N2Zz4=) center no-repeat; - background-size: 12px 12px; - -webkit-filter: "initial"; - filter: "initial"; - height: 12px; - width: 12px; } - -.ag-icon-small-left { - display: inline-block; - background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMgNmw0LTR2OHoiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==) center no-repeat; - background-size: 12px 12px; - -webkit-filter: "initial"; - filter: "initial"; - height: 12px; - width: 12px; } - -.ag-icon-small-right { - display: inline-block; - background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUgMmw0IDQtNCA0eiIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+) center no-repeat; - background-size: 12px 12px; - -webkit-filter: "initial"; - filter: "initial"; - height: 12px; - width: 12px; } - -.ag-icon-small-up { - display: inline-block; - background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIgN2w0LTQgNCA0eiIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+) center no-repeat; - background-size: 12px 12px; - -webkit-filter: "initial"; - filter: "initial"; - height: 12px; - width: 12px; } - -.ag-icon-small-down { - display: inline-block; - background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIgNWg4TDYgOXoiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==) center no-repeat; - background-size: 12px 12px; - -webkit-filter: "initial"; - filter: "initial"; - height: 12px; - width: 12px; } - -.ag-icon-tick { - display: inline-block; - background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEuNSA1LjVsMyAzIDYtNiIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2U9IiMwMDAiIGZpbGw9Im5vbmUiLz48L3N2Zz4=) center no-repeat; - background-size: 12px 12px; - -webkit-filter: "initial"; - filter: "initial"; - height: 12px; - width: 12px; } - -.ag-icon-cross { - display: inline-block; - background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIgMTBsOC04bTAgOEwyIDIiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLXdpZHRoPSIyIiBmaWxsPSJub25lIi8+PC9zdmc+) center no-repeat; - background-size: 12px 12px; - -webkit-filter: "initial"; - filter: "initial"; - height: 12px; - width: 12px; } - -.ag-icon-tree-open { - display: inline-block; - background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIgNWg4TDYgOXoiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==) center no-repeat; - background-size: 12px 12px; - -webkit-filter: "initial"; - filter: "initial"; - height: 12px; - width: 12px; } - -.ag-icon-tree-closed { - display: inline-block; - background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUgMmw0IDQtNCA0eiIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+) center no-repeat; - background-size: 12px 12px; - -webkit-filter: "initial"; - filter: "initial"; - height: 12px; - width: 12px; } - -.ag-icon-tree-indeterminate { - display: inline-block; - background: transparent url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIgNWg4djJIMnoiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==) center no-repeat; - background-size: 12px 12px; - -webkit-filter: "initial"; - filter: "initial"; - height: 12px; - width: 12px; } - -.loading-filter { - background-color: #e6e6e6; - height: 100%; - padding: 5px; - position: absolute; - top: 34px; - width: 100%; - z-index: 1; } - -.ag-details-row { - height: 100%; - width: 100%; } - -.ag-details-grid { - height: 100%; - width: 100%; } - -.ag-primary-cols-header-panel { - display: flex; - flex-direction: row; } - -.ag-ltr .ag-toolpanel-indent-1 { - padding-left: 10px; } - -.ag-rtl .ag-toolpanel-indent-1 { - padding-right: 10px; } - -.ag-ltr .ag-row-group-indent-1 { - padding-left: 10px; } - -.ag-rtl .ag-row-group-indent-1 { - padding-right: 10px; } - -.ag-ltr .ag-toolpanel-indent-2 { - padding-left: 20px; } - -.ag-rtl .ag-toolpanel-indent-2 { - padding-right: 20px; } - -.ag-ltr .ag-row-group-indent-2 { - padding-left: 20px; } - -.ag-rtl .ag-row-group-indent-2 { - padding-right: 20px; } - -.ag-ltr .ag-toolpanel-indent-3 { - padding-left: 30px; } - -.ag-rtl .ag-toolpanel-indent-3 { - padding-right: 30px; } - -.ag-ltr .ag-row-group-indent-3 { - padding-left: 30px; } - -.ag-rtl .ag-row-group-indent-3 { - padding-right: 30px; } - -.ag-ltr .ag-toolpanel-indent-4 { - padding-left: 40px; } - -.ag-rtl .ag-toolpanel-indent-4 { - padding-right: 40px; } - -.ag-ltr .ag-row-group-indent-4 { - padding-left: 40px; } - -.ag-rtl .ag-row-group-indent-4 { - padding-right: 40px; } - -.ag-ltr .ag-toolpanel-indent-5 { - padding-left: 50px; } - -.ag-rtl .ag-toolpanel-indent-5 { - padding-right: 50px; } - -.ag-ltr .ag-row-group-indent-5 { - padding-left: 50px; } - -.ag-rtl .ag-row-group-indent-5 { - padding-right: 50px; } - -.ag-ltr .ag-toolpanel-indent-6 { - padding-left: 60px; } - -.ag-rtl .ag-toolpanel-indent-6 { - padding-right: 60px; } - -.ag-ltr .ag-row-group-indent-6 { - padding-left: 60px; } - -.ag-rtl .ag-row-group-indent-6 { - padding-right: 60px; } - -.ag-ltr .ag-toolpanel-indent-7 { - padding-left: 70px; } - -.ag-rtl .ag-toolpanel-indent-7 { - padding-right: 70px; } - -.ag-ltr .ag-row-group-indent-7 { - padding-left: 70px; } - -.ag-rtl .ag-row-group-indent-7 { - padding-right: 70px; } - -.ag-ltr .ag-toolpanel-indent-8 { - padding-left: 80px; } - -.ag-rtl .ag-toolpanel-indent-8 { - padding-right: 80px; } - -.ag-ltr .ag-row-group-indent-8 { - padding-left: 80px; } - -.ag-rtl .ag-row-group-indent-8 { - padding-right: 80px; } - -.ag-ltr .ag-toolpanel-indent-9 { - padding-left: 90px; } - -.ag-rtl .ag-toolpanel-indent-9 { - padding-right: 90px; } - -.ag-ltr .ag-row-group-indent-9 { - padding-left: 90px; } - -.ag-rtl .ag-row-group-indent-9 { - padding-right: 90px; } - -.ag-ltr .ag-toolpanel-indent-10 { - padding-left: 100px; } - -.ag-rtl .ag-toolpanel-indent-10 { - padding-right: 100px; } - -.ag-ltr .ag-row-group-indent-10 { - padding-left: 100px; } - -.ag-rtl .ag-row-group-indent-10 { - padding-right: 100px; } - -.ag-ltr .ag-toolpanel-indent-11 { - padding-left: 110px; } - -.ag-rtl .ag-toolpanel-indent-11 { - padding-right: 110px; } - -.ag-ltr .ag-row-group-indent-11 { - padding-left: 110px; } - -.ag-rtl .ag-row-group-indent-11 { - padding-right: 110px; } - -.ag-ltr .ag-toolpanel-indent-12 { - padding-left: 120px; } - -.ag-rtl .ag-toolpanel-indent-12 { - padding-right: 120px; } - -.ag-ltr .ag-row-group-indent-12 { - padding-left: 120px; } - -.ag-rtl .ag-row-group-indent-12 { - padding-right: 120px; } - -.ag-ltr .ag-toolpanel-indent-13 { - padding-left: 130px; } - -.ag-rtl .ag-toolpanel-indent-13 { - padding-right: 130px; } - -.ag-ltr .ag-row-group-indent-13 { - padding-left: 130px; } - -.ag-rtl .ag-row-group-indent-13 { - padding-right: 130px; } - -.ag-ltr .ag-toolpanel-indent-14 { - padding-left: 140px; } - -.ag-rtl .ag-toolpanel-indent-14 { - padding-right: 140px; } - -.ag-ltr .ag-row-group-indent-14 { - padding-left: 140px; } - -.ag-rtl .ag-row-group-indent-14 { - padding-right: 140px; } - -.ag-ltr .ag-toolpanel-indent-15 { - padding-left: 150px; } - -.ag-rtl .ag-toolpanel-indent-15 { - padding-right: 150px; } - -.ag-ltr .ag-row-group-indent-15 { - padding-left: 150px; } - -.ag-rtl .ag-row-group-indent-15 { - padding-right: 150px; } - -.ag-ltr .ag-toolpanel-indent-16 { - padding-left: 160px; } - -.ag-rtl .ag-toolpanel-indent-16 { - padding-right: 160px; } - -.ag-ltr .ag-row-group-indent-16 { - padding-left: 160px; } - -.ag-rtl .ag-row-group-indent-16 { - padding-right: 160px; } - -.ag-ltr .ag-toolpanel-indent-17 { - padding-left: 170px; } - -.ag-rtl .ag-toolpanel-indent-17 { - padding-right: 170px; } - -.ag-ltr .ag-row-group-indent-17 { - padding-left: 170px; } - -.ag-rtl .ag-row-group-indent-17 { - padding-right: 170px; } - -.ag-ltr .ag-toolpanel-indent-18 { - padding-left: 180px; } - -.ag-rtl .ag-toolpanel-indent-18 { - padding-right: 180px; } - -.ag-ltr .ag-row-group-indent-18 { - padding-left: 180px; } - -.ag-rtl .ag-row-group-indent-18 { - padding-right: 180px; } - -.ag-ltr .ag-toolpanel-indent-19 { - padding-left: 190px; } - -.ag-rtl .ag-toolpanel-indent-19 { - padding-right: 190px; } - -.ag-ltr .ag-row-group-indent-19 { - padding-left: 190px; } - -.ag-rtl .ag-row-group-indent-19 { - padding-right: 190px; } - -.ag-ltr .ag-toolpanel-indent-20 { - padding-left: 200px; } - -.ag-rtl .ag-toolpanel-indent-20 { - padding-right: 200px; } - -.ag-ltr .ag-row-group-indent-20 { - padding-left: 200px; } - -.ag-rtl .ag-row-group-indent-20 { - padding-right: 200px; } - -.ag-ltr .ag-toolpanel-indent-21 { - padding-left: 210px; } - -.ag-rtl .ag-toolpanel-indent-21 { - padding-right: 210px; } - -.ag-ltr .ag-row-group-indent-21 { - padding-left: 210px; } - -.ag-rtl .ag-row-group-indent-21 { - padding-right: 210px; } - -.ag-ltr .ag-toolpanel-indent-22 { - padding-left: 220px; } - -.ag-rtl .ag-toolpanel-indent-22 { - padding-right: 220px; } - -.ag-ltr .ag-row-group-indent-22 { - padding-left: 220px; } - -.ag-rtl .ag-row-group-indent-22 { - padding-right: 220px; } - -.ag-ltr .ag-toolpanel-indent-23 { - padding-left: 230px; } - -.ag-rtl .ag-toolpanel-indent-23 { - padding-right: 230px; } - -.ag-ltr .ag-row-group-indent-23 { - padding-left: 230px; } - -.ag-rtl .ag-row-group-indent-23 { - padding-right: 230px; } - -.ag-ltr .ag-toolpanel-indent-24 { - padding-left: 240px; } - -.ag-rtl .ag-toolpanel-indent-24 { - padding-right: 240px; } - -.ag-ltr .ag-row-group-indent-24 { - padding-left: 240px; } - -.ag-rtl .ag-row-group-indent-24 { - padding-right: 240px; } - -.ag-ltr .ag-toolpanel-indent-25 { - padding-left: 250px; } - -.ag-rtl .ag-toolpanel-indent-25 { - padding-right: 250px; } - -.ag-ltr .ag-row-group-indent-25 { - padding-left: 250px; } - -.ag-rtl .ag-row-group-indent-25 { - padding-right: 250px; } - -.ag-ltr .ag-toolpanel-indent-26 { - padding-left: 260px; } - -.ag-rtl .ag-toolpanel-indent-26 { - padding-right: 260px; } - -.ag-ltr .ag-row-group-indent-26 { - padding-left: 260px; } - -.ag-rtl .ag-row-group-indent-26 { - padding-right: 260px; } - -.ag-ltr .ag-toolpanel-indent-27 { - padding-left: 270px; } - -.ag-rtl .ag-toolpanel-indent-27 { - padding-right: 270px; } - -.ag-ltr .ag-row-group-indent-27 { - padding-left: 270px; } - -.ag-rtl .ag-row-group-indent-27 { - padding-right: 270px; } - -.ag-ltr .ag-toolpanel-indent-28 { - padding-left: 280px; } - -.ag-rtl .ag-toolpanel-indent-28 { - padding-right: 280px; } - -.ag-ltr .ag-row-group-indent-28 { - padding-left: 280px; } - -.ag-rtl .ag-row-group-indent-28 { - padding-right: 280px; } - -.ag-ltr .ag-toolpanel-indent-29 { - padding-left: 290px; } - -.ag-rtl .ag-toolpanel-indent-29 { - padding-right: 290px; } - -.ag-ltr .ag-row-group-indent-29 { - padding-left: 290px; } - -.ag-rtl .ag-row-group-indent-29 { - padding-right: 290px; } - -.ag-ltr .ag-toolpanel-indent-30 { - padding-left: 300px; } - -.ag-rtl .ag-toolpanel-indent-30 { - padding-right: 300px; } - -.ag-ltr .ag-row-group-indent-30 { - padding-left: 300px; } - -.ag-rtl .ag-row-group-indent-30 { - padding-right: 300px; } - -.ag-ltr .ag-toolpanel-indent-31 { - padding-left: 310px; } - -.ag-rtl .ag-toolpanel-indent-31 { - padding-right: 310px; } - -.ag-ltr .ag-row-group-indent-31 { - padding-left: 310px; } - -.ag-rtl .ag-row-group-indent-31 { - padding-right: 310px; } - -.ag-ltr .ag-toolpanel-indent-32 { - padding-left: 320px; } - -.ag-rtl .ag-toolpanel-indent-32 { - padding-right: 320px; } - -.ag-ltr .ag-row-group-indent-32 { - padding-left: 320px; } - -.ag-rtl .ag-row-group-indent-32 { - padding-right: 320px; } - -.ag-ltr .ag-toolpanel-indent-33 { - padding-left: 330px; } - -.ag-rtl .ag-toolpanel-indent-33 { - padding-right: 330px; } - -.ag-ltr .ag-row-group-indent-33 { - padding-left: 330px; } - -.ag-rtl .ag-row-group-indent-33 { - padding-right: 330px; } - -.ag-ltr .ag-toolpanel-indent-34 { - padding-left: 340px; } - -.ag-rtl .ag-toolpanel-indent-34 { - padding-right: 340px; } - -.ag-ltr .ag-row-group-indent-34 { - padding-left: 340px; } - -.ag-rtl .ag-row-group-indent-34 { - padding-right: 340px; } - -.ag-ltr .ag-toolpanel-indent-35 { - padding-left: 350px; } - -.ag-rtl .ag-toolpanel-indent-35 { - padding-right: 350px; } - -.ag-ltr .ag-row-group-indent-35 { - padding-left: 350px; } - -.ag-rtl .ag-row-group-indent-35 { - padding-right: 350px; } - -.ag-ltr .ag-toolpanel-indent-36 { - padding-left: 360px; } - -.ag-rtl .ag-toolpanel-indent-36 { - padding-right: 360px; } - -.ag-ltr .ag-row-group-indent-36 { - padding-left: 360px; } - -.ag-rtl .ag-row-group-indent-36 { - padding-right: 360px; } - -.ag-ltr .ag-toolpanel-indent-37 { - padding-left: 370px; } - -.ag-rtl .ag-toolpanel-indent-37 { - padding-right: 370px; } - -.ag-ltr .ag-row-group-indent-37 { - padding-left: 370px; } - -.ag-rtl .ag-row-group-indent-37 { - padding-right: 370px; } - -.ag-ltr .ag-toolpanel-indent-38 { - padding-left: 380px; } - -.ag-rtl .ag-toolpanel-indent-38 { - padding-right: 380px; } - -.ag-ltr .ag-row-group-indent-38 { - padding-left: 380px; } - -.ag-rtl .ag-row-group-indent-38 { - padding-right: 380px; } - -.ag-ltr .ag-toolpanel-indent-39 { - padding-left: 390px; } - -.ag-rtl .ag-toolpanel-indent-39 { - padding-right: 390px; } - -.ag-ltr .ag-row-group-indent-39 { - padding-left: 390px; } - -.ag-rtl .ag-row-group-indent-39 { - padding-right: 390px; } - -.ag-ltr .ag-toolpanel-indent-40 { - padding-left: 400px; } - -.ag-rtl .ag-toolpanel-indent-40 { - padding-right: 400px; } - -.ag-ltr .ag-row-group-indent-40 { - padding-left: 400px; } - -.ag-rtl .ag-row-group-indent-40 { - padding-right: 400px; } - -.ag-ltr .ag-toolpanel-indent-41 { - padding-left: 410px; } - -.ag-rtl .ag-toolpanel-indent-41 { - padding-right: 410px; } - -.ag-ltr .ag-row-group-indent-41 { - padding-left: 410px; } - -.ag-rtl .ag-row-group-indent-41 { - padding-right: 410px; } - -.ag-ltr .ag-toolpanel-indent-42 { - padding-left: 420px; } - -.ag-rtl .ag-toolpanel-indent-42 { - padding-right: 420px; } - -.ag-ltr .ag-row-group-indent-42 { - padding-left: 420px; } - -.ag-rtl .ag-row-group-indent-42 { - padding-right: 420px; } - -.ag-ltr .ag-toolpanel-indent-43 { - padding-left: 430px; } - -.ag-rtl .ag-toolpanel-indent-43 { - padding-right: 430px; } - -.ag-ltr .ag-row-group-indent-43 { - padding-left: 430px; } - -.ag-rtl .ag-row-group-indent-43 { - padding-right: 430px; } - -.ag-ltr .ag-toolpanel-indent-44 { - padding-left: 440px; } - -.ag-rtl .ag-toolpanel-indent-44 { - padding-right: 440px; } - -.ag-ltr .ag-row-group-indent-44 { - padding-left: 440px; } - -.ag-rtl .ag-row-group-indent-44 { - padding-right: 440px; } - -.ag-ltr .ag-toolpanel-indent-45 { - padding-left: 450px; } - -.ag-rtl .ag-toolpanel-indent-45 { - padding-right: 450px; } - -.ag-ltr .ag-row-group-indent-45 { - padding-left: 450px; } - -.ag-rtl .ag-row-group-indent-45 { - padding-right: 450px; } - -.ag-ltr .ag-toolpanel-indent-46 { - padding-left: 460px; } - -.ag-rtl .ag-toolpanel-indent-46 { - padding-right: 460px; } - -.ag-ltr .ag-row-group-indent-46 { - padding-left: 460px; } - -.ag-rtl .ag-row-group-indent-46 { - padding-right: 460px; } - -.ag-ltr .ag-toolpanel-indent-47 { - padding-left: 470px; } - -.ag-rtl .ag-toolpanel-indent-47 { - padding-right: 470px; } - -.ag-ltr .ag-row-group-indent-47 { - padding-left: 470px; } - -.ag-rtl .ag-row-group-indent-47 { - padding-right: 470px; } - -.ag-ltr .ag-toolpanel-indent-48 { - padding-left: 480px; } - -.ag-rtl .ag-toolpanel-indent-48 { - padding-right: 480px; } - -.ag-ltr .ag-row-group-indent-48 { - padding-left: 480px; } - -.ag-rtl .ag-row-group-indent-48 { - padding-right: 480px; } - -.ag-ltr .ag-toolpanel-indent-49 { - padding-left: 490px; } - -.ag-rtl .ag-toolpanel-indent-49 { - padding-right: 490px; } - -.ag-ltr .ag-row-group-indent-49 { - padding-left: 490px; } - -.ag-rtl .ag-row-group-indent-49 { - padding-right: 490px; } - -.ag-side-bar { - display: flex; - flex-direction: row-reverse; - box-sizing: border-box; } - .ag-side-bar .ag-side-buttons { - width: 20px; } - .ag-side-bar .ag-side-buttons div button { - display: block; - white-space: nowrap; - outline: none; } - .ag-side-bar .ag-side-buttons div button span { - -webkit-writing-mode: tb; - -ms-writing-mode: tb; - writing-mode: tb; - -webkit-writing-mode: vertical-lr; - -ms-writing-mode: tb-lr; - writing-mode: vertical-lr; } - .ag-side-bar .panel-container { - width: 180px; } - .ag-side-bar.full-width .panel-container { - width: 200px; } - -.ag-rtl .ag-side-bar .ag-side-buttons button span { - -webkit-writing-mode: tb-rl; - -ms-writing-mode: tb-rl; - writing-mode: tb-rl; - -webkit-writing-mode: vertical-rl; - writing-mode: vertical-rl; } - -.ag-row-inline-editing { - z-index: 1; } - -.ag-status-bar { - display: flex; - justify-content: space-between; } - .ag-status-bar .ag-status-panel { - display: inline-flex; } - -.ag-status-bar-left { - display: inline-flex; } - -.ag-status-bar-center { - display: inline-flex; } - -.ag-status-bar-right { - display: inline-flex; } - -@media print { - .ag-body-viewport { - display: block; } - .ag-row { - page-break-inside: avoid; } } - -.ag-body .ag-pinned-left-cols-viewport, .ag-body .ag-body-viewport, .ag-body .ag-pinned-right-cols-viewport { - -webkit-overflow-scrolling: touch; } diff --git a/src/components/dashboard_users/css/ag-theme-material.css b/src/components/dashboard_users/css/ag-theme-material.css deleted file mode 100644 index e35e119..0000000 --- a/src/components/dashboard_users/css/ag-theme-material.css +++ /dev/null @@ -1,1878 +0,0 @@ -.ag-theme-material { - background-color: #fff; - color: rgba(0, 0, 0, 0.87); - font: 400 13px "Roboto", sans-serif; } - .ag-theme-material .ag-tab-header .ag-tab.ag-tab-selected { - border-bottom: 2px solid #3f51b5; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-1 { - padding-left: 26px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-1 { - padding-right: 26px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-1 { - padding-left: 42px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-1 { - padding-right: 42px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-2 { - padding-left: 52px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-2 { - padding-right: 52px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-2 { - padding-left: 84px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-2 { - padding-right: 84px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-3 { - padding-left: 78px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-3 { - padding-right: 78px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-3 { - padding-left: 126px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-3 { - padding-right: 126px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-4 { - padding-left: 104px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-4 { - padding-right: 104px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-4 { - padding-left: 168px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-4 { - padding-right: 168px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-5 { - padding-left: 130px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-5 { - padding-right: 130px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-5 { - padding-left: 210px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-5 { - padding-right: 210px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-6 { - padding-left: 156px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-6 { - padding-right: 156px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-6 { - padding-left: 252px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-6 { - padding-right: 252px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-7 { - padding-left: 182px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-7 { - padding-right: 182px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-7 { - padding-left: 294px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-7 { - padding-right: 294px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-8 { - padding-left: 208px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-8 { - padding-right: 208px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-8 { - padding-left: 336px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-8 { - padding-right: 336px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-9 { - padding-left: 234px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-9 { - padding-right: 234px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-9 { - padding-left: 378px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-9 { - padding-right: 378px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-10 { - padding-left: 260px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-10 { - padding-right: 260px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-10 { - padding-left: 420px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-10 { - padding-right: 420px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-11 { - padding-left: 286px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-11 { - padding-right: 286px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-11 { - padding-left: 462px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-11 { - padding-right: 462px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-12 { - padding-left: 312px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-12 { - padding-right: 312px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-12 { - padding-left: 504px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-12 { - padding-right: 504px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-13 { - padding-left: 338px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-13 { - padding-right: 338px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-13 { - padding-left: 546px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-13 { - padding-right: 546px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-14 { - padding-left: 364px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-14 { - padding-right: 364px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-14 { - padding-left: 588px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-14 { - padding-right: 588px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-15 { - padding-left: 390px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-15 { - padding-right: 390px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-15 { - padding-left: 630px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-15 { - padding-right: 630px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-16 { - padding-left: 416px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-16 { - padding-right: 416px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-16 { - padding-left: 672px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-16 { - padding-right: 672px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-17 { - padding-left: 442px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-17 { - padding-right: 442px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-17 { - padding-left: 714px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-17 { - padding-right: 714px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-18 { - padding-left: 468px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-18 { - padding-right: 468px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-18 { - padding-left: 756px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-18 { - padding-right: 756px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-19 { - padding-left: 494px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-19 { - padding-right: 494px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-19 { - padding-left: 798px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-19 { - padding-right: 798px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-20 { - padding-left: 520px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-20 { - padding-right: 520px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-20 { - padding-left: 840px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-20 { - padding-right: 840px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-21 { - padding-left: 546px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-21 { - padding-right: 546px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-21 { - padding-left: 882px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-21 { - padding-right: 882px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-22 { - padding-left: 572px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-22 { - padding-right: 572px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-22 { - padding-left: 924px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-22 { - padding-right: 924px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-23 { - padding-left: 598px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-23 { - padding-right: 598px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-23 { - padding-left: 966px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-23 { - padding-right: 966px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-24 { - padding-left: 624px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-24 { - padding-right: 624px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-24 { - padding-left: 1008px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-24 { - padding-right: 1008px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-25 { - padding-left: 650px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-25 { - padding-right: 650px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-25 { - padding-left: 1050px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-25 { - padding-right: 1050px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-26 { - padding-left: 676px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-26 { - padding-right: 676px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-26 { - padding-left: 1092px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-26 { - padding-right: 1092px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-27 { - padding-left: 702px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-27 { - padding-right: 702px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-27 { - padding-left: 1134px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-27 { - padding-right: 1134px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-28 { - padding-left: 728px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-28 { - padding-right: 728px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-28 { - padding-left: 1176px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-28 { - padding-right: 1176px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-29 { - padding-left: 754px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-29 { - padding-right: 754px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-29 { - padding-left: 1218px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-29 { - padding-right: 1218px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-30 { - padding-left: 780px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-30 { - padding-right: 780px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-30 { - padding-left: 1260px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-30 { - padding-right: 1260px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-31 { - padding-left: 806px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-31 { - padding-right: 806px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-31 { - padding-left: 1302px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-31 { - padding-right: 1302px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-32 { - padding-left: 832px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-32 { - padding-right: 832px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-32 { - padding-left: 1344px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-32 { - padding-right: 1344px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-33 { - padding-left: 858px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-33 { - padding-right: 858px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-33 { - padding-left: 1386px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-33 { - padding-right: 1386px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-34 { - padding-left: 884px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-34 { - padding-right: 884px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-34 { - padding-left: 1428px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-34 { - padding-right: 1428px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-35 { - padding-left: 910px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-35 { - padding-right: 910px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-35 { - padding-left: 1470px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-35 { - padding-right: 1470px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-36 { - padding-left: 936px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-36 { - padding-right: 936px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-36 { - padding-left: 1512px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-36 { - padding-right: 1512px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-37 { - padding-left: 962px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-37 { - padding-right: 962px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-37 { - padding-left: 1554px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-37 { - padding-right: 1554px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-38 { - padding-left: 988px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-38 { - padding-right: 988px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-38 { - padding-left: 1596px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-38 { - padding-right: 1596px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-39 { - padding-left: 1014px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-39 { - padding-right: 1014px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-39 { - padding-left: 1638px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-39 { - padding-right: 1638px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-40 { - padding-left: 1040px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-40 { - padding-right: 1040px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-40 { - padding-left: 1680px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-40 { - padding-right: 1680px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-41 { - padding-left: 1066px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-41 { - padding-right: 1066px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-41 { - padding-left: 1722px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-41 { - padding-right: 1722px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-42 { - padding-left: 1092px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-42 { - padding-right: 1092px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-42 { - padding-left: 1764px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-42 { - padding-right: 1764px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-43 { - padding-left: 1118px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-43 { - padding-right: 1118px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-43 { - padding-left: 1806px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-43 { - padding-right: 1806px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-44 { - padding-left: 1144px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-44 { - padding-right: 1144px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-44 { - padding-left: 1848px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-44 { - padding-right: 1848px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-45 { - padding-left: 1170px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-45 { - padding-right: 1170px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-45 { - padding-left: 1890px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-45 { - padding-right: 1890px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-46 { - padding-left: 1196px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-46 { - padding-right: 1196px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-46 { - padding-left: 1932px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-46 { - padding-right: 1932px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-47 { - padding-left: 1222px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-47 { - padding-right: 1222px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-47 { - padding-left: 1974px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-47 { - padding-right: 1974px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-48 { - padding-left: 1248px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-48 { - padding-right: 1248px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-48 { - padding-left: 2016px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-48 { - padding-right: 2016px; } - .ag-theme-material .ag-ltr .ag-toolpanel-indent-49 { - padding-left: 1274px; } - .ag-theme-material .ag-rtl .ag-toolpanel-indent-49 { - padding-right: 1274px; } - .ag-theme-material .ag-ltr .ag-row-group-indent-49 { - padding-left: 2058px; } - .ag-theme-material .ag-rtl .ag-row-group-indent-49 { - padding-right: 2058px; } - .ag-theme-material .ag-ltr .ag-row-group-leaf-indent { - margin-left: 42px; } - .ag-theme-material .ag-rtl .ag-row-group-leaf-indent { - margin-right: 42px; } - .ag-theme-material .ag-rtl .ag-cell-first-right-pinned { - border-left: 1px solid #e0e0e0; } - .ag-theme-material .ag-ltr .ag-cell-first-right-pinned { - border-left: 1px solid #e0e0e0; } - .ag-theme-material .ag-rtl .ag-cell-last-left-pinned { - border-right: 1px solid #e0e0e0; } - .ag-theme-material .ag-ltr .ag-cell-last-left-pinned { - border-right: 1px solid #e0e0e0; } - .ag-theme-material .ag-value-change-delta { - padding-right: 2px; } - .ag-theme-material .ag-value-change-delta-up { - color: #43a047; } - .ag-theme-material .ag-value-change-delta-down { - color: #e53935; } - .ag-theme-material .ag-value-change-value { - background-color: transparent; - border-radius: 1px; - padding-left: 1px; - padding-right: 1px; - transition: background-color 1s; } - .ag-theme-material .ag-value-change-value-highlight { - background-color: #00acc1; - transition: background-color 0.1s; } - .ag-theme-material .ag-header { - color: rgba(0, 0, 0, 0.54); - font: 700 12px "Roboto", sans-serif; } - .ag-theme-material .ag-header-row { - border-bottom: 1px solid #e0e0e0; - box-sizing: border-box; } - .ag-theme-material .ag-row { - border-bottom: 1px solid #e0e0e0; - box-sizing: border-box; } - .ag-theme-material .ag-row-hover { - background-color: #fafafa; } - .ag-theme-material .ag-numeric-cell { - text-align: right; } - .ag-theme-material .ag-header-cell-label { - display: flex; - float: left; - height: 100%; - width: calc(100% - 18px); } - .ag-theme-material .ag-header-cell-label span { - height: 100%; } - .ag-theme-material .ag-header-cell-label > span { - float: left; } - .ag-theme-material .ag-header-cell-label .ag-header-icon { - background-position-y: 20px; - background-size: 14px 14px; - height: 100%; - margin: 0; - margin-left: 8px; - opacity: 0.87; } - .ag-theme-material .ag-header-cell-label .ag-header-cell-text { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; } - .ag-theme-material .ag-numeric-header .ag-header-cell-label { - flex-direction: row-reverse; - float: right; } - .ag-theme-material .ag-numeric-header .ag-header-cell-label > span { - float: right; } - .ag-theme-material .ag-numeric-header .ag-header-cell-menu-button { - float: left; } - .ag-theme-material .ag-header-group-text { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; } - .ag-theme-material .ag-header-cell, - .ag-theme-material .ag-header-group-cell { - line-height: 56px; - padding-left: 24px; - padding-right: 24px; } - .ag-theme-material .ag-cell { - line-height: 46px; - padding-left: 24px; - padding-right: 24px; - border: 1px solid transparent; - padding-left: 23px; - padding-right: 23px; } - .ag-theme-material .ag-row-drag { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMgNmgxMnYySDN6bTAgNGgxMnYySDN6IiBmaWxsPSIjMzMzIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - background-position-x: left; - background-position-y: 6px; - float: left; - height: 100%; - width: 42px; } - .ag-theme-material .ag-column-drag { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMgNmgxMnYySDN6bTAgNGgxMnYySDN6IiBmaWxsPSIjMzMzIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - background-position-x: left; - background-position-y: 8px !important; - height: 100%; - min-width: 26px; } - .ag-theme-material .ag-row-dragging { - opacity: 0.5; - z-index: 10000; } - .ag-theme-material .ag-ltr .ag-cell-focus { - border: 1px solid #3f51b5; - outline: initial; } - .ag-theme-material .ag-rtl .ag-cell-focus { - border: 1px solid #3f51b5; - outline: initial; } - .ag-theme-material .ag-header-cell-resize { - width: 16px; } - .ag-theme-material .ag-icon-aggregation { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEzIDEzdjFhMSAxIDAgMCAxLTEgMUg1YTEgMSAwIDAgMS0xLTF2LTFsMy00LTMtNFY0YTEgMSAwIDAgMSAxLTFoN2ExIDEgMCAwIDEgMSAxdjFINi41bDIuNTUgMy40YTEgMSAwIDAgMSAwIDEuMkw2LjUgMTNIMTN6IiBmaWxsPSIjMzMzIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - display: inline-block; } - .ag-theme-material .ag-icon-arrows { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTcuNSA2LjVoM3YtMmgyTDkgMSA1LjUgNC41aDJ2MnptLTEgMWgtMnYtMkwxIDlsMy41IDMuNXYtMmgydi0zek0xNyA5bC0zLjUtMy41djJoLTJ2M2gydjJMMTcgOXptLTYuNSAyLjVoLTN2MmgtMkw5IDE3bDMuNS0zLjVoLTJ2LTJ6IiBmaWxsPSIjMzMzIi8+PC9zdmc+); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - display: inline-block; } - .ag-theme-material .ag-icon-asc { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEwIDE1VjZsNCA0IDEtMS02LTYtNiA2IDEgMSA0LTR2OXoiIGZpbGw9IiMzMzMiLz48L3N2Zz4=); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - display: inline-block; } - .ag-theme-material .ag-icon-checkbox-checked-readonly { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE2IDBIMmEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJ6TTcgMTRMMiA5bDEuNDEtMS40MUw3IDExLjE3bDcuNTktNy41OUwxNiA1bC05IDl6IiBmaWxsPSIjMzMzIiBvcGFjaXR5PSIuNSIvPjwvc3ZnPg==); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - display: inline-block; } - .ag-theme-material .ag-icon-checkbox-checked { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE2IDBIMmEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJ6TTcgMTRMMiA5bDEuNDEtMS40MUw3IDExLjE3bDcuNTktNy41OUwxNiA1bC05IDl6IiBmaWxsPSIjMzMzIi8+PC9zdmc+); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - display: inline-block; } - .ag-theme-material .ag-icon-checkbox-indeterminate-readonly { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE2IDBIMkMuOSAwIDAgLjkgMCAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWMmMwLTEuMS0uOS0yLTItMnptLTIgMTBINFY4aDEwdjJ6IiBmaWxsPSIjMzMzIiBmaWxsLW9wYWNpdHk9Ii41Ii8+PC9zdmc+); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - display: inline-block; } - .ag-theme-material .ag-icon-checkbox-indeterminate { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE2IDBIMkMuOSAwIDAgLjkgMCAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWMmMwLTEuMS0uOS0yLTItMnptLTIgMTBINFY4aDEwdjJ6IiBmaWxsPSIjMzMzIi8+PC9zdmc+); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - display: inline-block; } - .ag-theme-material .ag-icon-checkbox-unchecked-readonly { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE2IDJ2MTRIMlYyaDE0em0wLTJIMkMuOSAwIDAgLjkgMCAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWMmMwLTEuMS0uOS0yLTItMnoiIGZpbGw9IiMzMzMiIGZpbGwtb3BhY2l0eT0iLjUiLz48L3N2Zz4=); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - display: inline-block; } - .ag-theme-material .ag-icon-checkbox-unchecked { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE2IDJ2MTRIMlYyaDE0em0wLTJIMkMuOSAwIDAgLjkgMCAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWMmMwLTEuMS0uOS0yLTItMnoiIGZpbGw9IiMzMzMiLz48L3N2Zz4=); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - display: inline-block; } - .ag-theme-material .ag-icon-column { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIgMmg0djJIMnptMCA0aDR2MTBIMnoiIGZpbGw9IiMzMzMiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - display: inline-block; } - .ag-theme-material .ag-icon-columns { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMgNGgzdjJIM3ptNSAwaDN2Mkg4em01IDBoM3YyaC0zek0zIDhoM3YySDN6bTUgMGgzdjJIOHptNSAwaDN2MmgtM3pNMyAxMmgzdjJIM3ptNSAwaDN2Mkg4em01IDBoM3YyaC0zeiIgZmlsbD0iIzMzMyIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - display: inline-block; } - .ag-theme-material .ag-icon-contracted { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTExLjUgMTIuNUw4IDlsMy41LTMuNS0xLTFMNiA5bDQuNSA0LjV6IiBmaWxsPSIjMzMzIi8+PC9zdmc+); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - display: inline-block; } - .ag-theme-material .ag-icon-copy { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzMzMyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMTEgMkg0YTEgMSAwIDAgMC0xIDF2OWgxVjNoN1YyeiIgZmlsbC1ydWxlPSJub256ZXJvIi8+PHBhdGggZD0iTTYgNGg2YTEgMSAwIDAgMSAxIDF2OWExIDEgMCAwIDEtMSAxSDZhMSAxIDAgMCAxLTEtMVY1YTEgMSAwIDAgMSAxLTF6bTAgMXY5aDZWNUg2eiIvPjwvZz48L3N2Zz4=); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - display: inline-block; } - .ag-theme-material .ag-icon-cut { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTcuMzQ4IDUuOTQ4Yy4xNjEtLjM1LjI1Mi0uNzM1LjI1Mi0xLjE0OGEyLjggMi44IDAgMSAwLTUuNiAwIDIuOCAyLjggMCAwIDAgMi44IDIuOGMuNDEzIDAgLjc5OC0uMDkxIDEuMTQ4LS4yNTJMNy42IDlsLTEuNjUyIDEuNjUyQTIuNzI4IDIuNzI4IDAgMCAwIDQuOCAxMC40YTIuOCAyLjggMCAxIDAgMCA1LjYgMi44IDIuOCAwIDAgMCAyLjgtMi44YzAtLjQxMy0uMDkxLS43OTgtLjI1Mi0xLjE0OEw5IDEwLjRsNC45IDQuOUgxNnYtLjdMNy4zNDggNS45NDh6TTQuOCA2LjJhMS40IDEuNCAwIDEgMSAwLTIuOCAxLjQgMS40IDAgMCAxIDAgMi44em0wIDguNGExLjQgMS40IDAgMSAxIDAtMi44IDEuNCAxLjQgMCAwIDEgMCAyLjh6TTkgOS4zNUEuMzQ3LjM0NyAwIDAgMSA4LjY1IDljMC0uMTk2LjE1NC0uMzUuMzUtLjM1LjE5NiAwIC4zNS4xNTQuMzUuMzUgMCAuMTk2LS4xNTQuMzUtLjM1LjM1em00LjktNi42NUw5LjcgNi45bDEuNCAxLjRMMTYgMy40di0uN2gtMi4xeiIgZmlsbD0iIzMzMyIvPjwvc3ZnPg==); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - display: inline-block; } - .ag-theme-material .ag-icon-desc { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTggM3Y5LjEzTDQgOCAzIDlsNiA2IDYtNi0xLTEtNCA0LjEzVjN6IiBmaWxsPSIjMzMzIi8+PC9zdmc+); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - display: inline-block; } - .ag-theme-material .ag-icon-expanded { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTYgMTIuNUw5LjUgOSA2IDUuNWwxLTFMMTEuNSA5IDcgMTMuNXoiIGZpbGw9IiMzMzMiLz48L3N2Zz4=); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - display: inline-block; } - .ag-theme-material .ag-icon-eye-slash { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzMzMyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMTIuNDQ5IDEyLjQ1bC0xLjM4OC0xLjM4N2EyLjkxOCAyLjkxOCAwIDAgMC00LjEyNC00LjEyNEw1LjU1IDUuNTVBNi44NSA2Ljg1IDAgMCAxIDkgNC42MjUgNi44OTkgNi44OTkgMCAwIDEgMTUuNDE3IDlhNi45MzUgNi45MzUgMCAwIDEtMi45NjggMy40NXptLS45NTUuNDZBNi44OTkgNi44OTkgMCAwIDEgMi41ODQgOSA2LjkzMyA2LjkzMyAwIDAgMSA0LjcxIDYuMTI1TDYuMzU1IDcuNzdhMi45MTggMi45MTggMCAwIDAgMy44NzUgMy44NzVsMS4yNjQgMS4yNjR6IiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48cGF0aCBkPSJNMTAuMjQyIDEwLjIzNUw3Ljc2NSA3Ljc1OEExLjc0NCAxLjc0NCAwIDAgMSA5IDcuMjVjLjk2OCAwIDEuNzUuNzgyIDEuNzUgMS43NSAwIC40ODItLjE5NC45MTgtLjUwOCAxLjIzNXptLS45MjcuNDg3YTEuNzQ4IDEuNzQ4IDAgMCAxLTIuMDM3LTIuMDM3bDIuMDM3IDIuMDM3eiIvPjxwYXRoIGQ9Ik0zLjA3IDguNDg3aDEyLjQxN3YxSDMuMDd6Ii8+PC9nPjwvc3ZnPg==); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - display: inline-block; } - .ag-theme-material .ag-icon-eye { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkgNC42MjVBNi44OTkgNi44OTkgMCAwIDAgMi41ODMgOSA2Ljg5OSA2Ljg5OSAwIDAgMCA5IDEzLjM3NSA2Ljg5OSA2Ljg5OSAwIDAgMCAxNS40MTcgOSA2Ljg5OSA2Ljg5OSAwIDAgMCA5IDQuNjI1em0wIDcuMjkyYTIuOTE4IDIuOTE4IDAgMCAxIDAtNS44MzQgMi45MTggMi45MTggMCAwIDEgMCA1LjgzNHpNOSA3LjI1Yy0uOTY4IDAtMS43NS43ODItMS43NSAxLjc1cy43ODIgMS43NSAxLjc1IDEuNzUgMS43NS0uNzgyIDEuNzUtMS43NVM5Ljk2OCA3LjI1IDkgNy4yNXoiIGZpbGw9IiMzMzMiLz48L3N2Zz4=); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - display: inline-block; } - .ag-theme-material .ag-icon-filter { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzMzMyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNNCAxMGgxMFY4SDR6TTIgNHYyaDE0VjR6Ii8+PHBhdGggZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNNyAxNGg0di0ySDd6Ii8+PC9nPjwvc3ZnPg==); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - display: inline-block; } - .ag-theme-material .ag-icon-group { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzMzMyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMTQgMTRIN3YtMmg5YTIgMiAwIDAgMS0yIDJ6bS01LTJ2Mmgydi0ySDl6IiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48cGF0aCBkPSJNMTYgNmEyIDIgMCAwIDAtMi0ySDVhMiAyIDAgMCAwLTIgMmgxM3pNNyA0djJINVY0aDJ6bTkgNkg3VjhoOXYyek05IDh2MmgyVjhIOXoiLz48L2c+PC9zdmc+); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - display: inline-block; } - .ag-theme-material .ag-icon-indeterminate { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkgNC42MjVBNi44OTkgNi44OTkgMCAwIDAgMi41ODMgOSA2Ljg5OSA2Ljg5OSAwIDAgMCA5IDEzLjM3NSA2Ljg5OSA2Ljg5OSAwIDAgMCAxNS40MTcgOSA2Ljg5OSA2Ljg5OSAwIDAgMCA5IDQuNjI1em0wIDcuMjkyYTIuOTE4IDIuOTE4IDAgMCAxIDAtNS44MzQgMi45MTggMi45MTggMCAwIDEgMCA1LjgzNHoiIGZpbGw9IiMzMzMiLz48L3N2Zz4=); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - display: inline-block; } - .ag-theme-material .ag-icon-left { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE1IDhINmw0LTQtMS0xLTYgNiA2IDYgMS0xLTQtNGg5eiIgZmlsbD0iIzMzMyIvPjwvc3ZnPg==); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - display: inline-block; } - .ag-theme-material .ag-icon-loading { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxwYXRoIGlkPSJhIiBkPSJNNCAwaDJ2M0g0eiIvPjxwYXRoIGlkPSJiIiBkPSJNNCA3aDJ2M0g0eiIvPjxwYXRoIGlkPSJjIiBkPSJNMCA0aDN2MkgweiIvPjxwYXRoIGlkPSJkIiBkPSJNNyA0aDN2Mkg3eiIvPjxwYXRoIGlkPSJlIiBkPSJNNCAwaDJ2M0g0eiIvPjxwYXRoIGlkPSJmIiBkPSJNNCA3aDJ2M0g0eiIvPjxwYXRoIGlkPSJnIiBkPSJNMCA0aDN2MkgweiIvPjxwYXRoIGlkPSJoIiBkPSJNNyA0aDN2Mkg3eiIvPjwvZGVmcz48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDMgNCkiPjx1c2UgZmlsbD0iI0Q4RDhEOCIgeGxpbms6aHJlZj0iI2EiLz48cGF0aCBzdHJva2U9IiM5Nzk3OTciIGQ9Ik00LjUuNWgxdjJoLTF6Ii8+PC9nPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDMgNCkiPjx1c2UgZmlsbD0iI0Q4RDhEOCIgeGxpbms6aHJlZj0iI2IiLz48cGF0aCBzdHJva2U9IiM5Nzk3OTciIGQ9Ik00LjUgNy41aDF2MmgtMXoiLz48L2c+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMyA0KSI+PHVzZSBmaWxsPSIjRDhEOEQ4IiB4bGluazpocmVmPSIjYyIvPjxwYXRoIHN0cm9rZT0iIzk3OTc5NyIgZD0iTS41IDQuNWgydjFoLTJ6Ii8+PC9nPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDMgNCkiPjx1c2UgZmlsbD0iI0Q4RDhEOCIgeGxpbms6aHJlZj0iI2QiLz48cGF0aCBzdHJva2U9IiM5Nzk3OTciIGQ9Ik03LjUgNC41aDJ2MWgtMnoiLz48L2c+PGcgb3BhY2l0eT0iLjcxNCI+PGcgdHJhbnNmb3JtPSJyb3RhdGUoNDUgMS42NzIgMTAuNjIxKSI+PHVzZSBmaWxsPSIjRDhEOEQ4IiB4bGluazpocmVmPSIjZSIvPjxwYXRoIHN0cm9rZT0iIzk3OTc5NyIgZD0iTTQuNS41aDF2MmgtMXoiLz48L2c+PGcgdHJhbnNmb3JtPSJyb3RhdGUoNDUgMS42NzIgMTAuNjIxKSI+PHVzZSBmaWxsPSIjRDhEOEQ4IiB4bGluazpocmVmPSIjZiIvPjxwYXRoIHN0cm9rZT0iIzk3OTc5NyIgZD0iTTQuNSA3LjVoMXYyaC0xeiIvPjwvZz48ZyB0cmFuc2Zvcm09InJvdGF0ZSg0NSAxLjY3MiAxMC42MjEpIj48dXNlIGZpbGw9IiNEOEQ4RDgiIHhsaW5rOmhyZWY9IiNnIi8+PHBhdGggc3Ryb2tlPSIjOTc5Nzk3IiBkPSJNLjUgNC41aDJ2MWgtMnoiLz48L2c+PGcgdHJhbnNmb3JtPSJyb3RhdGUoNDUgMS42NzIgMTAuNjIxKSI+PHVzZSBmaWxsPSIjRDhEOEQ4IiB4bGluazpocmVmPSIjaCIvPjxwYXRoIHN0cm9rZT0iIzk3OTc5NyIgZD0iTTcuNSA0LjVoMnYxaC0yeiIvPjwvZz48L2c+PC9nPjwvc3ZnPg==); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - display: inline-block; } - .ag-theme-material .ag-icon-menu { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzMzMyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBmaWxsLXJ1bGU9Im5vbnplcm8iIGQ9Ik0yIDE0aDE0di0ySDJ6Ii8+PHBhdGggZD0iTTIgMTBoMTRWOEgyem0wLTZ2MmgxNFY0eiIvPjwvZz48L3N2Zz4=); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - display: inline-block; } - .ag-theme-material .ag-icon-minus { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE0IDEwSDRWOGgxMHoiIGZpbGw9IiMzMzMiLz48L3N2Zz4=); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - display: inline-block; } - .ag-theme-material .ag-icon-none { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzMzMyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBmaWxsLXJ1bGU9Im5vbnplcm8iIGQ9Ik0yIDE0aDV2LTJIMnoiLz48cGF0aCBkPSJNMiA0djJoMTRWNHptMCA2aDlWOEgyeiIvPjwvZz48L3N2Zz4=); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - display: inline-block; } - .ag-theme-material .ag-icon-not-allowed { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkgMS41QzQuODYgMS41IDEuNSA0Ljg2IDEuNSA5YzAgNC4xNCAzLjM2IDcuNSA3LjUgNy41IDQuMTQgMCA3LjUtMy4zNiA3LjUtNy41IDAtNC4xNC0zLjM2LTcuNS03LjUtNy41ek0zIDljMC0zLjMxNSAyLjY4NS02IDYtNmE1LjkzIDUuOTMgMCAwIDEgMy42NzUgMS4yNjhsLTguNDA4IDguNDA3QTUuOTI3IDUuOTI3IDAgMCAxIDMgOXptNiA2YTUuOTI3IDUuOTI3IDAgMCAxLTMuNjc1LTEuMjY4bDguNDA3LTguNDA3QTUuOTI3IDUuOTI3IDAgMCAxIDE1IDljMCAzLjMxNS0yLjY4NSA2LTYgNnoiIGZpbGw9IiMzMzMiLz48L3N2Zz4=); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - display: inline-block; } - .ag-theme-material .ag-icon-paste { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTExIDNjMC0uNS0uNS0xLjUtMi0xLjVTNyAyLjUgNyAzSDRhMSAxIDAgMCAwLTEgMXYxMWExIDEgMCAwIDAgMSAxaDEwYTEgMSAwIDAgMCAxLTFWNGExIDEgMCAwIDAtMS0xaC0zem0tMiAuMjczYy4zNjcgMCAuNjY3LjI4Ni42NjcuNjM2IDAgLjM1LS4zLjYzNi0uNjY3LjYzNi0uMzY3IDAtLjY2Ny0uMjg2LS42NjctLjYzNiAwLS4zNS4zLS42MzYuNjY3LS42MzZ6TTE0IDE1SDRWNGgydjJoNlY0aDJ2MTF6IiBmaWxsPSIjMzMzIi8+PC9zdmc+); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - display: inline-block; } - .ag-theme-material .ag-icon-pin { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBmaWxsPSIjMzMzIiBkPSJNOS42NTcgMmw1LjQxIDUuNDEtLjU0LjU0Mi0uNTQyLS41NDEtNC4zMjggMi4xNjQgMS4wODIgMS4wODItMS41NDEgMS41NEw0Ljg2OSA3Ljg3bDEuNTQyLTEuNTQgMS4wODIgMS4wOCAyLjE2NC00LjMyOS0uNTQxLS41NHoiLz48cGF0aCBkPSJNNiAxMWwtMi41IDIuNSIgc3Ryb2tlPSIjMzMzIi8+PC9nPjwvc3ZnPg==); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - display: inline-block; } - .ag-theme-material .ag-icon-pivot { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBzdHJva2U9IiMzMzMiIGQ9Ik0xMS41IDEwLjVMMTMgOWwxLjUgMS41bS01IDFMOCAxM2wxLjUgMS41Ii8+PHBhdGggZD0iTTAgMGgxOHYxOEgweiIvPjxwYXRoIGQ9Ik0zIDFoMTJhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDNhMiAyIDAgMCAxLTItMlYzYTIgMiAwIDAgMSAyLTJ6bTMgMTR2LTNIM3YzaDN6bTAtNFY4SDN2M2gzem0wLTVWM0gzdjNoM3ptNSAwVjNIN3YzaDR6bTQgOVY4SDd2N2g4em0wLTlWM2gtM3YzaDN6IiBmaWxsPSIjMzMzIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48L2c+PC9zdmc+); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - display: inline-block; } - .ag-theme-material .ag-icon-plus { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE0IDEwaC00djRIOHYtNEg0VjhoNFY0aDJ2NGg0eiIgZmlsbD0iIzMzMyIvPjwvc3ZnPg==); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - display: inline-block; } - .ag-theme-material .ag-icon-right { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkgM0w4IDRsNCA0SDN2Mmg5bC00IDQgMSAxIDYtNnoiIGZpbGw9IiMzMzMiLz48L3N2Zz4=); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - display: inline-block; } - .ag-theme-material .ag-icon-small-left { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEwIDEzTDYgOWw0LTR6IiBmaWxsPSIjMzMzIi8+PC9zdmc+); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - display: inline-block; } - .ag-theme-material .ag-icon-small-right { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTggNWw0IDQtNCA0eiIgZmlsbD0iIzMzMyIvPjwvc3ZnPg==); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - display: inline-block; } - .ag-theme-material .ag-icon-small-up { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUgMTBsNC00IDQgNHoiIGZpbGw9IiMzMzMiLz48L3N2Zz4=); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - display: inline-block; } - .ag-theme-material .ag-icon-small-down { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUgOGw0IDQgNC00eiIgZmlsbD0iIzMzMyIvPjwvc3ZnPg==); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - display: inline-block; } - .ag-theme-material .ag-icon-tick { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTYuNSAxMi41TDMgOWwtMSAxIDQuNSA0LjUgOS05LTEtMXoiIGZpbGw9IiMzMzMiLz48L3N2Zz4=); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - display: inline-block; } - .ag-theme-material .ag-icon-cross { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE0IDVsLTEtMS00IDQtNC00LTEgMSA0IDQtNCA0IDEgMSA0LTQgNCA0IDEtMS00LTR6IiBmaWxsPSIjMzMzIi8+PC9zdmc+); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - display: inline-block; } - .ag-theme-material .ag-icon-tree-open { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyLjUgNi41TDkgMTAgNS41IDYuNWwtMSAxTDkgMTJsNC41LTQuNXoiIGZpbGw9IiMzMzMiLz48L3N2Zz4=); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - display: inline-block; } - .ag-theme-material .ag-icon-tree-closed { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTYgMTIuNUw5LjUgOSA2IDUuNWwxLTFMMTEuNSA5IDcgMTMuNXoiIGZpbGw9IiMzMzMiLz48L3N2Zz4=); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - display: inline-block; } - .ag-theme-material .ag-icon-tree-indeterminate { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMgOGgxMnYxLjVIM3oiIGZpbGw9IiMzMzMiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - display: inline-block; } - .ag-theme-material .ag-header-cell-menu-button .ag-icon-menu { - display: block; - height: 56px; } - .ag-theme-material .ag-icon-checkbox-checked:empty { - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE2IDBIMmEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTRhMiAyIDAgMCAwIDItMlYyYTIgMiAwIDAgMC0yLTJ6TTcgMTRMMiA5bDEuNDEtMS40MUw3IDExLjE3bDcuNTktNy41OUwxNiA1bC05IDl6IiBmaWxsPSIjRkY0MDgxIi8+PC9zdmc+); } - .ag-theme-material .ag-menu { - background: #fff; - border-radius: 2px; - box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); - padding: 8px; - padding: 0; - z-index: 5; } - .ag-theme-material .ag-menu .ag-menu-list { - cursor: default; - margin-bottom: 8px; - margin-top: 8px; - width: 100%; } - .ag-theme-material .ag-menu .ag-menu-option { - line-height: 32px; - padding-left: 16px; - padding-right: 16px; } - .ag-theme-material .ag-menu .ag-menu-option > span { - display: table-cell; - vertical-align: middle; } - .ag-theme-material .ag-menu .ag-menu-option-active { - background: #fafafa; } - .ag-theme-material .ag-menu .ag-menu-option-disabled { - opacity: 0.5; } - .ag-theme-material .ag-menu .ag-menu-option-icon { - padding-left: 8px; - padding-right: 8px; } - .ag-theme-material .ag-menu .ag-menu-option-icon span { - height: 18px; - line-height: 0; - margin-top: 8px; } - .ag-theme-material .ag-menu .ag-menu-option-shortcut { - padding-left: 16px; } - .ag-theme-material .ag-menu .ag-menu-separator { - margin-left: -8px; } - .ag-theme-material .ag-menu .ag-menu-separator > span { - background-image: url("data:image/svg+xml;utf8, "); - height: 16px; } - .ag-theme-material .ag-menu .ag-menu-option-popup-pointer { - width: 34px; } - .ag-theme-material.ag-dnd-ghost { - background: #fff; - border-radius: 2px; - box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); - padding: 8px; - border: 1px solid #e0e0e0; - color: rgba(0, 0, 0, 0.54); - font: 700 12px "Roboto", sans-serif; - height: 56px !important; - line-height: 56px; - margin: 0; - padding: 0 16px; - transform: translateY(16px); - z-index: 5; } - .ag-theme-material.ag-dnd-ghost span, - .ag-theme-material.ag-dnd-ghost div { - float: left; - height: 100%; - margin: 0; - padding: 0; } - .ag-theme-material.ag-dnd-ghost .ag-dnd-ghost-icon { - margin-right: 8px; - opacity: 0.87; } - .ag-theme-material .ag-tab-header { - background: #eee; - min-width: 220px; - width: 100%; - display: table; } - .ag-theme-material .ag-tab-header .ag-tab { - border-bottom: 2px solid transparent; - height: 32px; - text-align: center; - vertical-align: middle; - display: table-cell; } - .ag-theme-material .ag-tab-header .ag-tab.ag-tab-selected .ag-icon-filter { - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzNGNTFCNSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNNCAxMGgxMFY4SDR6TTIgNHYyaDE0VjR6Ii8+PHBhdGggZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNNyAxNGg0di0ySDd6Ii8+PC9nPjwvc3ZnPg==); - display: inline-block; } - .ag-theme-material .ag-tab-header .ag-tab.ag-tab-selected .ag-icon-columns { - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMgNGgzdjJIM3ptNSAwaDN2Mkg4em01IDBoM3YyaC0zek0zIDhoM3YySDN6bTUgMGgzdjJIOHptNSAwaDN2MmgtM3pNMyAxMmgzdjJIM3ptNSAwaDN2Mkg4em01IDBoM3YyaC0zeiIgZmlsbD0iIzNGNTFCNSIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+); - display: inline-block; } - .ag-theme-material .ag-tab-header .ag-tab.ag-tab-selected .ag-icon-menu { - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzNGNTFCNSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBmaWxsLXJ1bGU9Im5vbnplcm8iIGQ9Ik0yIDE0aDE0di0ySDJ6Ii8+PHBhdGggZD0iTTIgMTBoMTRWOEgyem0wLTZ2MmgxNFY0eiIvPjwvZz48L3N2Zz4=); - display: inline-block; } - .ag-theme-material .ag-tab-body { - padding: 8px 0; } - .ag-theme-material .ag-tab-body .ag-filter-select { - margin: 8px; - width: calc(100% - 16px); } - .ag-theme-material .ag-tab-body .ag-menu-list { - margin-bottom: 0; - margin-top: 0; } - .ag-theme-material .ag-tab-body .ag-menu-list > div:first-child > span { - padding-top: 0; } - .ag-theme-material .ag-tab-body .ag-menu-list > div:last-child > span { - padding-bottom: 0; } - .ag-theme-material .ag-tab-body .ag-menu-list > div:last-child > .ag-menu-option-popup-pointer { - background-position-y: 0; } - .ag-theme-material .ag-filter-select { - margin: 8px; - width: calc(100% - 16px); } - .ag-theme-material .ag-filter input[type="radio"] { - margin: 0 3px 0 6px; - width: 12px; - height: 17px; - vertical-align: top; } - .ag-theme-material .ag-filter input[type="text"], - .ag-theme-material .ag-filter input[type="date"] { - background: transparent; - box-sizing: border-box; - color: rgba(0, 0, 0, 0.87); - font-family: inherit; - font-size: inherit; - height: 24px; - padding-bottom: 8px; - border-width: 0; - border-bottom: 1px solid #e0e0e0; - padding-left: 8px; } - .ag-theme-material .ag-filter input[type="text"]:focus, - .ag-theme-material .ag-filter input[type="date"]:focus { - border-bottom: 2px solid #3f51b5; - outline: none; - padding-bottom: 7px; } - .ag-theme-material .ag-filter input[type="text"]::placeholder, - .ag-theme-material .ag-filter input[type="date"]::placeholder { - color: rgba(0, 0, 0, 0.38); } - .ag-theme-material .ag-filter label { - display: block; - padding-left: 8px; } - .ag-theme-material .ag-filter .ag-set-filter-list { - height: 260px; - padding-top: 8px; } - .ag-theme-material .ag-filter .ag-filter-header-container { - box-sizing: border-box; - height: 40px; } - .ag-theme-material .ag-filter .ag-filter-header-container:nth-child(2) { - border-bottom: 1px solid #e0e0e0; } - .ag-theme-material .ag-filter .ag-filter-checkbox { - float: left; - height: 40px; - margin-right: 8px; - padding-top: 4px; } - .ag-theme-material .ag-filter .ag-filter-value { - height: 40px; - line-height: 28px; } - .ag-theme-material .ag-filter .ag-filter-apply-panel { - display: flex; - justify-content: flex-end; - padding: 8px; - padding-top: 16px; } - .ag-theme-material .ag-filter .ag-filter-apply-panel button { - appearance: none; - background-color: transparent; - border: 0; - color: #3f51b5; - font-family: inherit; - font-size: inherit; - margin: 0; - padding: 0; - text-transform: uppercase; } - .ag-theme-material .ag-filter .ag-filter-apply-panel button + button { - margin-left: 16px; } - .ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column-group, - .ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column { - height: 32px; - line-height: 32px; - margin-left: 0; } - .ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column-group span, - .ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column span { - float: left; - height: 100%; } - .ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column-group .ag-column-select-indent, - .ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column .ag-column-select-indent { - width: 16px; } - .ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column-group .ag-column-select-checkbox, - .ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column-group .ag-column-group-icons, - .ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column .ag-column-select-checkbox, - .ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column .ag-column-group-icons { - margin-left: 8px; - margin-right: 8px; } - .ag-theme-material .ag-column-select-panel .ag-primary-cols-list-panel { - padding-top: 8px; } - .ag-theme-material .ag-column-select-panel .ag-column-tool-panel-column.ag-toolpanel-add-group-indent { - margin-left: 34px; } - .ag-theme-material .ag-filter-filter { - margin-bottom: 8px; } - .ag-theme-material .ag-primary-cols-header-panel { - border-bottom: 1px solid #e0e0e0; - box-sizing: border-box; - height: 56px; - padding-top: 8px; } - .ag-theme-material .ag-primary-cols-header-panel a { - margin: 0 8px; - padding-top: 4px; } - .ag-theme-material .ag-primary-cols-header-panel .ag-filter-body { - margin-left: 8px; - margin-right: 8px; } - .ag-theme-material .ag-group-child-count::before { - content: " "; } - .ag-theme-material .ag-tool-panel-wrapper { - border-right: 0; } - .ag-theme-material .ag-tool-panel-wrapper .ag-filter-panel { - width: 100%; } - .ag-theme-material .ag-tool-panel-wrapper .ag-filter-panel .ag-filter-toolpanel-instance { - color: rgba(0, 0, 0, 0.54); - font-weight: 600; - flex: auto; - flex-direction: column; - flex-wrap: nowrap; - display: flex; - flex-flow: column nowrap; } - .ag-theme-material .ag-tool-panel-wrapper .ag-filter-panel .ag-filter-toolpanel-instance .ag-filter-toolpanel-header { - padding: 5px 0 5px 5px; } - .ag-theme-material .ag-tool-panel-wrapper .ag-filter-panel .ag-filter-body-wrapper { - padding-top: 5px; } - .ag-theme-material .ag-tool-panel-wrapper .ag-filter-panel .ag-filter-air { - border: 1px solid #e0e0e0; - border-left: 0; - border-right: 0; - padding: 8px 0; } - .ag-theme-material .ag-tool-panel-wrapper .ag-pivot-mode-panel { - border-bottom: 1px solid #e0e0e0; - box-sizing: border-box; - height: 56px; - line-height: 56px; } - .ag-theme-material .ag-tool-panel-wrapper .ag-pivot-mode-panel span { - float: left; - height: 100%; } - .ag-theme-material .ag-tool-panel-wrapper .ag-pivot-mode-panel .ag-pivot-mode-select { - margin-left: 8px; } - .ag-theme-material .ag-tool-panel-wrapper .ag-pivot-mode-panel .ag-pivot-mode-select .ag-checkbox-label { - margin-left: 8px; } - .ag-theme-material .ag-tool-panel-wrapper .ag-column-select-panel { - border-bottom: 1px solid #e0e0e0; - padding-bottom: 7px; - padding-top: 0; } - .ag-theme-material .ag-tool-panel-wrapper .ag-column-drop { - border-bottom: 1px solid #e0e0e0; - clear: both; - overflow: auto; - padding: 8px 0; - padding-bottom: 16px; } - .ag-theme-material .ag-tool-panel-wrapper .ag-column-drop .ag-icon { - float: left; - height: 40px; - margin: 0 8px; } - .ag-theme-material .ag-tool-panel-wrapper .ag-column-drop .ag-column-drop-title { - clear: right; - float: left; - height: 40px; - line-height: 40px; - width: calc(100% - 34px); } - .ag-theme-material .ag-tool-panel-wrapper .ag-column-drop .ag-column-drop-empty-message { - clear: both; - color: rgba(0, 0, 0, 0.38); - font: 700 12px "Roboto", sans-serif; - line-height: 16px; - padding-left: 32px; - padding-right: 8px; } - .ag-theme-material .ag-tool-panel-wrapper .ag-column-drop:last-child { - border-bottom: 0; } - .ag-theme-material .ag-filter-icon:empty { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzMzMyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNNCAxMGgxMFY4SDR6TTIgNHYyaDE0VjR6Ii8+PHBhdGggZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNNyAxNGg0di0ySDd6Ii8+PC9nPjwvc3ZnPg==); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; } - .ag-theme-material .ag-sort-ascending-icon:empty { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEwIDE1VjZsNCA0IDEtMS02LTYtNiA2IDEgMSA0LTR2OXoiIGZpbGw9IiMzMzMiLz48L3N2Zz4=); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; } - .ag-theme-material .ag-sort-descending-icon:empty { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTggM3Y5LjEzTDQgOCAzIDlsNiA2IDYtNi0xLTEtNCA0LjEzVjN6IiBmaWxsPSIjMzMzIi8+PC9zdmc+); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; } - .ag-theme-material .ag-sort-none-icon:empty { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzMzMyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBmaWxsLXJ1bGU9Im5vbnplcm8iIGQ9Ik0yIDE0aDV2LTJIMnoiLz48cGF0aCBkPSJNMiA0djJoMTRWNHptMCA2aDlWOEgyeiIvPjwvZz48L3N2Zz4=); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; } - .ag-theme-material .ag-numeric-header .ag-header-cell-label .ag-header-icon { - margin-left: 0; - margin-right: 8px; } - .ag-theme-material .ag-paging-panel { - align-items: center; - border-top: 1px solid #e0e0e0; - color: rgba(0, 0, 0, 0.54); - display: flex; - height: 56px; - justify-content: flex-end; - padding: 0 24px; } - .ag-theme-material .ag-paging-panel > span { - margin-left: 32px; } - .ag-theme-material button[ref="btFirst"] { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzMzMyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNNC41IDQuNUg2djlINC41eiIvPjxwYXRoIGZpbGwtcnVsZT0ibm9uemVybyIgZD0iTTE0IDEyLjVMMTAuNSA5IDE0IDUuNWwtMS0xTDguNSA5bDQuNSA0LjV6Ii8+PC9nPjwvc3ZnPg==); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - overflow: hidden; - text-indent: 100%; - appearance: none; - border: 0; - opacity: 0.54; - padding: 0; } - .ag-theme-material button[ref="btFirst"][disabled] { - opacity: 0.38; } - .ag-theme-material button[ref="btPrevious"] { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTExLjUgMTIuNUw4IDlsMy41LTMuNS0xLTFMNiA5bDQuNSA0LjV6IiBmaWxsPSIjMzMzIi8+PC9zdmc+); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - overflow: hidden; - text-indent: 100%; - appearance: none; - border: 0; - opacity: 0.54; - padding: 0; } - .ag-theme-material button[ref="btPrevious"][disabled] { - opacity: 0.38; } - .ag-theme-material button[ref="btLast"] { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzMzMyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMTMuNSA0LjVIMTJ2OWgxLjV6Ii8+PHBhdGggZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNNCAxMi41TDcuNSA5IDQgNS41bDEtMUw5LjUgOSA1IDEzLjV6Ii8+PC9nPjwvc3ZnPg==); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - overflow: hidden; - text-indent: 100%; - appearance: none; - border: 0; - opacity: 0.54; - padding: 0; } - .ag-theme-material button[ref="btLast"][disabled] { - opacity: 0.38; } - .ag-theme-material button[ref="btNext"] { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTYgMTIuNUw5LjUgOSA2IDUuNWwxLTFMMTEuNSA5IDcgMTMuNXoiIGZpbGw9IiMzMzMiLz48L3N2Zz4=); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - overflow: hidden; - text-indent: 100%; - appearance: none; - border: 0; - opacity: 0.54; - padding: 0; } - .ag-theme-material button[ref="btNext"][disabled] { - opacity: 0.38; } - .ag-theme-material .ag-rtl button[ref="btFirst"] { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzMzMyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMTMuNSA0LjVIMTJ2OWgxLjV6Ii8+PHBhdGggZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNNCAxMi41TDcuNSA5IDQgNS41bDEtMUw5LjUgOSA1IDEzLjV6Ii8+PC9nPjwvc3ZnPg==); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; } - .ag-theme-material .ag-rtl button[ref="btPrevious"] { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTYgMTIuNUw5LjUgOSA2IDUuNWwxLTFMMTEuNSA5IDcgMTMuNXoiIGZpbGw9IiMzMzMiLz48L3N2Zz4=); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; } - .ag-theme-material .ag-rtl button[ref="btLast"] { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzMzMyIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNNC41IDQuNUg2djlINC41eiIvPjxwYXRoIGZpbGwtcnVsZT0ibm9uemVybyIgZD0iTTE0IDEyLjVMMTAuNSA5IDE0IDUuNWwtMS0xTDguNSA5bDQuNSA0LjV6Ii8+PC9nPjwvc3ZnPg==); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; } - .ag-theme-material .ag-rtl button[ref="btNext"] { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTExLjUgMTIuNUw4IDlsMy41LTMuNS0xLTFMNiA5bDQuNSA0LjV6IiBmaWxsPSIjMzMzIi8+PC9zdmc+); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; } - .ag-theme-material .ag-row-selected { - background-color: #eee; } - .ag-theme-material .ag-cell-range-selected:not(.ag-cell-focus) { - background-color: #e8eaf6; } - .ag-theme-material .ag-cell-inline-editing { - background: #fff; - border-radius: 2px; - box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); - padding: 8px; - background: #fafafa; - height: 72px; - line-height: normal; - padding: 24px; - z-index: 2; } - .ag-theme-material .ag-cell-inline-editing input[type="text"], - .ag-theme-material .ag-cell-inline-editing input[type="tel"], - .ag-theme-material .ag-cell-inline-editing input[type="date"], - .ag-theme-material .ag-cell-inline-editing input[type="datetime-local"] { - background: transparent; - box-sizing: border-box; - color: rgba(0, 0, 0, 0.87); - font-family: inherit; - font-size: inherit; - height: 24px; - padding-bottom: 8px; - border-width: 0; - border-bottom: 1px solid #e0e0e0; } - .ag-theme-material .ag-cell-inline-editing input[type="text"]:focus, - .ag-theme-material .ag-cell-inline-editing input[type="tel"]:focus, - .ag-theme-material .ag-cell-inline-editing input[type="date"]:focus, - .ag-theme-material .ag-cell-inline-editing input[type="datetime-local"]:focus { - border-bottom: 2px solid #3f51b5; - outline: none; - padding-bottom: 7px; } - .ag-theme-material .ag-cell-inline-editing input[type="text"]::placeholder, - .ag-theme-material .ag-cell-inline-editing input[type="tel"]::placeholder, - .ag-theme-material .ag-cell-inline-editing input[type="date"]::placeholder, - .ag-theme-material .ag-cell-inline-editing input[type="datetime-local"]::placeholder { - color: rgba(0, 0, 0, 0.38); } - .ag-theme-material .ag-cell-inline-editing select { - height: auto; } - .ag-theme-material .ag-popup-editor { - background: #fff; - border-radius: 2px; - box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); - padding: 8px; - background: #fafafa; - padding: 0; - z-index: 1; } - .ag-theme-material .ag-popup-editor .ag-large-textarea textarea { - background: transparent; - box-sizing: border-box; - color: rgba(0, 0, 0, 0.87); - font-family: inherit; - font-size: inherit; - height: 24px; - padding-bottom: 8px; - border-width: 0; - border-bottom: 1px solid #e0e0e0; - height: auto; - padding: 24px; } - .ag-theme-material .ag-popup-editor .ag-large-textarea textarea:focus { - border-bottom: 2px solid #3f51b5; - outline: none; - padding-bottom: 7px; } - .ag-theme-material .ag-popup-editor .ag-large-textarea textarea::placeholder { - color: rgba(0, 0, 0, 0.38); } - .ag-theme-material .ag-rich-select { - background-color: #fafafa; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyLjUgNi41TDkgMTAgNS41IDYuNWwtMSAxTDkgMTJsNC41LTQuNXoiIGZpbGw9IiMzMzMiLz48L3N2Zz4=); - background-position-x: calc(100% - 8px); - background-position-y: 16px; - background-repeat: no-repeat; } - .ag-theme-material .ag-rich-select .ag-rich-select-list { - height: 312px; } - .ag-theme-material .ag-rich-select .ag-rich-select-value { - height: 48px; - line-height: 48px; - padding-left: 24px; } - .ag-theme-material .ag-rich-select .ag-virtual-list-item { - cursor: default; - height: 48px; - line-height: 48px; } - .ag-theme-material .ag-rich-select .ag-virtual-list-item:hover { - background-color: #fafafa; } - .ag-theme-material .ag-rich-select .ag-rich-select-row { - padding-left: 24px; } - .ag-theme-material .ag-rich-select .ag-rich-select-row-selected { - background-color: #eee; } - .ag-theme-material .ag-floating-filter-body { - float: left; - height: 100%; - margin-right: 0; - width: calc(100% - 34px); } - .ag-theme-material .ag-floating-filter-body input { - box-sizing: border-box; - background: transparent; - box-sizing: border-box; - color: rgba(0, 0, 0, 0.87); - font-family: inherit; - font-size: inherit; - height: 24px; - padding-bottom: 8px; - border-width: 0; - border-bottom: 1px solid #e0e0e0; } - .ag-theme-material .ag-floating-filter-body input:focus { - border-bottom: 2px solid #3f51b5; - outline: none; - padding-bottom: 7px; } - .ag-theme-material .ag-floating-filter-body input::placeholder { - color: rgba(0, 0, 0, 0.38); } - .ag-theme-material .ag-floating-filter-full-body input { - box-sizing: border-box; - background: transparent; - box-sizing: border-box; - color: rgba(0, 0, 0, 0.87); - font-family: inherit; - font-size: inherit; - height: 24px; - padding-bottom: 8px; - border-width: 0; - border-bottom: 1px solid #e0e0e0; } - .ag-theme-material .ag-floating-filter-full-body input:focus { - border-bottom: 2px solid #3f51b5; - outline: none; - padding-bottom: 7px; } - .ag-theme-material .ag-floating-filter-full-body input::placeholder { - color: rgba(0, 0, 0, 0.38); } - .ag-theme-material .ag-floating-filter-input { - line-height: normal; } - .ag-theme-material .ag-floating-filter-button { - float: right; - line-height: 18px; - margin-top: 20px; } - .ag-theme-material .ag-floating-filter-button button { - appearance: none; - background: transparent; - border: 0; - height: 18px; - padding: 0; - width: 18px; } - .ag-theme-material .ag-cell-label-container { - height: 100%; } - .ag-theme-material .ag-header-group-cell-label { - height: 100%; } - .ag-theme-material .ag-header-group-cell-label span { - float: left; - height: 100%; } - .ag-theme-material .ag-header-select-all { - height: 100%; - margin-right: 24px; } - .ag-theme-material .ag-header-select-all span { - height: 100%; } - .ag-theme-material .ag-header-select-all:not(.ag-hidden) + .ag-cell-label-container { - float: left; - width: calc(100% - 18px - 24px); } - .ag-theme-material .ag-selection-checkbox span, - .ag-theme-material .ag-group-expanded span, - .ag-theme-material .ag-group-contracted span { - margin-right: 24px; } - .ag-theme-material .ag-selection-checkbox span { - position: relative; - top: 4px; } - .ag-theme-material .ag-group-expanded .ag-icon-contracted:empty { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyLjUgNi41TDkgMTAgNS41IDYuNWwtMSAxTDkgMTJsNC41LTQuNXoiIGZpbGw9IiMzMzMiLz48L3N2Zz4=); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; } - .ag-theme-material .ag-column-drop-horizontal { - background-color: #eee; - height: 48px; - line-height: 32px; - padding-left: 24px; } - .ag-theme-material .ag-column-drop-horizontal.ag-width-half { - margin-bottom: -3px; } - .ag-theme-material .ag-column-drop-horizontal span { - float: left; - height: 100%; } - .ag-theme-material .ag-column-drop-horizontal > div:first-child { - float: left; - height: 100%; } - .ag-theme-material .ag-column-drop-horizontal .ag-icon-group, - .ag-theme-material .ag-column-drop-horizontal .ag-icon-pivot { - margin-right: 24px; } - .ag-theme-material .ag-column-drop-horizontal .ag-right-arrow { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkgM0w4IDRsNCA0SDN2Mmg5bC00IDQgMSAxIDYtNnoiIGZpbGw9IiMzMzMiLz48L3N2Zz4=); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; } - .ag-theme-material .ag-column-drop-horizontal .ag-left-arrow { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE1IDhINmw0LTQtMS0xLTYgNiA2IDYgMS0xLTQtNGg5eiIgZmlsbD0iIzMzMyIvPjwvc3ZnPg==); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; } - .ag-theme-material .ag-column-drop-horizontal .ag-left-arrow, - .ag-theme-material .ag-column-drop-horizontal .ag-right-arrow { - overflow: hidden; - text-indent: 100%; - height: 100%; - margin: 0 8px; - opacity: 0.54; } - .ag-theme-material .ag-column-drop-horizontal .ag-column-drop-empty-message { - height: 100%; - line-height: 48px; - opacity: 0.38; } - .ag-theme-material .ag-column-drop-cell { - background: #e0e0e0; - border-radius: 32px; - box-sizing: border-box; - height: 32px !important; - margin-top: 8px; - padding: 0 4px; } - .ag-theme-material .ag-column-drop-cell .ag-column-drop-cell-text { - height: 100%; - line-height: 32px; - margin: 0 8px; } - .ag-theme-material .ag-column-drop-cell .ag-column-drop-cell-button { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkgMS41QTcuNDkzIDcuNDkzIDAgMCAwIDEuNSA5YzAgNC4xNDggMy4zNTMgNy41IDcuNSA3LjUgNC4xNDggMCA3LjUtMy4zNTIgNy41LTcuNSAwLTQuMTQ3LTMuMzUyLTcuNS03LjUtNy41em0zLjc1IDEwLjE5M2wtMS4wNTcgMS4wNTdMOSAxMC4wNTcgNi4zMDggMTIuNzUgNS4yNSAxMS42OTMgNy45NDIgOSA1LjI1IDYuMzA4IDYuMzA4IDUuMjUgOSA3Ljk0MmwyLjY5My0yLjY5MiAxLjA1NyAxLjA1OEwxMC4wNTcgOWwyLjY5MyAyLjY5M3oiIGZpbGw9IiMzMzMiLz48L3N2Zz4=); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - overflow: hidden; - text-indent: 100%; - min-width: 32px; - height: 100%; - margin: 0 4px; - opacity: 0.54; } - .ag-theme-material .ag-column-drop-cell .ag-column-drop-cell-button:hover { - opacity: 0.87; } - .ag-theme-material .ag-column-drop-cell .ag-column-drag { - margin-left: 16px; - margin-top: 4px; - width: 18px; } - .ag-theme-material .ag-select-agg-func-popup { - background: #fff; - border-radius: 2px; - box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); - padding: 8px; - background: #fff; - height: 140px; - padding: 0; } - .ag-theme-material .ag-select-agg-func-popup .ag-virtual-list-item { - cursor: default; - line-height: 40px; - padding-left: 16px; } - .ag-theme-material .ag-set-filter-list, - .ag-theme-material .ag-menu-column-select-wrapper { - width: auto; } - .ag-theme-material .ag-column-drop-vertical > .ag-column-drop-cell { - float: left; - margin-bottom: 8px; - margin-left: 8px; - margin-top: 0; } - .ag-theme-material .ag-cell-data-changed { - background-color: #00acc1 !important; } - .ag-theme-material .ag-cell-data-changed-animation { - background-color: transparent; - transition: background-color 1s; } - .ag-theme-material .ag-stub-cell { - padding-left: 24px; - padding-top: 8px; } - .ag-theme-material .ag-stub-cell .ag-loading-icon { - float: left; - height: 100%; } - .ag-theme-material .ag-stub-cell .ag-loading-text { - float: left; - height: 100%; - margin-left: 8px; - margin-top: 8px; } - .ag-theme-material .ag-rtl .ag-numeric-cell { - text-align: left; } - .ag-theme-material .ag-rtl .ag-header-cell-menu-button { - float: left; } - .ag-theme-material .ag-rtl .ag-header-cell-label { - float: right; - width: calc(100% - 18px); } - .ag-theme-material .ag-rtl .ag-header-cell-label > span { - float: right; } - .ag-theme-material .ag-rtl .ag-header-cell-label .ag-header-icon { - margin-top: 2px; } - .ag-theme-material .ag-rtl .ag-numeric-header .ag-header-cell-menu-button { - float: right; } - .ag-theme-material .ag-rtl .ag-numeric-header .ag-header-cell-label { - float: left; } - .ag-theme-material .ag-rtl .ag-numeric-header .ag-header-cell-label > span { - float: left; } - .ag-theme-material .ag-rtl .ag-tool-panel-wrapper .ag-pivot-mode-panel span { - float: right; } - .ag-theme-material .ag-rtl .ag-tool-panel-wrapper .ag-pivot-mode-panel .ag-pivot-mode-select { - margin-right: 8px; } - .ag-theme-material .ag-rtl .ag-tool-panel-wrapper .ag-pivot-mode-panel .ag-pivot-mode-select .ag-checkbox-label { - margin-right: 8px; } - .ag-theme-material .ag-rtl .ag-tool-panel-wrapper .ag-column-drop .ag-icon { - float: right; } - .ag-theme-material .ag-rtl .ag-tool-panel-wrapper .ag-column-drop .ag-column-drop-title { - clear: left; - float: right; } - .ag-theme-material .ag-rtl .ag-tool-panel-wrapper .ag-column-drop .ag-column-drop-empty-message { - padding-left: 8px; - padding-right: 32px; } - .ag-theme-material .ag-rtl .ag-filter-checkbox { - float: right; - margin-left: 8px; } - .ag-theme-material .ag-rtl .ag-column-select-panel .ag-column-tool-panel-column-group span, - .ag-theme-material .ag-rtl .ag-column-select-panel .ag-column-tool-panel-column span { - float: right; } - .ag-theme-material .ag-rtl .ag-column-select-panel .ag-column-tool-panel-column-group .ag-column-select-checkbox, - .ag-theme-material .ag-rtl .ag-column-select-panel .ag-column-tool-panel-column-group .ag-column-group-icons, - .ag-theme-material .ag-rtl .ag-column-select-panel .ag-column-tool-panel-column .ag-column-select-checkbox, - .ag-theme-material .ag-rtl .ag-column-select-panel .ag-column-tool-panel-column .ag-column-group-icons { - margin-left: 8px; - margin-right: 8px; } - .ag-theme-material .ag-rtl .ag-column-select-panel .ag-column-tool-panel-column.ag-toolpanel-add-group-indent { - margin-left: 0; - margin-right: 34px; } - .ag-theme-material .ag-rtl .ag-icon-tree-closed { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTExLjUgMTIuNUw4IDlsMy41LTMuNS0xLTFMNiA5bDQuNSA0LjV6IiBmaWxsPSIjMzMzIi8+PC9zdmc+); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; } - .ag-theme-material .ag-rtl .ag-header-group-cell-label { - height: 100%; } - .ag-theme-material .ag-rtl .ag-header-group-cell-label span { - float: right; - height: 100%; } - .ag-theme-material .ag-rtl .ag-header-select-all:not(.ag-hidden) + .ag-cell-label-container { - float: right; } - .ag-theme-material .ag-rtl .ag-header-select-all { - margin-left: 24px; - margin-right: 0; } - .ag-theme-material .ag-rtl .ag-selection-checkbox span, - .ag-theme-material .ag-rtl .ag-group-expanded span, - .ag-theme-material .ag-rtl .ag-group-contracted span { - margin-left: 24px; - margin-right: 0; } - .ag-theme-material .ag-rtl .ag-column-drop-horizontal { - padding-right: 24px; } - .ag-theme-material .ag-rtl .ag-column-drop-horizontal span { - float: right; } - .ag-theme-material .ag-rtl .ag-column-drop-horizontal > div:first-child { - float: right; } - .ag-theme-material .ag-rtl .ag-column-drop-horizontal .ag-icon-group, - .ag-theme-material .ag-rtl .ag-column-drop-horizontal .ag-icon-pivot { - margin-left: 24px; - margin-right: 0; } - .ag-theme-material .ag-rtl .ag-column-drop-horizontal .ag-right-arrow { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkgM0w4IDRsNCA0SDN2Mmg5bC00IDQgMSAxIDYtNnoiIGZpbGw9IiMzMzMiLz48L3N2Zz4=); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - height: 100%; } - .ag-theme-material .ag-rtl .ag-column-drop-horizontal .ag-left-arrow { - background-color: transparent; - background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE1IDhINmw0LTQtMS0xLTYgNiA2IDYgMS0xLTQtNGg5eiIgZmlsbD0iIzMzMyIvPjwvc3ZnPg==); - background-position: center; - background-repeat: no-repeat; - background-size: 18px 18px; - height: 18px; - opacity: 0.87; - width: 18px; - height: 100%; } - .ag-theme-material .ag-rtl .ag-floating-filter-body { - float: right; - margin-left: 0; } - .ag-theme-material .ag-rtl .ag-floating-filter-button { - float: left; } - .ag-theme-material .ag-rtl .ag-header .ag-header-cell-resize::after { - border-left: 1px solid #e0e0e0; - border-right: 0; } - .ag-theme-material .ag-rtl .ag-column-drag { - background-position-x: right; } - .ag-theme-material .ag-status-bar { - background: #fff; - border: 1px solid #e0e0e0; - border-top: 0; - color: rgba(0, 0, 0, 0.38); - font: 700 12px "Roboto", sans-serif; - padding-right: 32px; - padding-left: 32px; } - .ag-theme-material .ag-name-value-value { - color: rgba(0, 0, 0, 0.87); } - .ag-theme-material .ag-status-bar-center { - text-align: center; } - .ag-theme-material .ag-name-value { - margin-left: 8px; - margin-right: 8px; - padding-top: 16px; - padding-bottom: 16px; } - .ag-theme-material .ag-details-row { - box-sizing: border-box; - padding: 40px; } - .ag-theme-material .ag-overlay-loading-wrapper { - background-color: rgba(255, 255, 255, 0.5); } - .ag-theme-material .ag-overlay-loading-center { - background: #fff; - border-radius: 2px; - box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); - padding: 8px; } - .ag-theme-material .ag-side-bar { - background-color: #fafafa; - border-right: 1px solid #e0e0e0; - border-top: 1px solid #e0e0e0; - position: relative; } - .ag-theme-material .ag-side-bar .ag-side-buttons { - padding-top: 32px; - background: #fff; - border-bottom: 1px solid #e0e0e0; - position: relative; } - .ag-theme-material .ag-side-bar .ag-side-buttons .ag-side-button button { - background: transparent; - border: 0; - color: rgba(0, 0, 0, 0.87); - padding: 16px 0 16px 0; - width: 100%; - margin: 0; - min-height: 144px; - border-width: 1px 0 1px 0; - border-style: solid; - border-color: transparent; - background-position-y: 8px; - background-position-x: center; - background-repeat: no-repeat; } - .ag-theme-material .ag-side-bar .ag-side-buttons .ag-selected button { - background-color: #fafafa; - margin-left: -1px; - padding-left: 1px; - width: calc(100% + 1px); - border-color: #e0e0e0; } - .ag-theme-material .ag-side-bar .ag-panel-container { - border-right: 1px solid #e0e0e0; - box-sizing: border-box; } - .ag-theme-material .ag-side-bar.full-width .ag-panel-container { - border-right: 0; } - .ag-theme-material .ag-side-bar .ag-column-drop { - min-height: 50px; } - .ag-theme-material .ag-rtl .ag-side-bar .ag-panel-container { - border-left: 1px solid #e0e0e0; - border-right: 0; } - .ag-theme-material .ag-rtl .ag-side-bar.full-width .ag-panel-container { - border-left: 0; } - .ag-theme-material .ag-primary-cols-filter { - background: transparent; - box-sizing: border-box; - color: rgba(0, 0, 0, 0.87); - font-family: inherit; - font-size: inherit; - height: 24px; - padding-bottom: 8px; - border-width: 0; - border-bottom: 1px solid #e0e0e0; - box-sizing: border-box; - width: 100%; } - .ag-theme-material .ag-primary-cols-filter:focus { - border-bottom: 2px solid #3f51b5; - outline: none; - padding-bottom: 7px; } - .ag-theme-material .ag-primary-cols-filter::placeholder { - color: rgba(0, 0, 0, 0.38); } - .ag-theme-material .ag-primary-cols-filter-wrapper { - margin-left: 8px; - margin-right: 8px; } - .ag-theme-material .sass-variables::after { - content: '{ "autoSizePadding": "24px", "headerHeight": "56px", "groupPaddingSize": "42px", "footerPaddingAddition": "32px", "virtualItemHeight": "40px", "aggFuncPopupHeight": "140px", "checkboxIndentWidth": "26px", "leafNodePadding": "24px", "rowHeight": "48px", "gridSize": "8px", "iconSize": "18px" }'; - display: none; } - .ag-theme-material .ag-cell-highlight { - background-color: #fce4ec !important; } - .ag-theme-material .ag-cell-highlight-animation { - transition: background-color 1s; } - .ag-theme-material .ag-row-drag { - background-position-y: center; } - .ag-theme-material .ag-column-drag { - background-position-y: center; } - .ag-theme-material .ag-cell-range-selected-1:not(.ag-cell-focus) { - background-color: #e8eaf6; } - .ag-theme-material .ag-cell-range-selected-2:not(.ag-cell-focus) { - background-color: #d9ddf0; } - .ag-theme-material .ag-cell-range-selected-3:not(.ag-cell-focus) { - background-color: #cbcfeb; } - .ag-theme-material .ag-cell-range-selected-4:not(.ag-cell-focus) { - background-color: #bcc2e5; } - .ag-theme-material .ag-side-bar { - border-bottom: 0; - border-right: 0; - border-top: 0; } - .ag-theme-material .ag-side-bar .ag-side-buttons button { - border: 0; - color: rgba(0, 0, 0, 0.54); - font-family: "Roboto", sans-serif; - font-size: 12px; - font-weight: 700; - background: transparent; } - .ag-theme-material .ag-side-bar .ag-side-buttons .ag-side-button button { - background-color: transparent; - border-width: 0; } - .ag-theme-material .ag-side-bar .ag-side-buttons .ag-selected button { - border-left: 2px solid #3f51b5; - background-color: #fafafa; - margin-left: -2px; - padding-left: 1px; } - .ag-theme-material .ag-side-bar .ag-filter-toolpanel-body { - background-color: #fff; } - .ag-theme-material .ag-rtl .ag-side-bar .ag-side-buttons .ag-selected button { - border-left: 0; - margin-left: 0; - padding-left: 0; - border-right: 2px solid #3f51b5; - margin-right: -2px; - padding-right: 1px; } \ No newline at end of file diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 1e2ef94..7a9c7cd 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -1,5 +1,6 @@ import React, { Component, Fragment } from 'react'; import { AgGridReact } from "ag-grid-react"; +import "ag-grid-enterprise"; import { connect } from 'react-redux'; import { bindActionCreators } from 'redux'; import Spinner from './../shared/ui/spinner'; @@ -11,10 +12,10 @@ import * as PropTypes from 'prop-types'; import * as actions from './actions'; import "./css/index.css"; -import "./css/ag-grid.css"; -import "./css/ag-theme-material.css"; +import "./../../../node_modules/ag-grid-community/dist/styles/ag-grid.css"; +import "./../../../node_modules/ag-grid-community/dist/styles/ag-theme-material.css"; -import ErrorHandler from "../../hoc/error_handler/"; +// import ErrorHandler from "../../hoc/error_handler/"; function setText(selector, text) { document.querySelector(selector).innerHTML = text; diff --git a/src/components/dashboard_users/reducer.js b/src/components/dashboard_users/reducer.js index 3994c89..9eb903c 100644 --- a/src/components/dashboard_users/reducer.js +++ b/src/components/dashboard_users/reducer.js @@ -9,18 +9,18 @@ import userAvatar from '../../utils/services/avatar_insertion'; const initialState = { usersData: [], coldef: [ - { headerName: "avatar", hide: false, field: "avatar", filter: 'agTextColumnFilter', cellRenderer: "agGroupCellRenderer", cellRendererParams: { innerRenderer: userAvatar }, headerCheckboxSelection: true, headerCheckboxSelectionFilteredOnly: true, checkboxSelection: true }, - { headerName: "accountId", hide: false, field: "accountId", filter: 'agTextColumnFilter' }, - { headerName: "profileId", hide: false, field: "profileId", filter: 'agTextColumnFilter' }, - { headerName: "authenticationIdentifier", hide: false, field: "authenticationIdentifier", filter: 'agTextColumnFilter' }, - { headerName: "authenticationType", hide: false, field: "authenticationType", filter: 'agTextColumnFilter' }, - { headerName: "accountMark", hide: false, field: "accountMark", filter: 'agTextColumnFilter' }, - { headerName: "accountName", hide: false, field: "accountName", filter: 'agTextColumnFilter' }, - { headerName: "firstName", hide: false, field: "firstName", filter: 'agTextColumnFilter' }, - { headerName: "lastName", hide: false, field: "lastName", filter: 'agTextColumnFilter' }, - { headerName: "accountStatus", hide: false, field: "accountStatus", filter: 'agTextColumnFilter' }, - { headerName: "qrCode", hide: false, field: "qrCode", filter: 'agTextColumnFilter' }, - { headerName: "communicationProviders", hide: false, field: "communicationProviders", filter: 'agTextColumnFilter' }, + {rowGroup: true, headerName: "avatar", hide: false, field: "avatar", filter: 'agTextColumnFilter', cellRenderer: "agGroupCellRenderer", cellRendererParams: { innerRenderer: userAvatar }, headerCheckboxSelection: true, headerCheckboxSelectionFilteredOnly: true, checkboxSelection: true }, + {rowGroup: true, headerName: "accountId", hide: false, field: "accountId", filter: 'agTextColumnFilter' }, + {rowGroup: true, headerName: "profileId", hide: false, field: "profileId", filter: 'agTextColumnFilter' }, + {rowGroup: true, headerName: "authenticationIdentifier", hide: false, field: "authenticationIdentifier", filter: 'agTextColumnFilter' }, + {rowGroup: true, headerName: "authenticationType", hide: false, field: "authenticationType", filter: 'agTextColumnFilter' }, + {rowGroup: true, headerName: "accountMark", hide: false, field: "accountMark", filter: 'agTextColumnFilter' }, + {rowGroup: true, headerName: "accountName", hide: false, field: "accountName", filter: 'agTextColumnFilter' }, + {rowGroup: true, headerName: "firstName", hide: false, field: "firstName", filter: 'agTextColumnFilter' }, + {rowGroup: true, headerName: "lastName", hide: false, field: "lastName", filter: 'agTextColumnFilter' }, + {rowGroup: true, headerName: "accountStatus", hide: false, field: "accountStatus", filter: 'agTextColumnFilter' }, + {rowGroup: true, headerName: "qrCode", hide: false, field: "qrCode", filter: 'agTextColumnFilter' }, + {rowGroup: true, headerName: "communicationProviders", hide: false, field: "communicationProviders", filter: 'agTextColumnFilter' }, ], loading: false, rowSelection: "multiple", diff --git a/src/hoc/interceptor_error/interceptor_error.js b/src/hoc/interceptor_error/interceptor_error.js index 8817c6e..4102f1a 100644 --- a/src/hoc/interceptor_error/interceptor_error.js +++ b/src/hoc/interceptor_error/interceptor_error.js @@ -45,7 +45,7 @@ const ErrorInterceptor = (WrappedComponent, axios) => { { error ?
- close + {/* close */}

{error.message}

Error status Request: {error.request.statusText}

Error status Response: {error.response.statusText}

diff --git a/src/index.js b/src/index.js index 4eae180..1ecdb87 100644 --- a/src/index.js +++ b/src/index.js @@ -2,6 +2,7 @@ import React from 'react'; import ReactDOM from 'react-dom'; import { createStore } from 'redux'; import { Provider } from 'react-redux'; +import {LicenseManager} from "ag-grid-enterprise"; import rootReducer from './store/root_reducers'; import rootMiddleware, { sagaMiddleware, combineSagas } from './store/root_middleware'; @@ -16,6 +17,8 @@ import Spinner from './components/shared//ui/spinner'; import './index.css'; import App from './App'; +LicenseManager.setLicenseKey("Evaluation_License_Valid_Until__22_December_2018__MTU0NTQzNjgwMDAwMA==d8310d76d04f6e775e384fcc32f337c5"); + const theme = createMuiTheme({ typography: { useNextVariants: true diff --git a/yarn.lock b/yarn.lock index fd6845f..eae7802 100644 --- a/yarn.lock +++ b/yarn.lock @@ -134,6 +134,10 @@ ag-grid-community@^19.0.0: version "19.0.0" resolved "https://registry.yarnpkg.com/ag-grid-community/-/ag-grid-community-19.0.0.tgz#b0909835c63bdeef54047bf27ab16a10fdf61ed0" +ag-grid-enterprise@^19.0.0: + version "19.0.0" + resolved "https://registry.yarnpkg.com/ag-grid-enterprise/-/ag-grid-enterprise-19.0.0.tgz#ae8dcc5db81108e5344a45a28d06c242393c3384" + ag-grid-react@^19.0.0: version "19.0.0" resolved "https://registry.yarnpkg.com/ag-grid-react/-/ag-grid-react-19.0.0.tgz#e8c7c3066111fb54944e3c829cc169a556d46144" -- GitLab From 54c4adeb1e697bba90844ced09a5ca4a9bba5bc6 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Tue, 16 Oct 2018 16:32:53 +0300 Subject: [PATCH 081/249] NY-3882 --- src/components/dashboard_users/css/index.css | 2 ++ .../dashboard_users/page_size/index.js | 4 ++-- .../dashboard_users/page_size/page_size.css | 7 +++---- .../dashboard_users/paging/paging.css | 14 ++++++++++--- .../dashboard_users/paging/paging.js | 21 ++----------------- src/index.css | 4 ++-- 6 files changed, 22 insertions(+), 30 deletions(-) diff --git a/src/components/dashboard_users/css/index.css b/src/components/dashboard_users/css/index.css index 2650da0..b6b40bf 100644 --- a/src/components/dashboard_users/css/index.css +++ b/src/components/dashboard_users/css/index.css @@ -1,4 +1,6 @@ .ag-grid-wrapper { + position: relative; + width: calc(100% - 20px); height: calc(100vh - 150px); } diff --git a/src/components/dashboard_users/page_size/index.js b/src/components/dashboard_users/page_size/index.js index a6781a8..e249383 100644 --- a/src/components/dashboard_users/page_size/index.js +++ b/src/components/dashboard_users/page_size/index.js @@ -15,9 +15,9 @@ import './page_size.css'; return (
- + - { selectOptions.map((option, index) => ) } diff --git a/src/components/dashboard_users/page_size/page_size.css b/src/components/dashboard_users/page_size/page_size.css index 6da03c2..0f226a4 100644 --- a/src/components/dashboard_users/page_size/page_size.css +++ b/src/components/dashboard_users/page_size/page_size.css @@ -1,7 +1,6 @@ .page-size-changed { - position: fixed; - top: 20px; - left: 0; + padding: 20px; - transform: translate(0, 0); + font-size: 20px; + color: #55575b; } \ No newline at end of file diff --git a/src/components/dashboard_users/paging/paging.css b/src/components/dashboard_users/paging/paging.css index ba4d4a5..59721f8 100644 --- a/src/components/dashboard_users/paging/paging.css +++ b/src/components/dashboard_users/paging/paging.css @@ -1,6 +1,9 @@ /* Pagination */ .pagination-control-wrapper { + position: relative; + padding: 20px; + text-align: center; font-size: 0; } @@ -10,7 +13,7 @@ -webkit-appearance: none; appearance: none; - margin: 0 5px; + margin: 0 3px; width: 50px; height: 50px; @@ -22,7 +25,7 @@ .pagination-dots { display: inline-block; - margin: 0 5px; + margin: 0 3px; font-size: 20px; } .pagination-cotrol:disabled { @@ -35,5 +38,10 @@ color: #fff; } .paging-value, .label { - font-size: 15px; +} +.paging-info { + position: absolute; + + font-size: 20px; + color: #55575b; } \ No newline at end of file diff --git a/src/components/dashboard_users/paging/paging.js b/src/components/dashboard_users/paging/paging.js index 0d46b5f..b541a17 100644 --- a/src/components/dashboard_users/paging/paging.js +++ b/src/components/dashboard_users/paging/paging.js @@ -5,7 +5,7 @@ import './paging.css'; const Paging = (props) => { - const { currentPageNumber, totalPageNumber, isDisableFirst, isDisableLast, onPaging, onFirst, onPrevious, onLastPage, onNext, onLast } = props; + const { paginationPageSize, users, currentPageNumber, totalPageNumber, isDisableFirst, isDisableLast, onPaging, onFirst, onPrevious, onLastPage, onNext, onLast } = props; let pagingContent = []; if (currentPageNumber + 2 <= totalPageNumber) { @@ -28,27 +28,10 @@ const Paging = (props) => { return (
-
- Last Page Found: - - - - - Page Size: - - - - - Total Pages: - - - - - Current Page: - - - - -
+

Rows {paginationPageSize} of {users}

diff --git a/src/index.css b/src/index.css index 9bc39e9..0fde349 100644 --- a/src/index.css +++ b/src/index.css @@ -21,7 +21,7 @@ body, } #root { - padding-top: 50px; + margin-top: 60px; } a { @@ -43,7 +43,7 @@ a:hover { position: fixed; top: 5px; left: 9px; - + z-index: 1200; } -- GitLab From 54e32d2ad4b8b8fb4773db00f7b4c758892e2400 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Tue, 16 Oct 2018 17:05:53 +0300 Subject: [PATCH 082/249] Minor changes --- src/components/dashboard_users/css/index.css | 2 +- src/components/dashboard_users/index.js | 24 ++++++------------- .../dashboard_users/page_size/index.js | 6 +++-- .../dashboard_users/page_size/page_size.css | 14 +++++++++++ src/index.css | 2 +- 5 files changed, 27 insertions(+), 21 deletions(-) diff --git a/src/components/dashboard_users/css/index.css b/src/components/dashboard_users/css/index.css index b6b40bf..450371e 100644 --- a/src/components/dashboard_users/css/index.css +++ b/src/components/dashboard_users/css/index.css @@ -2,7 +2,7 @@ position: relative; width: calc(100% - 20px); - height: calc(100vh - 150px); + height: calc(100vh - 240px); } .table-grouping { diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 7a9c7cd..4b4966a 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -15,12 +15,6 @@ import "./css/index.css"; import "./../../../node_modules/ag-grid-community/dist/styles/ag-grid.css"; import "./../../../node_modules/ag-grid-community/dist/styles/ag-theme-material.css"; -// import ErrorHandler from "../../hoc/error_handler/"; - -function setText(selector, text) { - document.querySelector(selector).innerHTML = text; -} - class DashboardUsers extends Component { /** @@ -118,12 +112,7 @@ class DashboardUsers extends Component { onPaginationChanged = () => { if (this.gridApi) { - setText("#lbLastPageFound", this.gridApi.paginationIsLastPageFound()); - setText("#lbPageSize", this.gridApi.paginationGetPageSize()); - setText("#lbCurrentPage", this.gridApi.paginationGetCurrentPage() + 1); - setText("#lbTotalPages", this.gridApi.paginationGetTotalPages()); this.setLastButtonDisabled(this.gridApi.paginationGetTotalPages(), this.gridApi.paginationGetCurrentPage()); - this.setState({ currentPageNumber: this.gridApi.paginationGetCurrentPage() }) @@ -202,6 +191,11 @@ class DashboardUsers extends Component { content = (
+ - -
diff --git a/src/components/dashboard_users/page_size/index.js b/src/components/dashboard_users/page_size/index.js index e249383..af1d756 100644 --- a/src/components/dashboard_users/page_size/index.js +++ b/src/components/dashboard_users/page_size/index.js @@ -15,14 +15,16 @@ import './page_size.css'; return (
- + - { selectOptions.map((option, index) => ) } + entires +
) } diff --git a/src/components/dashboard_users/page_size/page_size.css b/src/components/dashboard_users/page_size/page_size.css index 0f226a4..002f55c 100644 --- a/src/components/dashboard_users/page_size/page_size.css +++ b/src/components/dashboard_users/page_size/page_size.css @@ -2,5 +2,19 @@ padding: 20px; font-size: 20px; + background-color: #eeeeee; color: #55575b; +} +.page-size-select { + max-width: 150px; + + margin: 0 10px; + padding: 10px; + + font-size: 18px; + background-color: #eeeeee; + color: #55575b; + + border: solid 1px #c6cbd4; + border-radius: 3px; } \ No newline at end of file diff --git a/src/index.css b/src/index.css index 0fde349..f90d7f3 100644 --- a/src/index.css +++ b/src/index.css @@ -21,7 +21,7 @@ body, } #root { - margin-top: 60px; + padding-top: 60px; } a { -- GitLab From 2ef05e5eb88826c6c16a6e048fe6a76a2d729647 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Tue, 16 Oct 2018 17:17:10 +0300 Subject: [PATCH 083/249] activation of enterprise built in grouping --- src/components/dashboard_users/index.js | 40 ++++++++++++----------- src/components/dashboard_users/reducer.js | 1 + 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 4b4966a..1974157 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -4,7 +4,7 @@ import "ag-grid-enterprise"; import { connect } from 'react-redux'; import { bindActionCreators } from 'redux'; import Spinner from './../shared/ui/spinner'; -import Grouping from './grouping'; +// import Grouping from './grouping'; import PageSize from './page_size'; import Paging from './paging/paging'; @@ -24,7 +24,7 @@ class DashboardUsers extends Component { * is available for the user */ state = { - groupingBarVisible: false, + // groupingBarVisible: false, isDisableLast: false, isDisableFirst: false, totalPageNumber: null, @@ -88,26 +88,26 @@ class DashboardUsers extends Component { * taking coldef ID and bool as an argument and respectfully * shows or hides the target column */ - showHideColumns = (e) => { - const { id, checked } = e.target; + // showHideColumns = (e) => { + // const { id, checked } = e.target; - if(checked !== undefined) { - this.columnApi.setColumnVisible(id, checked); - this.props.dashboardGroupingUpdate(id, checked); - } - }; + // if(checked !== undefined) { + // this.columnApi.setColumnVisible(id, checked); + // this.props.dashboardGroupingUpdate(id, checked); + // } + // }; /** * { toggleGroupingBar } is a function managing component state groupingBarVisible flag * given its true or false value, the Right Sidebar is visble or hidden */ - toggleGroupingBar = (e) => { - e.preventDefault() + // toggleGroupingBar = (e) => { + // e.preventDefault() - this.setState((prevState) => ({ - groupingBarVisible: !prevState.groupingBarVisible - })) - }; + // this.setState((prevState) => ({ + // groupingBarVisible: !prevState.groupingBarVisible + // })) + // }; onPaginationChanged = () => { @@ -178,7 +178,7 @@ class DashboardUsers extends Component { * @const {number} paginationPageSize * @const {func} paginationNumberFormatter */ - const { users, coldef, loading, rowSelection, paginationPageSize, selectOptions } = this.props; + const { users, coldef, loading, rowSelection, paginationPageSize, selectOptions, sideBar } = this.props; const { isDisableFirst, isDisableLast, totalPageNumber, currentPageNumber } = this.state; let content = null; @@ -214,14 +214,15 @@ class DashboardUsers extends Component { rowData={users} onCellClicked={this.onCellClicked} onGridReady={this.onGridReady} + sideBar={sideBar} /> - + /> */} { error: state.error.error, rowSelection: state.users.rowSelection, paginationPageSize: state.users.paginationPageSize, - selectOptions: state.users.selectOptions + selectOptions: state.users.selectOptions, + sideBar: state.users.sideBar } }; diff --git a/src/components/dashboard_users/reducer.js b/src/components/dashboard_users/reducer.js index 9eb903c..6d77ae5 100644 --- a/src/components/dashboard_users/reducer.js +++ b/src/components/dashboard_users/reducer.js @@ -22,6 +22,7 @@ const initialState = { {rowGroup: true, headerName: "qrCode", hide: false, field: "qrCode", filter: 'agTextColumnFilter' }, {rowGroup: true, headerName: "communicationProviders", hide: false, field: "communicationProviders", filter: 'agTextColumnFilter' }, ], + sideBar: "columns", loading: false, rowSelection: "multiple", paginationPageSize: 30, -- GitLab From efad823aad5c71d4cf7830e4b0c0f690552ca973 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Tue, 16 Oct 2018 17:46:49 +0300 Subject: [PATCH 084/249] Minor changes --- src/components/dashboard_users/css/index.css | 3 +-- .../dashboard_users/page_size/index.js | 1 - .../dashboard_users/page_size/page_size.css | 2 +- .../dashboard_users/paging/paging.css | 11 ++++++++--- .../dashboard_users/paging/paging.js | 18 ++++++++++++++++-- 5 files changed, 26 insertions(+), 9 deletions(-) diff --git a/src/components/dashboard_users/css/index.css b/src/components/dashboard_users/css/index.css index 450371e..cd82966 100644 --- a/src/components/dashboard_users/css/index.css +++ b/src/components/dashboard_users/css/index.css @@ -1,8 +1,7 @@ .ag-grid-wrapper { position: relative; - width: calc(100% - 20px); - height: calc(100vh - 240px); + height: calc(100vh - 200px); } .table-grouping { diff --git a/src/components/dashboard_users/page_size/index.js b/src/components/dashboard_users/page_size/index.js index af1d756..1caec21 100644 --- a/src/components/dashboard_users/page_size/index.js +++ b/src/components/dashboard_users/page_size/index.js @@ -1,6 +1,5 @@ import React from 'react'; import * as PropTypes from 'prop-types'; - import './page_size.css'; const PageSize = (props) => { diff --git a/src/components/dashboard_users/page_size/page_size.css b/src/components/dashboard_users/page_size/page_size.css index 002f55c..498be82 100644 --- a/src/components/dashboard_users/page_size/page_size.css +++ b/src/components/dashboard_users/page_size/page_size.css @@ -1,5 +1,5 @@ .page-size-changed { - padding: 20px; + padding: 10px 20px; font-size: 20px; background-color: #eeeeee; diff --git a/src/components/dashboard_users/paging/paging.css b/src/components/dashboard_users/paging/paging.css index 59721f8..674c491 100644 --- a/src/components/dashboard_users/paging/paging.css +++ b/src/components/dashboard_users/paging/paging.css @@ -2,7 +2,7 @@ .pagination-control-wrapper { position: relative; - padding: 20px; + padding: 15px 15px 0; text-align: center; font-size: 0; @@ -15,8 +15,8 @@ margin: 0 3px; - width: 50px; - height: 50px; + width: 45px; + height: 45px; background-color: #fff; border: solid 1px #eee; @@ -41,7 +41,12 @@ } .paging-info { position: absolute; + top: 70%; + transform: translate(0, -70%); font-size: 20px; color: #55575b; +} +.paging-info p { + margin: 0; } \ No newline at end of file diff --git a/src/components/dashboard_users/paging/paging.js b/src/components/dashboard_users/paging/paging.js index b541a17..9115d3d 100644 --- a/src/components/dashboard_users/paging/paging.js +++ b/src/components/dashboard_users/paging/paging.js @@ -1,10 +1,24 @@ import React from 'react'; import PropTypes from "prop-types"; - import './paging.css'; const Paging = (props) => { + /** + * @const {number} currentPageNumber + * @const {number} totalPageNumber + * @const {number} paginationPageSize + * @const {number} users + * @const {bool} isDisableFirst + * @const {bool} isDisableLast + * @const {func} onPaging + * @const {func} onFirst + * @const {func} onPrevious + * @const {func} onLastPage + * @const {func} onNext + * @const {func} onLast + */ + const { paginationPageSize, users, currentPageNumber, totalPageNumber, isDisableFirst, isDisableLast, onPaging, onFirst, onPrevious, onLastPage, onNext, onLast } = props; let pagingContent = []; @@ -55,6 +69,7 @@ const Paging = (props) => { Paging.propTypes = { currentPageNumber: PropTypes.number.isRequired, totalPageNumber: PropTypes.number, + paginationPageSize: PropTypes.number.isRequired, isDisableFirst: PropTypes.bool.isRequired, isDisableLast: PropTypes.bool.isRequired, onPaging: PropTypes.func.isRequired, @@ -65,5 +80,4 @@ Paging.propTypes = { onLast: PropTypes.func.isRequired }; - export default Paging; \ No newline at end of file -- GitLab From 3f6f31e2a2f7de3b21838b205dc6ca5e4c57fe9a Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Tue, 16 Oct 2018 17:48:51 +0300 Subject: [PATCH 085/249] sidebar configuration added --- src/components/dashboard_users/reducer.js | 47 ++++++++++++++++------- 1 file changed, 34 insertions(+), 13 deletions(-) diff --git a/src/components/dashboard_users/reducer.js b/src/components/dashboard_users/reducer.js index 6d77ae5..37bfdb0 100644 --- a/src/components/dashboard_users/reducer.js +++ b/src/components/dashboard_users/reducer.js @@ -9,20 +9,41 @@ import userAvatar from '../../utils/services/avatar_insertion'; const initialState = { usersData: [], coldef: [ - {rowGroup: true, headerName: "avatar", hide: false, field: "avatar", filter: 'agTextColumnFilter', cellRenderer: "agGroupCellRenderer", cellRendererParams: { innerRenderer: userAvatar }, headerCheckboxSelection: true, headerCheckboxSelectionFilteredOnly: true, checkboxSelection: true }, - {rowGroup: true, headerName: "accountId", hide: false, field: "accountId", filter: 'agTextColumnFilter' }, - {rowGroup: true, headerName: "profileId", hide: false, field: "profileId", filter: 'agTextColumnFilter' }, - {rowGroup: true, headerName: "authenticationIdentifier", hide: false, field: "authenticationIdentifier", filter: 'agTextColumnFilter' }, - {rowGroup: true, headerName: "authenticationType", hide: false, field: "authenticationType", filter: 'agTextColumnFilter' }, - {rowGroup: true, headerName: "accountMark", hide: false, field: "accountMark", filter: 'agTextColumnFilter' }, - {rowGroup: true, headerName: "accountName", hide: false, field: "accountName", filter: 'agTextColumnFilter' }, - {rowGroup: true, headerName: "firstName", hide: false, field: "firstName", filter: 'agTextColumnFilter' }, - {rowGroup: true, headerName: "lastName", hide: false, field: "lastName", filter: 'agTextColumnFilter' }, - {rowGroup: true, headerName: "accountStatus", hide: false, field: "accountStatus", filter: 'agTextColumnFilter' }, - {rowGroup: true, headerName: "qrCode", hide: false, field: "qrCode", filter: 'agTextColumnFilter' }, - {rowGroup: true, headerName: "communicationProviders", hide: false, field: "communicationProviders", filter: 'agTextColumnFilter' }, + {headerName: "avatar", hide: false, field: "avatar", filter: 'agTextColumnFilter', cellRenderer: "agGroupCellRenderer", cellRendererParams: { innerRenderer: userAvatar }, headerCheckboxSelection: true, headerCheckboxSelectionFilteredOnly: true, checkboxSelection: true }, + {headerName: "accountId", hide: false, field: "accountId", filter: 'agTextColumnFilter' }, + {headerName: "profileId", hide: false, field: "profileId", filter: 'agTextColumnFilter' }, + {headerName: "authenticationIdentifier", hide: false, field: "authenticationIdentifier", filter: 'agTextColumnFilter' }, + {headerName: "authenticationType", hide: false, field: "authenticationType", filter: 'agTextColumnFilter' }, + {headerName: "accountMark", hide: false, field: "accountMark", filter: 'agTextColumnFilter' }, + {headerName: "accountName", hide: false, field: "accountName", filter: 'agTextColumnFilter' }, + {headerName: "firstName", hide: false, field: "firstName", filter: 'agTextColumnFilter' }, + {headerName: "lastName", hide: false, field: "lastName", filter: 'agTextColumnFilter' }, + {headerName: "accountStatus", hide: false, field: "accountStatus", filter: 'agTextColumnFilter' }, + {headerName: "qrCode", hide: false, field: "qrCode", filter: 'agTextColumnFilter' }, + {headerName: "communicationProviders", hide: false, field: "communicationProviders", filter: 'agTextColumnFilter' }, ], - sideBar: "columns", + sideBar: { + toolPanels: [ + { + id: "columns", + labelDefault: "Columns", + labelKey: "columns", + iconKey: "columns", + toolPanel: "agColumnsToolPanel", + toolPanelParams: { + suppressRowGroups: true, + suppressValues: true, + suppressPivots: true, + suppressPivotMode: true, + suppressSideButtons: true, + suppressColumnFilter: true, + suppressColumnSelectAll: true, + suppressColumnExpandAll: true + } + } + ], + defaultToolPanel: "columns" + }, loading: false, rowSelection: "multiple", paginationPageSize: 30, -- GitLab From affb3e87a23e6890d536cda6a065648340e1bc6b Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Tue, 16 Oct 2018 18:00:05 +0300 Subject: [PATCH 086/249] Minor chnages --- src/components/dashboard_users/index.js | 10 +++++++++- src/components/dashboard_users/paging/paging.css | 10 +++++----- src/components/dashboard_users/paging/paging.js | 14 +++++++------- 3 files changed, 21 insertions(+), 13 deletions(-) diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 1974157..7a6b36e 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -177,6 +177,10 @@ class DashboardUsers extends Component { * @const {string} rowSelection * @const {number} paginationPageSize * @const {func} paginationNumberFormatter + * @const {bool} isDisableFirst + * @const {bool} isDisableLast + * @const {number} totalPageNumber + * @const {number} currentPageNumber */ const { users, coldef, loading, rowSelection, paginationPageSize, selectOptions, sideBar } = this.props; const { isDisableFirst, isDisableLast, totalPageNumber, currentPageNumber } = this.state; @@ -264,7 +268,11 @@ DashboardUsers.propTypes = { loading: PropTypes.bool.isRequired, error: PropTypes.bool, paginationPageSize: PropTypes.number.isRequired, - selectOptions: PropTypes.array.isRequired + selectOptions: PropTypes.array.isRequired, + isDisableFirst: PropTypes.bool, + isDisableLast: PropTypes.bool, + totalPageNumber: PropTypes.number, + currentPageNumber: PropTypes.number }; const mapStateToProps = (state) => { diff --git a/src/components/dashboard_users/paging/paging.css b/src/components/dashboard_users/paging/paging.css index 674c491..1ac8a7d 100644 --- a/src/components/dashboard_users/paging/paging.css +++ b/src/components/dashboard_users/paging/paging.css @@ -7,7 +7,7 @@ text-align: center; font-size: 0; } -.pagination-cotrol { +.paging-control { display: inline-block; -webkit-appearance: none; @@ -22,18 +22,18 @@ border: solid 1px #eee; border-radius: 5px; } -.pagination-dots { +.paging-dots { display: inline-block; margin: 0 3px; font-size: 20px; } -.pagination-cotrol:disabled { +.paging-control:disabled { border: none; color: #cfcfcf; } -.pagination-cotrol.selected, -.pagination-cotrol:hover { +.paging-control.selected, +.paging-control:hover { background-color: #4a4a4a; color: #fff; } diff --git a/src/components/dashboard_users/paging/paging.js b/src/components/dashboard_users/paging/paging.js index 9115d3d..8d2191e 100644 --- a/src/components/dashboard_users/paging/paging.js +++ b/src/components/dashboard_users/paging/paging.js @@ -28,7 +28,7 @@ const Paging = (props) => { const pagingControls = ; @@ -46,20 +46,20 @@ const Paging = (props) => {

Rows {paginationPageSize} of {users}

- - + + {pagingContent} - ... + ... { totalPageNumber - ? + ? : null } - - + +
-- GitLab From 601e0f0013268eee2ee696b7bf6cc36222bed79b Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Tue, 16 Oct 2018 18:09:51 +0300 Subject: [PATCH 087/249] disable excel and csv export --- src/components/dashboard_users/index.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 7a6b36e..495c2e7 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -219,6 +219,8 @@ class DashboardUsers extends Component { onCellClicked={this.onCellClicked} onGridReady={this.onGridReady} sideBar={sideBar} + suppressExcelExport={true} + suppressCsvExport={true} /> {/* Date: Wed, 17 Oct 2018 10:40:09 +0300 Subject: [PATCH 088/249] suppress columns filter tool panel --- src/components/dashboard_users/reducer.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/components/dashboard_users/reducer.js b/src/components/dashboard_users/reducer.js index 37bfdb0..247c494 100644 --- a/src/components/dashboard_users/reducer.js +++ b/src/components/dashboard_users/reducer.js @@ -41,8 +41,7 @@ const initialState = { suppressColumnExpandAll: true } } - ], - defaultToolPanel: "columns" + ] }, loading: false, rowSelection: "multiple", -- GitLab From e96817f8b1e12dd7c07b1e57a6ab8c7eb10b83b3 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Wed, 17 Oct 2018 12:13:35 +0300 Subject: [PATCH 089/249] paging dots range handled --- src/components/dashboard_users/paging/paging.js | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/components/dashboard_users/paging/paging.js b/src/components/dashboard_users/paging/paging.js index 8d2191e..ba03f67 100644 --- a/src/components/dashboard_users/paging/paging.js +++ b/src/components/dashboard_users/paging/paging.js @@ -22,15 +22,13 @@ const Paging = (props) => { const { paginationPageSize, users, currentPageNumber, totalPageNumber, isDisableFirst, isDisableLast, onPaging, onFirst, onPrevious, onLastPage, onNext, onLast } = props; let pagingContent = []; + let rangeDots = null; + if (currentPageNumber + 2 <= totalPageNumber) { for (let index = 1; index < 4; index++) { - const pagingControls = ; + const pagingControls = ; if (currentPageNumber + index < totalPageNumber) { pagingContent.push(pagingControls); @@ -38,8 +36,14 @@ const Paging = (props) => { } + if (totalPageNumber > 5) { + rangeDots = ...; + } + } + + return (
@@ -51,7 +55,7 @@ const Paging = (props) => { {pagingContent} - ... + {rangeDots} { totalPageNumber ? -- GitLab From ec1beb42ea26ed2bd3fb01f6617bc1d631453b84 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Wed, 17 Oct 2018 15:19:10 +0300 Subject: [PATCH 090/249] dashboard server side model with fake server call --- src/components/dashboard_users/index.js | 14 ++- src/components/dashboard_users/reducer.js | 1 + src/utils/api/index.js | 113 +++++++++++++++++++++- 3 files changed, 123 insertions(+), 5 deletions(-) diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 495c2e7..8784db2 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -11,6 +11,8 @@ import Paging from './paging/paging'; import * as PropTypes from 'prop-types'; import * as actions from './actions'; +import { dataSource } from './../../utils/api/' + import "./css/index.css"; import "./../../../node_modules/ag-grid-community/dist/styles/ag-grid.css"; import "./../../../node_modules/ag-grid-community/dist/styles/ag-theme-material.css"; @@ -46,6 +48,7 @@ class DashboardUsers extends Component { onGridReady = (params) => { this.gridApi = params.api; this.columnApi = params.columnApi; + this.gridApi.setServerSideDatasource(dataSource); this.setState({ totalPageNumber: Number(this.gridApi.paginationGetTotalPages()) }); @@ -182,7 +185,7 @@ class DashboardUsers extends Component { * @const {number} totalPageNumber * @const {number} currentPageNumber */ - const { users, coldef, loading, rowSelection, paginationPageSize, selectOptions, sideBar } = this.props; + const { users, coldef, loading, rowSelection, paginationPageSize, selectOptions, sideBar, rowModelType } = this.props; const { isDisableFirst, isDisableLast, totalPageNumber, currentPageNumber } = this.state; let content = null; @@ -215,12 +218,14 @@ class DashboardUsers extends Component { reduxStore={this.context.store} rowSelection={rowSelection} columnDefs={coldef} - rowData={users} + // rowData={users} + debug={true} onCellClicked={this.onCellClicked} onGridReady={this.onGridReady} sideBar={sideBar} suppressExcelExport={true} suppressCsvExport={true} + rowModelType={rowModelType} /> {/* { rowSelection: state.users.rowSelection, paginationPageSize: state.users.paginationPageSize, selectOptions: state.users.selectOptions, - sideBar: state.users.sideBar + sideBar: state.users.sideBar, + rowModelType: state.users.rowModelType } }; @@ -298,4 +304,4 @@ const mapDispatchToProps = (dispatch) => { }, dispatch) }; -export default connect(mapStateToProps, mapDispatchToProps)(DashboardUsers); \ No newline at end of file +export default connect(mapStateToProps, mapDispatchToProps, null, { withRef: true })(DashboardUsers); \ No newline at end of file diff --git a/src/components/dashboard_users/reducer.js b/src/components/dashboard_users/reducer.js index 247c494..e76e0d9 100644 --- a/src/components/dashboard_users/reducer.js +++ b/src/components/dashboard_users/reducer.js @@ -43,6 +43,7 @@ const initialState = { } ] }, + rowModelType: "serverSide", loading: false, rowSelection: "multiple", paginationPageSize: 30, diff --git a/src/utils/api/index.js b/src/utils/api/index.js index 68afd72..aa29917 100644 --- a/src/utils/api/index.js +++ b/src/utils/api/index.js @@ -10,4 +10,115 @@ export function _getAuthUser() { return new Promise((res, rej) => { setTimeout(() => res(authUser), 100) }) -} \ No newline at end of file +} + +function ServerSideDatasource(fakeServer) { + this.fakeServer = fakeServer; +} + +ServerSideDatasource.prototype.getRows = function(params) { + console.log('ServerSideDatasource.getRows: params = ', params); + + var request = params.request; + + // if we are on the top level, then group keys will be [], + // if we are on the second level, then group keys will be like ['United States'] + var groupKeys = request.groupKeys; + var doingTopLevel = groupKeys.length === 0; + + if (doingTopLevel) { + this.fakeServer.getTopLevelCountryList(successCallback, request); + } else { + var country = request.groupKeys[0]; + this.fakeServer.getCountryDetails(successCallback, country, request); + } + + function successCallback(resultForGrid, lastRow) { + params.successCallback(resultForGrid, lastRow); + } +}; + +function FakeServer(allData){ + console.log(this); + this.initData(allData); +} + +FakeServer.prototype.initData = function(allData) { + var topLevelCountryGroups = []; + + this.topLevelCountryGroups = allData; + + this.topLevelCountryGroups.sort(function(a,b) { return a.country < b.country ? -1 : 1; }); +}; + +FakeServer.prototype.sortList = function(data, sortModel) { + var sortPresent = sortModel && sortModel.length > 0; + if (!sortPresent) { + return data; + } + // do an in memory sort of the data, across all the fields + var resultOfSort = data.slice(); + resultOfSort.sort(function(a,b) { + for (var k = 0; k valueB) { + return sortDirection; + } else { + return sortDirection * -1; + } + } + // no filters found a difference + return 0; + }); + return resultOfSort; +}; + +// when looking for the top list, always return back the full list of countries +FakeServer.prototype.getTopLevelCountryList = function(callback, request) { + + var lastRow = this.getLastRowResult(this.topLevelCountryGroups, request); + var rowData = this.getBlockFromResult(this.topLevelCountryGroups, request); + + // put the response into a timeout, so it looks like an async call from a server + setTimeout( function() { + callback(rowData, lastRow); + }, 1000); +}; + +FakeServer.prototype.getCountryDetails = function(callback, country, request) { + + var countryDetails = this.bottomLevelCountryDetails[country]; + + var countryDetailsSorted = this.sortList(countryDetails, request.sortModel); + + var lastRow = this.getLastRowResult(countryDetailsSorted, request); + var rowData = this.getBlockFromResult(countryDetailsSorted, request); + + // put the response into a timeout, so it looks like an async call from a server + setTimeout( function() { + callback(rowData, lastRow); + }, 1000); +}; + +FakeServer.prototype.getBlockFromResult = function(data, request) { + return data.slice(request.startRow, request.endRow); +}; + +FakeServer.prototype.getLastRowResult = function(result, request) { + // we mimic finding the last row. if the request exceeds the length of the + // list, then we assume the last row is found. this would be similar to hitting + // a database, where we have gone past the last row. + var lastRowFound = (result.length <= request.endRow); + var lastRow = lastRowFound ? result.length : null; + return lastRow; +}; + +var fakeserverInstance = new FakeServer(users); +export const dataSource = new ServerSideDatasource(fakeserverInstance); \ No newline at end of file -- GitLab From 971caf3001cdd258da6a29615afa7e60b24a9244 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Wed, 17 Oct 2018 17:53:08 +0300 Subject: [PATCH 091/249] minor chnage --- src/components/dashboard_users/css/index.css | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/components/dashboard_users/css/index.css b/src/components/dashboard_users/css/index.css index cd82966..4bae0b0 100644 --- a/src/components/dashboard_users/css/index.css +++ b/src/components/dashboard_users/css/index.css @@ -50,4 +50,7 @@ .grouping-options.visible-grouping-options { display: block; +} +.ag-theme-material .ag-icon-checkbox-checked:empty { + filter: invert(50%); } \ No newline at end of file -- GitLab From 462648818ba2c52d60fbbc6c50dd5e9f44e73aaf Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Thu, 18 Oct 2018 10:22:47 +0300 Subject: [PATCH 092/249] maintenance and polishing --- .../dashboard_users/grouping/index.js | 4 ++ src/components/dashboard_users/index.js | 42 ------------------- src/components/intro/index.js | 13 ------ src/components/sidebar/side_nav/index.js | 38 +++++++---------- src/routing/index.js | 5 --- src/utils/api/index.js | 4 +- 6 files changed, 19 insertions(+), 87 deletions(-) delete mode 100644 src/components/intro/index.js diff --git a/src/components/dashboard_users/grouping/index.js b/src/components/dashboard_users/grouping/index.js index 9596a84..4837c50 100644 --- a/src/components/dashboard_users/grouping/index.js +++ b/src/components/dashboard_users/grouping/index.js @@ -5,6 +5,10 @@ import ListItemText from '@material-ui/core/ListItemText'; import Checkbox from '@material-ui/core/Checkbox'; import * as PropTypes from 'prop-types'; +// the component was meant to be used as custom grouping with AG-Grid Community version +// as we switched to AG-Grid Enterprise version, the component is obsolete +// it can be used in case a revert to AG-Community Community + const Grouping = (props) => { /** diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 8784db2..bb99bd4 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -4,7 +4,6 @@ import "ag-grid-enterprise"; import { connect } from 'react-redux'; import { bindActionCreators } from 'redux'; import Spinner from './../shared/ui/spinner'; -// import Grouping from './grouping'; import PageSize from './page_size'; import Paging from './paging/paging'; @@ -19,14 +18,7 @@ import "./../../../node_modules/ag-grid-community/dist/styles/ag-theme-material. class DashboardUsers extends Component { - /** - * { groupingBarVisible } is a bool, related to - * wheather or not the right sidebar containing - * the show hide capability of table columns - * is available for the user - */ state = { - // groupingBarVisible: false, isDisableLast: false, isDisableFirst: false, totalPageNumber: null, @@ -85,33 +77,6 @@ class DashboardUsers extends Component { }); }; - /** - * { showHideColumns } AG-Grid grouping community version extension - * { this.columnApi.setColumnVisible } is a AG-Grid API method - * taking coldef ID and bool as an argument and respectfully - * shows or hides the target column - */ - // showHideColumns = (e) => { - // const { id, checked } = e.target; - - // if(checked !== undefined) { - // this.columnApi.setColumnVisible(id, checked); - // this.props.dashboardGroupingUpdate(id, checked); - // } - // }; - - /** - * { toggleGroupingBar } is a function managing component state groupingBarVisible flag - * given its true or false value, the Right Sidebar is visble or hidden - */ - // toggleGroupingBar = (e) => { - // e.preventDefault() - - // this.setState((prevState) => ({ - // groupingBarVisible: !prevState.groupingBarVisible - // })) - // }; - onPaginationChanged = () => { if (this.gridApi) { @@ -228,13 +193,6 @@ class DashboardUsers extends Component { rowModelType={rowModelType} /> - {/* */} - -

Intro lives here

- - ) - } -} - -export default Intro; \ No newline at end of file diff --git a/src/components/sidebar/side_nav/index.js b/src/components/sidebar/side_nav/index.js index 5aa08e4..dd2c1b1 100644 --- a/src/components/sidebar/side_nav/index.js +++ b/src/components/sidebar/side_nav/index.js @@ -4,34 +4,24 @@ import MenuItem from '@material-ui/core/MenuItem'; import ListItemIcon from '@material-ui/core/ListItemIcon'; import ListItemText from '@material-ui/core/ListItemText'; import InboxIcon from '@material-ui/icons/MoveToInbox'; -import DraftsIcon from '@material-ui/icons/Drafts'; import logo from './svg/logo.svg'; export const SideNav = (props) => { return ( - -
- logo -
Admin Console
-
- - - - - - - - - - - - - - - - -
- + +
+ logo +
Admin Console
+
+ + + + + + + + +
) } \ No newline at end of file diff --git a/src/routing/index.js b/src/routing/index.js index 72219cc..fc6e822 100644 --- a/src/routing/index.js +++ b/src/routing/index.js @@ -6,7 +6,6 @@ import asyncComponent from './../hoc/async-component/async-component'; * Component inclusion using hoc function * the returned component is used at { routesArray } */ -const AsyncIntro = asyncComponent(() => import ('./../components/intro')); const AsyncDashboard = asyncComponent(() => import ('./../components/dashboard_users')); const AsyncEditUser = asyncComponent(() => import ('./../components/dashboard_users/edit_user')); @@ -24,10 +23,6 @@ export const routesArray = [ { 'exact': true, 'path': '/', - 'mainComponent': (props) => - }, - { - 'path': '/user-dashboard', 'mainComponent': (props) => }, { diff --git a/src/utils/api/index.js b/src/utils/api/index.js index aa29917..35e0df4 100644 --- a/src/utils/api/index.js +++ b/src/utils/api/index.js @@ -44,8 +44,6 @@ function FakeServer(allData){ } FakeServer.prototype.initData = function(allData) { - var topLevelCountryGroups = []; - this.topLevelCountryGroups = allData; this.topLevelCountryGroups.sort(function(a,b) { return a.country < b.country ? -1 : 1; }); @@ -64,7 +62,7 @@ FakeServer.prototype.sortList = function(data, sortModel) { var valueA = a[sortColModel.colId]; var valueB = b[sortColModel.colId]; // this filter didn't find a difference, move onto the next one - if (valueA==valueB) { + if (valueA===valueB) { continue; } var sortDirection = sortColModel.sort === 'asc' ? 1 : -1; -- GitLab From 755ec165c7b829d343b0c4d3034b76659f269b6c Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Thu, 18 Oct 2018 12:46:10 +0300 Subject: [PATCH 093/249] added server side model supporting sorting and custom pagination update --- src/components/dashboard_users/index.js | 6 +++--- src/utils/api/index.js | 24 ++++++++++++------------ 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index bb99bd4..93a49ad 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -82,7 +82,8 @@ class DashboardUsers extends Component { if (this.gridApi) { this.setLastButtonDisabled(this.gridApi.paginationGetTotalPages(), this.gridApi.paginationGetCurrentPage()); this.setState({ - currentPageNumber: this.gridApi.paginationGetCurrentPage() + currentPageNumber: this.gridApi.paginationGetCurrentPage(), + totalPageNumber: Number(this.gridApi.paginationGetTotalPages()) }) } }; @@ -183,8 +184,7 @@ class DashboardUsers extends Component { reduxStore={this.context.store} rowSelection={rowSelection} columnDefs={coldef} - // rowData={users} - debug={true} + debug={false} onCellClicked={this.onCellClicked} onGridReady={this.onGridReady} sideBar={sideBar} diff --git a/src/utils/api/index.js b/src/utils/api/index.js index 35e0df4..a85b849 100644 --- a/src/utils/api/index.js +++ b/src/utils/api/index.js @@ -14,6 +14,7 @@ export function _getAuthUser() { function ServerSideDatasource(fakeServer) { this.fakeServer = fakeServer; + } ServerSideDatasource.prototype.getRows = function(params) { @@ -26,12 +27,7 @@ ServerSideDatasource.prototype.getRows = function(params) { var groupKeys = request.groupKeys; var doingTopLevel = groupKeys.length === 0; - if (doingTopLevel) { - this.fakeServer.getTopLevelCountryList(successCallback, request); - } else { - var country = request.groupKeys[0]; - this.fakeServer.getCountryDetails(successCallback, country, request); - } + this.fakeServer.getTopLevelCountryList(successCallback, request); function successCallback(resultForGrid, lastRow) { params.successCallback(resultForGrid, lastRow); @@ -39,19 +35,20 @@ ServerSideDatasource.prototype.getRows = function(params) { }; function FakeServer(allData){ - console.log(this); this.initData(allData); } FakeServer.prototype.initData = function(allData) { - this.topLevelCountryGroups = allData; + this.usersData = allData; - this.topLevelCountryGroups.sort(function(a,b) { return a.country < b.country ? -1 : 1; }); + this.usersData.sort(function(a,b) { return a.accountId < b.accountId ? -1 : 1; }); }; FakeServer.prototype.sortList = function(data, sortModel) { var sortPresent = sortModel && sortModel.length > 0; + if (!sortPresent) { + return data; } // do an in memory sort of the data, across all the fields @@ -81,8 +78,12 @@ FakeServer.prototype.sortList = function(data, sortModel) { // when looking for the top list, always return back the full list of countries FakeServer.prototype.getTopLevelCountryList = function(callback, request) { - var lastRow = this.getLastRowResult(this.topLevelCountryGroups, request); - var rowData = this.getBlockFromResult(this.topLevelCountryGroups, request); + var sortModel = request.sortModel; + + var lastRow = this.getLastRowResult(this.usersData, request); + var rowData = this.getBlockFromResult(this.usersData, request); + + rowData = this.sortList(rowData, sortModel); // put the response into a timeout, so it looks like an async call from a server setTimeout( function() { @@ -91,7 +92,6 @@ FakeServer.prototype.getTopLevelCountryList = function(callback, request) { }; FakeServer.prototype.getCountryDetails = function(callback, country, request) { - var countryDetails = this.bottomLevelCountryDetails[country]; var countryDetailsSorted = this.sortList(countryDetails, request.sortModel); -- GitLab From d1a6b2fae26c5714e57adae7054eecfafbc7edd7 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Thu, 18 Oct 2018 14:54:36 +0300 Subject: [PATCH 094/249] NY-3874 --- src/components/dashboard_users/css/index.css | 7 +++ src/components/dashboard_users/index.js | 45 +++---------------- .../dashboard_users/paging/paging.js | 37 ++++++++++----- src/components/dashboard_users/reducer.js | 4 +- src/utils/localstorage/configure_persist.js | 2 +- 5 files changed, 42 insertions(+), 53 deletions(-) diff --git a/src/components/dashboard_users/css/index.css b/src/components/dashboard_users/css/index.css index 4bae0b0..b4a9978 100644 --- a/src/components/dashboard_users/css/index.css +++ b/src/components/dashboard_users/css/index.css @@ -53,4 +53,11 @@ } .ag-theme-material .ag-icon-checkbox-checked:empty { filter: invert(50%); +} +.ag-theme-material div.ag-header-cell-resize { + height: 80%; + top: 50%; + + border-left: solid 1px #ccc; + transform: translate(0, -50%); } \ No newline at end of file diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 93a49ad..916033c 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -78,11 +78,10 @@ class DashboardUsers extends Component { }; onPaginationChanged = () => { - if (this.gridApi) { this.setLastButtonDisabled(this.gridApi.paginationGetTotalPages(), this.gridApi.paginationGetCurrentPage()); this.setState({ - currentPageNumber: this.gridApi.paginationGetCurrentPage(), + currentPageNumber: Number(this.gridApi.paginationGetCurrentPage()), totalPageNumber: Number(this.gridApi.paginationGetTotalPages()) }) } @@ -113,31 +112,8 @@ class DashboardUsers extends Component { }; - onFirst =() => { - this.gridApi.paginationGoToFirstPage(); - }; - - onLast =() => { - this.gridApi.paginationGoToLastPage(); - }; - - onNext =() => { - this.gridApi.paginationGoToNextPage(); - }; - - onPrevious =() => { - this.gridApi.paginationGoToPreviousPage(); - }; - - onPaging = (index) => { - this.gridApi.paginationGoToPage(index); - }; - - onLastPage = () => { - this.gridApi.paginationGoToPage(this.gridApi.paginationGetTotalPages()); - }; - render() { + /** * @const {array} users * @const {array} coldef @@ -169,11 +145,11 @@ class DashboardUsers extends Component { onPageSizeChanged={this.onPageSizeChanged} paginationPageSize={paginationPageSize} /> + - - { content } + return { content } - - ) } }; diff --git a/src/components/dashboard_users/paging/paging.js b/src/components/dashboard_users/paging/paging.js index ba03f67..f57fb52 100644 --- a/src/components/dashboard_users/paging/paging.js +++ b/src/components/dashboard_users/paging/paging.js @@ -4,6 +4,30 @@ import './paging.css'; const Paging = (props) => { + const onFirst = () => { + gridApi.paginationGoToFirstPage(); + }; + + const onLast = () => { + gridApi.paginationGoToLastPage(); + }; + + const onNext = () => { + gridApi.paginationGoToNextPage(); + }; + + const onPrevious = () => { + gridApi.paginationGoToPreviousPage(); + }; + + const onPaging = (index) => { + gridApi.paginationGoToPage(index); + }; + + const onLastPage = () => { + gridApi.paginationGoToPage(gridApi.paginationGetTotalPages()); + }; + /** * @const {number} currentPageNumber * @const {number} totalPageNumber @@ -19,7 +43,7 @@ const Paging = (props) => { * @const {func} onLast */ - const { paginationPageSize, users, currentPageNumber, totalPageNumber, isDisableFirst, isDisableLast, onPaging, onFirst, onPrevious, onLastPage, onNext, onLast } = props; + const { paginationPageSize, users, currentPageNumber, totalPageNumber, isDisableFirst, isDisableLast, gridApi } = props; let pagingContent = []; let rangeDots = null; @@ -32,6 +56,7 @@ const Paging = (props) => { if (currentPageNumber + index < totalPageNumber) { pagingContent.push(pagingControls); + } } @@ -42,8 +67,6 @@ const Paging = (props) => { } - - return (
@@ -75,13 +98,7 @@ Paging.propTypes = { totalPageNumber: PropTypes.number, paginationPageSize: PropTypes.number.isRequired, isDisableFirst: PropTypes.bool.isRequired, - isDisableLast: PropTypes.bool.isRequired, - onPaging: PropTypes.func.isRequired, - onFirst: PropTypes.func.isRequired, - onPrevious: PropTypes.func.isRequired, - onLastPage: PropTypes.func.isRequired, - onNext: PropTypes.func.isRequired, - onLast: PropTypes.func.isRequired + isDisableLast: PropTypes.bool.isRequired }; export default Paging; \ No newline at end of file diff --git a/src/components/dashboard_users/reducer.js b/src/components/dashboard_users/reducer.js index e76e0d9..ed7136a 100644 --- a/src/components/dashboard_users/reducer.js +++ b/src/components/dashboard_users/reducer.js @@ -45,7 +45,7 @@ const initialState = { }, rowModelType: "serverSide", loading: false, - rowSelection: "multiple", + rowSelection: "single", paginationPageSize: 30, selectOptions: [10, 20, 30, 50, 100] }; @@ -92,7 +92,7 @@ const updateUserCategoryX = (state, action) => { } const dashboardGroupingUpdate = (state, action) => { - + const {field, hide} = action; const colIndex = state.coldef.findIndex(item => item.field === field); diff --git a/src/utils/localstorage/configure_persist.js b/src/utils/localstorage/configure_persist.js index 0a3cb20..b2334e6 100644 --- a/src/utils/localstorage/configure_persist.js +++ b/src/utils/localstorage/configure_persist.js @@ -11,7 +11,7 @@ const persistConfig = { export const usersPersistConfig = { key: "users", storage: storage, - blacklist: ["usersData"] + blacklist: ["usersData", "coldef"] }; export default persistConfig; \ No newline at end of file -- GitLab From 42bcc0956b7f25f8846928f0dce695470a183ac6 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Thu, 18 Oct 2018 15:17:39 +0300 Subject: [PATCH 095/249] ag-grid custom pagination update --- src/components/dashboard_users/paging/paging.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/components/dashboard_users/paging/paging.js b/src/components/dashboard_users/paging/paging.js index f57fb52..f0f5f7c 100644 --- a/src/components/dashboard_users/paging/paging.js +++ b/src/components/dashboard_users/paging/paging.js @@ -47,12 +47,16 @@ const Paging = (props) => { let pagingContent = []; let rangeDots = null; - + let pagingControls; if (currentPageNumber + 2 <= totalPageNumber) { for (let index = 1; index < 4; index++) { - - const pagingControls = ; + + if (currentPageNumber === 0) { + pagingControls = ; + } else { + pagingControls = ; + } if (currentPageNumber + index < totalPageNumber) { pagingContent.push(pagingControls); -- GitLab From 6d4f2488e10844883e09e639c14c56510e73ee81 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Thu, 18 Oct 2018 16:32:07 +0300 Subject: [PATCH 096/249] Minor changes --- .../dashboard_users/paging/paging.js | 44 +++++++------------ 1 file changed, 17 insertions(+), 27 deletions(-) diff --git a/src/components/dashboard_users/paging/paging.js b/src/components/dashboard_users/paging/paging.js index f0f5f7c..8c3e28d 100644 --- a/src/components/dashboard_users/paging/paging.js +++ b/src/components/dashboard_users/paging/paging.js @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { Fragment } from 'react'; import PropTypes from "prop-types"; import './paging.css'; @@ -28,61 +28,50 @@ const Paging = (props) => { gridApi.paginationGoToPage(gridApi.paginationGetTotalPages()); }; - /** + /** + * @const {object} gridApi * @const {number} currentPageNumber * @const {number} totalPageNumber * @const {number} paginationPageSize * @const {number} users * @const {bool} isDisableFirst * @const {bool} isDisableLast - * @const {func} onPaging - * @const {func} onFirst - * @const {func} onPrevious - * @const {func} onLastPage - * @const {func} onNext - * @const {func} onLast */ - const { paginationPageSize, users, currentPageNumber, totalPageNumber, isDisableFirst, isDisableLast, gridApi } = props; + const { gridApi, paginationPageSize, users, currentPageNumber, totalPageNumber, isDisableFirst, isDisableLast } = props; + + let pagingContent = [], rangeDots = null, pagingBtn = null; - let pagingContent = []; - let rangeDots = null; - let pagingControls; if (currentPageNumber + 2 <= totalPageNumber) { for (let index = 1; index < 4; index++) { - + if (currentPageNumber === 0) { - pagingControls = ; + pagingBtn = ; } else { - pagingControls = ; + pagingBtn = ; } - if (currentPageNumber + index < totalPageNumber) { - pagingContent.push(pagingControls); - + if (currentPageNumber + index <= totalPageNumber) { + pagingContent.push(pagingBtn); } } - if (totalPageNumber > 5) { - rangeDots = ...; - } - + if (totalPageNumber > 5) { rangeDots = ...; } } return ( -
+
-

Rows {paginationPageSize} of {users}

{pagingContent} - {rangeDots} + { totalPageNumber ? @@ -91,13 +80,14 @@ const Paging = (props) => { -
-
+ + ) } Paging.propTypes = { + gridApi: PropTypes.object, currentPageNumber: PropTypes.number.isRequired, totalPageNumber: PropTypes.number, paginationPageSize: PropTypes.number.isRequired, -- GitLab From 9e962d0e0dea6771d4605c403d0d93d487d834bd Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Thu, 18 Oct 2018 17:37:11 +0300 Subject: [PATCH 097/249] server side model mimicking sorting and filtering --- src/utils/api/index.js | 70 +++++++++++++++++++++++++++++------------- 1 file changed, 48 insertions(+), 22 deletions(-) diff --git a/src/utils/api/index.js b/src/utils/api/index.js index a85b849..01536f3 100644 --- a/src/utils/api/index.js +++ b/src/utils/api/index.js @@ -17,20 +17,34 @@ function ServerSideDatasource(fakeServer) { } +/** + * @param {object} params + * this one comes from ag-grid API + */ ServerSideDatasource.prototype.getRows = function(params) { console.log('ServerSideDatasource.getRows: params = ', params); + // the request is passed dynamically from ag-grid var request = params.request; - // if we are on the top level, then group keys will be [], - // if we are on the second level, then group keys will be like ['United States'] - var groupKeys = request.groupKeys; - var doingTopLevel = groupKeys.length === 0; - - this.fakeServer.getTopLevelCountryList(successCallback, request); - + /** + * @param {func} successCallback + * @param {object} request + * the request created by ag-grid is passed to an endpoint + * on success call params.successCallback(resultForGrid, lastRow); + * params.successCallback is an ag-grid method + */ + this.fakeServer.getUsersData(successCallback, request); + // console.log("request", request) + + /** + * @param {array} resultForGrid + * @param {number} lastRow + */ function successCallback(resultForGrid, lastRow) { params.successCallback(resultForGrid, lastRow); + console.log("resultForGrid", resultForGrid) + console.log("lastRow", lastRow) } }; @@ -76,32 +90,23 @@ FakeServer.prototype.sortList = function(data, sortModel) { }; // when looking for the top list, always return back the full list of countries -FakeServer.prototype.getTopLevelCountryList = function(callback, request) { +FakeServer.prototype.getUsersData = function(callback, request) { var sortModel = request.sortModel; + var filterModel = request.filterModel; var lastRow = this.getLastRowResult(this.usersData, request); var rowData = this.getBlockFromResult(this.usersData, request); rowData = this.sortList(rowData, sortModel); + rowData = this.filterList(rowData, filterModel); - // put the response into a timeout, so it looks like an async call from a server - setTimeout( function() { - callback(rowData, lastRow); - }, 1000); -}; - -FakeServer.prototype.getCountryDetails = function(callback, country, request) { - var countryDetails = this.bottomLevelCountryDetails[country]; - - var countryDetailsSorted = this.sortList(countryDetails, request.sortModel); - - var lastRow = this.getLastRowResult(countryDetailsSorted, request); - var rowData = this.getBlockFromResult(countryDetailsSorted, request); + // only return back the rows that the user asked for + rowData = rowData.slice(request.startRow, request.endRow); // put the response into a timeout, so it looks like an async call from a server setTimeout( function() { - callback(rowData, lastRow); + callback(rowData, lastRow); }, 1000); }; @@ -118,5 +123,26 @@ FakeServer.prototype.getLastRowResult = function(result, request) { return lastRow; }; +FakeServer.prototype.filterList = function(data, filterModel) { + var filterPresent = filterModel && Object.keys(filterModel).length > 0; + if (!filterPresent) { + return data; + } + var resultOfFilter = []; + for (var i = 0; i=0) { + resultOfFilter.push(item); + } + } + + } + // console.log(resultOfFilter) + return resultOfFilter; +}; + var fakeserverInstance = new FakeServer(users); export const dataSource = new ServerSideDatasource(fakeserverInstance); \ No newline at end of file -- GitLab From 10dc39b6d009992e07afb6e1c27894dfa91bf2ea Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Fri, 19 Oct 2018 11:27:07 +0300 Subject: [PATCH 098/249] fake server data slice communication update --- src/utils/api/index.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/utils/api/index.js b/src/utils/api/index.js index 01536f3..d26671b 100644 --- a/src/utils/api/index.js +++ b/src/utils/api/index.js @@ -26,6 +26,7 @@ ServerSideDatasource.prototype.getRows = function(params) { // the request is passed dynamically from ag-grid var request = params.request; + console.log('request', request); /** * @param {func} successCallback @@ -101,9 +102,6 @@ FakeServer.prototype.getUsersData = function(callback, request) { rowData = this.sortList(rowData, sortModel); rowData = this.filterList(rowData, filterModel); - // only return back the rows that the user asked for - rowData = rowData.slice(request.startRow, request.endRow); - // put the response into a timeout, so it looks like an async call from a server setTimeout( function() { callback(rowData, lastRow); @@ -111,7 +109,9 @@ FakeServer.prototype.getUsersData = function(callback, request) { }; FakeServer.prototype.getBlockFromResult = function(data, request) { + debugger return data.slice(request.startRow, request.endRow); + }; FakeServer.prototype.getLastRowResult = function(result, request) { -- GitLab From 6c9841d539f3f239d0fd9178874d6d0a3a0bb8df Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Fri, 19 Oct 2018 11:29:11 +0300 Subject: [PATCH 099/249] debugger removed --- src/utils/api/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/api/index.js b/src/utils/api/index.js index d26671b..870bbf5 100644 --- a/src/utils/api/index.js +++ b/src/utils/api/index.js @@ -109,7 +109,7 @@ FakeServer.prototype.getUsersData = function(callback, request) { }; FakeServer.prototype.getBlockFromResult = function(data, request) { - debugger + return data.slice(request.startRow, request.endRow); }; -- GitLab From e5bd0ec7ca1717b267a008c86216dfb6ae058977 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Fri, 19 Oct 2018 13:27:04 +0300 Subject: [PATCH 100/249] early stage of ui improvement for server side filtering --- src/components/dashboard_users/index.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 916033c..2994181 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -41,6 +41,22 @@ class DashboardUsers extends Component { this.gridApi = params.api; this.columnApi = params.columnApi; this.gridApi.setServerSideDatasource(dataSource); + + // early stage of server side filtering on the client side + // this.gridApi.addEventListener('filterChanged', () => { + // this.gridApi.addEventListener('paginationChanged', () => { + // let currentModel = this.gridApi.getModel(); + // let rowNodes = currentModel.rowNodeBlockLoader.blocks[0].rowNodes; + // let counter = 0; + // for (let i = 0; i < rowNodes.length; i++){ + // if (rowNodes[i].data !== undefined) { + // counter++ + // } + // } + // this.gridApi.paginationSetPageSize(counter); + // }) + // }) + this.setState({ totalPageNumber: Number(this.gridApi.paginationGetTotalPages()) }); -- GitLab From 12c9e1a03f4389a092e9871420e58959172d07e7 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Fri, 19 Oct 2018 16:54:09 +0300 Subject: [PATCH 101/249] pagination fixed dots and double paging numbers --- .../dashboard_users/paging/paging.js | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/components/dashboard_users/paging/paging.js b/src/components/dashboard_users/paging/paging.js index 8c3e28d..3b74ade 100644 --- a/src/components/dashboard_users/paging/paging.js +++ b/src/components/dashboard_users/paging/paging.js @@ -47,9 +47,19 @@ const Paging = (props) => { for (let index = 1; index < 4; index++) { if (currentPageNumber === 0) { - pagingBtn = ; + pagingBtn = ; + } else { - pagingBtn = ; + pagingBtn = ; } if (currentPageNumber + index <= totalPageNumber) { @@ -58,7 +68,9 @@ const Paging = (props) => { } - if (totalPageNumber > 5) { rangeDots = ...; } + if (totalPageNumber > 5 && currentPageNumber + 1 < totalPageNumber - 3) { + rangeDots = ...; + } } return ( @@ -73,7 +85,7 @@ const Paging = (props) => { {rangeDots} { - totalPageNumber + totalPageNumber && (totalPageNumber > 5 || currentPageNumber + 1 === totalPageNumber) ? : null } -- GitLab From f402694668b53030415772da135ff96f7c429bcb Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Tue, 23 Oct 2018 15:54:00 +0300 Subject: [PATCH 102/249] NY-4671 getting total number of records from server side model --- src/components/dashboard_users/index.js | 20 +++++++++++++++---- .../dashboard_users/paging/paging.js | 6 +++--- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 2994181..2ae908c 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -22,7 +22,8 @@ class DashboardUsers extends Component { isDisableLast: false, isDisableFirst: false, totalPageNumber: null, - currentPageNumber: 0 + currentPageNumber: 0, + totalRowsNumber: 0 } /** @@ -79,13 +80,23 @@ class DashboardUsers extends Component { paginationNumberFormatter = (params) => `[ ${params.value.toLocaleString()} ]`; + onComponentStateChanged = () => { + let currentRowsNumber = this.gridApi.getDisplayedRowCount(); + + if(currentRowsNumber !== this.state.totalRowsNumber){ + + this.setState({ + totalRowsNumber: currentRowsNumber + }); + } + } + /** * { onPageSizeChanged } relates to the * total number of row entries visible for the user */ onPageSizeChanged = (e) => { const value = e.target.value; - this.gridApi.paginationSetPageSize(Number(value)); this.props.PageSizeUpdate(Number(value)); this.setState({ @@ -144,7 +155,7 @@ class DashboardUsers extends Component { * @const {number} currentPageNumber */ const { users, coldef, loading, rowSelection, paginationPageSize, selectOptions, sideBar, rowModelType } = this.props; - const { isDisableFirst, isDisableLast, totalPageNumber, currentPageNumber } = this.state; + const { isDisableFirst, isDisableLast, totalPageNumber, currentPageNumber, totalRowsNumber } = this.state; let content = null; @@ -170,6 +181,7 @@ class DashboardUsers extends Component { pagination={true} suppressPaginationPanel={true} onPaginationChanged={this.onPaginationChanged} + onComponentStateChanged={this.onComponentStateChanged} paginationPageSize={paginationPageSize} paginationNumberFormatter={this.paginationNumberFormatter} reactNext={true} @@ -192,7 +204,7 @@ class DashboardUsers extends Component { totalPageNumber={totalPageNumber} currentPageNumber={currentPageNumber} paginationPageSize={paginationPageSize} - users={users.length} + totalRowsNumber={totalRowsNumber} />
diff --git a/src/components/dashboard_users/paging/paging.js b/src/components/dashboard_users/paging/paging.js index 3b74ade..8a7f674 100644 --- a/src/components/dashboard_users/paging/paging.js +++ b/src/components/dashboard_users/paging/paging.js @@ -33,12 +33,12 @@ const Paging = (props) => { * @const {number} currentPageNumber * @const {number} totalPageNumber * @const {number} paginationPageSize - * @const {number} users + * @const {number} totalRowsNumber * @const {bool} isDisableFirst * @const {bool} isDisableLast */ - const { gridApi, paginationPageSize, users, currentPageNumber, totalPageNumber, isDisableFirst, isDisableLast } = props; + const { gridApi, paginationPageSize, totalRowsNumber, currentPageNumber, totalPageNumber, isDisableFirst, isDisableLast } = props; let pagingContent = [], rangeDots = null, pagingBtn = null; @@ -77,7 +77,7 @@ const Paging = (props) => {
-

Rows {paginationPageSize} of {users}

+

Rows {paginationPageSize} of {totalRowsNumber}

-- GitLab From afd4507e1ef4341905e9f1f83f1d13e7aefa0115 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Tue, 23 Oct 2018 18:43:31 +0300 Subject: [PATCH 103/249] Pagination modifications --- src/components/dashboard_users/index.js | 27 ++++++++++++------- .../dashboard_users/page_size/index.js | 17 ++++++------ 2 files changed, 25 insertions(+), 19 deletions(-) diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 2ae908c..dc653cd 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -35,6 +35,14 @@ class DashboardUsers extends Component { this.props.getUsers(); }; + // shouldComponentUpdate(nextProps, nextState) { + // if (this.state !== nextState && nextProps !== this.props) { + // return true + // } else { + // return false + // } + // } + /** * AG-Grid API communication init */ @@ -58,9 +66,9 @@ class DashboardUsers extends Component { // }) // }) - this.setState({ - totalPageNumber: Number(this.gridApi.paginationGetTotalPages()) - }); + // this.setState({ + // totalPageNumber: Number(this.gridApi.paginationGetTotalPages()) + // }); }; /** @@ -82,9 +90,9 @@ class DashboardUsers extends Component { onComponentStateChanged = () => { let currentRowsNumber = this.gridApi.getDisplayedRowCount(); - + if(currentRowsNumber !== this.state.totalRowsNumber){ - + this.setState({ totalRowsNumber: currentRowsNumber }); @@ -99,9 +107,9 @@ class DashboardUsers extends Component { const value = e.target.value; this.gridApi.paginationSetPageSize(Number(value)); this.props.PageSizeUpdate(Number(value)); - this.setState({ - totalPageNumber: Number(this.gridApi.paginationGetTotalPages()) - }); + // this.setState({ + // totalPageNumber: Number(this.gridApi.paginationGetTotalPages()) + // }); }; onPaginationChanged = () => { @@ -158,7 +166,6 @@ class DashboardUsers extends Component { const { isDisableFirst, isDisableLast, totalPageNumber, currentPageNumber, totalRowsNumber } = this.state; let content = null; - if (users.length === 0 && loading) { content = @@ -181,7 +188,7 @@ class DashboardUsers extends Component { pagination={true} suppressPaginationPanel={true} onPaginationChanged={this.onPaginationChanged} - onComponentStateChanged={this.onComponentStateChanged} + onComponentStateChanged={this.onComponentStateChanged} paginationPageSize={paginationPageSize} paginationNumberFormatter={this.paginationNumberFormatter} reactNext={true} diff --git a/src/components/dashboard_users/page_size/index.js b/src/components/dashboard_users/page_size/index.js index 1caec21..916ec21 100644 --- a/src/components/dashboard_users/page_size/index.js +++ b/src/components/dashboard_users/page_size/index.js @@ -12,20 +12,19 @@ import './page_size.css'; const { onPageSizeChanged, paginationPageSize, selectOptions } = props; - return ( -
+ return
- entires - -
- ) + entries +
; } PageSize.proptypes = { -- GitLab From 8dfbc5df5fc29146dcde85d80cfcd516652b7917 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Wed, 24 Oct 2018 13:04:12 +0300 Subject: [PATCH 104/249] NY-4692 dashboard state updates checks added and obsolete custom grouping module removed --- src/components/dashboard_users/actions.js | 9 --- .../dashboard_users/grouping/index.js | 68 ------------------- src/components/dashboard_users/index.js | 63 +++++++++++------ src/components/dashboard_users/reducer.js | 20 +----- 4 files changed, 43 insertions(+), 117 deletions(-) delete mode 100644 src/components/dashboard_users/grouping/index.js diff --git a/src/components/dashboard_users/actions.js b/src/components/dashboard_users/actions.js index ae37120..f7d176b 100644 --- a/src/components/dashboard_users/actions.js +++ b/src/components/dashboard_users/actions.js @@ -2,7 +2,6 @@ export const GET_USERS = 'GET_USERS'; export const DELIVER_USERS = 'DELIVER_USERS'; export const FAIL_USERS = 'FAIL_USERS'; export const PAGE_SIZE_UPDATE = 'PAGE_SIZE_UPDATE'; -export const DASHBOARD_GROUPING_UPDATE = 'DASHBOARD_GROUPING_UPDATE'; export function getUsers() { return { @@ -29,12 +28,4 @@ export function deliverUsersPayload(users) { type: DELIVER_USERS, users } -} - -export function dashboardGroupingUpdate(field, checked) { - return { - type: DASHBOARD_GROUPING_UPDATE, - field, - hide: !checked - } } \ No newline at end of file diff --git a/src/components/dashboard_users/grouping/index.js b/src/components/dashboard_users/grouping/index.js deleted file mode 100644 index 4837c50..0000000 --- a/src/components/dashboard_users/grouping/index.js +++ /dev/null @@ -1,68 +0,0 @@ -import React from 'react'; -import List from '@material-ui/core/List'; -import ListItem from '@material-ui/core/ListItem'; -import ListItemText from '@material-ui/core/ListItemText'; -import Checkbox from '@material-ui/core/Checkbox'; -import * as PropTypes from 'prop-types'; - -// the component was meant to be used as custom grouping with AG-Grid Community version -// as we switched to AG-Grid Enterprise version, the component is obsolete -// it can be used in case a revert to AG-Community Community - -const Grouping = (props) => { - - /** - * @const {array} coldef - * @const {function} showHideColumns - * @const {function} toggleGroupingBar - * @const {bool} groupingBarVisible - */ - - const {coldef, showHideColumns, toggleGroupingBar, groupingBarVisible} = props; - - return ( - - ) -} - -Grouping.proptypes = { - coldef: PropTypes.array.isRequired, - showHideColumns: PropTypes.func.isRequired, - toggleGroupingBar: PropTypes.func.isRequired, - groupingBarVisible: PropTypes.bool.isRequired -} - -export default Grouping; \ No newline at end of file diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index dc653cd..fda5eb7 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -32,17 +32,9 @@ class DashboardUsers extends Component { * the users from the API */ componentDidMount() { - this.props.getUsers(); + this.props.getUsers(); }; - // shouldComponentUpdate(nextProps, nextState) { - // if (this.state !== nextState && nextProps !== this.props) { - // return true - // } else { - // return false - // } - // } - /** * AG-Grid API communication init */ @@ -51,7 +43,8 @@ class DashboardUsers extends Component { this.columnApi = params.columnApi; this.gridApi.setServerSideDatasource(dataSource); - // early stage of server side filtering on the client side + // early stage of server side model + // presentation filtering on the client side // this.gridApi.addEventListener('filterChanged', () => { // this.gridApi.addEventListener('paginationChanged', () => { // let currentModel = this.gridApi.getModel(); @@ -66,6 +59,7 @@ class DashboardUsers extends Component { // }) // }) + // TODO: remove after server side is completely integrated // this.setState({ // totalPageNumber: Number(this.gridApi.paginationGetTotalPages()) // }); @@ -107,6 +101,7 @@ class DashboardUsers extends Component { const value = e.target.value; this.gridApi.paginationSetPageSize(Number(value)); this.props.PageSizeUpdate(Number(value)); + // TODO: remove after server side model is completely integrated // this.setState({ // totalPageNumber: Number(this.gridApi.paginationGetTotalPages()) // }); @@ -114,38 +109,64 @@ class DashboardUsers extends Component { onPaginationChanged = () => { if (this.gridApi) { - this.setLastButtonDisabled(this.gridApi.paginationGetTotalPages(), this.gridApi.paginationGetCurrentPage()); - this.setState({ - currentPageNumber: Number(this.gridApi.paginationGetCurrentPage()), - totalPageNumber: Number(this.gridApi.paginationGetTotalPages()) - }) + + let getCurrentPageNumber = Number(this.gridApi.paginationGetCurrentPage()); + let getTotalPagesNumber = Number(this.gridApi.paginationGetTotalPages()); + + if (getCurrentPageNumber !== this.state.currentPageNumber || getTotalPagesNumber !== this.state.totalPageNumber) { + this.setLastButtonDisabled(getTotalPagesNumber, getCurrentPageNumber); + } + + if (getCurrentPageNumber !== this.state.currentPageNumber) { + this.setState({ + currentPageNumber: getCurrentPageNumber + }) + } + + if (getTotalPagesNumber !== this.state.totalPageNumber) { + this.setState({ + totalPageNumber: getTotalPagesNumber + }) + } } }; setLastButtonDisabled = (total, current) => { - let isDisableFlagLastPage = false; - let isDisableFlagFirstPage = false; + + let isDisableFlagLastPage = this.state.isDisableLast; + let isDisableFlagFirstPage = this.state.isDisableFirst; switch (current) { case total - 1: isDisableFlagLastPage = true; + isDisableFlagFirstPage = false; + debugger break; case 0: + isDisableFlagLastPage = false; isDisableFlagFirstPage = true; + debugger break; default: break; } - this.setState({ - isDisableLast: isDisableFlagLastPage, - isDisableFirst: isDisableFlagFirstPage - }); + if(this.state.isDisableLast !== isDisableFlagLastPage) { + this.setState({ + isDisableLast: isDisableFlagLastPage + }); + } + if(this.state.isDisableFirst !== isDisableFlagFirstPage) { + this.setState({ + isDisableFirst: isDisableFlagFirstPage + }); + } }; + render() { diff --git a/src/components/dashboard_users/reducer.js b/src/components/dashboard_users/reducer.js index ed7136a..cf2773d 100644 --- a/src/components/dashboard_users/reducer.js +++ b/src/components/dashboard_users/reducer.js @@ -1,4 +1,4 @@ -import { GET_USERS, DELIVER_USERS, PAGE_SIZE_UPDATE, DASHBOARD_GROUPING_UPDATE } from './actions'; +import { GET_USERS, DELIVER_USERS, PAGE_SIZE_UPDATE} from './actions'; import { DELIVER_UPDATE_USER_DATA_CATEGORY_X } from './edit_user/actions'; import { updateObject } from '../../hoc/update-object/update-object'; import userAvatar from '../../utils/services/avatar_insertion'; @@ -91,23 +91,6 @@ const updateUserCategoryX = (state, action) => { } } -const dashboardGroupingUpdate = (state, action) => { - - const {field, hide} = action; - const colIndex = state.coldef.findIndex(item => item.field === field); - - state.coldef[colIndex] = Object.defineProperties(state.coldef[colIndex], { - hide: { - value: hide, - writable: true - } - }) - - return { - ...state - } -} - export default function users(state = initialState, action) { switch(action.type) { @@ -116,7 +99,6 @@ export default function users(state = initialState, action) { case DELIVER_USERS: return deliverUsers(state, action); case PAGE_SIZE_UPDATE: return pageSizeUpdate(state, action); case DELIVER_UPDATE_USER_DATA_CATEGORY_X: return updateUserCategoryX(state, action); - case DASHBOARD_GROUPING_UPDATE: return dashboardGroupingUpdate(state, action); default: return state; } -- GitLab From 1bc17fcece539b86e92b4b7232e66ee4c061c18a Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Wed, 24 Oct 2018 14:32:11 +0300 Subject: [PATCH 105/249] dashboard debuggers removed --- src/components/dashboard_users/index.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index fda5eb7..06f0d5f 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -141,13 +141,11 @@ class DashboardUsers extends Component { case total - 1: isDisableFlagLastPage = true; isDisableFlagFirstPage = false; - debugger break; case 0: isDisableFlagLastPage = false; isDisableFlagFirstPage = true; - debugger break; default: -- GitLab From 23b31319a0d77c4f06c90a0081d5fe714a0d966a Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Wed, 24 Oct 2018 14:43:05 +0300 Subject: [PATCH 106/249] Pagination refactoring --- .../dashboard_users/paging/paging.js | 129 ++++++++++-------- 1 file changed, 69 insertions(+), 60 deletions(-) diff --git a/src/components/dashboard_users/paging/paging.js b/src/components/dashboard_users/paging/paging.js index 8a7f674..4cf3beb 100644 --- a/src/components/dashboard_users/paging/paging.js +++ b/src/components/dashboard_users/paging/paging.js @@ -1,31 +1,54 @@ -import React, { Fragment } from 'react'; +import React, { Component, Fragment } from 'react'; import PropTypes from "prop-types"; import './paging.css'; -const Paging = (props) => { +class Paging extends Component { - const onFirst = () => { - gridApi.paginationGoToFirstPage(); - }; + state = { + pagingElements: [] + } + + static getDerivedStateFromProps = (props, state) => { + + let pagingContent = [], rangeDots = null; + + for (let index = 1; index <= props.totalPageNumber; index++) { + + let button = ( + + + + ) + + pagingContent.push(button); + } - const onLast = () => { - gridApi.paginationGoToLastPage(); + return { pagingElements: pagingContent } + + } + + onFirst = () => { + this.props.gridApi.paginationGoToFirstPage(); }; - const onNext = () => { - gridApi.paginationGoToNextPage(); + onLast = () => { + this.props.gridApi.paginationGoToLastPage(); }; - const onPrevious = () => { - gridApi.paginationGoToPreviousPage(); + onNext = () => { + this.props.gridApi.paginationGoToNextPage(); }; - const onPaging = (index) => { - gridApi.paginationGoToPage(index); + onPrevious = () => { + this.props.gridApi.paginationGoToPreviousPage(); }; - const onLastPage = () => { - gridApi.paginationGoToPage(gridApi.paginationGetTotalPages()); + onPaging = (index) => { + this.props.gridApi.paginationGoToPage(index); }; /** @@ -33,69 +56,55 @@ const Paging = (props) => { * @const {number} currentPageNumber * @const {number} totalPageNumber * @const {number} paginationPageSize - * @const {number} totalRowsNumber + * @const {number} users * @const {bool} isDisableFirst * @const {bool} isDisableLast */ - const { gridApi, paginationPageSize, totalRowsNumber, currentPageNumber, totalPageNumber, isDisableFirst, isDisableLast } = props; + render() { - let pagingContent = [], rangeDots = null, pagingBtn = null; + const { paginationPageSize, isDisableFirst, isDisableLast, totalRowsNumber, currentPageNumber } = this.props; + const { pagingElements } = this.state; - if (currentPageNumber + 2 <= totalPageNumber) { - for (let index = 1; index < 4; index++) { + let buttons = pagingElements.map((item, index) => { - if (currentPageNumber === 0) { - pagingBtn = ; + if (index < 4 || index === currentPageNumber || index === currentPageNumber + 1 || index === currentPageNumber - 1) { - } else { - pagingBtn = ; - } + if (index === 3 && pagingElements.length > 4) { - if (currentPageNumber + index <= totalPageNumber) { - pagingContent.push(pagingBtn); - } + return ( + + {item} + ... + + ) + } - } + return item; + } - if (totalPageNumber > 5 && currentPageNumber + 1 < totalPageNumber - 3) { - rangeDots = ...; - } - } + }) - return ( - + return ( + -
-

Rows {paginationPageSize} of {totalRowsNumber}

- - +
+

Rows {paginationPageSize} of {totalRowsNumber}

- {pagingContent} - {rangeDots} + + - { - totalPageNumber && (totalPageNumber > 5 || currentPageNumber + 1 === totalPageNumber) - ? - : null - } + { buttons } - - -
+ + +
+ +
+ ) + } -
- ) } Paging.propTypes = { -- GitLab From 8c23a4887da91fe8298741ea6094f4b3abe35b46 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Wed, 24 Oct 2018 14:45:19 +0300 Subject: [PATCH 107/249] NY-4692 --- src/components/dashboard_users/index.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 06f0d5f..738329a 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -20,7 +20,7 @@ class DashboardUsers extends Component { state = { isDisableLast: false, - isDisableFirst: false, + isDisableFirst: true, totalPageNumber: null, currentPageNumber: 0, totalRowsNumber: 0 @@ -112,9 +112,12 @@ class DashboardUsers extends Component { let getCurrentPageNumber = Number(this.gridApi.paginationGetCurrentPage()); let getTotalPagesNumber = Number(this.gridApi.paginationGetTotalPages()); - - if (getCurrentPageNumber !== this.state.currentPageNumber || getTotalPagesNumber !== this.state.totalPageNumber) { - this.setLastButtonDisabled(getTotalPagesNumber, getCurrentPageNumber); + let getLastPageFound = this.gridApi.paginationIsLastPageFound(); + + if(getLastPageFound) { + if (getCurrentPageNumber !== this.state.currentPageNumber || getTotalPagesNumber !== this.state.totalPageNumber) { + this.setLastButtonDisabled(getTotalPagesNumber, getCurrentPageNumber); + } } if (getCurrentPageNumber !== this.state.currentPageNumber) { -- GitLab From f9abda6a39bbd38c37644273fa13c0037ce51118 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Wed, 24 Oct 2018 14:53:38 +0300 Subject: [PATCH 108/249] NY-4692 pagination state case update --- src/components/dashboard_users/index.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 738329a..71baad3 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -151,10 +151,21 @@ class DashboardUsers extends Component { isDisableFlagFirstPage = true; break; + case 1: + isDisableFlagLastPage = false; + isDisableFlagFirstPage = false; + break; + default: break; } + if(this.state.isDisableLast !== isDisableFlagLastPage && this.state.isDisableFirst !== isDisableFlagFirstPage) { + this.setState({ + isDisableLast: isDisableFlagLastPage, + isDisableFirst: isDisableFlagFirstPage + }); + } if(this.state.isDisableLast !== isDisableFlagLastPage) { this.setState({ isDisableLast: isDisableFlagLastPage -- GitLab From f2741e6aa803d74304419c8e775026e24cfea5f2 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Wed, 24 Oct 2018 15:19:28 +0300 Subject: [PATCH 109/249] NY-4692 pagination state case, style and switch case logic update --- src/components/dashboard_users/index.js | 20 ++++--------------- .../dashboard_users/paging/paging.css | 4 +++- 2 files changed, 7 insertions(+), 17 deletions(-) diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 71baad3..8b839c0 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -112,12 +112,9 @@ class DashboardUsers extends Component { let getCurrentPageNumber = Number(this.gridApi.paginationGetCurrentPage()); let getTotalPagesNumber = Number(this.gridApi.paginationGetTotalPages()); - let getLastPageFound = this.gridApi.paginationIsLastPageFound(); - - if(getLastPageFound) { - if (getCurrentPageNumber !== this.state.currentPageNumber || getTotalPagesNumber !== this.state.totalPageNumber) { - this.setLastButtonDisabled(getTotalPagesNumber, getCurrentPageNumber); - } + + if (getCurrentPageNumber !== this.state.currentPageNumber || getTotalPagesNumber !== this.state.totalPageNumber) { + this.setLastButtonDisabled(getTotalPagesNumber, getCurrentPageNumber); } if (getCurrentPageNumber !== this.state.currentPageNumber) { @@ -151,21 +148,12 @@ class DashboardUsers extends Component { isDisableFlagFirstPage = true; break; - case 1: + default: isDisableFlagLastPage = false; isDisableFlagFirstPage = false; break; - - default: - break; } - if(this.state.isDisableLast !== isDisableFlagLastPage && this.state.isDisableFirst !== isDisableFlagFirstPage) { - this.setState({ - isDisableLast: isDisableFlagLastPage, - isDisableFirst: isDisableFlagFirstPage - }); - } if(this.state.isDisableLast !== isDisableFlagLastPage) { this.setState({ isDisableLast: isDisableFlagLastPage diff --git a/src/components/dashboard_users/paging/paging.css b/src/components/dashboard_users/paging/paging.css index 1ac8a7d..286b998 100644 --- a/src/components/dashboard_users/paging/paging.css +++ b/src/components/dashboard_users/paging/paging.css @@ -28,9 +28,11 @@ margin: 0 3px; font-size: 20px; } -.paging-control:disabled { +.paging-control:disabled, +.paging-control:disabled:hover { border: none; color: #cfcfcf; + background-color: transparent; } .paging-control.selected, .paging-control:hover { -- GitLab From a666854850129f9e6949ae2d58c4c42b403bff00 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Wed, 24 Oct 2018 15:50:05 +0300 Subject: [PATCH 110/249] NY-4672 --- .../dashboard_users/paging/paging.js | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/src/components/dashboard_users/paging/paging.js b/src/components/dashboard_users/paging/paging.js index 4cf3beb..a05fe3e 100644 --- a/src/components/dashboard_users/paging/paging.js +++ b/src/components/dashboard_users/paging/paging.js @@ -1,6 +1,7 @@ import React, { Component, Fragment } from 'react'; import PropTypes from "prop-types"; import './paging.css'; +import Spinner from '../../shared/ui/spinner'; class Paging extends Component { @@ -10,7 +11,7 @@ class Paging extends Component { static getDerivedStateFromProps = (props, state) => { - let pagingContent = [], rangeDots = null; + let pagingContent = []; for (let index = 1; index <= props.totalPageNumber; index++) { @@ -47,10 +48,6 @@ class Paging extends Component { this.props.gridApi.paginationGoToPreviousPage(); }; - onPaging = (index) => { - this.props.gridApi.paginationGoToPage(index); - }; - /** * @const {object} gridApi * @const {number} currentPageNumber @@ -63,11 +60,10 @@ class Paging extends Component { render() { - const { paginationPageSize, isDisableFirst, isDisableLast, totalRowsNumber, currentPageNumber } = this.props; + const { paginationPageSize, isDisableFirst, isDisableLast, totalRowsNumber, currentPageNumber, totalPageNumber } = this.props; const { pagingElements } = this.state; - - let buttons = pagingElements.map((item, index) => { + let pagingControls = pagingElements.map((item, index) => { if (index < 4 || index === currentPageNumber || index === currentPageNumber + 1 || index === currentPageNumber - 1) { @@ -95,7 +91,17 @@ class Paging extends Component { - { buttons } + { + pagingControls.length === 0 + ? pagingControls + : + } + + { + Number(totalPageNumber) && totalPageNumber > 4 && currentPageNumber + 1 !== totalPageNumber && currentPageNumber + 1 < totalPageNumber - 2 + ? + : null + } -- GitLab From d965010d3f0215a5f5a04fa83fff10912c14de1f Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Wed, 24 Oct 2018 16:08:55 +0300 Subject: [PATCH 111/249] NY-4706 Minor changes --- src/components/dashboard_users/paging/paging.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/dashboard_users/paging/paging.js b/src/components/dashboard_users/paging/paging.js index a05fe3e..b31f73f 100644 --- a/src/components/dashboard_users/paging/paging.js +++ b/src/components/dashboard_users/paging/paging.js @@ -92,7 +92,7 @@ class Paging extends Component { { - pagingControls.length === 0 + pagingControls.length !== 0 ? pagingControls : } -- GitLab From c7549cd8a36355b4782a55b605ebc5b8550a3b8c Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Thu, 25 Oct 2018 11:46:12 +0300 Subject: [PATCH 112/249] NY-4672 mimicking no records were received from the fake server --- src/components/dashboard_users/paging/paging.js | 2 ++ src/utils/api/index.js | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/components/dashboard_users/paging/paging.js b/src/components/dashboard_users/paging/paging.js index b31f73f..ecf0c14 100644 --- a/src/components/dashboard_users/paging/paging.js +++ b/src/components/dashboard_users/paging/paging.js @@ -80,6 +80,8 @@ class Paging extends Component { return item; } + return null; + }) return ( diff --git a/src/utils/api/index.js b/src/utils/api/index.js index 870bbf5..5adfa8c 100644 --- a/src/utils/api/index.js +++ b/src/utils/api/index.js @@ -104,7 +104,7 @@ FakeServer.prototype.getUsersData = function(callback, request) { // put the response into a timeout, so it looks like an async call from a server setTimeout( function() { - callback(rowData, lastRow); + callback(rowData, 0); // second param mimicks that now rows were received mimicking that no rows were received }, 1000); }; -- GitLab From 2057164fc7283fdb13c47c1db39043d26670692b Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Thu, 25 Oct 2018 17:11:41 +0300 Subject: [PATCH 113/249] NY-4706 :: NY-4614 --- src/components/dashboard_users/css/index.css | 17 ++++++++- src/components/dashboard_users/index.js | 10 +++--- src/components/dashboard_users/index.test.js | 2 +- .../dashboard_users/paging/paging.css | 5 ++- .../dashboard_users/paging/paging.js | 35 +++++++++---------- src/components/dashboard_users/reducer.js | 3 +- src/components/shared/ui/spinner/spinner.css | 7 ++++ .../shared/ui/{ => spinner}/spinner.js | 3 +- src/index.js | 2 +- src/utils/api/index.js | 10 +++--- src/utils/services/more_options.js | 6 ++++ 11 files changed, 64 insertions(+), 36 deletions(-) create mode 100644 src/components/shared/ui/spinner/spinner.css rename src/components/shared/ui/{ => spinner}/spinner.js (81%) create mode 100644 src/utils/services/more_options.js diff --git a/src/components/dashboard_users/css/index.css b/src/components/dashboard_users/css/index.css index b4a9978..05085b6 100644 --- a/src/components/dashboard_users/css/index.css +++ b/src/components/dashboard_users/css/index.css @@ -31,10 +31,12 @@ } .toggleGrouping { - display: block; position: absolute; + display: block; + top: 0; left: 0; + -webkit-writing-mode: vertical-lr; -ms-writing-mode: tb-lr; writing-mode: vertical-lr; @@ -60,4 +62,17 @@ border-left: solid 1px #ccc; transform: translate(0, -50%); +} +.more-options, +.account-name { + position: absolute; + display: inline-block; +} + +.more-options { + top: 10px; + color: #999a9d; +} +.account-name { + top: -5px } \ No newline at end of file diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 8b839c0..9b118d5 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -3,7 +3,7 @@ import { AgGridReact } from "ag-grid-react"; import "ag-grid-enterprise"; import { connect } from 'react-redux'; import { bindActionCreators } from 'redux'; -import Spinner from './../shared/ui/spinner'; +import Spinner from './../shared/ui/spinner/spinner'; import PageSize from './page_size'; import Paging from './paging/paging'; @@ -121,18 +121,18 @@ class DashboardUsers extends Component { this.setState({ currentPageNumber: getCurrentPageNumber }) - } + } if (getTotalPagesNumber !== this.state.totalPageNumber) { this.setState({ totalPageNumber: getTotalPagesNumber }) - } + } } }; setLastButtonDisabled = (total, current) => { - + let isDisableFlagLastPage = this.state.isDisableLast; let isDisableFlagFirstPage = this.state.isDisableFirst; @@ -166,7 +166,7 @@ class DashboardUsers extends Component { } }; - + render() { diff --git a/src/components/dashboard_users/index.test.js b/src/components/dashboard_users/index.test.js index a592769..9161dca 100644 --- a/src/components/dashboard_users/index.test.js +++ b/src/components/dashboard_users/index.test.js @@ -9,7 +9,7 @@ import DashboardUsers from './index'; import { AgGridReact } from "ag-grid-react"; import userAvatar from "../../utils/services/avatar_insertion"; -import Spinner from "../shared/ui/spinner"; +import Spinner from "../shared/ui/spinner/spinner"; configure({ adapter: new Adapter() }); diff --git a/src/components/dashboard_users/paging/paging.css b/src/components/dashboard_users/paging/paging.css index 286b998..f8adc9b 100644 --- a/src/components/dashboard_users/paging/paging.css +++ b/src/components/dashboard_users/paging/paging.css @@ -6,6 +6,7 @@ text-align: center; font-size: 0; + } .paging-control { display: inline-block; @@ -30,17 +31,15 @@ } .paging-control:disabled, .paging-control:disabled:hover { - border: none; color: #cfcfcf; background-color: transparent; } + .paging-control.selected, .paging-control:hover { background-color: #4a4a4a; color: #fff; } -.paging-value, .label { -} .paging-info { position: absolute; top: 70%; diff --git a/src/components/dashboard_users/paging/paging.js b/src/components/dashboard_users/paging/paging.js index ecf0c14..7291ce1 100644 --- a/src/components/dashboard_users/paging/paging.js +++ b/src/components/dashboard_users/paging/paging.js @@ -1,7 +1,7 @@ import React, { Component, Fragment } from 'react'; import PropTypes from "prop-types"; import './paging.css'; -import Spinner from '../../shared/ui/spinner'; +import Spinner from "../../shared/ui/spinner/spinner"; class Paging extends Component { @@ -86,29 +86,28 @@ class Paging extends Component { return ( + { + pagingControls.length !== 0 + ?
-
-

Rows {paginationPageSize} of {totalRowsNumber}

+

Rows {paginationPageSize} of {totalRowsNumber}

+ + - - + { pagingControls } + { + Number(totalPageNumber) && totalPageNumber > 4 && currentPageNumber + 1 !== totalPageNumber && currentPageNumber + 1 < totalPageNumber - 2 + ? + : null + } - { - pagingControls.length !== 0 - ? pagingControls - : - } + + +
- { - Number(totalPageNumber) && totalPageNumber > 4 && currentPageNumber + 1 !== totalPageNumber && currentPageNumber + 1 < totalPageNumber - 2 - ? - : null + :
} - - -
-
) } diff --git a/src/components/dashboard_users/reducer.js b/src/components/dashboard_users/reducer.js index cf2773d..e52aaa7 100644 --- a/src/components/dashboard_users/reducer.js +++ b/src/components/dashboard_users/reducer.js @@ -2,6 +2,7 @@ import { GET_USERS, DELIVER_USERS, PAGE_SIZE_UPDATE} from './actions'; import { DELIVER_UPDATE_USER_DATA_CATEGORY_X } from './edit_user/actions'; import { updateObject } from '../../hoc/update-object/update-object'; import userAvatar from '../../utils/services/avatar_insertion'; +import moreOptions from '../../utils/services/more_options'; /** * AG-Grid initial column definitions, row empty data, loading and error flags @@ -15,7 +16,7 @@ const initialState = { {headerName: "authenticationIdentifier", hide: false, field: "authenticationIdentifier", filter: 'agTextColumnFilter' }, {headerName: "authenticationType", hide: false, field: "authenticationType", filter: 'agTextColumnFilter' }, {headerName: "accountMark", hide: false, field: "accountMark", filter: 'agTextColumnFilter' }, - {headerName: "accountName", hide: false, field: "accountName", filter: 'agTextColumnFilter' }, + {headerName: "accountName", hide: false, field: "accountName", filter: 'agTextColumnFilter', cellRenderer: "agGroupCellRenderer", cellRendererParams: { innerRenderer: moreOptions } }, {headerName: "firstName", hide: false, field: "firstName", filter: 'agTextColumnFilter' }, {headerName: "lastName", hide: false, field: "lastName", filter: 'agTextColumnFilter' }, {headerName: "accountStatus", hide: false, field: "accountStatus", filter: 'agTextColumnFilter' }, diff --git a/src/components/shared/ui/spinner/spinner.css b/src/components/shared/ui/spinner/spinner.css new file mode 100644 index 0000000..7007579 --- /dev/null +++ b/src/components/shared/ui/spinner/spinner.css @@ -0,0 +1,7 @@ +.spinner-wrapper { + height: 100%; + justify-content: center; +} +.paging-spinner .spinner-wrapper { + height: auto; +} \ No newline at end of file diff --git a/src/components/shared/ui/spinner.js b/src/components/shared/ui/spinner/spinner.js similarity index 81% rename from src/components/shared/ui/spinner.js rename to src/components/shared/ui/spinner/spinner.js index 6d4aca4..2269e9b 100644 --- a/src/components/shared/ui/spinner.js +++ b/src/components/shared/ui/spinner/spinner.js @@ -4,6 +4,7 @@ import { withStyles } from '@material-ui/core/styles'; import CircularProgress from '@material-ui/core/CircularProgress'; import purple from '@material-ui/core/colors/purple'; import Grid from '@material-ui/core/Grid'; +import './spinner.css'; const styles = theme => ({ progress: { @@ -15,7 +16,7 @@ function spinner(props) { const { classes } = props; return ( - + diff --git a/src/index.js b/src/index.js index 1ecdb87..44fefc7 100644 --- a/src/index.js +++ b/src/index.js @@ -12,7 +12,7 @@ import { PersistGate } from "redux-persist/integration/react"; import persistConfig from './utils/localstorage/configure_persist'; import { MuiThemeProvider, createMuiTheme } from "@material-ui/core/styles"; -import Spinner from './components/shared//ui/spinner'; +import Spinner from './components/shared/ui/spinner/spinner'; import './index.css'; import App from './App'; diff --git a/src/utils/api/index.js b/src/utils/api/index.js index 5adfa8c..73652d6 100644 --- a/src/utils/api/index.js +++ b/src/utils/api/index.js @@ -24,7 +24,7 @@ function ServerSideDatasource(fakeServer) { ServerSideDatasource.prototype.getRows = function(params) { console.log('ServerSideDatasource.getRows: params = ', params); - // the request is passed dynamically from ag-grid + // the request is passed dynamically from ag-grid var request = params.request; console.log('request', request); @@ -33,14 +33,14 @@ ServerSideDatasource.prototype.getRows = function(params) { * @param {object} request * the request created by ag-grid is passed to an endpoint * on success call params.successCallback(resultForGrid, lastRow); - * params.successCallback is an ag-grid method + * params.successCallback is an ag-grid method */ this.fakeServer.getUsersData(successCallback, request); // console.log("request", request) /** - * @param {array} resultForGrid - * @param {number} lastRow + * @param {array} resultForGrid + * @param {number} lastRow */ function successCallback(resultForGrid, lastRow) { params.successCallback(resultForGrid, lastRow); @@ -104,7 +104,7 @@ FakeServer.prototype.getUsersData = function(callback, request) { // put the response into a timeout, so it looks like an async call from a server setTimeout( function() { - callback(rowData, 0); // second param mimicks that now rows were received mimicking that no rows were received + callback(rowData, lastRow); // second param mimicks that now rows were received mimicking that no rows were received }, 1000); }; diff --git a/src/utils/services/more_options.js b/src/utils/services/more_options.js new file mode 100644 index 0000000..237029c --- /dev/null +++ b/src/utils/services/more_options.js @@ -0,0 +1,6 @@ +const moreOptions = params => { + const optionContent = `and (5) more`; + return optionContent; +}; + +export default moreOptions; \ No newline at end of file -- GitLab From f55323d28a189bec11d743a15da3c6e68163e11c Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Fri, 26 Oct 2018 20:28:57 +0300 Subject: [PATCH 114/249] initial implementation of grpc communication --- package-lock.json | 11920 ---------------- package.json | 5 + src/utils/api/index.js | 18 +- src/utils/grpc_proto/account.proto | 273 + src/utils/grpc_proto/auth.proto | 131 + src/utils/grpc_proto/generated/account_pb.js | 6075 ++++++++ .../generated/account_pb_service.js | 531 + src/utils/grpc_proto/readme.md | 12 + yarn.lock | 14 + 9 files changed, 7058 insertions(+), 11921 deletions(-) delete mode 100644 package-lock.json create mode 100644 src/utils/grpc_proto/account.proto create mode 100644 src/utils/grpc_proto/auth.proto create mode 100644 src/utils/grpc_proto/generated/account_pb.js create mode 100644 src/utils/grpc_proto/generated/account_pb_service.js create mode 100644 src/utils/grpc_proto/readme.md diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 682b1b6..0000000 --- a/package-lock.json +++ /dev/null @@ -1,11920 +0,0 @@ -{ - "name": "nynja_admin", - "version": "0.1.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@babel/runtime": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.0.0.tgz", - "integrity": "sha512-7hGhzlcmg01CvH1EHdSPVXYX1aJ8KCEyz6I9xYIi/asDtzBPMyMhVibhM/K6g/5qnKBwjZtp10bNZIEFTRW1MA==", - "requires": { - "regenerator-runtime": "^0.12.0" - } - }, - "@material-ui/core": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-3.1.2.tgz", - "integrity": "sha512-tTRjlTVJY78GDKRHKSuxpoghrFyDAu9GrYCnaARHaZ2pZWiBHuviqUgAC8n8jWUXG3e6vfAXn9zZWzFedb4LwQ==", - "requires": { - "@babel/runtime": "7.0.0", - "@types/jss": "^9.5.6", - "@types/react-transition-group": "^2.0.8", - "brcast": "^3.0.1", - "classnames": "^2.2.5", - "csstype": "^2.5.2", - "debounce": "^1.1.0", - "deepmerge": "^2.0.1", - "dom-helpers": "^3.2.1", - "hoist-non-react-statics": "^2.5.0", - "is-plain-object": "^2.0.4", - "jss": "^9.3.3", - "jss-camel-case": "^6.0.0", - "jss-default-unit": "^8.0.2", - "jss-global": "^3.0.0", - "jss-nested": "^6.0.1", - "jss-props-sort": "^6.0.0", - "jss-vendor-prefixer": "^7.0.0", - "keycode": "^2.1.9", - "normalize-scroll-left": "^0.1.2", - "popper.js": "^1.14.1", - "prop-types": "^15.6.0", - "react-event-listener": "^0.6.2", - "react-jss": "^8.1.0", - "react-transition-group": "^2.2.1", - "recompose": "0.28.0 - 0.30.0", - "warning": "^4.0.1" - }, - "dependencies": { - "prop-types": { - "version": "15.6.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", - "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", - "requires": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" - } - }, - "warning": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.2.tgz", - "integrity": "sha512-wbTp09q/9C+jJn4KKJfJfoS6VleK/Dti0yqWSm6KMvJ4MRCXFQNapHuJXutJIrWV0Cf4AhTdeIe4qdKHR1+Hug==", - "requires": { - "loose-envify": "^1.0.0" - } - } - } - }, - "@material-ui/icons": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@material-ui/icons/-/icons-3.0.1.tgz", - "integrity": "sha512-1kNcxYiIT1x8iDPEAlgmKrfRTIV8UyK6fLVcZ9kMHIKGWft9I451V5mvSrbCjbf7MX1TbLWzZjph0aVCRf9MqQ==", - "requires": { - "@babel/runtime": "7.0.0", - "recompose": "^0.29.0" - }, - "dependencies": { - "recompose": { - "version": "0.29.0", - "resolved": "https://registry.npmjs.org/recompose/-/recompose-0.29.0.tgz", - "integrity": "sha512-J/qLXNU4W+AeHCDR70ajW8eMd1uroqZaECTj6qqDLPMILz3y0EzpYlvrnxKB9DnqcngWrtGwjXY9JeXaW9kS1A==", - "requires": { - "@babel/runtime": "^7.0.0", - "change-emitter": "^0.1.2", - "fbjs": "^0.8.1", - "hoist-non-react-statics": "^2.3.1", - "react-lifecycles-compat": "^3.0.2", - "symbol-observable": "^1.0.4" - } - } - } - }, - "@types/jss": { - "version": "9.5.6", - "resolved": "https://registry.npmjs.org/@types/jss/-/jss-9.5.6.tgz", - "integrity": "sha512-7TWmR5y1jYG4ka4wTZt65RR0kw4WgALFUWktQIWbLnDd6/z/0SQZ/4+UeH0rhdp+HEdIfmzPBH0VwE/4Z9Evzw==", - "requires": { - "csstype": "^2.0.0", - "indefinite-observable": "^1.0.1" - } - }, - "@types/node": { - "version": "10.11.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.11.6.tgz", - "integrity": "sha512-fnA7yvqg3oKQDb3skBif9w5RRKVKAaeKeNuLzZL37XcSiWL4IoSXQnnbchR3UnBu2EMLHBip7ZVEkqoIVBP8QQ==" - }, - "@types/prop-types": { - "version": "15.5.6", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.5.6.tgz", - "integrity": "sha512-ZBFR7TROLVzCkswA3Fmqq+IIJt62/T7aY/Dmz+QkU7CaW2QFqAitCE8Ups7IzmGhcN1YWMBT4Qcoc07jU9hOJQ==" - }, - "@types/react": { - "version": "16.4.16", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.4.16.tgz", - "integrity": "sha512-lxyoipLWweAnLnSsV4Ho2NAZTKKmxeYgkTQ6PaDiPDU9JJBUY2zJVVGiK1smzYv8+ZgbqEmcm5xM74GCpunSEA==", - "requires": { - "@types/prop-types": "*", - "csstype": "^2.2.0" - } - }, - "@types/react-transition-group": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-2.0.14.tgz", - "integrity": "sha512-pa7qB0/mkhwWMBFoXhX8BcntK8G4eQl4sIfSrJCxnivTYRQWjOWf2ClR9bWdm0EUFBDHzMbKYS+QYfDtBzkY4w==", - "requires": { - "@types/react": "*" - } - }, - "abab": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz", - "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=" - }, - "accepts": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", - "requires": { - "mime-types": "~2.1.18", - "negotiator": "0.6.1" - } - }, - "acorn": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", - "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==" - }, - "acorn-dynamic-import": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", - "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", - "requires": { - "acorn": "^4.0.3" - }, - "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=" - } - } - }, - "acorn-globals": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz", - "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=", - "requires": { - "acorn": "^4.0.4" - }, - "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=" - } - } - }, - "acorn-jsx": { - "version": "3.0.1", - "resolved": "http://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", - "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", - "requires": { - "acorn": "^3.0.4" - }, - "dependencies": { - "acorn": { - "version": "3.3.0", - "resolved": "http://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=" - } - } - }, - "address": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/address/-/address-1.0.3.tgz", - "integrity": "sha512-z55ocwKBRLryBs394Sm3ushTtBeg6VAeuku7utSoSnsJKvKcnXFIyC6vh27n3rXyxSgkJBBCAvyOn7gSUcTYjg==" - }, - "ag-grid-community": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/ag-grid-community/-/ag-grid-community-19.0.0.tgz", - "integrity": "sha512-Qvf3+GUf+4XKxJTGGMZfxFiKBlMlBaGRSjNV2PdvyUuMs69nva++1p+jrRcbwS/jFHRdCqap6toNvzbc+EU2yQ==" - }, - "ag-grid-react": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/ag-grid-react/-/ag-grid-react-19.0.0.tgz", - "integrity": "sha512-AhpblCmO3LWhKVvA513MzqCYwDWfMpFJ8/wqL0DXqOqnDajvVRfnQsxVvuv37kLR3L1w+3g4GLroyQ9MuyiIEQ==", - "requires": { - "prop-types": "15.6.0" - }, - "dependencies": { - "prop-types": { - "version": "15.6.0", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.0.tgz", - "integrity": "sha1-zq8IMCL8RrSjX2nhPvda7Q1jmFY=", - "requires": { - "fbjs": "^0.8.16", - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" - } - } - } - }, - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "ajv-keywords": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", - "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=" - }, - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" - } - }, - "alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=" - }, - "ansi-align": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", - "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", - "requires": { - "string-width": "^2.0.0" - } - }, - "ansi-escapes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", - "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==" - }, - "ansi-html": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=" - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "anymatch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", - "requires": { - "micromatch": "^2.1.5", - "normalize-path": "^2.0.0" - } - }, - "append-transform": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", - "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", - "requires": { - "default-require-extensions": "^1.0.0" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "aria-query": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-0.7.1.tgz", - "integrity": "sha1-Jsu1r/ZBRLCoJb4YRuCxbPoAsR4=", - "requires": { - "ast-types-flow": "0.0.7", - "commander": "^2.11.0" - } - }, - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "requires": { - "arr-flatten": "^1.0.1" - } - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" - }, - "array-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", - "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=" - }, - "array-filter": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", - "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=" - }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" - }, - "array-flatten": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.1.tgz", - "integrity": "sha1-Qmu52oQJDBg42BLIFQryCoMx4pY=" - }, - "array-includes": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", - "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", - "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.7.0" - } - }, - "array-map": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", - "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=" - }, - "array-reduce": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", - "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=" - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "requires": { - "array-uniq": "^1.0.1" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=" - }, - "array.prototype.flat": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.1.tgz", - "integrity": "sha512-rVqIs330nLJvfC7JqYvEWwqVr5QjYF1ib02i3YJtR/fICO6527Tjpc/e4Mvmxh3GIePPreRXMdaGyC99YphWEw==", - "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.10.0", - "function-bind": "^1.1.1" - } - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" - }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "assert": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", - "requires": { - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "requires": { - "inherits": "2.0.1" - } - } - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" - }, - "ast-types-flow": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=" - }, - "async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", - "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", - "requires": { - "lodash": "^4.17.10" - } - }, - "async-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" - }, - "autoprefixer": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-7.1.6.tgz", - "integrity": "sha512-C9yv/UF3X+eJTi/zvfxuyfxmLibYrntpF3qoJYrMeQwgUJOZrZvpJiMG2FMQ3qnhWtF/be4pYONBBw95ZGe3vA==", - "requires": { - "browserslist": "^2.5.1", - "caniuse-lite": "^1.0.30000748", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "postcss": "^6.0.13", - "postcss-value-parser": "^3.2.3" - } - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" - }, - "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" - }, - "axios": { - "version": "0.18.0", - "resolved": "http://registry.npmjs.org/axios/-/axios-0.18.0.tgz", - "integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=", - "requires": { - "follow-redirects": "^1.3.0", - "is-buffer": "^1.1.5" - } - }, - "axobject-query": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-0.1.0.tgz", - "integrity": "sha1-YvWdvFnJ+SQnWco0mWDnov48NsA=", - "requires": { - "ast-types-flow": "0.0.7" - } - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - }, - "dependencies": { - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" - } - } - }, - "babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", - "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", - "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" - } - }, - "babel-eslint": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-7.2.3.tgz", - "integrity": "sha1-sv4tgBJkcPXBlELcdXJTqJdxCCc=", - "requires": { - "babel-code-frame": "^6.22.0", - "babel-traverse": "^6.23.1", - "babel-types": "^6.23.0", - "babylon": "^6.17.0" - } - }, - "babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", - "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" - } - }, - "babel-helper-builder-binary-assignment-operator-visitor": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", - "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", - "requires": { - "babel-helper-explode-assignable-expression": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-builder-react-jsx": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz", - "integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=", - "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "esutils": "^2.0.2" - } - }, - "babel-helper-call-delegate": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", - "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", - "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-define-map": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", - "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "babel-helper-explode-assignable-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", - "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", - "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", - "requires": { - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-get-function-arity": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", - "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-hoist-variables": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", - "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-optimise-call-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", - "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-regex": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", - "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", - "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "babel-helper-remap-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", - "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-replace-supers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", - "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", - "requires": { - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helpers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", - "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-jest": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-20.0.3.tgz", - "integrity": "sha1-5KA7E9wQOJ4UD8ZF0J/8TO0wFnE=", - "requires": { - "babel-core": "^6.0.0", - "babel-plugin-istanbul": "^4.0.0", - "babel-preset-jest": "^20.0.3" - } - }, - "babel-loader": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.2.tgz", - "integrity": "sha512-jRwlFbINAeyDStqK6Dd5YuY0k5YuzQUvlz2ZamuXrXmxav3pNqe9vfJ402+2G+OmlJSXxCOpB6Uz0INM7RQe2A==", - "requires": { - "find-cache-dir": "^1.0.0", - "loader-utils": "^1.0.2", - "mkdirp": "^0.5.1" - } - }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-check-es2015-constants": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", - "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-dynamic-import-node": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-1.1.0.tgz", - "integrity": "sha512-tTfZbM9Ecwj3GK50mnPrUpinTwA4xXmDiQGCk/aBYbvl1+X8YqldK86wZ1owVJ4u3mrKbRlXMma80J18qwiaTQ==", - "requires": { - "babel-plugin-syntax-dynamic-import": "^6.18.0", - "babel-template": "^6.26.0", - "babel-types": "^6.26.0" - } - }, - "babel-plugin-istanbul": { - "version": "4.1.6", - "resolved": "http://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz", - "integrity": "sha512-PWP9FQ1AhZhS01T/4qLSKoHGY/xvkZdVBGlKM/HuxxS3+sC66HhTNR7+MpbO/so/cz/wY94MeSWJuP1hXIPfwQ==", - "requires": { - "babel-plugin-syntax-object-rest-spread": "^6.13.0", - "find-up": "^2.1.0", - "istanbul-lib-instrument": "^1.10.1", - "test-exclude": "^4.2.1" - } - }, - "babel-plugin-jest-hoist": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-20.0.3.tgz", - "integrity": "sha1-r+3IU70/jcNUjqZx++adA8wsF2c=" - }, - "babel-plugin-syntax-async-functions": { - "version": "6.13.0", - "resolved": "http://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", - "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=" - }, - "babel-plugin-syntax-class-properties": { - "version": "6.13.0", - "resolved": "http://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz", - "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=" - }, - "babel-plugin-syntax-dynamic-import": { - "version": "6.18.0", - "resolved": "http://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz", - "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=" - }, - "babel-plugin-syntax-exponentiation-operator": { - "version": "6.13.0", - "resolved": "http://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", - "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=" - }, - "babel-plugin-syntax-flow": { - "version": "6.18.0", - "resolved": "http://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz", - "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=" - }, - "babel-plugin-syntax-jsx": { - "version": "6.18.0", - "resolved": "http://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", - "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=" - }, - "babel-plugin-syntax-object-rest-spread": { - "version": "6.13.0", - "resolved": "http://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", - "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=" - }, - "babel-plugin-syntax-trailing-function-commas": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", - "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=" - }, - "babel-plugin-transform-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", - "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", - "requires": { - "babel-helper-remap-async-to-generator": "^6.24.1", - "babel-plugin-syntax-async-functions": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-class-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz", - "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=", - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-plugin-syntax-class-properties": "^6.8.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-arrow-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", - "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-block-scoped-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", - "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-block-scoping": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", - "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", - "requires": { - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "babel-plugin-transform-es2015-classes": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", - "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", - "requires": { - "babel-helper-define-map": "^6.24.1", - "babel-helper-function-name": "^6.24.1", - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-helper-replace-supers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-computed-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", - "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-destructuring": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", - "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-duplicate-keys": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", - "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-for-of": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", - "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", - "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", - "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-modules-amd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", - "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", - "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.26.2", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", - "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", - "requires": { - "babel-plugin-transform-strict-mode": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-types": "^6.26.0" - } - }, - "babel-plugin-transform-es2015-modules-systemjs": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", - "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", - "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-modules-umd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", - "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", - "requires": { - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-object-super": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", - "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", - "requires": { - "babel-helper-replace-supers": "^6.24.1", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-parameters": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", - "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", - "requires": { - "babel-helper-call-delegate": "^6.24.1", - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-shorthand-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", - "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-spread": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", - "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-sticky-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", - "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", - "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-template-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", - "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-typeof-symbol": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", - "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-unicode-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", - "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", - "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "regexpu-core": "^2.0.0" - } - }, - "babel-plugin-transform-exponentiation-operator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", - "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", - "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", - "babel-plugin-syntax-exponentiation-operator": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-flow-strip-types": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", - "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", - "requires": { - "babel-plugin-syntax-flow": "^6.18.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-object-rest-spread": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", - "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", - "requires": { - "babel-plugin-syntax-object-rest-spread": "^6.8.0", - "babel-runtime": "^6.26.0" - } - }, - "babel-plugin-transform-react-constant-elements": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-constant-elements/-/babel-plugin-transform-react-constant-elements-6.23.0.tgz", - "integrity": "sha1-LxGb9NLN1F65uqrldAU8YE9hR90=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-react-display-name": { - "version": "6.25.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz", - "integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-react-jsx": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz", - "integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=", - "requires": { - "babel-helper-builder-react-jsx": "^6.24.1", - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-react-jsx-self": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz", - "integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=", - "requires": { - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-react-jsx-source": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz", - "integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=", - "requires": { - "babel-plugin-syntax-jsx": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-regenerator": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", - "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", - "requires": { - "regenerator-transform": "^0.10.0" - } - }, - "babel-plugin-transform-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz", - "integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-strict-mode": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", - "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-preset-env": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.6.1.tgz", - "integrity": "sha512-W6VIyA6Ch9ePMI7VptNn2wBM6dbG0eSz25HEiL40nQXCsXGTGZSTZu1Iap+cj3Q0S5a7T9+529l/5Bkvd+afNA==", - "requires": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-syntax-trailing-function-commas": "^6.22.0", - "babel-plugin-transform-async-to-generator": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.23.0", - "babel-plugin-transform-es2015-classes": "^6.23.0", - "babel-plugin-transform-es2015-computed-properties": "^6.22.0", - "babel-plugin-transform-es2015-destructuring": "^6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", - "babel-plugin-transform-es2015-for-of": "^6.23.0", - "babel-plugin-transform-es2015-function-name": "^6.22.0", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.22.0", - "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-umd": "^6.23.0", - "babel-plugin-transform-es2015-object-super": "^6.22.0", - "babel-plugin-transform-es2015-parameters": "^6.23.0", - "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", - "babel-plugin-transform-exponentiation-operator": "^6.22.0", - "babel-plugin-transform-regenerator": "^6.22.0", - "browserslist": "^2.1.2", - "invariant": "^2.2.2", - "semver": "^5.3.0" - } - }, - "babel-preset-flow": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz", - "integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=", - "requires": { - "babel-plugin-transform-flow-strip-types": "^6.22.0" - } - }, - "babel-preset-jest": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-20.0.3.tgz", - "integrity": "sha1-y6yq3stdaJyh4d4TYOv8ZoYsF4o=", - "requires": { - "babel-plugin-jest-hoist": "^20.0.3" - } - }, - "babel-preset-react": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz", - "integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=", - "requires": { - "babel-plugin-syntax-jsx": "^6.3.13", - "babel-plugin-transform-react-display-name": "^6.23.0", - "babel-plugin-transform-react-jsx": "^6.24.1", - "babel-plugin-transform-react-jsx-self": "^6.22.0", - "babel-plugin-transform-react-jsx-source": "^6.22.0", - "babel-preset-flow": "^6.23.0" - } - }, - "babel-preset-react-app": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-3.1.2.tgz", - "integrity": "sha512-/sh5Qd5T08PYa6t4kuCdKh9tXp6/m/Jwyx7PJTqugsYMfsDUJMlBXOs5EwFODHprzjWrmQ0SydnMZu9FY4MZYg==", - "requires": { - "babel-plugin-dynamic-import-node": "1.1.0", - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-object-rest-spread": "6.26.0", - "babel-plugin-transform-react-constant-elements": "6.23.0", - "babel-plugin-transform-react-jsx": "6.24.1", - "babel-plugin-transform-react-jsx-self": "6.22.0", - "babel-plugin-transform-react-jsx-source": "6.22.0", - "babel-plugin-transform-regenerator": "6.26.0", - "babel-plugin-transform-runtime": "6.23.0", - "babel-preset-env": "1.6.1", - "babel-preset-react": "6.24.1" - } - }, - "babel-register": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", - "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", - "requires": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" - } - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" - } - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" - }, - "balanced-match": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - } - } - }, - "base64-js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==" - }, - "batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "optional": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" - }, - "binary-extensions": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.12.0.tgz", - "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==" - }, - "bluebird": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.2.tgz", - "integrity": "sha512-dhHTWMI7kMx5whMQntl7Vr9C6BvV10lFXDAasnqnrMYhXVCzzk6IO9Fo2L75jXHT07WrOngL1WDXOp+yYS91Yg==" - }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" - }, - "body-parser": { - "version": "1.18.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", - "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", - "requires": { - "bytes": "3.0.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.1", - "http-errors": "~1.6.2", - "iconv-lite": "0.4.19", - "on-finished": "~2.3.0", - "qs": "6.5.1", - "raw-body": "2.3.2", - "type-is": "~1.6.15" - }, - "dependencies": { - "iconv-lite": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", - "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" - }, - "qs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" - } - } - }, - "bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", - "requires": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", - "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" - } - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" - }, - "boxen": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", - "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", - "requires": { - "ansi-align": "^2.0.0", - "camelcase": "^4.0.0", - "chalk": "^2.0.1", - "cli-boxes": "^1.0.0", - "string-width": "^2.0.0", - "term-size": "^1.2.0", - "widest-line": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - }, - "dependencies": { - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - } - } - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - } - }, - "brcast": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/brcast/-/brcast-3.0.1.tgz", - "integrity": "sha512-eI3yqf9YEqyGl9PCNTR46MGvDylGtaHjalcz6Q3fAPnP/PhpKkkve52vFdfGpwp4VUvK6LUr4TQN+2stCrEwTg==" - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "browser-resolve": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", - "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", - "requires": { - "resolve": "1.1.7" - }, - "dependencies": { - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=" - } - } - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "http://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "requires": { - "bn.js": "^4.1.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", - "requires": { - "bn.js": "^4.1.1", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.2", - "elliptic": "^6.0.0", - "inherits": "^2.0.1", - "parse-asn1": "^5.0.0" - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "requires": { - "pako": "~1.0.5" - } - }, - "browserslist": { - "version": "2.11.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.11.3.tgz", - "integrity": "sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==", - "requires": { - "caniuse-lite": "^1.0.30000792", - "electron-to-chromium": "^1.3.30" - } - }, - "bser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.0.0.tgz", - "integrity": "sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk=", - "requires": { - "node-int64": "^0.4.0" - } - }, - "buffer": { - "version": "4.9.1", - "resolved": "http://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" - }, - "buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "caller-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", - "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", - "requires": { - "callsites": "^0.2.0" - } - }, - "callsites": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", - "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=" - }, - "camel-case": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", - "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", - "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.1.1" - } - }, - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" - }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - }, - "dependencies": { - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" - } - } - }, - "caniuse-api": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz", - "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=", - "requires": { - "browserslist": "^1.3.6", - "caniuse-db": "^1.0.30000529", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - }, - "dependencies": { - "browserslist": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", - "requires": { - "caniuse-db": "^1.0.30000639", - "electron-to-chromium": "^1.2.7" - } - } - } - }, - "caniuse-db": { - "version": "1.0.30000890", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000890.tgz", - "integrity": "sha512-aO5uw1Taw8GkNMMXIWOz/WJz3y6tR1ETUAdH/pvO5EoJ3I1Po9vNJd9aMjY1GKucS/OXWMiQbXRbk3O1sgCbRA==" - }, - "caniuse-lite": { - "version": "1.0.30000890", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000890.tgz", - "integrity": "sha512-4NI3s4Y6ROm+SgZN5sLUG4k7nVWQnedis3c/RWkynV5G6cHSY7+a8fwFyn2yoBDE3E6VswhTNNwR3PvzGqlTkg==" - }, - "capture-stack-trace": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", - "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==" - }, - "case-sensitive-paths-webpack-plugin": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.1.1.tgz", - "integrity": "sha1-PSnO2MHxJL9vU4Rvs/WJRzH9yQk=" - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" - } - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "change-emitter": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/change-emitter/-/change-emitter-0.1.6.tgz", - "integrity": "sha1-6LL+PX8at9aaMhma/5HqaTFAlRU=" - }, - "chardet": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=" - }, - "cheerio": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.2.tgz", - "integrity": "sha1-S59TqBsn5NXawxwP/Qz6A8xoMNs=", - "requires": { - "css-select": "~1.2.0", - "dom-serializer": "~0.1.0", - "entities": "~1.1.1", - "htmlparser2": "^3.9.1", - "lodash": "^4.15.0", - "parse5": "^3.0.1" - } - }, - "chokidar": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", - "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.0", - "braces": "^2.3.0", - "fsevents": "^1.2.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "lodash.debounce": "^4.0.8", - "normalize-path": "^2.1.1", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0", - "upath": "^1.0.5" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "is-glob": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", - "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - } - } - }, - "ci-info": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", - "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==" - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "circular-json": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", - "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==" - }, - "clap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz", - "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==", - "requires": { - "chalk": "^1.1.3" - } - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "classnames": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", - "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" - }, - "clean-css": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", - "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", - "requires": { - "source-map": "~0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "cli-boxes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", - "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=" - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } - } - }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" - }, - "coa": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz", - "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=", - "requires": { - "q": "^1.1.2" - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color": { - "version": "0.11.4", - "resolved": "http://registry.npmjs.org/color/-/color-0.11.4.tgz", - "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=", - "requires": { - "clone": "^1.0.2", - "color-convert": "^1.3.0", - "color-string": "^0.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "color-string": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz", - "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=", - "requires": { - "color-name": "^1.0.0" - } - }, - "colormin": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", - "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=", - "requires": { - "color": "^0.11.0", - "css-color-names": "0.0.4", - "has": "^1.0.1" - } - }, - "colors": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/colors/-/colors-0.5.1.tgz", - "integrity": "sha1-fQAj6usVTo7p/Oddy5I9DtFmd3Q=" - }, - "combined-stream": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", - "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", - "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==" - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" - }, - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" - }, - "compressible": { - "version": "2.0.15", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.15.tgz", - "integrity": "sha512-4aE67DL33dSW9gw4CI2H/yTxqHLNcxp0yS6jB+4h+wr3e43+1z7vm0HU9qXOH8j+qjKuL8+UtkOxYQSMq60Ylw==", - "requires": { - "mime-db": ">= 1.36.0 < 2" - } - }, - "compression": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.3.tgz", - "integrity": "sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==", - "requires": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.14", - "debug": "2.6.9", - "on-headers": "~1.0.1", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "configstore": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", - "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", - "requires": { - "dot-prop": "^4.1.0", - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "unique-string": "^1.0.0", - "write-file-atomic": "^2.0.0", - "xdg-basedir": "^3.0.0" - } - }, - "connect-history-api-fallback": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz", - "integrity": "sha1-sGhzk0vF40T+9hGhlqb6rgruAVo=" - }, - "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "requires": { - "date-now": "^0.1.4" - } - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" - }, - "contains-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=" - }, - "content-disposition": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" - }, - "content-type-parser": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/content-type-parser/-/content-type-parser-1.0.2.tgz", - "integrity": "sha512-lM4l4CnMEwOLHAHr/P6MEZwZFPJFtAAKgL6pogbXmVZggIqXhdB6RbBtPOTsw2FcXwYhehRGERJmRrjOiIB8pQ==" - }, - "convert-source-map": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", - "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" - }, - "core-js": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", - "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==" - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "cosmiconfig": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz", - "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==", - "requires": { - "is-directory": "^0.3.1", - "js-yaml": "^3.4.3", - "minimist": "^1.2.0", - "object-assign": "^4.1.0", - "os-homedir": "^1.0.1", - "parse-json": "^2.2.0", - "require-from-string": "^1.1.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - } - } - }, - "create-ecdh": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", - "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.0.0" - } - }, - "create-error-class": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", - "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", - "requires": { - "capture-stack-trace": "^1.0.0" - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "crypto-random-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", - "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=" - }, - "css-color-names": { - "version": "0.0.4", - "resolved": "http://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=" - }, - "css-loader": { - "version": "0.28.7", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.7.tgz", - "integrity": "sha512-GxMpax8a/VgcfRrVy0gXD6yLd5ePYbXX/5zGgTVYp4wXtJklS8Z2VaUArJgc//f6/Dzil7BaJObdSv8eKKCPgg==", - "requires": { - "babel-code-frame": "^6.11.0", - "css-selector-tokenizer": "^0.7.0", - "cssnano": ">=2.6.1 <4", - "icss-utils": "^2.1.0", - "loader-utils": "^1.0.2", - "lodash.camelcase": "^4.3.0", - "object-assign": "^4.0.1", - "postcss": "^5.0.6", - "postcss-modules-extract-imports": "^1.0.0", - "postcss-modules-local-by-default": "^1.0.1", - "postcss-modules-scope": "^1.0.0", - "postcss-modules-values": "^1.1.0", - "postcss-value-parser": "^3.3.0", - "source-list-map": "^2.0.0" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "css-select": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", - "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", - "requires": { - "boolbase": "~1.0.0", - "css-what": "2.1", - "domutils": "1.5.1", - "nth-check": "~1.0.1" - } - }, - "css-selector-tokenizer": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz", - "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=", - "requires": { - "cssesc": "^0.1.0", - "fastparse": "^1.1.1", - "regexpu-core": "^1.0.0" - }, - "dependencies": { - "regexpu-core": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", - "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", - "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" - } - } - } - }, - "css-vendor": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-0.3.8.tgz", - "integrity": "sha1-ZCHP0wNM5mT+dnOXL9ARn8KJQfo=", - "requires": { - "is-in-browser": "^1.0.2" - } - }, - "css-what": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz", - "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=" - }, - "cssesc": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", - "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=" - }, - "cssnano": { - "version": "3.10.0", - "resolved": "http://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz", - "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=", - "requires": { - "autoprefixer": "^6.3.1", - "decamelize": "^1.1.2", - "defined": "^1.0.0", - "has": "^1.0.1", - "object-assign": "^4.0.1", - "postcss": "^5.0.14", - "postcss-calc": "^5.2.0", - "postcss-colormin": "^2.1.8", - "postcss-convert-values": "^2.3.4", - "postcss-discard-comments": "^2.0.4", - "postcss-discard-duplicates": "^2.0.1", - "postcss-discard-empty": "^2.0.1", - "postcss-discard-overridden": "^0.1.1", - "postcss-discard-unused": "^2.2.1", - "postcss-filter-plugins": "^2.0.0", - "postcss-merge-idents": "^2.1.5", - "postcss-merge-longhand": "^2.0.1", - "postcss-merge-rules": "^2.0.3", - "postcss-minify-font-values": "^1.0.2", - "postcss-minify-gradients": "^1.0.1", - "postcss-minify-params": "^1.0.4", - "postcss-minify-selectors": "^2.0.4", - "postcss-normalize-charset": "^1.1.0", - "postcss-normalize-url": "^3.0.7", - "postcss-ordered-values": "^2.1.0", - "postcss-reduce-idents": "^2.2.2", - "postcss-reduce-initial": "^1.0.0", - "postcss-reduce-transforms": "^1.0.3", - "postcss-svgo": "^2.1.1", - "postcss-unique-selectors": "^2.0.2", - "postcss-value-parser": "^3.2.3", - "postcss-zindex": "^2.0.1" - }, - "dependencies": { - "autoprefixer": { - "version": "6.7.7", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", - "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", - "requires": { - "browserslist": "^1.7.6", - "caniuse-db": "^1.0.30000634", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "postcss": "^5.2.16", - "postcss-value-parser": "^3.2.3" - } - }, - "browserslist": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", - "requires": { - "caniuse-db": "^1.0.30000639", - "electron-to-chromium": "^1.2.7" - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "csso": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", - "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=", - "requires": { - "clap": "^1.0.9", - "source-map": "^0.5.3" - } - }, - "cssom": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.4.tgz", - "integrity": "sha512-+7prCSORpXNeR4/fUP3rL+TzqtiFfhMvTd7uEqMdgPvLPt4+uzFUeufx5RHjGTACCargg/DiEt/moMQmvnfkog==" - }, - "cssstyle": { - "version": "0.2.37", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz", - "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=", - "requires": { - "cssom": "0.3.x" - } - }, - "csstype": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.5.7.tgz", - "integrity": "sha512-Nt5VDyOTIIV4/nRFswoCKps1R5CD1hkiyjBE9/thNaNZILLEviVw9yWQw15+O+CpNjQKB/uvdcxFFOrSflY3Yw==" - }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "requires": { - "array-find-index": "^1.0.1" - } - }, - "d": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", - "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", - "requires": { - "es5-ext": "^0.10.9" - } - }, - "damerau-levenshtein": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz", - "integrity": "sha1-AxkcQyy27qFou3fzpV/9zLiXhRQ=" - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=" - }, - "debounce": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.0.tgz", - "integrity": "sha512-mYtLl1xfZLi1m4RtQYlZgJUNQjl4ZxVnHzIR8nLLgi4q1YT8o/WM+MK/f8yfcc9s5Ir5zRaPZyZU6xs1Syoocg==" - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" - }, - "deep-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=" - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" - }, - "deepmerge": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.0.tgz", - "integrity": "sha512-7iuEZ5j20aoFhiiaFZiSipk23nPl+UGKsglMJ+dy27HTpQ3wm2tj2esD/UHXlrqh5o6p6MW7m+fYSUz4JvuqVQ==" - }, - "default-require-extensions": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", - "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", - "requires": { - "strip-bom": "^2.0.0" - } - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "requires": { - "object-keys": "^1.0.12" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - } - } - }, - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" - }, - "del": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", - "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", - "requires": { - "globby": "^5.0.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "rimraf": "^2.2.8" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "des.js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "requires": { - "repeating": "^2.0.0" - } - }, - "detect-node": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", - "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==" - }, - "detect-port-alt": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", - "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", - "requires": { - "address": "^1.0.1", - "debug": "^2.6.0" - } - }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==" - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "http://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "discontinuous-range": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz", - "integrity": "sha1-44Mx8IRLukm5qctxx3FYWqsbxlo=" - }, - "dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=" - }, - "dns-packet": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", - "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", - "requires": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", - "requires": { - "buffer-indexof": "^1.0.0" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "requires": { - "esutils": "^2.0.2" - } - }, - "dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "requires": { - "utila": "~0.4" - } - }, - "dom-helpers": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.3.1.tgz", - "integrity": "sha512-2Sm+JaYn74OiTM2wHvxJOo3roiq/h25Yi69Fqk269cNUwIXsCvATB6CRSFC9Am/20G2b28hGv/+7NiWydIrPvg==" - }, - "dom-serializer": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", - "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", - "requires": { - "domelementtype": "~1.1.1", - "entities": "~1.1.1" - }, - "dependencies": { - "domelementtype": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", - "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=" - } - } - }, - "dom-urls": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/dom-urls/-/dom-urls-1.1.0.tgz", - "integrity": "sha1-AB3fgWKM0ecGElxxdvU8zsVdkY4=", - "requires": { - "urijs": "^1.16.1" - } - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" - }, - "domelementtype": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", - "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=" - }, - "domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", - "requires": { - "domelementtype": "1" - } - }, - "domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", - "requires": { - "is-obj": "^1.0.0" - } - }, - "dotenv": { - "version": "4.0.0", - "resolved": "http://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz", - "integrity": "sha1-hk7xN5rO1Vzm+V3r7NzhefegzR0=" - }, - "dotenv-expand": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-4.2.0.tgz", - "integrity": "sha1-3vHxyl1gWdJKdm5YeULCEQbOEnU=" - }, - "duplexer": { - "version": "0.1.1", - "resolved": "http://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", - "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=" - }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "optional": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "electron-to-chromium": { - "version": "1.3.75", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.75.tgz", - "integrity": "sha512-nLo03Qpw++8R6BxDZL/B1c8SQvUe/htdgc5LWYHe5YotV2jVvRUMP5AlOmxOsyeOzgMiXrNln2mC05Ixz6vuUQ==" - }, - "elliptic": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", - "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", - "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" - } - }, - "emoji-regex": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.5.1.tgz", - "integrity": "sha512-PAHp6TxrCy7MGMFidro8uikr+zlJJKJ/Q6mm2ExZ7HwkyR9lSVFfE3kt36qcwa24BQL7y0G9axycGjK1A/0uNQ==" - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "encoding": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", - "requires": { - "iconv-lite": "~0.4.13" - } - }, - "enhanced-resolve": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", - "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.4.0", - "object-assign": "^4.0.1", - "tapable": "^0.2.7" - } - }, - "entities": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", - "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=" - }, - "enzyme": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/enzyme/-/enzyme-3.6.0.tgz", - "integrity": "sha512-onsINzVLGqKIapTVfWkkw6bYvm1o4CyJ9s8POExtQhAkVa4qFDW6DGCQGRy/5bfZYk+gmUbMNyayXiWDzTkHFQ==", - "requires": { - "array.prototype.flat": "^1.2.1", - "cheerio": "^1.0.0-rc.2", - "function.prototype.name": "^1.1.0", - "has": "^1.0.3", - "is-boolean-object": "^1.0.0", - "is-callable": "^1.1.4", - "is-number-object": "^1.0.3", - "is-string": "^1.0.4", - "is-subset": "^0.1.1", - "lodash.escape": "^4.0.1", - "lodash.isequal": "^4.5.0", - "object-inspect": "^1.6.0", - "object-is": "^1.0.1", - "object.assign": "^4.1.0", - "object.entries": "^1.0.4", - "object.values": "^1.0.4", - "raf": "^3.4.0", - "rst-selector-parser": "^2.2.3", - "string.prototype.trim": "^1.1.2" - } - }, - "enzyme-adapter-react-16": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.5.0.tgz", - "integrity": "sha512-R2LcVvMB2UwPH763d5jDtVedAIcEj+uZjOnq0nd1sOUs6z8TDbyHDvt8VwfrS4wMt7CawoyPmH0XzC8MtEqqDw==", - "requires": { - "enzyme-adapter-utils": "^1.8.0", - "function.prototype.name": "^1.1.0", - "object.assign": "^4.1.0", - "object.values": "^1.0.4", - "prop-types": "^15.6.2", - "react-is": "^16.4.2", - "react-test-renderer": "^16.0.0-0" - }, - "dependencies": { - "prop-types": { - "version": "15.6.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", - "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", - "requires": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" - } - }, - "react-test-renderer": { - "version": "16.5.2", - "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.5.2.tgz", - "integrity": "sha512-AGbJYbCVx1J6jdUgI4s0hNp+9LxlgzKvXl0ROA3DHTrtjAr00Po1RhDZ/eAq2VC/ww8AHgpDXULh5V2rhEqqJg==", - "requires": { - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "react-is": "^16.5.2", - "schedule": "^0.5.0" - } - } - } - }, - "enzyme-adapter-utils": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/enzyme-adapter-utils/-/enzyme-adapter-utils-1.8.0.tgz", - "integrity": "sha512-K9U2RGr1pvWPGEAIRQRVH4UdlqzpfLsKonuHyAK6lxu46yfGsMDVlO3+YvQwQpVjVw8eviEVIOmlFAnMbIhv/w==", - "requires": { - "function.prototype.name": "^1.1.0", - "object.assign": "^4.1.0", - "prop-types": "^15.6.2" - }, - "dependencies": { - "prop-types": { - "version": "15.6.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", - "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", - "requires": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" - } - } - } - }, - "errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", - "requires": { - "prr": "~1.0.1" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", - "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", - "requires": { - "es-to-primitive": "^1.1.1", - "function-bind": "^1.1.1", - "has": "^1.0.1", - "is-callable": "^1.1.3", - "is-regex": "^1.0.4" - } - }, - "es-to-primitive": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", - "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es5-ext": { - "version": "0.10.46", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.46.tgz", - "integrity": "sha512-24XxRvJXNFwEMpJb3nOkiRJKRoupmjYmOPVlI65Qy2SrtxwOTB+g6ODjBKOtwEHbYrhWRty9xxOWLNdClT2djw==", - "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.1", - "next-tick": "1" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-map": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", - "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", - "requires": { - "d": "1", - "es5-ext": "~0.10.14", - "es6-iterator": "~2.0.1", - "es6-set": "~0.1.5", - "es6-symbol": "~3.1.1", - "event-emitter": "~0.3.5" - } - }, - "es6-promise": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.5.tgz", - "integrity": "sha512-n6wvpdE43VFtJq+lUDYDBFUwV8TZbuGXLV4D6wKafg13ldznKsyEvatubnmUe31zcvelSzOHF+XbaT+Bl9ObDg==" - }, - "es6-set": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", - "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", - "requires": { - "d": "1", - "es5-ext": "~0.10.14", - "es6-iterator": "~2.0.1", - "es6-symbol": "3.1.1", - "event-emitter": "~0.3.5" - } - }, - "es6-symbol": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", - "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", - "requires": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "es6-weak-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", - "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", - "requires": { - "d": "1", - "es5-ext": "^0.10.14", - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" - } - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "escodegen": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.11.0.tgz", - "integrity": "sha512-IeMV45ReixHS53K/OmfKAIztN/igDHzTJUhZM3k1jMhIZWjk45SMwAtBsEXiJp3vSPmTcu6CXn7mDvFHRN66fw==", - "requires": { - "esprima": "^3.1.3", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true - } - } - }, - "escope": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", - "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", - "requires": { - "es6-map": "^0.1.3", - "es6-weak-map": "^2.0.1", - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "eslint": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.10.0.tgz", - "integrity": "sha512-MMVl8P/dYUFZEvolL8PYt7qc5LNdS2lwheq9BYa5Y07FblhcZqFyaUqlS8TW5QITGex21tV4Lk0a3fK8lsJIkA==", - "requires": { - "ajv": "^5.2.0", - "babel-code-frame": "^6.22.0", - "chalk": "^2.1.0", - "concat-stream": "^1.6.0", - "cross-spawn": "^5.1.0", - "debug": "^3.0.1", - "doctrine": "^2.0.0", - "eslint-scope": "^3.7.1", - "espree": "^3.5.1", - "esquery": "^1.0.0", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^9.17.0", - "ignore": "^3.3.3", - "imurmurhash": "^0.1.4", - "inquirer": "^3.0.6", - "is-resolvable": "^1.0.0", - "js-yaml": "^3.9.1", - "json-stable-stringify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.4", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "pluralize": "^7.0.0", - "progress": "^2.0.0", - "require-uncached": "^1.0.3", - "semver": "^5.3.0", - "strip-ansi": "^4.0.0", - "strip-json-comments": "~2.0.1", - "table": "^4.0.1", - "text-table": "~0.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "^2.1.1" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "js-yaml": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", - "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "eslint-config-react-app": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-2.1.0.tgz", - "integrity": "sha512-8QZrKWuHVC57Fmu+SsKAVxnI9LycZl7NFQ4H9L+oeISuCXhYdXqsOOIVSjQFW6JF5MXZLFE+21Syhd7mF1IRZQ==" - }, - "eslint-import-resolver-node": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", - "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", - "requires": { - "debug": "^2.6.9", - "resolve": "^1.5.0" - } - }, - "eslint-loader": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-1.9.0.tgz", - "integrity": "sha512-40aN976qSNPyb9ejTqjEthZITpls1SVKtwguahmH1dzGCwQU/vySE+xX33VZmD8csU0ahVNCtFlsPgKqRBiqgg==", - "requires": { - "loader-fs-cache": "^1.0.0", - "loader-utils": "^1.0.2", - "object-assign": "^4.0.1", - "object-hash": "^1.1.4", - "rimraf": "^2.6.1" - } - }, - "eslint-module-utils": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz", - "integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=", - "requires": { - "debug": "^2.6.8", - "pkg-dir": "^1.0.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "pkg-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", - "requires": { - "find-up": "^1.0.0" - } - } - } - }, - "eslint-plugin-flowtype": { - "version": "2.39.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.39.1.tgz", - "integrity": "sha512-RiQv+7Z9QDJuzt+NO8sYgkLGT+h+WeCrxP7y8lI7wpU41x3x/2o3PGtHk9ck8QnA9/mlbNcy/hG0eKvmd7npaA==", - "requires": { - "lodash": "^4.15.0" - } - }, - "eslint-plugin-import": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.8.0.tgz", - "integrity": "sha512-Rf7dfKJxZ16QuTgVv1OYNxkZcsu/hULFnC+e+w0Gzi6jMC3guQoWQgxYxc54IDRinlb6/0v5z/PxxIKmVctN+g==", - "requires": { - "builtin-modules": "^1.1.1", - "contains-path": "^0.1.0", - "debug": "^2.6.8", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.1", - "eslint-module-utils": "^2.1.1", - "has": "^1.0.1", - "lodash.cond": "^4.3.0", - "minimatch": "^3.0.3", - "read-pkg-up": "^2.0.0" - }, - "dependencies": { - "doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", - "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" - } - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - } - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "requires": { - "pify": "^2.0.0" - } - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" - } - } - }, - "eslint-plugin-jsx-a11y": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-5.1.1.tgz", - "integrity": "sha512-5I9SpoP7gT4wBFOtXT8/tXNPYohHBVfyVfO17vkbC7r9kEIxYJF12D3pKqhk8+xnk12rfxKClS3WCFpVckFTPQ==", - "requires": { - "aria-query": "^0.7.0", - "array-includes": "^3.0.3", - "ast-types-flow": "0.0.7", - "axobject-query": "^0.1.0", - "damerau-levenshtein": "^1.0.0", - "emoji-regex": "^6.1.0", - "jsx-ast-utils": "^1.4.0" - } - }, - "eslint-plugin-react": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.4.0.tgz", - "integrity": "sha512-tvjU9u3VqmW2vVuYnE8Qptq+6ji4JltjOjJ9u7VAOxVYkUkyBZWRvNYKbDv5fN+L6wiA+4we9+qQahZ0m63XEA==", - "requires": { - "doctrine": "^2.0.0", - "has": "^1.0.1", - "jsx-ast-utils": "^2.0.0", - "prop-types": "^15.5.10" - }, - "dependencies": { - "jsx-ast-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz", - "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=", - "requires": { - "array-includes": "^3.0.3" - } - }, - "prop-types": { - "version": "15.6.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", - "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", - "requires": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" - } - } - } - }, - "eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", - "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "espree": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz", - "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", - "requires": { - "acorn": "^5.5.0", - "acorn-jsx": "^3.0.0" - } - }, - "esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=" - }, - "esquery": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", - "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", - "requires": { - "estraverse": "^4.0.0" - } - }, - "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", - "requires": { - "estraverse": "^4.1.0" - } - }, - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - }, - "event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", - "requires": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "eventemitter3": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.0.tgz", - "integrity": "sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA==" - }, - "events": { - "version": "1.1.1", - "resolved": "http://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" - }, - "eventsource": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz", - "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", - "requires": { - "original": ">=0.0.5" - } - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "exec-sh": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.2.tgz", - "integrity": "sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw==", - "requires": { - "merge": "^1.2.0" - } - }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "requires": { - "is-posix-bracket": "^0.1.0" - } - }, - "expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", - "requires": { - "fill-range": "^2.1.0" - }, - "dependencies": { - "fill-range": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", - "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", - "requires": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^3.0.0", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" - } - }, - "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "express": { - "version": "4.16.3", - "resolved": "http://registry.npmjs.org/express/-/express-4.16.3.tgz", - "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", - "requires": { - "accepts": "~1.3.5", - "array-flatten": "1.1.1", - "body-parser": "1.18.2", - "content-disposition": "0.5.2", - "content-type": "~1.0.4", - "cookie": "0.3.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.1.1", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.2", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.3", - "qs": "6.5.1", - "range-parser": "~1.2.0", - "safe-buffer": "5.1.1", - "send": "0.16.2", - "serve-static": "1.13.2", - "setprototypeof": "1.1.0", - "statuses": "~1.4.0", - "type-is": "~1.6.16", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "qs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" - }, - "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "external-editor": { - "version": "2.2.0", - "resolved": "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", - "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", - "requires": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "requires": { - "is-extglob": "^1.0.0" - } - }, - "extract-text-webpack-plugin": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-3.0.2.tgz", - "integrity": "sha512-bt/LZ4m5Rqt/Crl2HiKuAl/oqg0psx1tsTLkvWbJen1CtD+fftkZhMaQ9HOtY2gWsl2Wq+sABmMVi9z3DhKWQQ==", - "requires": { - "async": "^2.4.1", - "loader-utils": "^1.1.0", - "schema-utils": "^0.3.0", - "webpack-sources": "^1.0.1" - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - }, - "fastparse": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz", - "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=" - }, - "faye-websocket": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz", - "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", - "requires": { - "websocket-driver": ">=0.5.1" - } - }, - "fb-watchman": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz", - "integrity": "sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=", - "requires": { - "bser": "^2.0.0" - } - }, - "fbjs": { - "version": "0.8.17", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", - "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", - "requires": { - "core-js": "^1.0.0", - "isomorphic-fetch": "^2.1.1", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.18" - }, - "dependencies": { - "core-js": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", - "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" - }, - "promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "requires": { - "asap": "~2.0.3" - } - } - } - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "file-entry-cache": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", - "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", - "requires": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" - } - }, - "file-loader": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.5.tgz", - "integrity": "sha512-RzGHDatcVNpGISTvCpfUfOGpYuSR7HSsSg87ki+wF6rw1Hm0RALPTiAdsxAq1UwLf0RRhbe22/eHK6nhXspiOQ==", - "requires": { - "loader-utils": "^1.0.2", - "schema-utils": "^0.3.0" - } - }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=" - }, - "fileset": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", - "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", - "requires": { - "glob": "^7.0.3", - "minimatch": "^3.0.3" - } - }, - "filesize": { - "version": "3.5.11", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.5.11.tgz", - "integrity": "sha512-ZH7loueKBoDb7yG9esn1U+fgq7BzlzW6NRi5/rMdxIZ05dj7GFD/Xc5rq2CDt5Yq86CyfSYVyx4242QQNZbx1g==" - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "finalhandler": { - "version": "1.1.1", - "resolved": "http://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", - "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.2", - "statuses": "~1.4.0", - "unpipe": "~1.0.0" - } - }, - "find-cache-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", - "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", - "requires": { - "commondir": "^1.0.1", - "make-dir": "^1.0.0", - "pkg-dir": "^2.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "flat-cache": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", - "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", - "requires": { - "circular-json": "^0.3.1", - "del": "^2.0.2", - "graceful-fs": "^4.1.2", - "write": "^0.2.1" - } - }, - "flatten": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", - "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=" - }, - "follow-redirects": { - "version": "1.5.8", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.8.tgz", - "integrity": "sha512-sy1mXPmv7kLAMKW/8XofG7o9T+6gAjzdZK4AJF6ryqQYUa/hnzgiypoeUecZ53x7XiqKNEpNqLtS97MshW2nxg==", - "requires": { - "debug": "=3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - } - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" - }, - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "requires": { - "for-in": "^1.0.1" - } - }, - "foreach": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.4.tgz", - "integrity": "sha1-zF0NiuHUbMmlVcJoL5EJd4WZNd8=" - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "form-data": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", - "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "1.0.6", - "mime-types": "^2.1.12" - }, - "dependencies": { - "combined-stream": { - "version": "1.0.6", - "resolved": "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", - "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", - "requires": { - "delayed-stream": "~1.0.0" - } - } - } - }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "requires": { - "map-cache": "^0.2.2" - } - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - }, - "fs-extra": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", - "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^3.0.0", - "universalify": "^0.1.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", - "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", - "optional": true, - "requires": { - "nan": "^2.9.2", - "node-pre-gyp": "^0.10.0" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.4", - "bundled": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.0.1", - "bundled": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "debug": { - "version": "2.6.9", - "bundled": true, - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, - "deep-extend": { - "version": "0.5.1", - "bundled": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.2", - "bundled": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.21", - "bundled": true, - "optional": true, - "requires": { - "safer-buffer": "^2.1.0" - } - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true - }, - "minipass": { - "version": "2.2.4", - "bundled": true, - "requires": { - "safe-buffer": "^5.1.1", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.1.0", - "bundled": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "bundled": true, - "optional": true - }, - "needle": { - "version": "2.2.0", - "bundled": true, - "optional": true, - "requires": { - "debug": "^2.1.2", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.10.0", - "bundled": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.0", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.1.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.0.3", - "bundled": true, - "optional": true - }, - "npm-packlist": { - "version": "1.1.10", - "bundled": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "optional": true - }, - "rc": { - "version": "1.2.7", - "bundled": true, - "optional": true, - "requires": { - "deep-extend": "^0.5.1", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rimraf": { - "version": "2.6.2", - "bundled": true, - "optional": true, - "requires": { - "glob": "^7.0.5" - } - }, - "safe-buffer": { - "version": "5.1.1", - "bundled": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "optional": true - }, - "semver": { - "version": "5.5.0", - "bundled": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "optional": true - }, - "tar": { - "version": "4.4.1", - "bundled": true, - "optional": true, - "requires": { - "chownr": "^1.0.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.2.4", - "minizlib": "^1.1.0", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.1", - "yallist": "^3.0.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "wide-align": { - "version": "1.1.2", - "bundled": true, - "optional": true, - "requires": { - "string-width": "^1.0.2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true - }, - "yallist": { - "version": "3.0.2", - "bundled": true - } - } - }, - "fsm-iterator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fsm-iterator/-/fsm-iterator-1.1.0.tgz", - "integrity": "sha1-M33kXeGesgV4jPAuOpVewgZ2Dew=" - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "function.prototype.name": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.0.tgz", - "integrity": "sha512-Bs0VRrTz4ghD8pTmbJQD1mZ8A/mN0ur/jGz+A6FBxPDUPkm1tNfF6bhTYPA7i7aF4lZJVr+OXTNNrnnIl58Wfg==", - "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "is-callable": "^1.1.3" - } - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" - }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" - }, - "get-stream": { - "version": "3.0.0", - "resolved": "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" - } - }, - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "requires": { - "is-glob": "^2.0.0" - } - }, - "global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", - "requires": { - "ini": "^1.3.4" - } - }, - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" - }, - "globby": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", - "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", - "requires": { - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "got": { - "version": "6.7.1", - "resolved": "http://registry.npmjs.org/got/-/got-6.7.1.tgz", - "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", - "requires": { - "create-error-class": "^3.0.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-redirect": "^1.0.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "lowercase-keys": "^1.0.0", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "unzip-response": "^2.0.1", - "url-parse-lax": "^1.0.0" - } - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" - }, - "growly": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=" - }, - "gzip-size": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-3.0.0.tgz", - "integrity": "sha1-VGGI6b3DN/Zzdy+BZgRks4nc5SA=", - "requires": { - "duplexer": "^0.1.1" - } - }, - "handle-thing": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz", - "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=" - }, - "handlebars": { - "version": "4.0.12", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.12.tgz", - "integrity": "sha512-RhmTekP+FZL+XNhwS1Wf+bTTZpdLougwt5pcgA1tuz6Jcx0fpH/7z0qd71RKnZHBCxIRBHfBOnio4gViPemNzA==", - "requires": { - "async": "^2.5.0", - "optimist": "^0.6.1", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - }, - "har-validator": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", - "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", - "requires": { - "ajv": "^5.3.0", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=" - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "hash.js": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz", - "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=" - }, - "history": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/history/-/history-4.7.2.tgz", - "integrity": "sha512-1zkBRWW6XweO0NBcjiphtVJVsIQ+SXF29z9DVkceeaSLVMFXHool+fdCZD4spDCfZJCILPILc3bm7Bc+HRi0nA==", - "requires": { - "invariant": "^2.2.1", - "loose-envify": "^1.2.0", - "resolve-pathname": "^2.2.0", - "value-equal": "^0.4.0", - "warning": "^3.0.0" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "hoist-non-react-statics": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", - "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==" - }, - "home-or-tmp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" - } - }, - "homedir-polyfill": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", - "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", - "requires": { - "parse-passwd": "^1.0.0" - } - }, - "hosted-git-info": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==" - }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "html-comment-regex": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", - "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==" - }, - "html-encoding-sniffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", - "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", - "requires": { - "whatwg-encoding": "^1.0.1" - } - }, - "html-entities": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", - "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=" - }, - "html-minifier": { - "version": "3.5.20", - "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.20.tgz", - "integrity": "sha512-ZmgNLaTp54+HFKkONyLFEfs5dd/ZOtlquKaTnqIWFmx3Av5zG6ZPcV2d0o9XM2fXOTxxIf6eDcwzFFotke/5zA==", - "requires": { - "camel-case": "3.0.x", - "clean-css": "4.2.x", - "commander": "2.17.x", - "he": "1.1.x", - "param-case": "2.1.x", - "relateurl": "0.2.x", - "uglify-js": "3.4.x" - }, - "dependencies": { - "commander": { - "version": "2.17.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", - "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==" - } - } - }, - "html-webpack-plugin": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-2.29.0.tgz", - "integrity": "sha1-6Yf0IYU9O2k4yMTIFxhC5f0XryM=", - "requires": { - "bluebird": "^3.4.7", - "html-minifier": "^3.2.3", - "loader-utils": "^0.2.16", - "lodash": "^4.17.3", - "pretty-error": "^2.0.2", - "toposort": "^1.0.0" - }, - "dependencies": { - "loader-utils": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", - "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0", - "object-assign": "^4.0.1" - } - } - } - }, - "htmlparser2": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", - "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", - "requires": { - "domelementtype": "^1.3.0", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^2.0.2" - } - }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" - }, - "http-errors": { - "version": "1.6.3", - "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "http-parser-js": { - "version": "0.4.13", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.13.tgz", - "integrity": "sha1-O9bW/ebjFyyTNMOzO2wZPYD+ETc=" - }, - "http-proxy": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz", - "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==", - "requires": { - "eventemitter3": "^3.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - } - }, - "http-proxy-middleware": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz", - "integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=", - "requires": { - "http-proxy": "^1.16.2", - "is-glob": "^3.1.0", - "lodash": "^4.17.2", - "micromatch": "^2.3.11" - }, - "dependencies": { - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" - }, - "hyphenate-style-name": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.2.tgz", - "integrity": "sha1-MRYKNpMK2vH8BMYHT360FGXU7Es=" - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "icss-replace-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", - "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=" - }, - "icss-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", - "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", - "requires": { - "postcss": "^6.0.1" - } - }, - "ieee754": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", - "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==" - }, - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" - }, - "import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" - }, - "import-local": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz", - "integrity": "sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==", - "requires": { - "pkg-dir": "^2.0.0", - "resolve-cwd": "^2.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "indefinite-observable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indefinite-observable/-/indefinite-observable-1.0.1.tgz", - "integrity": "sha1-CZFUI8yNb36xy3iCrRNGM8mm7cM=", - "requires": { - "symbol-observable": "1.0.4" - }, - "dependencies": { - "symbol-observable": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.4.tgz", - "integrity": "sha1-Kb9hXUqnEhvdiYsi1LP5vE4qoD0=" - } - } - }, - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "requires": { - "repeating": "^2.0.0" - } - }, - "indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=" - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" - }, - "inquirer": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", - "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", - "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.0.4", - "figures": "^2.0.0", - "lodash": "^4.3.0", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rx-lite": "^4.0.8", - "rx-lite-aggregates": "^4.0.8", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "internal-ip": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-1.2.0.tgz", - "integrity": "sha1-rp+/k7mEh4eF1QqN4bNWlWBYz1w=", - "requires": { - "meow": "^3.3.0" - } - }, - "interpret": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", - "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=" - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "requires": { - "loose-envify": "^1.0.0" - } - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, - "ipaddr.js": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", - "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=" - }, - "is-absolute-url": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=" - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-boolean-object": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.0.0.tgz", - "integrity": "sha1-mPiygDBoQhmpXzdc+9iM40Bd/5M=" - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "requires": { - "builtin-modules": "^1.0.0" - } - }, - "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==" - }, - "is-ci": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", - "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", - "requires": { - "ci-info": "^1.5.0" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" - }, - "is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=" - }, - "is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", - "requires": { - "is-primitive": "^2.0.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" - }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "is-function": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz", - "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=" - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "requires": { - "is-extglob": "^1.0.0" - } - }, - "is-in-browser": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz", - "integrity": "sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU=" - }, - "is-installed-globally": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", - "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", - "requires": { - "global-dirs": "^0.1.0", - "is-path-inside": "^1.0.0" - } - }, - "is-npm": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", - "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=" - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-number-object": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.3.tgz", - "integrity": "sha1-8mWrian0RQNO9q/xWo8AsA9VF5k=" - }, - "is-obj": { - "version": "1.0.1", - "resolved": "http://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" - }, - "is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=" - }, - "is-path-in-cwd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", - "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", - "requires": { - "is-path-inside": "^1.0.0" - } - }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "requires": { - "path-is-inside": "^1.0.1" - } - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "requires": { - "isobject": "^3.0.1" - } - }, - "is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=" - }, - "is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=" - }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" - }, - "is-redirect": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", - "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=" - }, - "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", - "requires": { - "has": "^1.0.1" - } - }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==" - }, - "is-retry-allowed": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", - "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=" - }, - "is-root": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-root/-/is-root-1.0.0.tgz", - "integrity": "sha1-B7bCM7w5TNnQK6FclmvWZg1jQtU=" - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "is-string": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.4.tgz", - "integrity": "sha1-zDqbaYV9Yh6WNyWiTK7shzuCbmQ=" - }, - "is-subset": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", - "integrity": "sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=" - }, - "is-svg": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", - "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", - "requires": { - "html-comment-regex": "^1.1.0" - } - }, - "is-symbol": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", - "requires": { - "has-symbols": "^1.0.0" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" - }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "isomorphic-fetch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", - "requires": { - "node-fetch": "^1.0.1", - "whatwg-fetch": ">=0.10.0" - } - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "istanbul-api": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.3.7.tgz", - "integrity": "sha512-4/ApBnMVeEPG3EkSzcw25wDe4N66wxwn+KKn6b47vyek8Xb3NBAcg4xfuQbS7BqcZuTX4wxfD5lVagdggR3gyA==", - "requires": { - "async": "^2.1.4", - "fileset": "^2.0.2", - "istanbul-lib-coverage": "^1.2.1", - "istanbul-lib-hook": "^1.2.2", - "istanbul-lib-instrument": "^1.10.2", - "istanbul-lib-report": "^1.1.5", - "istanbul-lib-source-maps": "^1.2.6", - "istanbul-reports": "^1.5.1", - "js-yaml": "^3.7.0", - "mkdirp": "^0.5.1", - "once": "^1.4.0" - } - }, - "istanbul-lib-coverage": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz", - "integrity": "sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ==" - }, - "istanbul-lib-hook": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.2.2.tgz", - "integrity": "sha512-/Jmq7Y1VeHnZEQ3TL10VHyb564mn6VrQXHchON9Jf/AEcmQ3ZIiyD1BVzNOKTZf/G3gE+kiGK6SmpF9y3qGPLw==", - "requires": { - "append-transform": "^0.4.0" - } - }, - "istanbul-lib-instrument": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz", - "integrity": "sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A==", - "requires": { - "babel-generator": "^6.18.0", - "babel-template": "^6.16.0", - "babel-traverse": "^6.18.0", - "babel-types": "^6.18.0", - "babylon": "^6.18.0", - "istanbul-lib-coverage": "^1.2.1", - "semver": "^5.3.0" - } - }, - "istanbul-lib-report": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.5.tgz", - "integrity": "sha512-UsYfRMoi6QO/doUshYNqcKJqVmFe9w51GZz8BS3WB0lYxAllQYklka2wP9+dGZeHYaWIdcXUx8JGdbqaoXRXzw==", - "requires": { - "istanbul-lib-coverage": "^1.2.1", - "mkdirp": "^0.5.1", - "path-parse": "^1.0.5", - "supports-color": "^3.1.2" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.6.tgz", - "integrity": "sha512-TtbsY5GIHgbMsMiRw35YBHGpZ1DVFEO19vxxeiDMYaeOFOCzfnYVxvl6pOUIZR4dtPhAGpSMup8OyF8ubsaqEg==", - "requires": { - "debug": "^3.1.0", - "istanbul-lib-coverage": "^1.2.1", - "mkdirp": "^0.5.1", - "rimraf": "^2.6.1", - "source-map": "^0.5.3" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - } - } - }, - "istanbul-reports": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.5.1.tgz", - "integrity": "sha512-+cfoZ0UXzWjhAdzosCPP3AN8vvef8XDkWtTfgaN+7L3YTpNYITnCaEkceo5SEYy644VkHka/P1FvkWvrG/rrJw==", - "requires": { - "handlebars": "^4.0.3" - } - }, - "jest": { - "version": "20.0.4", - "resolved": "https://registry.npmjs.org/jest/-/jest-20.0.4.tgz", - "integrity": "sha1-PdJgwpidba1nix6cxNkZRPbWAqw=", - "requires": { - "jest-cli": "^20.0.4" - }, - "dependencies": { - "ansi-escapes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", - "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=" - }, - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=" - }, - "jest-cli": { - "version": "20.0.4", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-20.0.4.tgz", - "integrity": "sha1-5TKxnYiuW8bEF+iwWTpv6VSx3JM=", - "requires": { - "ansi-escapes": "^1.4.0", - "callsites": "^2.0.0", - "chalk": "^1.1.3", - "graceful-fs": "^4.1.11", - "is-ci": "^1.0.10", - "istanbul-api": "^1.1.1", - "istanbul-lib-coverage": "^1.0.1", - "istanbul-lib-instrument": "^1.4.2", - "istanbul-lib-source-maps": "^1.1.0", - "jest-changed-files": "^20.0.3", - "jest-config": "^20.0.4", - "jest-docblock": "^20.0.3", - "jest-environment-jsdom": "^20.0.3", - "jest-haste-map": "^20.0.4", - "jest-jasmine2": "^20.0.4", - "jest-message-util": "^20.0.3", - "jest-regex-util": "^20.0.3", - "jest-resolve-dependencies": "^20.0.3", - "jest-runtime": "^20.0.4", - "jest-snapshot": "^20.0.3", - "jest-util": "^20.0.3", - "micromatch": "^2.3.11", - "node-notifier": "^5.0.2", - "pify": "^2.3.0", - "slash": "^1.0.0", - "string-length": "^1.0.1", - "throat": "^3.0.0", - "which": "^1.2.12", - "worker-farm": "^1.3.1", - "yargs": "^7.0.2" - } - } - } - }, - "jest-changed-files": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-20.0.3.tgz", - "integrity": "sha1-k5TVzGXEOEBhSb7xv01Sto4D4/g=" - }, - "jest-config": { - "version": "20.0.4", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-20.0.4.tgz", - "integrity": "sha1-43kwqyIXyRNgXv8T5712PsSPruo=", - "requires": { - "chalk": "^1.1.3", - "glob": "^7.1.1", - "jest-environment-jsdom": "^20.0.3", - "jest-environment-node": "^20.0.3", - "jest-jasmine2": "^20.0.4", - "jest-matcher-utils": "^20.0.3", - "jest-regex-util": "^20.0.3", - "jest-resolve": "^20.0.4", - "jest-validate": "^20.0.3", - "pretty-format": "^20.0.3" - } - }, - "jest-diff": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-20.0.3.tgz", - "integrity": "sha1-gfKI/Z5nXw+yPHXxwrGURf5YZhc=", - "requires": { - "chalk": "^1.1.3", - "diff": "^3.2.0", - "jest-matcher-utils": "^20.0.3", - "pretty-format": "^20.0.3" - } - }, - "jest-docblock": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-20.0.3.tgz", - "integrity": "sha1-F76phDQswz2DxQ++FUXqDvqkRxI=" - }, - "jest-environment-jsdom": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-20.0.3.tgz", - "integrity": "sha1-BIqKwS7iJfcZBBdxODS7mZeH3pk=", - "requires": { - "jest-mock": "^20.0.3", - "jest-util": "^20.0.3", - "jsdom": "^9.12.0" - } - }, - "jest-environment-node": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-20.0.3.tgz", - "integrity": "sha1-1Ii8RhKvLCRumG6K52caCZFj1AM=", - "requires": { - "jest-mock": "^20.0.3", - "jest-util": "^20.0.3" - } - }, - "jest-haste-map": { - "version": "20.0.5", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-20.0.5.tgz", - "integrity": "sha512-0IKAQjUvuZjMCNi/0VNQQF74/H9KB67hsHJqGiwTWQC6XO5Azs7kLWm+6Q/dwuhvDUvABDOBMFK2/FwZ3sZ07Q==", - "requires": { - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.1.11", - "jest-docblock": "^20.0.3", - "micromatch": "^2.3.11", - "sane": "~1.6.0", - "worker-farm": "^1.3.1" - } - }, - "jest-jasmine2": { - "version": "20.0.4", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-20.0.4.tgz", - "integrity": "sha1-/MWxQReA2RHQQpAu8YWehS5g1eE=", - "requires": { - "chalk": "^1.1.3", - "graceful-fs": "^4.1.11", - "jest-diff": "^20.0.3", - "jest-matcher-utils": "^20.0.3", - "jest-matchers": "^20.0.3", - "jest-message-util": "^20.0.3", - "jest-snapshot": "^20.0.3", - "once": "^1.4.0", - "p-map": "^1.1.1" - } - }, - "jest-matcher-utils": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-20.0.3.tgz", - "integrity": "sha1-s6a443yld4A7CDKpixZPRLeBVhI=", - "requires": { - "chalk": "^1.1.3", - "pretty-format": "^20.0.3" - } - }, - "jest-matchers": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jest-matchers/-/jest-matchers-20.0.3.tgz", - "integrity": "sha1-ymnbHDLbWm9wf6XgQBq7VXAN/WA=", - "requires": { - "jest-diff": "^20.0.3", - "jest-matcher-utils": "^20.0.3", - "jest-message-util": "^20.0.3", - "jest-regex-util": "^20.0.3" - } - }, - "jest-message-util": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-20.0.3.tgz", - "integrity": "sha1-auwoRDBvyw5udNV5bBAG2W/dgxw=", - "requires": { - "chalk": "^1.1.3", - "micromatch": "^2.3.11", - "slash": "^1.0.0" - } - }, - "jest-mock": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-20.0.3.tgz", - "integrity": "sha1-i8Bw6QQUqhVcEajWTIaaDVxx2lk=" - }, - "jest-regex-util": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-20.0.3.tgz", - "integrity": "sha1-hburXRM+RGJbGfr4xqpRItCF12I=" - }, - "jest-resolve": { - "version": "20.0.4", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-20.0.4.tgz", - "integrity": "sha1-lEiz6La6/BVHlETGSZBFt//ll6U=", - "requires": { - "browser-resolve": "^1.11.2", - "is-builtin-module": "^1.0.0", - "resolve": "^1.3.2" - } - }, - "jest-resolve-dependencies": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-20.0.3.tgz", - "integrity": "sha1-bhSntxevDyyzZnxUneQK8Bexcjo=", - "requires": { - "jest-regex-util": "^20.0.3" - } - }, - "jest-runtime": { - "version": "20.0.4", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-20.0.4.tgz", - "integrity": "sha1-osgCIZxCA/dU3xQE5JAYYWnRJNg=", - "requires": { - "babel-core": "^6.0.0", - "babel-jest": "^20.0.3", - "babel-plugin-istanbul": "^4.0.0", - "chalk": "^1.1.3", - "convert-source-map": "^1.4.0", - "graceful-fs": "^4.1.11", - "jest-config": "^20.0.4", - "jest-haste-map": "^20.0.4", - "jest-regex-util": "^20.0.3", - "jest-resolve": "^20.0.4", - "jest-util": "^20.0.3", - "json-stable-stringify": "^1.0.1", - "micromatch": "^2.3.11", - "strip-bom": "3.0.0", - "yargs": "^7.0.2" - }, - "dependencies": { - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" - } - } - }, - "jest-snapshot": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-20.0.3.tgz", - "integrity": "sha1-W4R+GtsaTZCFKn+fElCG4YfHZWY=", - "requires": { - "chalk": "^1.1.3", - "jest-diff": "^20.0.3", - "jest-matcher-utils": "^20.0.3", - "jest-util": "^20.0.3", - "natural-compare": "^1.4.0", - "pretty-format": "^20.0.3" - } - }, - "jest-util": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-20.0.3.tgz", - "integrity": "sha1-DAf32A2C9OWmfG+LnD/n9lz9Mq0=", - "requires": { - "chalk": "^1.1.3", - "graceful-fs": "^4.1.11", - "jest-message-util": "^20.0.3", - "jest-mock": "^20.0.3", - "jest-validate": "^20.0.3", - "leven": "^2.1.0", - "mkdirp": "^0.5.1" - } - }, - "jest-validate": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-20.0.3.tgz", - "integrity": "sha1-0M/R3k9XnymEhJJcKA+PHZTsPKs=", - "requires": { - "chalk": "^1.1.3", - "jest-matcher-utils": "^20.0.3", - "leven": "^2.1.0", - "pretty-format": "^20.0.3" - } - }, - "js-base64": { - "version": "2.4.9", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.9.tgz", - "integrity": "sha512-xcinL3AuDJk7VSzsHgb9DvvIXayBbadtMZ4HFPx8rUszbW1MuNMlwYVC4zzCZ6e1sqZpnNS5ZFYOhXqA39T7LQ==" - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "js-yaml": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", - "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=", - "requires": { - "argparse": "^1.0.7", - "esprima": "^2.6.0" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "optional": true - }, - "jsdom": { - "version": "9.12.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-9.12.0.tgz", - "integrity": "sha1-6MVG//ywbADUgzyoRBD+1/igl9Q=", - "requires": { - "abab": "^1.0.3", - "acorn": "^4.0.4", - "acorn-globals": "^3.1.0", - "array-equal": "^1.0.0", - "content-type-parser": "^1.0.1", - "cssom": ">= 0.3.2 < 0.4.0", - "cssstyle": ">= 0.2.37 < 0.3.0", - "escodegen": "^1.6.1", - "html-encoding-sniffer": "^1.0.1", - "nwmatcher": ">= 1.3.9 < 2.0.0", - "parse5": "^1.5.1", - "request": "^2.79.0", - "sax": "^1.2.1", - "symbol-tree": "^3.2.1", - "tough-cookie": "^2.3.2", - "webidl-conversions": "^4.0.0", - "whatwg-encoding": "^1.0.1", - "whatwg-url": "^4.3.0", - "xml-name-validator": "^2.0.1" - }, - "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=" - }, - "parse5": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz", - "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=" - } - } - }, - "jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" - }, - "json-loader": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", - "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==" - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" - }, - "json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "requires": { - "jsonify": "~0.0.0" - } - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "json3": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.0.tgz", - "integrity": "sha1-Dp5/bF0nC3WJKa9Nb+/chL1m4lk=" - }, - "json5": { - "version": "0.5.1", - "resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" - }, - "jsonfile": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", - "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "jss": { - "version": "9.8.7", - "resolved": "https://registry.npmjs.org/jss/-/jss-9.8.7.tgz", - "integrity": "sha512-awj3XRZYxbrmmrx9LUSj5pXSUfm12m8xzi/VKeqI1ZwWBtQ0kVPTs3vYs32t4rFw83CgFDukA8wKzOE9sMQnoQ==", - "requires": { - "is-in-browser": "^1.1.3", - "symbol-observable": "^1.1.0", - "warning": "^3.0.0" - } - }, - "jss-camel-case": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jss-camel-case/-/jss-camel-case-6.1.0.tgz", - "integrity": "sha512-HPF2Q7wmNW1t79mCqSeU2vdd/vFFGpkazwvfHMOhPlMgXrJDzdj9viA2SaHk9ZbD5pfL63a8ylp4++irYbbzMQ==", - "requires": { - "hyphenate-style-name": "^1.0.2" - } - }, - "jss-compose": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/jss-compose/-/jss-compose-5.0.0.tgz", - "integrity": "sha512-YofRYuiA0+VbeOw0VjgkyO380sA4+TWDrW52nSluD9n+1FWOlDzNbgpZ/Sb3Y46+DcAbOS21W5jo6SAqUEiuwA==", - "requires": { - "warning": "^3.0.0" - } - }, - "jss-default-unit": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/jss-default-unit/-/jss-default-unit-8.0.2.tgz", - "integrity": "sha512-WxNHrF/18CdoAGw2H0FqOEvJdREXVXLazn7PQYU7V6/BWkCV0GkmWsppNiExdw8dP4TU1ma1dT9zBNJ95feLmg==" - }, - "jss-expand": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/jss-expand/-/jss-expand-5.3.0.tgz", - "integrity": "sha512-NiM4TbDVE0ykXSAw6dfFmB1LIqXP/jdd0ZMnlvlGgEMkMt+weJIl8Ynq1DsuBY9WwkNyzWktdqcEW2VN0RAtQg==" - }, - "jss-extend": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/jss-extend/-/jss-extend-6.2.0.tgz", - "integrity": "sha512-YszrmcB6o9HOsKPszK7NeDBNNjVyiW864jfoiHoMlgMIg2qlxKw70axZHqgczXHDcoyi/0/ikP1XaHDPRvYtEA==", - "requires": { - "warning": "^3.0.0" - } - }, - "jss-global": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/jss-global/-/jss-global-3.0.0.tgz", - "integrity": "sha512-wxYn7vL+TImyQYGAfdplg7yaxnPQ9RaXY/cIA8hawaVnmmWxDHzBK32u1y+RAvWboa3lW83ya3nVZ/C+jyjZ5Q==" - }, - "jss-nested": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/jss-nested/-/jss-nested-6.0.1.tgz", - "integrity": "sha512-rn964TralHOZxoyEgeq3hXY8hyuCElnvQoVrQwKHVmu55VRDd6IqExAx9be5HgK0yN/+hQdgAXQl/GUrBbbSTA==", - "requires": { - "warning": "^3.0.0" - } - }, - "jss-preset-default": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/jss-preset-default/-/jss-preset-default-4.5.0.tgz", - "integrity": "sha512-qZbpRVtHT7hBPpZEBPFfafZKWmq3tA/An5RNqywDsZQGrlinIF/mGD9lmj6jGqu8GrED2SMHZ3pPKLmjCZoiaQ==", - "requires": { - "jss-camel-case": "^6.1.0", - "jss-compose": "^5.0.0", - "jss-default-unit": "^8.0.2", - "jss-expand": "^5.3.0", - "jss-extend": "^6.2.0", - "jss-global": "^3.0.0", - "jss-nested": "^6.0.1", - "jss-props-sort": "^6.0.0", - "jss-template": "^1.0.1", - "jss-vendor-prefixer": "^7.0.0" - } - }, - "jss-props-sort": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/jss-props-sort/-/jss-props-sort-6.0.0.tgz", - "integrity": "sha512-E89UDcrphmI0LzmvYk25Hp4aE5ZBsXqMWlkFXS0EtPkunJkRr+WXdCNYbXbksIPnKlBenGB9OxzQY+mVc70S+g==" - }, - "jss-template": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/jss-template/-/jss-template-1.0.1.tgz", - "integrity": "sha512-m5BqEWha17fmIVXm1z8xbJhY6GFJxNB9H68GVnCWPyGYfxiAgY9WTQyvDAVj+pYRgrXSOfN5V1T4+SzN1sJTeg==", - "requires": { - "warning": "^3.0.0" - } - }, - "jss-vendor-prefixer": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/jss-vendor-prefixer/-/jss-vendor-prefixer-7.0.0.tgz", - "integrity": "sha512-Agd+FKmvsI0HLcYXkvy8GYOw3AAASBUpsmIRvVQheps+JWaN892uFOInTr0DRydwaD91vSSUCU4NssschvF7MA==", - "requires": { - "css-vendor": "^0.3.8" - } - }, - "jsx-ast-utils": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz", - "integrity": "sha1-OGchPo3Xm/Ho8jAMDPwe+xgsDfE=" - }, - "keycode": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.2.0.tgz", - "integrity": "sha1-PQr1bce4uOXLqNCpfxByBO7CKwQ=" - }, - "killable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", - "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==" - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - }, - "klaw": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", - "requires": { - "graceful-fs": "^4.1.9" - } - }, - "latest-version": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", - "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", - "requires": { - "package-json": "^4.0.0" - } - }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "requires": { - "invert-kv": "^1.0.0" - } - }, - "leven": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", - "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=" - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "loader-fs-cache": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.1.tgz", - "integrity": "sha1-VuC/CL2XCLJqdltoUJhAyN7J/bw=", - "requires": { - "find-cache-dir": "^0.1.1", - "mkdirp": "0.5.1" - }, - "dependencies": { - "find-cache-dir": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", - "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", - "requires": { - "commondir": "^1.0.1", - "mkdirp": "^0.5.1", - "pkg-dir": "^1.0.0" - } - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "pkg-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", - "requires": { - "find-up": "^1.0.0" - } - } - } - }, - "loader-runner": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.1.tgz", - "integrity": "sha512-By6ZFY7ETWOc9RFaAIb23IjJVcM4dvJC/N57nmdz9RSkMXvAXGI7SyVlAw3v8vjtDRlqThgVDVmTnr9fqMlxkw==" - }, - "loader-utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", - "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "dependencies": { - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - } - } - }, - "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" - }, - "lodash-es": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.11.tgz", - "integrity": "sha512-DHb1ub+rMjjrxqlB3H56/6MXtm1lSksDp2rA2cNWjG8mlDUYFhUj3Di2Zn5IwSU87xLv8tNIQ7sSwE/YOX/D/Q==" - }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" - }, - "lodash.cond": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/lodash.cond/-/lodash.cond-4.5.2.tgz", - "integrity": "sha1-9HGh2khr5g9quVXRcRVSPdHSVdU=" - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" - }, - "lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=" - }, - "lodash.escape": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-4.0.1.tgz", - "integrity": "sha1-yQRGkMIeBClL6qUXcS/e0fqI3pg=" - }, - "lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=" - }, - "lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" - }, - "lodash.ismatch": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", - "integrity": "sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc=" - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" - }, - "lodash.template": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz", - "integrity": "sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=", - "requires": { - "lodash._reinterpolate": "~3.0.0", - "lodash.templatesettings": "^4.0.0" - } - }, - "lodash.templatesettings": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz", - "integrity": "sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=", - "requires": { - "lodash._reinterpolate": "~3.0.0" - } - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" - }, - "loglevel": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.1.tgz", - "integrity": "sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=" - }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - } - }, - "lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" - }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" - }, - "lru-cache": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "requires": { - "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } - } - }, - "makeerror": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", - "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", - "requires": { - "tmpl": "1.0.x" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "requires": { - "object-visit": "^1.0.0" - } - }, - "math-expression-evaluator": { - "version": "1.2.17", - "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz", - "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=" - }, - "math-random": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", - "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=" - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - } - } - }, - "merge": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz", - "integrity": "sha1-dTHjnUlJwoGma4xabgJl6LBYlNo=" - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "mime-db": { - "version": "1.36.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz", - "integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==" - }, - "mime-types": { - "version": "2.1.20", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz", - "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==", - "requires": { - "mime-db": "~1.36.0" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.10", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", - "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=" - }, - "mixin-deep": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - } - } - }, - "moo": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/moo/-/moo-0.4.3.tgz", - "integrity": "sha512-gFD2xGCl8YFgGHsqJ9NKRVdwlioeW3mI1iqfLNYQOv0+6JRwG58Zk9DIGQgyIaffSYaO1xsKnMaYzzNr1KyIAw==" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", - "requires": { - "dns-packet": "^1.3.1", - "thunky": "^1.0.2" - } - }, - "multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=" - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" - }, - "nan": { - "version": "2.11.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.1.tgz", - "integrity": "sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA==", - "optional": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - } - } - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" - }, - "nearley": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.15.1.tgz", - "integrity": "sha512-8IUY/rUrKz2mIynUGh8k+tul1awMKEjeHHC5G3FHvvyAW6oq4mQfNp2c0BMea+sYZJvYcrrM6GmZVIle/GRXGw==", - "requires": { - "moo": "^0.4.3", - "nomnom": "~1.6.2", - "railroad-diagrams": "^1.0.0", - "randexp": "0.4.6", - "semver": "^5.4.1" - } - }, - "negotiator": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" - }, - "neo-async": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.2.tgz", - "integrity": "sha512-vdqTKI9GBIYcAEbFAcpKPErKINfPF5zIuz3/niBfq8WUZjpT2tytLlFVrBgWdOtqI4uaA/Rb6No0hux39XXDuw==" - }, - "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" - }, - "no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", - "requires": { - "lower-case": "^1.1.1" - } - }, - "node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "requires": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" - } - }, - "node-forge": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz", - "integrity": "sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==" - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" - }, - "node-libs-browser": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", - "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^1.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.0", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.10.3", - "vm-browserify": "0.0.4" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - } - } - }, - "node-notifier": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.2.1.tgz", - "integrity": "sha512-MIBs+AAd6dJ2SklbbE8RUDRlIVhU8MaNLh1A9SUZDUHPiZkWLFde6UNwG41yQHZEToHgJMXqyVZ9UcS/ReOVTg==", - "requires": { - "growly": "^1.3.0", - "semver": "^5.4.1", - "shellwords": "^0.1.1", - "which": "^1.3.0" - } - }, - "nomnom": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.6.2.tgz", - "integrity": "sha1-hKZqJgF0QI/Ft3oY+IjszET7aXE=", - "requires": { - "colors": "0.5.x", - "underscore": "~1.4.4" - } - }, - "normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", - "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" - }, - "normalize-scroll-left": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-scroll-left/-/normalize-scroll-left-0.1.2.tgz", - "integrity": "sha512-F9YMRls0zCF6BFIE2YnXDRpHPpfd91nOIaNdDgrx5YMoPLo8Wqj+6jNXHQsYBavJeXP4ww8HCt0xQAKc5qk2Fg==" - }, - "normalize-url": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", - "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", - "requires": { - "object-assign": "^4.0.1", - "prepend-http": "^1.0.0", - "query-string": "^4.1.0", - "sort-keys": "^1.0.0" - }, - "dependencies": { - "query-string": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", - "requires": { - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" - } - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "requires": { - "path-key": "^2.0.0" - } - }, - "nth-check": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz", - "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", - "requires": { - "boolbase": "~1.0.0" - } - }, - "num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=" - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, - "nwmatcher": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.4.tgz", - "integrity": "sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ==" - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "object-hash": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.0.tgz", - "integrity": "sha512-05KzQ70lSeGSrZJQXE5wNDiTkBJDlUT/myi6RX9dVIvz7a7Qh4oH93BQdiPMn27nldYvVQCKMUaM83AfizZlsQ==" - }, - "object-inspect": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", - "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==" - }, - "object-is": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.1.tgz", - "integrity": "sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY=" - }, - "object-keys": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", - "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==" - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "requires": { - "isobject": "^3.0.0" - } - }, - "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - } - }, - "object.entries": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.0.4.tgz", - "integrity": "sha1-G/mk3SKI9bM/Opk9JXZh8F0WGl8=", - "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.6.1", - "function-bind": "^1.1.0", - "has": "^1.0.1" - } - }, - "object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", - "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "requires": { - "isobject": "^3.0.1" - } - }, - "object.values": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.0.4.tgz", - "integrity": "sha1-5STaCbT2b/Bd9FdUbscqyZ8TBpo=", - "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.6.1", - "function-bind": "^1.1.0", - "has": "^1.0.1" - } - }, - "obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "requires": { - "ee-first": "1.1.1" - } - }, - "on-headers": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", - "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "opn": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.2.0.tgz", - "integrity": "sha512-Jd/GpzPyHF4P2/aNOVmS3lfMSWV9J7cOhCG1s08XCEAsPkB7lp6ddiU0J7XzyQRDUh8BqJ7PchfINjR8jyofRQ==", - "requires": { - "is-wsl": "^1.1.0" - } - }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" - }, - "dependencies": { - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" - } - } - }, - "optionator": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "wordwrap": "~1.0.0" - } - }, - "original": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", - "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", - "requires": { - "url-parse": "^1.4.3" - } - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" - }, - "os-locale": { - "version": "1.4.0", - "resolved": "http://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "requires": { - "lcid": "^1.0.0" - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-map": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", - "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==" - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "package-json": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", - "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", - "requires": { - "got": "^6.7.1", - "registry-auth-token": "^3.0.1", - "registry-url": "^3.0.3", - "semver": "^5.1.0" - } - }, - "pako": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", - "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==" - }, - "param-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", - "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", - "requires": { - "no-case": "^2.2.0" - } - }, - "parse-asn1": { - "version": "5.1.1", - "resolved": "http://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz", - "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==", - "requires": { - "asn1.js": "^4.0.0", - "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3" - } - }, - "parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", - "requires": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "requires": { - "error-ex": "^1.2.0" - } - }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" - }, - "parse5": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz", - "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==", - "requires": { - "@types/node": "*" - } - }, - "parseurl": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", - "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" - }, - "path-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", - "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=" - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" - }, - "path-to-regexp": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", - "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", - "requires": { - "isarray": "0.0.1" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - } - } - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "pbkdf2": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", - "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "requires": { - "pinkie": "^2.0.0" - } - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "requires": { - "find-up": "^2.1.0" - } - }, - "pluralize": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", - "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==" - }, - "popper.js": { - "version": "1.14.4", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.14.4.tgz", - "integrity": "sha1-juwdj/AqWjoVLdQ0FKFce3n9abY=" - }, - "portfinder": { - "version": "1.0.17", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.17.tgz", - "integrity": "sha512-syFcRIRzVI1BoEFOCaAiizwDolh1S1YXSodsVhncbhjzjZQulhczNRbqnUl9N31Q4dKGOXsNDqxC2BWBgSMqeQ==", - "requires": { - "async": "^1.5.2", - "debug": "^2.2.0", - "mkdirp": "0.5.x" - }, - "dependencies": { - "async": { - "version": "1.5.2", - "resolved": "http://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" - } - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-calc": { - "version": "5.3.1", - "resolved": "http://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", - "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=", - "requires": { - "postcss": "^5.0.2", - "postcss-message-helpers": "^2.0.0", - "reduce-css-calc": "^1.2.6" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-colormin": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz", - "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=", - "requires": { - "colormin": "^1.0.5", - "postcss": "^5.0.13", - "postcss-value-parser": "^3.2.3" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-convert-values": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz", - "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=", - "requires": { - "postcss": "^5.0.11", - "postcss-value-parser": "^3.1.2" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-discard-comments": { - "version": "2.0.4", - "resolved": "http://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz", - "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=", - "requires": { - "postcss": "^5.0.14" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-discard-duplicates": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz", - "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=", - "requires": { - "postcss": "^5.0.4" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-discard-empty": { - "version": "2.1.0", - "resolved": "http://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz", - "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=", - "requires": { - "postcss": "^5.0.14" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-discard-overridden": { - "version": "0.1.1", - "resolved": "http://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz", - "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=", - "requires": { - "postcss": "^5.0.16" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-discard-unused": { - "version": "2.2.3", - "resolved": "http://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz", - "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=", - "requires": { - "postcss": "^5.0.14", - "uniqs": "^2.0.0" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-filter-plugins": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.3.tgz", - "integrity": "sha512-T53GVFsdinJhgwm7rg1BzbeBRomOg9y5MBVhGcsV0CxurUdVj1UlPdKtn7aqYA/c/QVkzKMjq2bSV5dKG5+AwQ==", - "requires": { - "postcss": "^5.0.4" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-flexbugs-fixes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-3.2.0.tgz", - "integrity": "sha512-0AuD9HG1Ey3/3nqPWu9yqf7rL0KCPu5VgjDsjf5mzEcuo9H/z8nco/fljKgjsOUrZypa95MI0kS4xBZeBzz2lw==", - "requires": { - "postcss": "^6.0.1" - } - }, - "postcss-load-config": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-1.2.0.tgz", - "integrity": "sha1-U56a/J3chiASHr+djDZz4M5Q0oo=", - "requires": { - "cosmiconfig": "^2.1.0", - "object-assign": "^4.1.0", - "postcss-load-options": "^1.2.0", - "postcss-load-plugins": "^2.3.0" - } - }, - "postcss-load-options": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-load-options/-/postcss-load-options-1.2.0.tgz", - "integrity": "sha1-sJixVZ3awt8EvAuzdfmaXP4rbYw=", - "requires": { - "cosmiconfig": "^2.1.0", - "object-assign": "^4.1.0" - } - }, - "postcss-load-plugins": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz", - "integrity": "sha1-dFdoEWWZrKLwCfrUJrABdQSdjZI=", - "requires": { - "cosmiconfig": "^2.1.1", - "object-assign": "^4.1.0" - } - }, - "postcss-loader": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.0.8.tgz", - "integrity": "sha512-KtXBiQ/r/WYW8LxTSJK7h8wLqvCMSub/BqmRnud/Mu8RzwflW9cmXxwsMwbn15TNv287Hcufdb3ZSs7xHKnG8Q==", - "requires": { - "loader-utils": "^1.1.0", - "postcss": "^6.0.0", - "postcss-load-config": "^1.2.0", - "schema-utils": "^0.3.0" - } - }, - "postcss-merge-idents": { - "version": "2.1.7", - "resolved": "http://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", - "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=", - "requires": { - "has": "^1.0.1", - "postcss": "^5.0.10", - "postcss-value-parser": "^3.1.1" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-merge-longhand": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz", - "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=", - "requires": { - "postcss": "^5.0.4" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-merge-rules": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz", - "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=", - "requires": { - "browserslist": "^1.5.2", - "caniuse-api": "^1.5.2", - "postcss": "^5.0.4", - "postcss-selector-parser": "^2.2.2", - "vendors": "^1.0.0" - }, - "dependencies": { - "browserslist": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", - "requires": { - "caniuse-db": "^1.0.30000639", - "electron-to-chromium": "^1.2.7" - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-message-helpers": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz", - "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=" - }, - "postcss-minify-font-values": { - "version": "1.0.5", - "resolved": "http://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz", - "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=", - "requires": { - "object-assign": "^4.0.1", - "postcss": "^5.0.4", - "postcss-value-parser": "^3.0.2" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-minify-gradients": { - "version": "1.0.5", - "resolved": "http://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz", - "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=", - "requires": { - "postcss": "^5.0.12", - "postcss-value-parser": "^3.3.0" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-minify-params": { - "version": "1.2.2", - "resolved": "http://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz", - "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=", - "requires": { - "alphanum-sort": "^1.0.1", - "postcss": "^5.0.2", - "postcss-value-parser": "^3.0.2", - "uniqs": "^2.0.0" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-minify-selectors": { - "version": "2.1.1", - "resolved": "http://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz", - "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=", - "requires": { - "alphanum-sort": "^1.0.2", - "has": "^1.0.1", - "postcss": "^5.0.14", - "postcss-selector-parser": "^2.0.0" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-modules-extract-imports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz", - "integrity": "sha1-thTJcgvmgW6u41+zpfqh26agXds=", - "requires": { - "postcss": "^6.0.1" - } - }, - "postcss-modules-local-by-default": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", - "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", - "requires": { - "css-selector-tokenizer": "^0.7.0", - "postcss": "^6.0.1" - } - }, - "postcss-modules-scope": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", - "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", - "requires": { - "css-selector-tokenizer": "^0.7.0", - "postcss": "^6.0.1" - } - }, - "postcss-modules-values": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", - "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", - "requires": { - "icss-replace-symbols": "^1.1.0", - "postcss": "^6.0.1" - } - }, - "postcss-normalize-charset": { - "version": "1.1.1", - "resolved": "http://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", - "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=", - "requires": { - "postcss": "^5.0.5" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-normalize-url": { - "version": "3.0.8", - "resolved": "http://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz", - "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=", - "requires": { - "is-absolute-url": "^2.0.0", - "normalize-url": "^1.4.0", - "postcss": "^5.0.14", - "postcss-value-parser": "^3.2.3" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-ordered-values": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz", - "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=", - "requires": { - "postcss": "^5.0.4", - "postcss-value-parser": "^3.0.1" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-reduce-idents": { - "version": "2.4.0", - "resolved": "http://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz", - "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=", - "requires": { - "postcss": "^5.0.4", - "postcss-value-parser": "^3.0.2" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-reduce-initial": { - "version": "1.0.1", - "resolved": "http://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz", - "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=", - "requires": { - "postcss": "^5.0.4" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-reduce-transforms": { - "version": "1.0.4", - "resolved": "http://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz", - "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=", - "requires": { - "has": "^1.0.1", - "postcss": "^5.0.8", - "postcss-value-parser": "^3.0.1" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-selector-parser": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", - "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", - "requires": { - "flatten": "^1.0.2", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - }, - "postcss-svgo": { - "version": "2.1.6", - "resolved": "http://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz", - "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=", - "requires": { - "is-svg": "^2.0.0", - "postcss": "^5.0.14", - "postcss-value-parser": "^3.2.3", - "svgo": "^0.7.0" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-unique-selectors": { - "version": "2.0.2", - "resolved": "http://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", - "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=", - "requires": { - "alphanum-sort": "^1.0.1", - "postcss": "^5.0.4", - "uniqs": "^2.0.0" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "postcss-value-parser": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", - "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=" - }, - "postcss-zindex": { - "version": "2.2.0", - "resolved": "http://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz", - "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=", - "requires": { - "has": "^1.0.1", - "postcss": "^5.0.4", - "uniqs": "^2.0.0" - }, - "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - } - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" - }, - "preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=" - }, - "pretty-bytes": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz", - "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=" - }, - "pretty-error": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", - "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", - "requires": { - "renderkid": "^2.0.1", - "utila": "~0.4" - } - }, - "pretty-format": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-20.0.3.tgz", - "integrity": "sha1-Ag41ClYKH+GpjcO+tsz/s4beixQ=", - "requires": { - "ansi-regex": "^2.1.1", - "ansi-styles": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - } - } - }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" - }, - "progress": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", - "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=" - }, - "promise": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.0.1.tgz", - "integrity": "sha1-5F1osAoXZHttpxG/he1u1HII9FA=", - "requires": { - "asap": "~2.0.3" - } - }, - "proxy-addr": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", - "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", - "requires": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.8.0" - } - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" - }, - "psl": { - "version": "1.1.29", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz", - "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==" - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" - }, - "querystringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.0.0.tgz", - "integrity": "sha512-eTPo5t/4bgaMNZxyjWx6N2a6AuE0mq51KWvpc7nU/MAqixcI6v6KrGUKES0HaomdnolQBBXU/++X6/QQ9KL4tw==" - }, - "raf": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.0.tgz", - "integrity": "sha512-pDP/NMRAXoTfrhCfyfSEwJAKLaxBU9eApMeBPB1TkDouZmvPerIClV8lTAd+uF8ZiTaVl69e1FCxQrAd/VTjGw==", - "requires": { - "performance-now": "^2.1.0" - } - }, - "railroad-diagrams": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz", - "integrity": "sha1-635iZ1SN3t+4mcG5Dlc3RVnN234=" - }, - "randexp": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz", - "integrity": "sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==", - "requires": { - "discontinuous-range": "1.0.0", - "ret": "~0.1.10" - } - }, - "randomatic": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.0.tgz", - "integrity": "sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==", - "requires": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - } - } - }, - "randombytes": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", - "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" - }, - "raw-body": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", - "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", - "requires": { - "bytes": "3.0.0", - "http-errors": "1.6.2", - "iconv-lite": "0.4.19", - "unpipe": "1.0.0" - }, - "dependencies": { - "depd": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", - "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" - }, - "http-errors": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", - "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", - "requires": { - "depd": "1.1.1", - "inherits": "2.0.3", - "setprototypeof": "1.0.3", - "statuses": ">= 1.3.1 < 2" - } - }, - "iconv-lite": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", - "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" - }, - "setprototypeof": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", - "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" - } - } - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - } - } - }, - "react": { - "version": "16.5.2", - "resolved": "https://registry.npmjs.org/react/-/react-16.5.2.tgz", - "integrity": "sha512-FDCSVd3DjVTmbEAjUNX6FgfAmQ+ypJfHUsqUJOYNCBUp1h8lqmtC+0mXJ+JjsWx4KAVTkk1vKd1hLQPvEviSuw==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "schedule": "^0.5.0" - }, - "dependencies": { - "prop-types": { - "version": "15.6.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", - "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", - "requires": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" - } - } - } - }, - "react-dev-utils": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-5.0.2.tgz", - "integrity": "sha512-d2FbKvYe4XAQx5gjHBoWG+ADqC3fGZzjb7i9vxd/Y5xfLkBGtQyX7aOb8lBRQPYUhjngiD3d49LevjY1stUR0Q==", - "requires": { - "address": "1.0.3", - "babel-code-frame": "6.26.0", - "chalk": "1.1.3", - "cross-spawn": "5.1.0", - "detect-port-alt": "1.1.6", - "escape-string-regexp": "1.0.5", - "filesize": "3.5.11", - "global-modules": "1.0.0", - "gzip-size": "3.0.0", - "inquirer": "3.3.0", - "is-root": "1.0.0", - "opn": "5.2.0", - "react-error-overlay": "^4.0.1", - "recursive-readdir": "2.2.1", - "shell-quote": "1.6.1", - "sockjs-client": "1.1.5", - "strip-ansi": "3.0.1", - "text-table": "0.2.0" - } - }, - "react-dom": { - "version": "16.5.2", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.5.2.tgz", - "integrity": "sha512-RC8LDw8feuZOHVgzEf7f+cxBr/DnKdqp56VU0lAs1f4UfKc4cU8wU4fTq/mgnvynLQo8OtlPC19NUFh/zjZPuA==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "schedule": "^0.5.0" - }, - "dependencies": { - "prop-types": { - "version": "15.6.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", - "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", - "requires": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" - } - } - } - }, - "react-error-overlay": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-4.0.1.tgz", - "integrity": "sha512-xXUbDAZkU08aAkjtUvldqbvI04ogv+a1XdHxvYuHPYKIVk/42BIOD0zSKTHAWV4+gDy3yGm283z2072rA2gdtw==" - }, - "react-event-listener": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/react-event-listener/-/react-event-listener-0.6.4.tgz", - "integrity": "sha512-t7VSjIuUFmN+GeyKb+wm025YLeojVB85kJL6sSs0wEBJddfmKBEQz+CNBZ2zBLKVWkPy/fZXM6U5yvojjYBVYQ==", - "requires": { - "@babel/runtime": "7.0.0", - "prop-types": "^15.6.0", - "warning": "^4.0.1" - }, - "dependencies": { - "prop-types": { - "version": "15.6.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", - "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", - "requires": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" - } - }, - "warning": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.2.tgz", - "integrity": "sha512-wbTp09q/9C+jJn4KKJfJfoS6VleK/Dti0yqWSm6KMvJ4MRCXFQNapHuJXutJIrWV0Cf4AhTdeIe4qdKHR1+Hug==", - "requires": { - "loose-envify": "^1.0.0" - } - } - } - }, - "react-is": { - "version": "16.5.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.5.2.tgz", - "integrity": "sha512-hSl7E6l25GTjNEZATqZIuWOgSnpXb3kD0DVCujmg46K5zLxsbiKaaT6VO9slkSBDPZfYs30lwfJwbOFOnoEnKQ==" - }, - "react-jss": { - "version": "8.6.1", - "resolved": "https://registry.npmjs.org/react-jss/-/react-jss-8.6.1.tgz", - "integrity": "sha512-SH6XrJDJkAphp602J14JTy3puB2Zxz1FkM3bKVE8wON+va99jnUTKWnzGECb3NfIn9JPR5vHykge7K3/A747xQ==", - "requires": { - "hoist-non-react-statics": "^2.5.0", - "jss": "^9.7.0", - "jss-preset-default": "^4.3.0", - "prop-types": "^15.6.0", - "theming": "^1.3.0" - }, - "dependencies": { - "prop-types": { - "version": "15.6.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", - "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", - "requires": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" - } - } - } - }, - "react-lifecycles-compat": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" - }, - "react-redux": { - "version": "5.0.7", - "resolved": "http://registry.npmjs.org/react-redux/-/react-redux-5.0.7.tgz", - "integrity": "sha512-5VI8EV5hdgNgyjfmWzBbdrqUkrVRKlyTKk1sGH3jzM2M2Mhj/seQgPXaz6gVAj2lz/nz688AdTqMO18Lr24Zhg==", - "requires": { - "hoist-non-react-statics": "^2.5.0", - "invariant": "^2.0.0", - "lodash": "^4.17.5", - "lodash-es": "^4.17.5", - "loose-envify": "^1.1.0", - "prop-types": "^15.6.0" - }, - "dependencies": { - "prop-types": { - "version": "15.6.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", - "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", - "requires": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" - } - } - } - }, - "react-router": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-4.3.1.tgz", - "integrity": "sha512-yrvL8AogDh2X42Dt9iknk4wF4V8bWREPirFfS9gLU1huk6qK41sg7Z/1S81jjTrGHxa3B8R3J6xIkDAA6CVarg==", - "requires": { - "history": "^4.7.2", - "hoist-non-react-statics": "^2.5.0", - "invariant": "^2.2.4", - "loose-envify": "^1.3.1", - "path-to-regexp": "^1.7.0", - "prop-types": "^15.6.1", - "warning": "^4.0.1" - }, - "dependencies": { - "prop-types": { - "version": "15.6.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", - "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", - "requires": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" - } - }, - "warning": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.2.tgz", - "integrity": "sha512-wbTp09q/9C+jJn4KKJfJfoS6VleK/Dti0yqWSm6KMvJ4MRCXFQNapHuJXutJIrWV0Cf4AhTdeIe4qdKHR1+Hug==", - "requires": { - "loose-envify": "^1.0.0" - } - } - } - }, - "react-router-dom": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-4.3.1.tgz", - "integrity": "sha512-c/MlywfxDdCp7EnB7YfPMOfMD3tOtIjrQlj/CKfNMBxdmpJP8xcz5P/UAFn3JbnQCNUxsHyVVqllF9LhgVyFCA==", - "requires": { - "history": "^4.7.2", - "invariant": "^2.2.4", - "loose-envify": "^1.3.1", - "prop-types": "^15.6.1", - "react-router": "^4.3.1", - "warning": "^4.0.1" - }, - "dependencies": { - "prop-types": { - "version": "15.6.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", - "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", - "requires": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" - } - }, - "warning": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.2.tgz", - "integrity": "sha512-wbTp09q/9C+jJn4KKJfJfoS6VleK/Dti0yqWSm6KMvJ4MRCXFQNapHuJXutJIrWV0Cf4AhTdeIe4qdKHR1+Hug==", - "requires": { - "loose-envify": "^1.0.0" - } - } - } - }, - "react-scripts": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-1.1.5.tgz", - "integrity": "sha512-ZXqnbg+kLRaacAkjuedMFTgKu9lNltMDDsuwn37CTV7X2tuZQmDKi08eI3LYvtpjqh5vm8/6BhwHRHkRtvMyJg==", - "requires": { - "autoprefixer": "7.1.6", - "babel-core": "6.26.0", - "babel-eslint": "7.2.3", - "babel-jest": "20.0.3", - "babel-loader": "7.1.2", - "babel-preset-react-app": "^3.1.2", - "babel-runtime": "6.26.0", - "case-sensitive-paths-webpack-plugin": "2.1.1", - "chalk": "1.1.3", - "css-loader": "0.28.7", - "dotenv": "4.0.0", - "dotenv-expand": "4.2.0", - "eslint": "4.10.0", - "eslint-config-react-app": "^2.1.0", - "eslint-loader": "1.9.0", - "eslint-plugin-flowtype": "2.39.1", - "eslint-plugin-import": "2.8.0", - "eslint-plugin-jsx-a11y": "5.1.1", - "eslint-plugin-react": "7.4.0", - "extract-text-webpack-plugin": "3.0.2", - "file-loader": "1.1.5", - "fs-extra": "3.0.1", - "fsevents": "^1.1.3", - "html-webpack-plugin": "2.29.0", - "jest": "20.0.4", - "object-assign": "4.1.1", - "postcss-flexbugs-fixes": "3.2.0", - "postcss-loader": "2.0.8", - "promise": "8.0.1", - "raf": "3.4.0", - "react-dev-utils": "^5.0.2", - "resolve": "1.6.0", - "style-loader": "0.19.0", - "sw-precache-webpack-plugin": "0.11.4", - "url-loader": "0.6.2", - "webpack": "3.8.1", - "webpack-dev-server": "2.11.3", - "webpack-manifest-plugin": "1.3.2", - "whatwg-fetch": "2.0.3" - }, - "dependencies": { - "babel-core": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", - "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", - "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.0", - "debug": "^2.6.8", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.7", - "slash": "^1.0.0", - "source-map": "^0.5.6" - } - } - } - }, - "react-transition-group": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.5.0.tgz", - "integrity": "sha512-qYB3JBF+9Y4sE4/Mg/9O6WFpdoYjeeYqx0AFb64PTazVy8RPMiE3A47CG9QmM4WJ/mzDiZYslV+Uly6O1Erlgw==", - "requires": { - "dom-helpers": "^3.3.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2", - "react-lifecycles-compat": "^3.0.4" - }, - "dependencies": { - "prop-types": { - "version": "15.6.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", - "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", - "requires": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" - } - } - } - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - } - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - } - } - }, - "recompose": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/recompose/-/recompose-0.30.0.tgz", - "integrity": "sha512-ZTrzzUDa9AqUIhRk4KmVFihH0rapdCSMFXjhHbNrjAWxBuUD/guYlyysMnuHjlZC/KRiOKRtB4jf96yYSkKE8w==", - "requires": { - "@babel/runtime": "^7.0.0", - "change-emitter": "^0.1.2", - "fbjs": "^0.8.1", - "hoist-non-react-statics": "^2.3.1", - "react-lifecycles-compat": "^3.0.2", - "symbol-observable": "^1.0.4" - } - }, - "recursive-readdir": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.1.tgz", - "integrity": "sha1-kO8jHQd4xc4JPJpI105cVCLROpk=", - "requires": { - "minimatch": "3.0.3" - }, - "dependencies": { - "minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=", - "requires": { - "brace-expansion": "^1.0.0" - } - } - } - }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" - } - }, - "reduce-css-calc": { - "version": "1.3.0", - "resolved": "http://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", - "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", - "requires": { - "balanced-match": "^0.4.2", - "math-expression-evaluator": "^1.2.14", - "reduce-function-call": "^1.0.1" - } - }, - "reduce-function-call": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz", - "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=", - "requires": { - "balanced-match": "^0.4.2" - } - }, - "redux": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.0.0.tgz", - "integrity": "sha512-NnnHF0h0WVE/hXyrB6OlX67LYRuaf/rJcbWvnHHEPCF/Xa/AZpwhs/20WyqzQae5x4SD2F9nPObgBh2rxAgLiA==", - "requires": { - "loose-envify": "^1.1.0", - "symbol-observable": "^1.2.0" - } - }, - "redux-mock-store": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/redux-mock-store/-/redux-mock-store-1.5.3.tgz", - "integrity": "sha512-ryhkkb/4D4CUGpAV2ln1GOY/uh51aczjcRz9k2L2bPx/Xja3c5pSGJJPyR25GNVRXtKIExScdAgFdiXp68GmJA==", - "requires": { - "lodash.isplainobject": "^4.0.6" - } - }, - "redux-persist": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/redux-persist/-/redux-persist-5.10.0.tgz", - "integrity": "sha512-sSJAzNq7zka3qVHKce1hbvqf0Vf5DuTVm7dr4GtsqQVOexnrvbV47RWFiPxQ8fscnyiuWyD2O92DOxPl0tGCRg==" - }, - "redux-saga": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/redux-saga/-/redux-saga-0.16.0.tgz", - "integrity": "sha1-CiMdsKFIkwHdmA9vL4jYztQY9yQ=" - }, - "redux-saga-test-plan": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/redux-saga-test-plan/-/redux-saga-test-plan-3.7.0.tgz", - "integrity": "sha512-et9kCnME01kjoKXFfSk4FkozgOPPvllt9TlpL6A7ZYIS/WgoEFMLXk/UYww8KWXbmk5Qo2IF6xCc/IS1KmvP6A==", - "requires": { - "core-js": "^2.4.1", - "fsm-iterator": "^1.1.0", - "lodash.isequal": "^4.5.0", - "lodash.ismatch": "^4.4.0", - "object-assign": "^4.1.0", - "util-inspect": "^0.1.8" - } - }, - "regenerate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", - "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==" - }, - "regenerator-runtime": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", - "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==" - }, - "regenerator-transform": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", - "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", - "requires": { - "babel-runtime": "^6.18.0", - "babel-types": "^6.19.0", - "private": "^0.1.6" - } - }, - "regex-cache": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", - "requires": { - "is-equal-shallow": "^0.1.3" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regexpu-core": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", - "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", - "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" - } - }, - "registry-auth-token": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz", - "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", - "requires": { - "rc": "^1.1.6", - "safe-buffer": "^5.0.1" - } - }, - "registry-url": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", - "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", - "requires": { - "rc": "^1.0.1" - } - }, - "regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=" - }, - "regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" - } - } - }, - "relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=" - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" - }, - "renderkid": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.2.tgz", - "integrity": "sha512-FsygIxevi1jSiPY9h7vZmBFUbAOcbYm9UwyiLNdVsLRs/5We9Ob5NMPbGYUTWiLq5L+ezlVdE0A8bbME5CWTpg==", - "requires": { - "css-select": "^1.1.0", - "dom-converter": "~0.2", - "htmlparser2": "~3.3.0", - "strip-ansi": "^3.0.0", - "utila": "^0.4.0" - }, - "dependencies": { - "domhandler": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.1.0.tgz", - "integrity": "sha1-0mRvXlf2w7qxHPbLBdPArPdBJZQ=", - "requires": { - "domelementtype": "1" - } - }, - "domutils": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.1.6.tgz", - "integrity": "sha1-vdw94Jm5ou+sxRxiPyj0FuzFdIU=", - "requires": { - "domelementtype": "1" - } - }, - "htmlparser2": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.3.0.tgz", - "integrity": "sha1-zHDQWln2VC5D8OaFyYLhTJJKnv4=", - "requires": { - "domelementtype": "1", - "domhandler": "2.1", - "domutils": "1.1", - "readable-stream": "1.0" - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - } - } - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "requires": { - "is-finite": "^1.0.0" - } - }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-from-string": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", - "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=" - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" - }, - "require-uncached": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", - "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", - "requires": { - "caller-path": "^0.1.0", - "resolve-from": "^1.0.0" - } - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" - }, - "resolve": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.6.0.tgz", - "integrity": "sha512-mw7JQNu5ExIkcw4LPih0owX/TZXjD/ZUF/ZQ/pDnkw3ZKhDcZZw5klmBlj6gVMwjQ3Pz5Jgu7F3d0jcDVuEWdw==", - "requires": { - "path-parse": "^1.0.5" - } - }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "requires": { - "resolve-from": "^3.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" - } - } - }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - } - }, - "resolve-from": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", - "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=" - }, - "resolve-pathname": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-2.2.0.tgz", - "integrity": "sha512-bAFz9ld18RzJfddgrO2e/0S2O81710++chRMUxHjXOYKF6jTAMrUNZrEZ1PvV0zlhfjidm08iRPdTLPno1FuRg==" - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" - }, - "right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "requires": { - "align-text": "^0.1.1" - } - }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "requires": { - "glob": "^7.0.5" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "rst-selector-parser": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz", - "integrity": "sha1-gbIw6i/MYGbInjRy3nlChdmwPZE=", - "requires": { - "lodash.flattendeep": "^4.4.0", - "nearley": "^2.7.10" - } - }, - "run-async": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", - "requires": { - "is-promise": "^2.1.0" - } - }, - "rx-lite": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=" - }, - "rx-lite-aggregates": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", - "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", - "requires": { - "rx-lite": "*" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sane": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/sane/-/sane-1.6.0.tgz", - "integrity": "sha1-lhDEUjB6E10pwf3+JUcDQYDEZ3U=", - "requires": { - "anymatch": "^1.3.0", - "exec-sh": "^0.2.0", - "fb-watchman": "^1.8.0", - "minimatch": "^3.0.2", - "minimist": "^1.1.1", - "walker": "~1.0.5", - "watch": "~0.10.0" - }, - "dependencies": { - "bser": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bser/-/bser-1.0.2.tgz", - "integrity": "sha1-OBEWlwsqbe6lZG3RXdcnhES1YWk=", - "requires": { - "node-int64": "^0.4.0" - } - }, - "fb-watchman": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-1.9.2.tgz", - "integrity": "sha1-okz0eCf4LTj7Waaa1wt247auc4M=", - "requires": { - "bser": "1.0.2" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - } - } - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "schedule": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/schedule/-/schedule-0.5.0.tgz", - "integrity": "sha512-HUcJicG5Ou8xfR//c2rPT0lPIRR09vVvN81T9fqfVgBmhERUbDEQoYKjpBxbueJnCPpSu2ujXzOnRQt6x9o/jw==", - "requires": { - "object-assign": "^4.1.1" - } - }, - "schema-utils": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", - "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", - "requires": { - "ajv": "^5.0.0" - } - }, - "select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" - }, - "selfsigned": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.3.tgz", - "integrity": "sha512-vmZenZ+8Al3NLHkWnhBQ0x6BkML1eCP2xEi3JE+f3D9wW9fipD9NNJHYtE9XJM4TsPaHGZJIamrSI6MTg1dU2Q==", - "requires": { - "node-forge": "0.7.5" - } - }, - "semver": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", - "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==" - }, - "semver-diff": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", - "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", - "requires": { - "semver": "^5.0.3" - } - }, - "send": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", - "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.6.2", - "mime": "1.4.1", - "ms": "2.0.0", - "on-finished": "~2.3.0", - "range-parser": "~1.2.0", - "statuses": "~1.4.0" - }, - "dependencies": { - "mime": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", - "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" - } - } - }, - "serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", - "requires": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - } - }, - "serve-static": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", - "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.2", - "send": "0.16.2" - } - }, - "serviceworker-cache-polyfill": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serviceworker-cache-polyfill/-/serviceworker-cache-polyfill-4.0.0.tgz", - "integrity": "sha1-3hnuc77yGrPAdAo3sz22JGS6ves=" - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "set-value": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" - }, - "sha.js": { - "version": "2.4.11", - "resolved": "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" - }, - "shell-quote": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", - "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", - "requires": { - "array-filter": "~0.0.0", - "array-map": "~0.0.0", - "array-reduce": "~0.0.0", - "jsonify": "~0.0.0" - } - }, - "shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==" - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" - }, - "slice-ansi": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", - "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", - "requires": { - "is-fullwidth-code-point": "^2.0.0" - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "requires": { - "kind-of": "^3.2.0" - } - }, - "sockjs": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", - "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", - "requires": { - "faye-websocket": "^0.10.0", - "uuid": "^3.0.1" - }, - "dependencies": { - "faye-websocket": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", - "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", - "requires": { - "websocket-driver": ">=0.5.1" - } - } - } - }, - "sockjs-client": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.5.tgz", - "integrity": "sha1-G7fA9yIsQPQq3xT0RCy9Eml3GoM=", - "requires": { - "debug": "^2.6.6", - "eventsource": "0.1.6", - "faye-websocket": "~0.11.0", - "inherits": "^2.0.1", - "json3": "^3.3.2", - "url-parse": "^1.1.8" - }, - "dependencies": { - "json3": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", - "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=" - } - } - }, - "sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", - "requires": { - "is-plain-obj": "^1.0.0" - } - }, - "source-list-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", - "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", - "requires": { - "atob": "^2.1.1", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "requires": { - "source-map": "^0.5.6" - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" - }, - "spdx-correct": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz", - "integrity": "sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ==", - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==" - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.1.tgz", - "integrity": "sha512-TfOfPcYGBB5sDuPn3deByxPhmfegAhpDYKSOXZQN81Oyrrif8ZCodOLzK3AesELnCx03kikhyDwh0pfvvQvF8w==" - }, - "spdy": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz", - "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", - "requires": { - "debug": "^2.6.8", - "handle-thing": "^1.2.5", - "http-deceiver": "^1.2.7", - "safe-buffer": "^5.0.1", - "select-hose": "^2.0.0", - "spdy-transport": "^2.0.18" - } - }, - "spdy-transport": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.1.0.tgz", - "integrity": "sha512-bpUeGpZcmZ692rrTiqf9/2EUakI6/kXX1Rpe0ib/DyOzbiexVfXkw6GnvI9hVGvIwVaUhkaBojjCZwLNRGQg1g==", - "requires": { - "debug": "^2.6.8", - "detect-node": "^2.0.3", - "hpack.js": "^2.1.6", - "obuf": "^1.1.1", - "readable-stream": "^2.2.9", - "safe-buffer": "^5.0.1", - "wbuf": "^1.7.2" - } - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "sshpk": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", - "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "statuses": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" - }, - "stream-browserify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", - "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "string-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz", - "integrity": "sha1-VpcPscOFWOnnC3KL894mmsRa36w=", - "requires": { - "strip-ansi": "^3.0.0" - } - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "string.prototype.trim": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz", - "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=", - "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.0", - "function-bind": "^1.0.2" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "requires": { - "is-utf8": "^0.2.0" - } - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" - }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "requires": { - "get-stdin": "^4.0.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" - }, - "style-loader": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.19.0.tgz", - "integrity": "sha512-9mx9sC9nX1dgP96MZOODpGC6l1RzQBITI2D5WJhu+wnbrSYVKLGuy14XJSLVQih/0GFrPpjelt+s//VcZQ2Evw==", - "requires": { - "loader-utils": "^1.0.2", - "schema-utils": "^0.3.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - }, - "svgo": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", - "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=", - "requires": { - "coa": "~1.0.1", - "colors": "~1.1.2", - "csso": "~2.3.1", - "js-yaml": "~3.7.0", - "mkdirp": "~0.5.1", - "sax": "~1.2.1", - "whet.extend": "~0.9.9" - }, - "dependencies": { - "colors": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=" - } - } - }, - "sw-precache": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/sw-precache/-/sw-precache-5.2.1.tgz", - "integrity": "sha512-8FAy+BP/FXE+ILfiVTt+GQJ6UEf4CVHD9OfhzH0JX+3zoy2uFk7Vn9EfXASOtVmmIVbL3jE/W8Z66VgPSZcMhw==", - "requires": { - "dom-urls": "^1.1.0", - "es6-promise": "^4.0.5", - "glob": "^7.1.1", - "lodash.defaults": "^4.2.0", - "lodash.template": "^4.4.0", - "meow": "^3.7.0", - "mkdirp": "^0.5.1", - "pretty-bytes": "^4.0.2", - "sw-toolbox": "^3.4.0", - "update-notifier": "^2.3.0" - } - }, - "sw-precache-webpack-plugin": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/sw-precache-webpack-plugin/-/sw-precache-webpack-plugin-0.11.4.tgz", - "integrity": "sha1-ppUBflTu1XVVFJOlGdwdqNotxeA=", - "requires": { - "del": "^2.2.2", - "sw-precache": "^5.1.1", - "uglify-js": "^3.0.13" - } - }, - "sw-toolbox": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/sw-toolbox/-/sw-toolbox-3.6.0.tgz", - "integrity": "sha1-Jt8dHHA0hljk3qKIQxkUm3sxg7U=", - "requires": { - "path-to-regexp": "^1.0.1", - "serviceworker-cache-polyfill": "^4.0.0" - } - }, - "symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" - }, - "symbol-tree": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz", - "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=" - }, - "table": { - "version": "4.0.3", - "resolved": "http://registry.npmjs.org/table/-/table-4.0.3.tgz", - "integrity": "sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg==", - "requires": { - "ajv": "^6.0.1", - "ajv-keywords": "^3.0.0", - "chalk": "^2.1.0", - "lodash": "^4.17.4", - "slice-ansi": "1.0.0", - "string-width": "^2.1.1" - }, - "dependencies": { - "ajv": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.4.tgz", - "integrity": "sha512-4Wyjt8+t6YszqaXnLDfMmG/8AlO5Zbcsy3ATHncCzjW/NoPzAId8AK6749Ybjmdt+kUY1gP60fCu46oDxPv/mg==", - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "tapable": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz", - "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=" - }, - "term-size": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", - "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", - "requires": { - "execa": "^0.7.0" - } - }, - "test-exclude": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.3.tgz", - "integrity": "sha512-SYbXgY64PT+4GAL2ocI3HwPa4Q4TBKm0cwAVeKOt/Aoc0gSpNRjJX8w0pA1LMKZ3LBmd8pYBqApFNQLII9kavA==", - "requires": { - "arrify": "^1.0.1", - "micromatch": "^2.3.11", - "object-assign": "^4.1.0", - "read-pkg-up": "^1.0.1", - "require-main-filename": "^1.0.1" - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" - }, - "theming": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/theming/-/theming-1.3.0.tgz", - "integrity": "sha512-ya5Ef7XDGbTPBv5ENTwrwkPUexrlPeiAg/EI9kdlUAZhNlRbCdhMKRgjNX1IcmsmiPcqDQZE6BpSaH+cr31FKw==", - "requires": { - "brcast": "^3.0.1", - "is-function": "^1.0.1", - "is-plain-object": "^2.0.1", - "prop-types": "^15.5.8" - }, - "dependencies": { - "prop-types": { - "version": "15.6.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", - "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", - "requires": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" - } - } - } - }, - "throat": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/throat/-/throat-3.2.0.tgz", - "integrity": "sha512-/EY8VpvlqJ+sFtLPeOgc8Pl7kQVOWv0woD87KTXVHPIAE842FGT+rokxIhe8xIUP1cfgrkt0as0vDLjDiMtr8w==" - }, - "through": { - "version": "2.3.8", - "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - }, - "thunky": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.2.tgz", - "integrity": "sha1-qGLgGOP7HqLsP85dVWBc9X8kc3E=" - }, - "time-stamp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-2.1.0.tgz", - "integrity": "sha512-lJbq6KsFhZJtN3fPUVje1tq/hHsJOKUUcUj/MGCiQR6qWBDcyi5kxL9J7/RnaEChCn0+L/DUN2WvemDrkk4i3Q==" - }, - "timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" - }, - "timers-browserify": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", - "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", - "requires": { - "setimmediate": "^1.0.4" - } - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "tmpl": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", - "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=" - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" - }, - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "requires": { - "kind-of": "^3.0.2" - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "toposort": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz", - "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=" - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - } - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=" - }, - "trim-right": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "optional": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "type-is": { - "version": "1.6.16", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", - "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.18" - } - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, - "ua-parser-js": { - "version": "0.7.18", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.18.tgz", - "integrity": "sha512-LtzwHlVHwFGTptfNSgezHp7WUlwiqb0gA9AALRbKaERfxwJoiX0A73QbTToxteIAuIaFshhgIZfqK8s7clqgnA==" - }, - "uglify-js": { - "version": "3.4.9", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.9.tgz", - "integrity": "sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==", - "requires": { - "commander": "~2.17.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "commander": { - "version": "2.17.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", - "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "optional": true - }, - "uglifyjs-webpack-plugin": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", - "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", - "requires": { - "source-map": "^0.5.6", - "uglify-js": "^2.8.29", - "webpack-sources": "^1.0.1" - }, - "dependencies": { - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=" - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", - "wordwrap": "0.0.2" - } - }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" - } - }, - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=" - }, - "yargs": { - "version": "3.10.0", - "resolved": "http://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" - } - } - } - }, - "underscore": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz", - "integrity": "sha1-YaajIBBiKvoHljvzJSA88SI51gQ=" - }, - "union-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^0.4.3" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "set-value": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" - } - } - } - }, - "uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" - }, - "uniqs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=" - }, - "unique-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", - "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", - "requires": { - "crypto-random-string": "^1.0.0" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" - } - } - }, - "unzip-response": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", - "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=" - }, - "upath": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz", - "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==" - }, - "update-notifier": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", - "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", - "requires": { - "boxen": "^1.2.1", - "chalk": "^2.0.1", - "configstore": "^3.0.0", - "import-lazy": "^2.1.0", - "is-ci": "^1.0.10", - "is-installed-globally": "^0.1.0", - "is-npm": "^1.0.0", - "latest-version": "^3.0.0", - "semver-diff": "^2.0.0", - "xdg-basedir": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "upper-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "requires": { - "punycode": "^2.1.0" - } - }, - "urijs": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.1.tgz", - "integrity": "sha512-xVrGVi94ueCJNrBSTjWqjvtgvl3cyOTThp2zaMaFNGp3F542TR6sM3f2o8RqZl+AwteClSVmoCyt0ka4RjQOQg==" - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" - } - } - }, - "url-loader": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-0.6.2.tgz", - "integrity": "sha512-h3qf9TNn53BpuXTTcpC+UehiRrl0Cv45Yr/xWayApjw6G8Bg2dGke7rIwDQ39piciWCWrC+WiqLjOh3SUp9n0Q==", - "requires": { - "loader-utils": "^1.0.2", - "mime": "^1.4.1", - "schema-utils": "^0.3.0" - } - }, - "url-parse": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.3.tgz", - "integrity": "sha512-rh+KuAW36YKo0vClhQzLLveoj8FwPJNu65xLb7Mrt+eZht0IPT0IXgSv8gcMegZ6NvjJUALf6Mf25POlMwD1Fw==", - "requires": { - "querystringify": "^2.0.0", - "requires-port": "^1.0.0" - } - }, - "url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", - "requires": { - "prepend-http": "^1.0.1" - } - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" - }, - "util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", - "requires": { - "inherits": "2.0.3" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "util-inspect": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/util-inspect/-/util-inspect-0.1.8.tgz", - "integrity": "sha1-KznbzS2SHy2EMJI8r/QPS1zqXbE=", - "requires": { - "array-map": "0.0.0", - "array-reduce": "0.0.0", - "foreach": "2.0.4", - "indexof": "0.0.1", - "isarray": "0.0.1", - "json3": "3.3.0", - "object-keys": "0.5.0" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "object-keys": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.5.0.tgz", - "integrity": "sha1-CeIR8+ADGK/E9ZLjbnzcENmtcpM=" - } - } - }, - "utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "value-equal": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-0.4.0.tgz", - "integrity": "sha512-x+cYdNnaA3CxvMaTX0INdTCN8m8aF2uY9BvEqmxuYp8bL09cs/kWVQPVGcA35fMktdOsP69IgU7wFj/61dJHEw==" - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "vendors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.2.tgz", - "integrity": "sha512-w/hry/368nO21AN9QljsaIhb9ZiZtZARoVH5f3CsFbawdLdayCgKRPup7CggujvySMxx0I91NOyxdVENohprLQ==" - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "vm-browserify": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", - "requires": { - "indexof": "0.0.1" - } - }, - "walker": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", - "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", - "requires": { - "makeerror": "1.0.x" - } - }, - "warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", - "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", - "requires": { - "loose-envify": "^1.0.0" - } - }, - "watch": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/watch/-/watch-0.10.0.tgz", - "integrity": "sha1-d3mLLaD5kQ1ZXxrOWwwiWFIfIdw=" - }, - "watchpack": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", - "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", - "requires": { - "chokidar": "^2.0.2", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0" - } - }, - "wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "requires": { - "minimalistic-assert": "^1.0.0" - } - }, - "webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" - }, - "webpack": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.8.1.tgz", - "integrity": "sha512-5ZXLWWsMqHKFr5y0N3Eo5IIisxeEeRAajNq4mELb/WELOR7srdbQk2N5XiyNy2A/AgvlR3AmeBCZJW8lHrolbw==", - "requires": { - "acorn": "^5.0.0", - "acorn-dynamic-import": "^2.0.0", - "ajv": "^5.1.5", - "ajv-keywords": "^2.0.0", - "async": "^2.1.2", - "enhanced-resolve": "^3.4.0", - "escope": "^3.6.0", - "interpret": "^1.0.0", - "json-loader": "^0.5.4", - "json5": "^0.5.1", - "loader-runner": "^2.3.0", - "loader-utils": "^1.1.0", - "memory-fs": "~0.4.1", - "mkdirp": "~0.5.0", - "node-libs-browser": "^2.0.0", - "source-map": "^0.5.3", - "supports-color": "^4.2.1", - "tapable": "^0.2.7", - "uglifyjs-webpack-plugin": "^0.4.6", - "watchpack": "^1.4.0", - "webpack-sources": "^1.0.1", - "yargs": "^8.0.2" - }, - "dependencies": { - "ajv-keywords": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", - "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=" - }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" - }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - } - }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" - } - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "requires": { - "pify": "^2.0.0" - } - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" - }, - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "requires": { - "has-flag": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, - "yargs": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", - "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", - "requires": { - "camelcase": "^4.1.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "read-pkg-up": "^2.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^7.0.0" - } - }, - "yargs-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", - "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", - "requires": { - "camelcase": "^4.1.0" - } - } - } - }, - "webpack-dev-middleware": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz", - "integrity": "sha512-FCrqPy1yy/sN6U/SaEZcHKRXGlqU0DUaEBL45jkUYoB8foVb6wCnbIJ1HKIx+qUFTW+3JpVcCJCxZ8VATL4e+A==", - "requires": { - "memory-fs": "~0.4.1", - "mime": "^1.5.0", - "path-is-absolute": "^1.0.0", - "range-parser": "^1.0.3", - "time-stamp": "^2.0.0" - } - }, - "webpack-dev-server": { - "version": "2.11.3", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-2.11.3.tgz", - "integrity": "sha512-Qz22YEFhWx+M2vvJ+rQppRv39JA0h5NNbOOdODApdX6iZ52Diz7vTPXjF7kJlfn+Uc24Qr48I3SZ9yncQwRycg==", - "requires": { - "ansi-html": "0.0.7", - "array-includes": "^3.0.3", - "bonjour": "^3.5.0", - "chokidar": "^2.0.0", - "compression": "^1.5.2", - "connect-history-api-fallback": "^1.3.0", - "debug": "^3.1.0", - "del": "^3.0.0", - "express": "^4.16.2", - "html-entities": "^1.2.0", - "http-proxy-middleware": "~0.17.4", - "import-local": "^1.0.0", - "internal-ip": "1.2.0", - "ip": "^1.1.5", - "killable": "^1.0.0", - "loglevel": "^1.4.1", - "opn": "^5.1.0", - "portfinder": "^1.0.9", - "selfsigned": "^1.9.1", - "serve-index": "^1.7.2", - "sockjs": "0.3.19", - "sockjs-client": "1.1.5", - "spdy": "^3.4.1", - "strip-ansi": "^3.0.0", - "supports-color": "^5.1.0", - "webpack-dev-middleware": "1.12.2", - "yargs": "6.6.0" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "^2.1.1" - } - }, - "del": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", - "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", - "requires": { - "globby": "^6.1.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "p-map": "^1.1.1", - "pify": "^3.0.0", - "rimraf": "^2.2.8" - } - }, - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } - } - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - }, - "yargs": { - "version": "6.6.0", - "resolved": "http://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", - "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", - "requires": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^4.2.0" - } - }, - "yargs-parser": { - "version": "4.2.1", - "resolved": "http://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", - "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", - "requires": { - "camelcase": "^3.0.0" - } - } - } - }, - "webpack-manifest-plugin": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-1.3.2.tgz", - "integrity": "sha512-MX60Bv2G83Zks9pi3oLOmRgnPAnwrlMn+lftMrWBm199VQjk46/xgzBi9lPfpZldw2+EI2S+OevuLIaDuxCWRw==", - "requires": { - "fs-extra": "^0.30.0", - "lodash": ">=3.5 <5" - }, - "dependencies": { - "fs-extra": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", - "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" - } - }, - "jsonfile": { - "version": "2.4.0", - "resolved": "http://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "requires": { - "graceful-fs": "^4.1.6" - } - } - } - }, - "webpack-sources": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz", - "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==", - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "websocket-driver": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", - "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", - "requires": { - "http-parser-js": ">=0.4.0", - "websocket-extensions": ">=0.1.1" - } - }, - "websocket-extensions": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", - "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==" - }, - "whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "requires": { - "iconv-lite": "0.4.24" - } - }, - "whatwg-fetch": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz", - "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=" - }, - "whatwg-url": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-4.8.0.tgz", - "integrity": "sha1-0pgaqRSMHgCkHFphMRZqtGg7vMA=", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - }, - "dependencies": { - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - } - } - }, - "whet.extend": { - "version": "0.9.9", - "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", - "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=" - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" - }, - "widest-line": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.0.tgz", - "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", - "requires": { - "string-width": "^2.1.1" - } - }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=" - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" - }, - "worker-farm": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz", - "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", - "requires": { - "errno": "~0.1.7" - } - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", - "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", - "requires": { - "mkdirp": "^0.5.1" - } - }, - "write-file-atomic": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", - "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, - "xdg-basedir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", - "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=" - }, - "xml-name-validator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz", - "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=" - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" - }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - }, - "yargs": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", - "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", - "requires": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^5.0.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } - } - }, - "yargs-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", - "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", - "requires": { - "camelcase": "^3.0.0" - } - } - } -} diff --git a/package.json b/package.json index 9c2fc51..d7faaf4 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "axios": "^0.18.0", "enzyme": "^3.6.0", "enzyme-adapter-react-16": "^1.5.0", + "grpc-web-client": "^0.6.3", "prop-types": "^15.6.2", "react": "^16.5.2", "react-dom": "^16.5.2", @@ -30,5 +31,9 @@ "test": "react-scripts test --env=jsdom", "test-cover": "react-scripts test --coverage --env=jsdom", "eject": "react-scripts eject" + }, + "peerDependencies": { + "@types/google-protobuf": "^3.2.7", + "google-protobuf": "^3.6.1" } } diff --git a/src/utils/api/index.js b/src/utils/api/index.js index 73652d6..38741c7 100644 --- a/src/utils/api/index.js +++ b/src/utils/api/index.js @@ -1,4 +1,7 @@ -import { authUser, users } from './_DATA' +import { authUser, users } from './_DATA'; +import { grpc } from 'grpc-web-client'; +import { AccountServiceClient } from './../grpc_proto/generated/account_pb_service'; +import { AccountByAuthenticationProviderRequest } from './../grpc_proto/generated/account_pb'; export function _getUsers() { return new Promise((res, rej) => { @@ -24,6 +27,19 @@ function ServerSideDatasource(fakeServer) { ServerSideDatasource.prototype.getRows = function(params) { console.log('ServerSideDatasource.getRows: params = ', params); + let host = "http://account.dev-eu.nynja.net:443"; + let accountByAuthenticationProviderRequest = new AccountByAuthenticationProviderRequest(); + accountByAuthenticationProviderRequest.authenticationType = 1; + + let accountServiceClient = new AccountServiceClient(host); + accountByAuthenticationProviderRequest.authenticationIdentifier = 'BG:359886444412'; + let grpcReturn = new Promise((resolve, reject)=>{ + accountServiceClient.getAccountByAuthenticationProvider(accountByAuthenticationProviderRequest, {}, (error, response) => { + console.log("response", response); + console.log("error", error); + }) + }); + // the request is passed dynamically from ag-grid var request = params.request; console.log('request', request); diff --git a/src/utils/grpc_proto/account.proto b/src/utils/grpc_proto/account.proto new file mode 100644 index 0000000..719c77a --- /dev/null +++ b/src/utils/grpc_proto/account.proto @@ -0,0 +1,273 @@ +// +// proto3 +// Syntax documentation - see https://developers.google.com/protocol-buffers/docs/proto3 +// +syntax = "proto3"; + +// GRPC package, also used by the Go code generator +package account; + +option java_generic_services = true; +option java_multiple_files = true; +option java_package = "biz.nynja.account.grpc"; +option java_outer_classname = "Account"; + +service AccountService { + rpc createPendingAccount(CreatePendingAccountRequest) returns (CreatePendingAccountResponse); + rpc completePendingAccountCreation(CompletePendingAccountCreationRequest) returns (AccountResponse); + rpc createAccount(CreateAccountRequest) returns (AccountResponse); + rpc getAllAccountsByProfileId(AccountsByProfileIdRequest) returns (AccountsResponse); + rpc getAccountByAccountId(AccountByAccountIdRequest) returns (AccountResponse); + rpc getAccountByAuthenticationProvider(AccountByAuthenticationProviderRequest) returns (AccountResponse); + rpc updateAccount (UpdateAccountRequest) returns (AccountResponse); + rpc updateProfile (UpdateProfileRequest) returns (ProfileResponse); + rpc deleteAccount (DeleteAccountRequest) returns (StatusResponse); + rpc deleteProfile (DeleteProfileRequest) returns (StatusResponse); + rpc addAuthenticationProviderToProfile(AddAuthenticationProviderRequest) returns (StatusResponse); + rpc deleteAuthenticationProviderFromProfile(DeleteAuthenticationProviderRequest) returns (StatusResponse); + rpc addContactInfoToAccount(AddContactInfoRequest) returns (StatusResponse); + rpc deleteContactInfoFromAccount(DeleteContactInfoRequest) returns (StatusResponse); + rpc editContactInfoForAccount(EditContactInfoRequest) returns (StatusResponse); +} + +enum AuthenticationType { + MISSING_TYPE = 0; + PHONE = 1; + EMAIL = 2; + FACEBOOK = 3; + GOOGLEPLUS = 4; +} + +enum ContactType { + MISSING_CONTACT_TYPE = 0; + PHONE_CONTACT = 1; + EMAIL_CONTACT = 2; + FACEBOOK_CONTACT = 3; + GOOGLEPLUS_CONTACT = 4; + TWITTER_CONTACT = 5; +} + +enum Status { + NOT_SET = 0; + ACTIVE = 1; + SUSPENDED = 2; + TERMINATED = 3; +} + +message CreatePendingAccountRequest { + AuthenticationType authenticationType = 1; // Request for creating an account by phone number, email address, etc. + string authenticationProvider = 2; +} + +//PREVIOUSLY RESERVED FIELD NUMBERS: 10 +//NOT to be used for newly added fields. +message CompletePendingAccountCreationRequest { + string accountId = 1; + bytes avatar = 2; + string accountMark = 3; + string accountName = 4; + string firstName = 5; + string lastName = 6; + string username = 7; + string accountStatus = 8; + string qrCode = 9; +} + +message CreateAccountRequest { + AuthenticationType authenticationType = 1; // Request for creating an account by phone number, email address, etc. + string authenticationProvider = 2; +} + +message AccountsByProfileIdRequest { + string profileId = 1; +} + +message AccountByAccountIdRequest { + string accountId = 1; +} + +message AccountByAuthenticationProviderRequest { + AuthenticationType authenticationType = 1; // Can be PHONE, EMAIL, FB, GOOGLE+ + string authenticationIdentifier = 2; // The actual value to search for, like the phone number, + // email address, Facebook user Id, Google user Id +} + +//PREVIOUSLY RESERVED FIELD NUMBERS: 9 +//NOT to be used for newly added fields. +message UpdateAccountRequest { + string accountId = 1; + bytes avatar = 2; + string accountMark = 3; + string accountName = 4; + string firstName = 5; + string lastName = 6; + string username = 7; + string accountStatus = 8; +} + +message DeleteAccountRequest { + string accountId = 1; +} + +message DeleteProfileRequest { + string profileId = 1; +} + +message AddAuthenticationProviderRequest { + string profileId = 1; + AuthProviderDetails authenticationProvider = 2; +} + +message AddContactInfoRequest { + string accountId = 1; + ContactDetails contactInfo = 2; +} + +message DeleteAuthenticationProviderRequest { + string profileId = 1; + AuthProviderDetails authenticationProvider = 2; +} + +message DeleteContactInfoRequest { + string accountId = 1; + ContactDetails contactInfo = 2; +} + +message EditContactInfoRequest { + string accountId = 1; + ContactDetails oldContactInfo = 2; + ContactDetails editedContactInfo = 3; +} + +message PendingAccountDetails { + string accountId = 1; +} + +message CreatePendingAccountResponse { + uint64 requestId = 1; + oneof result { + ErrorResponse error = 2; + PendingAccountDetails pendingAccountDetails = 3; + } +} + +message UpdateProfileRequest { + string profileId = 1; + AuthProviderDetails backupAuthProvider = 3; + string passcode = 4; + string defaultAccountId = 5; +} + +message AuthProviderDetails { + AuthenticationType authenticationType = 1; // Request for creating an account by phone number, email address, etc. + string authenticationProvider = 2; +} + +message ContactDetails { + ContactType type = 1; + string value = 2; + string label = 3; +} + +//PREVIOUSLY RESERVED FIELD NUMBERS: 13 +//NOT to be used for newly added fields. +message AccountDetails { + string accountId = 1; + string profileId = 2; + string authenticationIdentifier = 3; + string authenticationType = 4; + bytes avatar = 5; + string accountMark = 6; + string accountName = 7; + string firstName = 8; + string lastName = 9; + string username = 10; + string accountStatus = 11; + string qrCode = 12; + repeated ContactDetails contactsInfo = 14; +} + +message AccountResponse { + uint64 requestId = 1; + oneof result { + ErrorResponse error = 2; + AccountDetails accountDetails = 3; + } +} + +message StatusResponse { + uint64 requestId = 1; + oneof result { + ErrorResponse error = 2; + string status = 3; + } +} + +message AccountsList { + repeated AccountDetails accountDetails = 1; +} + +message AccountsResponse { + uint64 requestId = 1; + oneof result { + ErrorResponse error = 2; + AccountsList accountsResponse = 3; + } +} + +message ProfileDetails { + string profileId = 1; + repeated AuthProviderDetails authProviders = 2; + AuthProviderDetails backupAuthProvider = 3; + string passcode = 4; + string defaultAccountId = 5; +} + +message ProfileResponse { + uint64 requestId = 1; + oneof result { + ErrorResponse error = 2; + ProfileDetails profileDetails = 3; + } +} + +message ErrorResponse { + enum Cause { + INTERNAL_SERVER_ERROR = 0; + MISSING_FIRST_NAME = 1; + EMAIL_ALREADY_USED = 2; + EMAIL_INVALID = 3; + PHONE_NUMBER_ALREADY_USED = 4; + PHONE_NUMBER_INVALID = 5; + USERNAME_ALREADY_USED = 6; + USERNAME_INVALID = 7; + ACCOUNT_NOT_FOUND = 8; + MISSING_AUTH_PROVIDER_TYPE = 9; + MISSING_AUTH_PROVIDER_IDENTIFIER = 10; + MISSING_PROFILE_ID = 11; + MISSING_ACCOUNT_ID = 12; + INVALID_FIRST_NAME = 13; + INVALID_LAST_NAME = 14; + INVALID_AUTH_PROVIDER_TYPE = 15; + ERROR_CREATING_ACCOUNT = 16; + ERROR_UPDATING_ACCOUNT = 17; + ERROR_UPDATING_PROFILE = 18; + ACCOUNT_NAME_INVALID = 19; + ACCOUNT_ALREADY_CREATED = 20; + ERROR_DELETING_ACCOUNT = 21; + ERROR_DELETING_PROFILE = 22; + ERROR_ADDING_AUTH_PROVIDER = 23; + ERROR_DELETING_AUTH_PROVIDER = 24; + PROFILE_NOT_FOUND = 25; + INVALID_PROFILE_ID = 26; + AUTH_PROVIDER_ALREADY_USED = 27; + MISSING_CONTACT_INFO_TYPE = 28; + MISSING_CONTACT_INFO_IDENTIFIER = 29; + INVALID_ACCOUNT_ID = 30; + ERROR_ADDING_CONTACT_INFO = 31; + ERROR_REMOVING_CONTACT_INFO = 32; + ERROR_EDITING_CONTACT_INFO = 33; + } + Cause cause = 1; + string message = 2; +} \ No newline at end of file diff --git a/src/utils/grpc_proto/auth.proto b/src/utils/grpc_proto/auth.proto new file mode 100644 index 0000000..54fb790 --- /dev/null +++ b/src/utils/grpc_proto/auth.proto @@ -0,0 +1,131 @@ +// +// proto3 +// Syntax documentation - see https://developers.google.com/protocol-buffers/docs/proto3 +// +syntax = "proto3"; + +// GRPC package, also used by the Go code generator +package authentication; + +option java_generic_services = true; +option java_multiple_files = true; +option java_package = "biz.nynja.authentication.grpc"; +option java_outer_classname = "Authentication"; + +service AuthenticationService { + rpc generateAuthToken(GenerateAuthTokenRequest) returns (GenerateTokenResponse); + rpc generateVerifyToken(GenerateVerifyTokenRequest) returns (GenerateTokenResponse); + rpc generateAccessToken(GenerateAccessTokenRequest) returns (GenerateAccessTokenResponse); + rpc verifyAuthProvider(VerifyAuthProviderRequest) returns (StatusResponse); +} + +message GenerateAuthTokenRequest { + RequestTokenType tokenType = 1; + string instanceId = 2; + string appClass = 3; + string orgId = 4; +} + +message GenerateVerifyTokenRequest { + string sid = 1; + SidType sidType = 2; + enum SendMethod { + IDLE = 0; + SMS = 1; + CALL = 2; + } + SendMethod sendVia = 3; +} + +message GenerateAccessTokenRequest { + RequestTokenType tokenType = 1; + string instanceId = 2; + string appClass = 3; + string orgId = 4; + SidType sidType = 5; + string verifyToken = 6; + string loginCode = 7; + string socialToken = 8; + string deviceId = 9; +} + +enum SidType { + NOT_SET = 0; + PHONE = 1; + EMAIL = 2; + FACEBOOK = 3; + GOOGLEPLUS = 4; +} + +message VerifyAuthProviderRequest { + string verifyToken = 1; + string verifyCode=2; + string profileId=3; +} + +message GenerateTokenResponse { + oneof result { + ErrorResponse error = 1; + TokenResponseDetails tokenResponseDetails = 2; + } +} + +message GenerateAccessTokenResponse { + oneof result { + ErrorResponse error = 1; + AccessTokenResponseDetails accessTokenResponseDetails = 2; + } +} + +message TokenResponseDetails { + string token = 1; + ResponseTokenType responseTokenType = 2; + int64 exp = 3; + string refreshToken = 4; +} + +message StatusResponse { + oneof result { + ErrorResponse error = 1; + string status = 2; + } +} +message ErrorResponse { + enum Cause { + INTERNAL_SERVER_ERROR = 0; + PHONE_NUMBER_INVALID = 1; + SID_INVALID = 2; + SID_TYPE_INVALID = 3; + EXPIRED_VERIFY_TOKEN = 4; + INVALID_VERIFY_CODE = 5; + SEND_VIA_INVALID = 6; + MAX_VERIFY_REQUESTS_REACHED = 7; + MISSING_PROFILE_ID = 8; + INVALID_PROFILE_ID = 9; + MISSING_VERIFY_TOKEN = 10; + MISSING_VERIFY_CODE = 11; + MAX_PHONE_FAILED_ATTEMPTS_REACHED = 12; + EMAIL_INVALID = 13; + SOCIAL_TOKEN_INVALID = 14; + MAX_DEVICE_FAILED_ATTEMPTS_REACHED = 15; + } + Cause cause = 1; + string message = 2; +} + +enum ResponseTokenType { + BEARER = 0; + CODE = 1; +} + +enum RequestTokenType { + AUTH = 0; + VERIFY = 1; + ACCESS = 2; +} + +message AccessTokenResponseDetails { + TokenResponseDetails tokenResponseDetails = 1; + bool isPendingAccount = 2; + string accountId = 3; +} diff --git a/src/utils/grpc_proto/generated/account_pb.js b/src/utils/grpc_proto/generated/account_pb.js new file mode 100644 index 0000000..43181ee --- /dev/null +++ b/src/utils/grpc_proto/generated/account_pb.js @@ -0,0 +1,6075 @@ +/* eslint-disable */ +/** + * @fileoverview + * @enhanceable + * @suppress {messageConventions} JS Compiler reports an error if a variable or + * field starts with 'MSG_' and isn't a translatable message. + * @public + */ +// GENERATED CODE -- DO NOT EDIT! + +var jspb = require('google-protobuf'); +var goog = jspb; +var global = Function('return this')(); + +goog.exportSymbol('proto.account.AccountByAccountIdRequest', null, global); +goog.exportSymbol('proto.account.AccountByAuthenticationProviderRequest', null, global); +goog.exportSymbol('proto.account.AccountDetails', null, global); +goog.exportSymbol('proto.account.AccountResponse', null, global); +goog.exportSymbol('proto.account.AccountsByProfileIdRequest', null, global); +goog.exportSymbol('proto.account.AccountsList', null, global); +goog.exportSymbol('proto.account.AccountsResponse', null, global); +goog.exportSymbol('proto.account.AddAuthenticationProviderRequest', null, global); +goog.exportSymbol('proto.account.AddContactInfoRequest', null, global); +goog.exportSymbol('proto.account.AuthProviderDetails', null, global); +goog.exportSymbol('proto.account.AuthenticationType', null, global); +goog.exportSymbol('proto.account.CompletePendingAccountCreationRequest', null, global); +goog.exportSymbol('proto.account.ContactDetails', null, global); +goog.exportSymbol('proto.account.ContactType', null, global); +goog.exportSymbol('proto.account.CreateAccountRequest', null, global); +goog.exportSymbol('proto.account.CreatePendingAccountRequest', null, global); +goog.exportSymbol('proto.account.CreatePendingAccountResponse', null, global); +goog.exportSymbol('proto.account.DeleteAccountRequest', null, global); +goog.exportSymbol('proto.account.DeleteAuthenticationProviderRequest', null, global); +goog.exportSymbol('proto.account.DeleteContactInfoRequest', null, global); +goog.exportSymbol('proto.account.DeleteProfileRequest', null, global); +goog.exportSymbol('proto.account.EditContactInfoRequest', null, global); +goog.exportSymbol('proto.account.ErrorResponse', null, global); +goog.exportSymbol('proto.account.ErrorResponse.Cause', null, global); +goog.exportSymbol('proto.account.PendingAccountDetails', null, global); +goog.exportSymbol('proto.account.ProfileDetails', null, global); +goog.exportSymbol('proto.account.ProfileResponse', null, global); +goog.exportSymbol('proto.account.Status', null, global); +goog.exportSymbol('proto.account.StatusResponse', null, global); +goog.exportSymbol('proto.account.UpdateAccountRequest', null, global); +goog.exportSymbol('proto.account.UpdateProfileRequest', null, global); + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.account.CreatePendingAccountRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.account.CreatePendingAccountRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.account.CreatePendingAccountRequest.displayName = 'proto.account.CreatePendingAccountRequest'; +} + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.account.CreatePendingAccountRequest.prototype.toObject = function(opt_includeInstance) { + return proto.account.CreatePendingAccountRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.account.CreatePendingAccountRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.CreatePendingAccountRequest.toObject = function(includeInstance, msg) { + var f, obj = { + authenticationtype: jspb.Message.getFieldWithDefault(msg, 1, 0), + authenticationprovider: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.account.CreatePendingAccountRequest} + */ +proto.account.CreatePendingAccountRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.account.CreatePendingAccountRequest; + return proto.account.CreatePendingAccountRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.account.CreatePendingAccountRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.account.CreatePendingAccountRequest} + */ +proto.account.CreatePendingAccountRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {!proto.account.AuthenticationType} */ (reader.readEnum()); + msg.setAuthenticationtype(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setAuthenticationprovider(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.account.CreatePendingAccountRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.account.CreatePendingAccountRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.account.CreatePendingAccountRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.CreatePendingAccountRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getAuthenticationtype(); + if (f !== 0.0) { + writer.writeEnum( + 1, + f + ); + } + f = message.getAuthenticationprovider(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * optional AuthenticationType authenticationType = 1; + * @return {!proto.account.AuthenticationType} + */ +proto.account.CreatePendingAccountRequest.prototype.getAuthenticationtype = function() { + return /** @type {!proto.account.AuthenticationType} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** @param {!proto.account.AuthenticationType} value */ +proto.account.CreatePendingAccountRequest.prototype.setAuthenticationtype = function(value) { + jspb.Message.setProto3EnumField(this, 1, value); +}; + + +/** + * optional string authenticationProvider = 2; + * @return {string} + */ +proto.account.CreatePendingAccountRequest.prototype.getAuthenticationprovider = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** @param {string} value */ +proto.account.CreatePendingAccountRequest.prototype.setAuthenticationprovider = function(value) { + jspb.Message.setProto3StringField(this, 2, value); +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.account.CompletePendingAccountCreationRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.account.CompletePendingAccountCreationRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.account.CompletePendingAccountCreationRequest.displayName = 'proto.account.CompletePendingAccountCreationRequest'; +} + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.account.CompletePendingAccountCreationRequest.prototype.toObject = function(opt_includeInstance) { + return proto.account.CompletePendingAccountCreationRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.account.CompletePendingAccountCreationRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.CompletePendingAccountCreationRequest.toObject = function(includeInstance, msg) { + var f, obj = { + accountid: jspb.Message.getFieldWithDefault(msg, 1, ""), + avatar: msg.getAvatar_asB64(), + accountmark: jspb.Message.getFieldWithDefault(msg, 3, ""), + accountname: jspb.Message.getFieldWithDefault(msg, 4, ""), + firstname: jspb.Message.getFieldWithDefault(msg, 5, ""), + lastname: jspb.Message.getFieldWithDefault(msg, 6, ""), + username: jspb.Message.getFieldWithDefault(msg, 7, ""), + accountstatus: jspb.Message.getFieldWithDefault(msg, 8, ""), + qrcode: jspb.Message.getFieldWithDefault(msg, 9, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.account.CompletePendingAccountCreationRequest} + */ +proto.account.CompletePendingAccountCreationRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.account.CompletePendingAccountCreationRequest; + return proto.account.CompletePendingAccountCreationRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.account.CompletePendingAccountCreationRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.account.CompletePendingAccountCreationRequest} + */ +proto.account.CompletePendingAccountCreationRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setAccountid(value); + break; + case 2: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setAvatar(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setAccountmark(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setAccountname(value); + break; + case 5: + var value = /** @type {string} */ (reader.readString()); + msg.setFirstname(value); + break; + case 6: + var value = /** @type {string} */ (reader.readString()); + msg.setLastname(value); + break; + case 7: + var value = /** @type {string} */ (reader.readString()); + msg.setUsername(value); + break; + case 8: + var value = /** @type {string} */ (reader.readString()); + msg.setAccountstatus(value); + break; + case 9: + var value = /** @type {string} */ (reader.readString()); + msg.setQrcode(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.account.CompletePendingAccountCreationRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.account.CompletePendingAccountCreationRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.account.CompletePendingAccountCreationRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.CompletePendingAccountCreationRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getAccountid(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getAvatar_asU8(); + if (f.length > 0) { + writer.writeBytes( + 2, + f + ); + } + f = message.getAccountmark(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getAccountname(); + if (f.length > 0) { + writer.writeString( + 4, + f + ); + } + f = message.getFirstname(); + if (f.length > 0) { + writer.writeString( + 5, + f + ); + } + f = message.getLastname(); + if (f.length > 0) { + writer.writeString( + 6, + f + ); + } + f = message.getUsername(); + if (f.length > 0) { + writer.writeString( + 7, + f + ); + } + f = message.getAccountstatus(); + if (f.length > 0) { + writer.writeString( + 8, + f + ); + } + f = message.getQrcode(); + if (f.length > 0) { + writer.writeString( + 9, + f + ); + } +}; + + +/** + * optional string accountId = 1; + * @return {string} + */ +proto.account.CompletePendingAccountCreationRequest.prototype.getAccountid = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** @param {string} value */ +proto.account.CompletePendingAccountCreationRequest.prototype.setAccountid = function(value) { + jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional bytes avatar = 2; + * @return {!(string|Uint8Array)} + */ +proto.account.CompletePendingAccountCreationRequest.prototype.getAvatar = function() { + return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * optional bytes avatar = 2; + * This is a type-conversion wrapper around `getAvatar()` + * @return {string} + */ +proto.account.CompletePendingAccountCreationRequest.prototype.getAvatar_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getAvatar())); +}; + + +/** + * optional bytes avatar = 2; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getAvatar()` + * @return {!Uint8Array} + */ +proto.account.CompletePendingAccountCreationRequest.prototype.getAvatar_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getAvatar())); +}; + + +/** @param {!(string|Uint8Array)} value */ +proto.account.CompletePendingAccountCreationRequest.prototype.setAvatar = function(value) { + jspb.Message.setProto3BytesField(this, 2, value); +}; + + +/** + * optional string accountMark = 3; + * @return {string} + */ +proto.account.CompletePendingAccountCreationRequest.prototype.getAccountmark = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** @param {string} value */ +proto.account.CompletePendingAccountCreationRequest.prototype.setAccountmark = function(value) { + jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional string accountName = 4; + * @return {string} + */ +proto.account.CompletePendingAccountCreationRequest.prototype.getAccountname = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** @param {string} value */ +proto.account.CompletePendingAccountCreationRequest.prototype.setAccountname = function(value) { + jspb.Message.setProto3StringField(this, 4, value); +}; + + +/** + * optional string firstName = 5; + * @return {string} + */ +proto.account.CompletePendingAccountCreationRequest.prototype.getFirstname = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); +}; + + +/** @param {string} value */ +proto.account.CompletePendingAccountCreationRequest.prototype.setFirstname = function(value) { + jspb.Message.setProto3StringField(this, 5, value); +}; + + +/** + * optional string lastName = 6; + * @return {string} + */ +proto.account.CompletePendingAccountCreationRequest.prototype.getLastname = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); +}; + + +/** @param {string} value */ +proto.account.CompletePendingAccountCreationRequest.prototype.setLastname = function(value) { + jspb.Message.setProto3StringField(this, 6, value); +}; + + +/** + * optional string username = 7; + * @return {string} + */ +proto.account.CompletePendingAccountCreationRequest.prototype.getUsername = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); +}; + + +/** @param {string} value */ +proto.account.CompletePendingAccountCreationRequest.prototype.setUsername = function(value) { + jspb.Message.setProto3StringField(this, 7, value); +}; + + +/** + * optional string accountStatus = 8; + * @return {string} + */ +proto.account.CompletePendingAccountCreationRequest.prototype.getAccountstatus = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, "")); +}; + + +/** @param {string} value */ +proto.account.CompletePendingAccountCreationRequest.prototype.setAccountstatus = function(value) { + jspb.Message.setProto3StringField(this, 8, value); +}; + + +/** + * optional string qrCode = 9; + * @return {string} + */ +proto.account.CompletePendingAccountCreationRequest.prototype.getQrcode = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, "")); +}; + + +/** @param {string} value */ +proto.account.CompletePendingAccountCreationRequest.prototype.setQrcode = function(value) { + jspb.Message.setProto3StringField(this, 9, value); +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.account.CreateAccountRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.account.CreateAccountRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.account.CreateAccountRequest.displayName = 'proto.account.CreateAccountRequest'; +} + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.account.CreateAccountRequest.prototype.toObject = function(opt_includeInstance) { + return proto.account.CreateAccountRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.account.CreateAccountRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.CreateAccountRequest.toObject = function(includeInstance, msg) { + var f, obj = { + authenticationtype: jspb.Message.getFieldWithDefault(msg, 1, 0), + authenticationprovider: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.account.CreateAccountRequest} + */ +proto.account.CreateAccountRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.account.CreateAccountRequest; + return proto.account.CreateAccountRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.account.CreateAccountRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.account.CreateAccountRequest} + */ +proto.account.CreateAccountRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {!proto.account.AuthenticationType} */ (reader.readEnum()); + msg.setAuthenticationtype(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setAuthenticationprovider(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.account.CreateAccountRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.account.CreateAccountRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.account.CreateAccountRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.CreateAccountRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getAuthenticationtype(); + if (f !== 0.0) { + writer.writeEnum( + 1, + f + ); + } + f = message.getAuthenticationprovider(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * optional AuthenticationType authenticationType = 1; + * @return {!proto.account.AuthenticationType} + */ +proto.account.CreateAccountRequest.prototype.getAuthenticationtype = function() { + return /** @type {!proto.account.AuthenticationType} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** @param {!proto.account.AuthenticationType} value */ +proto.account.CreateAccountRequest.prototype.setAuthenticationtype = function(value) { + jspb.Message.setProto3EnumField(this, 1, value); +}; + + +/** + * optional string authenticationProvider = 2; + * @return {string} + */ +proto.account.CreateAccountRequest.prototype.getAuthenticationprovider = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** @param {string} value */ +proto.account.CreateAccountRequest.prototype.setAuthenticationprovider = function(value) { + jspb.Message.setProto3StringField(this, 2, value); +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.account.AccountsByProfileIdRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.account.AccountsByProfileIdRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.account.AccountsByProfileIdRequest.displayName = 'proto.account.AccountsByProfileIdRequest'; +} + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.account.AccountsByProfileIdRequest.prototype.toObject = function(opt_includeInstance) { + return proto.account.AccountsByProfileIdRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.account.AccountsByProfileIdRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.AccountsByProfileIdRequest.toObject = function(includeInstance, msg) { + var f, obj = { + profileid: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.account.AccountsByProfileIdRequest} + */ +proto.account.AccountsByProfileIdRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.account.AccountsByProfileIdRequest; + return proto.account.AccountsByProfileIdRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.account.AccountsByProfileIdRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.account.AccountsByProfileIdRequest} + */ +proto.account.AccountsByProfileIdRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setProfileid(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.account.AccountsByProfileIdRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.account.AccountsByProfileIdRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.account.AccountsByProfileIdRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.AccountsByProfileIdRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getProfileid(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string profileId = 1; + * @return {string} + */ +proto.account.AccountsByProfileIdRequest.prototype.getProfileid = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** @param {string} value */ +proto.account.AccountsByProfileIdRequest.prototype.setProfileid = function(value) { + jspb.Message.setProto3StringField(this, 1, value); +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.account.AccountByAccountIdRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.account.AccountByAccountIdRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.account.AccountByAccountIdRequest.displayName = 'proto.account.AccountByAccountIdRequest'; +} + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.account.AccountByAccountIdRequest.prototype.toObject = function(opt_includeInstance) { + return proto.account.AccountByAccountIdRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.account.AccountByAccountIdRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.AccountByAccountIdRequest.toObject = function(includeInstance, msg) { + var f, obj = { + accountid: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.account.AccountByAccountIdRequest} + */ +proto.account.AccountByAccountIdRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.account.AccountByAccountIdRequest; + return proto.account.AccountByAccountIdRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.account.AccountByAccountIdRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.account.AccountByAccountIdRequest} + */ +proto.account.AccountByAccountIdRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setAccountid(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.account.AccountByAccountIdRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.account.AccountByAccountIdRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.account.AccountByAccountIdRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.AccountByAccountIdRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getAccountid(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string accountId = 1; + * @return {string} + */ +proto.account.AccountByAccountIdRequest.prototype.getAccountid = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** @param {string} value */ +proto.account.AccountByAccountIdRequest.prototype.setAccountid = function(value) { + jspb.Message.setProto3StringField(this, 1, value); +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.account.AccountByAuthenticationProviderRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.account.AccountByAuthenticationProviderRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.account.AccountByAuthenticationProviderRequest.displayName = 'proto.account.AccountByAuthenticationProviderRequest'; +} + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.account.AccountByAuthenticationProviderRequest.prototype.toObject = function(opt_includeInstance) { + return proto.account.AccountByAuthenticationProviderRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.account.AccountByAuthenticationProviderRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.AccountByAuthenticationProviderRequest.toObject = function(includeInstance, msg) { + var f, obj = { + authenticationtype: jspb.Message.getFieldWithDefault(msg, 1, 0), + authenticationidentifier: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.account.AccountByAuthenticationProviderRequest} + */ +proto.account.AccountByAuthenticationProviderRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.account.AccountByAuthenticationProviderRequest; + return proto.account.AccountByAuthenticationProviderRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.account.AccountByAuthenticationProviderRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.account.AccountByAuthenticationProviderRequest} + */ +proto.account.AccountByAuthenticationProviderRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {!proto.account.AuthenticationType} */ (reader.readEnum()); + msg.setAuthenticationtype(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setAuthenticationidentifier(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.account.AccountByAuthenticationProviderRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.account.AccountByAuthenticationProviderRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.account.AccountByAuthenticationProviderRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.AccountByAuthenticationProviderRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getAuthenticationtype(); + if (f !== 0.0) { + writer.writeEnum( + 1, + f + ); + } + f = message.getAuthenticationidentifier(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * optional AuthenticationType authenticationType = 1; + * @return {!proto.account.AuthenticationType} + */ +proto.account.AccountByAuthenticationProviderRequest.prototype.getAuthenticationtype = function() { + return /** @type {!proto.account.AuthenticationType} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** @param {!proto.account.AuthenticationType} value */ +proto.account.AccountByAuthenticationProviderRequest.prototype.setAuthenticationtype = function(value) { + jspb.Message.setProto3EnumField(this, 1, value); +}; + + +/** + * optional string authenticationIdentifier = 2; + * @return {string} + */ +proto.account.AccountByAuthenticationProviderRequest.prototype.getAuthenticationidentifier = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** @param {string} value */ +proto.account.AccountByAuthenticationProviderRequest.prototype.setAuthenticationidentifier = function(value) { + jspb.Message.setProto3StringField(this, 2, value); +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.account.UpdateAccountRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.account.UpdateAccountRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.account.UpdateAccountRequest.displayName = 'proto.account.UpdateAccountRequest'; +} + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.account.UpdateAccountRequest.prototype.toObject = function(opt_includeInstance) { + return proto.account.UpdateAccountRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.account.UpdateAccountRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.UpdateAccountRequest.toObject = function(includeInstance, msg) { + var f, obj = { + accountid: jspb.Message.getFieldWithDefault(msg, 1, ""), + avatar: msg.getAvatar_asB64(), + accountmark: jspb.Message.getFieldWithDefault(msg, 3, ""), + accountname: jspb.Message.getFieldWithDefault(msg, 4, ""), + firstname: jspb.Message.getFieldWithDefault(msg, 5, ""), + lastname: jspb.Message.getFieldWithDefault(msg, 6, ""), + username: jspb.Message.getFieldWithDefault(msg, 7, ""), + accountstatus: jspb.Message.getFieldWithDefault(msg, 8, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.account.UpdateAccountRequest} + */ +proto.account.UpdateAccountRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.account.UpdateAccountRequest; + return proto.account.UpdateAccountRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.account.UpdateAccountRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.account.UpdateAccountRequest} + */ +proto.account.UpdateAccountRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setAccountid(value); + break; + case 2: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setAvatar(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setAccountmark(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setAccountname(value); + break; + case 5: + var value = /** @type {string} */ (reader.readString()); + msg.setFirstname(value); + break; + case 6: + var value = /** @type {string} */ (reader.readString()); + msg.setLastname(value); + break; + case 7: + var value = /** @type {string} */ (reader.readString()); + msg.setUsername(value); + break; + case 8: + var value = /** @type {string} */ (reader.readString()); + msg.setAccountstatus(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.account.UpdateAccountRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.account.UpdateAccountRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.account.UpdateAccountRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.UpdateAccountRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getAccountid(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getAvatar_asU8(); + if (f.length > 0) { + writer.writeBytes( + 2, + f + ); + } + f = message.getAccountmark(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getAccountname(); + if (f.length > 0) { + writer.writeString( + 4, + f + ); + } + f = message.getFirstname(); + if (f.length > 0) { + writer.writeString( + 5, + f + ); + } + f = message.getLastname(); + if (f.length > 0) { + writer.writeString( + 6, + f + ); + } + f = message.getUsername(); + if (f.length > 0) { + writer.writeString( + 7, + f + ); + } + f = message.getAccountstatus(); + if (f.length > 0) { + writer.writeString( + 8, + f + ); + } +}; + + +/** + * optional string accountId = 1; + * @return {string} + */ +proto.account.UpdateAccountRequest.prototype.getAccountid = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** @param {string} value */ +proto.account.UpdateAccountRequest.prototype.setAccountid = function(value) { + jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional bytes avatar = 2; + * @return {!(string|Uint8Array)} + */ +proto.account.UpdateAccountRequest.prototype.getAvatar = function() { + return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * optional bytes avatar = 2; + * This is a type-conversion wrapper around `getAvatar()` + * @return {string} + */ +proto.account.UpdateAccountRequest.prototype.getAvatar_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getAvatar())); +}; + + +/** + * optional bytes avatar = 2; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getAvatar()` + * @return {!Uint8Array} + */ +proto.account.UpdateAccountRequest.prototype.getAvatar_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getAvatar())); +}; + + +/** @param {!(string|Uint8Array)} value */ +proto.account.UpdateAccountRequest.prototype.setAvatar = function(value) { + jspb.Message.setProto3BytesField(this, 2, value); +}; + + +/** + * optional string accountMark = 3; + * @return {string} + */ +proto.account.UpdateAccountRequest.prototype.getAccountmark = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** @param {string} value */ +proto.account.UpdateAccountRequest.prototype.setAccountmark = function(value) { + jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional string accountName = 4; + * @return {string} + */ +proto.account.UpdateAccountRequest.prototype.getAccountname = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** @param {string} value */ +proto.account.UpdateAccountRequest.prototype.setAccountname = function(value) { + jspb.Message.setProto3StringField(this, 4, value); +}; + + +/** + * optional string firstName = 5; + * @return {string} + */ +proto.account.UpdateAccountRequest.prototype.getFirstname = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); +}; + + +/** @param {string} value */ +proto.account.UpdateAccountRequest.prototype.setFirstname = function(value) { + jspb.Message.setProto3StringField(this, 5, value); +}; + + +/** + * optional string lastName = 6; + * @return {string} + */ +proto.account.UpdateAccountRequest.prototype.getLastname = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); +}; + + +/** @param {string} value */ +proto.account.UpdateAccountRequest.prototype.setLastname = function(value) { + jspb.Message.setProto3StringField(this, 6, value); +}; + + +/** + * optional string username = 7; + * @return {string} + */ +proto.account.UpdateAccountRequest.prototype.getUsername = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); +}; + + +/** @param {string} value */ +proto.account.UpdateAccountRequest.prototype.setUsername = function(value) { + jspb.Message.setProto3StringField(this, 7, value); +}; + + +/** + * optional string accountStatus = 8; + * @return {string} + */ +proto.account.UpdateAccountRequest.prototype.getAccountstatus = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, "")); +}; + + +/** @param {string} value */ +proto.account.UpdateAccountRequest.prototype.setAccountstatus = function(value) { + jspb.Message.setProto3StringField(this, 8, value); +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.account.DeleteAccountRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.account.DeleteAccountRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.account.DeleteAccountRequest.displayName = 'proto.account.DeleteAccountRequest'; +} + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.account.DeleteAccountRequest.prototype.toObject = function(opt_includeInstance) { + return proto.account.DeleteAccountRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.account.DeleteAccountRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.DeleteAccountRequest.toObject = function(includeInstance, msg) { + var f, obj = { + accountid: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.account.DeleteAccountRequest} + */ +proto.account.DeleteAccountRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.account.DeleteAccountRequest; + return proto.account.DeleteAccountRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.account.DeleteAccountRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.account.DeleteAccountRequest} + */ +proto.account.DeleteAccountRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setAccountid(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.account.DeleteAccountRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.account.DeleteAccountRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.account.DeleteAccountRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.DeleteAccountRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getAccountid(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string accountId = 1; + * @return {string} + */ +proto.account.DeleteAccountRequest.prototype.getAccountid = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** @param {string} value */ +proto.account.DeleteAccountRequest.prototype.setAccountid = function(value) { + jspb.Message.setProto3StringField(this, 1, value); +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.account.DeleteProfileRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.account.DeleteProfileRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.account.DeleteProfileRequest.displayName = 'proto.account.DeleteProfileRequest'; +} + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.account.DeleteProfileRequest.prototype.toObject = function(opt_includeInstance) { + return proto.account.DeleteProfileRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.account.DeleteProfileRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.DeleteProfileRequest.toObject = function(includeInstance, msg) { + var f, obj = { + profileid: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.account.DeleteProfileRequest} + */ +proto.account.DeleteProfileRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.account.DeleteProfileRequest; + return proto.account.DeleteProfileRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.account.DeleteProfileRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.account.DeleteProfileRequest} + */ +proto.account.DeleteProfileRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setProfileid(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.account.DeleteProfileRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.account.DeleteProfileRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.account.DeleteProfileRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.DeleteProfileRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getProfileid(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string profileId = 1; + * @return {string} + */ +proto.account.DeleteProfileRequest.prototype.getProfileid = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** @param {string} value */ +proto.account.DeleteProfileRequest.prototype.setProfileid = function(value) { + jspb.Message.setProto3StringField(this, 1, value); +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.account.AddAuthenticationProviderRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.account.AddAuthenticationProviderRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.account.AddAuthenticationProviderRequest.displayName = 'proto.account.AddAuthenticationProviderRequest'; +} + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.account.AddAuthenticationProviderRequest.prototype.toObject = function(opt_includeInstance) { + return proto.account.AddAuthenticationProviderRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.account.AddAuthenticationProviderRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.AddAuthenticationProviderRequest.toObject = function(includeInstance, msg) { + var f, obj = { + profileid: jspb.Message.getFieldWithDefault(msg, 1, ""), + authenticationprovider: (f = msg.getAuthenticationprovider()) && proto.account.AuthProviderDetails.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.account.AddAuthenticationProviderRequest} + */ +proto.account.AddAuthenticationProviderRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.account.AddAuthenticationProviderRequest; + return proto.account.AddAuthenticationProviderRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.account.AddAuthenticationProviderRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.account.AddAuthenticationProviderRequest} + */ +proto.account.AddAuthenticationProviderRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setProfileid(value); + break; + case 2: + var value = new proto.account.AuthProviderDetails; + reader.readMessage(value,proto.account.AuthProviderDetails.deserializeBinaryFromReader); + msg.setAuthenticationprovider(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.account.AddAuthenticationProviderRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.account.AddAuthenticationProviderRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.account.AddAuthenticationProviderRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.AddAuthenticationProviderRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getProfileid(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getAuthenticationprovider(); + if (f != null) { + writer.writeMessage( + 2, + f, + proto.account.AuthProviderDetails.serializeBinaryToWriter + ); + } +}; + + +/** + * optional string profileId = 1; + * @return {string} + */ +proto.account.AddAuthenticationProviderRequest.prototype.getProfileid = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** @param {string} value */ +proto.account.AddAuthenticationProviderRequest.prototype.setProfileid = function(value) { + jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional AuthProviderDetails authenticationProvider = 2; + * @return {?proto.account.AuthProviderDetails} + */ +proto.account.AddAuthenticationProviderRequest.prototype.getAuthenticationprovider = function() { + return /** @type{?proto.account.AuthProviderDetails} */ ( + jspb.Message.getWrapperField(this, proto.account.AuthProviderDetails, 2)); +}; + + +/** @param {?proto.account.AuthProviderDetails|undefined} value */ +proto.account.AddAuthenticationProviderRequest.prototype.setAuthenticationprovider = function(value) { + jspb.Message.setWrapperField(this, 2, value); +}; + + +proto.account.AddAuthenticationProviderRequest.prototype.clearAuthenticationprovider = function() { + this.setAuthenticationprovider(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {!boolean} + */ +proto.account.AddAuthenticationProviderRequest.prototype.hasAuthenticationprovider = function() { + return jspb.Message.getField(this, 2) != null; +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.account.AddContactInfoRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.account.AddContactInfoRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.account.AddContactInfoRequest.displayName = 'proto.account.AddContactInfoRequest'; +} + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.account.AddContactInfoRequest.prototype.toObject = function(opt_includeInstance) { + return proto.account.AddContactInfoRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.account.AddContactInfoRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.AddContactInfoRequest.toObject = function(includeInstance, msg) { + var f, obj = { + accountid: jspb.Message.getFieldWithDefault(msg, 1, ""), + contactinfo: (f = msg.getContactinfo()) && proto.account.ContactDetails.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.account.AddContactInfoRequest} + */ +proto.account.AddContactInfoRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.account.AddContactInfoRequest; + return proto.account.AddContactInfoRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.account.AddContactInfoRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.account.AddContactInfoRequest} + */ +proto.account.AddContactInfoRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setAccountid(value); + break; + case 2: + var value = new proto.account.ContactDetails; + reader.readMessage(value,proto.account.ContactDetails.deserializeBinaryFromReader); + msg.setContactinfo(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.account.AddContactInfoRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.account.AddContactInfoRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.account.AddContactInfoRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.AddContactInfoRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getAccountid(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getContactinfo(); + if (f != null) { + writer.writeMessage( + 2, + f, + proto.account.ContactDetails.serializeBinaryToWriter + ); + } +}; + + +/** + * optional string accountId = 1; + * @return {string} + */ +proto.account.AddContactInfoRequest.prototype.getAccountid = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** @param {string} value */ +proto.account.AddContactInfoRequest.prototype.setAccountid = function(value) { + jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional ContactDetails contactInfo = 2; + * @return {?proto.account.ContactDetails} + */ +proto.account.AddContactInfoRequest.prototype.getContactinfo = function() { + return /** @type{?proto.account.ContactDetails} */ ( + jspb.Message.getWrapperField(this, proto.account.ContactDetails, 2)); +}; + + +/** @param {?proto.account.ContactDetails|undefined} value */ +proto.account.AddContactInfoRequest.prototype.setContactinfo = function(value) { + jspb.Message.setWrapperField(this, 2, value); +}; + + +proto.account.AddContactInfoRequest.prototype.clearContactinfo = function() { + this.setContactinfo(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {!boolean} + */ +proto.account.AddContactInfoRequest.prototype.hasContactinfo = function() { + return jspb.Message.getField(this, 2) != null; +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.account.DeleteAuthenticationProviderRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.account.DeleteAuthenticationProviderRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.account.DeleteAuthenticationProviderRequest.displayName = 'proto.account.DeleteAuthenticationProviderRequest'; +} + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.account.DeleteAuthenticationProviderRequest.prototype.toObject = function(opt_includeInstance) { + return proto.account.DeleteAuthenticationProviderRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.account.DeleteAuthenticationProviderRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.DeleteAuthenticationProviderRequest.toObject = function(includeInstance, msg) { + var f, obj = { + profileid: jspb.Message.getFieldWithDefault(msg, 1, ""), + authenticationprovider: (f = msg.getAuthenticationprovider()) && proto.account.AuthProviderDetails.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.account.DeleteAuthenticationProviderRequest} + */ +proto.account.DeleteAuthenticationProviderRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.account.DeleteAuthenticationProviderRequest; + return proto.account.DeleteAuthenticationProviderRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.account.DeleteAuthenticationProviderRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.account.DeleteAuthenticationProviderRequest} + */ +proto.account.DeleteAuthenticationProviderRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setProfileid(value); + break; + case 2: + var value = new proto.account.AuthProviderDetails; + reader.readMessage(value,proto.account.AuthProviderDetails.deserializeBinaryFromReader); + msg.setAuthenticationprovider(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.account.DeleteAuthenticationProviderRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.account.DeleteAuthenticationProviderRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.account.DeleteAuthenticationProviderRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.DeleteAuthenticationProviderRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getProfileid(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getAuthenticationprovider(); + if (f != null) { + writer.writeMessage( + 2, + f, + proto.account.AuthProviderDetails.serializeBinaryToWriter + ); + } +}; + + +/** + * optional string profileId = 1; + * @return {string} + */ +proto.account.DeleteAuthenticationProviderRequest.prototype.getProfileid = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** @param {string} value */ +proto.account.DeleteAuthenticationProviderRequest.prototype.setProfileid = function(value) { + jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional AuthProviderDetails authenticationProvider = 2; + * @return {?proto.account.AuthProviderDetails} + */ +proto.account.DeleteAuthenticationProviderRequest.prototype.getAuthenticationprovider = function() { + return /** @type{?proto.account.AuthProviderDetails} */ ( + jspb.Message.getWrapperField(this, proto.account.AuthProviderDetails, 2)); +}; + + +/** @param {?proto.account.AuthProviderDetails|undefined} value */ +proto.account.DeleteAuthenticationProviderRequest.prototype.setAuthenticationprovider = function(value) { + jspb.Message.setWrapperField(this, 2, value); +}; + + +proto.account.DeleteAuthenticationProviderRequest.prototype.clearAuthenticationprovider = function() { + this.setAuthenticationprovider(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {!boolean} + */ +proto.account.DeleteAuthenticationProviderRequest.prototype.hasAuthenticationprovider = function() { + return jspb.Message.getField(this, 2) != null; +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.account.DeleteContactInfoRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.account.DeleteContactInfoRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.account.DeleteContactInfoRequest.displayName = 'proto.account.DeleteContactInfoRequest'; +} + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.account.DeleteContactInfoRequest.prototype.toObject = function(opt_includeInstance) { + return proto.account.DeleteContactInfoRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.account.DeleteContactInfoRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.DeleteContactInfoRequest.toObject = function(includeInstance, msg) { + var f, obj = { + accountid: jspb.Message.getFieldWithDefault(msg, 1, ""), + contactinfo: (f = msg.getContactinfo()) && proto.account.ContactDetails.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.account.DeleteContactInfoRequest} + */ +proto.account.DeleteContactInfoRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.account.DeleteContactInfoRequest; + return proto.account.DeleteContactInfoRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.account.DeleteContactInfoRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.account.DeleteContactInfoRequest} + */ +proto.account.DeleteContactInfoRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setAccountid(value); + break; + case 2: + var value = new proto.account.ContactDetails; + reader.readMessage(value,proto.account.ContactDetails.deserializeBinaryFromReader); + msg.setContactinfo(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.account.DeleteContactInfoRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.account.DeleteContactInfoRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.account.DeleteContactInfoRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.DeleteContactInfoRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getAccountid(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getContactinfo(); + if (f != null) { + writer.writeMessage( + 2, + f, + proto.account.ContactDetails.serializeBinaryToWriter + ); + } +}; + + +/** + * optional string accountId = 1; + * @return {string} + */ +proto.account.DeleteContactInfoRequest.prototype.getAccountid = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** @param {string} value */ +proto.account.DeleteContactInfoRequest.prototype.setAccountid = function(value) { + jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional ContactDetails contactInfo = 2; + * @return {?proto.account.ContactDetails} + */ +proto.account.DeleteContactInfoRequest.prototype.getContactinfo = function() { + return /** @type{?proto.account.ContactDetails} */ ( + jspb.Message.getWrapperField(this, proto.account.ContactDetails, 2)); +}; + + +/** @param {?proto.account.ContactDetails|undefined} value */ +proto.account.DeleteContactInfoRequest.prototype.setContactinfo = function(value) { + jspb.Message.setWrapperField(this, 2, value); +}; + + +proto.account.DeleteContactInfoRequest.prototype.clearContactinfo = function() { + this.setContactinfo(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {!boolean} + */ +proto.account.DeleteContactInfoRequest.prototype.hasContactinfo = function() { + return jspb.Message.getField(this, 2) != null; +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.account.EditContactInfoRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.account.EditContactInfoRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.account.EditContactInfoRequest.displayName = 'proto.account.EditContactInfoRequest'; +} + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.account.EditContactInfoRequest.prototype.toObject = function(opt_includeInstance) { + return proto.account.EditContactInfoRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.account.EditContactInfoRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.EditContactInfoRequest.toObject = function(includeInstance, msg) { + var f, obj = { + accountid: jspb.Message.getFieldWithDefault(msg, 1, ""), + oldcontactinfo: (f = msg.getOldcontactinfo()) && proto.account.ContactDetails.toObject(includeInstance, f), + editedcontactinfo: (f = msg.getEditedcontactinfo()) && proto.account.ContactDetails.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.account.EditContactInfoRequest} + */ +proto.account.EditContactInfoRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.account.EditContactInfoRequest; + return proto.account.EditContactInfoRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.account.EditContactInfoRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.account.EditContactInfoRequest} + */ +proto.account.EditContactInfoRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setAccountid(value); + break; + case 2: + var value = new proto.account.ContactDetails; + reader.readMessage(value,proto.account.ContactDetails.deserializeBinaryFromReader); + msg.setOldcontactinfo(value); + break; + case 3: + var value = new proto.account.ContactDetails; + reader.readMessage(value,proto.account.ContactDetails.deserializeBinaryFromReader); + msg.setEditedcontactinfo(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.account.EditContactInfoRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.account.EditContactInfoRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.account.EditContactInfoRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.EditContactInfoRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getAccountid(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getOldcontactinfo(); + if (f != null) { + writer.writeMessage( + 2, + f, + proto.account.ContactDetails.serializeBinaryToWriter + ); + } + f = message.getEditedcontactinfo(); + if (f != null) { + writer.writeMessage( + 3, + f, + proto.account.ContactDetails.serializeBinaryToWriter + ); + } +}; + + +/** + * optional string accountId = 1; + * @return {string} + */ +proto.account.EditContactInfoRequest.prototype.getAccountid = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** @param {string} value */ +proto.account.EditContactInfoRequest.prototype.setAccountid = function(value) { + jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional ContactDetails oldContactInfo = 2; + * @return {?proto.account.ContactDetails} + */ +proto.account.EditContactInfoRequest.prototype.getOldcontactinfo = function() { + return /** @type{?proto.account.ContactDetails} */ ( + jspb.Message.getWrapperField(this, proto.account.ContactDetails, 2)); +}; + + +/** @param {?proto.account.ContactDetails|undefined} value */ +proto.account.EditContactInfoRequest.prototype.setOldcontactinfo = function(value) { + jspb.Message.setWrapperField(this, 2, value); +}; + + +proto.account.EditContactInfoRequest.prototype.clearOldcontactinfo = function() { + this.setOldcontactinfo(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {!boolean} + */ +proto.account.EditContactInfoRequest.prototype.hasOldcontactinfo = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional ContactDetails editedContactInfo = 3; + * @return {?proto.account.ContactDetails} + */ +proto.account.EditContactInfoRequest.prototype.getEditedcontactinfo = function() { + return /** @type{?proto.account.ContactDetails} */ ( + jspb.Message.getWrapperField(this, proto.account.ContactDetails, 3)); +}; + + +/** @param {?proto.account.ContactDetails|undefined} value */ +proto.account.EditContactInfoRequest.prototype.setEditedcontactinfo = function(value) { + jspb.Message.setWrapperField(this, 3, value); +}; + + +proto.account.EditContactInfoRequest.prototype.clearEditedcontactinfo = function() { + this.setEditedcontactinfo(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {!boolean} + */ +proto.account.EditContactInfoRequest.prototype.hasEditedcontactinfo = function() { + return jspb.Message.getField(this, 3) != null; +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.account.PendingAccountDetails = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.account.PendingAccountDetails, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.account.PendingAccountDetails.displayName = 'proto.account.PendingAccountDetails'; +} + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.account.PendingAccountDetails.prototype.toObject = function(opt_includeInstance) { + return proto.account.PendingAccountDetails.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.account.PendingAccountDetails} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.PendingAccountDetails.toObject = function(includeInstance, msg) { + var f, obj = { + accountid: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.account.PendingAccountDetails} + */ +proto.account.PendingAccountDetails.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.account.PendingAccountDetails; + return proto.account.PendingAccountDetails.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.account.PendingAccountDetails} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.account.PendingAccountDetails} + */ +proto.account.PendingAccountDetails.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setAccountid(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.account.PendingAccountDetails.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.account.PendingAccountDetails.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.account.PendingAccountDetails} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.PendingAccountDetails.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getAccountid(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string accountId = 1; + * @return {string} + */ +proto.account.PendingAccountDetails.prototype.getAccountid = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** @param {string} value */ +proto.account.PendingAccountDetails.prototype.setAccountid = function(value) { + jspb.Message.setProto3StringField(this, 1, value); +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.account.CreatePendingAccountResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.account.CreatePendingAccountResponse.oneofGroups_); +}; +goog.inherits(proto.account.CreatePendingAccountResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.account.CreatePendingAccountResponse.displayName = 'proto.account.CreatePendingAccountResponse'; +} +/** + * Oneof group definitions for this message. Each group defines the field + * numbers belonging to that group. When of these fields' value is set, all + * other fields in the group are cleared. During deserialization, if multiple + * fields are encountered for a group, only the last value seen will be kept. + * @private {!Array>} + * @const + */ +proto.account.CreatePendingAccountResponse.oneofGroups_ = [[2,3]]; + +/** + * @enum {number} + */ +proto.account.CreatePendingAccountResponse.ResultCase = { + RESULT_NOT_SET: 0, + ERROR: 2, + PENDINGACCOUNTDETAILS: 3 +}; + +/** + * @return {proto.account.CreatePendingAccountResponse.ResultCase} + */ +proto.account.CreatePendingAccountResponse.prototype.getResultCase = function() { + return /** @type {proto.account.CreatePendingAccountResponse.ResultCase} */(jspb.Message.computeOneofCase(this, proto.account.CreatePendingAccountResponse.oneofGroups_[0])); +}; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.account.CreatePendingAccountResponse.prototype.toObject = function(opt_includeInstance) { + return proto.account.CreatePendingAccountResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.account.CreatePendingAccountResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.CreatePendingAccountResponse.toObject = function(includeInstance, msg) { + var f, obj = { + requestid: jspb.Message.getFieldWithDefault(msg, 1, 0), + error: (f = msg.getError()) && proto.account.ErrorResponse.toObject(includeInstance, f), + pendingaccountdetails: (f = msg.getPendingaccountdetails()) && proto.account.PendingAccountDetails.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.account.CreatePendingAccountResponse} + */ +proto.account.CreatePendingAccountResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.account.CreatePendingAccountResponse; + return proto.account.CreatePendingAccountResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.account.CreatePendingAccountResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.account.CreatePendingAccountResponse} + */ +proto.account.CreatePendingAccountResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readUint64()); + msg.setRequestid(value); + break; + case 2: + var value = new proto.account.ErrorResponse; + reader.readMessage(value,proto.account.ErrorResponse.deserializeBinaryFromReader); + msg.setError(value); + break; + case 3: + var value = new proto.account.PendingAccountDetails; + reader.readMessage(value,proto.account.PendingAccountDetails.deserializeBinaryFromReader); + msg.setPendingaccountdetails(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.account.CreatePendingAccountResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.account.CreatePendingAccountResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.account.CreatePendingAccountResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.CreatePendingAccountResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRequestid(); + if (f !== 0) { + writer.writeUint64( + 1, + f + ); + } + f = message.getError(); + if (f != null) { + writer.writeMessage( + 2, + f, + proto.account.ErrorResponse.serializeBinaryToWriter + ); + } + f = message.getPendingaccountdetails(); + if (f != null) { + writer.writeMessage( + 3, + f, + proto.account.PendingAccountDetails.serializeBinaryToWriter + ); + } +}; + + +/** + * optional uint64 requestId = 1; + * @return {number} + */ +proto.account.CreatePendingAccountResponse.prototype.getRequestid = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** @param {number} value */ +proto.account.CreatePendingAccountResponse.prototype.setRequestid = function(value) { + jspb.Message.setProto3IntField(this, 1, value); +}; + + +/** + * optional ErrorResponse error = 2; + * @return {?proto.account.ErrorResponse} + */ +proto.account.CreatePendingAccountResponse.prototype.getError = function() { + return /** @type{?proto.account.ErrorResponse} */ ( + jspb.Message.getWrapperField(this, proto.account.ErrorResponse, 2)); +}; + + +/** @param {?proto.account.ErrorResponse|undefined} value */ +proto.account.CreatePendingAccountResponse.prototype.setError = function(value) { + jspb.Message.setOneofWrapperField(this, 2, proto.account.CreatePendingAccountResponse.oneofGroups_[0], value); +}; + + +proto.account.CreatePendingAccountResponse.prototype.clearError = function() { + this.setError(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {!boolean} + */ +proto.account.CreatePendingAccountResponse.prototype.hasError = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional PendingAccountDetails pendingAccountDetails = 3; + * @return {?proto.account.PendingAccountDetails} + */ +proto.account.CreatePendingAccountResponse.prototype.getPendingaccountdetails = function() { + return /** @type{?proto.account.PendingAccountDetails} */ ( + jspb.Message.getWrapperField(this, proto.account.PendingAccountDetails, 3)); +}; + + +/** @param {?proto.account.PendingAccountDetails|undefined} value */ +proto.account.CreatePendingAccountResponse.prototype.setPendingaccountdetails = function(value) { + jspb.Message.setOneofWrapperField(this, 3, proto.account.CreatePendingAccountResponse.oneofGroups_[0], value); +}; + + +proto.account.CreatePendingAccountResponse.prototype.clearPendingaccountdetails = function() { + this.setPendingaccountdetails(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {!boolean} + */ +proto.account.CreatePendingAccountResponse.prototype.hasPendingaccountdetails = function() { + return jspb.Message.getField(this, 3) != null; +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.account.UpdateProfileRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.account.UpdateProfileRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.account.UpdateProfileRequest.displayName = 'proto.account.UpdateProfileRequest'; +} + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.account.UpdateProfileRequest.prototype.toObject = function(opt_includeInstance) { + return proto.account.UpdateProfileRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.account.UpdateProfileRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.UpdateProfileRequest.toObject = function(includeInstance, msg) { + var f, obj = { + profileid: jspb.Message.getFieldWithDefault(msg, 1, ""), + backupauthprovider: (f = msg.getBackupauthprovider()) && proto.account.AuthProviderDetails.toObject(includeInstance, f), + passcode: jspb.Message.getFieldWithDefault(msg, 4, ""), + defaultaccountid: jspb.Message.getFieldWithDefault(msg, 5, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.account.UpdateProfileRequest} + */ +proto.account.UpdateProfileRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.account.UpdateProfileRequest; + return proto.account.UpdateProfileRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.account.UpdateProfileRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.account.UpdateProfileRequest} + */ +proto.account.UpdateProfileRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setProfileid(value); + break; + case 3: + var value = new proto.account.AuthProviderDetails; + reader.readMessage(value,proto.account.AuthProviderDetails.deserializeBinaryFromReader); + msg.setBackupauthprovider(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setPasscode(value); + break; + case 5: + var value = /** @type {string} */ (reader.readString()); + msg.setDefaultaccountid(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.account.UpdateProfileRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.account.UpdateProfileRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.account.UpdateProfileRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.UpdateProfileRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getProfileid(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getBackupauthprovider(); + if (f != null) { + writer.writeMessage( + 3, + f, + proto.account.AuthProviderDetails.serializeBinaryToWriter + ); + } + f = message.getPasscode(); + if (f.length > 0) { + writer.writeString( + 4, + f + ); + } + f = message.getDefaultaccountid(); + if (f.length > 0) { + writer.writeString( + 5, + f + ); + } +}; + + +/** + * optional string profileId = 1; + * @return {string} + */ +proto.account.UpdateProfileRequest.prototype.getProfileid = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** @param {string} value */ +proto.account.UpdateProfileRequest.prototype.setProfileid = function(value) { + jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional AuthProviderDetails backupAuthProvider = 3; + * @return {?proto.account.AuthProviderDetails} + */ +proto.account.UpdateProfileRequest.prototype.getBackupauthprovider = function() { + return /** @type{?proto.account.AuthProviderDetails} */ ( + jspb.Message.getWrapperField(this, proto.account.AuthProviderDetails, 3)); +}; + + +/** @param {?proto.account.AuthProviderDetails|undefined} value */ +proto.account.UpdateProfileRequest.prototype.setBackupauthprovider = function(value) { + jspb.Message.setWrapperField(this, 3, value); +}; + + +proto.account.UpdateProfileRequest.prototype.clearBackupauthprovider = function() { + this.setBackupauthprovider(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {!boolean} + */ +proto.account.UpdateProfileRequest.prototype.hasBackupauthprovider = function() { + return jspb.Message.getField(this, 3) != null; +}; + + +/** + * optional string passcode = 4; + * @return {string} + */ +proto.account.UpdateProfileRequest.prototype.getPasscode = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** @param {string} value */ +proto.account.UpdateProfileRequest.prototype.setPasscode = function(value) { + jspb.Message.setProto3StringField(this, 4, value); +}; + + +/** + * optional string defaultAccountId = 5; + * @return {string} + */ +proto.account.UpdateProfileRequest.prototype.getDefaultaccountid = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); +}; + + +/** @param {string} value */ +proto.account.UpdateProfileRequest.prototype.setDefaultaccountid = function(value) { + jspb.Message.setProto3StringField(this, 5, value); +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.account.AuthProviderDetails = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.account.AuthProviderDetails, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.account.AuthProviderDetails.displayName = 'proto.account.AuthProviderDetails'; +} + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.account.AuthProviderDetails.prototype.toObject = function(opt_includeInstance) { + return proto.account.AuthProviderDetails.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.account.AuthProviderDetails} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.AuthProviderDetails.toObject = function(includeInstance, msg) { + var f, obj = { + authenticationtype: jspb.Message.getFieldWithDefault(msg, 1, 0), + authenticationprovider: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.account.AuthProviderDetails} + */ +proto.account.AuthProviderDetails.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.account.AuthProviderDetails; + return proto.account.AuthProviderDetails.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.account.AuthProviderDetails} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.account.AuthProviderDetails} + */ +proto.account.AuthProviderDetails.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {!proto.account.AuthenticationType} */ (reader.readEnum()); + msg.setAuthenticationtype(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setAuthenticationprovider(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.account.AuthProviderDetails.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.account.AuthProviderDetails.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.account.AuthProviderDetails} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.AuthProviderDetails.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getAuthenticationtype(); + if (f !== 0.0) { + writer.writeEnum( + 1, + f + ); + } + f = message.getAuthenticationprovider(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * optional AuthenticationType authenticationType = 1; + * @return {!proto.account.AuthenticationType} + */ +proto.account.AuthProviderDetails.prototype.getAuthenticationtype = function() { + return /** @type {!proto.account.AuthenticationType} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** @param {!proto.account.AuthenticationType} value */ +proto.account.AuthProviderDetails.prototype.setAuthenticationtype = function(value) { + jspb.Message.setProto3EnumField(this, 1, value); +}; + + +/** + * optional string authenticationProvider = 2; + * @return {string} + */ +proto.account.AuthProviderDetails.prototype.getAuthenticationprovider = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** @param {string} value */ +proto.account.AuthProviderDetails.prototype.setAuthenticationprovider = function(value) { + jspb.Message.setProto3StringField(this, 2, value); +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.account.ContactDetails = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.account.ContactDetails, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.account.ContactDetails.displayName = 'proto.account.ContactDetails'; +} + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.account.ContactDetails.prototype.toObject = function(opt_includeInstance) { + return proto.account.ContactDetails.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.account.ContactDetails} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.ContactDetails.toObject = function(includeInstance, msg) { + var f, obj = { + type: jspb.Message.getFieldWithDefault(msg, 1, 0), + value: jspb.Message.getFieldWithDefault(msg, 2, ""), + label: jspb.Message.getFieldWithDefault(msg, 3, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.account.ContactDetails} + */ +proto.account.ContactDetails.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.account.ContactDetails; + return proto.account.ContactDetails.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.account.ContactDetails} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.account.ContactDetails} + */ +proto.account.ContactDetails.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {!proto.account.ContactType} */ (reader.readEnum()); + msg.setType(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setValue(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setLabel(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.account.ContactDetails.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.account.ContactDetails.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.account.ContactDetails} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.ContactDetails.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getType(); + if (f !== 0.0) { + writer.writeEnum( + 1, + f + ); + } + f = message.getValue(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getLabel(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } +}; + + +/** + * optional ContactType type = 1; + * @return {!proto.account.ContactType} + */ +proto.account.ContactDetails.prototype.getType = function() { + return /** @type {!proto.account.ContactType} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** @param {!proto.account.ContactType} value */ +proto.account.ContactDetails.prototype.setType = function(value) { + jspb.Message.setProto3EnumField(this, 1, value); +}; + + +/** + * optional string value = 2; + * @return {string} + */ +proto.account.ContactDetails.prototype.getValue = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** @param {string} value */ +proto.account.ContactDetails.prototype.setValue = function(value) { + jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string label = 3; + * @return {string} + */ +proto.account.ContactDetails.prototype.getLabel = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** @param {string} value */ +proto.account.ContactDetails.prototype.setLabel = function(value) { + jspb.Message.setProto3StringField(this, 3, value); +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.account.AccountDetails = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.account.AccountDetails.repeatedFields_, null); +}; +goog.inherits(proto.account.AccountDetails, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.account.AccountDetails.displayName = 'proto.account.AccountDetails'; +} +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.account.AccountDetails.repeatedFields_ = [14]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.account.AccountDetails.prototype.toObject = function(opt_includeInstance) { + return proto.account.AccountDetails.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.account.AccountDetails} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.AccountDetails.toObject = function(includeInstance, msg) { + var f, obj = { + accountid: jspb.Message.getFieldWithDefault(msg, 1, ""), + profileid: jspb.Message.getFieldWithDefault(msg, 2, ""), + authenticationidentifier: jspb.Message.getFieldWithDefault(msg, 3, ""), + authenticationtype: jspb.Message.getFieldWithDefault(msg, 4, ""), + avatar: msg.getAvatar_asB64(), + accountmark: jspb.Message.getFieldWithDefault(msg, 6, ""), + accountname: jspb.Message.getFieldWithDefault(msg, 7, ""), + firstname: jspb.Message.getFieldWithDefault(msg, 8, ""), + lastname: jspb.Message.getFieldWithDefault(msg, 9, ""), + username: jspb.Message.getFieldWithDefault(msg, 10, ""), + accountstatus: jspb.Message.getFieldWithDefault(msg, 11, ""), + qrcode: jspb.Message.getFieldWithDefault(msg, 12, ""), + contactsinfoList: jspb.Message.toObjectList(msg.getContactsinfoList(), + proto.account.ContactDetails.toObject, includeInstance) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.account.AccountDetails} + */ +proto.account.AccountDetails.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.account.AccountDetails; + return proto.account.AccountDetails.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.account.AccountDetails} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.account.AccountDetails} + */ +proto.account.AccountDetails.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setAccountid(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setProfileid(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setAuthenticationidentifier(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setAuthenticationtype(value); + break; + case 5: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setAvatar(value); + break; + case 6: + var value = /** @type {string} */ (reader.readString()); + msg.setAccountmark(value); + break; + case 7: + var value = /** @type {string} */ (reader.readString()); + msg.setAccountname(value); + break; + case 8: + var value = /** @type {string} */ (reader.readString()); + msg.setFirstname(value); + break; + case 9: + var value = /** @type {string} */ (reader.readString()); + msg.setLastname(value); + break; + case 10: + var value = /** @type {string} */ (reader.readString()); + msg.setUsername(value); + break; + case 11: + var value = /** @type {string} */ (reader.readString()); + msg.setAccountstatus(value); + break; + case 12: + var value = /** @type {string} */ (reader.readString()); + msg.setQrcode(value); + break; + case 14: + var value = new proto.account.ContactDetails; + reader.readMessage(value,proto.account.ContactDetails.deserializeBinaryFromReader); + msg.addContactsinfo(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.account.AccountDetails.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.account.AccountDetails.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.account.AccountDetails} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.AccountDetails.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getAccountid(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getProfileid(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getAuthenticationidentifier(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getAuthenticationtype(); + if (f.length > 0) { + writer.writeString( + 4, + f + ); + } + f = message.getAvatar_asU8(); + if (f.length > 0) { + writer.writeBytes( + 5, + f + ); + } + f = message.getAccountmark(); + if (f.length > 0) { + writer.writeString( + 6, + f + ); + } + f = message.getAccountname(); + if (f.length > 0) { + writer.writeString( + 7, + f + ); + } + f = message.getFirstname(); + if (f.length > 0) { + writer.writeString( + 8, + f + ); + } + f = message.getLastname(); + if (f.length > 0) { + writer.writeString( + 9, + f + ); + } + f = message.getUsername(); + if (f.length > 0) { + writer.writeString( + 10, + f + ); + } + f = message.getAccountstatus(); + if (f.length > 0) { + writer.writeString( + 11, + f + ); + } + f = message.getQrcode(); + if (f.length > 0) { + writer.writeString( + 12, + f + ); + } + f = message.getContactsinfoList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 14, + f, + proto.account.ContactDetails.serializeBinaryToWriter + ); + } +}; + + +/** + * optional string accountId = 1; + * @return {string} + */ +proto.account.AccountDetails.prototype.getAccountid = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** @param {string} value */ +proto.account.AccountDetails.prototype.setAccountid = function(value) { + jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string profileId = 2; + * @return {string} + */ +proto.account.AccountDetails.prototype.getProfileid = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** @param {string} value */ +proto.account.AccountDetails.prototype.setProfileid = function(value) { + jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string authenticationIdentifier = 3; + * @return {string} + */ +proto.account.AccountDetails.prototype.getAuthenticationidentifier = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** @param {string} value */ +proto.account.AccountDetails.prototype.setAuthenticationidentifier = function(value) { + jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional string authenticationType = 4; + * @return {string} + */ +proto.account.AccountDetails.prototype.getAuthenticationtype = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** @param {string} value */ +proto.account.AccountDetails.prototype.setAuthenticationtype = function(value) { + jspb.Message.setProto3StringField(this, 4, value); +}; + + +/** + * optional bytes avatar = 5; + * @return {!(string|Uint8Array)} + */ +proto.account.AccountDetails.prototype.getAvatar = function() { + return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 5, "")); +}; + + +/** + * optional bytes avatar = 5; + * This is a type-conversion wrapper around `getAvatar()` + * @return {string} + */ +proto.account.AccountDetails.prototype.getAvatar_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getAvatar())); +}; + + +/** + * optional bytes avatar = 5; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getAvatar()` + * @return {!Uint8Array} + */ +proto.account.AccountDetails.prototype.getAvatar_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getAvatar())); +}; + + +/** @param {!(string|Uint8Array)} value */ +proto.account.AccountDetails.prototype.setAvatar = function(value) { + jspb.Message.setProto3BytesField(this, 5, value); +}; + + +/** + * optional string accountMark = 6; + * @return {string} + */ +proto.account.AccountDetails.prototype.getAccountmark = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); +}; + + +/** @param {string} value */ +proto.account.AccountDetails.prototype.setAccountmark = function(value) { + jspb.Message.setProto3StringField(this, 6, value); +}; + + +/** + * optional string accountName = 7; + * @return {string} + */ +proto.account.AccountDetails.prototype.getAccountname = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); +}; + + +/** @param {string} value */ +proto.account.AccountDetails.prototype.setAccountname = function(value) { + jspb.Message.setProto3StringField(this, 7, value); +}; + + +/** + * optional string firstName = 8; + * @return {string} + */ +proto.account.AccountDetails.prototype.getFirstname = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, "")); +}; + + +/** @param {string} value */ +proto.account.AccountDetails.prototype.setFirstname = function(value) { + jspb.Message.setProto3StringField(this, 8, value); +}; + + +/** + * optional string lastName = 9; + * @return {string} + */ +proto.account.AccountDetails.prototype.getLastname = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, "")); +}; + + +/** @param {string} value */ +proto.account.AccountDetails.prototype.setLastname = function(value) { + jspb.Message.setProto3StringField(this, 9, value); +}; + + +/** + * optional string username = 10; + * @return {string} + */ +proto.account.AccountDetails.prototype.getUsername = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 10, "")); +}; + + +/** @param {string} value */ +proto.account.AccountDetails.prototype.setUsername = function(value) { + jspb.Message.setProto3StringField(this, 10, value); +}; + + +/** + * optional string accountStatus = 11; + * @return {string} + */ +proto.account.AccountDetails.prototype.getAccountstatus = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 11, "")); +}; + + +/** @param {string} value */ +proto.account.AccountDetails.prototype.setAccountstatus = function(value) { + jspb.Message.setProto3StringField(this, 11, value); +}; + + +/** + * optional string qrCode = 12; + * @return {string} + */ +proto.account.AccountDetails.prototype.getQrcode = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 12, "")); +}; + + +/** @param {string} value */ +proto.account.AccountDetails.prototype.setQrcode = function(value) { + jspb.Message.setProto3StringField(this, 12, value); +}; + + +/** + * repeated ContactDetails contactsInfo = 14; + * @return {!Array} + */ +proto.account.AccountDetails.prototype.getContactsinfoList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.account.ContactDetails, 14)); +}; + + +/** @param {!Array} value */ +proto.account.AccountDetails.prototype.setContactsinfoList = function(value) { + jspb.Message.setRepeatedWrapperField(this, 14, value); +}; + + +/** + * @param {!proto.account.ContactDetails=} opt_value + * @param {number=} opt_index + * @return {!proto.account.ContactDetails} + */ +proto.account.AccountDetails.prototype.addContactsinfo = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 14, opt_value, proto.account.ContactDetails, opt_index); +}; + + +proto.account.AccountDetails.prototype.clearContactsinfoList = function() { + this.setContactsinfoList([]); +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.account.AccountResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.account.AccountResponse.oneofGroups_); +}; +goog.inherits(proto.account.AccountResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.account.AccountResponse.displayName = 'proto.account.AccountResponse'; +} +/** + * Oneof group definitions for this message. Each group defines the field + * numbers belonging to that group. When of these fields' value is set, all + * other fields in the group are cleared. During deserialization, if multiple + * fields are encountered for a group, only the last value seen will be kept. + * @private {!Array>} + * @const + */ +proto.account.AccountResponse.oneofGroups_ = [[2,3]]; + +/** + * @enum {number} + */ +proto.account.AccountResponse.ResultCase = { + RESULT_NOT_SET: 0, + ERROR: 2, + ACCOUNTDETAILS: 3 +}; + +/** + * @return {proto.account.AccountResponse.ResultCase} + */ +proto.account.AccountResponse.prototype.getResultCase = function() { + return /** @type {proto.account.AccountResponse.ResultCase} */(jspb.Message.computeOneofCase(this, proto.account.AccountResponse.oneofGroups_[0])); +}; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.account.AccountResponse.prototype.toObject = function(opt_includeInstance) { + return proto.account.AccountResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.account.AccountResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.AccountResponse.toObject = function(includeInstance, msg) { + var f, obj = { + requestid: jspb.Message.getFieldWithDefault(msg, 1, 0), + error: (f = msg.getError()) && proto.account.ErrorResponse.toObject(includeInstance, f), + accountdetails: (f = msg.getAccountdetails()) && proto.account.AccountDetails.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.account.AccountResponse} + */ +proto.account.AccountResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.account.AccountResponse; + return proto.account.AccountResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.account.AccountResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.account.AccountResponse} + */ +proto.account.AccountResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readUint64()); + msg.setRequestid(value); + break; + case 2: + var value = new proto.account.ErrorResponse; + reader.readMessage(value,proto.account.ErrorResponse.deserializeBinaryFromReader); + msg.setError(value); + break; + case 3: + var value = new proto.account.AccountDetails; + reader.readMessage(value,proto.account.AccountDetails.deserializeBinaryFromReader); + msg.setAccountdetails(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.account.AccountResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.account.AccountResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.account.AccountResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.AccountResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRequestid(); + if (f !== 0) { + writer.writeUint64( + 1, + f + ); + } + f = message.getError(); + if (f != null) { + writer.writeMessage( + 2, + f, + proto.account.ErrorResponse.serializeBinaryToWriter + ); + } + f = message.getAccountdetails(); + if (f != null) { + writer.writeMessage( + 3, + f, + proto.account.AccountDetails.serializeBinaryToWriter + ); + } +}; + + +/** + * optional uint64 requestId = 1; + * @return {number} + */ +proto.account.AccountResponse.prototype.getRequestid = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** @param {number} value */ +proto.account.AccountResponse.prototype.setRequestid = function(value) { + jspb.Message.setProto3IntField(this, 1, value); +}; + + +/** + * optional ErrorResponse error = 2; + * @return {?proto.account.ErrorResponse} + */ +proto.account.AccountResponse.prototype.getError = function() { + return /** @type{?proto.account.ErrorResponse} */ ( + jspb.Message.getWrapperField(this, proto.account.ErrorResponse, 2)); +}; + + +/** @param {?proto.account.ErrorResponse|undefined} value */ +proto.account.AccountResponse.prototype.setError = function(value) { + jspb.Message.setOneofWrapperField(this, 2, proto.account.AccountResponse.oneofGroups_[0], value); +}; + + +proto.account.AccountResponse.prototype.clearError = function() { + this.setError(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {!boolean} + */ +proto.account.AccountResponse.prototype.hasError = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional AccountDetails accountDetails = 3; + * @return {?proto.account.AccountDetails} + */ +proto.account.AccountResponse.prototype.getAccountdetails = function() { + return /** @type{?proto.account.AccountDetails} */ ( + jspb.Message.getWrapperField(this, proto.account.AccountDetails, 3)); +}; + + +/** @param {?proto.account.AccountDetails|undefined} value */ +proto.account.AccountResponse.prototype.setAccountdetails = function(value) { + jspb.Message.setOneofWrapperField(this, 3, proto.account.AccountResponse.oneofGroups_[0], value); +}; + + +proto.account.AccountResponse.prototype.clearAccountdetails = function() { + this.setAccountdetails(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {!boolean} + */ +proto.account.AccountResponse.prototype.hasAccountdetails = function() { + return jspb.Message.getField(this, 3) != null; +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.account.StatusResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.account.StatusResponse.oneofGroups_); +}; +goog.inherits(proto.account.StatusResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.account.StatusResponse.displayName = 'proto.account.StatusResponse'; +} +/** + * Oneof group definitions for this message. Each group defines the field + * numbers belonging to that group. When of these fields' value is set, all + * other fields in the group are cleared. During deserialization, if multiple + * fields are encountered for a group, only the last value seen will be kept. + * @private {!Array>} + * @const + */ +proto.account.StatusResponse.oneofGroups_ = [[2,3]]; + +/** + * @enum {number} + */ +proto.account.StatusResponse.ResultCase = { + RESULT_NOT_SET: 0, + ERROR: 2, + STATUS: 3 +}; + +/** + * @return {proto.account.StatusResponse.ResultCase} + */ +proto.account.StatusResponse.prototype.getResultCase = function() { + return /** @type {proto.account.StatusResponse.ResultCase} */(jspb.Message.computeOneofCase(this, proto.account.StatusResponse.oneofGroups_[0])); +}; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.account.StatusResponse.prototype.toObject = function(opt_includeInstance) { + return proto.account.StatusResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.account.StatusResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.StatusResponse.toObject = function(includeInstance, msg) { + var f, obj = { + requestid: jspb.Message.getFieldWithDefault(msg, 1, 0), + error: (f = msg.getError()) && proto.account.ErrorResponse.toObject(includeInstance, f), + status: jspb.Message.getFieldWithDefault(msg, 3, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.account.StatusResponse} + */ +proto.account.StatusResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.account.StatusResponse; + return proto.account.StatusResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.account.StatusResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.account.StatusResponse} + */ +proto.account.StatusResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readUint64()); + msg.setRequestid(value); + break; + case 2: + var value = new proto.account.ErrorResponse; + reader.readMessage(value,proto.account.ErrorResponse.deserializeBinaryFromReader); + msg.setError(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setStatus(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.account.StatusResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.account.StatusResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.account.StatusResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.StatusResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRequestid(); + if (f !== 0) { + writer.writeUint64( + 1, + f + ); + } + f = message.getError(); + if (f != null) { + writer.writeMessage( + 2, + f, + proto.account.ErrorResponse.serializeBinaryToWriter + ); + } + f = /** @type {string} */ (jspb.Message.getField(message, 3)); + if (f != null) { + writer.writeString( + 3, + f + ); + } +}; + + +/** + * optional uint64 requestId = 1; + * @return {number} + */ +proto.account.StatusResponse.prototype.getRequestid = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** @param {number} value */ +proto.account.StatusResponse.prototype.setRequestid = function(value) { + jspb.Message.setProto3IntField(this, 1, value); +}; + + +/** + * optional ErrorResponse error = 2; + * @return {?proto.account.ErrorResponse} + */ +proto.account.StatusResponse.prototype.getError = function() { + return /** @type{?proto.account.ErrorResponse} */ ( + jspb.Message.getWrapperField(this, proto.account.ErrorResponse, 2)); +}; + + +/** @param {?proto.account.ErrorResponse|undefined} value */ +proto.account.StatusResponse.prototype.setError = function(value) { + jspb.Message.setOneofWrapperField(this, 2, proto.account.StatusResponse.oneofGroups_[0], value); +}; + + +proto.account.StatusResponse.prototype.clearError = function() { + this.setError(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {!boolean} + */ +proto.account.StatusResponse.prototype.hasError = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional string status = 3; + * @return {string} + */ +proto.account.StatusResponse.prototype.getStatus = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** @param {string} value */ +proto.account.StatusResponse.prototype.setStatus = function(value) { + jspb.Message.setOneofField(this, 3, proto.account.StatusResponse.oneofGroups_[0], value); +}; + + +proto.account.StatusResponse.prototype.clearStatus = function() { + jspb.Message.setOneofField(this, 3, proto.account.StatusResponse.oneofGroups_[0], undefined); +}; + + +/** + * Returns whether this field is set. + * @return {!boolean} + */ +proto.account.StatusResponse.prototype.hasStatus = function() { + return jspb.Message.getField(this, 3) != null; +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.account.AccountsList = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.account.AccountsList.repeatedFields_, null); +}; +goog.inherits(proto.account.AccountsList, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.account.AccountsList.displayName = 'proto.account.AccountsList'; +} +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.account.AccountsList.repeatedFields_ = [1]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.account.AccountsList.prototype.toObject = function(opt_includeInstance) { + return proto.account.AccountsList.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.account.AccountsList} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.AccountsList.toObject = function(includeInstance, msg) { + var f, obj = { + accountdetailsList: jspb.Message.toObjectList(msg.getAccountdetailsList(), + proto.account.AccountDetails.toObject, includeInstance) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.account.AccountsList} + */ +proto.account.AccountsList.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.account.AccountsList; + return proto.account.AccountsList.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.account.AccountsList} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.account.AccountsList} + */ +proto.account.AccountsList.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.account.AccountDetails; + reader.readMessage(value,proto.account.AccountDetails.deserializeBinaryFromReader); + msg.addAccountdetails(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.account.AccountsList.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.account.AccountsList.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.account.AccountsList} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.AccountsList.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getAccountdetailsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 1, + f, + proto.account.AccountDetails.serializeBinaryToWriter + ); + } +}; + + +/** + * repeated AccountDetails accountDetails = 1; + * @return {!Array} + */ +proto.account.AccountsList.prototype.getAccountdetailsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.account.AccountDetails, 1)); +}; + + +/** @param {!Array} value */ +proto.account.AccountsList.prototype.setAccountdetailsList = function(value) { + jspb.Message.setRepeatedWrapperField(this, 1, value); +}; + + +/** + * @param {!proto.account.AccountDetails=} opt_value + * @param {number=} opt_index + * @return {!proto.account.AccountDetails} + */ +proto.account.AccountsList.prototype.addAccountdetails = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.account.AccountDetails, opt_index); +}; + + +proto.account.AccountsList.prototype.clearAccountdetailsList = function() { + this.setAccountdetailsList([]); +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.account.AccountsResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.account.AccountsResponse.oneofGroups_); +}; +goog.inherits(proto.account.AccountsResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.account.AccountsResponse.displayName = 'proto.account.AccountsResponse'; +} +/** + * Oneof group definitions for this message. Each group defines the field + * numbers belonging to that group. When of these fields' value is set, all + * other fields in the group are cleared. During deserialization, if multiple + * fields are encountered for a group, only the last value seen will be kept. + * @private {!Array>} + * @const + */ +proto.account.AccountsResponse.oneofGroups_ = [[2,3]]; + +/** + * @enum {number} + */ +proto.account.AccountsResponse.ResultCase = { + RESULT_NOT_SET: 0, + ERROR: 2, + ACCOUNTSRESPONSE: 3 +}; + +/** + * @return {proto.account.AccountsResponse.ResultCase} + */ +proto.account.AccountsResponse.prototype.getResultCase = function() { + return /** @type {proto.account.AccountsResponse.ResultCase} */(jspb.Message.computeOneofCase(this, proto.account.AccountsResponse.oneofGroups_[0])); +}; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.account.AccountsResponse.prototype.toObject = function(opt_includeInstance) { + return proto.account.AccountsResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.account.AccountsResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.AccountsResponse.toObject = function(includeInstance, msg) { + var f, obj = { + requestid: jspb.Message.getFieldWithDefault(msg, 1, 0), + error: (f = msg.getError()) && proto.account.ErrorResponse.toObject(includeInstance, f), + accountsresponse: (f = msg.getAccountsresponse()) && proto.account.AccountsList.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.account.AccountsResponse} + */ +proto.account.AccountsResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.account.AccountsResponse; + return proto.account.AccountsResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.account.AccountsResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.account.AccountsResponse} + */ +proto.account.AccountsResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readUint64()); + msg.setRequestid(value); + break; + case 2: + var value = new proto.account.ErrorResponse; + reader.readMessage(value,proto.account.ErrorResponse.deserializeBinaryFromReader); + msg.setError(value); + break; + case 3: + var value = new proto.account.AccountsList; + reader.readMessage(value,proto.account.AccountsList.deserializeBinaryFromReader); + msg.setAccountsresponse(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.account.AccountsResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.account.AccountsResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.account.AccountsResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.AccountsResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRequestid(); + if (f !== 0) { + writer.writeUint64( + 1, + f + ); + } + f = message.getError(); + if (f != null) { + writer.writeMessage( + 2, + f, + proto.account.ErrorResponse.serializeBinaryToWriter + ); + } + f = message.getAccountsresponse(); + if (f != null) { + writer.writeMessage( + 3, + f, + proto.account.AccountsList.serializeBinaryToWriter + ); + } +}; + + +/** + * optional uint64 requestId = 1; + * @return {number} + */ +proto.account.AccountsResponse.prototype.getRequestid = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** @param {number} value */ +proto.account.AccountsResponse.prototype.setRequestid = function(value) { + jspb.Message.setProto3IntField(this, 1, value); +}; + + +/** + * optional ErrorResponse error = 2; + * @return {?proto.account.ErrorResponse} + */ +proto.account.AccountsResponse.prototype.getError = function() { + return /** @type{?proto.account.ErrorResponse} */ ( + jspb.Message.getWrapperField(this, proto.account.ErrorResponse, 2)); +}; + + +/** @param {?proto.account.ErrorResponse|undefined} value */ +proto.account.AccountsResponse.prototype.setError = function(value) { + jspb.Message.setOneofWrapperField(this, 2, proto.account.AccountsResponse.oneofGroups_[0], value); +}; + + +proto.account.AccountsResponse.prototype.clearError = function() { + this.setError(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {!boolean} + */ +proto.account.AccountsResponse.prototype.hasError = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional AccountsList accountsResponse = 3; + * @return {?proto.account.AccountsList} + */ +proto.account.AccountsResponse.prototype.getAccountsresponse = function() { + return /** @type{?proto.account.AccountsList} */ ( + jspb.Message.getWrapperField(this, proto.account.AccountsList, 3)); +}; + + +/** @param {?proto.account.AccountsList|undefined} value */ +proto.account.AccountsResponse.prototype.setAccountsresponse = function(value) { + jspb.Message.setOneofWrapperField(this, 3, proto.account.AccountsResponse.oneofGroups_[0], value); +}; + + +proto.account.AccountsResponse.prototype.clearAccountsresponse = function() { + this.setAccountsresponse(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {!boolean} + */ +proto.account.AccountsResponse.prototype.hasAccountsresponse = function() { + return jspb.Message.getField(this, 3) != null; +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.account.ProfileDetails = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.account.ProfileDetails.repeatedFields_, null); +}; +goog.inherits(proto.account.ProfileDetails, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.account.ProfileDetails.displayName = 'proto.account.ProfileDetails'; +} +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.account.ProfileDetails.repeatedFields_ = [2]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.account.ProfileDetails.prototype.toObject = function(opt_includeInstance) { + return proto.account.ProfileDetails.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.account.ProfileDetails} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.ProfileDetails.toObject = function(includeInstance, msg) { + var f, obj = { + profileid: jspb.Message.getFieldWithDefault(msg, 1, ""), + authprovidersList: jspb.Message.toObjectList(msg.getAuthprovidersList(), + proto.account.AuthProviderDetails.toObject, includeInstance), + backupauthprovider: (f = msg.getBackupauthprovider()) && proto.account.AuthProviderDetails.toObject(includeInstance, f), + passcode: jspb.Message.getFieldWithDefault(msg, 4, ""), + defaultaccountid: jspb.Message.getFieldWithDefault(msg, 5, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.account.ProfileDetails} + */ +proto.account.ProfileDetails.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.account.ProfileDetails; + return proto.account.ProfileDetails.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.account.ProfileDetails} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.account.ProfileDetails} + */ +proto.account.ProfileDetails.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setProfileid(value); + break; + case 2: + var value = new proto.account.AuthProviderDetails; + reader.readMessage(value,proto.account.AuthProviderDetails.deserializeBinaryFromReader); + msg.addAuthproviders(value); + break; + case 3: + var value = new proto.account.AuthProviderDetails; + reader.readMessage(value,proto.account.AuthProviderDetails.deserializeBinaryFromReader); + msg.setBackupauthprovider(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setPasscode(value); + break; + case 5: + var value = /** @type {string} */ (reader.readString()); + msg.setDefaultaccountid(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.account.ProfileDetails.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.account.ProfileDetails.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.account.ProfileDetails} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.ProfileDetails.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getProfileid(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getAuthprovidersList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 2, + f, + proto.account.AuthProviderDetails.serializeBinaryToWriter + ); + } + f = message.getBackupauthprovider(); + if (f != null) { + writer.writeMessage( + 3, + f, + proto.account.AuthProviderDetails.serializeBinaryToWriter + ); + } + f = message.getPasscode(); + if (f.length > 0) { + writer.writeString( + 4, + f + ); + } + f = message.getDefaultaccountid(); + if (f.length > 0) { + writer.writeString( + 5, + f + ); + } +}; + + +/** + * optional string profileId = 1; + * @return {string} + */ +proto.account.ProfileDetails.prototype.getProfileid = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** @param {string} value */ +proto.account.ProfileDetails.prototype.setProfileid = function(value) { + jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * repeated AuthProviderDetails authProviders = 2; + * @return {!Array} + */ +proto.account.ProfileDetails.prototype.getAuthprovidersList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.account.AuthProviderDetails, 2)); +}; + + +/** @param {!Array} value */ +proto.account.ProfileDetails.prototype.setAuthprovidersList = function(value) { + jspb.Message.setRepeatedWrapperField(this, 2, value); +}; + + +/** + * @param {!proto.account.AuthProviderDetails=} opt_value + * @param {number=} opt_index + * @return {!proto.account.AuthProviderDetails} + */ +proto.account.ProfileDetails.prototype.addAuthproviders = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.account.AuthProviderDetails, opt_index); +}; + + +proto.account.ProfileDetails.prototype.clearAuthprovidersList = function() { + this.setAuthprovidersList([]); +}; + + +/** + * optional AuthProviderDetails backupAuthProvider = 3; + * @return {?proto.account.AuthProviderDetails} + */ +proto.account.ProfileDetails.prototype.getBackupauthprovider = function() { + return /** @type{?proto.account.AuthProviderDetails} */ ( + jspb.Message.getWrapperField(this, proto.account.AuthProviderDetails, 3)); +}; + + +/** @param {?proto.account.AuthProviderDetails|undefined} value */ +proto.account.ProfileDetails.prototype.setBackupauthprovider = function(value) { + jspb.Message.setWrapperField(this, 3, value); +}; + + +proto.account.ProfileDetails.prototype.clearBackupauthprovider = function() { + this.setBackupauthprovider(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {!boolean} + */ +proto.account.ProfileDetails.prototype.hasBackupauthprovider = function() { + return jspb.Message.getField(this, 3) != null; +}; + + +/** + * optional string passcode = 4; + * @return {string} + */ +proto.account.ProfileDetails.prototype.getPasscode = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** @param {string} value */ +proto.account.ProfileDetails.prototype.setPasscode = function(value) { + jspb.Message.setProto3StringField(this, 4, value); +}; + + +/** + * optional string defaultAccountId = 5; + * @return {string} + */ +proto.account.ProfileDetails.prototype.getDefaultaccountid = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); +}; + + +/** @param {string} value */ +proto.account.ProfileDetails.prototype.setDefaultaccountid = function(value) { + jspb.Message.setProto3StringField(this, 5, value); +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.account.ProfileResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.account.ProfileResponse.oneofGroups_); +}; +goog.inherits(proto.account.ProfileResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.account.ProfileResponse.displayName = 'proto.account.ProfileResponse'; +} +/** + * Oneof group definitions for this message. Each group defines the field + * numbers belonging to that group. When of these fields' value is set, all + * other fields in the group are cleared. During deserialization, if multiple + * fields are encountered for a group, only the last value seen will be kept. + * @private {!Array>} + * @const + */ +proto.account.ProfileResponse.oneofGroups_ = [[2,3]]; + +/** + * @enum {number} + */ +proto.account.ProfileResponse.ResultCase = { + RESULT_NOT_SET: 0, + ERROR: 2, + PROFILEDETAILS: 3 +}; + +/** + * @return {proto.account.ProfileResponse.ResultCase} + */ +proto.account.ProfileResponse.prototype.getResultCase = function() { + return /** @type {proto.account.ProfileResponse.ResultCase} */(jspb.Message.computeOneofCase(this, proto.account.ProfileResponse.oneofGroups_[0])); +}; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.account.ProfileResponse.prototype.toObject = function(opt_includeInstance) { + return proto.account.ProfileResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.account.ProfileResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.ProfileResponse.toObject = function(includeInstance, msg) { + var f, obj = { + requestid: jspb.Message.getFieldWithDefault(msg, 1, 0), + error: (f = msg.getError()) && proto.account.ErrorResponse.toObject(includeInstance, f), + profiledetails: (f = msg.getProfiledetails()) && proto.account.ProfileDetails.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.account.ProfileResponse} + */ +proto.account.ProfileResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.account.ProfileResponse; + return proto.account.ProfileResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.account.ProfileResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.account.ProfileResponse} + */ +proto.account.ProfileResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readUint64()); + msg.setRequestid(value); + break; + case 2: + var value = new proto.account.ErrorResponse; + reader.readMessage(value,proto.account.ErrorResponse.deserializeBinaryFromReader); + msg.setError(value); + break; + case 3: + var value = new proto.account.ProfileDetails; + reader.readMessage(value,proto.account.ProfileDetails.deserializeBinaryFromReader); + msg.setProfiledetails(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.account.ProfileResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.account.ProfileResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.account.ProfileResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.ProfileResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRequestid(); + if (f !== 0) { + writer.writeUint64( + 1, + f + ); + } + f = message.getError(); + if (f != null) { + writer.writeMessage( + 2, + f, + proto.account.ErrorResponse.serializeBinaryToWriter + ); + } + f = message.getProfiledetails(); + if (f != null) { + writer.writeMessage( + 3, + f, + proto.account.ProfileDetails.serializeBinaryToWriter + ); + } +}; + + +/** + * optional uint64 requestId = 1; + * @return {number} + */ +proto.account.ProfileResponse.prototype.getRequestid = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** @param {number} value */ +proto.account.ProfileResponse.prototype.setRequestid = function(value) { + jspb.Message.setProto3IntField(this, 1, value); +}; + + +/** + * optional ErrorResponse error = 2; + * @return {?proto.account.ErrorResponse} + */ +proto.account.ProfileResponse.prototype.getError = function() { + return /** @type{?proto.account.ErrorResponse} */ ( + jspb.Message.getWrapperField(this, proto.account.ErrorResponse, 2)); +}; + + +/** @param {?proto.account.ErrorResponse|undefined} value */ +proto.account.ProfileResponse.prototype.setError = function(value) { + jspb.Message.setOneofWrapperField(this, 2, proto.account.ProfileResponse.oneofGroups_[0], value); +}; + + +proto.account.ProfileResponse.prototype.clearError = function() { + this.setError(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {!boolean} + */ +proto.account.ProfileResponse.prototype.hasError = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional ProfileDetails profileDetails = 3; + * @return {?proto.account.ProfileDetails} + */ +proto.account.ProfileResponse.prototype.getProfiledetails = function() { + return /** @type{?proto.account.ProfileDetails} */ ( + jspb.Message.getWrapperField(this, proto.account.ProfileDetails, 3)); +}; + + +/** @param {?proto.account.ProfileDetails|undefined} value */ +proto.account.ProfileResponse.prototype.setProfiledetails = function(value) { + jspb.Message.setOneofWrapperField(this, 3, proto.account.ProfileResponse.oneofGroups_[0], value); +}; + + +proto.account.ProfileResponse.prototype.clearProfiledetails = function() { + this.setProfiledetails(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {!boolean} + */ +proto.account.ProfileResponse.prototype.hasProfiledetails = function() { + return jspb.Message.getField(this, 3) != null; +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.account.ErrorResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.account.ErrorResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.account.ErrorResponse.displayName = 'proto.account.ErrorResponse'; +} + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.account.ErrorResponse.prototype.toObject = function(opt_includeInstance) { + return proto.account.ErrorResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.account.ErrorResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.ErrorResponse.toObject = function(includeInstance, msg) { + var f, obj = { + cause: jspb.Message.getFieldWithDefault(msg, 1, 0), + message: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.account.ErrorResponse} + */ +proto.account.ErrorResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.account.ErrorResponse; + return proto.account.ErrorResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.account.ErrorResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.account.ErrorResponse} + */ +proto.account.ErrorResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {!proto.account.ErrorResponse.Cause} */ (reader.readEnum()); + msg.setCause(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setMessage(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.account.ErrorResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.account.ErrorResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.account.ErrorResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.ErrorResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getCause(); + if (f !== 0.0) { + writer.writeEnum( + 1, + f + ); + } + f = message.getMessage(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * @enum {number} + */ +proto.account.ErrorResponse.Cause = { + INTERNAL_SERVER_ERROR: 0, + MISSING_FIRST_NAME: 1, + EMAIL_ALREADY_USED: 2, + EMAIL_INVALID: 3, + PHONE_NUMBER_ALREADY_USED: 4, + PHONE_NUMBER_INVALID: 5, + USERNAME_ALREADY_USED: 6, + USERNAME_INVALID: 7, + ACCOUNT_NOT_FOUND: 8, + MISSING_AUTH_PROVIDER_TYPE: 9, + MISSING_AUTH_PROVIDER_IDENTIFIER: 10, + MISSING_PROFILE_ID: 11, + MISSING_ACCOUNT_ID: 12, + INVALID_FIRST_NAME: 13, + INVALID_LAST_NAME: 14, + INVALID_AUTH_PROVIDER_TYPE: 15, + ERROR_CREATING_ACCOUNT: 16, + ERROR_UPDATING_ACCOUNT: 17, + ERROR_UPDATING_PROFILE: 18, + ACCOUNT_NAME_INVALID: 19, + ACCOUNT_ALREADY_CREATED: 20, + ERROR_DELETING_ACCOUNT: 21, + ERROR_DELETING_PROFILE: 22, + ERROR_ADDING_AUTH_PROVIDER: 23, + ERROR_DELETING_AUTH_PROVIDER: 24, + PROFILE_NOT_FOUND: 25, + INVALID_PROFILE_ID: 26, + AUTH_PROVIDER_ALREADY_USED: 27, + MISSING_CONTACT_INFO_TYPE: 28, + MISSING_CONTACT_INFO_IDENTIFIER: 29, + INVALID_ACCOUNT_ID: 30, + ERROR_ADDING_CONTACT_INFO: 31, + ERROR_REMOVING_CONTACT_INFO: 32, + ERROR_EDITING_CONTACT_INFO: 33 +}; + +/** + * optional Cause cause = 1; + * @return {!proto.account.ErrorResponse.Cause} + */ +proto.account.ErrorResponse.prototype.getCause = function() { + return /** @type {!proto.account.ErrorResponse.Cause} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** @param {!proto.account.ErrorResponse.Cause} value */ +proto.account.ErrorResponse.prototype.setCause = function(value) { + jspb.Message.setProto3EnumField(this, 1, value); +}; + + +/** + * optional string message = 2; + * @return {string} + */ +proto.account.ErrorResponse.prototype.getMessage = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** @param {string} value */ +proto.account.ErrorResponse.prototype.setMessage = function(value) { + jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * @enum {number} + */ +proto.account.AuthenticationType = { + MISSING_TYPE: 0, + PHONE: 1, + EMAIL: 2, + FACEBOOK: 3, + GOOGLEPLUS: 4 +}; + +/** + * @enum {number} + */ +proto.account.ContactType = { + MISSING_CONTACT_TYPE: 0, + PHONE_CONTACT: 1, + EMAIL_CONTACT: 2, + FACEBOOK_CONTACT: 3, + GOOGLEPLUS_CONTACT: 4, + TWITTER_CONTACT: 5 +}; + +/** + * @enum {number} + */ +proto.account.Status = { + NOT_SET: 0, + ACTIVE: 1, + SUSPENDED: 2, + TERMINATED: 3 +}; + +goog.object.extend(exports, proto.account); diff --git a/src/utils/grpc_proto/generated/account_pb_service.js b/src/utils/grpc_proto/generated/account_pb_service.js new file mode 100644 index 0000000..6847f5d --- /dev/null +++ b/src/utils/grpc_proto/generated/account_pb_service.js @@ -0,0 +1,531 @@ +// package: account +// file: account.proto + +var account_pb = require("./account_pb"); +var grpc = require("grpc-web-client").grpc; + +var AccountService = (function () { + function AccountService() {} + AccountService.serviceName = "account.AccountService"; + return AccountService; +}()); + +AccountService.createPendingAccount = { + methodName: "createPendingAccount", + service: AccountService, + requestStream: false, + responseStream: false, + requestType: account_pb.CreatePendingAccountRequest, + responseType: account_pb.CreatePendingAccountResponse +}; + +AccountService.completePendingAccountCreation = { + methodName: "completePendingAccountCreation", + service: AccountService, + requestStream: false, + responseStream: false, + requestType: account_pb.CompletePendingAccountCreationRequest, + responseType: account_pb.AccountResponse +}; + +AccountService.createAccount = { + methodName: "createAccount", + service: AccountService, + requestStream: false, + responseStream: false, + requestType: account_pb.CreateAccountRequest, + responseType: account_pb.AccountResponse +}; + +AccountService.getAllAccountsByProfileId = { + methodName: "getAllAccountsByProfileId", + service: AccountService, + requestStream: false, + responseStream: false, + requestType: account_pb.AccountsByProfileIdRequest, + responseType: account_pb.AccountsResponse +}; + +AccountService.getAccountByAccountId = { + methodName: "getAccountByAccountId", + service: AccountService, + requestStream: false, + responseStream: false, + requestType: account_pb.AccountByAccountIdRequest, + responseType: account_pb.AccountResponse +}; + +AccountService.getAccountByAuthenticationProvider = { + methodName: "getAccountByAuthenticationProvider", + service: AccountService, + requestStream: false, + responseStream: false, + requestType: account_pb.AccountByAuthenticationProviderRequest, + responseType: account_pb.AccountResponse +}; + +AccountService.updateAccount = { + methodName: "updateAccount", + service: AccountService, + requestStream: false, + responseStream: false, + requestType: account_pb.UpdateAccountRequest, + responseType: account_pb.AccountResponse +}; + +AccountService.updateProfile = { + methodName: "updateProfile", + service: AccountService, + requestStream: false, + responseStream: false, + requestType: account_pb.UpdateProfileRequest, + responseType: account_pb.ProfileResponse +}; + +AccountService.deleteAccount = { + methodName: "deleteAccount", + service: AccountService, + requestStream: false, + responseStream: false, + requestType: account_pb.DeleteAccountRequest, + responseType: account_pb.StatusResponse +}; + +AccountService.deleteProfile = { + methodName: "deleteProfile", + service: AccountService, + requestStream: false, + responseStream: false, + requestType: account_pb.DeleteProfileRequest, + responseType: account_pb.StatusResponse +}; + +AccountService.addAuthenticationProviderToProfile = { + methodName: "addAuthenticationProviderToProfile", + service: AccountService, + requestStream: false, + responseStream: false, + requestType: account_pb.AddAuthenticationProviderRequest, + responseType: account_pb.StatusResponse +}; + +AccountService.deleteAuthenticationProviderFromProfile = { + methodName: "deleteAuthenticationProviderFromProfile", + service: AccountService, + requestStream: false, + responseStream: false, + requestType: account_pb.DeleteAuthenticationProviderRequest, + responseType: account_pb.StatusResponse +}; + +AccountService.addContactInfoToAccount = { + methodName: "addContactInfoToAccount", + service: AccountService, + requestStream: false, + responseStream: false, + requestType: account_pb.AddContactInfoRequest, + responseType: account_pb.StatusResponse +}; + +AccountService.deleteContactInfoFromAccount = { + methodName: "deleteContactInfoFromAccount", + service: AccountService, + requestStream: false, + responseStream: false, + requestType: account_pb.DeleteContactInfoRequest, + responseType: account_pb.StatusResponse +}; + +AccountService.editContactInfoForAccount = { + methodName: "editContactInfoForAccount", + service: AccountService, + requestStream: false, + responseStream: false, + requestType: account_pb.EditContactInfoRequest, + responseType: account_pb.StatusResponse +}; + +exports.AccountService = AccountService; + +function AccountServiceClient(serviceHost, options) { + this.serviceHost = serviceHost; + this.options = options || {}; +} + +AccountServiceClient.prototype.createPendingAccount = function createPendingAccount(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + grpc.unary(AccountService.createPendingAccount, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); +}; + +AccountServiceClient.prototype.completePendingAccountCreation = function completePendingAccountCreation(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + grpc.unary(AccountService.completePendingAccountCreation, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); +}; + +AccountServiceClient.prototype.createAccount = function createAccount(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + grpc.unary(AccountService.createAccount, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); +}; + +AccountServiceClient.prototype.getAllAccountsByProfileId = function getAllAccountsByProfileId(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + grpc.unary(AccountService.getAllAccountsByProfileId, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); +}; + +AccountServiceClient.prototype.getAccountByAccountId = function getAccountByAccountId(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + grpc.unary(AccountService.getAccountByAccountId, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); +}; + +AccountServiceClient.prototype.getAccountByAuthenticationProvider = function getAccountByAuthenticationProvider(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + grpc.unary(AccountService.getAccountByAuthenticationProvider, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); +}; + +AccountServiceClient.prototype.updateAccount = function updateAccount(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + grpc.unary(AccountService.updateAccount, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); +}; + +AccountServiceClient.prototype.updateProfile = function updateProfile(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + grpc.unary(AccountService.updateProfile, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); +}; + +AccountServiceClient.prototype.deleteAccount = function deleteAccount(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + grpc.unary(AccountService.deleteAccount, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); +}; + +AccountServiceClient.prototype.deleteProfile = function deleteProfile(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + grpc.unary(AccountService.deleteProfile, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); +}; + +AccountServiceClient.prototype.addAuthenticationProviderToProfile = function addAuthenticationProviderToProfile(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + grpc.unary(AccountService.addAuthenticationProviderToProfile, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); +}; + +AccountServiceClient.prototype.deleteAuthenticationProviderFromProfile = function deleteAuthenticationProviderFromProfile(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + grpc.unary(AccountService.deleteAuthenticationProviderFromProfile, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); +}; + +AccountServiceClient.prototype.addContactInfoToAccount = function addContactInfoToAccount(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + grpc.unary(AccountService.addContactInfoToAccount, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); +}; + +AccountServiceClient.prototype.deleteContactInfoFromAccount = function deleteContactInfoFromAccount(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + grpc.unary(AccountService.deleteContactInfoFromAccount, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); +}; + +AccountServiceClient.prototype.editContactInfoForAccount = function editContactInfoForAccount(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + grpc.unary(AccountService.editContactInfoForAccount, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); +}; + +exports.AccountServiceClient = AccountServiceClient; + diff --git a/src/utils/grpc_proto/readme.md b/src/utils/grpc_proto/readme.md new file mode 100644 index 0000000..5791aca --- /dev/null +++ b/src/utils/grpc_proto/readme.md @@ -0,0 +1,12 @@ +// substitude brew with microsoft friendly package manager +brew install protobuf + +npm install protoc-gen-ts + +protoc \ + --plugin=protoc-gen-ts=./node_modules/.bin/protoc-gen-ts \ + --js_out=import_style=commonjs,binary:out \ + --ts_out=service=true:out \ + account.proto + +// note: add /* eslint-disable */ at the top of auto generated account_pb.js file, due to eslint errors \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index eae7802..804e52e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1236,6 +1236,10 @@ brorand@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" +browser-headers@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/browser-headers/-/browser-headers-0.4.0.tgz#7b6b4d3cc0cecc9ddf503768147932105c421734" + browser-resolve@^1.11.2: version "1.11.3" resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" @@ -3216,6 +3220,10 @@ globby@^6.1.0: pify "^2.0.0" pinkie-promise "^2.0.0" +google-protobuf@^3.6.1: + version "3.6.1" + resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.6.1.tgz#7ef58e2bea137a93cdaf5cfd5afa5f6abdd92025" + got@^6.7.1: version "6.7.1" resolved "http://registry.npmjs.org/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" @@ -3240,6 +3248,12 @@ growly@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" +grpc-web-client@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/grpc-web-client/-/grpc-web-client-0.6.3.tgz#b3f527db570978cba51a30004d922bad9138962d" + dependencies: + browser-headers "^0.4.0" + gzip-size@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-3.0.0.tgz#546188e9bdc337f673772f81660464b389dce520" -- GitLab From 7857383835c704f5fb41b718191531fca2c0f899 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Mon, 29 Oct 2018 11:53:14 +0200 Subject: [PATCH 115/249] NY-4816 switching to secure url and grpc readme update --- src/utils/api/index.js | 3 +-- src/utils/grpc_proto/readme.md | 9 ++++++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/utils/api/index.js b/src/utils/api/index.js index 38741c7..a65eac1 100644 --- a/src/utils/api/index.js +++ b/src/utils/api/index.js @@ -1,5 +1,4 @@ import { authUser, users } from './_DATA'; -import { grpc } from 'grpc-web-client'; import { AccountServiceClient } from './../grpc_proto/generated/account_pb_service'; import { AccountByAuthenticationProviderRequest } from './../grpc_proto/generated/account_pb'; @@ -27,7 +26,7 @@ function ServerSideDatasource(fakeServer) { ServerSideDatasource.prototype.getRows = function(params) { console.log('ServerSideDatasource.getRows: params = ', params); - let host = "http://account.dev-eu.nynja.net:443"; + let host = "https://account.dev-eu.nynja.net:443"; let accountByAuthenticationProviderRequest = new AccountByAuthenticationProviderRequest(); accountByAuthenticationProviderRequest.authenticationType = 1; diff --git a/src/utils/grpc_proto/readme.md b/src/utils/grpc_proto/readme.md index 5791aca..0a82d13 100644 --- a/src/utils/grpc_proto/readme.md +++ b/src/utils/grpc_proto/readme.md @@ -9,4 +9,11 @@ protoc \ --ts_out=service=true:out \ account.proto -// note: add /* eslint-disable */ at the top of auto generated account_pb.js file, due to eslint errors \ No newline at end of file +// note: add /* eslint-disable */ at the top of auto generated account_pb.js file, due to eslint errors + +// proto files are available at: +// https://github.com/NYNJA-MC/proto-repository + +// endpoints: +// auth.dev-eu.nynja.net:443 +// account.dev-eu.nynja.net:443 \ No newline at end of file -- GitLab From 858db87dbdbe465c66de40664e31bffd52a622a9 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Tue, 30 Oct 2018 13:51:15 +0200 Subject: [PATCH 116/249] grpc client dependencies --- package.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/package.json b/package.json index d7faaf4..db453fc 100644 --- a/package.json +++ b/package.json @@ -5,12 +5,14 @@ "dependencies": { "@material-ui/core": "^3.1.1", "@material-ui/icons": "^3.0.1", + "@types/google-protobuf": "^3.2.7", "ag-grid-community": "^19.0.0", "ag-grid-enterprise": "^19.0.0", "ag-grid-react": "^19.0.0", "axios": "^0.18.0", "enzyme": "^3.6.0", "enzyme-adapter-react-16": "^1.5.0", + "google-protobuf": "^3.6.1", "grpc-web-client": "^0.6.3", "prop-types": "^15.6.2", "react": "^16.5.2", -- GitLab From 895b09060f5b08f1be73a4608c93f2f9c324d8cf Mon Sep 17 00:00:00 2001 From: samuil gospodinov Date: Wed, 31 Oct 2018 12:33:07 +0200 Subject: [PATCH 117/249] account.proto generated for cors test --- src/utils/grpc_proto/generated/account_pb.js | 160 ++++++++++++++++++- 1 file changed, 153 insertions(+), 7 deletions(-) diff --git a/src/utils/grpc_proto/generated/account_pb.js b/src/utils/grpc_proto/generated/account_pb.js index 43181ee..6116d71 100644 --- a/src/utils/grpc_proto/generated/account_pb.js +++ b/src/utils/grpc_proto/generated/account_pb.js @@ -1,4 +1,3 @@ -/* eslint-disable */ /** * @fileoverview * @enhanceable @@ -39,6 +38,7 @@ goog.exportSymbol('proto.account.ErrorResponse.Cause', null, global); goog.exportSymbol('proto.account.PendingAccountDetails', null, global); goog.exportSymbol('proto.account.ProfileDetails', null, global); goog.exportSymbol('proto.account.ProfileResponse', null, global); +goog.exportSymbol('proto.account.Role', null, global); goog.exportSymbol('proto.account.Status', null, global); goog.exportSymbol('proto.account.StatusResponse', null, global); goog.exportSymbol('proto.account.UpdateAccountRequest', null, global); @@ -224,12 +224,19 @@ proto.account.CreatePendingAccountRequest.prototype.setAuthenticationprovider = * @constructor */ proto.account.CompletePendingAccountCreationRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); + jspb.Message.initialize(this, opt_data, 0, -1, proto.account.CompletePendingAccountCreationRequest.repeatedFields_, null); }; goog.inherits(proto.account.CompletePendingAccountCreationRequest, jspb.Message); if (goog.DEBUG && !COMPILED) { proto.account.CompletePendingAccountCreationRequest.displayName = 'proto.account.CompletePendingAccountCreationRequest'; } +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.account.CompletePendingAccountCreationRequest.repeatedFields_ = [11]; + if (jspb.Message.GENERATE_TO_OBJECT) { @@ -267,7 +274,8 @@ proto.account.CompletePendingAccountCreationRequest.toObject = function(includeI lastname: jspb.Message.getFieldWithDefault(msg, 6, ""), username: jspb.Message.getFieldWithDefault(msg, 7, ""), accountstatus: jspb.Message.getFieldWithDefault(msg, 8, ""), - qrcode: jspb.Message.getFieldWithDefault(msg, 9, "") + qrcode: jspb.Message.getFieldWithDefault(msg, 9, ""), + rolesList: jspb.Message.getRepeatedField(msg, 11) }; if (includeInstance) { @@ -340,6 +348,10 @@ proto.account.CompletePendingAccountCreationRequest.deserializeBinaryFromReader var value = /** @type {string} */ (reader.readString()); msg.setQrcode(value); break; + case 11: + var value = /** @type {!Array} */ (reader.readPackedEnum()); + msg.setRolesList(value); + break; default: reader.skipField(); break; @@ -432,6 +444,13 @@ proto.account.CompletePendingAccountCreationRequest.serializeBinaryToWriter = fu f ); } + f = message.getRolesList(); + if (f.length > 0) { + writer.writePackedEnum( + 11, + f + ); + } }; @@ -594,6 +613,35 @@ proto.account.CompletePendingAccountCreationRequest.prototype.setQrcode = functi }; +/** + * repeated Role roles = 11; + * @return {!Array} + */ +proto.account.CompletePendingAccountCreationRequest.prototype.getRolesList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 11)); +}; + + +/** @param {!Array} value */ +proto.account.CompletePendingAccountCreationRequest.prototype.setRolesList = function(value) { + jspb.Message.setField(this, 11, value || []); +}; + + +/** + * @param {!proto.account.Role} value + * @param {number=} opt_index + */ +proto.account.CompletePendingAccountCreationRequest.prototype.addRoles = function(value, opt_index) { + jspb.Message.addToRepeatedField(this, 11, value, opt_index); +}; + + +proto.account.CompletePendingAccountCreationRequest.prototype.clearRolesList = function() { + this.setRolesList([]); +}; + + /** * Generated by JsPbCodeGenerator. @@ -1228,12 +1276,19 @@ proto.account.AccountByAuthenticationProviderRequest.prototype.setAuthentication * @constructor */ proto.account.UpdateAccountRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); + jspb.Message.initialize(this, opt_data, 0, -1, proto.account.UpdateAccountRequest.repeatedFields_, null); }; goog.inherits(proto.account.UpdateAccountRequest, jspb.Message); if (goog.DEBUG && !COMPILED) { proto.account.UpdateAccountRequest.displayName = 'proto.account.UpdateAccountRequest'; } +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.account.UpdateAccountRequest.repeatedFields_ = [10]; + if (jspb.Message.GENERATE_TO_OBJECT) { @@ -1270,7 +1325,8 @@ proto.account.UpdateAccountRequest.toObject = function(includeInstance, msg) { firstname: jspb.Message.getFieldWithDefault(msg, 5, ""), lastname: jspb.Message.getFieldWithDefault(msg, 6, ""), username: jspb.Message.getFieldWithDefault(msg, 7, ""), - accountstatus: jspb.Message.getFieldWithDefault(msg, 8, "") + accountstatus: jspb.Message.getFieldWithDefault(msg, 8, ""), + rolesList: jspb.Message.getRepeatedField(msg, 10) }; if (includeInstance) { @@ -1339,6 +1395,10 @@ proto.account.UpdateAccountRequest.deserializeBinaryFromReader = function(msg, r var value = /** @type {string} */ (reader.readString()); msg.setAccountstatus(value); break; + case 10: + var value = /** @type {!Array} */ (reader.readPackedEnum()); + msg.setRolesList(value); + break; default: reader.skipField(); break; @@ -1424,6 +1484,13 @@ proto.account.UpdateAccountRequest.serializeBinaryToWriter = function(message, w f ); } + f = message.getRolesList(); + if (f.length > 0) { + writer.writePackedEnum( + 10, + f + ); + } }; @@ -1571,6 +1638,35 @@ proto.account.UpdateAccountRequest.prototype.setAccountstatus = function(value) }; +/** + * repeated Role roles = 10; + * @return {!Array} + */ +proto.account.UpdateAccountRequest.prototype.getRolesList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 10)); +}; + + +/** @param {!Array} value */ +proto.account.UpdateAccountRequest.prototype.setRolesList = function(value) { + jspb.Message.setField(this, 10, value || []); +}; + + +/** + * @param {!proto.account.Role} value + * @param {number=} opt_index + */ +proto.account.UpdateAccountRequest.prototype.addRoles = function(value, opt_index) { + jspb.Message.addToRepeatedField(this, 10, value, opt_index); +}; + + +proto.account.UpdateAccountRequest.prototype.clearRolesList = function() { + this.setRolesList([]); +}; + + /** * Generated by JsPbCodeGenerator. @@ -3855,7 +3951,7 @@ if (goog.DEBUG && !COMPILED) { * @private {!Array} * @const */ -proto.account.AccountDetails.repeatedFields_ = [14]; +proto.account.AccountDetails.repeatedFields_ = [14,15]; @@ -3899,7 +3995,8 @@ proto.account.AccountDetails.toObject = function(includeInstance, msg) { accountstatus: jspb.Message.getFieldWithDefault(msg, 11, ""), qrcode: jspb.Message.getFieldWithDefault(msg, 12, ""), contactsinfoList: jspb.Message.toObjectList(msg.getContactsinfoList(), - proto.account.ContactDetails.toObject, includeInstance) + proto.account.ContactDetails.toObject, includeInstance), + rolesList: jspb.Message.getRepeatedField(msg, 15) }; if (includeInstance) { @@ -3989,6 +4086,10 @@ proto.account.AccountDetails.deserializeBinaryFromReader = function(msg, reader) reader.readMessage(value,proto.account.ContactDetails.deserializeBinaryFromReader); msg.addContactsinfo(value); break; + case 15: + var value = /** @type {!Array} */ (reader.readPackedEnum()); + msg.setRolesList(value); + break; default: reader.skipField(); break; @@ -4110,6 +4211,13 @@ proto.account.AccountDetails.serializeBinaryToWriter = function(message, writer) proto.account.ContactDetails.serializeBinaryToWriter ); } + f = message.getRolesList(); + if (f.length > 0) { + writer.writePackedEnum( + 15, + f + ); + } }; @@ -4348,6 +4456,35 @@ proto.account.AccountDetails.prototype.clearContactsinfoList = function() { }; +/** + * repeated Role roles = 15; + * @return {!Array} + */ +proto.account.AccountDetails.prototype.getRolesList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 15)); +}; + + +/** @param {!Array} value */ +proto.account.AccountDetails.prototype.setRolesList = function(value) { + jspb.Message.setField(this, 15, value || []); +}; + + +/** + * @param {!proto.account.Role} value + * @param {number=} opt_index + */ +proto.account.AccountDetails.prototype.addRoles = function(value, opt_index) { + jspb.Message.addToRepeatedField(this, 15, value, opt_index); +}; + + +proto.account.AccountDetails.prototype.clearRolesList = function() { + this.setRolesList([]); +}; + + /** * Generated by JsPbCodeGenerator. @@ -6072,4 +6209,13 @@ proto.account.Status = { TERMINATED: 3 }; +/** + * @enum {number} + */ +proto.account.Role = { + UNKNOWN_ROLE: 0, + USER: 1, + ADMIN: 2 +}; + goog.object.extend(exports, proto.account); -- GitLab From 62a588fdcaba605531c0f4936f6ac8965a61da7f Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Wed, 31 Oct 2018 12:31:59 +0200 Subject: [PATCH 118/249] added esling disable to proto generated file and proto readme update --- src/utils/grpc_proto/generated/account_pb.js | 1 + src/utils/grpc_proto/readme.md | 1 + 2 files changed, 2 insertions(+) diff --git a/src/utils/grpc_proto/generated/account_pb.js b/src/utils/grpc_proto/generated/account_pb.js index 6116d71..fdbf1de 100644 --- a/src/utils/grpc_proto/generated/account_pb.js +++ b/src/utils/grpc_proto/generated/account_pb.js @@ -1,3 +1,4 @@ +/* eslint-disable */ /** * @fileoverview * @enhanceable diff --git a/src/utils/grpc_proto/readme.md b/src/utils/grpc_proto/readme.md index 0a82d13..e0cf7e5 100644 --- a/src/utils/grpc_proto/readme.md +++ b/src/utils/grpc_proto/readme.md @@ -13,6 +13,7 @@ protoc \ // proto files are available at: // https://github.com/NYNJA-MC/proto-repository +// branch intracoldev // endpoints: // auth.dev-eu.nynja.net:443 -- GitLab From 9407adf8d2a6ae65e80648b30083fd5fe2264535 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Wed, 31 Oct 2018 12:47:54 +0200 Subject: [PATCH 119/249] proto readme update --- src/utils/grpc_proto/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/grpc_proto/readme.md b/src/utils/grpc_proto/readme.md index e0cf7e5..800f6a9 100644 --- a/src/utils/grpc_proto/readme.md +++ b/src/utils/grpc_proto/readme.md @@ -9,7 +9,7 @@ protoc \ --ts_out=service=true:out \ account.proto -// note: add /* eslint-disable */ at the top of auto generated account_pb.js file, due to eslint errors +// note: add /* eslint-disable */ at the top of all _pb.js files, due to eslint errors // proto files are available at: // https://github.com/NYNJA-MC/proto-repository -- GitLab From 088b1994a48271fbe6cd868bb1ead229f858ce6e Mon Sep 17 00:00:00 2001 From: samuil gospodinov Date: Wed, 31 Oct 2018 12:50:03 +0200 Subject: [PATCH 120/249] auth.proto compiled to js --- src/utils/grpc_proto/account.proto | 27 +- src/utils/grpc_proto/auth.proto | 2 +- src/utils/grpc_proto/generated/auth_pb.js | 2353 +++++++++++++++++ .../grpc_proto/generated/auth_pb_service.js | 157 ++ 4 files changed, 2529 insertions(+), 10 deletions(-) create mode 100644 src/utils/grpc_proto/generated/auth_pb.js create mode 100644 src/utils/grpc_proto/generated/auth_pb_service.js diff --git a/src/utils/grpc_proto/account.proto b/src/utils/grpc_proto/account.proto index 719c77a..b1ea3e8 100644 --- a/src/utils/grpc_proto/account.proto +++ b/src/utils/grpc_proto/account.proto @@ -54,6 +54,12 @@ enum Status { TERMINATED = 3; } +enum Role { + UNKNOWN_ROLE = 0; + USER = 1; + ADMIN = 2; +} + message CreatePendingAccountRequest { AuthenticationType authenticationType = 1; // Request for creating an account by phone number, email address, etc. string authenticationProvider = 2; @@ -71,6 +77,7 @@ message CompletePendingAccountCreationRequest { string username = 7; string accountStatus = 8; string qrCode = 9; + repeated Role roles = 11; } message CreateAccountRequest { @@ -103,6 +110,7 @@ message UpdateAccountRequest { string lastName = 6; string username = 7; string accountStatus = 8; + repeated Role roles = 10; } message DeleteAccountRequest { @@ -152,10 +160,10 @@ message CreatePendingAccountResponse { } message UpdateProfileRequest { - string profileId = 1; - AuthProviderDetails backupAuthProvider = 3; - string passcode = 4; - string defaultAccountId = 5; + string profileId = 1; + AuthProviderDetails backupAuthProvider = 3; + string passcode = 4; + string defaultAccountId = 5; } message AuthProviderDetails { @@ -185,6 +193,7 @@ message AccountDetails { string accountStatus = 11; string qrCode = 12; repeated ContactDetails contactsInfo = 14; + repeated Role roles = 15; } message AccountResponse { @@ -216,11 +225,11 @@ message AccountsResponse { } message ProfileDetails { - string profileId = 1; - repeated AuthProviderDetails authProviders = 2; - AuthProviderDetails backupAuthProvider = 3; - string passcode = 4; - string defaultAccountId = 5; + string profileId = 1; + repeated AuthProviderDetails authProviders = 2; + AuthProviderDetails backupAuthProvider = 3; + string passcode = 4; + string defaultAccountId = 5; } message ProfileResponse { diff --git a/src/utils/grpc_proto/auth.proto b/src/utils/grpc_proto/auth.proto index 54fb790..ae2a323 100644 --- a/src/utils/grpc_proto/auth.proto +++ b/src/utils/grpc_proto/auth.proto @@ -128,4 +128,4 @@ message AccessTokenResponseDetails { TokenResponseDetails tokenResponseDetails = 1; bool isPendingAccount = 2; string accountId = 3; -} +} \ No newline at end of file diff --git a/src/utils/grpc_proto/generated/auth_pb.js b/src/utils/grpc_proto/generated/auth_pb.js new file mode 100644 index 0000000..34d5b13 --- /dev/null +++ b/src/utils/grpc_proto/generated/auth_pb.js @@ -0,0 +1,2353 @@ +/* eslint-disable */ +/** + * @fileoverview + * @enhanceable + * @suppress {messageConventions} JS Compiler reports an error if a variable or + * field starts with 'MSG_' and isn't a translatable message. + * @public + */ +// GENERATED CODE -- DO NOT EDIT! + +var jspb = require('google-protobuf'); +var goog = jspb; +var global = Function('return this')(); + +goog.exportSymbol('proto.authentication.AccessTokenResponseDetails', null, global); +goog.exportSymbol('proto.authentication.ErrorResponse', null, global); +goog.exportSymbol('proto.authentication.ErrorResponse.Cause', null, global); +goog.exportSymbol('proto.authentication.GenerateAccessTokenRequest', null, global); +goog.exportSymbol('proto.authentication.GenerateAccessTokenResponse', null, global); +goog.exportSymbol('proto.authentication.GenerateAuthTokenRequest', null, global); +goog.exportSymbol('proto.authentication.GenerateTokenResponse', null, global); +goog.exportSymbol('proto.authentication.GenerateVerifyTokenRequest', null, global); +goog.exportSymbol('proto.authentication.GenerateVerifyTokenRequest.SendMethod', null, global); +goog.exportSymbol('proto.authentication.RequestTokenType', null, global); +goog.exportSymbol('proto.authentication.ResponseTokenType', null, global); +goog.exportSymbol('proto.authentication.SidType', null, global); +goog.exportSymbol('proto.authentication.StatusResponse', null, global); +goog.exportSymbol('proto.authentication.TokenResponseDetails', null, global); +goog.exportSymbol('proto.authentication.VerifyAuthProviderRequest', null, global); + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.authentication.GenerateAuthTokenRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.authentication.GenerateAuthTokenRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.authentication.GenerateAuthTokenRequest.displayName = 'proto.authentication.GenerateAuthTokenRequest'; +} + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.authentication.GenerateAuthTokenRequest.prototype.toObject = function(opt_includeInstance) { + return proto.authentication.GenerateAuthTokenRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.authentication.GenerateAuthTokenRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.authentication.GenerateAuthTokenRequest.toObject = function(includeInstance, msg) { + var f, obj = { + tokentype: jspb.Message.getFieldWithDefault(msg, 1, 0), + instanceid: jspb.Message.getFieldWithDefault(msg, 2, ""), + appclass: jspb.Message.getFieldWithDefault(msg, 3, ""), + orgid: jspb.Message.getFieldWithDefault(msg, 4, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.authentication.GenerateAuthTokenRequest} + */ +proto.authentication.GenerateAuthTokenRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.authentication.GenerateAuthTokenRequest; + return proto.authentication.GenerateAuthTokenRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.authentication.GenerateAuthTokenRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.authentication.GenerateAuthTokenRequest} + */ +proto.authentication.GenerateAuthTokenRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {!proto.authentication.RequestTokenType} */ (reader.readEnum()); + msg.setTokentype(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setInstanceid(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setAppclass(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setOrgid(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.authentication.GenerateAuthTokenRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.authentication.GenerateAuthTokenRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.authentication.GenerateAuthTokenRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.authentication.GenerateAuthTokenRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getTokentype(); + if (f !== 0.0) { + writer.writeEnum( + 1, + f + ); + } + f = message.getInstanceid(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getAppclass(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getOrgid(); + if (f.length > 0) { + writer.writeString( + 4, + f + ); + } +}; + + +/** + * optional RequestTokenType tokenType = 1; + * @return {!proto.authentication.RequestTokenType} + */ +proto.authentication.GenerateAuthTokenRequest.prototype.getTokentype = function() { + return /** @type {!proto.authentication.RequestTokenType} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** @param {!proto.authentication.RequestTokenType} value */ +proto.authentication.GenerateAuthTokenRequest.prototype.setTokentype = function(value) { + jspb.Message.setProto3EnumField(this, 1, value); +}; + + +/** + * optional string instanceId = 2; + * @return {string} + */ +proto.authentication.GenerateAuthTokenRequest.prototype.getInstanceid = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** @param {string} value */ +proto.authentication.GenerateAuthTokenRequest.prototype.setInstanceid = function(value) { + jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string appClass = 3; + * @return {string} + */ +proto.authentication.GenerateAuthTokenRequest.prototype.getAppclass = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** @param {string} value */ +proto.authentication.GenerateAuthTokenRequest.prototype.setAppclass = function(value) { + jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional string orgId = 4; + * @return {string} + */ +proto.authentication.GenerateAuthTokenRequest.prototype.getOrgid = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** @param {string} value */ +proto.authentication.GenerateAuthTokenRequest.prototype.setOrgid = function(value) { + jspb.Message.setProto3StringField(this, 4, value); +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.authentication.GenerateVerifyTokenRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.authentication.GenerateVerifyTokenRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.authentication.GenerateVerifyTokenRequest.displayName = 'proto.authentication.GenerateVerifyTokenRequest'; +} + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.authentication.GenerateVerifyTokenRequest.prototype.toObject = function(opt_includeInstance) { + return proto.authentication.GenerateVerifyTokenRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.authentication.GenerateVerifyTokenRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.authentication.GenerateVerifyTokenRequest.toObject = function(includeInstance, msg) { + var f, obj = { + sid: jspb.Message.getFieldWithDefault(msg, 1, ""), + sidtype: jspb.Message.getFieldWithDefault(msg, 2, 0), + sendvia: jspb.Message.getFieldWithDefault(msg, 3, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.authentication.GenerateVerifyTokenRequest} + */ +proto.authentication.GenerateVerifyTokenRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.authentication.GenerateVerifyTokenRequest; + return proto.authentication.GenerateVerifyTokenRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.authentication.GenerateVerifyTokenRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.authentication.GenerateVerifyTokenRequest} + */ +proto.authentication.GenerateVerifyTokenRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setSid(value); + break; + case 2: + var value = /** @type {!proto.authentication.SidType} */ (reader.readEnum()); + msg.setSidtype(value); + break; + case 3: + var value = /** @type {!proto.authentication.GenerateVerifyTokenRequest.SendMethod} */ (reader.readEnum()); + msg.setSendvia(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.authentication.GenerateVerifyTokenRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.authentication.GenerateVerifyTokenRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.authentication.GenerateVerifyTokenRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.authentication.GenerateVerifyTokenRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getSid(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getSidtype(); + if (f !== 0.0) { + writer.writeEnum( + 2, + f + ); + } + f = message.getSendvia(); + if (f !== 0.0) { + writer.writeEnum( + 3, + f + ); + } +}; + + +/** + * @enum {number} + */ +proto.authentication.GenerateVerifyTokenRequest.SendMethod = { + IDLE: 0, + SMS: 1, + CALL: 2 +}; + +/** + * optional string sid = 1; + * @return {string} + */ +proto.authentication.GenerateVerifyTokenRequest.prototype.getSid = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** @param {string} value */ +proto.authentication.GenerateVerifyTokenRequest.prototype.setSid = function(value) { + jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional SidType sidType = 2; + * @return {!proto.authentication.SidType} + */ +proto.authentication.GenerateVerifyTokenRequest.prototype.getSidtype = function() { + return /** @type {!proto.authentication.SidType} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** @param {!proto.authentication.SidType} value */ +proto.authentication.GenerateVerifyTokenRequest.prototype.setSidtype = function(value) { + jspb.Message.setProto3EnumField(this, 2, value); +}; + + +/** + * optional SendMethod sendVia = 3; + * @return {!proto.authentication.GenerateVerifyTokenRequest.SendMethod} + */ +proto.authentication.GenerateVerifyTokenRequest.prototype.getSendvia = function() { + return /** @type {!proto.authentication.GenerateVerifyTokenRequest.SendMethod} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +}; + + +/** @param {!proto.authentication.GenerateVerifyTokenRequest.SendMethod} value */ +proto.authentication.GenerateVerifyTokenRequest.prototype.setSendvia = function(value) { + jspb.Message.setProto3EnumField(this, 3, value); +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.authentication.GenerateAccessTokenRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.authentication.GenerateAccessTokenRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.authentication.GenerateAccessTokenRequest.displayName = 'proto.authentication.GenerateAccessTokenRequest'; +} + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.authentication.GenerateAccessTokenRequest.prototype.toObject = function(opt_includeInstance) { + return proto.authentication.GenerateAccessTokenRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.authentication.GenerateAccessTokenRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.authentication.GenerateAccessTokenRequest.toObject = function(includeInstance, msg) { + var f, obj = { + tokentype: jspb.Message.getFieldWithDefault(msg, 1, 0), + instanceid: jspb.Message.getFieldWithDefault(msg, 2, ""), + appclass: jspb.Message.getFieldWithDefault(msg, 3, ""), + orgid: jspb.Message.getFieldWithDefault(msg, 4, ""), + sidtype: jspb.Message.getFieldWithDefault(msg, 5, 0), + verifytoken: jspb.Message.getFieldWithDefault(msg, 6, ""), + logincode: jspb.Message.getFieldWithDefault(msg, 7, ""), + socialtoken: jspb.Message.getFieldWithDefault(msg, 8, ""), + deviceid: jspb.Message.getFieldWithDefault(msg, 9, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.authentication.GenerateAccessTokenRequest} + */ +proto.authentication.GenerateAccessTokenRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.authentication.GenerateAccessTokenRequest; + return proto.authentication.GenerateAccessTokenRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.authentication.GenerateAccessTokenRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.authentication.GenerateAccessTokenRequest} + */ +proto.authentication.GenerateAccessTokenRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {!proto.authentication.RequestTokenType} */ (reader.readEnum()); + msg.setTokentype(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setInstanceid(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setAppclass(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setOrgid(value); + break; + case 5: + var value = /** @type {!proto.authentication.SidType} */ (reader.readEnum()); + msg.setSidtype(value); + break; + case 6: + var value = /** @type {string} */ (reader.readString()); + msg.setVerifytoken(value); + break; + case 7: + var value = /** @type {string} */ (reader.readString()); + msg.setLogincode(value); + break; + case 8: + var value = /** @type {string} */ (reader.readString()); + msg.setSocialtoken(value); + break; + case 9: + var value = /** @type {string} */ (reader.readString()); + msg.setDeviceid(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.authentication.GenerateAccessTokenRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.authentication.GenerateAccessTokenRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.authentication.GenerateAccessTokenRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.authentication.GenerateAccessTokenRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getTokentype(); + if (f !== 0.0) { + writer.writeEnum( + 1, + f + ); + } + f = message.getInstanceid(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getAppclass(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getOrgid(); + if (f.length > 0) { + writer.writeString( + 4, + f + ); + } + f = message.getSidtype(); + if (f !== 0.0) { + writer.writeEnum( + 5, + f + ); + } + f = message.getVerifytoken(); + if (f.length > 0) { + writer.writeString( + 6, + f + ); + } + f = message.getLogincode(); + if (f.length > 0) { + writer.writeString( + 7, + f + ); + } + f = message.getSocialtoken(); + if (f.length > 0) { + writer.writeString( + 8, + f + ); + } + f = message.getDeviceid(); + if (f.length > 0) { + writer.writeString( + 9, + f + ); + } +}; + + +/** + * optional RequestTokenType tokenType = 1; + * @return {!proto.authentication.RequestTokenType} + */ +proto.authentication.GenerateAccessTokenRequest.prototype.getTokentype = function() { + return /** @type {!proto.authentication.RequestTokenType} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** @param {!proto.authentication.RequestTokenType} value */ +proto.authentication.GenerateAccessTokenRequest.prototype.setTokentype = function(value) { + jspb.Message.setProto3EnumField(this, 1, value); +}; + + +/** + * optional string instanceId = 2; + * @return {string} + */ +proto.authentication.GenerateAccessTokenRequest.prototype.getInstanceid = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** @param {string} value */ +proto.authentication.GenerateAccessTokenRequest.prototype.setInstanceid = function(value) { + jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string appClass = 3; + * @return {string} + */ +proto.authentication.GenerateAccessTokenRequest.prototype.getAppclass = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** @param {string} value */ +proto.authentication.GenerateAccessTokenRequest.prototype.setAppclass = function(value) { + jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional string orgId = 4; + * @return {string} + */ +proto.authentication.GenerateAccessTokenRequest.prototype.getOrgid = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** @param {string} value */ +proto.authentication.GenerateAccessTokenRequest.prototype.setOrgid = function(value) { + jspb.Message.setProto3StringField(this, 4, value); +}; + + +/** + * optional SidType sidType = 5; + * @return {!proto.authentication.SidType} + */ +proto.authentication.GenerateAccessTokenRequest.prototype.getSidtype = function() { + return /** @type {!proto.authentication.SidType} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); +}; + + +/** @param {!proto.authentication.SidType} value */ +proto.authentication.GenerateAccessTokenRequest.prototype.setSidtype = function(value) { + jspb.Message.setProto3EnumField(this, 5, value); +}; + + +/** + * optional string verifyToken = 6; + * @return {string} + */ +proto.authentication.GenerateAccessTokenRequest.prototype.getVerifytoken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); +}; + + +/** @param {string} value */ +proto.authentication.GenerateAccessTokenRequest.prototype.setVerifytoken = function(value) { + jspb.Message.setProto3StringField(this, 6, value); +}; + + +/** + * optional string loginCode = 7; + * @return {string} + */ +proto.authentication.GenerateAccessTokenRequest.prototype.getLogincode = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); +}; + + +/** @param {string} value */ +proto.authentication.GenerateAccessTokenRequest.prototype.setLogincode = function(value) { + jspb.Message.setProto3StringField(this, 7, value); +}; + + +/** + * optional string socialToken = 8; + * @return {string} + */ +proto.authentication.GenerateAccessTokenRequest.prototype.getSocialtoken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, "")); +}; + + +/** @param {string} value */ +proto.authentication.GenerateAccessTokenRequest.prototype.setSocialtoken = function(value) { + jspb.Message.setProto3StringField(this, 8, value); +}; + + +/** + * optional string deviceId = 9; + * @return {string} + */ +proto.authentication.GenerateAccessTokenRequest.prototype.getDeviceid = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, "")); +}; + + +/** @param {string} value */ +proto.authentication.GenerateAccessTokenRequest.prototype.setDeviceid = function(value) { + jspb.Message.setProto3StringField(this, 9, value); +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.authentication.VerifyAuthProviderRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.authentication.VerifyAuthProviderRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.authentication.VerifyAuthProviderRequest.displayName = 'proto.authentication.VerifyAuthProviderRequest'; +} + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.authentication.VerifyAuthProviderRequest.prototype.toObject = function(opt_includeInstance) { + return proto.authentication.VerifyAuthProviderRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.authentication.VerifyAuthProviderRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.authentication.VerifyAuthProviderRequest.toObject = function(includeInstance, msg) { + var f, obj = { + verifytoken: jspb.Message.getFieldWithDefault(msg, 1, ""), + verifycode: jspb.Message.getFieldWithDefault(msg, 2, ""), + profileid: jspb.Message.getFieldWithDefault(msg, 3, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.authentication.VerifyAuthProviderRequest} + */ +proto.authentication.VerifyAuthProviderRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.authentication.VerifyAuthProviderRequest; + return proto.authentication.VerifyAuthProviderRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.authentication.VerifyAuthProviderRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.authentication.VerifyAuthProviderRequest} + */ +proto.authentication.VerifyAuthProviderRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setVerifytoken(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setVerifycode(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setProfileid(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.authentication.VerifyAuthProviderRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.authentication.VerifyAuthProviderRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.authentication.VerifyAuthProviderRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.authentication.VerifyAuthProviderRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getVerifytoken(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getVerifycode(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getProfileid(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } +}; + + +/** + * optional string verifyToken = 1; + * @return {string} + */ +proto.authentication.VerifyAuthProviderRequest.prototype.getVerifytoken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** @param {string} value */ +proto.authentication.VerifyAuthProviderRequest.prototype.setVerifytoken = function(value) { + jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string verifyCode = 2; + * @return {string} + */ +proto.authentication.VerifyAuthProviderRequest.prototype.getVerifycode = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** @param {string} value */ +proto.authentication.VerifyAuthProviderRequest.prototype.setVerifycode = function(value) { + jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string profileId = 3; + * @return {string} + */ +proto.authentication.VerifyAuthProviderRequest.prototype.getProfileid = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** @param {string} value */ +proto.authentication.VerifyAuthProviderRequest.prototype.setProfileid = function(value) { + jspb.Message.setProto3StringField(this, 3, value); +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.authentication.GenerateTokenResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.authentication.GenerateTokenResponse.oneofGroups_); +}; +goog.inherits(proto.authentication.GenerateTokenResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.authentication.GenerateTokenResponse.displayName = 'proto.authentication.GenerateTokenResponse'; +} +/** + * Oneof group definitions for this message. Each group defines the field + * numbers belonging to that group. When of these fields' value is set, all + * other fields in the group are cleared. During deserialization, if multiple + * fields are encountered for a group, only the last value seen will be kept. + * @private {!Array>} + * @const + */ +proto.authentication.GenerateTokenResponse.oneofGroups_ = [[1,2]]; + +/** + * @enum {number} + */ +proto.authentication.GenerateTokenResponse.ResultCase = { + RESULT_NOT_SET: 0, + ERROR: 1, + TOKENRESPONSEDETAILS: 2 +}; + +/** + * @return {proto.authentication.GenerateTokenResponse.ResultCase} + */ +proto.authentication.GenerateTokenResponse.prototype.getResultCase = function() { + return /** @type {proto.authentication.GenerateTokenResponse.ResultCase} */(jspb.Message.computeOneofCase(this, proto.authentication.GenerateTokenResponse.oneofGroups_[0])); +}; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.authentication.GenerateTokenResponse.prototype.toObject = function(opt_includeInstance) { + return proto.authentication.GenerateTokenResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.authentication.GenerateTokenResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.authentication.GenerateTokenResponse.toObject = function(includeInstance, msg) { + var f, obj = { + error: (f = msg.getError()) && proto.authentication.ErrorResponse.toObject(includeInstance, f), + tokenresponsedetails: (f = msg.getTokenresponsedetails()) && proto.authentication.TokenResponseDetails.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.authentication.GenerateTokenResponse} + */ +proto.authentication.GenerateTokenResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.authentication.GenerateTokenResponse; + return proto.authentication.GenerateTokenResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.authentication.GenerateTokenResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.authentication.GenerateTokenResponse} + */ +proto.authentication.GenerateTokenResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.authentication.ErrorResponse; + reader.readMessage(value,proto.authentication.ErrorResponse.deserializeBinaryFromReader); + msg.setError(value); + break; + case 2: + var value = new proto.authentication.TokenResponseDetails; + reader.readMessage(value,proto.authentication.TokenResponseDetails.deserializeBinaryFromReader); + msg.setTokenresponsedetails(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.authentication.GenerateTokenResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.authentication.GenerateTokenResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.authentication.GenerateTokenResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.authentication.GenerateTokenResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getError(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.authentication.ErrorResponse.serializeBinaryToWriter + ); + } + f = message.getTokenresponsedetails(); + if (f != null) { + writer.writeMessage( + 2, + f, + proto.authentication.TokenResponseDetails.serializeBinaryToWriter + ); + } +}; + + +/** + * optional ErrorResponse error = 1; + * @return {?proto.authentication.ErrorResponse} + */ +proto.authentication.GenerateTokenResponse.prototype.getError = function() { + return /** @type{?proto.authentication.ErrorResponse} */ ( + jspb.Message.getWrapperField(this, proto.authentication.ErrorResponse, 1)); +}; + + +/** @param {?proto.authentication.ErrorResponse|undefined} value */ +proto.authentication.GenerateTokenResponse.prototype.setError = function(value) { + jspb.Message.setOneofWrapperField(this, 1, proto.authentication.GenerateTokenResponse.oneofGroups_[0], value); +}; + + +proto.authentication.GenerateTokenResponse.prototype.clearError = function() { + this.setError(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {!boolean} + */ +proto.authentication.GenerateTokenResponse.prototype.hasError = function() { + return jspb.Message.getField(this, 1) != null; +}; + + +/** + * optional TokenResponseDetails tokenResponseDetails = 2; + * @return {?proto.authentication.TokenResponseDetails} + */ +proto.authentication.GenerateTokenResponse.prototype.getTokenresponsedetails = function() { + return /** @type{?proto.authentication.TokenResponseDetails} */ ( + jspb.Message.getWrapperField(this, proto.authentication.TokenResponseDetails, 2)); +}; + + +/** @param {?proto.authentication.TokenResponseDetails|undefined} value */ +proto.authentication.GenerateTokenResponse.prototype.setTokenresponsedetails = function(value) { + jspb.Message.setOneofWrapperField(this, 2, proto.authentication.GenerateTokenResponse.oneofGroups_[0], value); +}; + + +proto.authentication.GenerateTokenResponse.prototype.clearTokenresponsedetails = function() { + this.setTokenresponsedetails(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {!boolean} + */ +proto.authentication.GenerateTokenResponse.prototype.hasTokenresponsedetails = function() { + return jspb.Message.getField(this, 2) != null; +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.authentication.GenerateAccessTokenResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.authentication.GenerateAccessTokenResponse.oneofGroups_); +}; +goog.inherits(proto.authentication.GenerateAccessTokenResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.authentication.GenerateAccessTokenResponse.displayName = 'proto.authentication.GenerateAccessTokenResponse'; +} +/** + * Oneof group definitions for this message. Each group defines the field + * numbers belonging to that group. When of these fields' value is set, all + * other fields in the group are cleared. During deserialization, if multiple + * fields are encountered for a group, only the last value seen will be kept. + * @private {!Array>} + * @const + */ +proto.authentication.GenerateAccessTokenResponse.oneofGroups_ = [[1,2]]; + +/** + * @enum {number} + */ +proto.authentication.GenerateAccessTokenResponse.ResultCase = { + RESULT_NOT_SET: 0, + ERROR: 1, + ACCESSTOKENRESPONSEDETAILS: 2 +}; + +/** + * @return {proto.authentication.GenerateAccessTokenResponse.ResultCase} + */ +proto.authentication.GenerateAccessTokenResponse.prototype.getResultCase = function() { + return /** @type {proto.authentication.GenerateAccessTokenResponse.ResultCase} */(jspb.Message.computeOneofCase(this, proto.authentication.GenerateAccessTokenResponse.oneofGroups_[0])); +}; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.authentication.GenerateAccessTokenResponse.prototype.toObject = function(opt_includeInstance) { + return proto.authentication.GenerateAccessTokenResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.authentication.GenerateAccessTokenResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.authentication.GenerateAccessTokenResponse.toObject = function(includeInstance, msg) { + var f, obj = { + error: (f = msg.getError()) && proto.authentication.ErrorResponse.toObject(includeInstance, f), + accesstokenresponsedetails: (f = msg.getAccesstokenresponsedetails()) && proto.authentication.AccessTokenResponseDetails.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.authentication.GenerateAccessTokenResponse} + */ +proto.authentication.GenerateAccessTokenResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.authentication.GenerateAccessTokenResponse; + return proto.authentication.GenerateAccessTokenResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.authentication.GenerateAccessTokenResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.authentication.GenerateAccessTokenResponse} + */ +proto.authentication.GenerateAccessTokenResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.authentication.ErrorResponse; + reader.readMessage(value,proto.authentication.ErrorResponse.deserializeBinaryFromReader); + msg.setError(value); + break; + case 2: + var value = new proto.authentication.AccessTokenResponseDetails; + reader.readMessage(value,proto.authentication.AccessTokenResponseDetails.deserializeBinaryFromReader); + msg.setAccesstokenresponsedetails(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.authentication.GenerateAccessTokenResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.authentication.GenerateAccessTokenResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.authentication.GenerateAccessTokenResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.authentication.GenerateAccessTokenResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getError(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.authentication.ErrorResponse.serializeBinaryToWriter + ); + } + f = message.getAccesstokenresponsedetails(); + if (f != null) { + writer.writeMessage( + 2, + f, + proto.authentication.AccessTokenResponseDetails.serializeBinaryToWriter + ); + } +}; + + +/** + * optional ErrorResponse error = 1; + * @return {?proto.authentication.ErrorResponse} + */ +proto.authentication.GenerateAccessTokenResponse.prototype.getError = function() { + return /** @type{?proto.authentication.ErrorResponse} */ ( + jspb.Message.getWrapperField(this, proto.authentication.ErrorResponse, 1)); +}; + + +/** @param {?proto.authentication.ErrorResponse|undefined} value */ +proto.authentication.GenerateAccessTokenResponse.prototype.setError = function(value) { + jspb.Message.setOneofWrapperField(this, 1, proto.authentication.GenerateAccessTokenResponse.oneofGroups_[0], value); +}; + + +proto.authentication.GenerateAccessTokenResponse.prototype.clearError = function() { + this.setError(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {!boolean} + */ +proto.authentication.GenerateAccessTokenResponse.prototype.hasError = function() { + return jspb.Message.getField(this, 1) != null; +}; + + +/** + * optional AccessTokenResponseDetails accessTokenResponseDetails = 2; + * @return {?proto.authentication.AccessTokenResponseDetails} + */ +proto.authentication.GenerateAccessTokenResponse.prototype.getAccesstokenresponsedetails = function() { + return /** @type{?proto.authentication.AccessTokenResponseDetails} */ ( + jspb.Message.getWrapperField(this, proto.authentication.AccessTokenResponseDetails, 2)); +}; + + +/** @param {?proto.authentication.AccessTokenResponseDetails|undefined} value */ +proto.authentication.GenerateAccessTokenResponse.prototype.setAccesstokenresponsedetails = function(value) { + jspb.Message.setOneofWrapperField(this, 2, proto.authentication.GenerateAccessTokenResponse.oneofGroups_[0], value); +}; + + +proto.authentication.GenerateAccessTokenResponse.prototype.clearAccesstokenresponsedetails = function() { + this.setAccesstokenresponsedetails(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {!boolean} + */ +proto.authentication.GenerateAccessTokenResponse.prototype.hasAccesstokenresponsedetails = function() { + return jspb.Message.getField(this, 2) != null; +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.authentication.TokenResponseDetails = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.authentication.TokenResponseDetails, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.authentication.TokenResponseDetails.displayName = 'proto.authentication.TokenResponseDetails'; +} + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.authentication.TokenResponseDetails.prototype.toObject = function(opt_includeInstance) { + return proto.authentication.TokenResponseDetails.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.authentication.TokenResponseDetails} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.authentication.TokenResponseDetails.toObject = function(includeInstance, msg) { + var f, obj = { + token: jspb.Message.getFieldWithDefault(msg, 1, ""), + responsetokentype: jspb.Message.getFieldWithDefault(msg, 2, 0), + exp: jspb.Message.getFieldWithDefault(msg, 3, 0), + refreshtoken: jspb.Message.getFieldWithDefault(msg, 4, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.authentication.TokenResponseDetails} + */ +proto.authentication.TokenResponseDetails.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.authentication.TokenResponseDetails; + return proto.authentication.TokenResponseDetails.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.authentication.TokenResponseDetails} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.authentication.TokenResponseDetails} + */ +proto.authentication.TokenResponseDetails.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setToken(value); + break; + case 2: + var value = /** @type {!proto.authentication.ResponseTokenType} */ (reader.readEnum()); + msg.setResponsetokentype(value); + break; + case 3: + var value = /** @type {number} */ (reader.readInt64()); + msg.setExp(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setRefreshtoken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.authentication.TokenResponseDetails.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.authentication.TokenResponseDetails.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.authentication.TokenResponseDetails} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.authentication.TokenResponseDetails.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getToken(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getResponsetokentype(); + if (f !== 0.0) { + writer.writeEnum( + 2, + f + ); + } + f = message.getExp(); + if (f !== 0) { + writer.writeInt64( + 3, + f + ); + } + f = message.getRefreshtoken(); + if (f.length > 0) { + writer.writeString( + 4, + f + ); + } +}; + + +/** + * optional string token = 1; + * @return {string} + */ +proto.authentication.TokenResponseDetails.prototype.getToken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** @param {string} value */ +proto.authentication.TokenResponseDetails.prototype.setToken = function(value) { + jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional ResponseTokenType responseTokenType = 2; + * @return {!proto.authentication.ResponseTokenType} + */ +proto.authentication.TokenResponseDetails.prototype.getResponsetokentype = function() { + return /** @type {!proto.authentication.ResponseTokenType} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** @param {!proto.authentication.ResponseTokenType} value */ +proto.authentication.TokenResponseDetails.prototype.setResponsetokentype = function(value) { + jspb.Message.setProto3EnumField(this, 2, value); +}; + + +/** + * optional int64 exp = 3; + * @return {number} + */ +proto.authentication.TokenResponseDetails.prototype.getExp = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +}; + + +/** @param {number} value */ +proto.authentication.TokenResponseDetails.prototype.setExp = function(value) { + jspb.Message.setProto3IntField(this, 3, value); +}; + + +/** + * optional string refreshToken = 4; + * @return {string} + */ +proto.authentication.TokenResponseDetails.prototype.getRefreshtoken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** @param {string} value */ +proto.authentication.TokenResponseDetails.prototype.setRefreshtoken = function(value) { + jspb.Message.setProto3StringField(this, 4, value); +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.authentication.StatusResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.authentication.StatusResponse.oneofGroups_); +}; +goog.inherits(proto.authentication.StatusResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.authentication.StatusResponse.displayName = 'proto.authentication.StatusResponse'; +} +/** + * Oneof group definitions for this message. Each group defines the field + * numbers belonging to that group. When of these fields' value is set, all + * other fields in the group are cleared. During deserialization, if multiple + * fields are encountered for a group, only the last value seen will be kept. + * @private {!Array>} + * @const + */ +proto.authentication.StatusResponse.oneofGroups_ = [[1,2]]; + +/** + * @enum {number} + */ +proto.authentication.StatusResponse.ResultCase = { + RESULT_NOT_SET: 0, + ERROR: 1, + STATUS: 2 +}; + +/** + * @return {proto.authentication.StatusResponse.ResultCase} + */ +proto.authentication.StatusResponse.prototype.getResultCase = function() { + return /** @type {proto.authentication.StatusResponse.ResultCase} */(jspb.Message.computeOneofCase(this, proto.authentication.StatusResponse.oneofGroups_[0])); +}; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.authentication.StatusResponse.prototype.toObject = function(opt_includeInstance) { + return proto.authentication.StatusResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.authentication.StatusResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.authentication.StatusResponse.toObject = function(includeInstance, msg) { + var f, obj = { + error: (f = msg.getError()) && proto.authentication.ErrorResponse.toObject(includeInstance, f), + status: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.authentication.StatusResponse} + */ +proto.authentication.StatusResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.authentication.StatusResponse; + return proto.authentication.StatusResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.authentication.StatusResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.authentication.StatusResponse} + */ +proto.authentication.StatusResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.authentication.ErrorResponse; + reader.readMessage(value,proto.authentication.ErrorResponse.deserializeBinaryFromReader); + msg.setError(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setStatus(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.authentication.StatusResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.authentication.StatusResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.authentication.StatusResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.authentication.StatusResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getError(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.authentication.ErrorResponse.serializeBinaryToWriter + ); + } + f = /** @type {string} */ (jspb.Message.getField(message, 2)); + if (f != null) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * optional ErrorResponse error = 1; + * @return {?proto.authentication.ErrorResponse} + */ +proto.authentication.StatusResponse.prototype.getError = function() { + return /** @type{?proto.authentication.ErrorResponse} */ ( + jspb.Message.getWrapperField(this, proto.authentication.ErrorResponse, 1)); +}; + + +/** @param {?proto.authentication.ErrorResponse|undefined} value */ +proto.authentication.StatusResponse.prototype.setError = function(value) { + jspb.Message.setOneofWrapperField(this, 1, proto.authentication.StatusResponse.oneofGroups_[0], value); +}; + + +proto.authentication.StatusResponse.prototype.clearError = function() { + this.setError(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {!boolean} + */ +proto.authentication.StatusResponse.prototype.hasError = function() { + return jspb.Message.getField(this, 1) != null; +}; + + +/** + * optional string status = 2; + * @return {string} + */ +proto.authentication.StatusResponse.prototype.getStatus = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** @param {string} value */ +proto.authentication.StatusResponse.prototype.setStatus = function(value) { + jspb.Message.setOneofField(this, 2, proto.authentication.StatusResponse.oneofGroups_[0], value); +}; + + +proto.authentication.StatusResponse.prototype.clearStatus = function() { + jspb.Message.setOneofField(this, 2, proto.authentication.StatusResponse.oneofGroups_[0], undefined); +}; + + +/** + * Returns whether this field is set. + * @return {!boolean} + */ +proto.authentication.StatusResponse.prototype.hasStatus = function() { + return jspb.Message.getField(this, 2) != null; +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.authentication.ErrorResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.authentication.ErrorResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.authentication.ErrorResponse.displayName = 'proto.authentication.ErrorResponse'; +} + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.authentication.ErrorResponse.prototype.toObject = function(opt_includeInstance) { + return proto.authentication.ErrorResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.authentication.ErrorResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.authentication.ErrorResponse.toObject = function(includeInstance, msg) { + var f, obj = { + cause: jspb.Message.getFieldWithDefault(msg, 1, 0), + message: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.authentication.ErrorResponse} + */ +proto.authentication.ErrorResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.authentication.ErrorResponse; + return proto.authentication.ErrorResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.authentication.ErrorResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.authentication.ErrorResponse} + */ +proto.authentication.ErrorResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {!proto.authentication.ErrorResponse.Cause} */ (reader.readEnum()); + msg.setCause(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setMessage(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.authentication.ErrorResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.authentication.ErrorResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.authentication.ErrorResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.authentication.ErrorResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getCause(); + if (f !== 0.0) { + writer.writeEnum( + 1, + f + ); + } + f = message.getMessage(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * @enum {number} + */ +proto.authentication.ErrorResponse.Cause = { + INTERNAL_SERVER_ERROR: 0, + PHONE_NUMBER_INVALID: 1, + SID_INVALID: 2, + SID_TYPE_INVALID: 3, + EXPIRED_VERIFY_TOKEN: 4, + INVALID_VERIFY_CODE: 5, + SEND_VIA_INVALID: 6, + MAX_VERIFY_REQUESTS_REACHED: 7, + MISSING_PROFILE_ID: 8, + INVALID_PROFILE_ID: 9, + MISSING_VERIFY_TOKEN: 10, + MISSING_VERIFY_CODE: 11, + MAX_PHONE_FAILED_ATTEMPTS_REACHED: 12, + EMAIL_INVALID: 13, + SOCIAL_TOKEN_INVALID: 14, + MAX_DEVICE_FAILED_ATTEMPTS_REACHED: 15 +}; + +/** + * optional Cause cause = 1; + * @return {!proto.authentication.ErrorResponse.Cause} + */ +proto.authentication.ErrorResponse.prototype.getCause = function() { + return /** @type {!proto.authentication.ErrorResponse.Cause} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** @param {!proto.authentication.ErrorResponse.Cause} value */ +proto.authentication.ErrorResponse.prototype.setCause = function(value) { + jspb.Message.setProto3EnumField(this, 1, value); +}; + + +/** + * optional string message = 2; + * @return {string} + */ +proto.authentication.ErrorResponse.prototype.getMessage = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** @param {string} value */ +proto.authentication.ErrorResponse.prototype.setMessage = function(value) { + jspb.Message.setProto3StringField(this, 2, value); +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.authentication.AccessTokenResponseDetails = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.authentication.AccessTokenResponseDetails, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.authentication.AccessTokenResponseDetails.displayName = 'proto.authentication.AccessTokenResponseDetails'; +} + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.authentication.AccessTokenResponseDetails.prototype.toObject = function(opt_includeInstance) { + return proto.authentication.AccessTokenResponseDetails.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.authentication.AccessTokenResponseDetails} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.authentication.AccessTokenResponseDetails.toObject = function(includeInstance, msg) { + var f, obj = { + tokenresponsedetails: (f = msg.getTokenresponsedetails()) && proto.authentication.TokenResponseDetails.toObject(includeInstance, f), + ispendingaccount: jspb.Message.getFieldWithDefault(msg, 2, false), + accountid: jspb.Message.getFieldWithDefault(msg, 3, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.authentication.AccessTokenResponseDetails} + */ +proto.authentication.AccessTokenResponseDetails.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.authentication.AccessTokenResponseDetails; + return proto.authentication.AccessTokenResponseDetails.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.authentication.AccessTokenResponseDetails} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.authentication.AccessTokenResponseDetails} + */ +proto.authentication.AccessTokenResponseDetails.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.authentication.TokenResponseDetails; + reader.readMessage(value,proto.authentication.TokenResponseDetails.deserializeBinaryFromReader); + msg.setTokenresponsedetails(value); + break; + case 2: + var value = /** @type {boolean} */ (reader.readBool()); + msg.setIspendingaccount(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setAccountid(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.authentication.AccessTokenResponseDetails.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.authentication.AccessTokenResponseDetails.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.authentication.AccessTokenResponseDetails} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.authentication.AccessTokenResponseDetails.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getTokenresponsedetails(); + if (f != null) { + writer.writeMessage( + 1, + f, + proto.authentication.TokenResponseDetails.serializeBinaryToWriter + ); + } + f = message.getIspendingaccount(); + if (f) { + writer.writeBool( + 2, + f + ); + } + f = message.getAccountid(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } +}; + + +/** + * optional TokenResponseDetails tokenResponseDetails = 1; + * @return {?proto.authentication.TokenResponseDetails} + */ +proto.authentication.AccessTokenResponseDetails.prototype.getTokenresponsedetails = function() { + return /** @type{?proto.authentication.TokenResponseDetails} */ ( + jspb.Message.getWrapperField(this, proto.authentication.TokenResponseDetails, 1)); +}; + + +/** @param {?proto.authentication.TokenResponseDetails|undefined} value */ +proto.authentication.AccessTokenResponseDetails.prototype.setTokenresponsedetails = function(value) { + jspb.Message.setWrapperField(this, 1, value); +}; + + +proto.authentication.AccessTokenResponseDetails.prototype.clearTokenresponsedetails = function() { + this.setTokenresponsedetails(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {!boolean} + */ +proto.authentication.AccessTokenResponseDetails.prototype.hasTokenresponsedetails = function() { + return jspb.Message.getField(this, 1) != null; +}; + + +/** + * optional bool isPendingAccount = 2; + * Note that Boolean fields may be set to 0/1 when serialized from a Java server. + * You should avoid comparisons like {@code val === true/false} in those cases. + * @return {boolean} + */ +proto.authentication.AccessTokenResponseDetails.prototype.getIspendingaccount = function() { + return /** @type {boolean} */ (jspb.Message.getFieldWithDefault(this, 2, false)); +}; + + +/** @param {boolean} value */ +proto.authentication.AccessTokenResponseDetails.prototype.setIspendingaccount = function(value) { + jspb.Message.setProto3BooleanField(this, 2, value); +}; + + +/** + * optional string accountId = 3; + * @return {string} + */ +proto.authentication.AccessTokenResponseDetails.prototype.getAccountid = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** @param {string} value */ +proto.authentication.AccessTokenResponseDetails.prototype.setAccountid = function(value) { + jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * @enum {number} + */ +proto.authentication.SidType = { + NOT_SET: 0, + PHONE: 1, + EMAIL: 2, + FACEBOOK: 3, + GOOGLEPLUS: 4 +}; + +/** + * @enum {number} + */ +proto.authentication.ResponseTokenType = { + BEARER: 0, + CODE: 1 +}; + +/** + * @enum {number} + */ +proto.authentication.RequestTokenType = { + AUTH: 0, + VERIFY: 1, + ACCESS: 2 +}; + +goog.object.extend(exports, proto.authentication); diff --git a/src/utils/grpc_proto/generated/auth_pb_service.js b/src/utils/grpc_proto/generated/auth_pb_service.js new file mode 100644 index 0000000..a2f0728 --- /dev/null +++ b/src/utils/grpc_proto/generated/auth_pb_service.js @@ -0,0 +1,157 @@ +// package: authentication +// file: auth.proto + +var auth_pb = require("./auth_pb"); +var grpc = require("grpc-web-client").grpc; + +var AuthenticationService = (function () { + function AuthenticationService() {} + AuthenticationService.serviceName = "authentication.AuthenticationService"; + return AuthenticationService; +}()); + +AuthenticationService.generateAuthToken = { + methodName: "generateAuthToken", + service: AuthenticationService, + requestStream: false, + responseStream: false, + requestType: auth_pb.GenerateAuthTokenRequest, + responseType: auth_pb.GenerateTokenResponse +}; + +AuthenticationService.generateVerifyToken = { + methodName: "generateVerifyToken", + service: AuthenticationService, + requestStream: false, + responseStream: false, + requestType: auth_pb.GenerateVerifyTokenRequest, + responseType: auth_pb.GenerateTokenResponse +}; + +AuthenticationService.generateAccessToken = { + methodName: "generateAccessToken", + service: AuthenticationService, + requestStream: false, + responseStream: false, + requestType: auth_pb.GenerateAccessTokenRequest, + responseType: auth_pb.GenerateAccessTokenResponse +}; + +AuthenticationService.verifyAuthProvider = { + methodName: "verifyAuthProvider", + service: AuthenticationService, + requestStream: false, + responseStream: false, + requestType: auth_pb.VerifyAuthProviderRequest, + responseType: auth_pb.StatusResponse +}; + +exports.AuthenticationService = AuthenticationService; + +function AuthenticationServiceClient(serviceHost, options) { + this.serviceHost = serviceHost; + this.options = options || {}; +} + +AuthenticationServiceClient.prototype.generateAuthToken = function generateAuthToken(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + grpc.unary(AuthenticationService.generateAuthToken, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); +}; + +AuthenticationServiceClient.prototype.generateVerifyToken = function generateVerifyToken(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + grpc.unary(AuthenticationService.generateVerifyToken, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); +}; + +AuthenticationServiceClient.prototype.generateAccessToken = function generateAccessToken(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + grpc.unary(AuthenticationService.generateAccessToken, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); +}; + +AuthenticationServiceClient.prototype.verifyAuthProvider = function verifyAuthProvider(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + grpc.unary(AuthenticationService.verifyAuthProvider, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); +}; + +exports.AuthenticationServiceClient = AuthenticationServiceClient; + -- GitLab From adf199c619f79fbebd11c1992cd61f096904fecc Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Wed, 31 Oct 2018 13:39:15 +0200 Subject: [PATCH 121/249] disabling esling on generated js from proto files --- src/utils/grpc_proto/generated/account_pb_service.js | 1 + src/utils/grpc_proto/generated/auth_pb_service.js | 1 + 2 files changed, 2 insertions(+) diff --git a/src/utils/grpc_proto/generated/account_pb_service.js b/src/utils/grpc_proto/generated/account_pb_service.js index 6847f5d..7bf6d0d 100644 --- a/src/utils/grpc_proto/generated/account_pb_service.js +++ b/src/utils/grpc_proto/generated/account_pb_service.js @@ -1,3 +1,4 @@ +/* eslint-disable */ // package: account // file: account.proto diff --git a/src/utils/grpc_proto/generated/auth_pb_service.js b/src/utils/grpc_proto/generated/auth_pb_service.js index a2f0728..31b5269 100644 --- a/src/utils/grpc_proto/generated/auth_pb_service.js +++ b/src/utils/grpc_proto/generated/auth_pb_service.js @@ -1,3 +1,4 @@ +/* eslint-disable */ // package: authentication // file: auth.proto -- GitLab From a6511cca2ed3a066048b7d7f498fd9a35c779d21 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Mon, 5 Nov 2018 13:52:38 +0200 Subject: [PATCH 122/249] precompiled proto files and updated grpc communication readme --- src/utils/grpc_proto/account.proto | 57 ++++++++++++++++++------------ src/utils/grpc_proto/auth.proto | 6 ++++ src/utils/grpc_proto/readme.md | 3 +- 3 files changed, 42 insertions(+), 24 deletions(-) diff --git a/src/utils/grpc_proto/account.proto b/src/utils/grpc_proto/account.proto index b1ea3e8..574d115 100644 --- a/src/utils/grpc_proto/account.proto +++ b/src/utils/grpc_proto/account.proto @@ -47,25 +47,25 @@ enum ContactType { TWITTER_CONTACT = 5; } -enum Status { - NOT_SET = 0; - ACTIVE = 1; - SUSPENDED = 2; - TERMINATED = 3; -} - enum Role { UNKNOWN_ROLE = 0; USER = 1; ADMIN = 2; } +enum AccessStatus { + UNKNOWN_ACCESS_STATUS = 0; + ENABLED = 1; + SUSPENDED = 2; + DISABLED = 3; +} + message CreatePendingAccountRequest { AuthenticationType authenticationType = 1; // Request for creating an account by phone number, email address, etc. string authenticationProvider = 2; } -//PREVIOUSLY RESERVED FIELD NUMBERS: 10 +//PREVIOUSLY RESERVED FIELD NUMBERS: 10, 8 //NOT to be used for newly added fields. message CompletePendingAccountCreationRequest { string accountId = 1; @@ -75,9 +75,9 @@ message CompletePendingAccountCreationRequest { string firstName = 5; string lastName = 6; string username = 7; - string accountStatus = 8; string qrCode = 9; repeated Role roles = 11; + AccessStatus accessStatus = 12; } message CreateAccountRequest { @@ -89,6 +89,13 @@ message AccountsByProfileIdRequest { string profileId = 1; } +message Date { + int32 year = 1; + //month: from 1(January) to 12(December) + int32 month = 2; + int32 day = 3; +} + message AccountByAccountIdRequest { string accountId = 1; } @@ -99,7 +106,7 @@ message AccountByAuthenticationProviderRequest { // email address, Facebook user Id, Google user Id } -//PREVIOUSLY RESERVED FIELD NUMBERS: 9 +//PREVIOUSLY RESERVED FIELD NUMBERS: 8,9 //NOT to be used for newly added fields. message UpdateAccountRequest { string accountId = 1; @@ -109,8 +116,10 @@ message UpdateAccountRequest { string firstName = 5; string lastName = 6; string username = 7; - string accountStatus = 8; repeated Role roles = 10; + AccessStatus accessStatus = 11; + //To remove the value for birthday date do not set the birthday field or use 0,0,0 for year, month, day. + Date birthday = 12; } message DeleteAccountRequest { @@ -159,11 +168,12 @@ message CreatePendingAccountResponse { } } +//PREVIOUSLY RESERVED FIELD NUMBERS: 3 +//NOT to be used for newly added fields. message UpdateProfileRequest { - string profileId = 1; - AuthProviderDetails backupAuthProvider = 3; - string passcode = 4; - string defaultAccountId = 5; + string profileId = 1; + string passcode = 4; + string defaultAccountId = 5; } message AuthProviderDetails { @@ -177,7 +187,7 @@ message ContactDetails { string label = 3; } -//PREVIOUSLY RESERVED FIELD NUMBERS: 13 +//PREVIOUSLY RESERVED FIELD NUMBERS: 11, 13 //NOT to be used for newly added fields. message AccountDetails { string accountId = 1; @@ -190,10 +200,11 @@ message AccountDetails { string firstName = 8; string lastName = 9; string username = 10; - string accountStatus = 11; string qrCode = 12; repeated ContactDetails contactsInfo = 14; repeated Role roles = 15; + AccessStatus accessStatus = 16; + Date birthday = 17; } message AccountResponse { @@ -224,12 +235,13 @@ message AccountsResponse { } } +//PREVIOUSLY RESERVED FIELD NUMBERS: 3 +//NOT to be used for newly added fields. message ProfileDetails { - string profileId = 1; - repeated AuthProviderDetails authProviders = 2; - AuthProviderDetails backupAuthProvider = 3; - string passcode = 4; - string defaultAccountId = 5; + string profileId = 1; + repeated AuthProviderDetails authProviders = 2; + string passcode = 4; + string defaultAccountId = 5; } message ProfileResponse { @@ -276,6 +288,7 @@ message ErrorResponse { ERROR_ADDING_CONTACT_INFO = 31; ERROR_REMOVING_CONTACT_INFO = 32; ERROR_EDITING_CONTACT_INFO = 33; + INVALID_BIRTHDAY_DATE = 34; } Cause cause = 1; string message = 2; diff --git a/src/utils/grpc_proto/auth.proto b/src/utils/grpc_proto/auth.proto index ae2a323..7b7c578 100644 --- a/src/utils/grpc_proto/auth.proto +++ b/src/utils/grpc_proto/auth.proto @@ -16,6 +16,7 @@ service AuthenticationService { rpc generateAuthToken(GenerateAuthTokenRequest) returns (GenerateTokenResponse); rpc generateVerifyToken(GenerateVerifyTokenRequest) returns (GenerateTokenResponse); rpc generateAccessToken(GenerateAccessTokenRequest) returns (GenerateAccessTokenResponse); + rpc exchangeRefreshToken(ExchangeRefreshTokenRequest) returns (GenerateTokenResponse); rpc verifyAuthProvider(VerifyAuthProviderRequest) returns (StatusResponse); } @@ -49,6 +50,10 @@ message GenerateAccessTokenRequest { string deviceId = 9; } +message ExchangeRefreshTokenRequest { + string refreshToken = 1; +} + enum SidType { NOT_SET = 0; PHONE = 1; @@ -108,6 +113,7 @@ message ErrorResponse { EMAIL_INVALID = 13; SOCIAL_TOKEN_INVALID = 14; MAX_DEVICE_FAILED_ATTEMPTS_REACHED = 15; + REFRESH_TOKEN_INVALID = 16; } Cause cause = 1; string message = 2; diff --git a/src/utils/grpc_proto/readme.md b/src/utils/grpc_proto/readme.md index 800f6a9..33b1772 100644 --- a/src/utils/grpc_proto/readme.md +++ b/src/utils/grpc_proto/readme.md @@ -1,4 +1,3 @@ -// substitude brew with microsoft friendly package manager brew install protobuf npm install protoc-gen-ts @@ -12,7 +11,7 @@ protoc \ // note: add /* eslint-disable */ at the top of all _pb.js files, due to eslint errors // proto files are available at: -// https://github.com/NYNJA-MC/proto-repository +// https://github.com/NYNJA-MC/proto-repository/tree/intracoldev // branch intracoldev // endpoints: -- GitLab From f75a1cfe22e60d9a2a3b45aed69fa3266799a677 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Mon, 5 Nov 2018 13:55:15 +0200 Subject: [PATCH 123/249] proto files compiled to js --- src/utils/grpc_proto/generated/account_pb.js | 1 + src/utils/grpc_proto/generated/account_pb_service.js | 1 + src/utils/grpc_proto/generated/auth_pb.js | 1 + src/utils/grpc_proto/generated/auth_pb_service.js | 1 + 4 files changed, 4 insertions(+) diff --git a/src/utils/grpc_proto/generated/account_pb.js b/src/utils/grpc_proto/generated/account_pb.js index fdbf1de..51f8b8d 100644 --- a/src/utils/grpc_proto/generated/account_pb.js +++ b/src/utils/grpc_proto/generated/account_pb.js @@ -1,4 +1,5 @@ /* eslint-disable */ + /** * @fileoverview * @enhanceable diff --git a/src/utils/grpc_proto/generated/account_pb_service.js b/src/utils/grpc_proto/generated/account_pb_service.js index 7bf6d0d..22280fa 100644 --- a/src/utils/grpc_proto/generated/account_pb_service.js +++ b/src/utils/grpc_proto/generated/account_pb_service.js @@ -1,4 +1,5 @@ /* eslint-disable */ + // package: account // file: account.proto diff --git a/src/utils/grpc_proto/generated/auth_pb.js b/src/utils/grpc_proto/generated/auth_pb.js index 34d5b13..f5449d5 100644 --- a/src/utils/grpc_proto/generated/auth_pb.js +++ b/src/utils/grpc_proto/generated/auth_pb.js @@ -1,4 +1,5 @@ /* eslint-disable */ + /** * @fileoverview * @enhanceable diff --git a/src/utils/grpc_proto/generated/auth_pb_service.js b/src/utils/grpc_proto/generated/auth_pb_service.js index 31b5269..b123b69 100644 --- a/src/utils/grpc_proto/generated/auth_pb_service.js +++ b/src/utils/grpc_proto/generated/auth_pb_service.js @@ -1,4 +1,5 @@ /* eslint-disable */ + // package: authentication // file: auth.proto -- GitLab From bc22fb3adbba242abfb8abef2eef86e6cbfa4034 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Mon, 5 Nov 2018 17:17:07 +0200 Subject: [PATCH 124/249] implementing getAccountById endpoint for admin user recognition --- src/components/dashboard_users/middleware.js | 3 + src/components/header_bar/index.js | 5 +- src/components/header_bar/middleware.js | 7 +- src/components/header_bar/reducer.js | 21 ++++-- src/utils/api/_DATA.js | 21 +----- src/utils/api/index.js | 23 +------ src/utils/services/accounts.js | 67 ++++++++++++++++++++ 7 files changed, 95 insertions(+), 52 deletions(-) create mode 100644 src/utils/services/accounts.js diff --git a/src/components/dashboard_users/middleware.js b/src/components/dashboard_users/middleware.js index 161f9f1..e23425f 100644 --- a/src/components/dashboard_users/middleware.js +++ b/src/components/dashboard_users/middleware.js @@ -9,6 +9,9 @@ import { failUsers } from './../../hoc/error_handler/actions'; export function* getUsers() { try { + // const getError = (state) => state.error + // const error = yield select(getError); + const payloadArray = yield call(_getUsers); yield put(deliverUsersPayload(payloadArray)); } diff --git a/src/components/header_bar/index.js b/src/components/header_bar/index.js index 7695682..9a58881 100644 --- a/src/components/header_bar/index.js +++ b/src/components/header_bar/index.js @@ -28,12 +28,12 @@ class HeaderBar extends Component { * @const {string} firstName * @const {string} lastName */ - const { firstName, lastName } = this.props; + const { firstName, lastName } = this.props; return ( - {firstName} {lastName} + { firstName } { lastName } @@ -48,6 +48,7 @@ HeaderBar.propTypes = { }; const mapStateToProps = (state) => { + console.log(state) return { firstName: state.authedUser.firstName, diff --git a/src/components/header_bar/middleware.js b/src/components/header_bar/middleware.js index 89317b3..a06d46e 100644 --- a/src/components/header_bar/middleware.js +++ b/src/components/header_bar/middleware.js @@ -1,12 +1,13 @@ import { call, put } from 'redux-saga/effects'; -import { _getAuthedUserData } from './../../utils/api/mock_api_requests'; +import { accountByAccountIdGrpcRequest } from './../../utils/services/accounts'; import { deliverAuthedUser } from './actions'; import { failUsers } from './../../hoc/error_handler/actions'; export function* getAuthedUser() { try { - const payloadData = yield call( _getAuthedUserData); - yield put(deliverAuthedUser([payloadData])) + // todo: implement login endpoint, when deployed + const payload = yield call(accountByAccountIdGrpcRequest, '44ddbbcb-6dbf-46a7-bf67-5efed01db3de'); + yield put(deliverAuthedUser(payload)) } catch (error) { yield put(failUsers(error)); diff --git a/src/components/header_bar/reducer.js b/src/components/header_bar/reducer.js index aaa4b43..d0cbe8c 100644 --- a/src/components/header_bar/reducer.js +++ b/src/components/header_bar/reducer.js @@ -1,17 +1,26 @@ import { DELIVER_AUTH_USER } from './actions'; import { updateObject } from '../../hoc/update-object/update-object'; -const initialState = { - firstName: '', - lastName: '' -} +const initialState = {} const deliverAuthUser = (state, action) => { const { authedUser } = action; return updateObject(state, { - firstName: authedUser[0].firstName, - lastName: authedUser[0].lastName + accountId: authedUser[0], + profileId: authedUser[1], + authenticationIdentifier: authedUser[2], + authenticationType: authedUser[3], + avatar: authedUser[4], + accountMark: authedUser[5], + accountName: authedUser[6], + firstName: authedUser[7], + lastName: authedUser[8], + username: authedUser[9], + qrCode: authedUser[10], + contactsInfo: authedUser[11], + roles: authedUser[12], + accessStatus: authedUser[13] }) } diff --git a/src/utils/api/_DATA.js b/src/utils/api/_DATA.js index 45fa63c..b208450 100644 --- a/src/utils/api/_DATA.js +++ b/src/utils/api/_DATA.js @@ -1,24 +1,7 @@ -export const authUser = [ - { - accountId: '359654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - } -] - export const users = [ { - accountId: '359654755', - profileId: '951753852', + accountId: 'e8a4433a-0cf4-47d1-a580-ca09abef71fc', + profileId: 'e8a4433a-0cf4-47d1-a580-ca09abef71fc', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', diff --git a/src/utils/api/index.js b/src/utils/api/index.js index a65eac1..74c5666 100644 --- a/src/utils/api/index.js +++ b/src/utils/api/index.js @@ -1,6 +1,4 @@ -import { authUser, users } from './_DATA'; -import { AccountServiceClient } from './../grpc_proto/generated/account_pb_service'; -import { AccountByAuthenticationProviderRequest } from './../grpc_proto/generated/account_pb'; +import { users } from './_DATA'; export function _getUsers() { return new Promise((res, rej) => { @@ -8,12 +6,6 @@ export function _getUsers() { }) } -export function _getAuthUser() { - return new Promise((res, rej) => { - setTimeout(() => res(authUser), 100) - }) -} - function ServerSideDatasource(fakeServer) { this.fakeServer = fakeServer; @@ -26,19 +18,6 @@ function ServerSideDatasource(fakeServer) { ServerSideDatasource.prototype.getRows = function(params) { console.log('ServerSideDatasource.getRows: params = ', params); - let host = "https://account.dev-eu.nynja.net:443"; - let accountByAuthenticationProviderRequest = new AccountByAuthenticationProviderRequest(); - accountByAuthenticationProviderRequest.authenticationType = 1; - - let accountServiceClient = new AccountServiceClient(host); - accountByAuthenticationProviderRequest.authenticationIdentifier = 'BG:359886444412'; - let grpcReturn = new Promise((resolve, reject)=>{ - accountServiceClient.getAccountByAuthenticationProvider(accountByAuthenticationProviderRequest, {}, (error, response) => { - console.log("response", response); - console.log("error", error); - }) - }); - // the request is passed dynamically from ag-grid var request = params.request; console.log('request', request); diff --git a/src/utils/services/accounts.js b/src/utils/services/accounts.js new file mode 100644 index 0000000..7299cf0 --- /dev/null +++ b/src/utils/services/accounts.js @@ -0,0 +1,67 @@ +import { AccountServiceClient } from './../grpc_proto/generated/account_pb_service'; +import { AccountByAuthenticationProviderRequest, AccountByAccountIdRequest } from './../grpc_proto/generated/account_pb'; +// import { AuthenticationServiceClient } from './../grpc_proto/generated/auth_pb_service'; +// import { GenerateVerifyTokenRequest } from './../grpc_proto/generated/auth_pb'; + + +const endpoint = "https://account.dev-eu.nynja.net:443"; + +/** + * getting account details + */ +let accountByAccountIdRequest = new AccountByAccountIdRequest(); +// note: keep in mind that getting a value is using "setAccountid" instead of аccountid +// accountByAccountIdRequest.аccountid('fe6be425-ff19-4174-8bf6-d3bf11c17315'); + +let accountServiceClient = new AccountServiceClient(endpoint); + +export function accountByAccountIdGrpcRequest(accountId){ + + accountByAccountIdRequest.setAccountid(accountId); + return new Promise((resolve, reject) => { + accountServiceClient.getAccountByAccountId(accountByAccountIdRequest, {'Content-type': 'application/grpc-web+proto'}, (error, response) => { + if(response){ + resolve(response.array[2]); + } + if(error){ + reject(error); + } + }) + }) +} + + +// let host = "https://account.dev-eu.nynja.net:443"; +// let accountByAuthenticationProviderRequest = new AccountByAuthenticationProviderRequest(); +// accountByAuthenticationProviderRequest.authenticationType = 1; + +// let accountServiceClient = new AccountServiceClient(host); +// accountByAuthenticationProviderRequest.authenticationIdentifier = 'BG:359886444412'; +// let grpcReturn = new Promise((resolve, reject)=>{ +// accountServiceClient.getAccountByAuthenticationProvider(accountByAuthenticationProviderRequest, {}, (error, response) => { +// console.log("response", response); +// console.log("error", error); +// }) +// }); + +// this is working nice +// let host1 = "https://auth.dev-eu.nynja.net:443"; +// let generateVerifyTokenRequest = new GenerateVerifyTokenRequest(); +// generateVerifyTokenRequest.setSid('BG:00359886434646'); +// generateVerifyTokenRequest.setSidtype(1); +// generateVerifyTokenRequest.setSendvia(1); + +// let metadataAuth = {'Content-type': 'application/grpc-web+proto'}; +// let authServiceClient = new AuthenticationServiceClient(host1); + +// let grpcReturn1 = new Promise((resolve, reject)=>{ +// authServiceClient.generateVerifyToken(generateVerifyTokenRequest, metadataAuth, (error, response) => { + +// if (response){ +// debugger +// resolve(response) +// } +// console.log("response AUTH", response); +// console.log("error AUTH", error); +// }) +// }); \ No newline at end of file -- GitLab From d3377b83d723ebe8297a3f1213dd95a7a9b71719 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Tue, 6 Nov 2018 11:39:01 +0200 Subject: [PATCH 125/249] NY-5099 edit user screen, getting selected user with getAccountById endpoint --- .../dashboard_users/edit_user/middleware.js | 14 ----- src/components/dashboard_users/index.js | 3 +- src/components/dashboard_users/reducer.js | 19 ------- .../edit_user/actions.js | 16 ++++++ .../edit_user/available_data/index.js | 0 .../edit_user/categories/index.js | 0 .../edit_user/generic_data/index.js | 0 .../{dashboard_users => }/edit_user/index.js | 34 +++++------- src/components/edit_user/middleware.js | 22 ++++++++ src/components/edit_user/reducer.js | 53 +++++++++++++++++++ .../edit_user/update_data/index.js | 0 src/components/header_bar/index.js | 4 +- src/components/header_bar/reducer.js | 3 ++ src/routing/index.js | 2 +- src/store/root_middleware/index.js | 7 +-- src/store/root_reducers/index.js | 2 + src/utils/localstorage/configure_persist.js | 2 +- src/utils/services/accounts.js | 1 + 18 files changed, 118 insertions(+), 64 deletions(-) delete mode 100644 src/components/dashboard_users/edit_user/middleware.js rename src/components/{dashboard_users => }/edit_user/actions.js (53%) rename src/components/{dashboard_users => }/edit_user/available_data/index.js (100%) rename src/components/{dashboard_users => }/edit_user/categories/index.js (100%) rename src/components/{dashboard_users => }/edit_user/generic_data/index.js (100%) rename src/components/{dashboard_users => }/edit_user/index.js (73%) create mode 100644 src/components/edit_user/middleware.js create mode 100644 src/components/edit_user/reducer.js rename src/components/{dashboard_users => }/edit_user/update_data/index.js (100%) diff --git a/src/components/dashboard_users/edit_user/middleware.js b/src/components/dashboard_users/edit_user/middleware.js deleted file mode 100644 index 09d8d25..0000000 --- a/src/components/dashboard_users/edit_user/middleware.js +++ /dev/null @@ -1,14 +0,0 @@ -import { put } from 'redux-saga/effects'; -import { deliverUpdateUserDataName } from './actions' - -export function* updateUserDataName(action) { - - const newData = { - id: action.id, - category: action.category, - newValue: action.newValue - } - - yield put(deliverUpdateUserDataName(newData)) - -} diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 9b118d5..14600bb 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -75,9 +75,8 @@ class DashboardUsers extends Component { * @const {string} category */ const userId = clickedCell.data.accountId; - const category = clickedCell.colDef.field; - this.props.history.push(`/edit-user/${userId}/${category}`); + this.props.history.push(`/edit-user/${userId}`); } paginationNumberFormatter = (params) => `[ ${params.value.toLocaleString()} ]`; diff --git a/src/components/dashboard_users/reducer.js b/src/components/dashboard_users/reducer.js index e52aaa7..521fbab 100644 --- a/src/components/dashboard_users/reducer.js +++ b/src/components/dashboard_users/reducer.js @@ -1,5 +1,4 @@ import { GET_USERS, DELIVER_USERS, PAGE_SIZE_UPDATE} from './actions'; -import { DELIVER_UPDATE_USER_DATA_CATEGORY_X } from './edit_user/actions'; import { updateObject } from '../../hoc/update-object/update-object'; import userAvatar from '../../utils/services/avatar_insertion'; import moreOptions from '../../utils/services/more_options'; @@ -75,23 +74,6 @@ const pageSizeUpdate = (state, action) => { }); }; -const updateUserCategoryX = (state, action) => { - - const { newValue, category, id } = action; - const userIndex = state.usersData.findIndex(item => item.accountId === id); - - state.usersData[userIndex] = Object.defineProperties(state.usersData[userIndex], { - [category]: { - value: newValue, - writable: true - } - }) - - return { - ...state - } -} - export default function users(state = initialState, action) { switch(action.type) { @@ -99,7 +81,6 @@ export default function users(state = initialState, action) { case GET_USERS: return getUsers(state, action); case DELIVER_USERS: return deliverUsers(state, action); case PAGE_SIZE_UPDATE: return pageSizeUpdate(state, action); - case DELIVER_UPDATE_USER_DATA_CATEGORY_X: return updateUserCategoryX(state, action); default: return state; } diff --git a/src/components/dashboard_users/edit_user/actions.js b/src/components/edit_user/actions.js similarity index 53% rename from src/components/dashboard_users/edit_user/actions.js rename to src/components/edit_user/actions.js index 4237949..879a440 100644 --- a/src/components/dashboard_users/edit_user/actions.js +++ b/src/components/edit_user/actions.js @@ -1,6 +1,22 @@ +export const GET_SELECTED_USER_ID = "GET_SELECTED_USER_ID"; +export const DELIVER_SELECTED_USER_DATA = "DELIVER_SELECTED_USER_DATA"; export const UPDATE_USER_DATA_CATEGORY_X = "UPDATE_USER_DATA_CATEGORY_X"; export const DELIVER_UPDATE_USER_DATA_CATEGORY_X = "DELIVER_UPDATE_USER_DATA_CATEGORY_X"; +export function getSelectedUserId(userId) { + return { + type: GET_SELECTED_USER_ID, + userId + } +} + +export function deliverSelectedUserData(payload) { + return { + type: DELIVER_SELECTED_USER_DATA, + selectedUser: payload + } +} + export function updateUserDataName(updateDetails) { return { type: UPDATE_USER_DATA_CATEGORY_X, diff --git a/src/components/dashboard_users/edit_user/available_data/index.js b/src/components/edit_user/available_data/index.js similarity index 100% rename from src/components/dashboard_users/edit_user/available_data/index.js rename to src/components/edit_user/available_data/index.js diff --git a/src/components/dashboard_users/edit_user/categories/index.js b/src/components/edit_user/categories/index.js similarity index 100% rename from src/components/dashboard_users/edit_user/categories/index.js rename to src/components/edit_user/categories/index.js diff --git a/src/components/dashboard_users/edit_user/generic_data/index.js b/src/components/edit_user/generic_data/index.js similarity index 100% rename from src/components/dashboard_users/edit_user/generic_data/index.js rename to src/components/edit_user/generic_data/index.js diff --git a/src/components/dashboard_users/edit_user/index.js b/src/components/edit_user/index.js similarity index 73% rename from src/components/dashboard_users/edit_user/index.js rename to src/components/edit_user/index.js index 0c23858..987822b 100644 --- a/src/components/dashboard_users/edit_user/index.js +++ b/src/components/edit_user/index.js @@ -7,7 +7,6 @@ import PropTypes from 'prop-types'; import Grid from '@material-ui/core/Grid'; import * as actions from './actions'; -import * as actionsDashboard from './../actions'; import GenericData from './generic_data'; import Categories from './categories'; @@ -17,21 +16,21 @@ import UpdateData from './update_data'; class EditUser extends Component{ componentDidMount(){ - if (this.props.selectedUser.length === 0) { - this.props.getUsers(); - } + + this.props.getSelectedUserId(this.props.match.params.id); + } updateUserDataCategoryX = (dataCategoryEdit) => { - const userId = this.props.selectedUser[0].accountId; + // const userId = this.props.selectedUser[0].accountId; - const updateDetails = { - id: userId, - ...dataCategoryEdit - } + // const updateDetails = { + // id: userId, + // ...dataCategoryEdit + // } - this.props.updateUserDataName(updateDetails); + // this.props.updateUserDataName(updateDetails); } @@ -46,7 +45,7 @@ class EditUser extends Component{ const { coldef, selectedUser } = this.props; const { url, path } = this.props.match; - return( + return( @@ -70,17 +69,9 @@ EditUser.propTypes = { coldef: PropTypes.array.isRequired } -function mapStateToProps({ users }, { match }){ - const { id } = match.params; - const { usersData } = users; - let selectedUser = []; - - usersData.length !== 0 - ? selectedUser = usersData.filter(item => item.accountId === id) - : selectedUser = [] - +function mapStateToProps({ users, editUser }, { match }){ return { - selectedUser, + selectedUser: [editUser], coldef: users.coldef } } @@ -88,7 +79,6 @@ function mapStateToProps({ users }, { match }){ const mapDispatchToProps = (dispatch) => { return bindActionCreators({ - ...actionsDashboard, ...actions }, dispatch) }; diff --git a/src/components/edit_user/middleware.js b/src/components/edit_user/middleware.js new file mode 100644 index 0000000..1e12ee8 --- /dev/null +++ b/src/components/edit_user/middleware.js @@ -0,0 +1,22 @@ +import { call, put } from 'redux-saga/effects'; +import { accountByAccountIdGrpcRequest } from './../../utils/services/accounts'; +import { deliverSelectedUserData, deliverUpdateUserDataName } from './actions'; + +export function* getSelectedUserId(action) { + + const payload = yield call(accountByAccountIdGrpcRequest, action.userId); + yield put(deliverSelectedUserData(payload)); + +} + +export function* updateUserDataName(action) { + + const newData = { + id: action.id, + category: action.category, + newValue: action.newValue + } + + yield put(deliverUpdateUserDataName(newData)) + +} diff --git a/src/components/edit_user/reducer.js b/src/components/edit_user/reducer.js new file mode 100644 index 0000000..6a79946 --- /dev/null +++ b/src/components/edit_user/reducer.js @@ -0,0 +1,53 @@ +import { DELIVER_UPDATE_USER_DATA_CATEGORY_X, DELIVER_SELECTED_USER_DATA } from './actions'; +import { updateObject } from '../../hoc/update-object/update-object'; + +const initialState = {}; + +const deliverSelectedUserData = (state, action) => { + const { selectedUser } = action; + + return updateObject(state, { + accountId: selectedUser[0], + profileId: selectedUser[1], + authenticationIdentifier: selectedUser[2], + authenticationType: selectedUser[3], + avatar: selectedUser[4], + accountMark: selectedUser[5], + accountName: selectedUser[6], + firstName: selectedUser[7], + lastName: selectedUser[8], + username: selectedUser[9], + qrCode: selectedUser[10], + contactsInfo: selectedUser[11], + roles: selectedUser[12], + accessStatus: selectedUser[13] + }) +} + +const updateUserCategoryX = (state, action) => { + + const { newValue, category, id } = action; + const userIndex = state.usersData.findIndex(item => item.accountId === id); + + state.usersData[userIndex] = Object.defineProperties(state.usersData[userIndex], { + [category]: { + value: newValue, + writable: true + } + }) + + return { + ...state + } + } + +export default function editUser(state = initialState, action) { + + switch(action.type) { + + case DELIVER_SELECTED_USER_DATA: return deliverSelectedUserData(state, action); + case DELIVER_UPDATE_USER_DATA_CATEGORY_X: return updateUserCategoryX(state, action); + + default: return state; + } +}; \ No newline at end of file diff --git a/src/components/dashboard_users/edit_user/update_data/index.js b/src/components/edit_user/update_data/index.js similarity index 100% rename from src/components/dashboard_users/edit_user/update_data/index.js rename to src/components/edit_user/update_data/index.js diff --git a/src/components/header_bar/index.js b/src/components/header_bar/index.js index 9a58881..5c62714 100644 --- a/src/components/header_bar/index.js +++ b/src/components/header_bar/index.js @@ -43,8 +43,8 @@ class HeaderBar extends Component { HeaderBar.propTypes = { classes: PropTypes.object.isRequired, - firstName: PropTypes.string.isRequired, - lastName: PropTypes.string.isRequired + firstName: PropTypes.string, + lastName: PropTypes.string }; const mapStateToProps = (state) => { diff --git a/src/components/header_bar/reducer.js b/src/components/header_bar/reducer.js index d0cbe8c..5f8172a 100644 --- a/src/components/header_bar/reducer.js +++ b/src/components/header_bar/reducer.js @@ -6,6 +6,9 @@ const initialState = {} const deliverAuthUser = (state, action) => { const { authedUser } = action; + // here the endpoint return arrya with 15 items, while from proto the properties are 14 + // please soubleche check with Back End Devs + // accessStatus is not present right now return updateObject(state, { accountId: authedUser[0], profileId: authedUser[1], diff --git a/src/routing/index.js b/src/routing/index.js index fc6e822..9e9fa90 100644 --- a/src/routing/index.js +++ b/src/routing/index.js @@ -7,7 +7,7 @@ import asyncComponent from './../hoc/async-component/async-component'; * the returned component is used at { routesArray } */ const AsyncDashboard = asyncComponent(() => import ('./../components/dashboard_users')); -const AsyncEditUser = asyncComponent(() => import ('./../components/dashboard_users/edit_user')); +const AsyncEditUser = asyncComponent(() => import ('./../components/edit_user')); /** * @const {array} routesArray diff --git a/src/store/root_middleware/index.js b/src/store/root_middleware/index.js index e2df8e8..7535188 100644 --- a/src/store/root_middleware/index.js +++ b/src/store/root_middleware/index.js @@ -7,8 +7,8 @@ import logger from './logger'; import { GET_USERS } from './../../components/dashboard_users/actions'; import { getUsers } from './../../components/dashboard_users/middleware'; -import { UPDATE_USER_DATA_CATEGORY_X } from './../../components/dashboard_users/edit_user/actions'; -import { updateUserDataName } from './../../components/dashboard_users/edit_user/middleware'; +import { UPDATE_USER_DATA_CATEGORY_X, GET_SELECTED_USER_ID } from './../../components/edit_user/actions'; +import { updateUserDataName, getSelectedUserId} from './../../components/edit_user/middleware'; import { GET_AUTH_USER } from './../../components/header_bar/actions'; import { getAuthedUser } from './../../components/header_bar/middleware'; @@ -22,9 +22,10 @@ export default composeEnhancers(applyMiddleware(sagaMiddleware)); export function* combineSagas() { yield all ( [ - logger(), + // logger(), takeEvery(GET_USERS, getUsers), takeEvery(GET_AUTH_USER, getAuthedUser), + takeEvery(GET_SELECTED_USER_ID, getSelectedUserId), takeEvery(UPDATE_USER_DATA_CATEGORY_X, updateUserDataName) ] ) diff --git a/src/store/root_reducers/index.js b/src/store/root_reducers/index.js index 067579f..1997269 100644 --- a/src/store/root_reducers/index.js +++ b/src/store/root_reducers/index.js @@ -2,6 +2,7 @@ import { combineReducers } from 'redux'; import { persistReducer } from "redux-persist"; import users from './../../components/dashboard_users/reducer'; +import editUser from './../../components/edit_user/reducer'; import authedUser from './../../components/header_bar/reducer'; import error from './../../hoc/error_handler/reducer'; @@ -10,6 +11,7 @@ import { usersPersistConfig } from '../../utils/localstorage/configure_persist'; export default combineReducers( { users: persistReducer(usersPersistConfig, users), + editUser, authedUser, error } diff --git a/src/utils/localstorage/configure_persist.js b/src/utils/localstorage/configure_persist.js index b2334e6..1f132a0 100644 --- a/src/utils/localstorage/configure_persist.js +++ b/src/utils/localstorage/configure_persist.js @@ -5,7 +5,7 @@ const persistConfig = { key: "root", storage, stateReconciler: autoMergeLevel1, - blacklist: ["users"] + blacklist: ["users, editUser"] }; export const usersPersistConfig = { diff --git a/src/utils/services/accounts.js b/src/utils/services/accounts.js index 7299cf0..3087806 100644 --- a/src/utils/services/accounts.js +++ b/src/utils/services/accounts.js @@ -20,6 +20,7 @@ export function accountByAccountIdGrpcRequest(accountId){ accountByAccountIdRequest.setAccountid(accountId); return new Promise((resolve, reject) => { accountServiceClient.getAccountByAccountId(accountByAccountIdRequest, {'Content-type': 'application/grpc-web+proto'}, (error, response) => { + console.log('response', response) if(response){ resolve(response.array[2]); } -- GitLab From 493a90a0f38a689c0ea5f13ebadb2ea48d7b5460 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Tue, 6 Nov 2018 14:53:07 +0200 Subject: [PATCH 126/249] code maintenance, material ui version upgrade and error handler initial update --- package.json | 12 +- src/App.js | 5 +- src/components/dashboard_users/reducer.js | 2 +- src/components/edit_user/index.js | 56 +- src/components/edit_user/middleware.js | 16 +- src/hoc/error_handler/actions.js | 9 + src/hoc/error_handler/index.js | 1 - src/hoc/error_handler/reducer.js | 10 +- src/store/root_middleware/index.js | 2 +- src/utils/localstorage/configure_persist.js | 2 +- yarn.lock | 6452 +++++++++++-------- 11 files changed, 3985 insertions(+), 2582 deletions(-) diff --git a/package.json b/package.json index db453fc..ccfb2cf 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "version": "0.1.0", "private": true, "dependencies": { - "@material-ui/core": "^3.1.1", + "@material-ui/core": "3.4.0", "@material-ui/icons": "^3.0.1", "@types/google-protobuf": "^3.2.7", "ag-grid-community": "^19.0.0", @@ -19,7 +19,7 @@ "react-dom": "^16.5.2", "react-redux": "^5.0.7", "react-router-dom": "^4.3.1", - "react-scripts": "1.1.5", + "react-scripts": "2.1.1", "react-test-renderer": "^16.5.2", "redux": "^4.0.0", "redux-mock-store": "^1.5.3", @@ -37,5 +37,11 @@ "peerDependencies": { "@types/google-protobuf": "^3.2.7", "google-protobuf": "^3.6.1" - } + }, + "browserslist": [ + ">0.2%", + "not dead", + "not ie <= 11", + "not op_mini all" + ] } diff --git a/src/App.js b/src/App.js index 915862e..1855f09 100644 --- a/src/App.js +++ b/src/App.js @@ -12,7 +12,7 @@ import PageNotFound from './components/page_not_found'; import Sidebar from './components/sidebar'; import HeaderBar from './components/header_bar'; -import ErrorInterceptor from "./hoc/interceptor_error/interceptor_error"; +// import ErrorInterceptor from "./hoc/interceptor_error/interceptor_error"; import axios from "./data_instance"; /** @@ -78,6 +78,7 @@ class App extends Component { + ) @@ -89,4 +90,4 @@ App.propTypes = { classes: PropTypes.object.isRequired }; -export default withStyles(styles)(ErrorInterceptor(App, axios)); \ No newline at end of file +export default withStyles(styles)(App); \ No newline at end of file diff --git a/src/components/dashboard_users/reducer.js b/src/components/dashboard_users/reducer.js index 521fbab..4dfb3ba 100644 --- a/src/components/dashboard_users/reducer.js +++ b/src/components/dashboard_users/reducer.js @@ -9,7 +9,7 @@ import moreOptions from '../../utils/services/more_options'; const initialState = { usersData: [], coldef: [ - {headerName: "avatar", hide: false, field: "avatar", filter: 'agTextColumnFilter', cellRenderer: "agGroupCellRenderer", cellRendererParams: { innerRenderer: userAvatar }, headerCheckboxSelection: true, headerCheckboxSelectionFilteredOnly: true, checkboxSelection: true }, + {headerName: "avatar", hide: false, field: "avatar", filter: 'agTextColumnFilter', cellRenderer: "agGroupCellRenderer", cellRendererParams: { innerRenderer: userAvatar } }, {headerName: "accountId", hide: false, field: "accountId", filter: 'agTextColumnFilter' }, {headerName: "profileId", hide: false, field: "profileId", filter: 'agTextColumnFilter' }, {headerName: "authenticationIdentifier", hide: false, field: "authenticationIdentifier", filter: 'agTextColumnFilter' }, diff --git a/src/components/edit_user/index.js b/src/components/edit_user/index.js index 987822b..a0deafb 100644 --- a/src/components/edit_user/index.js +++ b/src/components/edit_user/index.js @@ -1,4 +1,4 @@ -import React, { Component } from 'react'; +import React, { Component, Fragment } from 'react'; import { connect } from 'react-redux'; import { bindActionCreators } from 'redux'; import { Route, withRouter } from 'react-router-dom'; @@ -13,6 +13,8 @@ import Categories from './categories'; import AvailableData from './available_data'; import UpdateData from './update_data'; +import ErrorHandler from './../../hoc/error_handler/' + class EditUser extends Component{ componentDidMount(){ @@ -23,14 +25,14 @@ class EditUser extends Component{ updateUserDataCategoryX = (dataCategoryEdit) => { - // const userId = this.props.selectedUser[0].accountId; + const userId = this.props.selectedUser[0].accountId; - // const updateDetails = { - // id: userId, - // ...dataCategoryEdit - // } + const updateDetails = { + id: userId, + ...dataCategoryEdit + } - // this.props.updateUserDataName(updateDetails); + this.props.updateUserDataName(updateDetails); } @@ -42,24 +44,31 @@ class EditUser extends Component{ * @const {string} url * @const {string} path */ - const { coldef, selectedUser } = this.props; + const { coldef, selectedUser, error } = this.props; const { url, path } = this.props.match; return( - - - - - - - - - } /> - - - this.updateUserDataCategoryX(data)} />} /> + + + + + + + + + + } /> + + + this.updateUserDataCategoryX(data)} />} /> + - + { + error + ? + : null + } + ) } } @@ -69,10 +78,11 @@ EditUser.propTypes = { coldef: PropTypes.array.isRequired } -function mapStateToProps({ users, editUser }, { match }){ +function mapStateToProps({ users, editUser, error }, { match }){ return { selectedUser: [editUser], - coldef: users.coldef + coldef: users.coldef, + error } } diff --git a/src/components/edit_user/middleware.js b/src/components/edit_user/middleware.js index 1e12ee8..1a46ac2 100644 --- a/src/components/edit_user/middleware.js +++ b/src/components/edit_user/middleware.js @@ -2,10 +2,22 @@ import { call, put } from 'redux-saga/effects'; import { accountByAccountIdGrpcRequest } from './../../utils/services/accounts'; import { deliverSelectedUserData, deliverUpdateUserDataName } from './actions'; +import { globalError } from './../../hoc/error_handler/actions'; + export function* getSelectedUserId(action) { - const payload = yield call(accountByAccountIdGrpcRequest, action.userId); - yield put(deliverSelectedUserData(payload)); + try { + const payload = yield call(accountByAccountIdGrpcRequest, action.userId); + if(payload !== undefined) { + yield put(deliverSelectedUserData(payload)); + debugger + } else { + yield put(globalError({errorMessage: 'Unknown error'})) + } + } + catch(error){ + console.log(error); + } } diff --git a/src/hoc/error_handler/actions.js b/src/hoc/error_handler/actions.js index 2d833f6..6a98293 100644 --- a/src/hoc/error_handler/actions.js +++ b/src/hoc/error_handler/actions.js @@ -1,6 +1,15 @@ +export const GLOBAL_ERROR = 'GLOBAL_ERROR'; export const FAIL_USERS = 'FAIL_USERS'; export const REMOVE_ERROR = 'REMOVE_ERROR'; +export function globalError(errorMessage) { + + return { + type: GLOBAL_ERROR, + errorMessage + } +} + export function failUsers(error) { return { diff --git a/src/hoc/error_handler/index.js b/src/hoc/error_handler/index.js index 5524d00..3c26dc5 100644 --- a/src/hoc/error_handler/index.js +++ b/src/hoc/error_handler/index.js @@ -27,7 +27,6 @@ class ErrorHandler extends Component { }; ErrorHandler.propTypes = { - errorMessage: PropTypes.string.isRequired, error: PropTypes.bool.isRequired }; diff --git a/src/hoc/error_handler/reducer.js b/src/hoc/error_handler/reducer.js index 7c32e6c..0e412b4 100644 --- a/src/hoc/error_handler/reducer.js +++ b/src/hoc/error_handler/reducer.js @@ -1,10 +1,17 @@ -import { FAIL_USERS, REMOVE_ERROR } from './actions'; +import { GLOBAL_ERROR, FAIL_USERS, REMOVE_ERROR } from './actions'; import { updateObject } from './../update-object/update-object'; const initialState = { error: false }; +const globalError = (state, action) => { + return updateObject(state, { + error: true, + ...action.error + }) +} + const failUsers = (state, action) => { return updateObject(state, { errorMessage: action.error, @@ -22,6 +29,7 @@ export default function error(state = initialState, action) { switch(action.type) { + case GLOBAL_ERROR: return globalError(state, action); case FAIL_USERS: return failUsers(state, action); case REMOVE_ERROR: return removeError(state, action); diff --git a/src/store/root_middleware/index.js b/src/store/root_middleware/index.js index 7535188..028ad29 100644 --- a/src/store/root_middleware/index.js +++ b/src/store/root_middleware/index.js @@ -22,7 +22,7 @@ export default composeEnhancers(applyMiddleware(sagaMiddleware)); export function* combineSagas() { yield all ( [ - // logger(), + logger(), takeEvery(GET_USERS, getUsers), takeEvery(GET_AUTH_USER, getAuthedUser), takeEvery(GET_SELECTED_USER_ID, getSelectedUserId), diff --git a/src/utils/localstorage/configure_persist.js b/src/utils/localstorage/configure_persist.js index 1f132a0..30e07eb 100644 --- a/src/utils/localstorage/configure_persist.js +++ b/src/utils/localstorage/configure_persist.js @@ -5,7 +5,7 @@ const persistConfig = { key: "root", storage, stateReconciler: autoMergeLevel1, - blacklist: ["users, editUser"] + blacklist: ["editUser", "error"] }; export const usersPersistConfig = { diff --git a/yarn.lock b/yarn.lock index 804e52e..64b8247 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,23 +2,706 @@ # yarn lockfile v1 +"@babel/code-frame@7.0.0", "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.0.0-beta.35": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" + dependencies: + "@babel/highlight" "^7.0.0" + +"@babel/core@7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.1.0.tgz#08958f1371179f62df6966d8a614003d11faeb04" + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/generator" "^7.0.0" + "@babel/helpers" "^7.1.0" + "@babel/parser" "^7.1.0" + "@babel/template" "^7.1.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" + convert-source-map "^1.1.0" + debug "^3.1.0" + json5 "^0.5.0" + lodash "^4.17.10" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/core@^7.0.1": + version "7.1.2" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.1.2.tgz#f8d2a9ceb6832887329a7b60f9d035791400ba4e" + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/generator" "^7.1.2" + "@babel/helpers" "^7.1.2" + "@babel/parser" "^7.1.2" + "@babel/template" "^7.1.2" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.1.2" + convert-source-map "^1.1.0" + debug "^3.1.0" + json5 "^0.5.0" + lodash "^4.17.10" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/generator@^7.0.0", "@babel/generator@^7.1.2", "@babel/generator@^7.1.3": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.1.3.tgz#2103ec9c42d9bdad9190a6ad5ff2d456fd7b8673" + dependencies: + "@babel/types" "^7.1.3" + jsesc "^2.5.1" + lodash "^4.17.10" + source-map "^0.5.0" + trim-right "^1.0.1" + +"@babel/helper-annotate-as-pure@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32" + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz#6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f" + dependencies: + "@babel/helper-explode-assignable-expression" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-builder-react-jsx@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.0.0.tgz#fa154cb53eb918cf2a9a7ce928e29eb649c5acdb" + dependencies: + "@babel/types" "^7.0.0" + esutils "^2.0.0" + +"@babel/helper-call-delegate@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.1.0.tgz#6a957f105f37755e8645343d3038a22e1449cc4a" + dependencies: + "@babel/helper-hoist-variables" "^7.0.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-define-map@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.1.0.tgz#3b74caec329b3c80c116290887c0dd9ae468c20c" + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/types" "^7.0.0" + lodash "^4.17.10" + +"@babel/helper-explode-assignable-expression@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz#537fa13f6f1674df745b0c00ec8fe4e99681c8f6" + dependencies: + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-function-name@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" + dependencies: + "@babel/helper-get-function-arity" "^7.0.0" + "@babel/template" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-get-function-arity@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-hoist-variables@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0.tgz#46adc4c5e758645ae7a45deb92bab0918c23bb88" + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-member-expression-to-functions@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz#8cd14b0a0df7ff00f009e7d7a436945f47c7a16f" + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-module-imports@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d" + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-module-transforms@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.1.0.tgz#470d4f9676d9fad50b324cdcce5fbabbc3da5787" + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-simple-access" "^7.1.0" + "@babel/helper-split-export-declaration" "^7.0.0" + "@babel/template" "^7.1.0" + "@babel/types" "^7.0.0" + lodash "^4.17.10" + +"@babel/helper-optimise-call-expression@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz#a2920c5702b073c15de51106200aa8cad20497d5" + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-plugin-utils@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" + +"@babel/helper-regex@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.0.0.tgz#2c1718923b57f9bbe64705ffe5640ac64d9bdb27" + dependencies: + lodash "^4.17.10" + +"@babel/helper-remap-async-to-generator@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz#361d80821b6f38da75bd3f0785ece20a88c5fe7f" + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-wrap-function" "^7.1.0" + "@babel/template" "^7.1.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-replace-supers@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.1.0.tgz#5fc31de522ec0ef0899dc9b3e7cf6a5dd655f362" + dependencies: + "@babel/helper-member-expression-to-functions" "^7.0.0" + "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-simple-access@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c" + dependencies: + "@babel/template" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-split-export-declaration@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz#3aae285c0311c2ab095d997b8c9a94cad547d813" + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-wrap-function@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.1.0.tgz#8cf54e9190706067f016af8f75cb3df829cc8c66" + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/template" "^7.1.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helpers@^7.1.0", "@babel/helpers@^7.1.2": + version "7.1.2" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.1.2.tgz#ab752e8c35ef7d39987df4e8586c63b8846234b5" + dependencies: + "@babel/template" "^7.1.2" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.1.2" + +"@babel/highlight@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" + dependencies: + chalk "^2.0.0" + esutils "^2.0.2" + js-tokens "^4.0.0" + +"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.1.2", "@babel/parser@^7.1.3": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.1.3.tgz#2c92469bac2b7fbff810b67fca07bd138b48af77" + +"@babel/plugin-proposal-async-generator-functions@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.1.0.tgz#41c1a702e10081456e23a7b74d891922dd1bb6ce" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-remap-async-to-generator" "^7.1.0" + "@babel/plugin-syntax-async-generators" "^7.0.0" + +"@babel/plugin-proposal-class-properties@7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.1.0.tgz#9af01856b1241db60ec8838d84691aa0bd1e8df4" + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-member-expression-to-functions" "^7.0.0" + "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.1.0" + "@babel/plugin-syntax-class-properties" "^7.0.0" + +"@babel/plugin-proposal-decorators@7.1.2": + version "7.1.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.1.2.tgz#79829bd75fced6581ec6c7ab1930e8d738e892e7" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.1.0" + "@babel/helper-split-export-declaration" "^7.0.0" + "@babel/plugin-syntax-decorators" "^7.1.0" + +"@babel/plugin-proposal-json-strings@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.0.0.tgz#3b4d7b5cf51e1f2e70f52351d28d44fc2970d01e" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-json-strings" "^7.0.0" + +"@babel/plugin-proposal-object-rest-spread@7.0.0", "@babel/plugin-proposal-object-rest-spread@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.0.0.tgz#9a17b547f64d0676b6c9cecd4edf74a82ab85e7e" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-object-rest-spread" "^7.0.0" + +"@babel/plugin-proposal-optional-catch-binding@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.0.0.tgz#b610d928fe551ff7117d42c8bb410eec312a6425" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.0.0" + +"@babel/plugin-proposal-unicode-property-regex@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.0.0.tgz#498b39cd72536cd7c4b26177d030226eba08cd33" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.0.0" + regexpu-core "^4.2.0" + +"@babel/plugin-syntax-async-generators@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.0.0.tgz#bf0891dcdbf59558359d0c626fdc9490e20bc13c" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-class-properties@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.0.0.tgz#e051af5d300cbfbcec4a7476e37a803489881634" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-decorators@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.1.0.tgz#2fa7c1a7905a299c9853ebcef340306675f9cbdc" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-dynamic-import@7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.0.0.tgz#6dfb7d8b6c3be14ce952962f658f3b7eb54c33ee" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-flow@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.0.0.tgz#70638aeaad9ee426bc532e51523cff8ff02f6f17" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-json-strings@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.0.0.tgz#0d259a68090e15b383ce3710e01d5b23f3770cbd" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-jsx@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.0.0.tgz#034d5e2b4e14ccaea2e4c137af7e4afb39375ffd" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-object-rest-spread@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.0.0.tgz#37d8fbcaf216bd658ea1aebbeb8b75e88ebc549b" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.0.0.tgz#886f72008b3a8b185977f7cb70713b45e51ee475" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-typescript@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.0.0.tgz#90f4fe0a741ae9c0dcdc3017717c05a0cbbd5158" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-arrow-functions@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.0.0.tgz#a6c14875848c68a3b4b3163a486535ef25c7e749" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-async-to-generator@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.1.0.tgz#109e036496c51dd65857e16acab3bafdf3c57811" + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-remap-async-to-generator" "^7.1.0" + +"@babel/plugin-transform-block-scoped-functions@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.0.0.tgz#482b3f75103927e37288b3b67b65f848e2aa0d07" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-block-scoping@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.0.0.tgz#1745075edffd7cdaf69fab2fb6f9694424b7e9bc" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + lodash "^4.17.10" + +"@babel/plugin-transform-classes@7.1.0", "@babel/plugin-transform-classes@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.1.0.tgz#ab3f8a564361800cbc8ab1ca6f21108038432249" + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-define-map" "^7.1.0" + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.1.0" + "@babel/helper-split-export-declaration" "^7.0.0" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.0.0.tgz#2fbb8900cd3e8258f2a2ede909b90e7556185e31" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-destructuring@7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.0.0.tgz#68e911e1935dda2f06b6ccbbf184ffb024e9d43a" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-destructuring@^7.0.0": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.1.3.tgz#e69ff50ca01fac6cb72863c544e516c2b193012f" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-dotall-regex@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.0.0.tgz#73a24da69bc3c370251f43a3d048198546115e58" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.0.0" + regexpu-core "^4.1.3" + +"@babel/plugin-transform-duplicate-keys@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.0.0.tgz#a0601e580991e7cace080e4cf919cfd58da74e86" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-exponentiation-operator@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.1.0.tgz#9c34c2ee7fd77e02779cfa37e403a2e1003ccc73" + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-flow-strip-types@7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.0.0.tgz#c40ced34c2783985d90d9f9ac77a13e6fb396a01" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-flow" "^7.0.0" + +"@babel/plugin-transform-for-of@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.0.0.tgz#f2ba4eadb83bd17dc3c7e9b30f4707365e1c3e39" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-function-name@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.1.0.tgz#29c5550d5c46208e7f730516d41eeddd4affadbb" + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-literals@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.0.0.tgz#2aec1d29cdd24c407359c930cdd89e914ee8ff86" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-modules-amd@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.1.0.tgz#f9e0a7072c12e296079b5a59f408ff5b97bf86a8" + dependencies: + "@babel/helper-module-transforms" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-modules-commonjs@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.1.0.tgz#0a9d86451cbbfb29bd15186306897c67f6f9a05c" + dependencies: + "@babel/helper-module-transforms" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-simple-access" "^7.1.0" + +"@babel/plugin-transform-modules-systemjs@^7.0.0": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.1.3.tgz#2119a3e3db612fd74a19d88652efbfe9613a5db0" + dependencies: + "@babel/helper-hoist-variables" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-modules-umd@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.1.0.tgz#a29a7d85d6f28c3561c33964442257cc6a21f2a8" + dependencies: + "@babel/helper-module-transforms" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-new-target@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0.tgz#ae8fbd89517fa7892d20e6564e641e8770c3aa4a" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-object-super@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.1.0.tgz#b1ae194a054b826d8d4ba7ca91486d4ada0f91bb" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.1.0" + +"@babel/plugin-transform-parameters@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.1.0.tgz#44f492f9d618c9124026e62301c296bf606a7aed" + dependencies: + "@babel/helper-call-delegate" "^7.1.0" + "@babel/helper-get-function-arity" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-react-constant-elements@7.0.0", "@babel/plugin-transform-react-constant-elements@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.0.0.tgz#ab413e33e9c46a766f5326014bcbf9e2b34ef7a4" + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-react-display-name@7.0.0", "@babel/plugin-transform-react-display-name@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.0.0.tgz#93759e6c023782e52c2da3b75eca60d4f10533ee" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-react-jsx-self@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.0.0.tgz#a84bb70fea302d915ea81d9809e628266bb0bc11" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.0.0" + +"@babel/plugin-transform-react-jsx-source@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.0.0.tgz#28e00584f9598c0dd279f6280eee213fa0121c3c" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.0.0" + +"@babel/plugin-transform-react-jsx@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.0.0.tgz#524379e4eca5363cd10c4446ba163f093da75f3e" + dependencies: + "@babel/helper-builder-react-jsx" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.0.0" + +"@babel/plugin-transform-regenerator@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0.tgz#5b41686b4ed40bef874d7ed6a84bdd849c13e0c1" + dependencies: + regenerator-transform "^0.13.3" + +"@babel/plugin-transform-runtime@7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.1.0.tgz#9f76920d42551bb577e2dc594df229b5f7624b63" + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + resolve "^1.8.1" + semver "^5.5.1" + +"@babel/plugin-transform-shorthand-properties@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.0.0.tgz#85f8af592dcc07647541a0350e8c95c7bf419d15" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-spread@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.0.0.tgz#93583ce48dd8c85e53f3a46056c856e4af30b49b" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-sticky-regex@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.0.0.tgz#30a9d64ac2ab46eec087b8530535becd90e73366" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.0.0" + +"@babel/plugin-transform-template-literals@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.0.0.tgz#084f1952efe5b153ddae69eb8945f882c7a97c65" + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-typeof-symbol@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.0.0.tgz#4dcf1e52e943e5267b7313bff347fdbe0f81cec9" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-typescript@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.1.0.tgz#81e7b4be90e7317cbd04bf1163ebf06b2adee60b" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-typescript" "^7.0.0" + +"@babel/plugin-transform-unicode-regex@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.0.0.tgz#c6780e5b1863a76fe792d90eded9fcd5b51d68fc" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.0.0" + regexpu-core "^4.1.3" + +"@babel/preset-env@7.1.0", "@babel/preset-env@^7.0.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.1.0.tgz#e67ea5b0441cfeab1d6f41e9b5c79798800e8d11" + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-async-generator-functions" "^7.1.0" + "@babel/plugin-proposal-json-strings" "^7.0.0" + "@babel/plugin-proposal-object-rest-spread" "^7.0.0" + "@babel/plugin-proposal-optional-catch-binding" "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.0.0" + "@babel/plugin-syntax-async-generators" "^7.0.0" + "@babel/plugin-syntax-object-rest-spread" "^7.0.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.0.0" + "@babel/plugin-transform-arrow-functions" "^7.0.0" + "@babel/plugin-transform-async-to-generator" "^7.1.0" + "@babel/plugin-transform-block-scoped-functions" "^7.0.0" + "@babel/plugin-transform-block-scoping" "^7.0.0" + "@babel/plugin-transform-classes" "^7.1.0" + "@babel/plugin-transform-computed-properties" "^7.0.0" + "@babel/plugin-transform-destructuring" "^7.0.0" + "@babel/plugin-transform-dotall-regex" "^7.0.0" + "@babel/plugin-transform-duplicate-keys" "^7.0.0" + "@babel/plugin-transform-exponentiation-operator" "^7.1.0" + "@babel/plugin-transform-for-of" "^7.0.0" + "@babel/plugin-transform-function-name" "^7.1.0" + "@babel/plugin-transform-literals" "^7.0.0" + "@babel/plugin-transform-modules-amd" "^7.1.0" + "@babel/plugin-transform-modules-commonjs" "^7.1.0" + "@babel/plugin-transform-modules-systemjs" "^7.0.0" + "@babel/plugin-transform-modules-umd" "^7.1.0" + "@babel/plugin-transform-new-target" "^7.0.0" + "@babel/plugin-transform-object-super" "^7.1.0" + "@babel/plugin-transform-parameters" "^7.1.0" + "@babel/plugin-transform-regenerator" "^7.0.0" + "@babel/plugin-transform-shorthand-properties" "^7.0.0" + "@babel/plugin-transform-spread" "^7.0.0" + "@babel/plugin-transform-sticky-regex" "^7.0.0" + "@babel/plugin-transform-template-literals" "^7.0.0" + "@babel/plugin-transform-typeof-symbol" "^7.0.0" + "@babel/plugin-transform-unicode-regex" "^7.0.0" + browserslist "^4.1.0" + invariant "^2.2.2" + js-levenshtein "^1.1.3" + semver "^5.3.0" + +"@babel/preset-react@7.0.0", "@babel/preset-react@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.0.0.tgz#e86b4b3d99433c7b3e9e91747e2653958bc6b3c0" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-transform-react-display-name" "^7.0.0" + "@babel/plugin-transform-react-jsx" "^7.0.0" + "@babel/plugin-transform-react-jsx-self" "^7.0.0" + "@babel/plugin-transform-react-jsx-source" "^7.0.0" + +"@babel/preset-typescript@7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.1.0.tgz#49ad6e2084ff0bfb5f1f7fb3b5e76c434d442c7f" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-transform-typescript" "^7.1.0" + "@babel/runtime@7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.0.0.tgz#adeb78fedfc855aa05bc041640f3f6f98e85424c" dependencies: regenerator-runtime "^0.12.0" -"@babel/runtime@^7.0.0": +"@babel/runtime@7.1.2", "@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2": version "7.1.2" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.1.2.tgz#81c89935f4647706fc54541145e6b4ecfef4b8e3" dependencies: regenerator-runtime "^0.12.0" -"@material-ui/core@^3.1.1": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@material-ui/core/-/core-3.1.2.tgz#0ba7c510320c41be672792e3f3ab73ab79ff100f" +"@babel/template@^7.1.0", "@babel/template@^7.1.2": + version "7.1.2" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.1.2.tgz#090484a574fef5a2d2d7726a674eceda5c5b5644" + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.1.2" + "@babel/types" "^7.1.2" + +"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0": + version "7.1.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.1.4.tgz#f4f83b93d649b4b2c91121a9087fa2fa949ec2b4" + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/generator" "^7.1.3" + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-split-export-declaration" "^7.0.0" + "@babel/parser" "^7.1.3" + "@babel/types" "^7.1.3" + debug "^3.1.0" + globals "^11.1.0" + lodash "^4.17.10" + +"@babel/types@^7.0.0", "@babel/types@^7.1.2", "@babel/types@^7.1.3": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.1.3.tgz#3a767004567060c2f40fca49a304712c525ee37d" dependencies: - "@babel/runtime" "7.0.0" + esutils "^2.0.2" + lodash "^4.17.10" + to-fast-properties "^2.0.0" + +"@csstools/convert-colors@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" + +"@material-ui/core@3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@material-ui/core/-/core-3.4.0.tgz#b33c00a3c20e856ed7a4700dd398f128647beb4a" + dependencies: + "@babel/runtime" "7.1.2" "@types/jss" "^9.5.6" "@types/react-transition-group" "^2.0.8" brcast "^3.0.1" @@ -27,7 +710,7 @@ debounce "^1.1.0" deepmerge "^2.0.1" dom-helpers "^3.2.1" - hoist-non-react-statics "^2.5.0" + hoist-non-react-statics "^3.0.0" is-plain-object "^2.0.4" jss "^9.3.3" jss-camel-case "^6.0.0" @@ -41,7 +724,6 @@ popper.js "^1.14.1" prop-types "^15.6.0" react-event-listener "^0.6.2" - react-jss "^8.1.0" react-transition-group "^2.2.1" recompose "0.28.0 - 0.30.0" warning "^4.0.1" @@ -53,16 +735,54 @@ "@babel/runtime" "7.0.0" recompose "^0.29.0" +"@mrmlnc/readdir-enhanced@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" + dependencies: + call-me-maybe "^1.0.1" + glob-to-regexp "^0.3.0" + +"@nodelib/fs.stat@^1.0.1": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" + +"@svgr/core@^2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@svgr/core/-/core-2.4.1.tgz#03a407c28c4a1d84305ae95021e8eabfda8fa731" + dependencies: + camelcase "^5.0.0" + cosmiconfig "^5.0.6" + h2x-core "^1.1.0" + h2x-plugin-jsx "^1.1.0" + merge-deep "^3.0.2" + prettier "^1.14.2" + svgo "^1.0.5" + +"@svgr/webpack@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-2.4.1.tgz#68bc581ecb4c09fadeb7936bd1afaceb9da960d2" + dependencies: + "@babel/core" "^7.0.1" + "@babel/plugin-transform-react-constant-elements" "^7.0.0" + "@babel/preset-env" "^7.0.0" + "@babel/preset-react" "^7.0.0" + "@svgr/core" "^2.4.1" + loader-utils "^1.1.0" + +"@types/google-protobuf@^3.2.7": + version "3.2.7" + resolved "https://registry.yarnpkg.com/@types/google-protobuf/-/google-protobuf-3.2.7.tgz#9576ed5dd62cdb1c9f952522028a03b7cb2b69b5" + "@types/jss@^9.5.6": - version "9.5.6" - resolved "https://registry.yarnpkg.com/@types/jss/-/jss-9.5.6.tgz#96e1d246ddfbccc4867494077c714773cf29acde" + version "9.5.7" + resolved "https://registry.yarnpkg.com/@types/jss/-/jss-9.5.7.tgz#fa57a6d0b38a3abef8a425e3eb6a53495cb9d5a0" dependencies: csstype "^2.0.0" indefinite-observable "^1.0.1" "@types/node@*": - version "10.11.3" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.11.3.tgz#c055536ac8a5e871701aa01914be5731539d01ee" + version "10.12.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.2.tgz#d77f9faa027cadad9c912cd47f4f8b07b0fb0864" "@types/prop-types@*": version "15.5.6" @@ -75,15 +795,156 @@ "@types/react" "*" "@types/react@*": - version "16.4.14" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.4.14.tgz#47c604c8e46ed674bbdf4aabf82b34b9041c6a04" + version "16.4.18" + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.4.18.tgz#2e28a2e7f92d3fa7d6a65f2b73275c3e3138a13d" dependencies: "@types/prop-types" "*" csstype "^2.2.0" -abab@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.4.tgz#5faad9c2c07f60dd76770f71cf025b62a63cfd4e" +"@types/tapable@1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.2.tgz#e13182e1b69871a422d7863e11a4a6f5b814a4bd" + +"@webassemblyjs/ast@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.7.6.tgz#3ef8c45b3e5e943a153a05281317474fef63e21e" + dependencies: + "@webassemblyjs/helper-module-context" "1.7.6" + "@webassemblyjs/helper-wasm-bytecode" "1.7.6" + "@webassemblyjs/wast-parser" "1.7.6" + mamacro "^0.0.3" + +"@webassemblyjs/floating-point-hex-parser@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.6.tgz#7cb37d51a05c3fe09b464ae7e711d1ab3837801f" + +"@webassemblyjs/helper-api-error@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.6.tgz#99b7e30e66f550a2638299a109dda84a622070ef" + +"@webassemblyjs/helper-buffer@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.6.tgz#ba0648be12bbe560c25c997e175c2018df39ca3e" + +"@webassemblyjs/helper-code-frame@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.6.tgz#5a94d21b0057b69a7403fca0c253c3aaca95b1a5" + dependencies: + "@webassemblyjs/wast-printer" "1.7.6" + +"@webassemblyjs/helper-fsm@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.6.tgz#ae1741c6f6121213c7a0b587fb964fac492d3e49" + +"@webassemblyjs/helper-module-context@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.6.tgz#116d19a51a6cebc8900ad53ca34ff8269c668c23" + dependencies: + mamacro "^0.0.3" + +"@webassemblyjs/helper-wasm-bytecode@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.6.tgz#98e515eaee611aa6834eb5f6a7f8f5b29fefb6f1" + +"@webassemblyjs/helper-wasm-section@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.6.tgz#783835867bdd686df7a95377ab64f51a275e8333" + dependencies: + "@webassemblyjs/ast" "1.7.6" + "@webassemblyjs/helper-buffer" "1.7.6" + "@webassemblyjs/helper-wasm-bytecode" "1.7.6" + "@webassemblyjs/wasm-gen" "1.7.6" + +"@webassemblyjs/ieee754@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.7.6.tgz#c34fc058f2f831fae0632a8bb9803cf2d3462eb1" + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.7.6.tgz#197f75376a29f6ed6ace15898a310d871d92f03b" + dependencies: + "@xtuc/long" "4.2.1" + +"@webassemblyjs/utf8@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.7.6.tgz#eb62c66f906af2be70de0302e29055d25188797d" + +"@webassemblyjs/wasm-edit@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.6.tgz#fa41929160cd7d676d4c28ecef420eed5b3733c5" + dependencies: + "@webassemblyjs/ast" "1.7.6" + "@webassemblyjs/helper-buffer" "1.7.6" + "@webassemblyjs/helper-wasm-bytecode" "1.7.6" + "@webassemblyjs/helper-wasm-section" "1.7.6" + "@webassemblyjs/wasm-gen" "1.7.6" + "@webassemblyjs/wasm-opt" "1.7.6" + "@webassemblyjs/wasm-parser" "1.7.6" + "@webassemblyjs/wast-printer" "1.7.6" + +"@webassemblyjs/wasm-gen@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.6.tgz#695ac38861ab3d72bf763c8c75e5f087ffabc322" + dependencies: + "@webassemblyjs/ast" "1.7.6" + "@webassemblyjs/helper-wasm-bytecode" "1.7.6" + "@webassemblyjs/ieee754" "1.7.6" + "@webassemblyjs/leb128" "1.7.6" + "@webassemblyjs/utf8" "1.7.6" + +"@webassemblyjs/wasm-opt@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.6.tgz#fbafa78e27e1a75ab759a4b658ff3d50b4636c21" + dependencies: + "@webassemblyjs/ast" "1.7.6" + "@webassemblyjs/helper-buffer" "1.7.6" + "@webassemblyjs/wasm-gen" "1.7.6" + "@webassemblyjs/wasm-parser" "1.7.6" + +"@webassemblyjs/wasm-parser@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.6.tgz#84eafeeff405ad6f4c4b5777d6a28ae54eed51fe" + dependencies: + "@webassemblyjs/ast" "1.7.6" + "@webassemblyjs/helper-api-error" "1.7.6" + "@webassemblyjs/helper-wasm-bytecode" "1.7.6" + "@webassemblyjs/ieee754" "1.7.6" + "@webassemblyjs/leb128" "1.7.6" + "@webassemblyjs/utf8" "1.7.6" + +"@webassemblyjs/wast-parser@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.7.6.tgz#ca4d20b1516e017c91981773bd7e819d6bd9c6a7" + dependencies: + "@webassemblyjs/ast" "1.7.6" + "@webassemblyjs/floating-point-hex-parser" "1.7.6" + "@webassemblyjs/helper-api-error" "1.7.6" + "@webassemblyjs/helper-code-frame" "1.7.6" + "@webassemblyjs/helper-fsm" "1.7.6" + "@xtuc/long" "4.2.1" + mamacro "^0.0.3" + +"@webassemblyjs/wast-printer@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.7.6.tgz#a6002c526ac5fa230fe2c6d2f1bdbf4aead43a5e" + dependencies: + "@webassemblyjs/ast" "1.7.6" + "@webassemblyjs/wast-parser" "1.7.6" + "@xtuc/long" "4.2.1" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + +"@xtuc/long@4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.1.tgz#5c85d662f76fa1d34575766c5dcd6615abcd30d8" + +abab@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.0.tgz#aba0ab4c5eee2d4c79d3487d85450fb2376ebb0f" abbrev@1: version "1.1.1" @@ -96,63 +957,62 @@ accepts@~1.3.4, accepts@~1.3.5: mime-types "~2.1.18" negotiator "0.6.1" -acorn-dynamic-import@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4" - dependencies: - acorn "^4.0.3" - -acorn-globals@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-3.1.0.tgz#fd8270f71fbb4996b004fa880ee5d46573a731bf" +acorn-dynamic-import@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz#901ceee4c7faaef7e07ad2a47e890675da50a278" dependencies: - acorn "^4.0.4" + acorn "^5.0.0" -acorn-jsx@^3.0.0: - version "3.0.1" - resolved "http://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" +acorn-globals@^4.1.0, acorn-globals@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.0.tgz#e3b6f8da3c1552a95ae627571f7dd6923bb54103" dependencies: - acorn "^3.0.4" + acorn "^6.0.1" + acorn-walk "^6.0.1" -acorn@^3.0.4: - version "3.3.0" - resolved "http://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" +acorn-jsx@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.0.tgz#958584ddb60990c02c97c1bd9d521fce433bb101" -acorn@^4.0.3, acorn@^4.0.4: - version "4.0.13" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" +acorn-walk@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.1.0.tgz#c957f4a1460da46af4a0388ce28b4c99355b0cbc" -acorn@^5.0.0, acorn@^5.5.0: +acorn@^5.0.0, acorn@^5.5.3, acorn@^5.6.2: version "5.7.3" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" +acorn@^6.0.1, acorn@^6.0.2: + version "6.0.4" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.0.4.tgz#77377e7353b72ec5104550aa2d2097a2fd40b754" + address@1.0.3, address@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/address/-/address-1.0.3.tgz#b5f50631f8d6cec8bd20c963963afb55e06cbce9" ag-grid-community@^19.0.0: - version "19.0.0" - resolved "https://registry.yarnpkg.com/ag-grid-community/-/ag-grid-community-19.0.0.tgz#b0909835c63bdeef54047bf27ab16a10fdf61ed0" + version "19.1.1" + resolved "https://registry.yarnpkg.com/ag-grid-community/-/ag-grid-community-19.1.1.tgz#8a7af68a853faca3ef6f49bd8a4a43b2398b4549" ag-grid-enterprise@^19.0.0: - version "19.0.0" - resolved "https://registry.yarnpkg.com/ag-grid-enterprise/-/ag-grid-enterprise-19.0.0.tgz#ae8dcc5db81108e5344a45a28d06c242393c3384" + version "19.1.1" + resolved "https://registry.yarnpkg.com/ag-grid-enterprise/-/ag-grid-enterprise-19.1.1.tgz#4e10e45461ab71fc2c3dd1aa1c1beb9a6fa12f71" ag-grid-react@^19.0.0: - version "19.0.0" - resolved "https://registry.yarnpkg.com/ag-grid-react/-/ag-grid-react-19.0.0.tgz#e8c7c3066111fb54944e3c829cc169a556d46144" + version "19.1.1" + resolved "https://registry.yarnpkg.com/ag-grid-react/-/ag-grid-react-19.1.1.tgz#b716b58106032180c67e03283590101b3453a513" dependencies: - prop-types "15.6.0" + prop-types "^15.6.2" -ajv-keywords@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" +ajv-errors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.0.tgz#ecf021fa108fd17dfb5e6b383f2dd233e31ffc59" -ajv-keywords@^3.0.0: +ajv-keywords@^3.0.0, ajv-keywords@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a" -ajv@^5.0.0, ajv@^5.1.5, ajv@^5.2.0, ajv@^5.3.0: +ajv@^5.3.0: version "5.5.2" resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" dependencies: @@ -161,46 +1021,32 @@ ajv@^5.0.0, ajv@^5.1.5, ajv@^5.2.0, ajv@^5.3.0: fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.3.0" -ajv@^6.0.1: - version "6.5.4" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.5.4.tgz#247d5274110db653706b550fcc2b797ca28cfc59" +ajv@^6.0.1, ajv@^6.1.0, ajv@^6.5.3: + version "6.5.5" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.5.5.tgz#cf97cdade71c6399a92c6d6c4177381291b781a1" dependencies: fast-deep-equal "^2.0.1" fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.4.1" uri-js "^4.2.2" -align-text@^0.1.1, align-text@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" - dependencies: - kind-of "^3.0.2" - longest "^1.0.1" - repeat-string "^1.5.2" - -alphanum-sort@^1.0.1, alphanum-sort@^1.0.2: +alphanum-sort@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" -ansi-align@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" - dependencies: - string-width "^2.0.0" - -ansi-escapes@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" +ansi-colors@^3.0.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.1.tgz#9638047e4213f3428a11944a7d4b31cba0a3ff95" ansi-escapes@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30" + resolved "http://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30" ansi-html@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" -ansi-regex@^2.0.0, ansi-regex@^2.1.1: +ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" @@ -212,19 +1058,12 @@ ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" -ansi-styles@^3.0.0, ansi-styles@^3.2.1: +ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" dependencies: color-convert "^1.9.0" -anymatch@^1.3.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" - dependencies: - micromatch "^2.1.5" - normalize-path "^2.0.0" - anymatch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" @@ -238,7 +1077,7 @@ append-transform@^0.4.0: dependencies: default-require-extensions "^1.0.0" -aproba@^1.0.3: +aproba@^1.0.3, aproba@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" @@ -255,9 +1094,9 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" -aria-query@^0.7.0: - version "0.7.1" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-0.7.1.tgz#26cbb5aff64144b0a825be1846e0b16cfa00b11e" +aria-query@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-3.0.0.tgz#65b3fcc1ca1155a8c9ae64d6eee297f15d5133cc" dependencies: ast-types-flow "0.0.7" commander "^2.11.0" @@ -288,10 +1127,6 @@ array-filter@~0.0.0: version "0.0.1" resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" -array-find-index@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" - array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" @@ -345,7 +1180,7 @@ arrify@^1.0.0, arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" -asap@~2.0.3: +asap@~2.0.3, asap@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" @@ -377,19 +1212,27 @@ assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" -ast-types-flow@0.0.7: +ast-types-flow@0.0.7, ast-types-flow@^0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + async-each@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" +async-limiter@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" + async@^1.5.2: version "1.5.2" resolved "http://registry.npmjs.org/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" -async@^2.1.2, async@^2.1.4, async@^2.4.1, async@^2.5.0: +async@^2.1.4, async@^2.5.0: version "2.6.1" resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610" dependencies: @@ -403,27 +1246,16 @@ atob@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" -autoprefixer@7.1.6: - version "7.1.6" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-7.1.6.tgz#fb933039f74af74a83e71225ce78d9fd58ba84d7" - dependencies: - browserslist "^2.5.1" - caniuse-lite "^1.0.30000748" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^6.0.13" - postcss-value-parser "^3.2.3" - -autoprefixer@^6.3.1: - version "6.7.7" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz#1dbd1c835658e35ce3f9984099db00585c782014" +autoprefixer@^9.1.5: + version "9.3.1" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.3.1.tgz#71b622174de2b783d5fd99f9ad617b7a3c78443e" dependencies: - browserslist "^1.7.6" - caniuse-db "^1.0.30000634" + browserslist "^4.3.3" + caniuse-lite "^1.0.30000898" normalize-range "^0.1.2" num2fraction "^1.2.2" - postcss "^5.2.16" - postcss-value-parser "^3.2.3" + postcss "^7.0.5" + postcss-value-parser "^3.3.1" aws-sign2@~0.7.0: version "0.7.0" @@ -440,13 +1272,13 @@ axios@^0.18.0: follow-redirects "^1.3.0" is-buffer "^1.1.5" -axobject-query@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-0.1.0.tgz#62f59dbc59c9f9242759ca349960e7a2fe3c36c0" +axobject-query@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.0.2.tgz#ea187abe5b9002b377f925d8bf7d1c561adf38f9" dependencies: ast-types-flow "0.0.7" -babel-code-frame@6.26.0, babel-code-frame@^6.11.0, babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: +babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" dependencies: @@ -454,29 +1286,9 @@ babel-code-frame@6.26.0, babel-code-frame@^6.11.0, babel-code-frame@^6.22.0, bab esutils "^2.0.2" js-tokens "^3.0.2" -babel-core@6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8" - dependencies: - babel-code-frame "^6.26.0" - babel-generator "^6.26.0" - babel-helpers "^6.24.1" - babel-messages "^6.23.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - convert-source-map "^1.5.0" - debug "^2.6.8" - json5 "^0.5.1" - lodash "^4.17.4" - minimatch "^3.0.4" - path-is-absolute "^1.0.1" - private "^0.1.7" - slash "^1.0.0" - source-map "^0.5.6" +babel-core@7.0.0-bridge.0: + version "7.0.0-bridge.0" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" babel-core@^6.0.0, babel-core@^6.26.0: version "6.26.3" @@ -500,555 +1312,142 @@ babel-core@^6.0.0, babel-core@^6.26.0: path-is-absolute "^1.0.1" private "^0.1.8" slash "^1.0.0" - source-map "^0.5.7" - -babel-eslint@7.2.3: - version "7.2.3" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-7.2.3.tgz#b2fe2d80126470f5c19442dc757253a897710827" - dependencies: - babel-code-frame "^6.22.0" - babel-traverse "^6.23.1" - babel-types "^6.23.0" - babylon "^6.17.0" - -babel-generator@^6.18.0, babel-generator@^6.26.0: - version "6.26.1" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" - dependencies: - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.17.4" - source-map "^0.5.7" - trim-right "^1.0.1" - -babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" - dependencies: - babel-helper-explode-assignable-expression "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-builder-react-jsx@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz#39ff8313b75c8b65dceff1f31d383e0ff2a408a0" - dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - esutils "^2.0.2" - -babel-helper-call-delegate@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-define-map@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-explode-assignable-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" - dependencies: - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-function-name@^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" - dependencies: - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-get-function-arity@^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" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-hoist-variables@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-optimise-call-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-regex@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" - dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-remap-async-to-generator@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-replace-supers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" - dependencies: - babel-helper-optimise-call-expression "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helpers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-jest@20.0.3, babel-jest@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-20.0.3.tgz#e4a03b13dc10389e140fc645d09ffc4ced301671" - dependencies: - babel-core "^6.0.0" - babel-plugin-istanbul "^4.0.0" - babel-preset-jest "^20.0.3" - -babel-loader@7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.2.tgz#f6cbe122710f1aa2af4d881c6d5b54358ca24126" - dependencies: - find-cache-dir "^1.0.0" - loader-utils "^1.0.2" - mkdirp "^0.5.1" - -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-check-es2015-constants@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-dynamic-import-node@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-1.1.0.tgz#bd1d88ac7aaf98df4917c384373b04d971a2b37a" - dependencies: - babel-plugin-syntax-dynamic-import "^6.18.0" - babel-template "^6.26.0" - babel-types "^6.26.0" - -babel-plugin-istanbul@^4.0.0: - version "4.1.6" - resolved "http://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz#36c59b2192efce81c5b378321b74175add1c9a45" - dependencies: - babel-plugin-syntax-object-rest-spread "^6.13.0" - find-up "^2.1.0" - istanbul-lib-instrument "^1.10.1" - test-exclude "^4.2.1" - -babel-plugin-jest-hoist@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-20.0.3.tgz#afedc853bd3f8dc3548ea671fbe69d03cc2c1767" - -babel-plugin-syntax-async-functions@^6.8.0: - version "6.13.0" - resolved "http://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" - -babel-plugin-syntax-class-properties@^6.8.0: - version "6.13.0" - resolved "http://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de" - -babel-plugin-syntax-dynamic-import@6.18.0, babel-plugin-syntax-dynamic-import@^6.18.0: - version "6.18.0" - resolved "http://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da" - -babel-plugin-syntax-exponentiation-operator@^6.8.0: - version "6.13.0" - resolved "http://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" - -babel-plugin-syntax-flow@^6.18.0: - version "6.18.0" - resolved "http://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" - -babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0: - version "6.18.0" - resolved "http://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" - -babel-plugin-syntax-object-rest-spread@^6.13.0, babel-plugin-syntax-object-rest-spread@^6.8.0: - version "6.13.0" - resolved "http://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" - -babel-plugin-syntax-trailing-function-commas@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" - -babel-plugin-transform-async-to-generator@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" - dependencies: - babel-helper-remap-async-to-generator "^6.24.1" - babel-plugin-syntax-async-functions "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-class-properties@6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz#6a79763ea61d33d36f37b611aa9def81a81b46ac" - dependencies: - babel-helper-function-name "^6.24.1" - babel-plugin-syntax-class-properties "^6.8.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-arrow-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoping@^6.23.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" - dependencies: - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-plugin-transform-es2015-classes@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" - dependencies: - babel-helper-define-map "^6.24.1" - babel-helper-function-name "^6.24.1" - babel-helper-optimise-call-expression "^6.24.1" - babel-helper-replace-supers "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-computed-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-destructuring@6.23.0, babel-plugin-transform-es2015-destructuring@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-duplicate-keys@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-for-of@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-function-name@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" - dependencies: - babel-plugin-transform-es2015-modules-commonjs "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: - version "6.26.2" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" - dependencies: - babel-plugin-transform-strict-mode "^6.24.1" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-types "^6.26.0" - -babel-plugin-transform-es2015-modules-systemjs@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-umd@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" - dependencies: - babel-plugin-transform-es2015-modules-amd "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-object-super@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" - dependencies: - babel-helper-replace-supers "^6.24.1" - babel-runtime "^6.22.0" + source-map "^0.5.7" -babel-plugin-transform-es2015-parameters@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" +babel-eslint@9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-9.0.0.tgz#7d9445f81ed9f60aff38115f838970df9f2b6220" dependencies: - babel-helper-call-delegate "^6.24.1" - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.0.0" + "@babel/traverse" "^7.0.0" + "@babel/types" "^7.0.0" + eslint-scope "3.7.1" + eslint-visitor-keys "^1.0.0" -babel-plugin-transform-es2015-shorthand-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" +babel-extract-comments@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/babel-extract-comments/-/babel-extract-comments-1.0.0.tgz#0a2aedf81417ed391b85e18b4614e693a0351a21" dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" + babylon "^6.18.0" -babel-plugin-transform-es2015-spread@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" +babel-generator@^6.18.0, babel-generator@^6.26.0: + version "6.26.1" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" dependencies: - babel-runtime "^6.22.0" + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.17.4" + source-map "^0.5.7" + trim-right "^1.0.1" -babel-plugin-transform-es2015-sticky-regex@^6.22.0: +babel-helpers@^6.24.1: version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-template-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-typeof-symbol@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" + resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" dependencies: babel-runtime "^6.22.0" + babel-template "^6.24.1" -babel-plugin-transform-es2015-unicode-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" +babel-jest@23.6.0, babel-jest@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-23.6.0.tgz#a644232366557a2240a0c083da6b25786185a2f1" dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - regexpu-core "^2.0.0" + babel-plugin-istanbul "^4.1.6" + babel-preset-jest "^23.2.0" -babel-plugin-transform-exponentiation-operator@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" +babel-loader@8.0.4: + version "8.0.4" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.4.tgz#7bbf20cbe4560629e2e41534147692d3fecbdce6" dependencies: - babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" - babel-plugin-syntax-exponentiation-operator "^6.8.0" - babel-runtime "^6.22.0" + find-cache-dir "^1.0.0" + loader-utils "^1.0.2" + mkdirp "^0.5.1" + util.promisify "^1.0.0" -babel-plugin-transform-flow-strip-types@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz#84cb672935d43714fdc32bce84568d87441cf7cf" +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" dependencies: - babel-plugin-syntax-flow "^6.18.0" babel-runtime "^6.22.0" -babel-plugin-transform-object-rest-spread@6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06" +babel-plugin-dynamic-import-node@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.2.0.tgz#c0adfb07d95f4a4495e9aaac6ec386c4d7c2524e" dependencies: - babel-plugin-syntax-object-rest-spread "^6.8.0" - babel-runtime "^6.26.0" + object.assign "^4.1.0" -babel-plugin-transform-react-constant-elements@6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-constant-elements/-/babel-plugin-transform-react-constant-elements-6.23.0.tgz#2f119bf4d2cdd45eb9baaae574053c604f6147dd" +babel-plugin-istanbul@^4.1.6: + version "4.1.6" + resolved "http://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz#36c59b2192efce81c5b378321b74175add1c9a45" dependencies: - babel-runtime "^6.22.0" + babel-plugin-syntax-object-rest-spread "^6.13.0" + find-up "^2.1.0" + istanbul-lib-instrument "^1.10.1" + test-exclude "^4.2.1" -babel-plugin-transform-react-display-name@^6.23.0: - version "6.25.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz#67e2bf1f1e9c93ab08db96792e05392bf2cc28d1" - dependencies: - babel-runtime "^6.22.0" +babel-plugin-jest-hoist@^23.2.0: + version "23.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-23.2.0.tgz#e61fae05a1ca8801aadee57a6d66b8cefaf44167" -babel-plugin-transform-react-jsx-self@6.22.0, babel-plugin-transform-react-jsx-self@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz#df6d80a9da2612a121e6ddd7558bcbecf06e636e" +babel-plugin-macros@2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.4.2.tgz#21b1a2e82e2130403c5ff785cba6548e9b644b28" dependencies: - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.22.0" + cosmiconfig "^5.0.5" + resolve "^1.8.1" -babel-plugin-transform-react-jsx-source@6.22.0, babel-plugin-transform-react-jsx-source@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz#66ac12153f5cd2d17b3c19268f4bf0197f44ecd6" - dependencies: - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.22.0" +babel-plugin-named-asset-import@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.2.3.tgz#b40ed50a848e7bb0a2a7e34d990d1f9d46fe9b38" -babel-plugin-transform-react-jsx@6.24.1, babel-plugin-transform-react-jsx@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz#840a028e7df460dfc3a2d29f0c0d91f6376e66a3" - dependencies: - babel-helper-builder-react-jsx "^6.24.1" - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.22.0" +babel-plugin-syntax-object-rest-spread@^6.13.0, babel-plugin-syntax-object-rest-spread@^6.8.0: + version "6.13.0" + resolved "http://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" -babel-plugin-transform-regenerator@6.26.0, babel-plugin-transform-regenerator@^6.22.0: +babel-plugin-transform-object-rest-spread@^6.26.0: version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06" dependencies: - regenerator-transform "^0.10.0" + babel-plugin-syntax-object-rest-spread "^6.8.0" + babel-runtime "^6.26.0" -babel-plugin-transform-runtime@6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz#88490d446502ea9b8e7efb0fe09ec4d99479b1ee" - dependencies: - babel-runtime "^6.22.0" +babel-plugin-transform-react-remove-prop-types@0.4.18: + version "0.4.18" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.18.tgz#85ff79d66047b34288c6f7cc986b8854ab384f8c" -babel-plugin-transform-strict-mode@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" +babel-preset-jest@^23.2.0: + version "23.2.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-23.2.0.tgz#8ec7a03a138f001a1a8fb1e8113652bf1a55da46" dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-preset-env@1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.6.1.tgz#a18b564cc9b9afdf4aae57ae3c1b0d99188e6f48" - dependencies: - babel-plugin-check-es2015-constants "^6.22.0" - babel-plugin-syntax-trailing-function-commas "^6.22.0" - babel-plugin-transform-async-to-generator "^6.22.0" - babel-plugin-transform-es2015-arrow-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoping "^6.23.0" - babel-plugin-transform-es2015-classes "^6.23.0" - babel-plugin-transform-es2015-computed-properties "^6.22.0" - babel-plugin-transform-es2015-destructuring "^6.23.0" - babel-plugin-transform-es2015-duplicate-keys "^6.22.0" - babel-plugin-transform-es2015-for-of "^6.23.0" - babel-plugin-transform-es2015-function-name "^6.22.0" - babel-plugin-transform-es2015-literals "^6.22.0" - babel-plugin-transform-es2015-modules-amd "^6.22.0" - babel-plugin-transform-es2015-modules-commonjs "^6.23.0" - babel-plugin-transform-es2015-modules-systemjs "^6.23.0" - babel-plugin-transform-es2015-modules-umd "^6.23.0" - babel-plugin-transform-es2015-object-super "^6.22.0" - babel-plugin-transform-es2015-parameters "^6.23.0" - babel-plugin-transform-es2015-shorthand-properties "^6.22.0" - babel-plugin-transform-es2015-spread "^6.22.0" - babel-plugin-transform-es2015-sticky-regex "^6.22.0" - babel-plugin-transform-es2015-template-literals "^6.22.0" - babel-plugin-transform-es2015-typeof-symbol "^6.23.0" - babel-plugin-transform-es2015-unicode-regex "^6.22.0" - babel-plugin-transform-exponentiation-operator "^6.22.0" - babel-plugin-transform-regenerator "^6.22.0" - browserslist "^2.1.2" - invariant "^2.2.2" - semver "^5.3.0" + babel-plugin-jest-hoist "^23.2.0" + babel-plugin-syntax-object-rest-spread "^6.13.0" -babel-preset-flow@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz#e71218887085ae9a24b5be4169affb599816c49d" - dependencies: - babel-plugin-transform-flow-strip-types "^6.22.0" - -babel-preset-jest@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-20.0.3.tgz#cbacaadecb5d689ca1e1de1360ebfc66862c178a" - dependencies: - babel-plugin-jest-hoist "^20.0.3" - -babel-preset-react-app@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/babel-preset-react-app/-/babel-preset-react-app-3.1.2.tgz#49ba3681b917c4e5c73a5249d3ef4c48fae064e2" - dependencies: - babel-plugin-dynamic-import-node "1.1.0" - babel-plugin-syntax-dynamic-import "6.18.0" - babel-plugin-transform-class-properties "6.24.1" - babel-plugin-transform-es2015-destructuring "6.23.0" - babel-plugin-transform-object-rest-spread "6.26.0" - babel-plugin-transform-react-constant-elements "6.23.0" - babel-plugin-transform-react-jsx "6.24.1" - babel-plugin-transform-react-jsx-self "6.22.0" - babel-plugin-transform-react-jsx-source "6.22.0" - babel-plugin-transform-regenerator "6.26.0" - babel-plugin-transform-runtime "6.23.0" - babel-preset-env "1.6.1" - babel-preset-react "6.24.1" - -babel-preset-react@6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-preset-react/-/babel-preset-react-6.24.1.tgz#ba69dfaea45fc3ec639b6a4ecea6e17702c91380" - dependencies: - babel-plugin-syntax-jsx "^6.3.13" - babel-plugin-transform-react-display-name "^6.23.0" - babel-plugin-transform-react-jsx "^6.24.1" - babel-plugin-transform-react-jsx-self "^6.22.0" - babel-plugin-transform-react-jsx-source "^6.22.0" - babel-preset-flow "^6.23.0" +babel-preset-react-app@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/babel-preset-react-app/-/babel-preset-react-app-6.1.0.tgz#477ae7f8557eb99ce26d179530127913b733310d" + dependencies: + "@babel/core" "7.1.0" + "@babel/plugin-proposal-class-properties" "7.1.0" + "@babel/plugin-proposal-decorators" "7.1.2" + "@babel/plugin-proposal-object-rest-spread" "7.0.0" + "@babel/plugin-syntax-dynamic-import" "7.0.0" + "@babel/plugin-transform-classes" "7.1.0" + "@babel/plugin-transform-destructuring" "7.0.0" + "@babel/plugin-transform-flow-strip-types" "7.0.0" + "@babel/plugin-transform-react-constant-elements" "7.0.0" + "@babel/plugin-transform-react-display-name" "7.0.0" + "@babel/plugin-transform-runtime" "7.1.0" + "@babel/preset-env" "7.1.0" + "@babel/preset-react" "7.0.0" + "@babel/preset-typescript" "7.1.0" + "@babel/runtime" "7.0.0" + babel-loader "8.0.4" + babel-plugin-dynamic-import-node "2.2.0" + babel-plugin-macros "2.4.2" + babel-plugin-transform-react-remove-prop-types "0.4.18" babel-register@^6.26.0: version "6.26.0" @@ -1062,7 +1461,7 @@ babel-register@^6.26.0: mkdirp "^0.5.1" source-map-support "^0.4.15" -babel-runtime@6.26.0, babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: +babel-runtime@^6.22.0, babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" dependencies: @@ -1079,7 +1478,7 @@ babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.26.0: babylon "^6.18.0" lodash "^4.17.4" -babel-traverse@^6.18.0, babel-traverse@^6.23.1, babel-traverse@^6.24.1, babel-traverse@^6.26.0: +babel-traverse@^6.0.0, babel-traverse@^6.18.0, babel-traverse@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" dependencies: @@ -1093,7 +1492,7 @@ babel-traverse@^6.18.0, babel-traverse@^6.23.1, babel-traverse@^6.24.1, babel-tr invariant "^2.2.2" lodash "^4.17.4" -babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.23.0, babel-types@^6.24.1, babel-types@^6.26.0: +babel-types@^6.0.0, babel-types@^6.18.0, babel-types@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" dependencies: @@ -1102,14 +1501,10 @@ babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.23.0, babel-types@^6.24 lodash "^4.17.4" to-fast-properties "^1.0.3" -babylon@^6.17.0, babylon@^6.18.0: +babylon@^6.18.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" -balanced-match@^0.4.2: - version "0.4.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" - balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" @@ -1140,6 +1535,15 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" +bfj@6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/bfj/-/bfj-6.1.1.tgz#05a3b7784fbd72cfa3c22e56002ef99336516c48" + dependencies: + bluebird "^3.5.1" + check-types "^7.3.0" + hoopy "^0.1.2" + tryer "^1.0.0" + big.js@^3.1.3: version "3.2.0" resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" @@ -1148,7 +1552,7 @@ binary-extensions@^1.0.0: version "1.12.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.12.0.tgz#c2d780f53d45bba8317a8902d4ceeaf3a6385b14" -bluebird@^3.4.7: +bluebird@^3.5.1: version "3.5.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.2.tgz#1be0908e054a751754549c270489c1505d4ab15a" @@ -1156,20 +1560,20 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: version "4.11.8" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" -body-parser@1.18.2: - version "1.18.2" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454" +body-parser@1.18.3: + version "1.18.3" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz#5b292198ffdd553b3a0f20ded0592b956955c8b4" dependencies: bytes "3.0.0" content-type "~1.0.4" debug "2.6.9" - depd "~1.1.1" - http-errors "~1.6.2" - iconv-lite "0.4.19" + depd "~1.1.2" + http-errors "~1.6.3" + iconv-lite "0.4.23" on-finished "~2.3.0" - qs "6.5.1" - raw-body "2.3.2" - type-is "~1.6.15" + qs "6.5.2" + raw-body "2.3.3" + type-is "~1.6.16" bonjour@^3.5.0: version "3.5.0" @@ -1182,23 +1586,11 @@ bonjour@^3.5.0: multicast-dns "^6.0.1" multicast-dns-service-types "^1.1.0" -boolbase@~1.0.0: +boolbase@^1.0.0, boolbase@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" -boxen@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" - dependencies: - ansi-align "^2.0.0" - camelcase "^4.0.0" - chalk "^2.0.1" - cli-boxes "^1.0.0" - string-width "^2.0.0" - term-size "^1.2.0" - widest-line "^2.0.0" - -brace-expansion@^1.0.0, brace-expansion@^1.1.7: +brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" dependencies: @@ -1240,7 +1632,11 @@ browser-headers@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/browser-headers/-/browser-headers-0.4.0.tgz#7b6b4d3cc0cecc9ddf503768147932105c421734" -browser-resolve@^1.11.2: +browser-process-hrtime@^0.1.2: + version "0.1.3" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz#616f00faef1df7ec1b5bf9cfe2bdc3170f26c7b4" + +browser-resolve@^1.11.3: version "1.11.3" resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" dependencies: @@ -1299,25 +1695,21 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: - version "1.7.7" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9" - dependencies: - caniuse-db "^1.0.30000639" - electron-to-chromium "^1.2.7" - -browserslist@^2.1.2, browserslist@^2.5.1: - version "2.11.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.11.3.tgz#fe36167aed1bbcde4827ebfe71347a2cc70b99b2" +browserslist@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.1.1.tgz#328eb4ff1215b12df6589e9ab82f8adaa4fc8cd6" dependencies: - caniuse-lite "^1.0.30000792" - electron-to-chromium "^1.3.30" + caniuse-lite "^1.0.30000884" + electron-to-chromium "^1.3.62" + node-releases "^1.0.0-alpha.11" -bser@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bser/-/bser-1.0.2.tgz#381116970b2a6deea5646dd15dd7278444b56169" +browserslist@^4.0.0, browserslist@^4.1.0, browserslist@^4.1.1, browserslist@^4.3.3: + version "4.3.4" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.3.4.tgz#4477b737db6a1b07077275b24791e680d4300425" dependencies: - node-int64 "^0.4.0" + caniuse-lite "^1.0.30000899" + electron-to-chromium "^1.3.82" + node-releases "^1.0.1" bser@^2.0.0: version "2.0.0" @@ -1345,7 +1737,7 @@ buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" -builtin-modules@^1.0.0, builtin-modules@^1.1.1: +builtin-modules@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" @@ -1357,6 +1749,43 @@ bytes@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" +cacache@^10.0.4: + version "10.0.4" + resolved "http://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460" + dependencies: + bluebird "^3.5.1" + chownr "^1.0.1" + glob "^7.1.2" + graceful-fs "^4.1.11" + lru-cache "^4.1.1" + mississippi "^2.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.2" + ssri "^5.2.4" + unique-filename "^1.1.0" + y18n "^4.0.0" + +cacache@^11.0.2: + version "11.3.1" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.1.tgz#d09d25f6c4aca7a6d305d141ae332613aa1d515f" + dependencies: + bluebird "^3.5.1" + chownr "^1.0.1" + figgy-pudding "^3.1.0" + glob "^7.1.2" + graceful-fs "^4.1.11" + lru-cache "^4.1.3" + mississippi "^3.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.2" + ssri "^6.0.0" + unique-filename "^1.1.0" + y18n "^4.0.0" + cache-base@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" @@ -1371,6 +1800,10 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" +call-me-maybe@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" + caller-path@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" @@ -1392,66 +1825,50 @@ camel-case@3.0.x: no-case "^2.2.0" upper-case "^1.1.1" -camelcase-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" - dependencies: - camelcase "^2.0.0" - map-obj "^1.0.0" - -camelcase@^1.0.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" - -camelcase@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" - -camelcase@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" - -camelcase@^4.0.0, camelcase@^4.1.0: +camelcase@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" -caniuse-api@^1.5.2: - version "1.6.1" - resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c" +camelcase@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.0.0.tgz#03295527d58bd3cd4aa75363f35b2e8d97be2f42" + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" dependencies: - browserslist "^1.3.6" - caniuse-db "^1.0.30000529" + browserslist "^4.0.0" + caniuse-lite "^1.0.0" lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: - version "1.0.30000889" - resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000889.tgz#f6177927a0c56bbd56ff70f11e4bb28be3889052" +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000884, caniuse-lite@^1.0.30000887, caniuse-lite@^1.0.30000898, caniuse-lite@^1.0.30000899: + version "1.0.30000906" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000906.tgz#7c44e498a2504f7a5db3b4f91285bbc821157a77" -caniuse-lite@^1.0.30000748, caniuse-lite@^1.0.30000792: - version "1.0.30000889" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000889.tgz#53e266c83e725ad3bd2e4a3ea76d5031a8aa4c3e" - -capture-stack-trace@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d" +capture-exit@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-1.2.0.tgz#1c5fcc489fd0ab00d4f1ac7ae1072e3173fbab6f" + dependencies: + rsvp "^3.3.3" -case-sensitive-paths-webpack-plugin@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.1.1.tgz#3d29ced8c1f124bf6f53846fb3f5894731fdc909" +case-sensitive-paths-webpack-plugin@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.1.2.tgz#c899b52175763689224571dad778742e133f0192" caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" -center-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" +chalk@2.4.1, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" dependencies: - align-text "^0.1.3" - lazy-cache "^1.0.3" + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" -chalk@1.1.3, chalk@^1.1.3: +chalk@^1.1.3: version "1.1.3" resolved "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" dependencies: @@ -1461,21 +1878,17 @@ chalk@1.1.3, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - change-emitter@^0.1.2: version "0.1.6" resolved "https://registry.yarnpkg.com/change-emitter/-/change-emitter-0.1.6.tgz#e8b2fe3d7f1ab7d69a32199aff91ea6931409515" -chardet@^0.4.0: - version "0.4.2" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + +check-types@^7.3.0: + version "7.4.0" + resolved "https://registry.yarnpkg.com/check-types/-/check-types-7.4.0.tgz#0378ec1b9616ec71f774931a3c6516fad8c152f4" cheerio@^1.0.0-rc.2: version "1.0.0-rc.2" @@ -1488,7 +1901,7 @@ cheerio@^1.0.0-rc.2: lodash "^4.15.0" parse5 "^3.0.1" -chokidar@^2.0.0, chokidar@^2.0.2: +chokidar@^2.0.0, chokidar@^2.0.2, chokidar@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.4.tgz#356ff4e2b0e8e43e322d18a372460bbcf3accd26" dependencies: @@ -1507,10 +1920,16 @@ chokidar@^2.0.0, chokidar@^2.0.2: optionalDependencies: fsevents "^1.2.2" -chownr@^1.0.1: +chownr@^1.0.1, chownr@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" +chrome-trace-event@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz#45a91bd2c20c9411f0963b5aaeb9a1b95e09cc48" + dependencies: + tslib "^1.9.0" + ci-info@^1.5.0: version "1.6.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" @@ -1526,12 +1945,6 @@ circular-json@^0.3.1: version "0.3.3" resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" -clap@^1.0.9: - version "1.2.3" - resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.3.tgz#4f36745b32008492557f46412d66d50cb99bce51" - dependencies: - chalk "^1.1.3" - class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" @@ -1551,10 +1964,6 @@ clean-css@4.2.x: dependencies: source-map "~0.6.0" -cli-boxes@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" - cli-cursor@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" @@ -1565,33 +1974,40 @@ cli-width@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" -cliui@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" +cliui@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" dependencies: - center-align "^0.1.1" - right-align "^0.1.1" - wordwrap "0.0.2" + string-width "^2.1.1" + strip-ansi "^4.0.0" + wrap-ansi "^2.0.0" -cliui@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" +clone-deep@^0.2.4: + version "0.2.4" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-0.2.4.tgz#4e73dd09e9fb971cc38670c5dced9c1896481cc6" dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - wrap-ansi "^2.0.0" + for-own "^0.1.3" + is-plain-object "^2.0.1" + kind-of "^3.0.2" + lazy-cache "^1.0.3" + shallow-clone "^0.1.2" -clone@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" +clone-deep@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-2.0.2.tgz#00db3a1e173656730d1188c3d6aced6d7ea97713" + dependencies: + for-own "^1.0.0" + is-plain-object "^2.0.4" + kind-of "^6.0.0" + shallow-clone "^1.0.0" co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" -coa@~1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.4.tgz#a9ef153660d6a86a8bdec0289a5c684d217432fd" +coa@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.1.tgz#f3f8b0b15073e35d70263fb1042cb2c023db38af" dependencies: q "^1.1.2" @@ -1606,7 +2022,7 @@ collection-visit@^1.0.0: map-visit "^1.0.0" object-visit "^1.0.0" -color-convert@^1.3.0, color-convert@^1.9.0: +color-convert@^1.9.0, color-convert@^1.9.1: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" dependencies: @@ -1620,27 +2036,19 @@ color-name@^1.0.0: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" -color-string@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991" +color-string@^1.5.2: + version "1.5.3" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc" dependencies: color-name "^1.0.0" + simple-swizzle "^0.2.2" -color@^0.11.0: - version "0.11.4" - resolved "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764" - dependencies: - clone "^1.0.2" - color-convert "^1.3.0" - color-string "^0.3.0" - -colormin@^1.0.5: - version "1.1.2" - resolved "https://registry.yarnpkg.com/colormin/-/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133" +color@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/color/-/color-3.1.0.tgz#d8e9fb096732875774c84bf922815df0308d0ffc" dependencies: - color "^0.11.0" - css-color-names "0.0.4" - has "^1.0.1" + color-convert "^1.9.1" + color-string "^1.5.2" colors@0.5.x: version "0.5.1" @@ -1650,13 +2058,7 @@ colors@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" -combined-stream@1.0.6: - version "1.0.6" - resolved "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" - dependencies: - delayed-stream "~1.0.0" - -combined-stream@~1.0.6: +combined-stream@^1.0.6, combined-stream@~1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.7.tgz#2d1d24317afb8abe95d6d2c0b07b57813539d828" dependencies: @@ -1667,8 +2069,16 @@ commander@2.17.x, commander@~2.17.1: resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" commander@^2.11.0: - version "2.18.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.18.0.tgz#2bf063ddee7c7891176981a2cc798e5754bc6970" + version "2.19.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" + +commander@~2.13.0: + version "2.13.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" + +common-tags@^1.4.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" commondir@^1.0.1: version "1.0.1" @@ -1700,7 +2110,7 @@ concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" -concat-stream@^1.6.0: +concat-stream@^1.5.0: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" dependencies: @@ -1709,16 +2119,9 @@ concat-stream@^1.6.0: readable-stream "^2.2.2" typedarray "^0.0.6" -configstore@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f" - dependencies: - dot-prop "^4.1.0" - graceful-fs "^4.1.2" - make-dir "^1.0.0" - unique-string "^1.0.0" - write-file-atomic "^2.0.0" - xdg-basedir "^3.0.0" +confusing-browser-globals@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.5.tgz#0171050cfdd4261e278978078bc00c4d88e135f4" connect-history-api-fallback@^1.3.0: version "1.5.0" @@ -1746,15 +2149,11 @@ content-disposition@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" -content-type-parser@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/content-type-parser/-/content-type-parser-1.0.2.tgz#caabe80623e63638b2502fd4c7f12ff4ce2352e7" - content-type@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" -convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.5.1: +convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.1: version "1.6.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" dependencies: @@ -1768,33 +2167,49 @@ cookie@0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" +copy-concurrently@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + dependencies: + aproba "^1.1.1" + fs-write-stream-atomic "^1.0.8" + iferr "^0.1.5" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.0" + copy-descriptor@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" -core-js@^1.0.0: - version "1.2.7" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" - -core-js@^2.4.0, core-js@^2.4.1, core-js@^2.5.0: +core-js@2.5.7, core-js@^2.4.0, core-js@^2.4.1, core-js@^2.5.0: version "2.5.7" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e" +core-js@^1.0.0: + version "1.2.7" + resolved "http://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" + core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" -cosmiconfig@^2.1.0, cosmiconfig@^2.1.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-2.2.2.tgz#6173cebd56fac042c1f4390edf7af6c07c7cb892" +cosmiconfig@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-4.0.0.tgz#760391549580bbd2df1e562bc177b13c290972dc" dependencies: is-directory "^0.3.1" - js-yaml "^3.4.3" - minimist "^1.2.0" - object-assign "^4.1.0" - os-homedir "^1.0.1" - parse-json "^2.2.0" - require-from-string "^1.1.0" + js-yaml "^3.9.0" + parse-json "^4.0.0" + require-from-string "^2.0.1" + +cosmiconfig@^5.0.0, cosmiconfig@^5.0.5, cosmiconfig@^5.0.6: + version "5.0.6" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.6.tgz#dca6cf680a0bd03589aff684700858c81abeeb39" + dependencies: + is-directory "^0.3.1" + js-yaml "^3.9.0" + parse-json "^4.0.0" create-ecdh@^4.0.0: version "4.0.3" @@ -1803,12 +2218,6 @@ create-ecdh@^4.0.0: bn.js "^4.1.0" elliptic "^6.0.0" -create-error-class@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" - dependencies: - capture-stack-trace "^1.0.0" - create-hash@^1.1.0, create-hash@^1.1.2: version "1.2.0" resolved "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" @@ -1830,7 +2239,17 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: safe-buffer "^5.0.1" sha.js "^2.4.8" -cross-spawn@5.1.0, cross-spawn@^5.0.1, cross-spawn@^5.1.0: +cross-spawn@6.0.5, cross-spawn@^6.0.0, cross-spawn@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^5.0.1: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" dependencies: @@ -1854,115 +2273,183 @@ crypto-browserify@^3.11.0: randombytes "^2.0.0" randomfill "^1.0.3" -crypto-random-string@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" - -css-color-names@0.0.4: +css-color-names@0.0.4, css-color-names@^0.0.4: version "0.0.4" - resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + resolved "http://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + +css-declaration-sorter@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" + dependencies: + postcss "^7.0.1" + timsort "^0.3.0" -css-loader@0.28.7: - version "0.28.7" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.7.tgz#5f2ee989dd32edd907717f953317656160999c1b" +css-loader@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-1.0.0.tgz#9f46aaa5ca41dbe31860e3b62b8e23c42916bf56" dependencies: - babel-code-frame "^6.11.0" + babel-code-frame "^6.26.0" css-selector-tokenizer "^0.7.0" - cssnano ">=2.6.1 <4" icss-utils "^2.1.0" loader-utils "^1.0.2" lodash.camelcase "^4.3.0" - object-assign "^4.0.1" - postcss "^5.0.6" - postcss-modules-extract-imports "^1.0.0" - postcss-modules-local-by-default "^1.0.1" - postcss-modules-scope "^1.0.0" - postcss-modules-values "^1.1.0" + postcss "^6.0.23" + postcss-modules-extract-imports "^1.2.0" + postcss-modules-local-by-default "^1.2.0" + postcss-modules-scope "^1.1.0" + postcss-modules-values "^1.3.0" postcss-value-parser "^3.3.0" source-list-map "^2.0.0" +css-select-base-adapter@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" + css-select@^1.1.0, css-select@~1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" + resolved "http://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" dependencies: boolbase "~1.0.0" css-what "2.1" domutils "1.5.1" nth-check "~1.0.1" +css-select@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.0.2.tgz#ab4386cec9e1f668855564b17c3733b43b2a5ede" + dependencies: + boolbase "^1.0.0" + css-what "^2.1.2" + domutils "^1.7.0" + nth-check "^1.0.2" + css-selector-tokenizer@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz#e6988474ae8c953477bf5e7efecfceccd9cf4c86" + version "0.7.1" + resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz#a177271a8bca5019172f4f891fc6eed9cbf68d5d" dependencies: cssesc "^0.1.0" fastparse "^1.1.1" regexpu-core "^1.0.0" +css-tree@1.0.0-alpha.28: + version "1.0.0-alpha.28" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.28.tgz#8e8968190d886c9477bc8d61e96f61af3f7ffa7f" + dependencies: + mdn-data "~1.1.0" + source-map "^0.5.3" + +css-tree@1.0.0-alpha.29: + version "1.0.0-alpha.29" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.29.tgz#3fa9d4ef3142cbd1c301e7664c1f352bd82f5a39" + dependencies: + mdn-data "~1.1.0" + source-map "^0.5.3" + +css-unit-converter@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.1.tgz#d9b9281adcfd8ced935bdbaba83786897f64e996" + +css-url-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/css-url-regex/-/css-url-regex-1.1.0.tgz#83834230cc9f74c457de59eebd1543feeb83b7ec" + css-vendor@^0.3.8: version "0.3.8" resolved "https://registry.yarnpkg.com/css-vendor/-/css-vendor-0.3.8.tgz#6421cfd3034ce664fe7673972fd0119fc28941fa" dependencies: is-in-browser "^1.0.2" -css-what@2.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd" +css-what@2.1, css-what@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.2.tgz#c0876d9d0480927d7d4920dcd72af3595649554d" + +cssdb@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-3.2.1.tgz#65e7dc90be476ce5b6e567b19f3bd73a8c66bcb5" cssesc@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" -"cssnano@>=2.6.1 <4": - version "3.10.0" - resolved "http://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz#4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38" +cssesc@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703" + +cssnano-preset-default@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.5.tgz#d1756c0259d98ad311e601ba76e95c60f6771ac1" + dependencies: + css-declaration-sorter "^4.0.1" + cssnano-util-raw-cache "^4.0.1" + postcss "^7.0.0" + postcss-calc "^7.0.0" + postcss-colormin "^4.0.2" + postcss-convert-values "^4.0.1" + postcss-discard-comments "^4.0.1" + postcss-discard-duplicates "^4.0.2" + postcss-discard-empty "^4.0.1" + postcss-discard-overridden "^4.0.1" + postcss-merge-longhand "^4.0.9" + postcss-merge-rules "^4.0.2" + postcss-minify-font-values "^4.0.2" + postcss-minify-gradients "^4.0.1" + postcss-minify-params "^4.0.1" + postcss-minify-selectors "^4.0.1" + postcss-normalize-charset "^4.0.1" + postcss-normalize-display-values "^4.0.1" + postcss-normalize-positions "^4.0.1" + postcss-normalize-repeat-style "^4.0.1" + postcss-normalize-string "^4.0.1" + postcss-normalize-timing-functions "^4.0.1" + postcss-normalize-unicode "^4.0.1" + postcss-normalize-url "^4.0.1" + postcss-normalize-whitespace "^4.0.1" + postcss-ordered-values "^4.1.1" + postcss-reduce-initial "^4.0.2" + postcss-reduce-transforms "^4.0.1" + postcss-svgo "^4.0.1" + postcss-unique-selectors "^4.0.1" + +cssnano-util-get-arguments@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" + +cssnano-util-get-match@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" + +cssnano-util-raw-cache@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" dependencies: - autoprefixer "^6.3.1" - decamelize "^1.1.2" - defined "^1.0.0" - has "^1.0.1" - object-assign "^4.0.1" - postcss "^5.0.14" - postcss-calc "^5.2.0" - postcss-colormin "^2.1.8" - postcss-convert-values "^2.3.4" - postcss-discard-comments "^2.0.4" - postcss-discard-duplicates "^2.0.1" - postcss-discard-empty "^2.0.1" - postcss-discard-overridden "^0.1.1" - postcss-discard-unused "^2.2.1" - postcss-filter-plugins "^2.0.0" - postcss-merge-idents "^2.1.5" - postcss-merge-longhand "^2.0.1" - postcss-merge-rules "^2.0.3" - postcss-minify-font-values "^1.0.2" - postcss-minify-gradients "^1.0.1" - postcss-minify-params "^1.0.4" - postcss-minify-selectors "^2.0.4" - postcss-normalize-charset "^1.1.0" - postcss-normalize-url "^3.0.7" - postcss-ordered-values "^2.1.0" - postcss-reduce-idents "^2.2.2" - postcss-reduce-initial "^1.0.0" - postcss-reduce-transforms "^1.0.3" - postcss-svgo "^2.1.1" - postcss-unique-selectors "^2.0.2" - postcss-value-parser "^3.2.3" - postcss-zindex "^2.0.1" - -csso@~2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/csso/-/csso-2.3.2.tgz#ddd52c587033f49e94b71fc55569f252e8ff5f85" + postcss "^7.0.0" + +cssnano-util-same-parent@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" + +cssnano@^4.1.0: + version "4.1.7" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.7.tgz#0bf112294bec103ab5f68d3f805732c8325a0b1b" dependencies: - clap "^1.0.9" - source-map "^0.5.3" + cosmiconfig "^5.0.0" + cssnano-preset-default "^4.0.5" + is-resolvable "^1.0.0" + postcss "^7.0.0" -cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": +csso@^3.5.0: + version "3.5.1" + resolved "https://registry.yarnpkg.com/csso/-/csso-3.5.1.tgz#7b9eb8be61628973c1b261e169d2f024008e758b" + dependencies: + css-tree "1.0.0-alpha.29" + +cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0", cssom@^0.3.4: version "0.3.4" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.4.tgz#8cd52e8a3acfd68d3aed38ee0a640177d2f9d797" -"cssstyle@>= 0.2.37 < 0.3.0": - version "0.2.37" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-0.2.37.tgz#541097234cb2513c83ceed3acddc27ff27987d54" +cssstyle@^1.0.0, cssstyle@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.1.1.tgz#18b038a9c44d65f7a8e428a653b9f6fe42faf5fb" dependencies: cssom "0.3.x" @@ -1970,19 +2457,11 @@ csstype@^2.0.0, csstype@^2.2.0, csstype@^2.5.2: version "2.5.7" resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.5.7.tgz#bf9235d5872141eccfb2d16d82993c6b149179ff" -currently-unhandled@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" - dependencies: - array-find-index "^1.0.1" - -d@1: - version "1.0.0" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" - dependencies: - es5-ext "^0.10.9" +cyclist@~0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" -damerau-levenshtein@^1.0.0: +damerau-levenshtein@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz#03191c432cb6eea168bb77f3a55ffdccb8978514" @@ -1992,6 +2471,14 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" +data-urls@^1.0.0, data-urls@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" + dependencies: + abab "^2.0.0" + whatwg-mimetype "^2.2.0" + whatwg-url "^7.0.0" + date-now@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" @@ -2012,16 +2499,22 @@ debug@=3.1.0: dependencies: ms "2.0.0" -debug@^3.0.1, debug@^3.1.0: - version "3.2.5" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.5.tgz#c2418fbfd7a29f4d4f70ff4cea604d4b64c46407" +debug@^3.1.0: + version "3.2.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" dependencies: ms "^2.1.1" -decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: +decamelize@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" +decamelize@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-2.0.0.tgz#656d7bbc8094c4c788ea53c5840908c9c7d063c7" + dependencies: + xregexp "4.0.0" + decode-uri-component@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" @@ -2039,8 +2532,15 @@ deep-is@~0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" deepmerge@^2.0.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.2.0.tgz#17087b22e1dccf14310ec892e696269e85374b45" + version "2.2.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.2.1.tgz#5d3ff22a01c00f645405a2fbc17d0778a1801170" + +default-gateway@^2.6.0: + version "2.7.2" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-2.7.2.tgz#b7ef339e5e024b045467af403d50348db4642d0f" + dependencies: + execa "^0.10.0" + ip-regex "^2.1.0" default-require-extensions@^1.0.0: version "1.0.0" @@ -2073,11 +2573,7 @@ define-property@^2.0.2: is-descriptor "^1.0.2" isobject "^3.0.1" -defined@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" - -del@^2.0.2, del@^2.2.2: +del@^2.0.2: version "2.2.2" resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" dependencies: @@ -2108,11 +2604,7 @@ delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" -depd@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" - -depd@~1.1.1, depd@~1.1.2: +depd@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" @@ -2137,6 +2629,10 @@ detect-libc@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" +detect-newline@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" + detect-node@^2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" @@ -2160,6 +2656,13 @@ diffie-hellman@^5.0.0: miller-rabin "^4.0.0" randombytes "^2.0.0" +dir-glob@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.0.0.tgz#0b205d2b6aef98238ca286598a8204d29d0a0034" + dependencies: + arrify "^1.0.1" + path-type "^3.0.0" + discontinuous-range@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/discontinuous-range/-/discontinuous-range-1.0.0.tgz#e38331f0844bba49b9a9cb71c771585aab1bc65a" @@ -2188,7 +2691,7 @@ doctrine@1.5.0: esutils "^2.0.2" isarray "^1.0.0" -doctrine@^2.0.0: +doctrine@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" dependencies: @@ -2201,8 +2704,10 @@ dom-converter@~0.2: utila "~0.4" dom-helpers@^3.2.1, dom-helpers@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.3.1.tgz#fc1a4e15ffdf60ddde03a480a9c0fece821dd4a6" + version "3.4.0" + resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.4.0.tgz#e9b369700f959f62ecde5a6babde4bccd9169af8" + dependencies: + "@babel/runtime" "^7.1.2" dom-serializer@0, dom-serializer@~0.1.0: version "0.1.0" @@ -2211,23 +2716,27 @@ dom-serializer@0, dom-serializer@~0.1.0: domelementtype "~1.1.1" entities "~1.1.1" -dom-urls@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/dom-urls/-/dom-urls-1.1.0.tgz#001ddf81628cd1e706125c7176f53ccec55d918e" - dependencies: - urijs "^1.16.1" - domain-browser@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" -domelementtype@1, domelementtype@^1.3.0: +domelementtype@1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.2.1.tgz#578558ef23befac043a1abb0db07635509393479" + +domelementtype@^1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" + resolved "http://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" domelementtype@~1.1.1: version "1.1.3" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" + resolved "http://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" + +domexception@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" + dependencies: + webidl-conversions "^4.0.2" domhandler@2.1: version "2.1.0" @@ -2254,14 +2763,14 @@ domutils@1.5.1: dom-serializer "0" domelementtype "1" -domutils@^1.5.1: +domutils@^1.5.1, domutils@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" dependencies: dom-serializer "0" domelementtype "1" -dot-prop@^4.1.0: +dot-prop@^4.1.1: version "4.2.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" dependencies: @@ -2271,18 +2780,23 @@ dotenv-expand@4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-4.2.0.tgz#def1f1ca5d6059d24a766e587942c21106ce1275" -dotenv@4.0.0: - version "4.0.0" - resolved "http://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz#864ef1379aced55ce6f95debecdce179f7a0cd1d" - -duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" +dotenv@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-6.0.0.tgz#24e37c041741c5f4b25324958ebbc34bca965935" duplexer@^0.1.1: version "0.1.1" resolved "http://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" +duplexify@^3.4.2, duplexify@^3.6.0: + version "3.6.1" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.6.1.tgz#b1a7a29c4abfd639585efaecce80d666b1e34125" + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" @@ -2294,9 +2808,9 @@ ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" -electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.30: - version "1.3.73" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.73.tgz#aa67787067d58cc3920089368b3b8d6fe0fc12f6" +electron-to-chromium@^1.3.62, electron-to-chromium@^1.3.82: + version "1.3.83" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.83.tgz#74584eb0972bb6777811c5d68d988c722f5e6666" elliptic@^6.0.0: version "6.4.1" @@ -2310,7 +2824,7 @@ elliptic@^6.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.0" -emoji-regex@^6.1.0: +emoji-regex@^6.5.1: version "6.5.1" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.5.1.tgz#9baea929b155565c11ea41c6626eaa65cef992c2" @@ -2328,42 +2842,47 @@ encoding@^0.1.11: dependencies: iconv-lite "~0.4.13" -enhanced-resolve@^3.4.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e" +end-of-stream@^1.0.0, end-of-stream@^1.1.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" + dependencies: + once "^1.4.0" + +enhanced-resolve@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" dependencies: graceful-fs "^4.1.2" memory-fs "^0.4.0" - object-assign "^4.0.1" - tapable "^0.2.7" + tapable "^1.0.0" entities@^1.1.1, entities@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" + version "1.1.2" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" enzyme-adapter-react-16@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.5.0.tgz#50af8d76a45fe0915de932bd95d34cdca75c0be3" + version "1.6.0" + resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.6.0.tgz#3fca28d3c32f3ff427495380fe2dd51494689073" dependencies: enzyme-adapter-utils "^1.8.0" function.prototype.name "^1.1.0" object.assign "^4.1.0" object.values "^1.0.4" prop-types "^15.6.2" - react-is "^16.4.2" + react-is "^16.5.2" react-test-renderer "^16.0.0-0" enzyme-adapter-utils@^1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.8.0.tgz#ee9f07250663a985f1f2caaf297720787da559f1" + version "1.8.1" + resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.8.1.tgz#a927d840ce2c14b42892a533aec836809d4e022b" dependencies: function.prototype.name "^1.1.0" object.assign "^4.1.0" prop-types "^15.6.2" enzyme@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.6.0.tgz#d213f280a258f61e901bc663d4cc2d6fd9a9dec8" + version "3.7.0" + resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.7.0.tgz#9b499e8ca155df44fef64d9f1558961ba1385a46" dependencies: array.prototype.flat "^1.2.1" cheerio "^1.0.0-rc.2" @@ -2391,13 +2910,13 @@ errno@^0.1.3, errno@~0.1.7: dependencies: prr "~1.0.1" -error-ex@^1.2.0: +error-ex@^1.2.0, error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" dependencies: is-arrayish "^0.2.1" -es-abstract@^1.10.0, es-abstract@^1.5.0, es-abstract@^1.6.1, es-abstract@^1.7.0: +es-abstract@^1.10.0, es-abstract@^1.5.0, es-abstract@^1.5.1, es-abstract@^1.6.1, es-abstract@^1.7.0: version "1.12.0" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165" dependencies: @@ -2415,63 +2934,6 @@ es-to-primitive@^1.1.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: - version "0.10.46" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.46.tgz#efd99f67c5a7ec789baa3daa7f79870388f7f572" - dependencies: - es6-iterator "~2.0.3" - es6-symbol "~3.1.1" - next-tick "1" - -es6-iterator@^2.0.1, es6-iterator@~2.0.1, es6-iterator@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" - dependencies: - d "1" - es5-ext "^0.10.35" - es6-symbol "^3.1.1" - -es6-map@^0.1.3: - version "0.1.5" - resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" - dependencies: - d "1" - es5-ext "~0.10.14" - es6-iterator "~2.0.1" - es6-set "~0.1.5" - es6-symbol "~3.1.1" - event-emitter "~0.3.5" - -es6-promise@^4.0.5: - version "4.2.5" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.5.tgz#da6d0d5692efb461e082c14817fe2427d8f5d054" - -es6-set@~0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" - dependencies: - d "1" - es5-ext "~0.10.14" - es6-iterator "~2.0.1" - es6-symbol "3.1.1" - event-emitter "~0.3.5" - -es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" - dependencies: - d "1" - es5-ext "~0.10.14" - -es6-weak-map@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" - dependencies: - d "1" - es5-ext "^0.10.14" - es6-iterator "^2.0.1" - es6-symbol "^3.1.1" - escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -2480,7 +2942,7 @@ escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1 version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" -escodegen@^1.6.1: +escodegen@^1.11.0, escodegen@^1.9.1: version "1.11.0" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.11.0.tgz#b27a9389481d5bfd5bec76f7bb1eb3f8f4556589" dependencies: @@ -2491,18 +2953,11 @@ escodegen@^1.6.1: optionalDependencies: source-map "~0.6.1" -escope@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" +eslint-config-react-app@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-3.0.5.tgz#d199088ab486d7ccc56d40dedcb1482b01934fb2" dependencies: - es6-map "^0.1.3" - es6-weak-map "^2.0.1" - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-config-react-app@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-2.1.0.tgz#23c909f71cbaff76b945b831d2d814b8bde169eb" + confusing-browser-globals "^1.0.5" eslint-import-resolver-node@^0.3.1: version "0.3.2" @@ -2511,9 +2966,9 @@ eslint-import-resolver-node@^0.3.1: debug "^2.6.9" resolve "^1.5.0" -eslint-loader@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-1.9.0.tgz#7e1be9feddca328d3dcfaef1ad49d5beffe83a13" +eslint-loader@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-2.1.1.tgz#2a9251523652430bfdd643efdb0afc1a2a89546a" dependencies: loader-fs-cache "^1.0.0" loader-utils "^1.0.2" @@ -2521,114 +2976,129 @@ eslint-loader@1.9.0: object-hash "^1.1.4" rimraf "^2.6.1" -eslint-module-utils@^2.1.1: +eslint-module-utils@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz#b270362cd88b1a48ad308976ce7fa54e98411746" dependencies: debug "^2.6.8" pkg-dir "^1.0.0" -eslint-plugin-flowtype@2.39.1: - version "2.39.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.39.1.tgz#b5624622a0388bcd969f4351131232dcb9649cd5" +eslint-plugin-flowtype@2.50.1: + version "2.50.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.50.1.tgz#36d4c961ac8b9e9e1dc091d3fba0537dad34ae8a" dependencies: - lodash "^4.15.0" + lodash "^4.17.10" -eslint-plugin-import@2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.8.0.tgz#fa1b6ef31fcb3c501c09859c1b86f1fc5b986894" +eslint-plugin-import@2.14.0: + version "2.14.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.14.0.tgz#6b17626d2e3e6ad52cfce8807a845d15e22111a8" dependencies: - builtin-modules "^1.1.1" contains-path "^0.1.0" debug "^2.6.8" doctrine "1.5.0" eslint-import-resolver-node "^0.3.1" - eslint-module-utils "^2.1.1" + eslint-module-utils "^2.2.0" has "^1.0.1" - lodash.cond "^4.3.0" + lodash "^4.17.4" minimatch "^3.0.3" read-pkg-up "^2.0.0" + resolve "^1.6.0" -eslint-plugin-jsx-a11y@5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-5.1.1.tgz#5c96bb5186ca14e94db1095ff59b3e2bd94069b1" +eslint-plugin-jsx-a11y@6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.1.2.tgz#69bca4890b36dcf0fe16dd2129d2d88b98f33f88" dependencies: - aria-query "^0.7.0" + aria-query "^3.0.0" array-includes "^3.0.3" - ast-types-flow "0.0.7" - axobject-query "^0.1.0" - damerau-levenshtein "^1.0.0" - emoji-regex "^6.1.0" - jsx-ast-utils "^1.4.0" + ast-types-flow "^0.0.7" + axobject-query "^2.0.1" + damerau-levenshtein "^1.0.4" + emoji-regex "^6.5.1" + has "^1.0.3" + jsx-ast-utils "^2.0.1" -eslint-plugin-react@7.4.0: - version "7.4.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.4.0.tgz#300a95861b9729c087d362dd64abcc351a74364a" +eslint-plugin-react@7.11.1: + version "7.11.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.11.1.tgz#c01a7af6f17519457d6116aa94fc6d2ccad5443c" dependencies: - doctrine "^2.0.0" - has "^1.0.1" - jsx-ast-utils "^2.0.0" - prop-types "^15.5.10" + array-includes "^3.0.3" + doctrine "^2.1.0" + has "^1.0.3" + jsx-ast-utils "^2.0.1" + prop-types "^15.6.2" -eslint-scope@^3.7.1: - version "3.7.3" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.3.tgz#bb507200d3d17f60247636160b4826284b108535" +eslint-scope@3.7.1: + version "3.7.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" dependencies: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint@4.10.0: - version "4.10.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.10.0.tgz#f25d0d7955c81968c2309aa5c9a229e045176bb7" +eslint-scope@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.0.tgz#50bf3071e9338bcdc43331794a0cb533f0136172" dependencies: - ajv "^5.2.0" - babel-code-frame "^6.22.0" + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-utils@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.3.1.tgz#9a851ba89ee7c460346f97cf8939c7298827e512" + +eslint-visitor-keys@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" + +eslint@5.6.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.6.0.tgz#b6f7806041af01f71b3f1895cbb20971ea4b6223" + dependencies: + "@babel/code-frame" "^7.0.0" + ajv "^6.5.3" chalk "^2.1.0" - concat-stream "^1.6.0" - cross-spawn "^5.1.0" - debug "^3.0.1" - doctrine "^2.0.0" - eslint-scope "^3.7.1" - espree "^3.5.1" - esquery "^1.0.0" - estraverse "^4.2.0" + cross-spawn "^6.0.5" + debug "^3.1.0" + doctrine "^2.1.0" + eslint-scope "^4.0.0" + eslint-utils "^1.3.1" + eslint-visitor-keys "^1.0.0" + espree "^4.0.0" + esquery "^1.0.1" esutils "^2.0.2" file-entry-cache "^2.0.0" functional-red-black-tree "^1.0.1" glob "^7.1.2" - globals "^9.17.0" - ignore "^3.3.3" + globals "^11.7.0" + ignore "^4.0.6" imurmurhash "^0.1.4" - inquirer "^3.0.6" - is-resolvable "^1.0.0" - js-yaml "^3.9.1" - json-stable-stringify "^1.0.1" + inquirer "^6.1.0" + is-resolvable "^1.1.0" + js-yaml "^3.12.0" + json-stable-stringify-without-jsonify "^1.0.1" levn "^0.3.0" - lodash "^4.17.4" - minimatch "^3.0.2" + lodash "^4.17.5" + minimatch "^3.0.4" mkdirp "^0.5.1" natural-compare "^1.4.0" optionator "^0.8.2" path-is-inside "^1.0.2" pluralize "^7.0.0" progress "^2.0.0" + regexpp "^2.0.0" require-uncached "^1.0.3" - semver "^5.3.0" + semver "^5.5.1" strip-ansi "^4.0.0" - strip-json-comments "~2.0.1" - table "^4.0.1" - text-table "~0.2.0" + strip-json-comments "^2.0.1" + table "^4.0.3" + text-table "^0.2.0" -espree@^3.5.1: - version "3.5.4" - resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" +espree@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-4.1.0.tgz#728d5451e0fd156c04384a7ad89ed51ff54eb25f" dependencies: - acorn "^5.5.0" - acorn-jsx "^3.0.0" - -esprima@^2.6.0: - version "2.7.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" + acorn "^6.0.2" + acorn-jsx "^5.0.0" + eslint-visitor-keys "^1.0.0" esprima@^3.1.3: version "3.1.3" @@ -2638,7 +3108,7 @@ esprima@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" -esquery@^1.0.0: +esquery@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" dependencies: @@ -2654,7 +3124,7 @@ estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" -esutils@^2.0.2: +esutils@^2.0.0, esutils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" @@ -2662,13 +3132,6 @@ etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" -event-emitter@~0.3.5: - version "0.3.5" - resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" - dependencies: - d "1" - es5-ext "~0.10.14" - eventemitter3@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.0.tgz#090b4d6cdbd645ed10bf750d4b5407942d7ba163" @@ -2696,6 +3159,18 @@ exec-sh@^0.2.0: dependencies: merge "^1.2.0" +execa@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.10.0.tgz#ff456a8f53f90f8eccc71a96d11bdfc7f082cb50" + dependencies: + cross-spawn "^6.0.0" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + execa@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" @@ -2708,6 +3183,10 @@ execa@^0.7.0: signal-exit "^3.0.0" strip-eof "^1.0.0" +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + expand-brackets@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" @@ -2738,13 +3217,24 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2: dependencies: homedir-polyfill "^1.0.1" +expect@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-23.6.0.tgz#1e0c8d3ba9a581c87bd71fb9bc8862d443425f98" + dependencies: + ansi-styles "^3.2.0" + jest-diff "^23.6.0" + jest-get-type "^22.1.0" + jest-matcher-utils "^23.6.0" + jest-message-util "^23.4.0" + jest-regex-util "^23.3.0" + express@^4.16.2: - version "4.16.3" - resolved "http://registry.npmjs.org/express/-/express-4.16.3.tgz#6af8a502350db3246ecc4becf6b5a34d22f7ed53" + version "4.16.4" + resolved "https://registry.yarnpkg.com/express/-/express-4.16.4.tgz#fddef61926109e24c515ea97fd2f1bdbf62df12e" dependencies: accepts "~1.3.5" array-flatten "1.1.1" - body-parser "1.18.2" + body-parser "1.18.3" content-disposition "0.5.2" content-type "~1.0.4" cookie "0.3.1" @@ -2761,10 +3251,10 @@ express@^4.16.2: on-finished "~2.3.0" parseurl "~1.3.2" path-to-regexp "0.1.7" - proxy-addr "~2.0.3" - qs "6.5.1" + proxy-addr "~2.0.4" + qs "6.5.2" range-parser "~1.2.0" - safe-buffer "5.1.1" + safe-buffer "5.1.2" send "0.16.2" serve-static "1.13.2" setprototypeof "1.1.0" @@ -2790,12 +3280,12 @@ extend@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" -external-editor@^2.0.4: - version "2.2.0" - resolved "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" +external-editor@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz#5866db29a97826dbe4bf3afd24070ead9ea43a27" dependencies: - chardet "^0.4.0" - iconv-lite "^0.4.17" + chardet "^0.7.0" + iconv-lite "^0.4.24" tmp "^0.0.33" extglob@^0.3.1: @@ -2817,15 +3307,6 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -extract-text-webpack-plugin@3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extract-text-webpack-plugin/-/extract-text-webpack-plugin-3.0.2.tgz#5f043eaa02f9750a9258b78c0a6e0dc1408fb2f7" - dependencies: - async "^2.4.1" - loader-utils "^1.1.0" - schema-utils "^0.3.0" - webpack-sources "^1.0.1" - extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" @@ -2836,12 +3317,23 @@ extsprintf@^1.2.0: fast-deep-equal@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" + resolved "http://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" fast-deep-equal@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" +fast-glob@^2.0.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.3.tgz#d09d378e9ef6b0076a0fa1ba7519d9d4d9699c28" + dependencies: + "@mrmlnc/readdir-enhanced" "^2.2.1" + "@nodelib/fs.stat" "^1.0.1" + glob-parent "^3.1.0" + is-glob "^4.0.0" + merge2 "^1.2.1" + micromatch "^3.1.10" + fast-json-stable-stringify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" @@ -2851,8 +3343,8 @@ fast-levenshtein@~2.0.4: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" fastparse@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8" + version "1.1.2" + resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" faye-websocket@^0.10.0: version "0.10.0" @@ -2866,19 +3358,13 @@ faye-websocket@~0.11.0: dependencies: websocket-driver ">=0.5.1" -fb-watchman@^1.8.0: - version "1.9.2" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-1.9.2.tgz#a24cf47827f82d38fb59a69ad70b76e3b6ae7383" - dependencies: - bser "1.0.2" - fb-watchman@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58" dependencies: bser "^2.0.0" -fbjs@^0.8.1, fbjs@^0.8.16: +fbjs@^0.8.1: version "0.8.17" resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd" dependencies: @@ -2890,6 +3376,10 @@ fbjs@^0.8.1, fbjs@^0.8.16: setimmediate "^1.0.5" ua-parser-js "^0.7.18" +figgy-pudding@^3.1.0, figgy-pudding@^3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" + figures@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" @@ -2903,12 +3393,12 @@ file-entry-cache@^2.0.0: flat-cache "^1.2.1" object-assign "^4.0.1" -file-loader@1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-1.1.5.tgz#91c25b6b6fbe56dae99f10a425fd64933b5c9daa" +file-loader@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-2.0.0.tgz#39749c82f020b9e85901dcff98e8004e6401cfde" dependencies: loader-utils "^1.0.2" - schema-utils "^0.3.0" + schema-utils "^1.0.0" filename-regex@^2.0.0: version "2.0.1" @@ -2921,9 +3411,9 @@ fileset@^2.0.2: glob "^7.0.3" minimatch "^3.0.3" -filesize@3.5.11: - version "3.5.11" - resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.5.11.tgz#1919326749433bb3cf77368bd158caabcc19e9ee" +filesize@3.6.1: + version "3.6.1" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" fill-range@^2.1.0: version "2.2.4" @@ -2972,6 +3462,20 @@ find-cache-dir@^1.0.0: make-dir "^1.0.0" pkg-dir "^2.0.0" +find-cache-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.0.0.tgz#4c1faed59f45184530fb9d7fa123a4d04a98472d" + dependencies: + commondir "^1.0.1" + make-dir "^1.0.0" + pkg-dir "^3.0.0" + +find-up@3.0.0, find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + dependencies: + locate-path "^3.0.0" + find-up@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" @@ -2998,28 +3502,39 @@ flatten@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" -follow-redirects@^1.0.0: - version "1.5.8" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.8.tgz#1dbfe13e45ad969f813e86c00e5296f525c885a1" +flush-write-stream@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.3.tgz#c5d586ef38af6097650b49bc41b55fabb19f35bd" dependencies: - debug "=3.1.0" + inherits "^2.0.1" + readable-stream "^2.0.4" -follow-redirects@^1.3.0: +follow-redirects@^1.0.0, follow-redirects@^1.3.0: version "1.5.9" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.9.tgz#c9ed9d748b814a39535716e531b9196a845d89c6" dependencies: debug "=3.1.0" +for-in@^0.1.3: + version "0.1.8" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1" + for-in@^1.0.1, for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" -for-own@^0.1.4: +for-own@^0.1.3, for-own@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" dependencies: for-in "^1.0.1" +for-own@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" + dependencies: + for-in "^1.0.1" + foreach@2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.4.tgz#cc5d0d8ae1d46cc9a555c2682f910977859935df" @@ -3028,12 +3543,25 @@ forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" +fork-ts-checker-webpack-plugin-alt@0.4.14: + version "0.4.14" + resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin-alt/-/fork-ts-checker-webpack-plugin-alt-0.4.14.tgz#1bd6c0d97b7d4682dde61255fcbd78b72f7473a0" + dependencies: + babel-code-frame "^6.22.0" + chalk "^2.4.1" + chokidar "^2.0.4" + lodash "^4.17.11" + micromatch "^3.1.10" + minimatch "^3.0.4" + resolve "^1.5.0" + tapable "^1.0.0" + form-data@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099" + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" dependencies: asynckit "^0.4.0" - combined-stream "1.0.6" + combined-stream "^1.0.6" mime-types "^2.1.12" forwarded@~0.1.2: @@ -3050,23 +3578,28 @@ fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" -fs-extra@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-3.0.1.tgz#3794f378c58b342ea7dbbb23095109c4b3b62291" +from2@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + +fs-extra@7.0.0, fs-extra@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.0.tgz#8cc3f47ce07ef7b3593a11b9fb245f7e34c041d6" dependencies: graceful-fs "^4.1.2" - jsonfile "^3.0.0" + jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^0.30.0: - version "0.30.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" +fs-extra@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" dependencies: graceful-fs "^4.1.2" - jsonfile "^2.1.0" - klaw "^1.0.0" - path-is-absolute "^1.0.0" - rimraf "^2.2.8" + jsonfile "^4.0.0" + universalify "^0.1.0" fs-minipass@^1.2.5: version "1.2.5" @@ -3074,11 +3607,20 @@ fs-minipass@^1.2.5: dependencies: minipass "^2.2.1" +fs-write-stream-atomic@^1.0.8: + version "1.0.10" + resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + dependencies: + graceful-fs "^4.1.2" + iferr "^0.1.5" + imurmurhash "^0.1.4" + readable-stream "1 || 2" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" -fsevents@^1.1.3, fsevents@^1.2.2: +fsevents@1.2.4, fsevents@^1.2.2, fsevents@^1.2.3: version "1.2.4" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426" dependencies: @@ -3122,9 +3664,9 @@ get-caller-file@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" -get-stdin@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" +get-own-enumerable-property-symbols@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.0.tgz#b877b49a5c16aefac3655f2ed2ea5b684df8d203" get-stream@^3.0.0: version "3.0.0" @@ -3160,6 +3702,10 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" +glob-to-regexp@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" + glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2: version "7.1.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" @@ -3171,12 +3717,6 @@ glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2: once "^1.3.0" path-is-absolute "^1.0.0" -global-dirs@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" - dependencies: - ini "^1.3.4" - global-modules@1.0.0, global-modules@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" @@ -3195,10 +3735,26 @@ global-prefix@^1.0.1: is-windows "^1.0.1" which "^1.2.14" -globals@^9.17.0, globals@^9.18.0: +globals@^11.1.0, globals@^11.7.0: + version "11.8.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.8.0.tgz#c1ef45ee9bed6badf0663c5cb90e8d1adec1321d" + +globals@^9.18.0: version "9.18.0" resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" +globby@8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-8.0.1.tgz#b5ad48b8aa80b35b814fc1281ecc851f1d2b5b50" + dependencies: + array-union "^1.0.1" + dir-glob "^2.0.0" + fast-glob "^2.0.2" + glob "^7.1.2" + ignore "^3.3.5" + pify "^3.0.0" + slash "^1.0.0" + globby@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" @@ -3224,25 +3780,9 @@ google-protobuf@^3.6.1: version "3.6.1" resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.6.1.tgz#7ef58e2bea137a93cdaf5cfd5afa5f6abdd92025" -got@^6.7.1: - version "6.7.1" - resolved "http://registry.npmjs.org/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" - dependencies: - create-error-class "^3.0.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - is-redirect "^1.0.0" - is-retry-allowed "^1.0.0" - is-stream "^1.0.0" - lowercase-keys "^1.0.0" - safe-buffer "^5.0.1" - timed-out "^4.0.0" - unzip-response "^2.0.1" - url-parse-lax "^1.0.0" - -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: - version "4.1.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6: + version "4.1.15" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" growly@^1.3.0: version "1.3.0" @@ -3254,11 +3794,49 @@ grpc-web-client@^0.6.3: dependencies: browser-headers "^0.4.0" -gzip-size@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-3.0.0.tgz#546188e9bdc337f673772f81660464b389dce520" +gzip-size@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.0.0.tgz#a55ecd99222f4c48fd8c01c625ce3b349d0a0e80" dependencies: duplexer "^0.1.1" + pify "^3.0.0" + +h2x-core@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/h2x-core/-/h2x-core-1.1.1.tgz#7fb31ab28e30ebf11818e3c7d183487ecf489f9f" + dependencies: + h2x-generate "^1.1.0" + h2x-parse "^1.1.1" + h2x-traverse "^1.1.0" + +h2x-generate@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/h2x-generate/-/h2x-generate-1.1.0.tgz#c2c98c60070e1eed231e482d5826c3c5dab2a9ba" + dependencies: + h2x-traverse "^1.1.0" + +h2x-parse@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/h2x-parse/-/h2x-parse-1.1.1.tgz#875712cd3be75cf736c610d279b8653b24f58385" + dependencies: + h2x-types "^1.1.0" + jsdom ">=11.0.0" + +h2x-plugin-jsx@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/h2x-plugin-jsx/-/h2x-plugin-jsx-1.2.0.tgz#211fa02e5c4e0a07307b0005629923910e631c01" + dependencies: + h2x-types "^1.1.0" + +h2x-traverse@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/h2x-traverse/-/h2x-traverse-1.1.0.tgz#194b36c593f4e20a754dee47fa6b2288647b2271" + dependencies: + h2x-types "^1.1.0" + +h2x-types@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/h2x-types/-/h2x-types-1.1.0.tgz#ec0d5e3674e2207269f32976ac9c82aaff4818e6" handle-thing@^1.2.5: version "1.2.5" @@ -3285,6 +3863,10 @@ har-validator@~5.1.0: ajv "^5.3.0" har-schema "^2.0.0" +harmony-reflect@^1.4.6: + version "1.6.1" + resolved "https://registry.yarnpkg.com/harmony-reflect/-/harmony-reflect-1.6.1.tgz#c108d4f2bb451efef7a37861fdbdae72c9bdefa9" + has-ansi@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" @@ -3295,10 +3877,6 @@ has-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" -has-flag@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" - has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -3338,7 +3916,7 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" -has@^1.0.1, has@^1.0.3: +has@^1.0.0, has@^1.0.1, has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" dependencies: @@ -3358,9 +3936,13 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.1" -he@1.1.x: - version "1.1.1" - resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" +he@1.2.x: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + +hex-color-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" history@^4.7.2: version "4.7.2" @@ -3380,10 +3962,20 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" +hoek@4.x.x: + version "4.2.1" + resolved "http://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb" + hoist-non-react-statics@^2.3.1, hoist-non-react-statics@^2.5.0: version "2.5.5" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz#c5903cf409c0dfd908f388e619d86b9c1174cb47" +hoist-non-react-statics@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.1.0.tgz#42414ccdfff019cd2168168be998c7b3bd5245c0" + dependencies: + react-is "^16.3.2" + home-or-tmp@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" @@ -3397,6 +3989,10 @@ homedir-polyfill@^1.0.1: dependencies: parse-passwd "^1.0.0" +hoopy@^0.1.2: + version "0.1.4" + resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" + hosted-git-info@^2.1.4: version "2.7.1" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" @@ -3410,11 +4006,19 @@ hpack.js@^2.1.6: readable-stream "^2.0.1" wbuf "^1.1.0" +hsl-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" + +hsla-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" + html-comment-regex@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.1.tgz#668b93776eaae55ebde8f3ad464b307a4963625e" + version "1.1.2" + resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" -html-encoding-sniffer@^1.0.1: +html-encoding-sniffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" dependencies: @@ -3425,42 +4029,43 @@ html-entities@^1.2.0: resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" html-minifier@^3.2.3: - version "3.5.20" - resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.20.tgz#7b19fd3caa0cb79f7cde5ee5c3abdf8ecaa6bb14" + version "3.5.21" + resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.21.tgz#d0040e054730e354db008463593194015212d20c" dependencies: camel-case "3.0.x" clean-css "4.2.x" commander "2.17.x" - he "1.1.x" + he "1.2.x" param-case "2.1.x" relateurl "0.2.x" uglify-js "3.4.x" -html-webpack-plugin@2.29.0: - version "2.29.0" - resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-2.29.0.tgz#e987f421853d3b6938c8c4c8171842e5fd17af23" +html-webpack-plugin@4.0.0-alpha.2: + version "4.0.0-alpha.2" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-4.0.0-alpha.2.tgz#7745967e389a57a098e26963f328ebe4c19b598d" dependencies: - bluebird "^3.4.7" + "@types/tapable" "1.0.2" html-minifier "^3.2.3" - loader-utils "^0.2.16" - lodash "^4.17.3" + loader-utils "^1.1.0" + lodash "^4.17.10" pretty-error "^2.0.2" - toposort "^1.0.0" + tapable "^1.0.0" + util.promisify "1.0.0" htmlparser2@^3.9.1: - version "3.9.2" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.9.2.tgz#1bdf87acca0f3f9e53fa4fcceb0f4b4cbb00b338" + version "3.10.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.0.tgz#5f5e422dcf6119c0d983ed36260ce9ded0bee464" dependencies: domelementtype "^1.3.0" domhandler "^2.3.0" domutils "^1.5.1" entities "^1.1.1" inherits "^2.0.1" - readable-stream "^2.0.2" + readable-stream "^3.0.6" htmlparser2@~3.3.0: version "3.3.0" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.3.0.tgz#cc70d05a59f6542e43f0e685c982e14c924a9efe" + resolved "http://registry.npmjs.org/htmlparser2/-/htmlparser2-3.3.0.tgz#cc70d05a59f6542e43f0e685c982e14c924a9efe" dependencies: domelementtype "1" domhandler "2.1" @@ -3471,16 +4076,7 @@ http-deceiver@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" -http-errors@1.6.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" - dependencies: - depd "1.1.1" - inherits "2.0.3" - setprototypeof "1.0.3" - statuses ">= 1.3.1 < 2" - -http-errors@~1.6.2: +http-errors@1.6.3, http-errors@~1.6.2, http-errors@~1.6.3: version "1.6.3" resolved "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" dependencies: @@ -3490,17 +4086,17 @@ http-errors@~1.6.2: statuses ">= 1.4.0 < 2" http-parser-js@>=0.4.0: - version "0.4.13" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.13.tgz#3bd6d6fde6e3172c9334c3b33b6c193d80fe1137" + version "0.5.0" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.0.tgz#d65edbede84349d0dc30320815a15d39cc3cbbd8" -http-proxy-middleware@~0.17.4: - version "0.17.4" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz#642e8848851d66f09d4f124912846dbaeb41b833" +http-proxy-middleware@~0.18.0: + version "0.18.0" + resolved "http://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz#0987e6bb5a5606e5a69168d8f967a87f15dd8aab" dependencies: http-proxy "^1.16.2" - is-glob "^3.1.0" - lodash "^4.17.2" - micromatch "^2.3.11" + is-glob "^4.0.0" + lodash "^4.17.5" + micromatch "^3.1.9" http-proxy@^1.16.2: version "1.17.0" @@ -3526,11 +4122,13 @@ hyphenate-style-name@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.2.tgz#31160a36930adaf1fc04c6074f7eb41465d4ec4b" -iconv-lite@0.4.19: - version "0.4.19" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" +iconv-lite@0.4.23: + version "0.4.23" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" + dependencies: + safer-buffer ">= 2.1.2 < 3" -iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.4, iconv-lite@~0.4.13: +iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" dependencies: @@ -3546,23 +4144,49 @@ icss-utils@^2.1.0: dependencies: postcss "^6.0.1" +identity-obj-proxy@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz#94d2bda96084453ef36fbc5aaec37e0f79f1fc14" + dependencies: + harmony-reflect "^1.4.6" + ieee754@^1.1.4: version "1.1.12" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz#50bf24e5b9c8bb98af4964c941cdb0918da7b60b" +iferr@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + ignore-walk@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" dependencies: minimatch "^3.0.4" -ignore@^3.3.3: +ignore@^3.3.5: version "3.3.10" resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" -import-lazy@^2.1.0: +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + +immer@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/immer/-/immer-1.7.2.tgz#a51e9723c50b27e132f6566facbec1c85fc69547" + +import-cwd@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" + dependencies: + import-from "^2.1.0" + +import-from@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" + dependencies: + resolve-from "^3.0.0" import-local@^1.0.0: version "1.0.0" @@ -3571,6 +4195,13 @@ import-local@^1.0.0: pkg-dir "^2.0.0" resolve-cwd "^2.0.0" +import-local@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" + dependencies: + pkg-dir "^3.0.0" + resolve-cwd "^2.0.0" + imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -3581,12 +4212,6 @@ indefinite-observable@^1.0.1: dependencies: symbol-observable "1.0.4" -indent-string@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" - dependencies: - repeating "^2.0.0" - indexes-of@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" @@ -3614,36 +4239,32 @@ ini@^1.3.4, ini@~1.3.0: version "1.3.5" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" -inquirer@3.3.0, inquirer@^3.0.6: - version "3.3.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" +inquirer@6.2.0, inquirer@^6.1.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.0.tgz#51adcd776f661369dc1e894859c2560a224abdd8" dependencies: ansi-escapes "^3.0.0" chalk "^2.0.0" cli-cursor "^2.1.0" cli-width "^2.0.0" - external-editor "^2.0.4" + external-editor "^3.0.0" figures "^2.0.0" - lodash "^4.3.0" + lodash "^4.17.10" mute-stream "0.0.7" run-async "^2.2.0" - rx-lite "^4.0.8" - rx-lite-aggregates "^4.0.8" + rxjs "^6.1.0" string-width "^2.1.0" strip-ansi "^4.0.0" through "^2.3.6" -internal-ip@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-1.2.0.tgz#ae9fbf93b984878785d50a8de1b356956058cf5c" +internal-ip@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-3.0.1.tgz#df5c99876e1d2eb2ea2d74f520e3f669a00ece27" dependencies: - meow "^3.3.0" - -interpret@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" + default-gateway "^2.6.0" + ipaddr.js "^1.5.2" -invariant@^2.0.0, invariant@^2.2.1, invariant@^2.2.2, invariant@^2.2.4: +invariant@^2.2.1, invariant@^2.2.2, invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" dependencies: @@ -3653,6 +4274,14 @@ invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" +invert-kv@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" + +ip-regex@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + ip@^1.1.0, ip@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" @@ -3661,6 +4290,10 @@ ipaddr.js@1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.0.tgz#eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e" +ipaddr.js@^1.5.2: + version "1.8.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.1.tgz#fa4b79fa47fd3def5e3b159825161c0a519c9427" + is-absolute-url@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" @@ -3681,6 +4314,10 @@ is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + is-binary-path@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" @@ -3691,7 +4328,7 @@ is-boolean-object@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.0.0.tgz#98f8b28030684219a95f375cfbd88ce3405dff93" -is-buffer@^1.1.5: +is-buffer@^1.0.2, is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" @@ -3711,6 +4348,17 @@ is-ci@^1.0.10: dependencies: ci-info "^1.5.0" +is-color-stop@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" + dependencies: + css-color-names "^0.0.4" + hex-color-regex "^1.1.0" + hsl-regex "^1.0.0" + hsla-regex "^1.0.0" + rgb-regex "^1.0.1" + rgba-regex "^1.0.0" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -3791,9 +4439,9 @@ is-fullwidth-code-point@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" -is-function@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5" +is-generator-fn@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-1.0.0.tgz#969d49e1bb3329f6bb7f09089be26578b2ddd46a" is-glob@^2.0.0, is-glob@^2.0.1: version "2.0.1" @@ -3817,17 +4465,6 @@ 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" -is-installed-globally@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" - dependencies: - global-dirs "^0.1.0" - is-path-inside "^1.0.0" - -is-npm@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" - is-number-object@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.3.tgz#f265ab89a9f445034ef6aff15a8f00b00f551799" @@ -3848,7 +4485,7 @@ is-number@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" -is-obj@^1.0.0: +is-obj@^1.0.0, is-obj@^1.0.1: version "1.0.1" resolved "http://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" @@ -3868,10 +4505,6 @@ is-path-inside@^1.0.0: dependencies: path-is-inside "^1.0.1" -is-plain-obj@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" @@ -3890,29 +4523,25 @@ is-promise@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" -is-redirect@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" - is-regex@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" dependencies: has "^1.0.1" -is-resolvable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" -is-retry-allowed@^1.0.0: +is-resolvable@^1.0.0, is-resolvable@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" -is-root@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-root/-/is-root-1.0.0.tgz#07b6c233bc394cd9d02ba15c966bd6660d6342d5" +is-root@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.0.0.tgz#838d1e82318144e5a6f77819d90207645acc7019" -is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: +is-stream@^1.0.1, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" @@ -3924,9 +4553,9 @@ is-subset@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" -is-svg@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9" +is-svg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75" dependencies: html-comment-regex "^1.1.0" @@ -3960,6 +4589,12 @@ isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" +isemail@3.x.x: + version "3.2.0" + resolved "https://registry.yarnpkg.com/isemail/-/isemail-3.2.0.tgz#59310a021931a9fb06bbb51e155ce0b3f236832c" + dependencies: + punycode "2.x.x" + isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -3985,7 +4620,7 @@ isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" -istanbul-api@^1.1.1: +istanbul-api@^1.3.1: version "1.3.7" resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.3.7.tgz#a86c770d2b03e11e3f778cd7aedd82d2722092aa" dependencies: @@ -4001,7 +4636,7 @@ istanbul-api@^1.1.1: mkdirp "^0.5.1" once "^1.4.0" -istanbul-lib-coverage@^1.0.1, istanbul-lib-coverage@^1.2.1: +istanbul-lib-coverage@^1.2.0, istanbul-lib-coverage@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz#ccf7edcd0a0bb9b8f729feeb0930470f9af664f0" @@ -4011,7 +4646,7 @@ istanbul-lib-hook@^1.2.2: dependencies: append-transform "^0.4.0" -istanbul-lib-instrument@^1.10.1, istanbul-lib-instrument@^1.10.2, istanbul-lib-instrument@^1.4.2: +istanbul-lib-instrument@^1.10.1, istanbul-lib-instrument@^1.10.2: version "1.10.2" resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz#1f55ed10ac3c47f2bdddd5307935126754d0a9ca" dependencies: @@ -4032,7 +4667,7 @@ istanbul-lib-report@^1.1.5: path-parse "^1.0.5" supports-color "^3.1.2" -istanbul-lib-source-maps@^1.1.0, istanbul-lib-source-maps@^1.2.6: +istanbul-lib-source-maps@^1.2.4, istanbul-lib-source-maps@^1.2.6: version "1.2.6" resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.6.tgz#37b9ff661580f8fca11232752ee42e08c6675d8f" dependencies: @@ -4048,222 +4683,313 @@ istanbul-reports@^1.5.1: dependencies: handlebars "^4.0.3" -jest-changed-files@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-20.0.3.tgz#9394d5cc65c438406149bef1bf4d52b68e03e3f8" +jest-changed-files@^23.4.2: + version "23.4.2" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-23.4.2.tgz#1eed688370cd5eebafe4ae93d34bb3b64968fe83" + dependencies: + throat "^4.0.0" -jest-cli@^20.0.4: - version "20.0.4" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-20.0.4.tgz#e532b19d88ae5bc6c417e8b0593a6fe954b1dc93" +jest-cli@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-23.6.0.tgz#61ab917744338f443ef2baa282ddffdd658a5da4" dependencies: - ansi-escapes "^1.4.0" - callsites "^2.0.0" - chalk "^1.1.3" + ansi-escapes "^3.0.0" + chalk "^2.0.1" + exit "^0.1.2" + glob "^7.1.2" graceful-fs "^4.1.11" + import-local "^1.0.0" is-ci "^1.0.10" - istanbul-api "^1.1.1" - istanbul-lib-coverage "^1.0.1" - istanbul-lib-instrument "^1.4.2" - istanbul-lib-source-maps "^1.1.0" - jest-changed-files "^20.0.3" - jest-config "^20.0.4" - jest-docblock "^20.0.3" - jest-environment-jsdom "^20.0.3" - jest-haste-map "^20.0.4" - jest-jasmine2 "^20.0.4" - jest-message-util "^20.0.3" - jest-regex-util "^20.0.3" - jest-resolve-dependencies "^20.0.3" - jest-runtime "^20.0.4" - jest-snapshot "^20.0.3" - jest-util "^20.0.3" + istanbul-api "^1.3.1" + istanbul-lib-coverage "^1.2.0" + istanbul-lib-instrument "^1.10.1" + istanbul-lib-source-maps "^1.2.4" + jest-changed-files "^23.4.2" + jest-config "^23.6.0" + jest-environment-jsdom "^23.4.0" + jest-get-type "^22.1.0" + jest-haste-map "^23.6.0" + jest-message-util "^23.4.0" + jest-regex-util "^23.3.0" + jest-resolve-dependencies "^23.6.0" + jest-runner "^23.6.0" + jest-runtime "^23.6.0" + jest-snapshot "^23.6.0" + jest-util "^23.4.0" + jest-validate "^23.6.0" + jest-watcher "^23.4.0" + jest-worker "^23.2.0" micromatch "^2.3.11" - node-notifier "^5.0.2" - pify "^2.3.0" + node-notifier "^5.2.1" + prompts "^0.1.9" + realpath-native "^1.0.0" + rimraf "^2.5.4" slash "^1.0.0" - string-length "^1.0.1" - throat "^3.0.0" + string-length "^2.0.0" + strip-ansi "^4.0.0" which "^1.2.12" - worker-farm "^1.3.1" - yargs "^7.0.2" + yargs "^11.0.0" -jest-config@^20.0.4: - version "20.0.4" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-20.0.4.tgz#e37930ab2217c913605eff13e7bd763ec48faeea" +jest-config@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-23.6.0.tgz#f82546a90ade2d8c7026fbf6ac5207fc22f8eb1d" dependencies: - chalk "^1.1.3" + babel-core "^6.0.0" + babel-jest "^23.6.0" + chalk "^2.0.1" glob "^7.1.1" - jest-environment-jsdom "^20.0.3" - jest-environment-node "^20.0.3" - jest-jasmine2 "^20.0.4" - jest-matcher-utils "^20.0.3" - jest-regex-util "^20.0.3" - jest-resolve "^20.0.4" - jest-validate "^20.0.3" - pretty-format "^20.0.3" - -jest-diff@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-20.0.3.tgz#81f288fd9e675f0fb23c75f1c2b19445fe586617" + jest-environment-jsdom "^23.4.0" + jest-environment-node "^23.4.0" + jest-get-type "^22.1.0" + jest-jasmine2 "^23.6.0" + jest-regex-util "^23.3.0" + jest-resolve "^23.6.0" + jest-util "^23.4.0" + jest-validate "^23.6.0" + micromatch "^2.3.11" + pretty-format "^23.6.0" + +jest-diff@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-23.6.0.tgz#1500f3f16e850bb3d71233408089be099f610c7d" dependencies: - chalk "^1.1.3" + chalk "^2.0.1" diff "^3.2.0" - jest-matcher-utils "^20.0.3" - pretty-format "^20.0.3" + jest-get-type "^22.1.0" + pretty-format "^23.6.0" + +jest-docblock@^23.2.0: + version "23.2.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-23.2.0.tgz#f085e1f18548d99fdd69b20207e6fd55d91383a7" + dependencies: + detect-newline "^2.1.0" -jest-docblock@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-20.0.3.tgz#17bea984342cc33d83c50fbe1545ea0efaa44712" +jest-each@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-23.6.0.tgz#ba0c3a82a8054387016139c733a05242d3d71575" + dependencies: + chalk "^2.0.1" + pretty-format "^23.6.0" -jest-environment-jsdom@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-20.0.3.tgz#048a8ac12ee225f7190417713834bb999787de99" +jest-environment-jsdom@^23.4.0: + version "23.4.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-23.4.0.tgz#056a7952b3fea513ac62a140a2c368c79d9e6023" dependencies: - jest-mock "^20.0.3" - jest-util "^20.0.3" - jsdom "^9.12.0" + jest-mock "^23.2.0" + jest-util "^23.4.0" + jsdom "^11.5.1" -jest-environment-node@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-20.0.3.tgz#d488bc4612af2c246e986e8ae7671a099163d403" +jest-environment-node@^23.4.0: + version "23.4.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-23.4.0.tgz#57e80ed0841dea303167cce8cd79521debafde10" dependencies: - jest-mock "^20.0.3" - jest-util "^20.0.3" + jest-mock "^23.2.0" + jest-util "^23.4.0" -jest-haste-map@^20.0.4: - version "20.0.5" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-20.0.5.tgz#abad74efb1a005974a7b6517e11010709cab9112" +jest-get-type@^22.1.0: + version "22.4.3" + resolved "http://registry.npmjs.org/jest-get-type/-/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4" + +jest-haste-map@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-23.6.0.tgz#2e3eb997814ca696d62afdb3f2529f5bbc935e16" dependencies: fb-watchman "^2.0.0" graceful-fs "^4.1.11" - jest-docblock "^20.0.3" + invariant "^2.2.4" + jest-docblock "^23.2.0" + jest-serializer "^23.0.1" + jest-worker "^23.2.0" micromatch "^2.3.11" - sane "~1.6.0" - worker-farm "^1.3.1" - -jest-jasmine2@^20.0.4: - version "20.0.4" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-20.0.4.tgz#fcc5b1411780d911d042902ef1859e852e60d5e1" - dependencies: - chalk "^1.1.3" - graceful-fs "^4.1.11" - jest-diff "^20.0.3" - jest-matcher-utils "^20.0.3" - jest-matchers "^20.0.3" - jest-message-util "^20.0.3" - jest-snapshot "^20.0.3" - once "^1.4.0" - p-map "^1.1.1" + sane "^2.0.0" -jest-matcher-utils@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-20.0.3.tgz#b3a6b8e37ca577803b0832a98b164f44b7815612" +jest-jasmine2@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-23.6.0.tgz#840e937f848a6c8638df24360ab869cc718592e0" dependencies: - chalk "^1.1.3" - pretty-format "^20.0.3" - -jest-matchers@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jest-matchers/-/jest-matchers-20.0.3.tgz#ca69db1c32db5a6f707fa5e0401abb55700dfd60" + babel-traverse "^6.0.0" + chalk "^2.0.1" + co "^4.6.0" + expect "^23.6.0" + is-generator-fn "^1.0.0" + jest-diff "^23.6.0" + jest-each "^23.6.0" + jest-matcher-utils "^23.6.0" + jest-message-util "^23.4.0" + jest-snapshot "^23.6.0" + jest-util "^23.4.0" + pretty-format "^23.6.0" + +jest-leak-detector@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-23.6.0.tgz#e4230fd42cf381a1a1971237ad56897de7e171de" + dependencies: + pretty-format "^23.6.0" + +jest-matcher-utils@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-23.6.0.tgz#726bcea0c5294261a7417afb6da3186b4b8cac80" dependencies: - jest-diff "^20.0.3" - jest-matcher-utils "^20.0.3" - jest-message-util "^20.0.3" - jest-regex-util "^20.0.3" + chalk "^2.0.1" + jest-get-type "^22.1.0" + pretty-format "^23.6.0" -jest-message-util@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-20.0.3.tgz#6aec2844306fcb0e6e74d5796c1006d96fdd831c" +jest-message-util@^23.4.0: + version "23.4.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-23.4.0.tgz#17610c50942349508d01a3d1e0bda2c079086a9f" dependencies: - chalk "^1.1.3" + "@babel/code-frame" "^7.0.0-beta.35" + chalk "^2.0.1" micromatch "^2.3.11" slash "^1.0.0" + stack-utils "^1.0.1" + +jest-mock@^23.2.0: + version "23.2.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-23.2.0.tgz#ad1c60f29e8719d47c26e1138098b6d18b261134" -jest-mock@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-20.0.3.tgz#8bc070e90414aa155c11a8d64c869a0d5c71da59" +jest-pnp-resolver@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.0.1.tgz#f397cd71dbcd4a1947b2e435f6da8e9a347308fa" -jest-regex-util@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-20.0.3.tgz#85bbab5d133e44625b19faf8c6aa5122d085d762" +jest-regex-util@^23.3.0: + version "23.3.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-23.3.0.tgz#5f86729547c2785c4002ceaa8f849fe8ca471bc5" -jest-resolve-dependencies@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-20.0.3.tgz#6e14a7b717af0f2cb3667c549de40af017b1723a" +jest-resolve-dependencies@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-23.6.0.tgz#b4526af24c8540d9a3fab102c15081cf509b723d" dependencies: - jest-regex-util "^20.0.3" + jest-regex-util "^23.3.0" + jest-snapshot "^23.6.0" -jest-resolve@^20.0.4: - version "20.0.4" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-20.0.4.tgz#9448b3e8b6bafc15479444c6499045b7ffe597a5" +jest-resolve@23.6.0, jest-resolve@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-23.6.0.tgz#cf1d1a24ce7ee7b23d661c33ba2150f3aebfa0ae" dependencies: - browser-resolve "^1.11.2" - is-builtin-module "^1.0.0" - resolve "^1.3.2" + browser-resolve "^1.11.3" + chalk "^2.0.1" + realpath-native "^1.0.0" -jest-runtime@^20.0.4: - version "20.0.4" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-20.0.4.tgz#a2c802219c4203f754df1404e490186169d124d8" +jest-runner@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-23.6.0.tgz#3894bd219ffc3f3cb94dc48a4170a2e6f23a5a38" + dependencies: + exit "^0.1.2" + graceful-fs "^4.1.11" + jest-config "^23.6.0" + jest-docblock "^23.2.0" + jest-haste-map "^23.6.0" + jest-jasmine2 "^23.6.0" + jest-leak-detector "^23.6.0" + jest-message-util "^23.4.0" + jest-runtime "^23.6.0" + jest-util "^23.4.0" + jest-worker "^23.2.0" + source-map-support "^0.5.6" + throat "^4.0.0" + +jest-runtime@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-23.6.0.tgz#059e58c8ab445917cd0e0d84ac2ba68de8f23082" dependencies: babel-core "^6.0.0" - babel-jest "^20.0.3" - babel-plugin-istanbul "^4.0.0" - chalk "^1.1.3" + babel-plugin-istanbul "^4.1.6" + chalk "^2.0.1" convert-source-map "^1.4.0" + exit "^0.1.2" + fast-json-stable-stringify "^2.0.0" graceful-fs "^4.1.11" - jest-config "^20.0.4" - jest-haste-map "^20.0.4" - jest-regex-util "^20.0.3" - jest-resolve "^20.0.4" - jest-util "^20.0.3" - json-stable-stringify "^1.0.1" + jest-config "^23.6.0" + jest-haste-map "^23.6.0" + jest-message-util "^23.4.0" + jest-regex-util "^23.3.0" + jest-resolve "^23.6.0" + jest-snapshot "^23.6.0" + jest-util "^23.4.0" + jest-validate "^23.6.0" micromatch "^2.3.11" + realpath-native "^1.0.0" + slash "^1.0.0" strip-bom "3.0.0" - yargs "^7.0.2" + write-file-atomic "^2.1.0" + yargs "^11.0.0" + +jest-serializer@^23.0.1: + version "23.0.1" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-23.0.1.tgz#a3776aeb311e90fe83fab9e533e85102bd164165" -jest-snapshot@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-20.0.3.tgz#5b847e1adb1a4d90852a7f9f125086e187c76566" +jest-snapshot@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-23.6.0.tgz#f9c2625d1b18acda01ec2d2b826c0ce58a5aa17a" dependencies: - chalk "^1.1.3" - jest-diff "^20.0.3" - jest-matcher-utils "^20.0.3" - jest-util "^20.0.3" + babel-types "^6.0.0" + chalk "^2.0.1" + jest-diff "^23.6.0" + jest-matcher-utils "^23.6.0" + jest-message-util "^23.4.0" + jest-resolve "^23.6.0" + mkdirp "^0.5.1" natural-compare "^1.4.0" - pretty-format "^20.0.3" + pretty-format "^23.6.0" + semver "^5.5.0" -jest-util@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-20.0.3.tgz#0c07f7d80d82f4e5a67c6f8b9c3fe7f65cfd32ad" +jest-util@^23.4.0: + version "23.4.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-23.4.0.tgz#4d063cb927baf0a23831ff61bec2cbbf49793561" dependencies: - chalk "^1.1.3" + callsites "^2.0.0" + chalk "^2.0.1" graceful-fs "^4.1.11" - jest-message-util "^20.0.3" - jest-mock "^20.0.3" - jest-validate "^20.0.3" - leven "^2.1.0" + is-ci "^1.0.10" + jest-message-util "^23.4.0" mkdirp "^0.5.1" + slash "^1.0.0" + source-map "^0.6.0" -jest-validate@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-20.0.3.tgz#d0cfd1de4f579f298484925c280f8f1d94ec3cab" +jest-validate@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-23.6.0.tgz#36761f99d1ed33fcd425b4e4c5595d62b6597474" dependencies: - chalk "^1.1.3" - jest-matcher-utils "^20.0.3" + chalk "^2.0.1" + jest-get-type "^22.1.0" leven "^2.1.0" - pretty-format "^20.0.3" + pretty-format "^23.6.0" + +jest-watcher@^23.4.0: + version "23.4.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-23.4.0.tgz#d2e28ce74f8dad6c6afc922b92cabef6ed05c91c" + dependencies: + ansi-escapes "^3.0.0" + chalk "^2.0.1" + string-length "^2.0.0" + +jest-worker@^23.2.0: + version "23.2.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-23.2.0.tgz#faf706a8da36fae60eb26957257fa7b5d8ea02b9" + dependencies: + merge-stream "^1.0.1" + +jest@23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-23.6.0.tgz#ad5835e923ebf6e19e7a1d7529a432edfee7813d" + dependencies: + import-local "^1.0.0" + jest-cli "^23.6.0" -jest@20.0.4: - version "20.0.4" - resolved "https://registry.yarnpkg.com/jest/-/jest-20.0.4.tgz#3dd260c2989d6dad678b1e9cc4d91944f6d602ac" +joi@^11.1.1: + version "11.4.0" + resolved "https://registry.yarnpkg.com/joi/-/joi-11.4.0.tgz#f674897537b625e9ac3d0b7e1604c828ad913ccb" dependencies: - jest-cli "^20.0.4" + hoek "4.x.x" + isemail "3.x.x" + topo "2.x.x" -js-base64@^2.1.9: - version "2.4.9" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.9.tgz#748911fb04f48a60c4771b375cac45a80df11c03" +js-levenshtein@^1.1.3: + version "1.1.4" + resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.4.tgz#3a56e3cbf589ca0081eb22cd9ba0b1290a16d26e" -"js-tokens@^3.0.0 || ^4.0.0": +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -4271,59 +4997,94 @@ js-tokens@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" -js-yaml@^3.4.3, js-yaml@^3.7.0, js-yaml@^3.9.1: +js-yaml@^3.12.0, js-yaml@^3.7.0, js-yaml@^3.9.0: version "3.12.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" dependencies: argparse "^1.0.7" esprima "^4.0.0" -js-yaml@~3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" - dependencies: - argparse "^1.0.7" - esprima "^2.6.0" - jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" -jsdom@^9.12.0: - version "9.12.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-9.12.0.tgz#e8c546fffcb06c00d4833ca84410fed7f8a097d4" +jsdom@>=11.0.0: + version "13.0.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-13.0.0.tgz#f1df2411b714a4e08d1bdc343c0a0889c688210f" dependencies: - abab "^1.0.3" - acorn "^4.0.4" - acorn-globals "^3.1.0" + abab "^2.0.0" + acorn "^6.0.2" + acorn-globals "^4.3.0" + array-equal "^1.0.0" + cssom "^0.3.4" + cssstyle "^1.1.1" + data-urls "^1.0.1" + domexception "^1.0.1" + escodegen "^1.11.0" + html-encoding-sniffer "^1.0.2" + nwsapi "^2.0.9" + parse5 "5.1.0" + pn "^1.1.0" + request "^2.88.0" + request-promise-native "^1.0.5" + saxes "^3.1.3" + symbol-tree "^3.2.2" + tough-cookie "^2.4.3" + w3c-hr-time "^1.0.1" + w3c-xmlserializer "^1.0.0" + webidl-conversions "^4.0.2" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.2.0" + whatwg-url "^7.0.0" + ws "^6.1.0" + xml-name-validator "^3.0.0" + +jsdom@^11.5.1: + version "11.12.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8" + dependencies: + abab "^2.0.0" + acorn "^5.5.3" + acorn-globals "^4.1.0" array-equal "^1.0.0" - content-type-parser "^1.0.1" cssom ">= 0.3.2 < 0.4.0" - cssstyle ">= 0.2.37 < 0.3.0" - escodegen "^1.6.1" - html-encoding-sniffer "^1.0.1" - nwmatcher ">= 1.3.9 < 2.0.0" - parse5 "^1.5.1" - request "^2.79.0" - sax "^1.2.1" - symbol-tree "^3.2.1" - tough-cookie "^2.3.2" - webidl-conversions "^4.0.0" - whatwg-encoding "^1.0.1" - whatwg-url "^4.3.0" - xml-name-validator "^2.0.1" + cssstyle "^1.0.0" + data-urls "^1.0.0" + domexception "^1.0.1" + escodegen "^1.9.1" + html-encoding-sniffer "^1.0.2" + left-pad "^1.3.0" + nwsapi "^2.0.7" + parse5 "4.0.0" + pn "^1.1.0" + request "^2.87.0" + request-promise-native "^1.0.5" + sax "^1.2.4" + symbol-tree "^3.2.2" + tough-cookie "^2.3.4" + w3c-hr-time "^1.0.1" + webidl-conversions "^4.0.2" + whatwg-encoding "^1.0.3" + whatwg-mimetype "^2.1.0" + whatwg-url "^6.4.1" + ws "^5.2.0" + xml-name-validator "^3.0.0" jsesc@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" +jsesc@^2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.1.tgz#e421a2a8e20d6b0819df28908f782526b96dd1fe" + jsesc@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" -json-loader@^0.5.4: - version "0.5.7" - resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" +json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" json-schema-traverse@^0.3.0: version "0.3.1" @@ -4337,6 +5098,10 @@ json-schema@0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + json-stable-stringify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" @@ -4359,15 +5124,9 @@ json5@^0.5.0, json5@^0.5.1: version "0.5.1" resolved "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" -jsonfile@^2.1.0: - version "2.4.0" - resolved "http://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" - optionalDependencies: - graceful-fs "^4.1.6" - -jsonfile@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.1.tgz#a5ecc6f65f53f662c4415c7675a0331d0992ec66" +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" optionalDependencies: graceful-fs "^4.1.6" @@ -4384,32 +5143,16 @@ jsprim@^1.2.2: json-schema "0.2.3" verror "1.10.0" -jss-camel-case@^6.0.0, jss-camel-case@^6.1.0: +jss-camel-case@^6.0.0: version "6.1.0" resolved "https://registry.yarnpkg.com/jss-camel-case/-/jss-camel-case-6.1.0.tgz#ccb1ff8d6c701c02a1fed6fb6fb6b7896e11ce44" dependencies: hyphenate-style-name "^1.0.2" -jss-compose@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/jss-compose/-/jss-compose-5.0.0.tgz#ce01b2e4521d65c37ea42cf49116e5f7ab596484" - dependencies: - warning "^3.0.0" - jss-default-unit@^8.0.2: version "8.0.2" resolved "https://registry.yarnpkg.com/jss-default-unit/-/jss-default-unit-8.0.2.tgz#cc1e889bae4c0b9419327b314ab1c8e2826890e6" -jss-expand@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/jss-expand/-/jss-expand-5.3.0.tgz#02be076efe650125c842f5bb6fb68786fe441ed6" - -jss-extend@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/jss-extend/-/jss-extend-6.2.0.tgz#4af09d0b72fb98ee229970f8ca852fec1ca2a8dc" - dependencies: - warning "^3.0.0" - jss-global@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/jss-global/-/jss-global-3.0.0.tgz#e19e5c91ab2b96353c227e30aa2cbd938cdaafa2" @@ -4420,38 +5163,17 @@ jss-nested@^6.0.1: dependencies: warning "^3.0.0" -jss-preset-default@^4.3.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/jss-preset-default/-/jss-preset-default-4.5.0.tgz#d3a457012ccd7a551312014e394c23c4b301cadd" - dependencies: - jss-camel-case "^6.1.0" - jss-compose "^5.0.0" - jss-default-unit "^8.0.2" - jss-expand "^5.3.0" - jss-extend "^6.2.0" - jss-global "^3.0.0" - jss-nested "^6.0.1" - jss-props-sort "^6.0.0" - jss-template "^1.0.1" - jss-vendor-prefixer "^7.0.0" - jss-props-sort@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/jss-props-sort/-/jss-props-sort-6.0.0.tgz#9105101a3b5071fab61e2d85ea74cc22e9b16323" -jss-template@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/jss-template/-/jss-template-1.0.1.tgz#09aed9d86cc547b07f53ef355d7e1777f7da430a" - dependencies: - warning "^3.0.0" - jss-vendor-prefixer@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/jss-vendor-prefixer/-/jss-vendor-prefixer-7.0.0.tgz#0166729650015ef19d9f02437c73667231605c71" dependencies: css-vendor "^0.3.8" -jss@^9.3.3, jss@^9.7.0: +jss@^9.3.3: version "9.8.7" resolved "https://registry.yarnpkg.com/jss/-/jss-9.8.7.tgz#ed9763fc0f2f0260fc8260dac657af61e622ce05" dependencies: @@ -4459,11 +5181,7 @@ jss@^9.3.3, jss@^9.7.0: symbol-observable "^1.1.0" warning "^3.0.0" -jsx-ast-utils@^1.4.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz#3867213e8dd79bf1e8f2300c0cfc1efb182c0df1" - -jsx-ast-utils@^2.0.0: +jsx-ast-utils@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz#e801b1b39985e20fffc87b40e3748080e2dcac7f" dependencies: @@ -4477,6 +5195,12 @@ killable@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" +kind-of@^2.0.1: + version "2.0.1" + resolved "http://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz#018ec7a4ce7e3a86cb9141be519d24c8faa981b5" + dependencies: + is-buffer "^1.0.2" + kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" @@ -4497,17 +5221,20 @@ kind-of@^6.0.0, kind-of@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" -klaw@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" - optionalDependencies: - graceful-fs "^4.1.9" +kleur@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-2.0.2.tgz#b704f4944d95e255d038f0cb05fb8a602c55a300" -latest-version@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" +last-call-webpack-plugin@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555" dependencies: - package-json "^4.0.0" + lodash "^4.17.5" + webpack-sources "^1.1.0" + +lazy-cache@^0.2.3: + version "0.2.7" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-0.2.7.tgz#7feddf2dcb6edb77d11ef1d117ab5ffdf0ab1b65" lazy-cache@^1.0.3: version "1.0.4" @@ -4519,6 +5246,16 @@ lcid@^1.0.0: dependencies: invert-kv "^1.0.0" +lcid@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" + dependencies: + invert-kv "^2.0.0" + +left-pad@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" + leven@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" @@ -4560,16 +5297,7 @@ loader-runner@^2.3.0: version "2.3.1" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.1.tgz#026f12fe7c3115992896ac02ba022ba92971b979" -loader-utils@^0.2.16: - version "0.2.17" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" - dependencies: - big.js "^3.1.3" - emojis-list "^2.0.0" - json5 "^0.5.0" - object-assign "^4.0.1" - -loader-utils@^1.0.2, loader-utils@^1.1.0: +loader-utils@1.1.0, loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" dependencies: @@ -4584,9 +5312,12 @@ locate-path@^2.0.0: p-locate "^2.0.0" path-exists "^3.0.0" -lodash-es@^4.17.5: - version "4.17.11" - resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.11.tgz#145ab4a7ac5c5e52a3531fb4f310255a152b4be0" +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" lodash._reinterpolate@~3.0.0: version "3.0.0" @@ -4596,18 +5327,10 @@ lodash.camelcase@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" -lodash.cond@^4.3.0: - version "4.5.2" - resolved "https://registry.yarnpkg.com/lodash.cond/-/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5" - lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" -lodash.defaults@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" - lodash.escape@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-4.0.1.tgz#c9044690c21e04294beaa517712fded1fa88de98" @@ -4632,7 +5355,15 @@ lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" -lodash.template@^4.4.0: +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + +lodash.tail@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.tail/-/lodash.tail-4.1.1.tgz#d2333a36d9e7717c8ad2f7cacafec7c32b444664" + +lodash.template@^4.2.4, lodash.template@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.4.0.tgz#e73a0385c8355591746e020b99679c690e68fba0" dependencies: @@ -4649,7 +5380,7 @@ lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" -"lodash@>=3.5 <5", lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0: +"lodash@>=3.5 <5", lodash@^4.13.1, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.4, lodash@^4.17.5: version "4.17.11" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" @@ -4657,32 +5388,17 @@ loglevel@^1.4.1: version "1.6.1" resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.1.tgz#e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa" -longest@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" - loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" dependencies: js-tokens "^3.0.0 || ^4.0.0" -loud-rejection@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" - dependencies: - currently-unhandled "^0.4.1" - signal-exit "^3.0.0" - lower-case@^1.1.1: version "1.1.4" resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" -lowercase-keys@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - -lru-cache@^4.0.1: +lru-cache@^4.0.1, lru-cache@^4.1.1, lru-cache@^4.1.3: version "4.1.3" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.3.tgz#a1175cf3496dfc8436c156c334b4955992bce69c" dependencies: @@ -4701,24 +5417,26 @@ makeerror@1.0.x: dependencies: tmpl "1.0.x" +mamacro@^0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" + +map-age-cleaner@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.2.tgz#098fb15538fd3dbe461f12745b0ca8568d4e3f74" + dependencies: + p-defer "^1.0.0" + map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" -map-obj@^1.0.0, map-obj@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - map-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" dependencies: object-visit "^1.0.0" -math-expression-evaluator@^1.2.14: - version "1.2.17" - resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac" - math-random@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.1.tgz#8b3aac588b8a66e4975e3cdea67f7bb329601fac" @@ -4731,9 +5449,13 @@ md5.js@^1.3.4: inherits "^2.0.1" safe-buffer "^5.1.2" +mdn-data@~1.1.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-1.1.4.tgz#50b5d4ffc4575276573c4eedb8780812a8419f01" + media-typer@0.3.0: version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + resolved "http://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" mem@^1.1.0: version "1.1.0" @@ -4741,6 +5463,14 @@ mem@^1.1.0: dependencies: mimic-fn "^1.0.0" +mem@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-4.0.0.tgz#6437690d9471678f6cc83659c00cbafcd6b0cdaf" + dependencies: + map-age-cleaner "^0.1.1" + mimic-fn "^1.0.0" + p-is-promise "^1.1.0" + memory-fs@^0.4.0, memory-fs@~0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" @@ -4748,34 +5478,37 @@ memory-fs@^0.4.0, memory-fs@~0.4.1: errno "^0.1.3" readable-stream "^2.0.1" -meow@^3.3.0, meow@^3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" - dependencies: - camelcase-keys "^2.0.0" - decamelize "^1.1.2" - loud-rejection "^1.0.0" - map-obj "^1.0.1" - minimist "^1.1.3" - normalize-package-data "^2.3.4" - object-assign "^4.0.1" - read-pkg-up "^1.0.1" - redent "^1.0.0" - trim-newlines "^1.0.0" +merge-deep@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/merge-deep/-/merge-deep-3.0.2.tgz#f39fa100a4f1bd34ff29f7d2bf4508fbb8d83ad2" + dependencies: + arr-union "^3.1.0" + clone-deep "^0.2.4" + kind-of "^3.0.2" merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" +merge-stream@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" + dependencies: + readable-stream "^2.0.1" + +merge2@^1.2.1: + version "1.2.3" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.3.tgz#7ee99dbd69bb6481689253f018488a1b902b0ed5" + merge@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da" + version "1.2.1" + resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145" methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" -micromatch@^2.1.5, micromatch@^2.3.11: +micromatch@^2.3.11: version "2.3.11" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" dependencies: @@ -4793,7 +5526,7 @@ micromatch@^2.1.5, micromatch@^2.3.11: parse-glob "^3.0.4" regex-cache "^0.4.2" -micromatch@^3.1.10, micromatch@^3.1.4: +micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8, micromatch@^3.1.9: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" dependencies: @@ -4818,28 +5551,36 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -"mime-db@>= 1.36.0 < 2", mime-db@~1.36.0: - version "1.36.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.36.0.tgz#5020478db3c7fe93aad7bbcc4dcf869c43363397" +"mime-db@>= 1.36.0 < 2", mime-db@~1.37.0: + version "1.37.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.37.0.tgz#0b6a0ce6fdbe9576e25f1f2d2fde8830dc0ad0d8" mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.18, mime-types@~2.1.19: - version "2.1.20" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.20.tgz#930cb719d571e903738520f8470911548ca2cc19" + version "2.1.21" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.21.tgz#28995aa1ecb770742fe6ae7e58f9181c744b3f96" dependencies: - mime-db "~1.36.0" + mime-db "~1.37.0" mime@1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" -mime@^1.4.1, mime@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" +mime@^2.0.3, mime@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.3.1.tgz#b1621c54d63b97c47d3cfe7f7215f7d64517c369" mimic-fn@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" +mini-css-extract-plugin@0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.3.tgz#98d60fcc5d228c3e36a9bd15a1d6816d6580beb8" + dependencies: + loader-utils "^1.1.0" + schema-utils "^1.0.0" + webpack-sources "^1.1.0" + minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" @@ -4848,13 +5589,7 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" -minimatch@3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" - dependencies: - brace-expansion "^1.0.0" - -minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4: +minimatch@3.0.4, minimatch@^3.0.3, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" dependencies: @@ -4864,7 +5599,7 @@ minimist@0.0.8: version "0.0.8" resolved "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" -minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: +minimist@^1.1.1, minimist@^1.2.0: version "1.2.0" resolved "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" @@ -4872,19 +5607,49 @@ minimist@~0.0.1: version "0.0.10" resolved "http://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" -minipass@^2.2.1, minipass@^2.3.3: - version "2.3.4" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.4.tgz#4768d7605ed6194d6d576169b9e12ef71e9d9957" +minipass@^2.2.1, minipass@^2.3.4: + version "2.3.5" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848" dependencies: safe-buffer "^5.1.2" yallist "^3.0.0" -minizlib@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.0.tgz#11e13658ce46bc3a70a267aac58359d1e0c29ceb" +minizlib@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.1.tgz#6734acc045a46e61d596a43bb9d9cd326e19cc42" dependencies: minipass "^2.2.1" +mississippi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-2.0.0.tgz#3442a508fafc28500486feea99409676e4ee5a6f" + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^2.0.1" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + +mississippi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^3.0.0" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + mixin-deep@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" @@ -4892,6 +5657,13 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" +mixin-object@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mixin-object/-/mixin-object-2.0.1.tgz#4fb949441dab182540f1fe035ba60e1947a5e57e" + dependencies: + for-in "^0.1.3" + is-extendable "^0.1.1" + mkdirp@0.5.1, mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: version "0.5.1" resolved "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" @@ -4902,6 +5674,17 @@ moo@^0.4.3: version "0.4.3" resolved "https://registry.yarnpkg.com/moo/-/moo-0.4.3.tgz#3f847a26f31cf625a956a87f2b10fbc013bfd10e" +move-concurrently@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + dependencies: + aproba "^1.1.1" + copy-concurrently "^1.0.0" + fs-write-stream-atomic "^1.0.8" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.3" + ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" @@ -4972,12 +5755,12 @@ negotiator@0.6.1: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" neo-async@^2.5.0: - version "2.5.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.5.2.tgz#489105ce7bc54e709d736b195f82135048c50fcc" + version "2.6.0" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.0.tgz#b9d15e4d71c6762908654b5183ed38b753340835" -next-tick@1: - version "1.0.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" no-case@^2.2.0: version "2.3.2" @@ -5028,12 +5811,12 @@ node-libs-browser@^2.0.0: util "^0.10.3" vm-browserify "0.0.4" -node-notifier@^5.0.2: - version "5.2.1" - resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.2.1.tgz#fa313dd08f5517db0e2502e5758d664ac69f9dea" +node-notifier@^5.2.1: + version "5.3.0" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.3.0.tgz#c77a4a7b84038733d5fb351aafd8a268bfe19a01" dependencies: growly "^1.3.0" - semver "^5.4.1" + semver "^5.5.0" shellwords "^0.1.1" which "^1.3.0" @@ -5052,6 +5835,12 @@ node-pre-gyp@^0.10.0: semver "^5.3.0" tar "^4" +node-releases@^1.0.0-alpha.11, node-releases@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.0.3.tgz#3414ed84595096459c251699bfcb47d88324a9e4" + dependencies: + semver "^5.3.0" + nomnom@~1.6.2: version "1.6.2" resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.6.2.tgz#84a66a260174408fc5b77a18f888eccc44fb6971" @@ -5066,7 +5855,7 @@ nopt@^4.0.1: abbrev "1" osenv "^0.1.4" -normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: +normalize-package-data@^2.3.2: version "2.4.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" dependencies: @@ -5075,7 +5864,7 @@ normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" -normalize-path@^2.0.0, normalize-path@^2.0.1, normalize-path@^2.1.1: +normalize-path@^2.0.1, normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" dependencies: @@ -5089,22 +5878,17 @@ normalize-scroll-left@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/normalize-scroll-left/-/normalize-scroll-left-0.1.2.tgz#6b79691ba79eb5fb107fa5edfbdc06b55caee2aa" -normalize-url@^1.4.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" - dependencies: - object-assign "^4.0.1" - prepend-http "^1.0.0" - query-string "^4.1.0" - sort-keys "^1.0.0" +normalize-url@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" npm-bundled@^1.0.1: version "1.0.5" resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.5.tgz#3c1732b7ba936b3a10325aef616467c0ccbcc979" npm-packlist@^1.1.6: - version "1.1.11" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.11.tgz#84e8c683cbe7867d34b1d357d893ce29e28a02de" + version "1.1.12" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.12.tgz#22bde2ebc12e72ca482abd67afc51eb49377243a" dependencies: ignore-walk "^3.0.1" npm-bundled "^1.0.1" @@ -5124,9 +5908,9 @@ npmlog@^4.0.2: gauge "~2.7.3" set-blocking "~2.0.0" -nth-check@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.1.tgz#9929acdf628fc2c41098deab82ac580cf149aae4" +nth-check@^1.0.2, nth-check@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" dependencies: boolbase "~1.0.0" @@ -5138,9 +5922,9 @@ number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" -"nwmatcher@>= 1.3.9 < 2.0.0": - version "1.4.4" - resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.4.4.tgz#2285631f34a95f0d0395cd900c96ed39b58f346e" +nwsapi@^2.0.7, nwsapi@^2.0.9: + version "2.0.9" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.0.9.tgz#77ac0cdfdcad52b6a1151a84e73254edc33ed016" oauth-sign@~0.9.0: version "0.9.0" @@ -5202,6 +5986,13 @@ object.entries@^1.0.4: function-bind "^1.1.0" has "^1.0.1" +object.getownpropertydescriptors@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.5.1" + object.omit@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" @@ -5238,7 +6029,7 @@ on-headers@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7" -once@^1.3.0, once@^1.4.0: +once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" dependencies: @@ -5250,13 +6041,7 @@ onetime@^2.0.0: dependencies: mimic-fn "^1.0.0" -opn@5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/opn/-/opn-5.2.0.tgz#71fdf934d6827d676cecbea1531f95d354641225" - dependencies: - is-wsl "^1.1.0" - -opn@^5.1.0: +opn@5.4.0, opn@^5.1.0: version "5.4.0" resolved "https://registry.yarnpkg.com/opn/-/opn-5.4.0.tgz#cb545e7aab78562beb11aa3bfabc7042e1761035" dependencies: @@ -5269,6 +6054,13 @@ optimist@^0.6.1: minimist "~0.0.1" wordwrap "~0.0.2" +optimize-css-assets-webpack-plugin@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.1.tgz#9eb500711d35165b45e7fd60ba2df40cb3eb9159" + dependencies: + cssnano "^4.1.0" + last-call-webpack-plugin "^3.0.0" + optionator@^0.8.1, optionator@^0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" @@ -5290,16 +6082,10 @@ os-browserify@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" -os-homedir@^1.0.0, os-homedir@^1.0.1: +os-homedir@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" -os-locale@^1.4.0: - version "1.4.0" - resolved "http://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" - dependencies: - lcid "^1.0.0" - os-locale@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" @@ -5308,6 +6094,14 @@ os-locale@^2.0.0: lcid "^1.0.0" mem "^1.1.0" +os-locale@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.0.1.tgz#3b014fbf01d87f60a1e5348d80fe870dc82c4620" + dependencies: + execa "^0.10.0" + lcid "^2.0.0" + mem "^4.0.0" + os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" @@ -5319,22 +6113,42 @@ osenv@^0.1.4: os-homedir "^1.0.0" os-tmpdir "^1.0.0" +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" +p-is-promise@^1.1.0: + version "1.1.0" + resolved "http://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" + p-limit@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" dependencies: p-try "^1.0.0" +p-limit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.0.0.tgz#e624ed54ee8c460a778b3c9f3670496ff8a57aec" + dependencies: + p-try "^2.0.0" + p-locate@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" dependencies: p-limit "^1.1.0" +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + dependencies: + p-limit "^2.0.0" + p-map@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" @@ -5343,19 +6157,22 @@ p-try@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" -package-json@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" - dependencies: - got "^6.7.1" - registry-auth-token "^3.0.1" - registry-url "^3.0.3" - semver "^5.1.0" +p-try@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz#85080bb87c64688fa47996fe8f7dfbe8211760b1" pako@~1.0.5: version "1.0.6" resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" +parallel-transform@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" + dependencies: + cyclist "~0.2.2" + inherits "^2.0.3" + readable-stream "^2.1.5" + param-case@2.1.x: version "2.1.1" resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" @@ -5387,13 +6204,24 @@ parse-json@^2.2.0: dependencies: error-ex "^1.2.0" +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + parse-passwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" -parse5@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-1.5.1.tgz#9b7f3b0de32be78dc2401b17573ccaf0f6f59d94" +parse5@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" + +parse5@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2" parse5@^3.0.1: version "3.0.3" @@ -5435,7 +6263,7 @@ path-is-inside@^1.0.1, path-is-inside@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" -path-key@^2.0.0: +path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" @@ -5447,7 +6275,7 @@ path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" -path-to-regexp@^1.0.1, path-to-regexp@^1.7.0: +path-to-regexp@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d" dependencies: @@ -5467,6 +6295,12 @@ path-type@^2.0.0: dependencies: pify "^2.0.0" +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + dependencies: + pify "^3.0.0" + pbkdf2@^3.0.3: version "3.0.17" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" @@ -5481,9 +6315,9 @@ performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" -pify@^2.0.0, pify@^2.3.0: +pify@^2.0.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + resolved "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" pify@^3.0.0: version "3.0.0" @@ -5511,17 +6345,37 @@ pkg-dir@^2.0.0: dependencies: find-up "^2.1.0" +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + dependencies: + find-up "^3.0.0" + +pkg-up@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" + dependencies: + find-up "^2.1.0" + pluralize@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" +pn@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" + +pnp-webpack-plugin@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.1.0.tgz#947a96d1db94bb5a1fc014d83b581e428699ac8c" + popper.js@^1.14.1: version "1.14.4" resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.14.4.tgz#8eec1d8ff02a5a3a152dd43414a15c7b79fd69b6" portfinder@^1.0.9: - version "1.0.17" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.17.tgz#a8a1691143e46c4735edefcf4fbcccedad26456a" + version "1.0.19" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.19.tgz#07e87914a55242dcda5b833d42f018d6875b595f" dependencies: async "^1.5.2" debug "^2.2.0" @@ -5531,282 +6385,528 @@ 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" -postcss-calc@^5.2.0: - version "5.3.1" - resolved "http://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz#77bae7ca928ad85716e2fda42f261bf7c1d65b5e" +postcss-attribute-case-insensitive@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.0.tgz#807b6a797ad8bf1c821b2d51cf641e9dd3837624" dependencies: - postcss "^5.0.2" - postcss-message-helpers "^2.0.0" - reduce-css-calc "^1.2.6" + postcss "^7.0.2" + postcss-selector-parser "^5.0.0-rc.3" -postcss-colormin@^2.1.8: - version "2.2.2" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.2.tgz#6631417d5f0e909a3d7ec26b24c8a8d1e4f96e4b" +postcss-calc@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.1.tgz#36d77bab023b0ecbb9789d84dcb23c4941145436" dependencies: - colormin "^1.0.5" - postcss "^5.0.13" - postcss-value-parser "^3.2.3" + css-unit-converter "^1.1.1" + postcss "^7.0.5" + postcss-selector-parser "^5.0.0-rc.4" + postcss-value-parser "^3.3.1" -postcss-convert-values@^2.3.4: - version "2.6.1" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz#bbd8593c5c1fd2e3d1c322bb925dcae8dae4d62d" +postcss-color-functional-notation@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz#5efd37a88fbabeb00a2966d1e53d98ced93f74e0" dependencies: - postcss "^5.0.11" - postcss-value-parser "^3.1.2" + postcss "^7.0.2" + postcss-values-parser "^2.0.0" -postcss-discard-comments@^2.0.4: - version "2.0.4" - resolved "http://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz#befe89fafd5b3dace5ccce51b76b81514be00e3d" +postcss-color-hex-alpha@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.2.tgz#e9b1886bb038daed33f6394168c210b40bb4fdb6" dependencies: - postcss "^5.0.14" + postcss "^7.0.2" + postcss-values-parser "^2.0.0" -postcss-discard-duplicates@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz#b9abf27b88ac188158a5eb12abcae20263b91932" +postcss-color-mod-function@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz#816ba145ac11cc3cb6baa905a75a49f903e4d31d" dependencies: - postcss "^5.0.4" + "@csstools/convert-colors" "^1.4.0" + postcss "^7.0.2" + postcss-values-parser "^2.0.0" -postcss-discard-empty@^2.0.1: - version "2.1.0" - resolved "http://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz#d2b4bd9d5ced5ebd8dcade7640c7d7cd7f4f92b5" +postcss-color-rebeccapurple@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz#c7a89be872bb74e45b1e3022bfe5748823e6de77" dependencies: - postcss "^5.0.14" + postcss "^7.0.2" + postcss-values-parser "^2.0.0" -postcss-discard-overridden@^0.1.1: - version "0.1.1" - resolved "http://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz#8b1eaf554f686fb288cd874c55667b0aa3668d58" +postcss-colormin@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.2.tgz#93cd1fa11280008696887db1a528048b18e7ed99" dependencies: - postcss "^5.0.16" + browserslist "^4.0.0" + color "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" -postcss-discard-unused@^2.2.1: - version "2.2.3" - resolved "http://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz#bce30b2cc591ffc634322b5fb3464b6d934f4433" +postcss-convert-values@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" dependencies: - postcss "^5.0.14" - uniqs "^2.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" -postcss-filter-plugins@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/postcss-filter-plugins/-/postcss-filter-plugins-2.0.3.tgz#82245fdf82337041645e477114d8e593aa18b8ec" +postcss-custom-media@^7.0.4: + version "7.0.7" + resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-7.0.7.tgz#bbc698ed3089ded61aad0f5bfb1fb48bf6969e73" dependencies: - postcss "^5.0.4" + postcss "^7.0.5" -postcss-flexbugs-fixes@3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-3.2.0.tgz#9b8b932c53f9cf13ba0f61875303e447c33dcc51" +postcss-custom-properties@^8.0.5: + version "8.0.9" + resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-8.0.9.tgz#8943870528a6eae4c8e8d285b6ccc9fd1f97e69c" dependencies: - postcss "^6.0.1" + postcss "^7.0.5" + postcss-values-parser "^2.0.0" -postcss-load-config@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-1.2.0.tgz#539e9afc9ddc8620121ebf9d8c3673e0ce50d28a" +postcss-custom-selectors@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz#64858c6eb2ecff2fb41d0b28c9dd7b3db4de7fba" dependencies: - cosmiconfig "^2.1.0" - object-assign "^4.1.0" - postcss-load-options "^1.2.0" - postcss-load-plugins "^2.3.0" + postcss "^7.0.2" + postcss-selector-parser "^5.0.0-rc.3" -postcss-load-options@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-load-options/-/postcss-load-options-1.2.0.tgz#b098b1559ddac2df04bc0bb375f99a5cfe2b6d8c" +postcss-dir-pseudo-class@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz#6e3a4177d0edb3abcc85fdb6fbb1c26dabaeaba2" dependencies: - cosmiconfig "^2.1.0" - object-assign "^4.1.0" + postcss "^7.0.2" + postcss-selector-parser "^5.0.0-rc.3" -postcss-load-plugins@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz#745768116599aca2f009fad426b00175049d8d92" +postcss-discard-comments@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.1.tgz#30697735b0c476852a7a11050eb84387a67ef55d" dependencies: - cosmiconfig "^2.1.1" - object-assign "^4.1.0" + postcss "^7.0.0" -postcss-loader@2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-2.0.8.tgz#8c67ddb029407dfafe684a406cfc16bad2ce0814" +postcss-discard-duplicates@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" dependencies: - loader-utils "^1.1.0" - postcss "^6.0.0" - postcss-load-config "^1.2.0" - schema-utils "^0.3.0" + postcss "^7.0.0" + +postcss-discard-empty@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" + dependencies: + postcss "^7.0.0" -postcss-merge-idents@^2.1.5: - version "2.1.7" - resolved "http://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz#4c5530313c08e1d5b3bbf3d2bbc747e278eea270" +postcss-discard-overridden@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" dependencies: - has "^1.0.1" - postcss "^5.0.10" - postcss-value-parser "^3.1.1" + postcss "^7.0.0" -postcss-merge-longhand@^2.0.1: +postcss-env-function@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz#23d90cd127b0a77994915332739034a1a4f3d658" + resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-2.0.2.tgz#0f3e3d3c57f094a92c2baf4b6241f0b0da5365d7" dependencies: - postcss "^5.0.4" + postcss "^7.0.2" + postcss-values-parser "^2.0.0" -postcss-merge-rules@^2.0.3: - version "2.1.2" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz#d1df5dfaa7b1acc3be553f0e9e10e87c61b5f721" +postcss-flexbugs-fixes@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.1.0.tgz#e094a9df1783e2200b7b19f875dcad3b3aff8b20" dependencies: - browserslist "^1.5.2" - caniuse-api "^1.5.2" - postcss "^5.0.4" - postcss-selector-parser "^2.2.2" - vendors "^1.0.0" + postcss "^7.0.0" + +postcss-focus-visible@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz#477d107113ade6024b14128317ade2bd1e17046e" + dependencies: + postcss "^7.0.2" + +postcss-focus-within@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz#763b8788596cee9b874c999201cdde80659ef680" + dependencies: + postcss "^7.0.2" + +postcss-font-variant@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-4.0.0.tgz#71dd3c6c10a0d846c5eda07803439617bbbabacc" + dependencies: + postcss "^7.0.2" -postcss-message-helpers@^2.0.0: +postcss-gap-properties@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz#a4f2f4fab6e4fe002f0aed000478cdf52f9ba60e" + resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz#431c192ab3ed96a3c3d09f2ff615960f902c1715" + dependencies: + postcss "^7.0.2" -postcss-minify-font-values@^1.0.2: - version "1.0.5" - resolved "http://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz#4b58edb56641eba7c8474ab3526cafd7bbdecb69" +postcss-image-set-function@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz#28920a2f29945bed4c3198d7df6496d410d3f288" dependencies: - object-assign "^4.0.1" - postcss "^5.0.4" - postcss-value-parser "^3.0.2" + postcss "^7.0.2" + postcss-values-parser "^2.0.0" -postcss-minify-gradients@^1.0.1: - version "1.0.5" - resolved "http://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz#5dbda11373703f83cfb4a3ea3881d8d75ff5e6e1" +postcss-initial@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-3.0.0.tgz#1772512faf11421b791fb2ca6879df5f68aa0517" dependencies: - postcss "^5.0.12" - postcss-value-parser "^3.3.0" + lodash.template "^4.2.4" + postcss "^7.0.2" -postcss-minify-params@^1.0.4: - version "1.2.2" - resolved "http://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz#ad2ce071373b943b3d930a3fa59a358c28d6f1f3" +postcss-lab-function@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz#bb51a6856cd12289ab4ae20db1e3821ef13d7d2e" + dependencies: + "@csstools/convert-colors" "^1.4.0" + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-load-config@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.0.0.tgz#f1312ddbf5912cd747177083c5ef7a19d62ee484" + dependencies: + cosmiconfig "^4.0.0" + import-cwd "^2.0.0" + +postcss-loader@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" + dependencies: + loader-utils "^1.1.0" + postcss "^7.0.0" + postcss-load-config "^2.0.0" + schema-utils "^1.0.0" + +postcss-logical@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-3.0.0.tgz#2495d0f8b82e9f262725f75f9401b34e7b45d5b5" + dependencies: + postcss "^7.0.2" + +postcss-media-minmax@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz#b75bb6cbc217c8ac49433e12f22048814a4f5ed5" + dependencies: + postcss "^7.0.2" + +postcss-merge-longhand@^4.0.9: + version "4.0.9" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.9.tgz#c2428b994833ffb2a072f290ca642e75ceabcd6f" + dependencies: + css-color-names "0.0.4" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + stylehacks "^4.0.0" + +postcss-merge-rules@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.2.tgz#2be44401bf19856f27f32b8b12c0df5af1b88e74" + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + cssnano-util-same-parent "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + vendors "^1.0.0" + +postcss-minify-font-values@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" dependencies: - alphanum-sort "^1.0.1" - postcss "^5.0.2" - postcss-value-parser "^3.0.2" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-gradients@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.1.tgz#6da95c6e92a809f956bb76bf0c04494953e1a7dd" + dependencies: + cssnano-util-get-arguments "^4.0.0" + is-color-stop "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-params@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.1.tgz#5b2e2d0264dd645ef5d68f8fec0d4c38c1cf93d2" + dependencies: + alphanum-sort "^1.0.0" + browserslist "^4.0.0" + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" uniqs "^2.0.0" -postcss-minify-selectors@^2.0.4: - version "2.1.1" - resolved "http://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz#b2c6a98c0072cf91b932d1a496508114311735bf" +postcss-minify-selectors@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.1.tgz#a891c197977cc37abf60b3ea06b84248b1c1e9cd" dependencies: - alphanum-sort "^1.0.2" - has "^1.0.1" - postcss "^5.0.14" - postcss-selector-parser "^2.0.0" + alphanum-sort "^1.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" -postcss-modules-extract-imports@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz#b614c9720be6816eaee35fb3a5faa1dba6a05ddb" +postcss-modules-extract-imports@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz#dc87e34148ec7eab5f791f7cd5849833375b741a" dependencies: postcss "^6.0.1" -postcss-modules-local-by-default@^1.0.1: +postcss-modules-local-by-default@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" dependencies: css-selector-tokenizer "^0.7.0" postcss "^6.0.1" -postcss-modules-scope@^1.0.0: +postcss-modules-scope@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" dependencies: css-selector-tokenizer "^0.7.0" postcss "^6.0.1" -postcss-modules-values@^1.1.0: +postcss-modules-values@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" dependencies: icss-replace-symbols "^1.1.0" postcss "^6.0.1" -postcss-normalize-charset@^1.1.0: - version "1.1.1" - resolved "http://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz#ef9ee71212d7fe759c78ed162f61ed62b5cb93f1" +postcss-nesting@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-7.0.0.tgz#6e26a770a0c8fcba33782a6b6f350845e1a448f6" + dependencies: + postcss "^7.0.2" + +postcss-normalize-charset@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" + dependencies: + postcss "^7.0.0" + +postcss-normalize-display-values@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.1.tgz#d9a83d47c716e8a980f22f632c8b0458cfb48a4c" + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-positions@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.1.tgz#ee2d4b67818c961964c6be09d179894b94fd6ba1" + dependencies: + cssnano-util-get-arguments "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-repeat-style@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.1.tgz#5293f234b94d7669a9f805495d35b82a581c50e5" + dependencies: + cssnano-util-get-arguments "^4.0.0" + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-string@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.1.tgz#23c5030c2cc24175f66c914fa5199e2e3c10fef3" + dependencies: + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-timing-functions@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.1.tgz#8be83e0b9cb3ff2d1abddee032a49108f05f95d7" + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-unicode@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" dependencies: - postcss "^5.0.5" + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" -postcss-normalize-url@^3.0.7: - version "3.0.8" - resolved "http://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz#108f74b3f2fcdaf891a2ffa3ea4592279fc78222" +postcss-normalize-url@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" dependencies: is-absolute-url "^2.0.0" - normalize-url "^1.4.0" - postcss "^5.0.14" - postcss-value-parser "^3.2.3" + normalize-url "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" -postcss-ordered-values@^2.1.0: - version "2.2.3" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz#eec6c2a67b6c412a8db2042e77fe8da43f95c11d" +postcss-normalize-whitespace@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.1.tgz#d14cb639b61238418ac8bc8d3b7bdd65fc86575e" dependencies: - postcss "^5.0.4" - postcss-value-parser "^3.0.1" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" -postcss-reduce-idents@^2.2.2: - version "2.4.0" - resolved "http://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz#c2c6d20cc958284f6abfbe63f7609bf409059ad3" +postcss-ordered-values@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.1.tgz#2e3b432ef3e489b18333aeca1f1295eb89be9fc2" dependencies: - postcss "^5.0.4" - postcss-value-parser "^3.0.2" + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" -postcss-reduce-initial@^1.0.0: - version "1.0.1" - resolved "http://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz#68f80695f045d08263a879ad240df8dd64f644ea" +postcss-overflow-shorthand@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz#31ecf350e9c6f6ddc250a78f0c3e111f32dd4c30" + dependencies: + postcss "^7.0.2" + +postcss-page-break@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-2.0.0.tgz#add52d0e0a528cabe6afee8b46e2abb277df46bf" + dependencies: + postcss "^7.0.2" + +postcss-place@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-4.0.1.tgz#e9f39d33d2dc584e46ee1db45adb77ca9d1dcc62" + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-preset-env@6.0.6: + version "6.0.6" + resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-6.0.6.tgz#f728b9a43bf01c24eb06efeeff59de0b31ee1105" + dependencies: + autoprefixer "^9.1.5" + browserslist "^4.1.1" + caniuse-lite "^1.0.30000887" + cssdb "^3.2.1" + postcss "^7.0.2" + postcss-attribute-case-insensitive "^4.0.0" + postcss-color-functional-notation "^2.0.1" + postcss-color-hex-alpha "^5.0.2" + postcss-color-mod-function "^3.0.3" + postcss-color-rebeccapurple "^4.0.1" + postcss-custom-media "^7.0.4" + postcss-custom-properties "^8.0.5" + postcss-custom-selectors "^5.1.2" + postcss-dir-pseudo-class "^5.0.0" + postcss-env-function "^2.0.2" + postcss-focus-visible "^4.0.0" + postcss-focus-within "^3.0.0" + postcss-font-variant "^4.0.0" + postcss-gap-properties "^2.0.0" + postcss-image-set-function "^3.0.1" + postcss-initial "^3.0.0" + postcss-lab-function "^2.0.1" + postcss-logical "^3.0.0" + postcss-media-minmax "^4.0.0" + postcss-nesting "^7.0.0" + postcss-overflow-shorthand "^2.0.0" + postcss-page-break "^2.0.0" + postcss-place "^4.0.1" + postcss-pseudo-class-any-link "^6.0.0" + postcss-replace-overflow-wrap "^3.0.0" + postcss-selector-matches "^4.0.0" + postcss-selector-not "^4.0.0" + +postcss-pseudo-class-any-link@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz#2ed3eed393b3702879dec4a87032b210daeb04d1" dependencies: - postcss "^5.0.4" + postcss "^7.0.2" + postcss-selector-parser "^5.0.0-rc.3" + +postcss-reduce-initial@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.2.tgz#bac8e325d67510ee01fa460676dc8ea9e3b40f15" + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + +postcss-reduce-transforms@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.1.tgz#8600d5553bdd3ad640f43bff81eb52f8760d4561" + dependencies: + cssnano-util-get-match "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-replace-overflow-wrap@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz#61b360ffdaedca84c7c918d2b0f0d0ea559ab01c" + dependencies: + postcss "^7.0.2" + +postcss-safe-parser@4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-4.0.1.tgz#8756d9e4c36fdce2c72b091bbc8ca176ab1fcdea" + dependencies: + postcss "^7.0.0" + +postcss-selector-matches@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz#71c8248f917ba2cc93037c9637ee09c64436fcff" + dependencies: + balanced-match "^1.0.0" + postcss "^7.0.2" -postcss-reduce-transforms@^1.0.3: - version "1.0.4" - resolved "http://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz#ff76f4d8212437b31c298a42d2e1444025771ae1" +postcss-selector-not@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-4.0.0.tgz#c68ff7ba96527499e832724a2674d65603b645c0" dependencies: - has "^1.0.1" - postcss "^5.0.8" - postcss-value-parser "^3.0.1" + balanced-match "^1.0.0" + postcss "^7.0.2" -postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2: - version "2.2.3" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90" +postcss-selector-parser@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz#4f875f4afb0c96573d5cf4d74011aee250a7e865" dependencies: - flatten "^1.0.2" + dot-prop "^4.1.1" indexes-of "^1.0.1" uniq "^1.0.1" -postcss-svgo@^2.1.1: - version "2.1.6" - resolved "http://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz#b6df18aa613b666e133f08adb5219c2684ac108d" +postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4: + version "5.0.0-rc.4" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0-rc.4.tgz#ca5e77238bf152966378c13e91ad6d611568ea87" dependencies: - is-svg "^2.0.0" - postcss "^5.0.14" - postcss-value-parser "^3.2.3" - svgo "^0.7.0" + cssesc "^2.0.0" + indexes-of "^1.0.1" + uniq "^1.0.1" -postcss-unique-selectors@^2.0.2: - version "2.0.2" - resolved "http://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz#981d57d29ddcb33e7b1dfe1fd43b8649f933ca1d" +postcss-svgo@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.1.tgz#5628cdb38f015de6b588ce6d0bf0724b492b581d" dependencies: - alphanum-sort "^1.0.1" - postcss "^5.0.4" - uniqs "^2.0.0" - -postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15" + is-svg "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + svgo "^1.0.0" -postcss-zindex@^2.0.1: - version "2.2.0" - resolved "http://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz#d2109ddc055b91af67fc4cb3b025946639d2af22" +postcss-unique-selectors@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" dependencies: - has "^1.0.1" - postcss "^5.0.4" + alphanum-sort "^1.0.0" + postcss "^7.0.0" uniqs "^2.0.0" -postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.16: - version "5.2.18" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5" +postcss-value-parser@^3.0.0, postcss-value-parser@^3.3.0, postcss-value-parser@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" + +postcss-values-parser@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-2.0.0.tgz#1ba42cae31367c44f96721cb5eb99462bfb39705" dependencies: - chalk "^1.1.3" - js-base64 "^2.1.9" - source-map "^0.5.6" - supports-color "^3.2.3" + flatten "^1.0.2" + indexes-of "^1.0.1" + uniq "^1.0.1" -postcss@^6.0.0, postcss@^6.0.1, postcss@^6.0.13: +postcss@^6.0.1, postcss@^6.0.23: version "6.0.23" resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" dependencies: @@ -5814,18 +6914,26 @@ postcss@^6.0.0, postcss@^6.0.1, postcss@^6.0.13: source-map "^0.6.1" supports-color "^5.4.0" +postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.2, postcss@^7.0.5: + version "7.0.5" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.5.tgz#70e6443e36a6d520b0fd4e7593fcca3635ee9f55" + dependencies: + chalk "^2.4.1" + source-map "^0.6.1" + supports-color "^5.5.0" + prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" -prepend-http@^1.0.0, prepend-http@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - preserve@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" +prettier@^1.14.2: + version "1.14.3" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.14.3.tgz#90238dd4c0684b7edce5f83b0fb7328e48bd0895" + pretty-bytes@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-4.0.2.tgz#b2bf82e7350d65c6c33aa95aaa5a4f6327f61cd9" @@ -5837,14 +6945,14 @@ pretty-error@^2.0.2: renderkid "^2.0.1" utila "~0.4" -pretty-format@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-20.0.3.tgz#020e350a560a1fe1a98dc3beb6ccffb386de8b14" +pretty-format@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-23.6.0.tgz#5eaac8eeb6b33b987b7fe6097ea6a8a146ab5760" dependencies: - ansi-regex "^2.1.1" - ansi-styles "^3.0.0" + ansi-regex "^3.0.0" + ansi-styles "^3.2.0" -private@^0.1.6, private@^0.1.7, private@^0.1.8: +private@^0.1.6, private@^0.1.8: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" @@ -5857,14 +6965,18 @@ process@^0.11.10: resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" progress@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" + version "2.0.1" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.1.tgz#c9242169342b1c29d275889c95734621b1952e31" -promise@8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/promise/-/promise-8.0.1.tgz#e45d68b00a17647b6da711bf85ed6ed47208f450" +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + +promise@8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/promise/-/promise-8.0.2.tgz#9dcd0672192c589477d56891271bdc27547ae9f0" dependencies: - asap "~2.0.3" + asap "~2.0.6" promise@^7.1.1: version "7.3.1" @@ -5872,22 +6984,21 @@ promise@^7.1.1: dependencies: asap "~2.0.3" -prop-types@15.6.0: - version "15.6.0" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.0.tgz#ceaf083022fc46b4a35f69e13ef75aed0d639856" +prompts@^0.1.9: + version "0.1.14" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-0.1.14.tgz#a8e15c612c5c9ec8f8111847df3337c9cbd443b2" dependencies: - fbjs "^0.8.16" - loose-envify "^1.3.1" - object-assign "^4.1.1" + kleur "^2.0.1" + sisteransi "^0.1.1" -prop-types@^15.5.10, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2: +prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2: version "15.6.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102" dependencies: loose-envify "^1.3.1" object-assign "^4.1.1" -proxy-addr@~2.0.3: +proxy-addr@~2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.4.tgz#ecfc733bf22ff8c6f407fa275327b9ab67e48b93" dependencies: @@ -5917,37 +7028,48 @@ public-encrypt@^4.0.0: randombytes "^2.0.1" safe-buffer "^5.1.2" +pump@^2.0.0, pump@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@^1.3.3: + version "1.5.1" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + dependencies: + duplexify "^3.6.0" + inherits "^2.0.3" + pump "^2.0.0" + punycode@1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" +punycode@2.x.x, punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + punycode@^1.2.4, punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" -punycode@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - q@^1.1.2: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" -qs@6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" - -qs@~6.5.2: +qs@6.5.2, qs@~6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" -query-string@^4.1.0: - version "4.3.4" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" - dependencies: - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - querystring-es3@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" @@ -5957,15 +7079,21 @@ querystring@0.2.0: resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" querystringify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.0.0.tgz#fa3ed6e68eb15159457c89b37bc6472833195755" + version "2.1.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.0.tgz#7ded8dfbf7879dcc60d0a644ac6754b283ad17ef" -raf@3.4.0, raf@^3.4.0: +raf@3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.0.tgz#a28876881b4bc2ca9117d4138163ddb80f781575" dependencies: performance-now "^2.1.0" +raf@^3.4.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" + dependencies: + performance-now "^2.1.0" + railroad-diagrams@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz#eb7e6267548ddedfb899c1b90e57374559cddb7e" @@ -5978,8 +7106,8 @@ randexp@0.4.6: ret "~0.1.10" randomatic@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.0.tgz#36f2ca708e9e567f5ed2ec01949026d50aa10116" + version "3.1.1" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" dependencies: is-number "^4.0.0" kind-of "^6.0.0" @@ -6002,16 +7130,16 @@ range-parser@^1.0.3, range-parser@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" -raw-body@2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" +raw-body@2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3" dependencies: bytes "3.0.0" - http-errors "1.6.2" - iconv-lite "0.4.19" + http-errors "1.6.3" + iconv-lite "0.4.23" unpipe "1.0.0" -rc@^1.0.1, rc@^1.1.6, rc@^1.2.7: +rc@^1.2.7: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" dependencies: @@ -6020,41 +7148,57 @@ rc@^1.0.1, rc@^1.1.6, rc@^1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-dev-utils@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-5.0.2.tgz#7bb68d2c4f6ffe7ed1184c5b0124fcad692774d2" +react-app-polyfill@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/react-app-polyfill/-/react-app-polyfill-0.1.3.tgz#e57bb50f3751dac0e6b3ac27673812c68c679a1d" + dependencies: + core-js "2.5.7" + object-assign "4.1.1" + promise "8.0.2" + raf "3.4.0" + whatwg-fetch "3.0.0" + +react-dev-utils@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-6.1.1.tgz#a07e3e8923c4609d9f27e5af5207e3ca20724895" dependencies: + "@babel/code-frame" "7.0.0" address "1.0.3" - babel-code-frame "6.26.0" - chalk "1.1.3" - cross-spawn "5.1.0" + browserslist "4.1.1" + chalk "2.4.1" + cross-spawn "6.0.5" detect-port-alt "1.1.6" escape-string-regexp "1.0.5" - filesize "3.5.11" + filesize "3.6.1" + find-up "3.0.0" global-modules "1.0.0" - gzip-size "3.0.0" - inquirer "3.3.0" - is-root "1.0.0" - opn "5.2.0" - react-error-overlay "^4.0.1" - recursive-readdir "2.2.1" + globby "8.0.1" + gzip-size "5.0.0" + immer "1.7.2" + inquirer "6.2.0" + is-root "2.0.0" + loader-utils "1.1.0" + opn "5.4.0" + pkg-up "2.0.0" + react-error-overlay "^5.1.0" + recursive-readdir "2.2.2" shell-quote "1.6.1" sockjs-client "1.1.5" - strip-ansi "3.0.1" + strip-ansi "4.0.0" text-table "0.2.0" react-dom@^16.5.2: - version "16.5.2" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.5.2.tgz#b69ee47aa20bab5327b2b9d7c1fe2a30f2cfa9d7" + version "16.6.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.6.0.tgz#6375b8391e019a632a89a0988bce85f0cc87a92f" dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" prop-types "^15.6.2" - schedule "^0.5.0" + scheduler "^0.10.0" -react-error-overlay@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-4.0.1.tgz#417addb0814a90f3a7082eacba7cee588d00da89" +react-error-overlay@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-5.1.0.tgz#c516995a5652e7bfbed8b497910d5280df74a7e8" react-event-listener@^0.6.2: version "0.6.4" @@ -6064,34 +7208,25 @@ react-event-listener@^0.6.2: prop-types "^15.6.0" warning "^4.0.1" -react-is@^16.4.2, react-is@^16.5.2: - version "16.5.2" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.5.2.tgz#e2a7b7c3f5d48062eb769fcb123505eb928722e3" - -react-jss@^8.1.0: - version "8.6.1" - resolved "https://registry.yarnpkg.com/react-jss/-/react-jss-8.6.1.tgz#a06e2e1d2c4d91b4d11befda865e6c07fbd75252" - dependencies: - hoist-non-react-statics "^2.5.0" - jss "^9.7.0" - jss-preset-default "^4.3.0" - prop-types "^15.6.0" - theming "^1.3.0" +react-is@^16.3.2, react-is@^16.5.2, react-is@^16.6.0: + version "16.6.0" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.6.0.tgz#456645144581a6e99f6816ae2bd24ee94bdd0c01" -react-lifecycles-compat@^3.0.2, react-lifecycles-compat@^3.0.4: +react-lifecycles-compat@^3.0.0, react-lifecycles-compat@^3.0.2, react-lifecycles-compat@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" react-redux@^5.0.7: - version "5.0.7" - resolved "http://registry.npmjs.org/react-redux/-/react-redux-5.0.7.tgz#0dc1076d9afb4670f993ffaef44b8f8c1155a4c8" + version "5.1.0" + resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-5.1.0.tgz#948b1e2686473d1999092bcfb32d0dc43d33f667" dependencies: - hoist-non-react-statics "^2.5.0" - invariant "^2.0.0" - lodash "^4.17.5" - lodash-es "^4.17.5" + "@babel/runtime" "^7.1.2" + hoist-non-react-statics "^3.0.0" + invariant "^2.2.4" loose-envify "^1.1.0" - prop-types "^15.6.0" + prop-types "^15.6.1" + react-is "^16.6.0" + react-lifecycles-compat "^3.0.0" react-router-dom@^4.3.1: version "4.3.1" @@ -6116,59 +7251,68 @@ react-router@^4.3.1: prop-types "^15.6.1" warning "^4.0.1" -react-scripts@1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-1.1.5.tgz#3041610ab0826736b52197711a4c4e3756e97768" - dependencies: - autoprefixer "7.1.6" - babel-core "6.26.0" - babel-eslint "7.2.3" - babel-jest "20.0.3" - babel-loader "7.1.2" - babel-preset-react-app "^3.1.2" - babel-runtime "6.26.0" - case-sensitive-paths-webpack-plugin "2.1.1" - chalk "1.1.3" - css-loader "0.28.7" - dotenv "4.0.0" +react-scripts@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-2.1.1.tgz#c2959a756b0b61d3090adece0d7aedd324dff8a5" + dependencies: + "@babel/core" "7.1.0" + "@svgr/webpack" "2.4.1" + babel-core "7.0.0-bridge.0" + babel-eslint "9.0.0" + babel-jest "23.6.0" + babel-loader "8.0.4" + babel-plugin-named-asset-import "^0.2.3" + babel-preset-react-app "^6.1.0" + bfj "6.1.1" + case-sensitive-paths-webpack-plugin "2.1.2" + chalk "2.4.1" + css-loader "1.0.0" + dotenv "6.0.0" dotenv-expand "4.2.0" - eslint "4.10.0" - eslint-config-react-app "^2.1.0" - eslint-loader "1.9.0" - eslint-plugin-flowtype "2.39.1" - eslint-plugin-import "2.8.0" - eslint-plugin-jsx-a11y "5.1.1" - eslint-plugin-react "7.4.0" - extract-text-webpack-plugin "3.0.2" - file-loader "1.1.5" - fs-extra "3.0.1" - html-webpack-plugin "2.29.0" - jest "20.0.4" - object-assign "4.1.1" - postcss-flexbugs-fixes "3.2.0" - postcss-loader "2.0.8" - promise "8.0.1" - raf "3.4.0" - react-dev-utils "^5.0.2" - resolve "1.6.0" - style-loader "0.19.0" - sw-precache-webpack-plugin "0.11.4" - url-loader "0.6.2" - webpack "3.8.1" - webpack-dev-server "2.11.3" - webpack-manifest-plugin "1.3.2" - whatwg-fetch "2.0.3" + eslint "5.6.0" + eslint-config-react-app "^3.0.5" + eslint-loader "2.1.1" + eslint-plugin-flowtype "2.50.1" + eslint-plugin-import "2.14.0" + eslint-plugin-jsx-a11y "6.1.2" + eslint-plugin-react "7.11.1" + file-loader "2.0.0" + fork-ts-checker-webpack-plugin-alt "0.4.14" + fs-extra "7.0.0" + html-webpack-plugin "4.0.0-alpha.2" + identity-obj-proxy "3.0.0" + jest "23.6.0" + jest-pnp-resolver "1.0.1" + jest-resolve "23.6.0" + mini-css-extract-plugin "0.4.3" + optimize-css-assets-webpack-plugin "5.0.1" + pnp-webpack-plugin "1.1.0" + postcss-flexbugs-fixes "4.1.0" + postcss-loader "3.0.0" + postcss-preset-env "6.0.6" + postcss-safe-parser "4.0.1" + react-app-polyfill "^0.1.3" + react-dev-utils "^6.1.1" + resolve "1.8.1" + sass-loader "7.1.0" + style-loader "0.23.0" + terser-webpack-plugin "1.1.0" + url-loader "1.1.1" + webpack "4.19.1" + webpack-dev-server "3.1.9" + webpack-manifest-plugin "2.0.4" + workbox-webpack-plugin "3.6.3" optionalDependencies: - fsevents "^1.1.3" + fsevents "1.2.4" react-test-renderer@^16.0.0-0, react-test-renderer@^16.5.2: - version "16.5.2" - resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.5.2.tgz#92e9d2c6f763b9821b2e0b22f994ee675068b5ae" + version "16.6.0" + resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.6.0.tgz#fe490096bed55c3f4e92c023da3b89f9d03fceb3" dependencies: object-assign "^4.1.1" prop-types "^15.6.2" - react-is "^16.5.2" - schedule "^0.5.0" + react-is "^16.6.0" + scheduler "^0.10.0" react-transition-group@^2.2.1: version "2.5.0" @@ -6180,13 +7324,13 @@ react-transition-group@^2.2.1: react-lifecycles-compat "^3.0.4" react@^16.5.2: - version "16.5.2" - resolved "https://registry.yarnpkg.com/react/-/react-16.5.2.tgz#19f6b444ed139baa45609eee6dc3d318b3895d42" + version "16.6.0" + resolved "https://registry.yarnpkg.com/react/-/react-16.6.0.tgz#b34761cfaf3e30f5508bc732fb4736730b7da246" dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" prop-types "^15.6.2" - schedule "^0.5.0" + scheduler "^0.10.0" read-pkg-up@^1.0.1: version "1.0.1" @@ -6218,16 +7362,7 @@ read-pkg@^2.0.0: normalize-package-data "^2.3.2" path-type "^2.0.0" -readable-stream@1.0: - version "1.0.34" - resolved "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.3, readable-stream@^2.3.6: +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.3, readable-stream@^2.3.6: version "2.3.6" resolved "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" dependencies: @@ -6239,6 +7374,23 @@ readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable string_decoder "~1.1.1" util-deprecate "~1.0.1" +readable-stream@1.0: + version "1.0.34" + resolved "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +"readable-stream@2 || 3", readable-stream@^3.0.6: + version "3.0.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.0.6.tgz#351302e4c68b5abd6a2ed55376a7f9a25be3057a" + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + readdirp@^2.0.0: version "2.2.1" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" @@ -6247,6 +7399,12 @@ readdirp@^2.0.0: micromatch "^3.1.10" readable-stream "^2.0.2" +realpath-native@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.0.2.tgz#cd51ce089b513b45cf9b1516c82989b51ccc6560" + dependencies: + util.promisify "^1.0.0" + "recompose@0.28.0 - 0.30.0": version "0.30.0" resolved "https://registry.yarnpkg.com/recompose/-/recompose-0.30.0.tgz#82773641b3927e8c7d24a0d87d65aeeba18aabd0" @@ -6269,32 +7427,11 @@ recompose@^0.29.0: react-lifecycles-compat "^3.0.2" symbol-observable "^1.0.4" -recursive-readdir@2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.1.tgz#90ef231d0778c5ce093c9a48d74e5c5422d13a99" - dependencies: - minimatch "3.0.3" - -redent@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" - dependencies: - indent-string "^2.1.0" - strip-indent "^1.0.1" - -reduce-css-calc@^1.2.6: - version "1.3.0" - resolved "http://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716" - dependencies: - balanced-match "^0.4.2" - math-expression-evaluator "^1.2.14" - reduce-function-call "^1.0.1" - -reduce-function-call@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.2.tgz#5a200bf92e0e37751752fe45b0ab330fd4b6be99" +recursive-readdir@2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.2.tgz#9946fb3274e1628de6e36b2f6714953b4845094f" dependencies: - balanced-match "^0.4.2" + minimatch "3.0.4" redux-mock-store@^1.5.3: version "1.5.3" @@ -6318,17 +7455,23 @@ redux-saga-test-plan@^3.7.0: util-inspect "^0.1.8" redux-saga@^0.16.0: - version "0.16.0" - resolved "https://registry.yarnpkg.com/redux-saga/-/redux-saga-0.16.0.tgz#0a231db0a1489301dd980f6f2f88d8ced418f724" + version "0.16.2" + resolved "https://registry.yarnpkg.com/redux-saga/-/redux-saga-0.16.2.tgz#993662e86bc945d8509ac2b8daba3a8c615cc971" redux@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/redux/-/redux-4.0.0.tgz#aa698a92b729315d22b34a0553d7e6533555cc03" + version "4.0.1" + resolved "https://registry.yarnpkg.com/redux/-/redux-4.0.1.tgz#436cae6cc40fbe4727689d7c8fae44808f1bfef5" dependencies: - loose-envify "^1.1.0" + loose-envify "^1.4.0" symbol-observable "^1.2.0" -regenerate@^1.2.1: +regenerate-unicode-properties@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-7.0.0.tgz#107405afcc4a190ec5ed450ecaa00ed0cafa7a4c" + dependencies: + regenerate "^1.4.0" + +regenerate@^1.2.1, regenerate@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" @@ -6340,12 +7483,10 @@ regenerator-runtime@^0.12.0: version "0.12.1" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de" -regenerator-transform@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" +regenerator-transform@^0.13.3: + version "0.13.3" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.13.3.tgz#264bd9ff38a8ce24b06e0636496b2c856b57bcbb" dependencies: - babel-runtime "^6.18.0" - babel-types "^6.19.0" private "^0.1.6" regex-cache@^0.4.2: @@ -6361,6 +7502,10 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" +regexpp@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" + regexpu-core@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" @@ -6369,30 +7514,24 @@ regexpu-core@^1.0.0: regjsgen "^0.2.0" regjsparser "^0.1.4" -regexpu-core@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" - -registry-auth-token@^3.0.1: - version "3.3.2" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.2.tgz#851fd49038eecb586911115af845260eec983f20" - dependencies: - rc "^1.1.6" - safe-buffer "^5.0.1" - -registry-url@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" +regexpu-core@^4.1.3, regexpu-core@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.2.0.tgz#a3744fa03806cffe146dea4421a3e73bdcc47b1d" dependencies: - rc "^1.0.1" + regenerate "^1.4.0" + regenerate-unicode-properties "^7.0.0" + regjsgen "^0.4.0" + regjsparser "^0.3.0" + unicode-match-property-ecmascript "^1.0.4" + unicode-match-property-value-ecmascript "^1.0.2" regjsgen@^0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" + resolved "http://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" + +regjsgen@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.4.0.tgz#c1eb4c89a209263f8717c782591523913ede2561" regjsparser@^0.1.4: version "0.1.5" @@ -6400,6 +7539,12 @@ regjsparser@^0.1.4: dependencies: jsesc "~0.5.0" +regjsparser@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.3.0.tgz#3c326da7fcfd69fa0d332575a41c8c0cdf588c96" + dependencies: + jsesc "~0.5.0" + relateurl@0.2.x: version "0.2.7" resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" @@ -6432,7 +7577,21 @@ repeating@^2.0.0: dependencies: is-finite "^1.0.0" -request@^2.79.0: +request-promise-core@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.1.tgz#3eee00b2c5aa83239cfb04c5700da36f81cd08b6" + dependencies: + lodash "^4.13.1" + +request-promise-native@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.5.tgz#5281770f68e0c9719e5163fd3fab482215f4fda5" + dependencies: + request-promise-core "1.1.1" + stealthy-require "^1.1.0" + tough-cookie ">=2.3.3" + +request@^2.87.0, request@^2.88.0: version "2.88.0" resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" dependencies: @@ -6461,9 +7620,9 @@ require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" -require-from-string@^1.1.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-1.2.1.tgz#529c9ccef27380adfec9a2f965b649bbee636418" +require-from-string@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" require-main-filename@^1.0.1: version "1.0.1" @@ -6513,13 +7672,7 @@ resolve@1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" -resolve@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.6.0.tgz#0fbd21278b27b4004481c395349e7aba60a9ff5c" - dependencies: - path-parse "^1.0.5" - -resolve@^1.3.2, resolve@^1.5.0: +resolve@1.8.1, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.6.0, resolve@^1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" dependencies: @@ -6536,13 +7689,15 @@ ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" -right-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" - dependencies: - align-text "^0.1.1" +rgb-regex@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" + +rgba-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" -rimraf@^2.2.8, rimraf@^2.6.1: +rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" dependencies: @@ -6562,25 +7717,27 @@ rst-selector-parser@^2.2.3: lodash.flattendeep "^4.4.0" nearley "^2.7.10" +rsvp@^3.3.3: + version "3.6.2" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a" + run-async@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" dependencies: is-promise "^2.1.0" -rx-lite-aggregates@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" +run-queue@^1.0.0, run-queue@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" dependencies: - rx-lite "*" + aproba "^1.1.1" -rx-lite@*, rx-lite@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" - -safe-buffer@5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" +rxjs@^6.1.0: + version "6.3.3" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.3.3.tgz#3c6a7fa420e844a81390fb1158a9ec614f4bad55" + dependencies: + tslib "^1.9.0" safe-buffer@5.1.2, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" @@ -6588,7 +7745,7 @@ safe-buffer@5.1.2, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, s safe-regex@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + resolved "http://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" dependencies: ret "~0.1.10" @@ -6596,53 +7753,77 @@ safe-regex@^1.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" -sane@~1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/sane/-/sane-1.6.0.tgz#9610c452307a135d29c1fdfe2547034180c46775" +sane@^2.0.0: + version "2.5.2" + resolved "https://registry.yarnpkg.com/sane/-/sane-2.5.2.tgz#b4dc1861c21b427e929507a3e751e2a2cb8ab3fa" dependencies: - anymatch "^1.3.0" + anymatch "^2.0.0" + capture-exit "^1.2.0" exec-sh "^0.2.0" - fb-watchman "^1.8.0" - minimatch "^3.0.2" + fb-watchman "^2.0.0" + micromatch "^3.1.4" minimist "^1.1.1" walker "~1.0.5" - watch "~0.10.0" + watch "~0.18.0" + optionalDependencies: + fsevents "^1.2.3" + +sass-loader@7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-7.1.0.tgz#16fd5138cb8b424bf8a759528a1972d72aad069d" + dependencies: + clone-deep "^2.0.1" + loader-utils "^1.0.1" + lodash.tail "^4.1.1" + neo-async "^2.5.0" + pify "^3.0.0" + semver "^5.5.0" -sax@^1.2.1, sax@^1.2.4, sax@~1.2.1: +sax@^1.2.4, sax@~1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" -schedule@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/schedule/-/schedule-0.5.0.tgz#c128fffa0b402488b08b55ae74bb9df55cc29cc8" +saxes@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-3.1.3.tgz#334ab3b802a465ccda96fff9bdefbd505546ffa8" + dependencies: + xmlchars "^1.3.1" + +scheduler@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.10.0.tgz#7988de90fe7edccc774ea175a783e69c40c521e1" dependencies: + loose-envify "^1.1.0" object-assign "^4.1.1" -schema-utils@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.3.0.tgz#f5877222ce3e931edae039f17eb3716e7137f8cf" +schema-utils@^0.4.4, schema-utils@^0.4.5: + version "0.4.7" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187" + 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" dependencies: - ajv "^5.0.0" + ajv "^6.1.0" + ajv-errors "^1.0.0" + ajv-keywords "^3.1.0" select-hose@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" selfsigned@^1.9.1: - version "1.10.3" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.3.tgz#d628ecf9e3735f84e8bafba936b3cf85bea43823" + version "1.10.4" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.4.tgz#cdd7eccfca4ed7635d47a08bf2d5d3074092e2cd" dependencies: node-forge "0.7.5" -semver-diff@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" - dependencies: - semver "^5.0.3" - -"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1: - version "5.5.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.1.tgz#7dfdd8814bdb7cabc7be0fb1d734cfb66c940477" +"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1: + version "5.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" send@0.16.2: version "0.16.2" @@ -6662,6 +7843,10 @@ send@0.16.2: range-parser "~1.2.0" statuses "~1.4.0" +serialize-javascript@^1.4.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.5.0.tgz#1aa336162c88a890ddad5384baebc93a655161fe" + serve-index@^1.7.2: version "1.9.1" resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" @@ -6683,10 +7868,6 @@ serve-static@1.13.2: parseurl "~1.3.2" send "0.16.2" -serviceworker-cache-polyfill@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/serviceworker-cache-polyfill/-/serviceworker-cache-polyfill-4.0.0.tgz#de19ee73bef21ab3c0740a37b33db62464babdeb" - set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" @@ -6713,10 +7894,6 @@ setimmediate@^1.0.4, setimmediate@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" -setprototypeof@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" - setprototypeof@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" @@ -6728,6 +7905,23 @@ sha.js@^2.4.0, sha.js@^2.4.8: inherits "^2.0.1" safe-buffer "^5.0.1" +shallow-clone@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-0.1.2.tgz#5909e874ba77106d73ac414cfec1ffca87d97060" + dependencies: + is-extendable "^0.1.1" + kind-of "^2.0.1" + lazy-cache "^0.2.3" + mixin-object "^2.0.1" + +shallow-clone@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-1.0.0.tgz#4480cd06e882ef68b2ad88a3ea54832e2c48b571" + dependencies: + is-extendable "^0.1.1" + kind-of "^5.0.0" + mixin-object "^2.0.1" + shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" @@ -6755,6 +7949,16 @@ signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + dependencies: + is-arrayish "^0.3.1" + +sisteransi@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-0.1.1.tgz#5431447d5f7d1675aac667ccd0b865a4994cb3ce" + slash@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" @@ -6810,15 +8014,9 @@ sockjs@0.3.19: faye-websocket "^0.10.0" uuid "^3.0.1" -sort-keys@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" - dependencies: - is-plain-obj "^1.0.0" - source-list-map@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" source-map-resolve@^0.5.0: version "0.5.2" @@ -6836,21 +8034,28 @@ source-map-support@^0.4.15: dependencies: source-map "^0.5.6" +source-map-support@^0.5.6, source-map-support@~0.5.6: + version "0.5.9" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.9.tgz#41bc953b2534267ea2d605bccfa7bfa3111ced5f" + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + source-map-url@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" -source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1: +source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" -source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" spdx-correct@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.1.tgz#434434ff9d1726b4d9f4219d1004813d80639e30" + version "3.0.2" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.2.tgz#19bb409e91b47b1ad54159243f7312a858db3c2e" dependencies: spdx-expression-parse "^3.0.0" spdx-license-ids "^3.0.0" @@ -6867,12 +8072,12 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.1.tgz#e2a303236cac54b04031fa7a5a79c7e701df852f" + version "3.0.2" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.2.tgz#a59efc09784c2a5bada13cfeaf5c75dd214044d2" spdy-transport@^2.0.18: - version "2.1.0" - resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-2.1.0.tgz#4bbb15aaffed0beefdd56ad61dbdc8ba3e2cb7a1" + version "2.1.1" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-2.1.1.tgz#c54815d73858aadd06ce63001e7d25fa6441623b" dependencies: debug "^2.6.8" detect-node "^2.0.3" @@ -6904,20 +8109,39 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" sshpk@^1.7.0: - version "1.14.2" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.2.tgz#c6fc61648a3d9c4e764fd3fcdf4ea105e492ba98" + version "1.15.2" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.15.2.tgz#c946d6bd9b1a39d0e8635763f5242d6ed6dcb629" dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" - dashdash "^1.12.0" - getpass "^0.1.1" - safer-buffer "^2.0.2" - optionalDependencies: bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" ecc-jsbn "~0.1.1" + getpass "^0.1.1" jsbn "~0.1.0" + safer-buffer "^2.0.2" tweetnacl "~0.14.0" +ssri@^5.2.4: + version "5.3.0" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06" + dependencies: + safe-buffer "^5.1.1" + +ssri@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" + dependencies: + figgy-pudding "^3.5.1" + +stable@~0.1.6: + version "0.1.8" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + +stack-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.1.tgz#d4f33ab54e8e38778b0ca5cfd3b3afb12db68620" + static-extend@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" @@ -6925,7 +8149,7 @@ static-extend@^0.1.1: define-property "^0.2.5" object-copy "^0.1.0" -"statuses@>= 1.3.1 < 2", "statuses@>= 1.4.0 < 2": +"statuses@>= 1.4.0 < 2": version "1.5.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" @@ -6933,6 +8157,10 @@ statuses@~1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" +stealthy-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + stream-browserify@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" @@ -6940,6 +8168,13 @@ stream-browserify@^2.0.1: inherits "~2.0.1" readable-stream "^2.0.2" +stream-each@^1.1.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" + dependencies: + end-of-stream "^1.1.0" + stream-shift "^1.0.0" + stream-http@^2.7.2: version "2.8.3" resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" @@ -6950,17 +8185,18 @@ stream-http@^2.7.2: to-arraybuffer "^1.0.0" xtend "^4.0.0" -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" +stream-shift@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" -string-length@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-1.0.1.tgz#56970fb1c38558e9e70b728bf3de269ac45adfac" +string-length@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" dependencies: - strip-ansi "^3.0.0" + astral-regex "^1.0.0" + strip-ansi "^4.0.0" -string-width@^1.0.1, string-width@^1.0.2: +string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" dependencies: @@ -6983,7 +8219,7 @@ string.prototype.trim@^1.1.2: es-abstract "^1.5.0" function-bind "^1.0.2" -string_decoder@^1.0.0, string_decoder@~1.1.1: +string_decoder@^1.0.0, string_decoder@^1.1.1, string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" dependencies: @@ -6993,18 +8229,26 @@ string_decoder@~0.10.x: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" -strip-ansi@3.0.1, strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" +stringify-object@^3.2.2: + version "3.3.0" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" dependencies: - ansi-regex "^2.0.0" + get-own-enumerable-property-symbols "^3.0.0" + is-obj "^1.0.1" + is-regexp "^1.0.0" -strip-ansi@^4.0.0: +strip-ansi@4.0.0, strip-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" dependencies: ansi-regex "^3.0.0" +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + dependencies: + ansi-regex "^2.0.0" + strip-bom@3.0.0, strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -7015,90 +8259,70 @@ strip-bom@^2.0.0: dependencies: is-utf8 "^0.2.0" +strip-comments@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/strip-comments/-/strip-comments-1.0.2.tgz#82b9c45e7f05873bee53f37168af930aa368679d" + dependencies: + babel-extract-comments "^1.0.0" + babel-plugin-transform-object-rest-spread "^6.26.0" + strip-eof@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - -strip-indent@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" - dependencies: - get-stdin "^4.0.1" + resolved "http://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" -strip-json-comments@~2.0.1: +strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" -style-loader@0.19.0: - version "0.19.0" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.19.0.tgz#7258e788f0fee6a42d710eaf7d6c2412a4c50759" +style-loader@0.23.0: + version "0.23.0" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.23.0.tgz#8377fefab68416a2e05f1cabd8c3a3acfcce74f1" dependencies: - loader-utils "^1.0.2" - schema-utils "^0.3.0" + loader-utils "^1.1.0" + schema-utils "^0.4.5" + +stylehacks@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.1.tgz#3186595d047ab0df813d213e51c8b94e0b9010f2" + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" -supports-color@^3.1.2, supports-color@^3.2.3: +supports-color@^3.1.2: version "3.2.3" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" dependencies: has-flag "^1.0.0" -supports-color@^4.2.1: - version "4.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" - dependencies: - has-flag "^2.0.0" - -supports-color@^5.1.0, supports-color@^5.3.0, supports-color@^5.4.0: +supports-color@^5.1.0, supports-color@^5.3.0, supports-color@^5.4.0, supports-color@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" dependencies: has-flag "^3.0.0" -svgo@^0.7.0: - version "0.7.2" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5" +svgo@^1.0.0, svgo@^1.0.5: + version "1.1.1" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.1.1.tgz#12384b03335bcecd85cfa5f4e3375fed671cb985" dependencies: - coa "~1.0.1" + coa "~2.0.1" colors "~1.1.2" - csso "~2.3.1" - js-yaml "~3.7.0" + css-select "^2.0.0" + css-select-base-adapter "~0.1.0" + css-tree "1.0.0-alpha.28" + css-url-regex "^1.1.0" + csso "^3.5.0" + js-yaml "^3.12.0" mkdirp "~0.5.1" - sax "~1.2.1" - whet.extend "~0.9.9" - -sw-precache-webpack-plugin@0.11.4: - version "0.11.4" - resolved "https://registry.yarnpkg.com/sw-precache-webpack-plugin/-/sw-precache-webpack-plugin-0.11.4.tgz#a695017e54eed575551493a519dc1da8da2dc5e0" - dependencies: - del "^2.2.2" - sw-precache "^5.1.1" - uglify-js "^3.0.13" - -sw-precache@^5.1.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/sw-precache/-/sw-precache-5.2.1.tgz#06134f319eec68f3b9583ce9a7036b1c119f7179" - dependencies: - dom-urls "^1.1.0" - es6-promise "^4.0.5" - glob "^7.1.1" - lodash.defaults "^4.2.0" - lodash.template "^4.4.0" - meow "^3.7.0" - mkdirp "^0.5.1" - pretty-bytes "^4.0.2" - sw-toolbox "^3.4.0" - update-notifier "^2.3.0" - -sw-toolbox@^3.4.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/sw-toolbox/-/sw-toolbox-3.6.0.tgz#26df1d1c70348658e4dea2884319149b7b3183b5" - dependencies: - path-to-regexp "^1.0.1" - serviceworker-cache-polyfill "^4.0.0" + object.values "^1.0.4" + sax "~1.2.4" + stable "~0.1.6" + unquote "~1.1.1" + util.promisify "~1.0.0" symbol-observable@1.0.4: version "1.0.4" @@ -7108,11 +8332,11 @@ symbol-observable@^1.0.4, symbol-observable@^1.1.0, symbol-observable@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" -symbol-tree@^3.2.1: +symbol-tree@^3.2.2: version "3.2.2" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" -table@^4.0.1: +table@^4.0.3: version "4.0.3" resolved "http://registry.npmjs.org/table/-/table-4.0.3.tgz#00b5e2b602f1794b9acaf9ca908a76386a7813bc" dependencies: @@ -7123,27 +8347,42 @@ table@^4.0.1: slice-ansi "1.0.0" string-width "^2.1.1" -tapable@^0.2.7: - version "0.2.8" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22" +tapable@^1.0.0, tapable@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.0.tgz#0d076a172e3d9ba088fd2272b2668fb8d194b78c" tar@^4: - version "4.4.6" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.6.tgz#63110f09c00b4e60ac8bcfe1bf3c8660235fbc9b" + version "4.4.7" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.7.tgz#14df45023ffdcd0c233befa2fc01ebb76ee39e7c" dependencies: - chownr "^1.0.1" + chownr "^1.1.1" fs-minipass "^1.2.5" - minipass "^2.3.3" - minizlib "^1.1.0" + minipass "^2.3.4" + minizlib "^1.1.1" mkdirp "^0.5.0" safe-buffer "^5.1.2" yallist "^3.0.2" -term-size@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" +terser-webpack-plugin@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.1.0.tgz#cf7c25a1eee25bf121f4a587bb9e004e3f80e528" dependencies: - execa "^0.7.0" + cacache "^11.0.2" + find-cache-dir "^2.0.0" + schema-utils "^1.0.0" + serialize-javascript "^1.4.0" + source-map "^0.6.1" + terser "^3.8.1" + webpack-sources "^1.1.0" + worker-farm "^1.5.2" + +terser@^3.8.1: + version "3.10.11" + resolved "https://registry.yarnpkg.com/terser/-/terser-3.10.11.tgz#e063da74b194dde9faf0a561f3a438c549d2da3f" + dependencies: + commander "~2.17.1" + source-map "~0.6.1" + source-map-support "~0.5.6" test-exclude@^4.2.1: version "4.2.3" @@ -7155,38 +8394,28 @@ test-exclude@^4.2.1: read-pkg-up "^1.0.1" require-main-filename "^1.0.1" -text-table@0.2.0, text-table@~0.2.0: +text-table@0.2.0, text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" -theming@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/theming/-/theming-1.3.0.tgz#286d5bae80be890d0adc645e5ca0498723725bdc" - dependencies: - brcast "^3.0.1" - is-function "^1.0.1" - is-plain-object "^2.0.1" - prop-types "^15.5.8" +throat@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" -throat@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/throat/-/throat-3.2.0.tgz#50cb0670edbc40237b9e347d7e1f88e4620af836" +through2@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.4.tgz#e8362dec238b7590f5743b060342f27b452f4450" + dependencies: + readable-stream "2 || 3" + xtend "~4.0.1" through@^2.3.6: version "2.3.8" resolved "http://registry.npmjs.org/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" thunky@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.0.2.tgz#a862e018e3fb1ea2ec3fce5d55605cf57f247371" - -time-stamp@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-2.1.0.tgz#6c5c0b2bc835a244616abcfddf81ce13a1975c9f" - -timed-out@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + version "1.0.3" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.0.3.tgz#f5df732453407b09191dae73e2a8cc73f381a826" timers-browserify@^2.0.4: version "2.0.10" @@ -7194,6 +8423,10 @@ timers-browserify@^2.0.4: dependencies: setimmediate "^1.0.4" +timsort@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" + tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -7212,6 +8445,10 @@ to-fast-properties@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + to-object-path@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" @@ -7234,29 +8471,37 @@ to-regex@^3.0.1, to-regex@^3.0.2: regex-not "^1.0.2" safe-regex "^1.1.0" -toposort@^1.0.0: - version "1.0.7" - resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029" +topo@2.x.x: + version "2.0.2" + resolved "http://registry.npmjs.org/topo/-/topo-2.0.2.tgz#cd5615752539057c0dc0491a621c3bc6fbe1d182" + dependencies: + hoek "4.x.x" -tough-cookie@^2.3.2, tough-cookie@~2.4.3: +tough-cookie@>=2.3.3, tough-cookie@^2.3.4, tough-cookie@^2.4.3, tough-cookie@~2.4.3: version "2.4.3" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" dependencies: psl "^1.1.24" punycode "^1.4.1" -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - -trim-newlines@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + dependencies: + punycode "^2.1.0" trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" +tryer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" + +tslib@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" + tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" @@ -7277,7 +8522,7 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" -type-is@~1.6.15, type-is@~1.6.16: +type-is@~1.6.16: version "1.6.16" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" dependencies: @@ -7289,41 +8534,59 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" ua-parser-js@^0.7.18: - version "0.7.18" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.18.tgz#a7bfd92f56edfb117083b69e31d2aa8882d4b1ed" + version "0.7.19" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.19.tgz#94151be4c0a7fb1d001af7022fdaca4642659e4b" + +uglify-es@^3.3.4: + version "3.3.9" + resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677" + dependencies: + commander "~2.13.0" + source-map "~0.6.1" -uglify-js@3.4.x, uglify-js@^3.0.13, uglify-js@^3.1.4: +uglify-js@3.4.x, uglify-js@^3.1.4: version "3.4.9" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.9.tgz#af02f180c1207d76432e473ed24a28f4a782bae3" dependencies: commander "~2.17.1" source-map "~0.6.1" -uglify-js@^2.8.29: - version "2.8.29" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" - dependencies: - source-map "~0.5.1" - yargs "~3.10.0" - optionalDependencies: - uglify-to-browserify "~1.0.0" - -uglify-to-browserify@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" - -uglifyjs-webpack-plugin@^0.4.6: - version "0.4.6" - resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz#b951f4abb6bd617e66f63eb891498e391763e309" +uglifyjs-webpack-plugin@^1.2.4: + version "1.3.0" + resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz#75f548160858163a08643e086d5fefe18a5d67de" dependencies: - source-map "^0.5.6" - uglify-js "^2.8.29" - webpack-sources "^1.0.1" + cacache "^10.0.4" + find-cache-dir "^1.0.0" + schema-utils "^0.4.5" + serialize-javascript "^1.4.0" + source-map "^0.6.1" + uglify-es "^3.3.4" + webpack-sources "^1.1.0" + worker-farm "^1.5.2" underscore@~1.4.4: version "1.4.4" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.4.4.tgz#61a6a32010622afa07963bf325203cf12239d604" +unicode-canonical-property-names-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" + +unicode-match-property-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" + dependencies: + unicode-canonical-property-names-ecmascript "^1.0.4" + unicode-property-aliases-ecmascript "^1.0.4" + +unicode-match-property-value-ecmascript@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.2.tgz#9f1dc76926d6ccf452310564fd834ace059663d4" + +unicode-property-aliases-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz#5a533f31b4317ea76f17d807fa0d116546111dd0" + union-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" @@ -7341,11 +8604,17 @@ uniqs@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" -unique-string@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" +unique-filename@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.1.tgz#5e9edc6d1ce8fb264db18a507ef9bd8544451ca6" dependencies: - crypto-random-string "^1.0.0" + imurmurhash "^0.1.4" universalify@^0.1.0: version "0.1.2" @@ -7355,6 +8624,10 @@ unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" +unquote@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" + unset-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" @@ -7362,29 +8635,10 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" -unzip-response@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" - upath@^1.0.5: version "1.1.0" resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd" -update-notifier@^2.3.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" - dependencies: - boxen "^1.2.1" - chalk "^2.0.1" - configstore "^3.0.0" - import-lazy "^2.1.0" - is-ci "^1.0.10" - is-installed-globally "^0.1.0" - is-npm "^1.0.0" - latest-version "^3.0.0" - semver-diff "^2.0.0" - xdg-basedir "^3.0.0" - upper-case@^1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" @@ -7395,31 +8649,21 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -urijs@^1.16.1: - version "1.19.1" - resolved "https://registry.yarnpkg.com/urijs/-/urijs-1.19.1.tgz#5b0ff530c0cbde8386f6342235ba5ca6e995d25a" - urix@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" -url-loader@0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-0.6.2.tgz#a007a7109620e9d988d14bce677a1decb9a993f7" - dependencies: - loader-utils "^1.0.2" - mime "^1.4.1" - schema-utils "^0.3.0" - -url-parse-lax@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" +url-loader@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-1.1.1.tgz#4d1f3b4f90dde89f02c008e662d604d7511167c1" dependencies: - prepend-http "^1.0.1" + loader-utils "^1.1.0" + mime "^2.0.3" + schema-utils "^1.0.0" url-parse@^1.1.8, url-parse@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.3.tgz#bfaee455c889023219d757e045fa6a684ec36c15" + version "1.4.4" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.4.tgz#cac1556e95faa0303691fec5cf9d5a1bc34648f8" dependencies: querystringify "^2.0.0" requires-port "^1.0.0" @@ -7435,7 +8679,7 @@ use@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" -util-deprecate@~1.0.1: +util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -7451,9 +8695,16 @@ util-inspect@^0.1.8: json3 "3.3.0" object-keys "0.5.0" +util.promisify@1.0.0, util.promisify@^1.0.0, util.promisify@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" + dependencies: + define-properties "^1.1.2" + object.getownpropertydescriptors "^2.0.3" + util@0.10.3: version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + resolved "http://registry.npmjs.org/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" dependencies: inherits "2.0.1" @@ -7508,6 +8759,20 @@ vm-browserify@0.0.4: dependencies: indexof "0.0.1" +w3c-hr-time@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045" + dependencies: + browser-process-hrtime "^0.1.2" + +w3c-xmlserializer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-1.0.0.tgz#d23e20de595b892056f20a359fc2622908d48695" + dependencies: + domexception "^1.0.1" + webidl-conversions "^4.0.2" + xml-name-validator "^3.0.0" + walker@~1.0.5: version "1.0.7" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" @@ -7526,11 +8791,14 @@ warning@^4.0.1: dependencies: loose-envify "^1.0.0" -watch@~0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/watch/-/watch-0.10.0.tgz#77798b2da0f9910d595f1ace5b0c2258521f21dc" +watch@~0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/watch/-/watch-0.18.0.tgz#28095476c6df7c90c963138990c0a5423eb4b986" + dependencies: + exec-sh "^0.2.0" + minimist "^1.2.0" -watchpack@^1.4.0: +watchpack@^1.5.0: version "1.6.0" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" dependencies: @@ -7544,30 +8812,24 @@ wbuf@^1.1.0, wbuf@^1.7.2: dependencies: minimalistic-assert "^1.0.0" -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - -webidl-conversions@^4.0.0: +webidl-conversions@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" -webpack-dev-middleware@1.12.2: - version "1.12.2" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz#f8fc1120ce3b4fc5680ceecb43d777966b21105e" +webpack-dev-middleware@3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.4.0.tgz#1132fecc9026fd90f0ecedac5cbff75d1fb45890" dependencies: memory-fs "~0.4.1" - mime "^1.5.0" - path-is-absolute "^1.0.0" + mime "^2.3.1" range-parser "^1.0.3" - time-stamp "^2.0.0" + webpack-log "^2.0.0" -webpack-dev-server@2.11.3: - version "2.11.3" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.11.3.tgz#3fd48a402164a6569d94d3d17f131432631b4873" +webpack-dev-server@3.1.9: + version "3.1.9" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.1.9.tgz#8b32167624d2faff40dcedc2cbce17ed1f34d3e0" dependencies: ansi-html "0.0.7" - array-includes "^3.0.3" bonjour "^3.5.0" chokidar "^2.0.0" compression "^1.5.2" @@ -7576,14 +8838,15 @@ webpack-dev-server@2.11.3: del "^3.0.0" express "^4.16.2" html-entities "^1.2.0" - http-proxy-middleware "~0.17.4" - import-local "^1.0.0" - internal-ip "1.2.0" + http-proxy-middleware "~0.18.0" + import-local "^2.0.0" + internal-ip "^3.0.1" ip "^1.1.5" killable "^1.0.0" loglevel "^1.4.1" opn "^5.1.0" portfinder "^1.0.9" + schema-utils "^1.0.0" selfsigned "^1.9.1" serve-index "^1.7.2" sockjs "0.3.19" @@ -7591,49 +8854,60 @@ webpack-dev-server@2.11.3: spdy "^3.4.1" strip-ansi "^3.0.0" supports-color "^5.1.0" - webpack-dev-middleware "1.12.2" - yargs "6.6.0" + webpack-dev-middleware "3.4.0" + webpack-log "^2.0.0" + yargs "12.0.2" -webpack-manifest-plugin@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/webpack-manifest-plugin/-/webpack-manifest-plugin-1.3.2.tgz#5ea8ee5756359ddc1d98814324fe43496349a7d4" +webpack-log@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" + dependencies: + ansi-colors "^3.0.0" + uuid "^3.3.2" + +webpack-manifest-plugin@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/webpack-manifest-plugin/-/webpack-manifest-plugin-2.0.4.tgz#e4ca2999b09557716b8ba4475fb79fab5986f0cd" dependencies: - fs-extra "^0.30.0" + fs-extra "^7.0.0" lodash ">=3.5 <5" + tapable "^1.0.0" -webpack-sources@^1.0.1: +webpack-sources@^1.1.0, webpack-sources@^1.2.0: version "1.3.0" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85" dependencies: source-list-map "^2.0.0" source-map "~0.6.1" -webpack@3.8.1: - version "3.8.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.8.1.tgz#b16968a81100abe61608b0153c9159ef8bb2bd83" - dependencies: - acorn "^5.0.0" - acorn-dynamic-import "^2.0.0" - ajv "^5.1.5" - ajv-keywords "^2.0.0" - async "^2.1.2" - enhanced-resolve "^3.4.0" - escope "^3.6.0" - interpret "^1.0.0" - json-loader "^0.5.4" - json5 "^0.5.1" +webpack@4.19.1: + version "4.19.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.19.1.tgz#096674bc3b573f8756c762754366e5b333d6576f" + dependencies: + "@webassemblyjs/ast" "1.7.6" + "@webassemblyjs/helper-module-context" "1.7.6" + "@webassemblyjs/wasm-edit" "1.7.6" + "@webassemblyjs/wasm-parser" "1.7.6" + acorn "^5.6.2" + acorn-dynamic-import "^3.0.0" + ajv "^6.1.0" + ajv-keywords "^3.1.0" + chrome-trace-event "^1.0.0" + enhanced-resolve "^4.1.0" + eslint-scope "^4.0.0" + json-parse-better-errors "^1.0.2" loader-runner "^2.3.0" loader-utils "^1.1.0" memory-fs "~0.4.1" + micromatch "^3.1.8" mkdirp "~0.5.0" + neo-async "^2.5.0" node-libs-browser "^2.0.0" - source-map "^0.5.3" - supports-color "^4.2.1" - tapable "^0.2.7" - uglifyjs-webpack-plugin "^0.4.6" - watchpack "^1.4.0" - webpack-sources "^1.0.1" - yargs "^8.0.2" + schema-utils "^0.4.4" + tapable "^1.1.0" + uglifyjs-webpack-plugin "^1.2.4" + watchpack "^1.5.0" + webpack-sources "^1.2.0" websocket-driver@>=0.5.1: version "0.7.0" @@ -7646,34 +8920,35 @@ websocket-extensions@>=0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" -whatwg-encoding@^1.0.1: +whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3, whatwg-encoding@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" dependencies: iconv-lite "0.4.24" -whatwg-fetch@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" - -whatwg-fetch@>=0.10.0: +whatwg-fetch@3.0.0, whatwg-fetch@>=0.10.0: version "3.0.0" resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb" -whatwg-url@^4.3.0: - version "4.8.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-4.8.0.tgz#d2981aa9148c1e00a41c5a6131166ab4683bbcc0" - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" +whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.2.0.tgz#a3d58ef10b76009b042d03e25591ece89b88d171" -whet.extend@~0.9.9: - version "0.9.9" - resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1" +whatwg-url@^6.4.1: + version "6.5.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8" + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" -which-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" +whatwg-url@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.0.0.tgz#fde926fa54a599f3adf82dff25a9f7be02dc6edd" + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" which-module@^2.0.0: version "2.0.0" @@ -7691,20 +8966,6 @@ wide-align@^1.1.0: dependencies: string-width "^1.0.2 || 2" -widest-line@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.0.tgz#0142a4e8a243f8882c0233aa0e0281aa76152273" - dependencies: - string-width "^2.1.1" - -window-size@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" - -wordwrap@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" - wordwrap@~0.0.2: version "0.0.3" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" @@ -7713,7 +8974,119 @@ wordwrap@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" -worker-farm@^1.3.1: +workbox-background-sync@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-3.6.3.tgz#6609a0fac9eda336a7c52e6aa227ba2ae532ad94" + dependencies: + workbox-core "^3.6.3" + +workbox-broadcast-cache-update@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-broadcast-cache-update/-/workbox-broadcast-cache-update-3.6.3.tgz#3f5dff22ada8c93e397fb38c1dc100606a7b92da" + dependencies: + workbox-core "^3.6.3" + +workbox-build@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-3.6.3.tgz#77110f9f52dc5d82fa6c1c384c6f5e2225adcbd8" + dependencies: + babel-runtime "^6.26.0" + common-tags "^1.4.0" + fs-extra "^4.0.2" + glob "^7.1.2" + joi "^11.1.1" + lodash.template "^4.4.0" + pretty-bytes "^4.0.2" + stringify-object "^3.2.2" + strip-comments "^1.0.2" + workbox-background-sync "^3.6.3" + workbox-broadcast-cache-update "^3.6.3" + workbox-cache-expiration "^3.6.3" + workbox-cacheable-response "^3.6.3" + workbox-core "^3.6.3" + workbox-google-analytics "^3.6.3" + workbox-navigation-preload "^3.6.3" + workbox-precaching "^3.6.3" + workbox-range-requests "^3.6.3" + workbox-routing "^3.6.3" + workbox-strategies "^3.6.3" + workbox-streams "^3.6.3" + workbox-sw "^3.6.3" + +workbox-cache-expiration@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-cache-expiration/-/workbox-cache-expiration-3.6.3.tgz#4819697254a72098a13f94b594325a28a1e90372" + dependencies: + workbox-core "^3.6.3" + +workbox-cacheable-response@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-3.6.3.tgz#869f1a68fce9063f6869ddbf7fa0a2e0a868b3aa" + dependencies: + workbox-core "^3.6.3" + +workbox-core@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-3.6.3.tgz#69abba70a4f3f2a5c059295a6f3b7c62bd00e15c" + +workbox-google-analytics@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-3.6.3.tgz#99df2a3d70d6e91961e18a6752bac12e91fbf727" + dependencies: + workbox-background-sync "^3.6.3" + workbox-core "^3.6.3" + workbox-routing "^3.6.3" + workbox-strategies "^3.6.3" + +workbox-navigation-preload@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-3.6.3.tgz#a2c34eb7c17e7485b795125091215f757b3c4964" + dependencies: + workbox-core "^3.6.3" + +workbox-precaching@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-3.6.3.tgz#5341515e9d5872c58ede026a31e19bafafa4e1c1" + dependencies: + workbox-core "^3.6.3" + +workbox-range-requests@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-3.6.3.tgz#3cc21cba31f2dd8c43c52a196bcc8f6cdbcde803" + dependencies: + workbox-core "^3.6.3" + +workbox-routing@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-3.6.3.tgz#659cd8f9274986cfa98fda0d050de6422075acf7" + dependencies: + workbox-core "^3.6.3" + +workbox-strategies@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-3.6.3.tgz#11a0dc249a7bc23d3465ec1322d28fa6643d64a0" + dependencies: + workbox-core "^3.6.3" + +workbox-streams@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-3.6.3.tgz#beaea5d5b230239836cc327b07d471aa6101955a" + dependencies: + workbox-core "^3.6.3" + +workbox-sw@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-3.6.3.tgz#278ea4c1831b92bbe2d420da8399176c4b2789ff" + +workbox-webpack-plugin@3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-webpack-plugin/-/workbox-webpack-plugin-3.6.3.tgz#a807bb891b4e4e3c808df07e58f17de2d5ba6182" + dependencies: + babel-runtime "^6.26.0" + json-stable-stringify "^1.0.1" + workbox-build "^3.6.3" + +worker-farm@^1.5.2: version "1.6.0" resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.6.0.tgz#aecc405976fab5a95526180846f0dba288f3a4a0" dependencies: @@ -7730,7 +9103,7 @@ wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" -write-file-atomic@^2.0.0: +write-file-atomic@^2.1.0: version "2.3.0" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab" dependencies: @@ -7744,15 +9117,31 @@ write@^0.2.1: dependencies: mkdirp "^0.5.1" -xdg-basedir@^3.0.0: +ws@^5.2.0: + version "5.2.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" + dependencies: + async-limiter "~1.0.0" + +ws@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.0.tgz#119a9dbf92c54e190ec18d10e871d55c95cf9373" + dependencies: + async-limiter "~1.0.0" + +xml-name-validator@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" -xml-name-validator@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-2.0.1.tgz#4d8b8f1eccd3419aa362061becef515e1e559635" +xmlchars@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-1.3.1.tgz#1dda035f833dbb4f86a0c28eaa6ca769214793cf" -xtend@^4.0.0: +xregexp@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.0.0.tgz#e698189de49dd2a18cc5687b05e17c8e43943020" + +xtend@^4.0.0, xtend@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" @@ -7760,6 +9149,10 @@ y18n@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" +"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + yallist@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" @@ -7768,83 +9161,48 @@ yallist@^3.0.0, yallist@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" -yargs-parser@^4.2.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c" - dependencies: - camelcase "^3.0.0" - -yargs-parser@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" - dependencies: - camelcase "^3.0.0" - -yargs-parser@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" +yargs-parser@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" dependencies: camelcase "^4.1.0" -yargs@6.6.0: - version "6.6.0" - resolved "http://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208" +yargs-parser@^9.0.2: + version "9.0.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" dependencies: - camelcase "^3.0.0" - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - os-locale "^1.4.0" - read-pkg-up "^1.0.1" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^1.0.2" - which-module "^1.0.0" - y18n "^3.2.1" - yargs-parser "^4.2.0" + camelcase "^4.1.0" -yargs@^7.0.2: - version "7.1.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" +yargs@12.0.2: + version "12.0.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.2.tgz#fe58234369392af33ecbef53819171eff0f5aadc" dependencies: - camelcase "^3.0.0" - cliui "^3.2.0" - decamelize "^1.1.1" + cliui "^4.0.0" + decamelize "^2.0.0" + find-up "^3.0.0" get-caller-file "^1.0.1" - os-locale "^1.4.0" - read-pkg-up "^1.0.1" + os-locale "^3.0.0" require-directory "^2.1.1" require-main-filename "^1.0.1" set-blocking "^2.0.0" - string-width "^1.0.2" - which-module "^1.0.0" - y18n "^3.2.1" - yargs-parser "^5.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1 || ^4.0.0" + yargs-parser "^10.1.0" -yargs@^8.0.2: - version "8.0.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" +yargs@^11.0.0: + version "11.1.0" + resolved "http://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz#90b869934ed6e871115ea2ff58b03f4724ed2d77" dependencies: - camelcase "^4.1.0" - cliui "^3.2.0" + cliui "^4.0.0" decamelize "^1.1.1" + find-up "^2.1.0" get-caller-file "^1.0.1" os-locale "^2.0.0" - read-pkg-up "^2.0.0" require-directory "^2.1.1" require-main-filename "^1.0.1" set-blocking "^2.0.0" string-width "^2.0.0" which-module "^2.0.0" y18n "^3.2.1" - yargs-parser "^7.0.0" - -yargs@~3.10.0: - version "3.10.0" - resolved "http://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" - dependencies: - camelcase "^1.0.2" - cliui "^2.1.0" - decamelize "^1.0.0" - window-size "0.1.0" + yargs-parser "^9.0.2" -- GitLab From 2e6d9a559edca36fde2fe530ec846d9b5e673a6a Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Tue, 6 Nov 2018 16:55:17 +0200 Subject: [PATCH 127/249] NY-4620 --- .../edit_user/generic_data/generic_data.css | 9 + .../edit_user/generic_data/index.js | 159 ++++- src/components/edit_user/index.js | 47 +- yarn.lock | 617 +++++++----------- 4 files changed, 409 insertions(+), 423 deletions(-) create mode 100644 src/components/edit_user/generic_data/generic_data.css diff --git a/src/components/edit_user/generic_data/generic_data.css b/src/components/edit_user/generic_data/generic_data.css new file mode 100644 index 0000000..f29aad1 --- /dev/null +++ b/src/components/edit_user/generic_data/generic_data.css @@ -0,0 +1,9 @@ +.personal-info-title { + font-size: 18px; + + color: rgba(0, 0, 0, 0.54); +} +.default-avatar { + width: 130px; + height: 130px; +} \ No newline at end of file diff --git a/src/components/edit_user/generic_data/index.js b/src/components/edit_user/generic_data/index.js index da68ea0..2c60566 100644 --- a/src/components/edit_user/generic_data/index.js +++ b/src/components/edit_user/generic_data/index.js @@ -6,40 +6,151 @@ import { withStyles } from "@material-ui/core/styles"; import Card from "@material-ui/core/Card"; import CardContent from "@material-ui/core/CardContent"; -const styles = {}; +import classNames from "classnames"; +import Avatar from "@material-ui/core/Avatar"; +import AccountCircle from '@material-ui/icons/AccountCircle'; + +import TextField from "@material-ui/core/TextField"; + +import InputLabel from "@material-ui/core/InputLabel"; +import MenuItem from "@material-ui/core/MenuItem"; +import FormControl from "@material-ui/core/FormControl"; +import Select from "@material-ui/core/Select"; + +import './generic_data.css'; + +const styles = { + bigAvatar: { + width: 130, + height: 130 + } +}; + +const genericUserData = (props) => { + + console.log('===================================='); + console.log('access'); + console.log('===================================='); -const genericUserData = (props) => { /** * @const {array} selectedUser * @const {Object} classes */ - const { selectedUser, classes } = props; - - return ( - - { - selectedUser.length > 0 && -
- - - -

- {selectedUser[0].firstName} {selectedUser[0].lastName} -

- -
-
-
- } -
- ) + + const { selectedUser, classes, onHandleChange, parentState } = props; + + return ( + + {selectedUser.length > 0 && ( +
+ + + + +
+ { + selectedUser[0].avatar + ? + : + } + +
+
+
+ + + +

Personal Information

+ +
+ { + selectedUser[0].firstName + ? + : null + + } +
+ +
+ { + selectedUser[0].lastName + ? + : null + } +
+ +
+ { + selectedUser[0].username + ? + : null + } +
+ +
+ + Age + + + +
+ +
+
+
+ )} +
+ ) + } genericUserData.propTypes = { - classes: PropTypes.object.isRequired, - selectedUser: PropTypes.array.isRequired + // classes: PropTypes.object.isRequired, + // selectedUser: PropTypes.array.isRequired }; export default withStyles(styles)(genericUserData); \ No newline at end of file diff --git a/src/components/edit_user/index.js b/src/components/edit_user/index.js index 987822b..d71fbeb 100644 --- a/src/components/edit_user/index.js +++ b/src/components/edit_user/index.js @@ -14,6 +14,21 @@ import AvailableData from './available_data'; import UpdateData from './update_data'; class EditUser extends Component{ + constructor(props) { + super(props); + + this.state = { + firstName: this.props.selectedUser[0].firstName, + lastName: this.props.selectedUser[0].lastName, + userName: this.props.selectedUser[0].username, + isUpdated: false + } + + } + + shouldComponentUpdate(nextProps, nextState) { + return nextState.firstName !== this.state.firstName || nextState.lastName !== this.state.lastName || nextState.userName !== this.state.userName; + } componentDidMount(){ @@ -34,6 +49,24 @@ class EditUser extends Component{ } + handleChange = (e) => { + + if (!this.state.isUpdated) { + + this.setState({ + [e.currentTarget.name]: e.currentTarget.value, + isUpdated: true + + }); + } else { + + this.setState({ + [e.currentTarget.name]: e.currentTarget.value, + }); + } + + }; + render() { /** @@ -45,12 +78,18 @@ class EditUser extends Component{ const { coldef, selectedUser } = this.props; const { url, path } = this.props.match; - return( + return( + - + - + + {/* @@ -58,7 +97,7 @@ class EditUser extends Component{ this.updateUserDataCategoryX(data)} />} /> - + */} ) } diff --git a/yarn.lock b/yarn.lock index 804e52e..a4d8d17 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8,17 +8,17 @@ dependencies: regenerator-runtime "^0.12.0" -"@babel/runtime@^7.0.0": +"@babel/runtime@7.1.2", "@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2": version "7.1.2" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.1.2.tgz#81c89935f4647706fc54541145e6b4ecfef4b8e3" dependencies: regenerator-runtime "^0.12.0" "@material-ui/core@^3.1.1": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@material-ui/core/-/core-3.1.2.tgz#0ba7c510320c41be672792e3f3ab73ab79ff100f" + version "3.3.2" + resolved "https://registry.yarnpkg.com/@material-ui/core/-/core-3.3.2.tgz#ca9ce331ac5a31ef8acc732305967f3e5cfe4934" dependencies: - "@babel/runtime" "7.0.0" + "@babel/runtime" "7.1.2" "@types/jss" "^9.5.6" "@types/react-transition-group" "^2.0.8" brcast "^3.0.1" @@ -41,7 +41,6 @@ popper.js "^1.14.1" prop-types "^15.6.0" react-event-listener "^0.6.2" - react-jss "^8.1.0" react-transition-group "^2.2.1" recompose "0.28.0 - 0.30.0" warning "^4.0.1" @@ -53,16 +52,20 @@ "@babel/runtime" "7.0.0" recompose "^0.29.0" +"@types/google-protobuf@^3.2.7": + version "3.2.7" + resolved "https://registry.yarnpkg.com/@types/google-protobuf/-/google-protobuf-3.2.7.tgz#9576ed5dd62cdb1c9f952522028a03b7cb2b69b5" + "@types/jss@^9.5.6": - version "9.5.6" - resolved "https://registry.yarnpkg.com/@types/jss/-/jss-9.5.6.tgz#96e1d246ddfbccc4867494077c714773cf29acde" + version "9.5.7" + resolved "https://registry.yarnpkg.com/@types/jss/-/jss-9.5.7.tgz#fa57a6d0b38a3abef8a425e3eb6a53495cb9d5a0" dependencies: csstype "^2.0.0" indefinite-observable "^1.0.1" "@types/node@*": - version "10.11.3" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.11.3.tgz#c055536ac8a5e871701aa01914be5731539d01ee" + version "10.12.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.0.tgz#ea6dcbddbc5b584c83f06c60e82736d8fbb0c235" "@types/prop-types@*": version "15.5.6" @@ -75,8 +78,8 @@ "@types/react" "*" "@types/react@*": - version "16.4.14" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.4.14.tgz#47c604c8e46ed674bbdf4aabf82b34b9041c6a04" + version "16.4.18" + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.4.18.tgz#2e28a2e7f92d3fa7d6a65f2b73275c3e3138a13d" dependencies: "@types/prop-types" "*" csstype "^2.2.0" @@ -454,7 +457,7 @@ babel-code-frame@6.26.0, babel-code-frame@^6.11.0, babel-code-frame@^6.22.0, bab esutils "^2.0.2" js-tokens "^3.0.2" -babel-core@6.26.0: +babel-core@6.26.0, babel-core@^6.0.0, babel-core@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8" dependencies: @@ -478,30 +481,6 @@ babel-core@6.26.0: slash "^1.0.0" source-map "^0.5.6" -babel-core@^6.0.0, babel-core@^6.26.0: - version "6.26.3" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" - dependencies: - babel-code-frame "^6.26.0" - babel-generator "^6.26.0" - babel-helpers "^6.24.1" - babel-messages "^6.23.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - convert-source-map "^1.5.1" - debug "^2.6.9" - json5 "^0.5.1" - lodash "^4.17.4" - minimatch "^3.0.4" - path-is-absolute "^1.0.1" - private "^0.1.8" - slash "^1.0.0" - source-map "^0.5.7" - babel-eslint@7.2.3: version "7.2.3" resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-7.2.3.tgz#b2fe2d80126470f5c19442dc757253a897710827" @@ -1156,20 +1135,20 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: version "4.11.8" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" -body-parser@1.18.2: - version "1.18.2" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454" +body-parser@1.18.3: + version "1.18.3" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz#5b292198ffdd553b3a0f20ded0592b956955c8b4" dependencies: bytes "3.0.0" content-type "~1.0.4" debug "2.6.9" - depd "~1.1.1" - http-errors "~1.6.2" - iconv-lite "0.4.19" + depd "~1.1.2" + http-errors "~1.6.3" + iconv-lite "0.4.23" on-finished "~2.3.0" - qs "6.5.1" - raw-body "2.3.2" - type-is "~1.6.15" + qs "6.5.2" + raw-body "2.3.3" + type-is "~1.6.16" bonjour@^3.5.0: version "3.5.0" @@ -1394,7 +1373,7 @@ camel-case@3.0.x: camelcase-keys@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + resolved "http://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" dependencies: camelcase "^2.0.0" map-obj "^1.0.0" @@ -1425,12 +1404,12 @@ caniuse-api@^1.5.2: lodash.uniq "^4.5.0" caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: - version "1.0.30000889" - resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000889.tgz#f6177927a0c56bbd56ff70f11e4bb28be3889052" + version "1.0.30000900" + resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000900.tgz#e123ad2cef981f234afd5572507e0c4ff2b439b0" caniuse-lite@^1.0.30000748, caniuse-lite@^1.0.30000792: - version "1.0.30000889" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000889.tgz#53e266c83e725ad3bd2e4a3ea76d5031a8aa4c3e" + version "1.0.30000900" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000900.tgz#015cfe37897a3386a3075a914498800c29afe77e" capture-stack-trace@^1.0.0: version "1.0.1" @@ -1612,14 +1591,10 @@ color-convert@^1.3.0, color-convert@^1.9.0: dependencies: color-name "1.1.3" -color-name@1.1.3: +color-name@1.1.3, color-name@^1.0.0: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" -color-name@^1.0.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - color-string@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/color-string/-/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991" @@ -1628,7 +1603,7 @@ color-string@^0.3.0: color@^0.11.0: version "0.11.4" - resolved "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764" + resolved "http://registry.npmjs.org/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764" dependencies: clone "^1.0.2" color-convert "^1.3.0" @@ -1650,26 +1625,16 @@ colors@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" -combined-stream@1.0.6: - version "1.0.6" - resolved "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" - dependencies: - delayed-stream "~1.0.0" - -combined-stream@~1.0.6: +combined-stream@^1.0.6, combined-stream@~1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.7.tgz#2d1d24317afb8abe95d6d2c0b07b57813539d828" dependencies: delayed-stream "~1.0.0" -commander@2.17.x, commander@~2.17.1: +commander@2.17.x, commander@^2.11.0, commander@~2.17.1: version "2.17.1" resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" -commander@^2.11.0: - version "2.18.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.18.0.tgz#2bf063ddee7c7891176981a2cc798e5754bc6970" - commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -1754,7 +1719,7 @@ content-type@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" -convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.5.1: +convert-source-map@^1.4.0, convert-source-map@^1.5.0: version "1.6.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" dependencies: @@ -1774,7 +1739,7 @@ copy-descriptor@^0.1.0: core-js@^1.0.0: version "1.2.7" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" + resolved "http://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" core-js@^2.4.0, core-js@^2.4.1, core-js@^2.5.0: version "2.5.7" @@ -1860,7 +1825,7 @@ crypto-random-string@^1.0.0: css-color-names@0.0.4: version "0.0.4" - resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + resolved "http://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" css-loader@0.28.7: version "0.28.7" @@ -1883,7 +1848,7 @@ css-loader@0.28.7: css-select@^1.1.0, css-select@~1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" + resolved "http://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" dependencies: boolbase "~1.0.0" css-what "2.1" @@ -1905,8 +1870,8 @@ css-vendor@^0.3.8: is-in-browser "^1.0.2" css-what@2.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd" + version "2.1.2" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.2.tgz#c0876d9d0480927d7d4920dcd72af3595649554d" cssesc@^0.1.0: version "0.1.0" @@ -2006,18 +1971,12 @@ debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6. dependencies: ms "2.0.0" -debug@=3.1.0: +debug@=3.1.0, debug@^3.0.1, debug@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" dependencies: ms "2.0.0" -debug@^3.0.1, debug@^3.1.0: - version "3.2.5" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.5.tgz#c2418fbfd7a29f4d4f70ff4cea604d4b64c46407" - dependencies: - ms "^2.1.1" - decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -2039,8 +1998,8 @@ deep-is@~0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" deepmerge@^2.0.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.2.0.tgz#17087b22e1dccf14310ec892e696269e85374b45" + version "2.2.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.2.1.tgz#5d3ff22a01c00f645405a2fbc17d0778a1801170" default-require-extensions@^1.0.0: version "1.0.0" @@ -2108,11 +2067,7 @@ delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" -depd@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" - -depd@~1.1.1, depd@~1.1.2: +depd@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" @@ -2223,11 +2178,11 @@ domain-browser@^1.1.1: domelementtype@1, domelementtype@^1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" + resolved "http://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" domelementtype@~1.1.1: version "1.1.3" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" + resolved "http://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" domhandler@2.1: version "2.1.0" @@ -2247,20 +2202,13 @@ domutils@1.1: dependencies: domelementtype "1" -domutils@1.5.1: +domutils@1.5.1, domutils@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" dependencies: dom-serializer "0" domelementtype "1" -domutils@^1.5.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" - dependencies: - dom-serializer "0" - domelementtype "1" - dot-prop@^4.1.0: version "4.2.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" @@ -2295,8 +2243,8 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.30: - version "1.3.73" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.73.tgz#aa67787067d58cc3920089368b3b8d6fe0fc12f6" + version "1.3.82" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.82.tgz#7d13ae4437d2a783de3f4efba96b186c540b67b1" elliptic@^6.0.0: version "6.4.1" @@ -2338,32 +2286,32 @@ enhanced-resolve@^3.4.0: tapable "^0.2.7" entities@^1.1.1, entities@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" + version "1.1.2" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" enzyme-adapter-react-16@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.5.0.tgz#50af8d76a45fe0915de932bd95d34cdca75c0be3" + version "1.6.0" + resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.6.0.tgz#3fca28d3c32f3ff427495380fe2dd51494689073" dependencies: enzyme-adapter-utils "^1.8.0" function.prototype.name "^1.1.0" object.assign "^4.1.0" object.values "^1.0.4" prop-types "^15.6.2" - react-is "^16.4.2" + react-is "^16.5.2" react-test-renderer "^16.0.0-0" enzyme-adapter-utils@^1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.8.0.tgz#ee9f07250663a985f1f2caaf297720787da559f1" + version "1.8.1" + resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.8.1.tgz#a927d840ce2c14b42892a533aec836809d4e022b" dependencies: function.prototype.name "^1.1.0" object.assign "^4.1.0" prop-types "^15.6.2" enzyme@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.6.0.tgz#d213f280a258f61e901bc663d4cc2d6fd9a9dec8" + version "3.7.0" + resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.7.0.tgz#9b499e8ca155df44fef64d9f1558961ba1385a46" dependencies: array.prototype.flat "^1.2.1" cheerio "^1.0.0-rc.2" @@ -2621,7 +2569,7 @@ eslint@4.10.0: espree@^3.5.1: version "3.5.4" - resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" + resolved "http://registry.npmjs.org/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" dependencies: acorn "^5.5.0" acorn-jsx "^3.0.0" @@ -2739,12 +2687,12 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2: homedir-polyfill "^1.0.1" express@^4.16.2: - version "4.16.3" - resolved "http://registry.npmjs.org/express/-/express-4.16.3.tgz#6af8a502350db3246ecc4becf6b5a34d22f7ed53" + version "4.16.4" + resolved "https://registry.yarnpkg.com/express/-/express-4.16.4.tgz#fddef61926109e24c515ea97fd2f1bdbf62df12e" dependencies: accepts "~1.3.5" array-flatten "1.1.1" - body-parser "1.18.2" + body-parser "1.18.3" content-disposition "0.5.2" content-type "~1.0.4" cookie "0.3.1" @@ -2761,10 +2709,10 @@ express@^4.16.2: on-finished "~2.3.0" parseurl "~1.3.2" path-to-regexp "0.1.7" - proxy-addr "~2.0.3" - qs "6.5.1" + proxy-addr "~2.0.4" + qs "6.5.2" range-parser "~1.2.0" - safe-buffer "5.1.1" + safe-buffer "5.1.2" send "0.16.2" serve-static "1.13.2" setprototypeof "1.1.0" @@ -2826,17 +2774,13 @@ extract-text-webpack-plugin@3.0.2: schema-utils "^0.3.0" webpack-sources "^1.0.1" -extsprintf@1.3.0: +extsprintf@1.3.0, extsprintf@^1.2.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - fast-deep-equal@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" + resolved "http://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" fast-deep-equal@^2.0.1: version "2.0.1" @@ -2998,13 +2942,7 @@ flatten@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" -follow-redirects@^1.0.0: - version "1.5.8" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.8.tgz#1dbfe13e45ad969f813e86c00e5296f525c885a1" - dependencies: - debug "=3.1.0" - -follow-redirects@^1.3.0: +follow-redirects@^1.0.0, follow-redirects@^1.3.0: version "1.5.9" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.9.tgz#c9ed9d748b814a39535716e531b9196a845d89c6" dependencies: @@ -3029,11 +2967,11 @@ forever-agent@~0.6.1: resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" form-data@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099" + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" dependencies: asynckit "^0.4.0" - combined-stream "1.0.6" + combined-stream "^1.0.6" mime-types "^2.1.12" forwarded@~0.1.2: @@ -3358,9 +3296,9 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.1" -he@1.1.x: - version "1.1.1" - resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" +he@1.2.x: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" history@^4.7.2: version "4.7.2" @@ -3384,6 +3322,12 @@ hoist-non-react-statics@^2.3.1, hoist-non-react-statics@^2.5.0: version "2.5.5" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz#c5903cf409c0dfd908f388e619d86b9c1174cb47" +hoist-non-react-statics@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.0.1.tgz#fba3e7df0210eb9447757ca1a7cb607162f0a364" + dependencies: + react-is "^16.3.2" + home-or-tmp@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" @@ -3411,8 +3355,8 @@ hpack.js@^2.1.6: wbuf "^1.1.0" html-comment-regex@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.1.tgz#668b93776eaae55ebde8f3ad464b307a4963625e" + version "1.1.2" + resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" html-encoding-sniffer@^1.0.1: version "1.0.2" @@ -3425,13 +3369,13 @@ html-entities@^1.2.0: resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" html-minifier@^3.2.3: - version "3.5.20" - resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.20.tgz#7b19fd3caa0cb79f7cde5ee5c3abdf8ecaa6bb14" + version "3.5.21" + resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.21.tgz#d0040e054730e354db008463593194015212d20c" dependencies: camel-case "3.0.x" clean-css "4.2.x" commander "2.17.x" - he "1.1.x" + he "1.2.x" param-case "2.1.x" relateurl "0.2.x" uglify-js "3.4.x" @@ -3448,19 +3392,19 @@ html-webpack-plugin@2.29.0: toposort "^1.0.0" htmlparser2@^3.9.1: - version "3.9.2" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.9.2.tgz#1bdf87acca0f3f9e53fa4fcceb0f4b4cbb00b338" + version "3.10.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.0.tgz#5f5e422dcf6119c0d983ed36260ce9ded0bee464" dependencies: domelementtype "^1.3.0" domhandler "^2.3.0" domutils "^1.5.1" entities "^1.1.1" inherits "^2.0.1" - readable-stream "^2.0.2" + readable-stream "^3.0.6" htmlparser2@~3.3.0: version "3.3.0" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.3.0.tgz#cc70d05a59f6542e43f0e685c982e14c924a9efe" + resolved "http://registry.npmjs.org/htmlparser2/-/htmlparser2-3.3.0.tgz#cc70d05a59f6542e43f0e685c982e14c924a9efe" dependencies: domelementtype "1" domhandler "2.1" @@ -3471,16 +3415,7 @@ http-deceiver@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" -http-errors@1.6.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" - dependencies: - depd "1.1.1" - inherits "2.0.3" - setprototypeof "1.0.3" - statuses ">= 1.3.1 < 2" - -http-errors@~1.6.2: +http-errors@1.6.3, http-errors@~1.6.2, http-errors@~1.6.3: version "1.6.3" resolved "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" dependencies: @@ -3490,8 +3425,8 @@ http-errors@~1.6.2: statuses ">= 1.4.0 < 2" http-parser-js@>=0.4.0: - version "0.4.13" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.13.tgz#3bd6d6fde6e3172c9334c3b33b6c193d80fe1137" + version "0.5.0" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.0.tgz#d65edbede84349d0dc30320815a15d39cc3cbbd8" http-proxy-middleware@~0.17.4: version "0.17.4" @@ -3526,9 +3461,11 @@ hyphenate-style-name@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.2.tgz#31160a36930adaf1fc04c6074f7eb41465d4ec4b" -iconv-lite@0.4.19: - version "0.4.19" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" +iconv-lite@0.4.23: + version "0.4.23" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" + dependencies: + safer-buffer ">= 2.1.2 < 3" iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.4, iconv-lite@~0.4.13: version "0.4.24" @@ -3643,7 +3580,7 @@ interpret@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" -invariant@^2.0.0, invariant@^2.2.1, invariant@^2.2.2, invariant@^2.2.4: +invariant@^2.2.1, invariant@^2.2.2, invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" dependencies: @@ -3791,10 +3728,6 @@ is-fullwidth-code-point@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" -is-function@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5" - is-glob@^2.0.0, is-glob@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" @@ -4384,32 +4317,16 @@ jsprim@^1.2.2: json-schema "0.2.3" verror "1.10.0" -jss-camel-case@^6.0.0, jss-camel-case@^6.1.0: +jss-camel-case@^6.0.0: version "6.1.0" resolved "https://registry.yarnpkg.com/jss-camel-case/-/jss-camel-case-6.1.0.tgz#ccb1ff8d6c701c02a1fed6fb6fb6b7896e11ce44" dependencies: hyphenate-style-name "^1.0.2" -jss-compose@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/jss-compose/-/jss-compose-5.0.0.tgz#ce01b2e4521d65c37ea42cf49116e5f7ab596484" - dependencies: - warning "^3.0.0" - jss-default-unit@^8.0.2: version "8.0.2" resolved "https://registry.yarnpkg.com/jss-default-unit/-/jss-default-unit-8.0.2.tgz#cc1e889bae4c0b9419327b314ab1c8e2826890e6" -jss-expand@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/jss-expand/-/jss-expand-5.3.0.tgz#02be076efe650125c842f5bb6fb68786fe441ed6" - -jss-extend@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/jss-extend/-/jss-extend-6.2.0.tgz#4af09d0b72fb98ee229970f8ca852fec1ca2a8dc" - dependencies: - warning "^3.0.0" - jss-global@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/jss-global/-/jss-global-3.0.0.tgz#e19e5c91ab2b96353c227e30aa2cbd938cdaafa2" @@ -4420,38 +4337,17 @@ jss-nested@^6.0.1: dependencies: warning "^3.0.0" -jss-preset-default@^4.3.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/jss-preset-default/-/jss-preset-default-4.5.0.tgz#d3a457012ccd7a551312014e394c23c4b301cadd" - dependencies: - jss-camel-case "^6.1.0" - jss-compose "^5.0.0" - jss-default-unit "^8.0.2" - jss-expand "^5.3.0" - jss-extend "^6.2.0" - jss-global "^3.0.0" - jss-nested "^6.0.1" - jss-props-sort "^6.0.0" - jss-template "^1.0.1" - jss-vendor-prefixer "^7.0.0" - jss-props-sort@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/jss-props-sort/-/jss-props-sort-6.0.0.tgz#9105101a3b5071fab61e2d85ea74cc22e9b16323" -jss-template@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/jss-template/-/jss-template-1.0.1.tgz#09aed9d86cc547b07f53ef355d7e1777f7da430a" - dependencies: - warning "^3.0.0" - jss-vendor-prefixer@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/jss-vendor-prefixer/-/jss-vendor-prefixer-7.0.0.tgz#0166729650015ef19d9f02437c73667231605c71" dependencies: css-vendor "^0.3.8" -jss@^9.3.3, jss@^9.7.0: +jss@^9.3.3: version "9.8.7" resolved "https://registry.yarnpkg.com/jss/-/jss-9.8.7.tgz#ed9763fc0f2f0260fc8260dac657af61e622ce05" dependencies: @@ -4584,10 +4480,6 @@ locate-path@^2.0.0: p-locate "^2.0.0" path-exists "^3.0.0" -lodash-es@^4.17.5: - version "4.17.11" - resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.11.tgz#145ab4a7ac5c5e52a3531fb4f310255a152b4be0" - lodash._reinterpolate@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" @@ -4649,7 +4541,7 @@ lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" -"lodash@>=3.5 <5", lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0: +"lodash@>=3.5 <5", lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.3.0: version "4.17.11" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" @@ -4733,7 +4625,7 @@ md5.js@^1.3.4: media-typer@0.3.0: version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + resolved "http://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" mem@^1.1.0: version "1.1.0" @@ -4750,7 +4642,7 @@ memory-fs@^0.4.0, memory-fs@~0.4.1: meow@^3.3.0, meow@^3.7.0: version "3.7.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" + resolved "http://registry.npmjs.org/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" dependencies: camelcase-keys "^2.0.0" decamelize "^1.1.2" @@ -4768,8 +4660,8 @@ merge-descriptors@1.0.1: resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" merge@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da" + version "1.2.1" + resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145" methods@~1.1.2: version "1.1.2" @@ -4818,15 +4710,15 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -"mime-db@>= 1.36.0 < 2", mime-db@~1.36.0: - version "1.36.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.36.0.tgz#5020478db3c7fe93aad7bbcc4dcf869c43363397" +"mime-db@>= 1.36.0 < 2", mime-db@~1.37.0: + version "1.37.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.37.0.tgz#0b6a0ce6fdbe9576e25f1f2d2fde8830dc0ad0d8" mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.18, mime-types@~2.1.19: - version "2.1.20" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.20.tgz#930cb719d571e903738520f8470911548ca2cc19" + version "2.1.21" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.21.tgz#28995aa1ecb770742fe6ae7e58f9181c744b3f96" dependencies: - mime-db "~1.36.0" + mime-db "~1.37.0" mime@1.4.1: version "1.4.1" @@ -4860,7 +4752,7 @@ minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" -minimist@0.0.8: +minimist@0.0.8, minimist@~0.0.1: version "0.0.8" resolved "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" @@ -4868,20 +4760,16 @@ minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: version "1.2.0" resolved "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" -minimist@~0.0.1: - version "0.0.10" - resolved "http://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" - minipass@^2.2.1, minipass@^2.3.3: - version "2.3.4" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.4.tgz#4768d7605ed6194d6d576169b9e12ef71e9d9957" + version "2.3.5" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848" dependencies: safe-buffer "^5.1.2" yallist "^3.0.0" minizlib@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.0.tgz#11e13658ce46bc3a70a267aac58359d1e0c29ceb" + version "1.1.1" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.1.tgz#6734acc045a46e61d596a43bb9d9cd326e19cc42" dependencies: minipass "^2.2.1" @@ -4906,10 +4794,6 @@ ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" -ms@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - multicast-dns-service-types@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" @@ -4972,8 +4856,8 @@ negotiator@0.6.1: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" neo-async@^2.5.0: - version "2.5.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.5.2.tgz#489105ce7bc54e709d736b195f82135048c50fcc" + version "2.6.0" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.0.tgz#b9d15e4d71c6762908654b5183ed38b753340835" next-tick@1: version "1.0.0" @@ -5029,11 +4913,11 @@ node-libs-browser@^2.0.0: vm-browserify "0.0.4" node-notifier@^5.0.2: - version "5.2.1" - resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.2.1.tgz#fa313dd08f5517db0e2502e5758d664ac69f9dea" + version "5.3.0" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.3.0.tgz#c77a4a7b84038733d5fb351aafd8a268bfe19a01" dependencies: growly "^1.3.0" - semver "^5.4.1" + semver "^5.5.0" shellwords "^0.1.1" which "^1.3.0" @@ -5103,8 +4987,8 @@ npm-bundled@^1.0.1: resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.5.tgz#3c1732b7ba936b3a10325aef616467c0ccbcc979" npm-packlist@^1.1.6: - version "1.1.11" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.11.tgz#84e8c683cbe7867d34b1d357d893ce29e28a02de" + version "1.1.12" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.12.tgz#22bde2ebc12e72ca482abd67afc51eb49377243a" dependencies: ignore-walk "^3.0.1" npm-bundled "^1.0.1" @@ -5125,8 +5009,8 @@ npmlog@^4.0.2: set-blocking "~2.0.0" nth-check@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.1.tgz#9929acdf628fc2c41098deab82ac580cf149aae4" + version "1.0.2" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" dependencies: boolbase "~1.0.0" @@ -5250,18 +5134,12 @@ onetime@^2.0.0: dependencies: mimic-fn "^1.0.0" -opn@5.2.0: +opn@5.2.0, opn@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/opn/-/opn-5.2.0.tgz#71fdf934d6827d676cecbea1531f95d354641225" dependencies: is-wsl "^1.1.0" -opn@^5.1.0: - version "5.4.0" - resolved "https://registry.yarnpkg.com/opn/-/opn-5.4.0.tgz#cb545e7aab78562beb11aa3bfabc7042e1761035" - dependencies: - is-wsl "^1.1.0" - optimist@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" @@ -5483,7 +5361,7 @@ performance-now@^2.1.0: pify@^2.0.0, pify@^2.3.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + resolved "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" pify@^3.0.0: version "3.0.0" @@ -5520,8 +5398,8 @@ popper.js@^1.14.1: resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.14.4.tgz#8eec1d8ff02a5a3a152dd43414a15c7b79fd69b6" portfinder@^1.0.9: - version "1.0.17" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.17.tgz#a8a1691143e46c4735edefcf4fbcccedad26456a" + version "1.0.19" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.19.tgz#07e87914a55242dcda5b833d42f018d6875b595f" dependencies: async "^1.5.2" debug "^2.2.0" @@ -5691,8 +5569,8 @@ postcss-minify-selectors@^2.0.4: postcss-selector-parser "^2.0.0" postcss-modules-extract-imports@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz#b614c9720be6816eaee35fb3a5faa1dba6a05ddb" + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz#66140ecece38ef06bf0d3e355d69bf59d141ea85" dependencies: postcss "^6.0.1" @@ -5786,8 +5664,8 @@ postcss-unique-selectors@^2.0.2: uniqs "^2.0.0" postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15" + version "3.3.1" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" postcss-zindex@^2.0.1: version "2.2.0" @@ -5844,7 +5722,7 @@ pretty-format@^20.0.3: ansi-regex "^2.1.1" ansi-styles "^3.0.0" -private@^0.1.6, private@^0.1.7, private@^0.1.8: +private@^0.1.6, private@^0.1.7: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" @@ -5857,8 +5735,8 @@ process@^0.11.10: resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" progress@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" + version "2.0.1" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.1.tgz#c9242169342b1c29d275889c95734621b1952e31" promise@8.0.1: version "8.0.1" @@ -5880,14 +5758,14 @@ prop-types@15.6.0: loose-envify "^1.3.1" object-assign "^4.1.1" -prop-types@^15.5.10, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2: +prop-types@^15.5.10, prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2: version "15.6.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102" dependencies: loose-envify "^1.3.1" object-assign "^4.1.1" -proxy-addr@~2.0.3: +proxy-addr@~2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.4.tgz#ecfc733bf22ff8c6f407fa275327b9ab67e48b93" dependencies: @@ -5933,11 +5811,7 @@ q@^1.1.2: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" -qs@6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" - -qs@~6.5.2: +qs@6.5.2, qs@~6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" @@ -5957,8 +5831,8 @@ querystring@0.2.0: resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" querystringify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.0.0.tgz#fa3ed6e68eb15159457c89b37bc6472833195755" + version "2.1.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.0.tgz#7ded8dfbf7879dcc60d0a644ac6754b283ad17ef" raf@3.4.0, raf@^3.4.0: version "3.4.0" @@ -5978,8 +5852,8 @@ randexp@0.4.6: ret "~0.1.10" randomatic@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.0.tgz#36f2ca708e9e567f5ed2ec01949026d50aa10116" + version "3.1.1" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" dependencies: is-number "^4.0.0" kind-of "^6.0.0" @@ -6002,13 +5876,13 @@ range-parser@^1.0.3, range-parser@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" -raw-body@2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" +raw-body@2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3" dependencies: bytes "3.0.0" - http-errors "1.6.2" - iconv-lite "0.4.19" + http-errors "1.6.3" + iconv-lite "0.4.23" unpipe "1.0.0" rc@^1.0.1, rc@^1.1.6, rc@^1.2.7: @@ -6021,8 +5895,8 @@ rc@^1.0.1, rc@^1.1.6, rc@^1.2.7: strip-json-comments "~2.0.1" react-dev-utils@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-5.0.2.tgz#7bb68d2c4f6ffe7ed1184c5b0124fcad692774d2" + version "5.0.3" + resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-5.0.3.tgz#92f97668f03deb09d7fa11ea288832a8c756e35e" dependencies: address "1.0.3" babel-code-frame "6.26.0" @@ -6044,13 +5918,13 @@ react-dev-utils@^5.0.2: text-table "0.2.0" react-dom@^16.5.2: - version "16.5.2" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.5.2.tgz#b69ee47aa20bab5327b2b9d7c1fe2a30f2cfa9d7" + version "16.6.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.6.0.tgz#6375b8391e019a632a89a0988bce85f0cc87a92f" dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" prop-types "^15.6.2" - schedule "^0.5.0" + scheduler "^0.10.0" react-error-overlay@^4.0.1: version "4.0.1" @@ -6064,34 +5938,25 @@ react-event-listener@^0.6.2: prop-types "^15.6.0" warning "^4.0.1" -react-is@^16.4.2, react-is@^16.5.2: - version "16.5.2" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.5.2.tgz#e2a7b7c3f5d48062eb769fcb123505eb928722e3" - -react-jss@^8.1.0: - version "8.6.1" - resolved "https://registry.yarnpkg.com/react-jss/-/react-jss-8.6.1.tgz#a06e2e1d2c4d91b4d11befda865e6c07fbd75252" - dependencies: - hoist-non-react-statics "^2.5.0" - jss "^9.7.0" - jss-preset-default "^4.3.0" - prop-types "^15.6.0" - theming "^1.3.0" +react-is@^16.3.2, react-is@^16.5.2, react-is@^16.6.0: + version "16.6.0" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.6.0.tgz#456645144581a6e99f6816ae2bd24ee94bdd0c01" -react-lifecycles-compat@^3.0.2, react-lifecycles-compat@^3.0.4: +react-lifecycles-compat@^3.0.0, react-lifecycles-compat@^3.0.2, react-lifecycles-compat@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" react-redux@^5.0.7: - version "5.0.7" - resolved "http://registry.npmjs.org/react-redux/-/react-redux-5.0.7.tgz#0dc1076d9afb4670f993ffaef44b8f8c1155a4c8" + version "5.1.0" + resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-5.1.0.tgz#948b1e2686473d1999092bcfb32d0dc43d33f667" dependencies: - hoist-non-react-statics "^2.5.0" - invariant "^2.0.0" - lodash "^4.17.5" - lodash-es "^4.17.5" + "@babel/runtime" "^7.1.2" + hoist-non-react-statics "^3.0.0" + invariant "^2.2.4" loose-envify "^1.1.0" - prop-types "^15.6.0" + prop-types "^15.6.1" + react-is "^16.6.0" + react-lifecycles-compat "^3.0.0" react-router-dom@^4.3.1: version "4.3.1" @@ -6162,13 +6027,13 @@ react-scripts@1.1.5: fsevents "^1.1.3" react-test-renderer@^16.0.0-0, react-test-renderer@^16.5.2: - version "16.5.2" - resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.5.2.tgz#92e9d2c6f763b9821b2e0b22f994ee675068b5ae" + version "16.6.0" + resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.6.0.tgz#fe490096bed55c3f4e92c023da3b89f9d03fceb3" dependencies: object-assign "^4.1.1" prop-types "^15.6.2" - react-is "^16.5.2" - schedule "^0.5.0" + react-is "^16.6.0" + scheduler "^0.10.0" react-transition-group@^2.2.1: version "2.5.0" @@ -6180,13 +6045,13 @@ react-transition-group@^2.2.1: react-lifecycles-compat "^3.0.4" react@^16.5.2: - version "16.5.2" - resolved "https://registry.yarnpkg.com/react/-/react-16.5.2.tgz#19f6b444ed139baa45609eee6dc3d318b3895d42" + version "16.6.0" + resolved "https://registry.yarnpkg.com/react/-/react-16.6.0.tgz#b34761cfaf3e30f5508bc732fb4736730b7da246" dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" prop-types "^15.6.2" - schedule "^0.5.0" + scheduler "^0.10.0" read-pkg-up@^1.0.1: version "1.0.1" @@ -6239,6 +6104,14 @@ readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable string_decoder "~1.1.1" util-deprecate "~1.0.1" +readable-stream@^3.0.6: + version "3.0.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.0.6.tgz#351302e4c68b5abd6a2ed55376a7f9a25be3057a" + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + readdirp@^2.0.0: version "2.2.1" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" @@ -6247,18 +6120,7 @@ readdirp@^2.0.0: micromatch "^3.1.10" readable-stream "^2.0.2" -"recompose@0.28.0 - 0.30.0": - version "0.30.0" - resolved "https://registry.yarnpkg.com/recompose/-/recompose-0.30.0.tgz#82773641b3927e8c7d24a0d87d65aeeba18aabd0" - dependencies: - "@babel/runtime" "^7.0.0" - change-emitter "^0.1.2" - fbjs "^0.8.1" - hoist-non-react-statics "^2.3.1" - react-lifecycles-compat "^3.0.2" - symbol-observable "^1.0.4" - -recompose@^0.29.0: +"recompose@0.28.0 - 0.30.0", recompose@^0.29.0: version "0.29.0" resolved "https://registry.yarnpkg.com/recompose/-/recompose-0.29.0.tgz#f1a4e20d5f24d6ef1440f83924e821de0b1bccef" dependencies: @@ -6318,14 +6180,14 @@ redux-saga-test-plan@^3.7.0: util-inspect "^0.1.8" redux-saga@^0.16.0: - version "0.16.0" - resolved "https://registry.yarnpkg.com/redux-saga/-/redux-saga-0.16.0.tgz#0a231db0a1489301dd980f6f2f88d8ced418f724" + version "0.16.2" + resolved "https://registry.yarnpkg.com/redux-saga/-/redux-saga-0.16.2.tgz#993662e86bc945d8509ac2b8daba3a8c615cc971" redux@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/redux/-/redux-4.0.0.tgz#aa698a92b729315d22b34a0553d7e6533555cc03" + version "4.0.1" + resolved "https://registry.yarnpkg.com/redux/-/redux-4.0.1.tgz#436cae6cc40fbe4727689d7c8fae44808f1bfef5" dependencies: - loose-envify "^1.1.0" + loose-envify "^1.4.0" symbol-observable "^1.2.0" regenerate@^1.2.1: @@ -6392,7 +6254,7 @@ registry-url@^3.0.3: regjsgen@^0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" + resolved "http://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" regjsparser@^0.1.4: version "0.1.5" @@ -6513,18 +6375,12 @@ resolve@1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" -resolve@1.6.0: +resolve@1.6.0, resolve@^1.3.2, resolve@^1.5.0: version "1.6.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.6.0.tgz#0fbd21278b27b4004481c395349e7aba60a9ff5c" dependencies: path-parse "^1.0.5" -resolve@^1.3.2, resolve@^1.5.0: - version "1.8.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" - dependencies: - path-parse "^1.0.5" - restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" @@ -6578,17 +6434,13 @@ rx-lite@*, rx-lite@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" -safe-buffer@5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" - safe-buffer@5.1.2, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" safe-regex@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + resolved "http://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" dependencies: ret "~0.1.10" @@ -6612,10 +6464,11 @@ sax@^1.2.1, sax@^1.2.4, sax@~1.2.1: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" -schedule@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/schedule/-/schedule-0.5.0.tgz#c128fffa0b402488b08b55ae74bb9df55cc29cc8" +scheduler@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.10.0.tgz#7988de90fe7edccc774ea175a783e69c40c521e1" dependencies: + loose-envify "^1.1.0" object-assign "^4.1.1" schema-utils@^0.3.0: @@ -6629,8 +6482,8 @@ select-hose@^2.0.0: resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" selfsigned@^1.9.1: - version "1.10.3" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.3.tgz#d628ecf9e3735f84e8bafba936b3cf85bea43823" + version "1.10.4" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.4.tgz#cdd7eccfca4ed7635d47a08bf2d5d3074092e2cd" dependencies: node-forge "0.7.5" @@ -6640,9 +6493,9 @@ semver-diff@^2.0.0: dependencies: semver "^5.0.3" -"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1: - version "5.5.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.1.tgz#7dfdd8814bdb7cabc7be0fb1d734cfb66c940477" +"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" send@0.16.2: version "0.16.2" @@ -6713,10 +6566,6 @@ setimmediate@^1.0.4, setimmediate@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" -setprototypeof@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" - setprototypeof@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" @@ -6817,8 +6666,8 @@ sort-keys@^1.0.0: is-plain-obj "^1.0.0" source-list-map@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" source-map-resolve@^0.5.0: version "0.5.2" @@ -6849,8 +6698,8 @@ source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" spdx-correct@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.1.tgz#434434ff9d1726b4d9f4219d1004813d80639e30" + version "3.0.2" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.2.tgz#19bb409e91b47b1ad54159243f7312a858db3c2e" dependencies: spdx-expression-parse "^3.0.0" spdx-license-ids "^3.0.0" @@ -6904,18 +6753,17 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" sshpk@^1.7.0: - version "1.14.2" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.2.tgz#c6fc61648a3d9c4e764fd3fcdf4ea105e492ba98" + version "1.15.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.15.1.tgz#b79a089a732e346c6e0714830f36285cd38191a2" dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" - dashdash "^1.12.0" - getpass "^0.1.1" - safer-buffer "^2.0.2" - optionalDependencies: bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" ecc-jsbn "~0.1.1" + getpass "^0.1.1" jsbn "~0.1.0" + safer-buffer "^2.0.2" tweetnacl "~0.14.0" static-extend@^0.1.1: @@ -6925,11 +6773,7 @@ static-extend@^0.1.1: define-property "^0.2.5" object-copy "^0.1.0" -"statuses@>= 1.3.1 < 2", "statuses@>= 1.4.0 < 2": - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - -statuses@~1.4.0: +"statuses@>= 1.4.0 < 2", statuses@~1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" @@ -6983,7 +6827,7 @@ string.prototype.trim@^1.1.2: es-abstract "^1.5.0" function-bind "^1.0.2" -string_decoder@^1.0.0, string_decoder@~1.1.1: +string_decoder@^1.0.0, string_decoder@^1.1.1, string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" dependencies: @@ -7017,7 +6861,7 @@ strip-bom@^2.0.0: strip-eof@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + resolved "http://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" strip-indent@^1.0.1: version "1.0.1" @@ -7159,15 +7003,6 @@ text-table@0.2.0, text-table@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" -theming@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/theming/-/theming-1.3.0.tgz#286d5bae80be890d0adc645e5ca0498723725bdc" - dependencies: - brcast "^3.0.1" - is-function "^1.0.1" - is-plain-object "^2.0.1" - prop-types "^15.5.8" - throat@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/throat/-/throat-3.2.0.tgz#50cb0670edbc40237b9e347d7e1f88e4620af836" @@ -7177,12 +7012,12 @@ through@^2.3.6: resolved "http://registry.npmjs.org/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" thunky@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.0.2.tgz#a862e018e3fb1ea2ec3fce5d55605cf57f247371" + version "1.0.3" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.0.3.tgz#f5df732453407b09191dae73e2a8cc73f381a826" time-stamp@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-2.1.0.tgz#6c5c0b2bc835a244616abcfddf81ce13a1975c9f" + version "2.2.0" + resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-2.2.0.tgz#917e0a66905688790ec7bbbde04046259af83f57" timed-out@^4.0.0: version "4.0.1" @@ -7277,7 +7112,7 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" -type-is@~1.6.15, type-is@~1.6.16: +type-is@~1.6.16: version "1.6.16" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" dependencies: @@ -7289,8 +7124,8 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" ua-parser-js@^0.7.18: - version "0.7.18" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.18.tgz#a7bfd92f56edfb117083b69e31d2aa8882d4b1ed" + version "0.7.19" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.19.tgz#94151be4c0a7fb1d001af7022fdaca4642659e4b" uglify-js@3.4.x, uglify-js@^3.0.13, uglify-js@^3.1.4: version "3.4.9" @@ -7435,7 +7270,7 @@ use@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" -util-deprecate@~1.0.1: +util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -7652,14 +7487,10 @@ whatwg-encoding@^1.0.1: dependencies: iconv-lite "0.4.24" -whatwg-fetch@2.0.3: +whatwg-fetch@2.0.3, whatwg-fetch@>=0.10.0: version "2.0.3" resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" -whatwg-fetch@>=0.10.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb" - whatwg-url@^4.3.0: version "4.8.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-4.8.0.tgz#d2981aa9148c1e00a41c5a6131166ab4683bbcc0" @@ -7692,8 +7523,8 @@ wide-align@^1.1.0: string-width "^1.0.2 || 2" widest-line@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.0.tgz#0142a4e8a243f8882c0233aa0e0281aa76152273" + version "2.0.1" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" dependencies: string-width "^2.1.1" @@ -7701,14 +7532,10 @@ window-size@0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" -wordwrap@0.0.2: +wordwrap@0.0.2, wordwrap@~0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" -wordwrap@~0.0.2: - version "0.0.3" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" - wordwrap@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" @@ -7770,7 +7597,7 @@ yallist@^3.0.0, yallist@^3.0.2: yargs-parser@^4.2.0: version "4.2.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c" + resolved "http://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c" dependencies: camelcase "^3.0.0" -- GitLab From 5f3ddb64f7d74298bbcb5fb4266e24c226fa86a4 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Tue, 6 Nov 2018 18:11:42 +0200 Subject: [PATCH 128/249] NY-4620 --- .../edit_user/generic_data/generic_data.css | 5 ++-- .../edit_user/generic_data/index.js | 24 +++++++++---------- src/components/edit_user/index.js | 24 ++++++++++++------- src/components/edit_user/middleware.js | 2 +- 4 files changed, 31 insertions(+), 24 deletions(-) diff --git a/src/components/edit_user/generic_data/generic_data.css b/src/components/edit_user/generic_data/generic_data.css index f29aad1..0bdc62d 100644 --- a/src/components/edit_user/generic_data/generic_data.css +++ b/src/components/edit_user/generic_data/generic_data.css @@ -1,9 +1,10 @@ .personal-info-title { font-size: 18px; - - color: rgba(0, 0, 0, 0.54); } .default-avatar { width: 130px; height: 130px; +} +.access-status .MuiFormControl-root-305 { + width: 100%; } \ No newline at end of file diff --git a/src/components/edit_user/generic_data/index.js b/src/components/edit_user/generic_data/index.js index 2c60566..8a5182f 100644 --- a/src/components/edit_user/generic_data/index.js +++ b/src/components/edit_user/generic_data/index.js @@ -16,6 +16,7 @@ import InputLabel from "@material-ui/core/InputLabel"; import MenuItem from "@material-ui/core/MenuItem"; import FormControl from "@material-ui/core/FormControl"; import Select from "@material-ui/core/Select"; +import Typography from "@material-ui/core/Typography"; import './generic_data.css'; @@ -28,22 +29,17 @@ const styles = { const genericUserData = (props) => { - console.log('===================================='); - console.log('access'); - console.log('===================================='); - - /** * @const {array} selectedUser * @const {Object} classes */ - const { selectedUser, classes, onHandleChange, parentState } = props; return ( {selectedUser.length > 0 && ( +
@@ -66,7 +62,8 @@ const genericUserData = (props) => { -

Personal Information

+ + Personal Information
{ @@ -117,16 +114,16 @@ const genericUserData = (props) => { }
-
+
- Age + Access Status - - None - - Ten - Twenty - Thirty - - - -
- - - -
- - )} - - ) - + className={classNames(classes.avatar, classes.bigAvatar)} /> + +
+ : + + } +
+ + + +
+ { selectedUser[0].accountstatus + + ? + { accountStatusVariations.length !== 0 + + ? accountStatusVariations.map((option, index) => { + if (index !== 0) { + return ( + + + {option} + + ) + } else { + return null + } + }) + : null + } + + : null + } + +
+
+ + + + Personal Information + +
+ { + selectedUser[0].firstname + ? + : null + + } +
+ +
+ { + selectedUser[0].lastname + ? + : null + } +
+ +
+ { + selectedUser[0].username + ? + : null + } +
+ +
+ +
+ +
+ + + + Contact Information + + + + +
+ + )} + + ) } genericUserData.propTypes = { diff --git a/src/components/edit_user/index.js b/src/components/edit_user/index.js index c5c9086..ed8eec9 100644 --- a/src/components/edit_user/index.js +++ b/src/components/edit_user/index.js @@ -13,7 +13,9 @@ import Categories from './categories'; import AvailableData from './available_data'; import UpdateData from './update_data'; -import ErrorHandler from './../../hoc/error_handler/' +import ErrorHandler from './../../hoc/error_handler/'; +import Modal from "../shared/ui/modal/modal"; +import './edit_user.css'; class EditUser extends Component{ constructor(props) { @@ -23,24 +25,30 @@ class EditUser extends Component{ firstName: '', lastName: '', userName: '', + userBirthday: '2017-05-24', + accountStatus:'', isUpdated: false, - valuesStates: true + valuesStates: true, + openAlert: false } } componentDidMount(){ this.props.getSelectedUserId(this.props.match.params.id); + } componentDidUpdate() { - if (this.state.valuesStates && this.props.selectedUser[0].firstName !== undefined) { + if (this.state.valuesStates && this.props.selectedUser[0].firstname !== undefined) { + this.setState({ - firstName: this.props.selectedUser[0].firstName, - lastName: this.props.selectedUser[0].lastName, + firstName: this.props.selectedUser[0].firstname, + lastName: this.props.selectedUser[0].lastname, userName: this.props.selectedUser[0].username, + accountStatus: this.props.selectedUser[0].accountstatus, valuesStates: false }); } @@ -62,21 +70,32 @@ class EditUser extends Component{ handleChange = (e) => { if (!this.state.isUpdated) { + // console.log("changes ", e.target.name); this.setState({ - [e.currentTarget.name]: e.currentTarget.value, + [e.target.name]: e.target.value, isUpdated: true }); } else { this.setState({ - [e.currentTarget.name]: e.currentTarget.value, + [e.target.name]: e.target.value, }); } }; + handleAvatarAlertDelete = () => { + this.setState({ openAlert: true }); + }; + handleModalConfirmedCancel = () => { + + this.setState({ openAlert: false }); + } + + + render() { /** @@ -85,6 +104,11 @@ class EditUser extends Component{ * @const {string} url * @const {string} path */ + + console.log('===================================='); + console.log(this.state); + console.log('===================================='); + const { coldef, selectedUser, error } = this.props; const { url, path } = this.props.match; @@ -96,8 +120,12 @@ class EditUser extends Component{ selectedUser={selectedUser} onHandleChange={this.handleChange} parentState={this.state} + modalAlertDeleteAvatar={this.handleAvatarAlertDelete} /> + +
+
{/* diff --git a/src/components/header_bar/middleware.js b/src/components/header_bar/middleware.js index a06d46e..151ac2c 100644 --- a/src/components/header_bar/middleware.js +++ b/src/components/header_bar/middleware.js @@ -6,7 +6,7 @@ import { failUsers } from './../../hoc/error_handler/actions'; export function* getAuthedUser() { try { // todo: implement login endpoint, when deployed - const payload = yield call(accountByAccountIdGrpcRequest, '44ddbbcb-6dbf-46a7-bf67-5efed01db3de'); + const payload = yield call(accountByAccountIdGrpcRequest, '9c53d554-5a57-4298-b93d-b3b2d83a08ea'); yield put(deliverAuthedUser(payload)) } catch (error) { diff --git a/src/components/shared/ui/modal/modal.js b/src/components/shared/ui/modal/modal.js index 51c9fb0..865ac1d 100644 --- a/src/components/shared/ui/modal/modal.js +++ b/src/components/shared/ui/modal/modal.js @@ -10,13 +10,13 @@ class Modal extends Component { }; render() { - const { show, modalClosed } = this.props; + const { show, modalClosed, className } = this.props; return (
- + {typeof errorMessage === 'string' ? errorMessage : 'Unknown Connection Error'} diff --git a/src/utils/api/_DATA.js b/src/utils/api/_DATA.js index b208450..bb51596 100644 --- a/src/utils/api/_DATA.js +++ b/src/utils/api/_DATA.js @@ -1,2337 +1,2337 @@ export const users = [ - { - accountId: 'e8a4433a-0cf4-47d1-a580-ca09abef71fc', - profileId: 'e8a4433a-0cf4-47d1-a580-ca09abef71fc', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '9c53d554-5a57-4298-b93d-b3b2d83a08ea', + profileId: '9c53d554-5a57-4298-b93d-b3b2d83a08ea', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '259654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-e', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'admin', - firstName: 'Jane', + { + accountId: '259654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-e', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'admin', + firstName: 'Jane', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-z' }, - { - accountId: '3159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-a', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'owner', - firstName: 'John', + { + accountId: '3159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-a', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'owner', + firstName: 'John', lastName: 'Doe', accountStatus: 'blocked', qrCode: '456951789', communicationProviders: 'vendor-c' }, - { - accountId: '1549654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '1549654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '1595654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '1595654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '1569654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '1569654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '1597654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '1597654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '1596547585', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '1596547585', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '1599654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '1599654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '1596504755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '1596504755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '1529654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '1529654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '1595654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '1595654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '7159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '7159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '1259654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '1259654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '1596954755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '1596954755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '1596154755', - profileId: '951753852', - authenticationIdentifier: 'vendor-e', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'admin', - firstName: 'Jane', + { + accountId: '1596154755', + profileId: '951753852', + authenticationIdentifier: 'vendor-e', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'admin', + firstName: 'Jane', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-z' }, - { - accountId: '1596542755', - profileId: '951753852', - authenticationIdentifier: 'vendor-a', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'owner', - firstName: 'John', + { + accountId: '1596542755', + profileId: '951753852', + authenticationIdentifier: 'vendor-a', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'owner', + firstName: 'John', lastName: 'Doe', accountStatus: 'blocked', qrCode: '456951789', communicationProviders: 'vendor-c' }, - { - accountId: '1539654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '1539654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '1596544755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '1596544755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '1596545755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '1596545755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '1596564755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '1596564755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '1579654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '1579654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '1599654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '1599654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '1596540755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '1596540755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-e', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'admin', - firstName: 'Jane', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-e', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'admin', + firstName: 'Jane', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-z' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-a', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'owner', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-a', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'owner', + firstName: 'John', lastName: 'Doe', accountStatus: 'blocked', qrCode: '456951789', communicationProviders: 'vendor-c' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-e', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'admin', - firstName: 'Jane', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-e', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'admin', + firstName: 'Jane', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-z' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-a', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'owner', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-a', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'owner', + firstName: 'John', lastName: 'Doe', accountStatus: 'blocked', qrCode: '456951789', communicationProviders: 'vendor-c' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-e', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'admin', - firstName: 'Jane', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-e', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'admin', + firstName: 'Jane', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-z' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-a', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'owner', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-a', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'owner', + firstName: 'John', lastName: 'Doe', accountStatus: 'blocked', qrCode: '456951789', communicationProviders: 'vendor-c' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-e', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'admin', - firstName: 'Jane', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-e', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'admin', + firstName: 'Jane', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-z' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-a', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'owner', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-a', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'owner', + firstName: 'John', lastName: 'Doe', accountStatus: 'blocked', qrCode: '456951789', communicationProviders: 'vendor-c' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-e', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'admin', - firstName: 'Jane', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-e', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'admin', + firstName: 'Jane', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-z' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-a', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'owner', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-a', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'owner', + firstName: 'John', lastName: 'Doe', accountStatus: 'blocked', qrCode: '456951789', communicationProviders: 'vendor-c' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-e', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'admin', - firstName: 'Jane', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-e', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'admin', + firstName: 'Jane', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-z' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-a', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'owner', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-a', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'owner', + firstName: 'John', lastName: 'Doe', accountStatus: 'blocked', qrCode: '456951789', communicationProviders: 'vendor-c' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-e', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'admin', - firstName: 'Jane', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-e', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'admin', + firstName: 'Jane', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-z' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-a', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'owner', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-a', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'owner', + firstName: 'John', lastName: 'Doe', accountStatus: 'blocked', qrCode: '456951789', communicationProviders: 'vendor-c' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-e', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'admin', - firstName: 'Jane', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-e', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'admin', + firstName: 'Jane', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-z' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-a', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'owner', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-a', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'owner', + firstName: 'John', lastName: 'Doe', accountStatus: 'blocked', qrCode: '456951789', communicationProviders: 'vendor-c' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-e', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'admin', - firstName: 'Jane', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-e', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'admin', + firstName: 'Jane', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-z' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-a', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'owner', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-a', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'owner', + firstName: 'John', lastName: 'Doe', accountStatus: 'blocked', qrCode: '456951789', communicationProviders: 'vendor-c' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-e', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'admin', - firstName: 'Jane', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-e', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'admin', + firstName: 'Jane', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-z' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-a', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'owner', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-a', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'owner', + firstName: 'John', lastName: 'Doe', accountStatus: 'blocked', qrCode: '456951789', communicationProviders: 'vendor-c' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'Email', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', communicationProviders: 'vendor-y' }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', + { + accountId: '159654755', + profileId: '951753852', + authenticationIdentifier: 'vendor-x', + authenticationType: 'OAuth', + avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', + accountMark: 'random-mark', + accountName: 'user', + firstName: 'John', lastName: 'Doe', accountStatus: 'active', qrCode: '456951789', -- GitLab From 66e5a9b6d4a83ae44665f96d522141e1e1ee37d8 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Wed, 7 Nov 2018 17:04:07 +0200 Subject: [PATCH 135/249] merging edit user sidebar --- src/components/header_bar/middleware.js | 2 +- src/utils/api/_DATA.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/header_bar/middleware.js b/src/components/header_bar/middleware.js index a06d46e..151ac2c 100644 --- a/src/components/header_bar/middleware.js +++ b/src/components/header_bar/middleware.js @@ -6,7 +6,7 @@ import { failUsers } from './../../hoc/error_handler/actions'; export function* getAuthedUser() { try { // todo: implement login endpoint, when deployed - const payload = yield call(accountByAccountIdGrpcRequest, '44ddbbcb-6dbf-46a7-bf67-5efed01db3de'); + const payload = yield call(accountByAccountIdGrpcRequest, '9c53d554-5a57-4298-b93d-b3b2d83a08ea'); yield put(deliverAuthedUser(payload)) } catch (error) { diff --git a/src/utils/api/_DATA.js b/src/utils/api/_DATA.js index b208450..6791e03 100644 --- a/src/utils/api/_DATA.js +++ b/src/utils/api/_DATA.js @@ -1,7 +1,7 @@ export const users = [ { - accountId: 'e8a4433a-0cf4-47d1-a580-ca09abef71fc', - profileId: 'e8a4433a-0cf4-47d1-a580-ca09abef71fc', + accountId: '9c53d554-5a57-4298-b93d-b3b2d83a08ea', + profileId: '9c53d554-5a57-4298-b93d-b3b2d83a08ea', authenticationIdentifier: 'vendor-x', authenticationType: 'OAuth', avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', -- GitLab From 419591957fb6002abff9ca8519a25f3fd0d9b454 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Wed, 7 Nov 2018 17:55:38 +0200 Subject: [PATCH 136/249] NY-5198 --- src/App.js | 3 -- src/components/edit_user/edit_user.css | 3 +- .../edit_user/generic_data/index.js | 51 ++++++------------- src/components/edit_user/index.js | 40 ++++++++------- src/components/shared/ui/modal/modal.css | 18 ++++++- src/components/shared/ui/modal/modal.js | 2 +- src/data_instance.js | 8 --- src/utils/api/mock_api_requests.js | 19 ------- 8 files changed, 58 insertions(+), 86 deletions(-) delete mode 100644 src/data_instance.js delete mode 100644 src/utils/api/mock_api_requests.js diff --git a/src/App.js b/src/App.js index 1855f09..01b83d8 100644 --- a/src/App.js +++ b/src/App.js @@ -12,9 +12,6 @@ import PageNotFound from './components/page_not_found'; import Sidebar from './components/sidebar'; import HeaderBar from './components/header_bar'; -// import ErrorInterceptor from "./hoc/interceptor_error/interceptor_error"; -import axios from "./data_instance"; - /** * @const {object} styles coming from Material UI will go here */ diff --git a/src/components/edit_user/edit_user.css b/src/components/edit_user/edit_user.css index d295ae1..12f3f3c 100644 --- a/src/components/edit_user/edit_user.css +++ b/src/components/edit_user/edit_user.css @@ -1,3 +1,4 @@ .avatar-alert-delete { - + padding: 20px; + max-width: 500px; } \ No newline at end of file diff --git a/src/components/edit_user/generic_data/index.js b/src/components/edit_user/generic_data/index.js index 039383b..f9199f2 100644 --- a/src/components/edit_user/generic_data/index.js +++ b/src/components/edit_user/generic_data/index.js @@ -1,22 +1,16 @@ import React, { Fragment } from 'react'; - import PropTypes from "prop-types"; import { withStyles } from "@material-ui/core/styles"; - import Card from "@material-ui/core/Card"; import CardContent from "@material-ui/core/CardContent"; - import classNames from "classnames"; import Avatar from "@material-ui/core/Avatar"; import AccountCircle from '@material-ui/icons/AccountCircle'; - import TextField from "@material-ui/core/TextField"; import MenuItem from "@material-ui/core/MenuItem"; import Typography from "@material-ui/core/Typography"; import Button from "@material-ui/core/Button"; - import { accountStatusVariations } from '../../../utils/services/accounts'; - import './generic_data.css'; const styles = { @@ -30,21 +24,6 @@ const styles = { } }; -// const accessStatusOptions = [ -// { -// value: "ENABLED", -// label: "Enabled" -// }, -// { -// value: "Suspend", -// label: "Suspend" -// }, -// { -// value: "Disable", -// label: "Disable" -// } -// ]; - const genericUserData = (props) => { /** @@ -65,7 +44,7 @@ const genericUserData = (props) => {
- { !selectedUser[0].avatar + { selectedUser[0].avatar ?
{ src={selectedUser[0].avatar} className={classNames(classes.avatar, classes.bigAvatar)} /> -
+
: } @@ -103,19 +82,19 @@ const genericUserData = (props) => { > { accountStatusVariations.length !== 0 - ? accountStatusVariations.map((option, index) => { - if (index !== 0) { - return ( - - - {option} - - ) - } else { - return null - } - }) - : null + ? accountStatusVariations.map((option, index) => { + if (index !== 0) { + return ( + + + {option} + + ) + } else { + return null + } + }) + : null } : null diff --git a/src/components/edit_user/index.js b/src/components/edit_user/index.js index ed8eec9..0c83b7c 100644 --- a/src/components/edit_user/index.js +++ b/src/components/edit_user/index.js @@ -12,11 +12,14 @@ import GenericData from './generic_data'; import Categories from './categories'; import AvailableData from './available_data'; import UpdateData from './update_data'; - import ErrorHandler from './../../hoc/error_handler/'; +import { withStyles } from "@material-ui/core/styles"; import Modal from "../shared/ui/modal/modal"; +import Button from "@material-ui/core/Button"; import './edit_user.css'; +const styles = theme => ({}) + class EditUser extends Component{ constructor(props) { super(props); @@ -29,7 +32,7 @@ class EditUser extends Component{ accountStatus:'', isUpdated: false, valuesStates: true, - openAlert: false + openModal: false } } @@ -43,7 +46,6 @@ class EditUser extends Component{ if (this.state.valuesStates && this.props.selectedUser[0].firstname !== undefined) { - this.setState({ firstName: this.props.selectedUser[0].firstname, lastName: this.props.selectedUser[0].lastname, @@ -70,7 +72,6 @@ class EditUser extends Component{ handleChange = (e) => { if (!this.state.isUpdated) { - // console.log("changes ", e.target.name); this.setState({ [e.target.name]: e.target.value, @@ -86,15 +87,8 @@ class EditUser extends Component{ }; - handleAvatarAlertDelete = () => { - this.setState({ openAlert: true }); - }; - handleModalConfirmedCancel = () => { - - this.setState({ openAlert: false }); - } - - + handleAvatarAlertDelete = () => this.setState({ openModal: true }); + handleModalConfirmedCancel = () => this.setState({ openModal: false }); render() { @@ -109,7 +103,8 @@ class EditUser extends Component{ console.log(this.state); console.log('===================================='); - const { coldef, selectedUser, error } = this.props; + const { classes, coldef, selectedUser, error } = this.props; + const { openModal } = this.state; const { url, path } = this.props.match; return( @@ -123,8 +118,19 @@ class EditUser extends Component{ modalAlertDeleteAvatar={this.handleAvatarAlertDelete} /> - -
+ +
+

Delete Avatar

+
+

Do you want to delete user's Avatar?

+ +
+ + +
+ +
+
{/* @@ -162,4 +168,4 @@ const mapDispatchToProps = (dispatch) => { }, dispatch) }; -export default withRouter(connect(mapStateToProps, mapDispatchToProps)(EditUser)); \ No newline at end of file +export default withStyles(styles)(connect(mapStateToProps, mapDispatchToProps)(EditUser)); \ No newline at end of file diff --git a/src/components/shared/ui/modal/modal.css b/src/components/shared/ui/modal/modal.css index a723a2f..28fbe47 100644 --- a/src/components/shared/ui/modal/modal.css +++ b/src/components/shared/ui/modal/modal.css @@ -2,7 +2,7 @@ position: fixed; box-sizing: border-box; - left: 15%; + left: 50%; top: 30%; width: 70%; @@ -12,4 +12,20 @@ background-color: white; z-index: 2100; +} +.modal-title { + margin: 0; + + font-family: "Roboto", "Helvetica", "Arial", sans-serif; + font-size: 18px; + font-weight: 700; + color: #24262b; +} +.modal-content-desc { + font-family: "Roboto", "Helvetica", "Arial", sans-serif; + font-size: 18px; + color: #24262b; +} +.modal-control-btn { + text-align: right; } \ No newline at end of file diff --git a/src/components/shared/ui/modal/modal.js b/src/components/shared/ui/modal/modal.js index 865ac1d..ddd9501 100644 --- a/src/components/shared/ui/modal/modal.js +++ b/src/components/shared/ui/modal/modal.js @@ -18,7 +18,7 @@ class Modal extends Component {
{this.props.children} diff --git a/src/data_instance.js b/src/data_instance.js deleted file mode 100644 index a210bd0..0000000 --- a/src/data_instance.js +++ /dev/null @@ -1,8 +0,0 @@ -import axios from 'axios'; - -const instance = axios.create({ - baseURL: "http://www.mocky.io/v2/5bbdcb733100009c00711167", - // baseURL: "http://www.mocky.io/v2/5bbe0dd631000038007113a5" -}); - -export default instance; \ No newline at end of file diff --git a/src/utils/api/mock_api_requests.js b/src/utils/api/mock_api_requests.js deleted file mode 100644 index 34b1da4..0000000 --- a/src/utils/api/mock_api_requests.js +++ /dev/null @@ -1,19 +0,0 @@ -import axios from 'axios'; -import instance from '../../data_instance'; - -export function _getAuthedUserData () { - - const response = instance.get(); - - const returnedData = axios.all ([ - response - ]).then((data) => { - return data[0].data - - }).catch((error) => { - console.log(error); - }) - - return returnedData; - -} \ No newline at end of file -- GitLab From d245e20c821dc59f88f63854c6d80ec58abe1b00 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Thu, 8 Nov 2018 11:37:02 +0200 Subject: [PATCH 137/249] NY-5226 --- src/components/edit_user/index.js | 25 ++++---- .../edit_user/profile_tools/index.js | 58 +++++++++++++++++++ .../edit_user/profile_tools/profile_tools.css | 16 +++++ 3 files changed, 86 insertions(+), 13 deletions(-) create mode 100644 src/components/edit_user/profile_tools/index.js create mode 100644 src/components/edit_user/profile_tools/profile_tools.css diff --git a/src/components/edit_user/index.js b/src/components/edit_user/index.js index 0c83b7c..2ac5c55 100644 --- a/src/components/edit_user/index.js +++ b/src/components/edit_user/index.js @@ -1,20 +1,18 @@ -import React, { Component, Fragment } from 'react'; +import React, { Component } from 'react'; import { connect } from 'react-redux'; import { bindActionCreators } from 'redux'; -import { Route, withRouter } from 'react-router-dom'; import PropTypes from 'prop-types'; - -import Grid from '@material-ui/core/Grid'; - +// import { Route, withRouter } from 'react-router-dom'; import * as actions from './actions'; import GenericData from './generic_data'; -import Categories from './categories'; -import AvailableData from './available_data'; -import UpdateData from './update_data'; -import ErrorHandler from './../../hoc/error_handler/'; +import ProfileTools from './profile_tools/index'; +// import Categories from './categories'; +// import AvailableData from './available_data'; +// import UpdateData from './update_data'; import { withStyles } from "@material-ui/core/styles"; import Modal from "../shared/ui/modal/modal"; +import Grid from '@material-ui/core/Grid'; import Button from "@material-ui/core/Button"; import './edit_user.css'; @@ -39,7 +37,6 @@ class EditUser extends Component{ componentDidMount(){ this.props.getSelectedUserId(this.props.match.params.id); - } componentDidUpdate() { @@ -57,7 +54,6 @@ class EditUser extends Component{ } updateUserDataCategoryX = (dataCategoryEdit) => { - const userId = this.props.selectedUser[0].accountId; const updateDetails = { @@ -67,7 +63,7 @@ class EditUser extends Component{ this.props.updateUserDataName(updateDetails); - } + }; handleChange = (e) => { @@ -109,8 +105,11 @@ class EditUser extends Component{ return( + + + - + +
+ + + + + + User Profile + + + + + + +
+
+ + ) + + } + +} + +export default withStyles(styles)(ProfileTools); \ No newline at end of file diff --git a/src/components/edit_user/profile_tools/profile_tools.css b/src/components/edit_user/profile_tools/profile_tools.css new file mode 100644 index 0000000..08063df --- /dev/null +++ b/src/components/edit_user/profile_tools/profile_tools.css @@ -0,0 +1,16 @@ +.profile-tools-wrapper .MuiAppBar-colorPrimary-116 { + background-color: #eeeeee; + color: black; +} +.profile-tools-wrapper .MuiTypography-h2-288{ + font-size: 18px; +} +.profile-tools-wrapper .MuiButton-root-310 { + background-color: #dadada; + color: #afafaf; +} +.profile-tools-wrapper .MuiButton-root-310.ProfileTools-active-270 { + background-color: #0086f8; + color: #fff; + +} \ No newline at end of file -- GitLab From aeea7808401532f5ee479c4baa50c785f387db8a Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Thu, 8 Nov 2018 12:20:16 +0200 Subject: [PATCH 138/249] NY-4607 compiled proto files for login integration --- src/utils/grpc_proto/account.proto | 48 + src/utils/grpc_proto/auth.proto | 5 + src/utils/grpc_proto/generated/account_pb.js | 1819 ++++++++++++++--- .../generated/account_pb_service.js | 205 +- src/utils/grpc_proto/generated/auth_pb.js | 265 ++- .../grpc_proto/generated/auth_pb_service.js | 69 +- src/utils/grpc_proto/readme.md | 1 + src/utils/services/accounts.js | 39 +- 8 files changed, 2149 insertions(+), 302 deletions(-) diff --git a/src/utils/grpc_proto/account.proto b/src/utils/grpc_proto/account.proto index 574d115..d3ce757 100644 --- a/src/utils/grpc_proto/account.proto +++ b/src/utils/grpc_proto/account.proto @@ -18,6 +18,8 @@ service AccountService { rpc createAccount(CreateAccountRequest) returns (AccountResponse); rpc getAllAccountsByProfileId(AccountsByProfileIdRequest) returns (AccountsResponse); rpc getAccountByAccountId(AccountByAccountIdRequest) returns (AccountResponse); + rpc getAccountByUsername(GetByUsernameRequest) returns (AccountResponse); + rpc getAccountByQrCode(GetByQrCodeRequest) returns (AccountResponse); rpc getAccountByAuthenticationProvider(AccountByAuthenticationProviderRequest) returns (AccountResponse); rpc updateAccount (UpdateAccountRequest) returns (AccountResponse); rpc updateProfile (UpdateProfileRequest) returns (ProfileResponse); @@ -28,6 +30,10 @@ service AccountService { rpc addContactInfoToAccount(AddContactInfoRequest) returns (StatusResponse); rpc deleteContactInfoFromAccount(DeleteContactInfoRequest) returns (StatusResponse); rpc editContactInfoForAccount(EditContactInfoRequest) returns (StatusResponse); + rpc searchByUsername(GetByUsernameRequest) returns (SearchResponse); + rpc searchByPhoneNumber(GetByPhoneNumberRequest) returns (SearchResponse); + rpc searchByEmail(GetByEmailRequest) returns (SearchResponse); + rpc searchByQrCode(GetByQrCodeRequest) returns (SearchResponse); } enum AuthenticationType { @@ -252,6 +258,37 @@ message ProfileResponse { } } +message GetByUsernameRequest { + string username = 1; +} + +message GetByPhoneNumberRequest { + string phoneNumber = 1; +} + +message GetByEmailRequest { + string email = 1; +} + +message GetByQrCodeRequest { + string qrCode = 1; +} + +message SearchResponse { + uint64 requestId = 1; + oneof result { + ErrorResponse error = 2; + SearchResultDetails searchResultDetails = 3; + } +} + +message SearchResultDetails { + string accountId = 1; + bytes avatar = 2; + string firstName = 3; + string lastName = 4; +} + message ErrorResponse { enum Cause { INTERNAL_SERVER_ERROR = 0; @@ -289,6 +326,17 @@ message ErrorResponse { ERROR_REMOVING_CONTACT_INFO = 32; ERROR_EDITING_CONTACT_INFO = 33; INVALID_BIRTHDAY_DATE = 34; + MISSING_USERNAME = 35; + MISSING_EMAIL = 36; + MISSING_PHONENUMBER = 37; + MISSING_QR_CODE = 38; + INVALID_PHONENUMBER = 39; + INVALID_QR_CODE = 40; + USERNAME_NOT_FOUND = 41; + EMAIL_NOT_FOUND = 42; + PHONENUMBER_NOT_FOUND = 43; + QR_CODE_NOT_FOUND = 44; + MULTIPLE_INVALID_PARAMETERS = 45; } Cause cause = 1; string message = 2; diff --git a/src/utils/grpc_proto/auth.proto b/src/utils/grpc_proto/auth.proto index 7b7c578..1ed866b 100644 --- a/src/utils/grpc_proto/auth.proto +++ b/src/utils/grpc_proto/auth.proto @@ -18,6 +18,7 @@ service AuthenticationService { rpc generateAccessToken(GenerateAccessTokenRequest) returns (GenerateAccessTokenResponse); rpc exchangeRefreshToken(ExchangeRefreshTokenRequest) returns (GenerateTokenResponse); rpc verifyAuthProvider(VerifyAuthProviderRequest) returns (StatusResponse); + rpc generateAdminAccessToken(EmptyRequest) returns (GenerateTokenResponse); } message GenerateAuthTokenRequest { @@ -38,6 +39,9 @@ message GenerateVerifyTokenRequest { SendMethod sendVia = 3; } +message EmptyRequest { +} + message GenerateAccessTokenRequest { RequestTokenType tokenType = 1; string instanceId = 2; @@ -114,6 +118,7 @@ message ErrorResponse { SOCIAL_TOKEN_INVALID = 14; MAX_DEVICE_FAILED_ATTEMPTS_REACHED = 15; REFRESH_TOKEN_INVALID = 16; + ACCESS_TOKEN_INVALID_ROLE = 17; } Cause cause = 1; string message = 2; diff --git a/src/utils/grpc_proto/generated/account_pb.js b/src/utils/grpc_proto/generated/account_pb.js index 2c15c81..aaa5b86 100644 --- a/src/utils/grpc_proto/generated/account_pb.js +++ b/src/utils/grpc_proto/generated/account_pb.js @@ -1,5 +1,4 @@ /* eslint-disable */ - /** * @fileoverview * @enhanceable @@ -13,6 +12,7 @@ var jspb = require('google-protobuf'); var goog = jspb; var global = Function('return this')(); +goog.exportSymbol('proto.account.AccessStatus', null, global); goog.exportSymbol('proto.account.AccountByAccountIdRequest', null, global); goog.exportSymbol('proto.account.AccountByAuthenticationProviderRequest', null, global); goog.exportSymbol('proto.account.AccountDetails', null, global); @@ -30,6 +30,7 @@ goog.exportSymbol('proto.account.ContactType', null, global); goog.exportSymbol('proto.account.CreateAccountRequest', null, global); goog.exportSymbol('proto.account.CreatePendingAccountRequest', null, global); goog.exportSymbol('proto.account.CreatePendingAccountResponse', null, global); +goog.exportSymbol('proto.account.Date', null, global); goog.exportSymbol('proto.account.DeleteAccountRequest', null, global); goog.exportSymbol('proto.account.DeleteAuthenticationProviderRequest', null, global); goog.exportSymbol('proto.account.DeleteContactInfoRequest', null, global); @@ -37,11 +38,16 @@ goog.exportSymbol('proto.account.DeleteProfileRequest', null, global); goog.exportSymbol('proto.account.EditContactInfoRequest', null, global); goog.exportSymbol('proto.account.ErrorResponse', null, global); goog.exportSymbol('proto.account.ErrorResponse.Cause', null, global); +goog.exportSymbol('proto.account.GetByEmailRequest', null, global); +goog.exportSymbol('proto.account.GetByPhoneNumberRequest', null, global); +goog.exportSymbol('proto.account.GetByQrCodeRequest', null, global); +goog.exportSymbol('proto.account.GetByUsernameRequest', null, global); goog.exportSymbol('proto.account.PendingAccountDetails', null, global); goog.exportSymbol('proto.account.ProfileDetails', null, global); goog.exportSymbol('proto.account.ProfileResponse', null, global); goog.exportSymbol('proto.account.Role', null, global); -goog.exportSymbol('proto.account.Status', null, global); +goog.exportSymbol('proto.account.SearchResponse', null, global); +goog.exportSymbol('proto.account.SearchResultDetails', null, global); goog.exportSymbol('proto.account.StatusResponse', null, global); goog.exportSymbol('proto.account.UpdateAccountRequest', null, global); goog.exportSymbol('proto.account.UpdateProfileRequest', null, global); @@ -275,9 +281,9 @@ proto.account.CompletePendingAccountCreationRequest.toObject = function(includeI firstname: jspb.Message.getFieldWithDefault(msg, 5, ""), lastname: jspb.Message.getFieldWithDefault(msg, 6, ""), username: jspb.Message.getFieldWithDefault(msg, 7, ""), - accountstatus: jspb.Message.getFieldWithDefault(msg, 8, ""), qrcode: jspb.Message.getFieldWithDefault(msg, 9, ""), - rolesList: jspb.Message.getRepeatedField(msg, 11) + rolesList: jspb.Message.getRepeatedField(msg, 11), + accessstatus: jspb.Message.getFieldWithDefault(msg, 12, 0) }; if (includeInstance) { @@ -342,10 +348,6 @@ proto.account.CompletePendingAccountCreationRequest.deserializeBinaryFromReader var value = /** @type {string} */ (reader.readString()); msg.setUsername(value); break; - case 8: - var value = /** @type {string} */ (reader.readString()); - msg.setAccountstatus(value); - break; case 9: var value = /** @type {string} */ (reader.readString()); msg.setQrcode(value); @@ -354,6 +356,10 @@ proto.account.CompletePendingAccountCreationRequest.deserializeBinaryFromReader var value = /** @type {!Array} */ (reader.readPackedEnum()); msg.setRolesList(value); break; + case 12: + var value = /** @type {!proto.account.AccessStatus} */ (reader.readEnum()); + msg.setAccessstatus(value); + break; default: reader.skipField(); break; @@ -432,13 +438,6 @@ proto.account.CompletePendingAccountCreationRequest.serializeBinaryToWriter = fu f ); } - f = message.getAccountstatus(); - if (f.length > 0) { - writer.writeString( - 8, - f - ); - } f = message.getQrcode(); if (f.length > 0) { writer.writeString( @@ -453,6 +452,13 @@ proto.account.CompletePendingAccountCreationRequest.serializeBinaryToWriter = fu f ); } + f = message.getAccessstatus(); + if (f !== 0.0) { + writer.writeEnum( + 12, + f + ); + } }; @@ -585,21 +591,6 @@ proto.account.CompletePendingAccountCreationRequest.prototype.setUsername = func }; -/** - * optional string accountStatus = 8; - * @return {string} - */ -proto.account.CompletePendingAccountCreationRequest.prototype.getAccountstatus = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, "")); -}; - - -/** @param {string} value */ -proto.account.CompletePendingAccountCreationRequest.prototype.setAccountstatus = function(value) { - jspb.Message.setProto3StringField(this, 8, value); -}; - - /** * optional string qrCode = 9; * @return {string} @@ -644,6 +635,21 @@ proto.account.CompletePendingAccountCreationRequest.prototype.clearRolesList = f }; +/** + * optional AccessStatus accessStatus = 12; + * @return {!proto.account.AccessStatus} + */ +proto.account.CompletePendingAccountCreationRequest.prototype.getAccessstatus = function() { + return /** @type {!proto.account.AccessStatus} */ (jspb.Message.getFieldWithDefault(this, 12, 0)); +}; + + +/** @param {!proto.account.AccessStatus} value */ +proto.account.CompletePendingAccountCreationRequest.prototype.setAccessstatus = function(value) { + jspb.Message.setProto3EnumField(this, 12, value); +}; + + /** * Generated by JsPbCodeGenerator. @@ -956,6 +962,202 @@ proto.account.AccountsByProfileIdRequest.prototype.setProfileid = function(value +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.account.Date = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.account.Date, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.account.Date.displayName = 'proto.account.Date'; +} + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.account.Date.prototype.toObject = function(opt_includeInstance) { + return proto.account.Date.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.account.Date} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.Date.toObject = function(includeInstance, msg) { + var f, obj = { + year: jspb.Message.getFieldWithDefault(msg, 1, 0), + month: jspb.Message.getFieldWithDefault(msg, 2, 0), + day: jspb.Message.getFieldWithDefault(msg, 3, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.account.Date} + */ +proto.account.Date.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.account.Date; + return proto.account.Date.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.account.Date} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.account.Date} + */ +proto.account.Date.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readInt32()); + msg.setYear(value); + break; + case 2: + var value = /** @type {number} */ (reader.readInt32()); + msg.setMonth(value); + break; + case 3: + var value = /** @type {number} */ (reader.readInt32()); + msg.setDay(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.account.Date.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.account.Date.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.account.Date} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.Date.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getYear(); + if (f !== 0) { + writer.writeInt32( + 1, + f + ); + } + f = message.getMonth(); + if (f !== 0) { + writer.writeInt32( + 2, + f + ); + } + f = message.getDay(); + if (f !== 0) { + writer.writeInt32( + 3, + f + ); + } +}; + + +/** + * optional int32 year = 1; + * @return {number} + */ +proto.account.Date.prototype.getYear = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** @param {number} value */ +proto.account.Date.prototype.setYear = function(value) { + jspb.Message.setProto3IntField(this, 1, value); +}; + + +/** + * optional int32 month = 2; + * @return {number} + */ +proto.account.Date.prototype.getMonth = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** @param {number} value */ +proto.account.Date.prototype.setMonth = function(value) { + jspb.Message.setProto3IntField(this, 2, value); +}; + + +/** + * optional int32 day = 3; + * @return {number} + */ +proto.account.Date.prototype.getDay = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +}; + + +/** @param {number} value */ +proto.account.Date.prototype.setDay = function(value) { + jspb.Message.setProto3IntField(this, 3, value); +}; + + + /** * Generated by JsPbCodeGenerator. * @param {Array=} opt_data Optional initial data array, typically from a @@ -1327,8 +1529,9 @@ proto.account.UpdateAccountRequest.toObject = function(includeInstance, msg) { firstname: jspb.Message.getFieldWithDefault(msg, 5, ""), lastname: jspb.Message.getFieldWithDefault(msg, 6, ""), username: jspb.Message.getFieldWithDefault(msg, 7, ""), - accountstatus: jspb.Message.getFieldWithDefault(msg, 8, ""), - rolesList: jspb.Message.getRepeatedField(msg, 10) + rolesList: jspb.Message.getRepeatedField(msg, 10), + accessstatus: jspb.Message.getFieldWithDefault(msg, 11, 0), + birthday: (f = msg.getBirthday()) && proto.account.Date.toObject(includeInstance, f) }; if (includeInstance) { @@ -1393,14 +1596,19 @@ proto.account.UpdateAccountRequest.deserializeBinaryFromReader = function(msg, r var value = /** @type {string} */ (reader.readString()); msg.setUsername(value); break; - case 8: - var value = /** @type {string} */ (reader.readString()); - msg.setAccountstatus(value); - break; case 10: var value = /** @type {!Array} */ (reader.readPackedEnum()); msg.setRolesList(value); break; + case 11: + var value = /** @type {!proto.account.AccessStatus} */ (reader.readEnum()); + msg.setAccessstatus(value); + break; + case 12: + var value = new proto.account.Date; + reader.readMessage(value,proto.account.Date.deserializeBinaryFromReader); + msg.setBirthday(value); + break; default: reader.skipField(); break; @@ -1479,13 +1687,6 @@ proto.account.UpdateAccountRequest.serializeBinaryToWriter = function(message, w f ); } - f = message.getAccountstatus(); - if (f.length > 0) { - writer.writeString( - 8, - f - ); - } f = message.getRolesList(); if (f.length > 0) { writer.writePackedEnum( @@ -1493,6 +1694,21 @@ proto.account.UpdateAccountRequest.serializeBinaryToWriter = function(message, w f ); } + f = message.getAccessstatus(); + if (f !== 0.0) { + writer.writeEnum( + 11, + f + ); + } + f = message.getBirthday(); + if (f != null) { + writer.writeMessage( + 12, + f, + proto.account.Date.serializeBinaryToWriter + ); + } }; @@ -1625,21 +1841,6 @@ proto.account.UpdateAccountRequest.prototype.setUsername = function(value) { }; -/** - * optional string accountStatus = 8; - * @return {string} - */ -proto.account.UpdateAccountRequest.prototype.getAccountstatus = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, "")); -}; - - -/** @param {string} value */ -proto.account.UpdateAccountRequest.prototype.setAccountstatus = function(value) { - jspb.Message.setProto3StringField(this, 8, value); -}; - - /** * repeated Role roles = 10; * @return {!Array} @@ -1669,6 +1870,51 @@ proto.account.UpdateAccountRequest.prototype.clearRolesList = function() { }; +/** + * optional AccessStatus accessStatus = 11; + * @return {!proto.account.AccessStatus} + */ +proto.account.UpdateAccountRequest.prototype.getAccessstatus = function() { + return /** @type {!proto.account.AccessStatus} */ (jspb.Message.getFieldWithDefault(this, 11, 0)); +}; + + +/** @param {!proto.account.AccessStatus} value */ +proto.account.UpdateAccountRequest.prototype.setAccessstatus = function(value) { + jspb.Message.setProto3EnumField(this, 11, value); +}; + + +/** + * optional Date birthday = 12; + * @return {?proto.account.Date} + */ +proto.account.UpdateAccountRequest.prototype.getBirthday = function() { + return /** @type{?proto.account.Date} */ ( + jspb.Message.getWrapperField(this, proto.account.Date, 12)); +}; + + +/** @param {?proto.account.Date|undefined} value */ +proto.account.UpdateAccountRequest.prototype.setBirthday = function(value) { + jspb.Message.setWrapperField(this, 12, value); +}; + + +proto.account.UpdateAccountRequest.prototype.clearBirthday = function() { + this.setBirthday(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {!boolean} + */ +proto.account.UpdateAccountRequest.prototype.hasBirthday = function() { + return jspb.Message.getField(this, 12) != null; +}; + + /** * Generated by JsPbCodeGenerator. @@ -3373,7 +3619,6 @@ proto.account.UpdateProfileRequest.prototype.toObject = function(opt_includeInst proto.account.UpdateProfileRequest.toObject = function(includeInstance, msg) { var f, obj = { profileid: jspb.Message.getFieldWithDefault(msg, 1, ""), - backupauthprovider: (f = msg.getBackupauthprovider()) && proto.account.AuthProviderDetails.toObject(includeInstance, f), passcode: jspb.Message.getFieldWithDefault(msg, 4, ""), defaultaccountid: jspb.Message.getFieldWithDefault(msg, 5, "") }; @@ -3416,11 +3661,6 @@ proto.account.UpdateProfileRequest.deserializeBinaryFromReader = function(msg, r var value = /** @type {string} */ (reader.readString()); msg.setProfileid(value); break; - case 3: - var value = new proto.account.AuthProviderDetails; - reader.readMessage(value,proto.account.AuthProviderDetails.deserializeBinaryFromReader); - msg.setBackupauthprovider(value); - break; case 4: var value = /** @type {string} */ (reader.readString()); msg.setPasscode(value); @@ -3465,14 +3705,6 @@ proto.account.UpdateProfileRequest.serializeBinaryToWriter = function(message, w f ); } - f = message.getBackupauthprovider(); - if (f != null) { - writer.writeMessage( - 3, - f, - proto.account.AuthProviderDetails.serializeBinaryToWriter - ); - } f = message.getPasscode(); if (f.length > 0) { writer.writeString( @@ -3505,36 +3737,6 @@ proto.account.UpdateProfileRequest.prototype.setProfileid = function(value) { }; -/** - * optional AuthProviderDetails backupAuthProvider = 3; - * @return {?proto.account.AuthProviderDetails} - */ -proto.account.UpdateProfileRequest.prototype.getBackupauthprovider = function() { - return /** @type{?proto.account.AuthProviderDetails} */ ( - jspb.Message.getWrapperField(this, proto.account.AuthProviderDetails, 3)); -}; - - -/** @param {?proto.account.AuthProviderDetails|undefined} value */ -proto.account.UpdateProfileRequest.prototype.setBackupauthprovider = function(value) { - jspb.Message.setWrapperField(this, 3, value); -}; - - -proto.account.UpdateProfileRequest.prototype.clearBackupauthprovider = function() { - this.setBackupauthprovider(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {!boolean} - */ -proto.account.UpdateProfileRequest.prototype.hasBackupauthprovider = function() { - return jspb.Message.getField(this, 3) != null; -}; - - /** * optional string passcode = 4; * @return {string} @@ -3994,11 +4196,12 @@ proto.account.AccountDetails.toObject = function(includeInstance, msg) { firstname: jspb.Message.getFieldWithDefault(msg, 8, ""), lastname: jspb.Message.getFieldWithDefault(msg, 9, ""), username: jspb.Message.getFieldWithDefault(msg, 10, ""), - accountstatus: jspb.Message.getFieldWithDefault(msg, 11, ""), qrcode: jspb.Message.getFieldWithDefault(msg, 12, ""), contactsinfoList: jspb.Message.toObjectList(msg.getContactsinfoList(), proto.account.ContactDetails.toObject, includeInstance), - rolesList: jspb.Message.getRepeatedField(msg, 15) + rolesList: jspb.Message.getRepeatedField(msg, 15), + accessstatus: jspb.Message.getFieldWithDefault(msg, 16, 0), + birthday: (f = msg.getBirthday()) && proto.account.Date.toObject(includeInstance, f) }; if (includeInstance) { @@ -4075,10 +4278,6 @@ proto.account.AccountDetails.deserializeBinaryFromReader = function(msg, reader) var value = /** @type {string} */ (reader.readString()); msg.setUsername(value); break; - case 11: - var value = /** @type {string} */ (reader.readString()); - msg.setAccountstatus(value); - break; case 12: var value = /** @type {string} */ (reader.readString()); msg.setQrcode(value); @@ -4092,6 +4291,15 @@ proto.account.AccountDetails.deserializeBinaryFromReader = function(msg, reader) var value = /** @type {!Array} */ (reader.readPackedEnum()); msg.setRolesList(value); break; + case 16: + var value = /** @type {!proto.account.AccessStatus} */ (reader.readEnum()); + msg.setAccessstatus(value); + break; + case 17: + var value = new proto.account.Date; + reader.readMessage(value,proto.account.Date.deserializeBinaryFromReader); + msg.setBirthday(value); + break; default: reader.skipField(); break; @@ -4191,13 +4399,6 @@ proto.account.AccountDetails.serializeBinaryToWriter = function(message, writer) f ); } - f = message.getAccountstatus(); - if (f.length > 0) { - writer.writeString( - 11, - f - ); - } f = message.getQrcode(); if (f.length > 0) { writer.writeString( @@ -4220,6 +4421,21 @@ proto.account.AccountDetails.serializeBinaryToWriter = function(message, writer) f ); } + f = message.getAccessstatus(); + if (f !== 0.0) { + writer.writeEnum( + 16, + f + ); + } + f = message.getBirthday(); + if (f != null) { + writer.writeMessage( + 17, + f, + proto.account.Date.serializeBinaryToWriter + ); + } }; @@ -4397,21 +4613,6 @@ proto.account.AccountDetails.prototype.setUsername = function(value) { }; -/** - * optional string accountStatus = 11; - * @return {string} - */ -proto.account.AccountDetails.prototype.getAccountstatus = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 11, "")); -}; - - -/** @param {string} value */ -proto.account.AccountDetails.prototype.setAccountstatus = function(value) { - jspb.Message.setProto3StringField(this, 11, value); -}; - - /** * optional string qrCode = 12; * @return {string} @@ -4487,6 +4688,51 @@ proto.account.AccountDetails.prototype.clearRolesList = function() { }; +/** + * optional AccessStatus accessStatus = 16; + * @return {!proto.account.AccessStatus} + */ +proto.account.AccountDetails.prototype.getAccessstatus = function() { + return /** @type {!proto.account.AccessStatus} */ (jspb.Message.getFieldWithDefault(this, 16, 0)); +}; + + +/** @param {!proto.account.AccessStatus} value */ +proto.account.AccountDetails.prototype.setAccessstatus = function(value) { + jspb.Message.setProto3EnumField(this, 16, value); +}; + + +/** + * optional Date birthday = 17; + * @return {?proto.account.Date} + */ +proto.account.AccountDetails.prototype.getBirthday = function() { + return /** @type{?proto.account.Date} */ ( + jspb.Message.getWrapperField(this, proto.account.Date, 17)); +}; + + +/** @param {?proto.account.Date|undefined} value */ +proto.account.AccountDetails.prototype.setBirthday = function(value) { + jspb.Message.setWrapperField(this, 17, value); +}; + + +proto.account.AccountDetails.prototype.clearBirthday = function() { + this.setBirthday(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {!boolean} + */ +proto.account.AccountDetails.prototype.hasBirthday = function() { + return jspb.Message.getField(this, 17) != null; +}; + + /** * Generated by JsPbCodeGenerator. @@ -5477,7 +5723,6 @@ proto.account.ProfileDetails.toObject = function(includeInstance, msg) { profileid: jspb.Message.getFieldWithDefault(msg, 1, ""), authprovidersList: jspb.Message.toObjectList(msg.getAuthprovidersList(), proto.account.AuthProviderDetails.toObject, includeInstance), - backupauthprovider: (f = msg.getBackupauthprovider()) && proto.account.AuthProviderDetails.toObject(includeInstance, f), passcode: jspb.Message.getFieldWithDefault(msg, 4, ""), defaultaccountid: jspb.Message.getFieldWithDefault(msg, 5, "") }; @@ -5525,11 +5770,6 @@ proto.account.ProfileDetails.deserializeBinaryFromReader = function(msg, reader) reader.readMessage(value,proto.account.AuthProviderDetails.deserializeBinaryFromReader); msg.addAuthproviders(value); break; - case 3: - var value = new proto.account.AuthProviderDetails; - reader.readMessage(value,proto.account.AuthProviderDetails.deserializeBinaryFromReader); - msg.setBackupauthprovider(value); - break; case 4: var value = /** @type {string} */ (reader.readString()); msg.setPasscode(value); @@ -5582,14 +5822,6 @@ proto.account.ProfileDetails.serializeBinaryToWriter = function(message, writer) proto.account.AuthProviderDetails.serializeBinaryToWriter ); } - f = message.getBackupauthprovider(); - if (f != null) { - writer.writeMessage( - 3, - f, - proto.account.AuthProviderDetails.serializeBinaryToWriter - ); - } f = message.getPasscode(); if (f.length > 0) { writer.writeString( @@ -5653,36 +5885,6 @@ proto.account.ProfileDetails.prototype.clearAuthprovidersList = function() { }; -/** - * optional AuthProviderDetails backupAuthProvider = 3; - * @return {?proto.account.AuthProviderDetails} - */ -proto.account.ProfileDetails.prototype.getBackupauthprovider = function() { - return /** @type{?proto.account.AuthProviderDetails} */ ( - jspb.Message.getWrapperField(this, proto.account.AuthProviderDetails, 3)); -}; - - -/** @param {?proto.account.AuthProviderDetails|undefined} value */ -proto.account.ProfileDetails.prototype.setBackupauthprovider = function(value) { - jspb.Message.setWrapperField(this, 3, value); -}; - - -proto.account.ProfileDetails.prototype.clearBackupauthprovider = function() { - this.setBackupauthprovider(undefined); -}; - - -/** - * Returns whether this field is set. - * @return {!boolean} - */ -proto.account.ProfileDetails.prototype.hasBackupauthprovider = function() { - return jspb.Message.getField(this, 3) != null; -}; - - /** * optional string passcode = 4; * @return {string} @@ -5980,12 +6182,12 @@ proto.account.ProfileResponse.prototype.hasProfiledetails = function() { * @extends {jspb.Message} * @constructor */ -proto.account.ErrorResponse = function(opt_data) { +proto.account.GetByUsernameRequest = function(opt_data) { jspb.Message.initialize(this, opt_data, 0, -1, null, null); }; -goog.inherits(proto.account.ErrorResponse, jspb.Message); +goog.inherits(proto.account.GetByUsernameRequest, jspb.Message); if (goog.DEBUG && !COMPILED) { - proto.account.ErrorResponse.displayName = 'proto.account.ErrorResponse'; + proto.account.GetByUsernameRequest.displayName = 'proto.account.GetByUsernameRequest'; } @@ -6000,8 +6202,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * for transitional soy proto support: http://goto/soy-param-migration * @return {!Object} */ -proto.account.ErrorResponse.prototype.toObject = function(opt_includeInstance) { - return proto.account.ErrorResponse.toObject(opt_includeInstance, this); +proto.account.GetByUsernameRequest.prototype.toObject = function(opt_includeInstance) { + return proto.account.GetByUsernameRequest.toObject(opt_includeInstance, this); }; @@ -6010,14 +6212,13 @@ proto.account.ErrorResponse.prototype.toObject = function(opt_includeInstance) { * @param {boolean|undefined} includeInstance Whether to include the JSPB * instance for transitional soy proto support: * http://goto/soy-param-migration - * @param {!proto.account.ErrorResponse} msg The msg instance to transform. + * @param {!proto.account.GetByUsernameRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.account.ErrorResponse.toObject = function(includeInstance, msg) { +proto.account.GetByUsernameRequest.toObject = function(includeInstance, msg) { var f, obj = { - cause: jspb.Message.getFieldWithDefault(msg, 1, 0), - message: jspb.Message.getFieldWithDefault(msg, 2, "") + username: jspb.Message.getFieldWithDefault(msg, 1, "") }; if (includeInstance) { @@ -6031,23 +6232,23 @@ proto.account.ErrorResponse.toObject = function(includeInstance, msg) { /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.account.ErrorResponse} + * @return {!proto.account.GetByUsernameRequest} */ -proto.account.ErrorResponse.deserializeBinary = function(bytes) { +proto.account.GetByUsernameRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.account.ErrorResponse; - return proto.account.ErrorResponse.deserializeBinaryFromReader(msg, reader); + var msg = new proto.account.GetByUsernameRequest; + return proto.account.GetByUsernameRequest.deserializeBinaryFromReader(msg, reader); }; /** * Deserializes binary data (in protobuf wire format) from the * given reader into the given message object. - * @param {!proto.account.ErrorResponse} msg The message object to deserialize into. + * @param {!proto.account.GetByUsernameRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.account.ErrorResponse} + * @return {!proto.account.GetByUsernameRequest} */ -proto.account.ErrorResponse.deserializeBinaryFromReader = function(msg, reader) { +proto.account.GetByUsernameRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -6055,12 +6256,8 @@ proto.account.ErrorResponse.deserializeBinaryFromReader = function(msg, reader) var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {!proto.account.ErrorResponse.Cause} */ (reader.readEnum()); - msg.setCause(value); - break; - case 2: var value = /** @type {string} */ (reader.readString()); - msg.setMessage(value); + msg.setUsername(value); break; default: reader.skipField(); @@ -6075,9 +6272,9 @@ proto.account.ErrorResponse.deserializeBinaryFromReader = function(msg, reader) * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.account.ErrorResponse.prototype.serializeBinary = function() { +proto.account.GetByUsernameRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.account.ErrorResponse.serializeBinaryToWriter(this, writer); + proto.account.GetByUsernameRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -6085,23 +6282,16 @@ proto.account.ErrorResponse.prototype.serializeBinary = function() { /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.account.ErrorResponse} message + * @param {!proto.account.GetByUsernameRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.account.ErrorResponse.serializeBinaryToWriter = function(message, writer) { +proto.account.GetByUsernameRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getCause(); - if (f !== 0.0) { - writer.writeEnum( - 1, - f - ); - } - f = message.getMessage(); + f = message.getUsername(); if (f.length > 0) { writer.writeString( - 2, + 1, f ); } @@ -6109,72 +6299,1167 @@ proto.account.ErrorResponse.serializeBinaryToWriter = function(message, writer) /** - * @enum {number} + * optional string username = 1; + * @return {string} */ -proto.account.ErrorResponse.Cause = { - INTERNAL_SERVER_ERROR: 0, - MISSING_FIRST_NAME: 1, - EMAIL_ALREADY_USED: 2, - EMAIL_INVALID: 3, - PHONE_NUMBER_ALREADY_USED: 4, - PHONE_NUMBER_INVALID: 5, - USERNAME_ALREADY_USED: 6, - USERNAME_INVALID: 7, - ACCOUNT_NOT_FOUND: 8, - MISSING_AUTH_PROVIDER_TYPE: 9, - MISSING_AUTH_PROVIDER_IDENTIFIER: 10, - MISSING_PROFILE_ID: 11, - MISSING_ACCOUNT_ID: 12, - INVALID_FIRST_NAME: 13, - INVALID_LAST_NAME: 14, - INVALID_AUTH_PROVIDER_TYPE: 15, - ERROR_CREATING_ACCOUNT: 16, - ERROR_UPDATING_ACCOUNT: 17, - ERROR_UPDATING_PROFILE: 18, - ACCOUNT_NAME_INVALID: 19, - ACCOUNT_ALREADY_CREATED: 20, - ERROR_DELETING_ACCOUNT: 21, - ERROR_DELETING_PROFILE: 22, - ERROR_ADDING_AUTH_PROVIDER: 23, - ERROR_DELETING_AUTH_PROVIDER: 24, - PROFILE_NOT_FOUND: 25, - INVALID_PROFILE_ID: 26, - AUTH_PROVIDER_ALREADY_USED: 27, - MISSING_CONTACT_INFO_TYPE: 28, - MISSING_CONTACT_INFO_IDENTIFIER: 29, - INVALID_ACCOUNT_ID: 30, - ERROR_ADDING_CONTACT_INFO: 31, - ERROR_REMOVING_CONTACT_INFO: 32, - ERROR_EDITING_CONTACT_INFO: 33 +proto.account.GetByUsernameRequest.prototype.getUsername = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** @param {string} value */ +proto.account.GetByUsernameRequest.prototype.setUsername = function(value) { + jspb.Message.setProto3StringField(this, 1, value); }; + + /** - * optional Cause cause = 1; - * @return {!proto.account.ErrorResponse.Cause} + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor */ -proto.account.ErrorResponse.prototype.getCause = function() { - return /** @type {!proto.account.ErrorResponse.Cause} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +proto.account.GetByPhoneNumberRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); }; +goog.inherits(proto.account.GetByPhoneNumberRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.account.GetByPhoneNumberRequest.displayName = 'proto.account.GetByPhoneNumberRequest'; +} -/** @param {!proto.account.ErrorResponse.Cause} value */ -proto.account.ErrorResponse.prototype.setCause = function(value) { - jspb.Message.setProto3EnumField(this, 1, value); +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.account.GetByPhoneNumberRequest.prototype.toObject = function(opt_includeInstance) { + return proto.account.GetByPhoneNumberRequest.toObject(opt_includeInstance, this); }; /** - * optional string message = 2; - * @return {string} + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.account.GetByPhoneNumberRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.account.ErrorResponse.prototype.getMessage = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +proto.account.GetByPhoneNumberRequest.toObject = function(includeInstance, msg) { + var f, obj = { + phonenumber: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; }; +} -/** @param {string} value */ -proto.account.ErrorResponse.prototype.setMessage = function(value) { - jspb.Message.setProto3StringField(this, 2, value); +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.account.GetByPhoneNumberRequest} + */ +proto.account.GetByPhoneNumberRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.account.GetByPhoneNumberRequest; + return proto.account.GetByPhoneNumberRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.account.GetByPhoneNumberRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.account.GetByPhoneNumberRequest} + */ +proto.account.GetByPhoneNumberRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setPhonenumber(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.account.GetByPhoneNumberRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.account.GetByPhoneNumberRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.account.GetByPhoneNumberRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.GetByPhoneNumberRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getPhonenumber(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string phoneNumber = 1; + * @return {string} + */ +proto.account.GetByPhoneNumberRequest.prototype.getPhonenumber = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** @param {string} value */ +proto.account.GetByPhoneNumberRequest.prototype.setPhonenumber = function(value) { + jspb.Message.setProto3StringField(this, 1, value); +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.account.GetByEmailRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.account.GetByEmailRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.account.GetByEmailRequest.displayName = 'proto.account.GetByEmailRequest'; +} + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.account.GetByEmailRequest.prototype.toObject = function(opt_includeInstance) { + return proto.account.GetByEmailRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.account.GetByEmailRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.GetByEmailRequest.toObject = function(includeInstance, msg) { + var f, obj = { + email: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.account.GetByEmailRequest} + */ +proto.account.GetByEmailRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.account.GetByEmailRequest; + return proto.account.GetByEmailRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.account.GetByEmailRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.account.GetByEmailRequest} + */ +proto.account.GetByEmailRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setEmail(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.account.GetByEmailRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.account.GetByEmailRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.account.GetByEmailRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.GetByEmailRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getEmail(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string email = 1; + * @return {string} + */ +proto.account.GetByEmailRequest.prototype.getEmail = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** @param {string} value */ +proto.account.GetByEmailRequest.prototype.setEmail = function(value) { + jspb.Message.setProto3StringField(this, 1, value); +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.account.GetByQrCodeRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.account.GetByQrCodeRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.account.GetByQrCodeRequest.displayName = 'proto.account.GetByQrCodeRequest'; +} + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.account.GetByQrCodeRequest.prototype.toObject = function(opt_includeInstance) { + return proto.account.GetByQrCodeRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.account.GetByQrCodeRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.GetByQrCodeRequest.toObject = function(includeInstance, msg) { + var f, obj = { + qrcode: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.account.GetByQrCodeRequest} + */ +proto.account.GetByQrCodeRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.account.GetByQrCodeRequest; + return proto.account.GetByQrCodeRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.account.GetByQrCodeRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.account.GetByQrCodeRequest} + */ +proto.account.GetByQrCodeRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setQrcode(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.account.GetByQrCodeRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.account.GetByQrCodeRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.account.GetByQrCodeRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.GetByQrCodeRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getQrcode(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string qrCode = 1; + * @return {string} + */ +proto.account.GetByQrCodeRequest.prototype.getQrcode = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** @param {string} value */ +proto.account.GetByQrCodeRequest.prototype.setQrcode = function(value) { + jspb.Message.setProto3StringField(this, 1, value); +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.account.SearchResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.account.SearchResponse.oneofGroups_); +}; +goog.inherits(proto.account.SearchResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.account.SearchResponse.displayName = 'proto.account.SearchResponse'; +} +/** + * Oneof group definitions for this message. Each group defines the field + * numbers belonging to that group. When of these fields' value is set, all + * other fields in the group are cleared. During deserialization, if multiple + * fields are encountered for a group, only the last value seen will be kept. + * @private {!Array>} + * @const + */ +proto.account.SearchResponse.oneofGroups_ = [[2,3]]; + +/** + * @enum {number} + */ +proto.account.SearchResponse.ResultCase = { + RESULT_NOT_SET: 0, + ERROR: 2, + SEARCHRESULTDETAILS: 3 +}; + +/** + * @return {proto.account.SearchResponse.ResultCase} + */ +proto.account.SearchResponse.prototype.getResultCase = function() { + return /** @type {proto.account.SearchResponse.ResultCase} */(jspb.Message.computeOneofCase(this, proto.account.SearchResponse.oneofGroups_[0])); +}; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.account.SearchResponse.prototype.toObject = function(opt_includeInstance) { + return proto.account.SearchResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.account.SearchResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.SearchResponse.toObject = function(includeInstance, msg) { + var f, obj = { + requestid: jspb.Message.getFieldWithDefault(msg, 1, 0), + error: (f = msg.getError()) && proto.account.ErrorResponse.toObject(includeInstance, f), + searchresultdetails: (f = msg.getSearchresultdetails()) && proto.account.SearchResultDetails.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.account.SearchResponse} + */ +proto.account.SearchResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.account.SearchResponse; + return proto.account.SearchResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.account.SearchResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.account.SearchResponse} + */ +proto.account.SearchResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readUint64()); + msg.setRequestid(value); + break; + case 2: + var value = new proto.account.ErrorResponse; + reader.readMessage(value,proto.account.ErrorResponse.deserializeBinaryFromReader); + msg.setError(value); + break; + case 3: + var value = new proto.account.SearchResultDetails; + reader.readMessage(value,proto.account.SearchResultDetails.deserializeBinaryFromReader); + msg.setSearchresultdetails(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.account.SearchResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.account.SearchResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.account.SearchResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.SearchResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRequestid(); + if (f !== 0) { + writer.writeUint64( + 1, + f + ); + } + f = message.getError(); + if (f != null) { + writer.writeMessage( + 2, + f, + proto.account.ErrorResponse.serializeBinaryToWriter + ); + } + f = message.getSearchresultdetails(); + if (f != null) { + writer.writeMessage( + 3, + f, + proto.account.SearchResultDetails.serializeBinaryToWriter + ); + } +}; + + +/** + * optional uint64 requestId = 1; + * @return {number} + */ +proto.account.SearchResponse.prototype.getRequestid = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** @param {number} value */ +proto.account.SearchResponse.prototype.setRequestid = function(value) { + jspb.Message.setProto3IntField(this, 1, value); +}; + + +/** + * optional ErrorResponse error = 2; + * @return {?proto.account.ErrorResponse} + */ +proto.account.SearchResponse.prototype.getError = function() { + return /** @type{?proto.account.ErrorResponse} */ ( + jspb.Message.getWrapperField(this, proto.account.ErrorResponse, 2)); +}; + + +/** @param {?proto.account.ErrorResponse|undefined} value */ +proto.account.SearchResponse.prototype.setError = function(value) { + jspb.Message.setOneofWrapperField(this, 2, proto.account.SearchResponse.oneofGroups_[0], value); +}; + + +proto.account.SearchResponse.prototype.clearError = function() { + this.setError(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {!boolean} + */ +proto.account.SearchResponse.prototype.hasError = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional SearchResultDetails searchResultDetails = 3; + * @return {?proto.account.SearchResultDetails} + */ +proto.account.SearchResponse.prototype.getSearchresultdetails = function() { + return /** @type{?proto.account.SearchResultDetails} */ ( + jspb.Message.getWrapperField(this, proto.account.SearchResultDetails, 3)); +}; + + +/** @param {?proto.account.SearchResultDetails|undefined} value */ +proto.account.SearchResponse.prototype.setSearchresultdetails = function(value) { + jspb.Message.setOneofWrapperField(this, 3, proto.account.SearchResponse.oneofGroups_[0], value); +}; + + +proto.account.SearchResponse.prototype.clearSearchresultdetails = function() { + this.setSearchresultdetails(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {!boolean} + */ +proto.account.SearchResponse.prototype.hasSearchresultdetails = function() { + return jspb.Message.getField(this, 3) != null; +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.account.SearchResultDetails = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.account.SearchResultDetails, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.account.SearchResultDetails.displayName = 'proto.account.SearchResultDetails'; +} + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.account.SearchResultDetails.prototype.toObject = function(opt_includeInstance) { + return proto.account.SearchResultDetails.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.account.SearchResultDetails} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.SearchResultDetails.toObject = function(includeInstance, msg) { + var f, obj = { + accountid: jspb.Message.getFieldWithDefault(msg, 1, ""), + avatar: msg.getAvatar_asB64(), + firstname: jspb.Message.getFieldWithDefault(msg, 3, ""), + lastname: jspb.Message.getFieldWithDefault(msg, 4, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.account.SearchResultDetails} + */ +proto.account.SearchResultDetails.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.account.SearchResultDetails; + return proto.account.SearchResultDetails.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.account.SearchResultDetails} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.account.SearchResultDetails} + */ +proto.account.SearchResultDetails.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setAccountid(value); + break; + case 2: + var value = /** @type {!Uint8Array} */ (reader.readBytes()); + msg.setAvatar(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setFirstname(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setLastname(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.account.SearchResultDetails.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.account.SearchResultDetails.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.account.SearchResultDetails} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.SearchResultDetails.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getAccountid(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getAvatar_asU8(); + if (f.length > 0) { + writer.writeBytes( + 2, + f + ); + } + f = message.getFirstname(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getLastname(); + if (f.length > 0) { + writer.writeString( + 4, + f + ); + } +}; + + +/** + * optional string accountId = 1; + * @return {string} + */ +proto.account.SearchResultDetails.prototype.getAccountid = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** @param {string} value */ +proto.account.SearchResultDetails.prototype.setAccountid = function(value) { + jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional bytes avatar = 2; + * @return {!(string|Uint8Array)} + */ +proto.account.SearchResultDetails.prototype.getAvatar = function() { + return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * optional bytes avatar = 2; + * This is a type-conversion wrapper around `getAvatar()` + * @return {string} + */ +proto.account.SearchResultDetails.prototype.getAvatar_asB64 = function() { + return /** @type {string} */ (jspb.Message.bytesAsB64( + this.getAvatar())); +}; + + +/** + * optional bytes avatar = 2; + * Note that Uint8Array is not supported on all browsers. + * @see http://caniuse.com/Uint8Array + * This is a type-conversion wrapper around `getAvatar()` + * @return {!Uint8Array} + */ +proto.account.SearchResultDetails.prototype.getAvatar_asU8 = function() { + return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( + this.getAvatar())); +}; + + +/** @param {!(string|Uint8Array)} value */ +proto.account.SearchResultDetails.prototype.setAvatar = function(value) { + jspb.Message.setProto3BytesField(this, 2, value); +}; + + +/** + * optional string firstName = 3; + * @return {string} + */ +proto.account.SearchResultDetails.prototype.getFirstname = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** @param {string} value */ +proto.account.SearchResultDetails.prototype.setFirstname = function(value) { + jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional string lastName = 4; + * @return {string} + */ +proto.account.SearchResultDetails.prototype.getLastname = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** @param {string} value */ +proto.account.SearchResultDetails.prototype.setLastname = function(value) { + jspb.Message.setProto3StringField(this, 4, value); +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.account.ErrorResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.account.ErrorResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.account.ErrorResponse.displayName = 'proto.account.ErrorResponse'; +} + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.account.ErrorResponse.prototype.toObject = function(opt_includeInstance) { + return proto.account.ErrorResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.account.ErrorResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.ErrorResponse.toObject = function(includeInstance, msg) { + var f, obj = { + cause: jspb.Message.getFieldWithDefault(msg, 1, 0), + message: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.account.ErrorResponse} + */ +proto.account.ErrorResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.account.ErrorResponse; + return proto.account.ErrorResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.account.ErrorResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.account.ErrorResponse} + */ +proto.account.ErrorResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {!proto.account.ErrorResponse.Cause} */ (reader.readEnum()); + msg.setCause(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setMessage(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.account.ErrorResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.account.ErrorResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.account.ErrorResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.ErrorResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getCause(); + if (f !== 0.0) { + writer.writeEnum( + 1, + f + ); + } + f = message.getMessage(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * @enum {number} + */ +proto.account.ErrorResponse.Cause = { + INTERNAL_SERVER_ERROR: 0, + MISSING_FIRST_NAME: 1, + EMAIL_ALREADY_USED: 2, + EMAIL_INVALID: 3, + PHONE_NUMBER_ALREADY_USED: 4, + PHONE_NUMBER_INVALID: 5, + USERNAME_ALREADY_USED: 6, + USERNAME_INVALID: 7, + ACCOUNT_NOT_FOUND: 8, + MISSING_AUTH_PROVIDER_TYPE: 9, + MISSING_AUTH_PROVIDER_IDENTIFIER: 10, + MISSING_PROFILE_ID: 11, + MISSING_ACCOUNT_ID: 12, + INVALID_FIRST_NAME: 13, + INVALID_LAST_NAME: 14, + INVALID_AUTH_PROVIDER_TYPE: 15, + ERROR_CREATING_ACCOUNT: 16, + ERROR_UPDATING_ACCOUNT: 17, + ERROR_UPDATING_PROFILE: 18, + ACCOUNT_NAME_INVALID: 19, + ACCOUNT_ALREADY_CREATED: 20, + ERROR_DELETING_ACCOUNT: 21, + ERROR_DELETING_PROFILE: 22, + ERROR_ADDING_AUTH_PROVIDER: 23, + ERROR_DELETING_AUTH_PROVIDER: 24, + PROFILE_NOT_FOUND: 25, + INVALID_PROFILE_ID: 26, + AUTH_PROVIDER_ALREADY_USED: 27, + MISSING_CONTACT_INFO_TYPE: 28, + MISSING_CONTACT_INFO_IDENTIFIER: 29, + INVALID_ACCOUNT_ID: 30, + ERROR_ADDING_CONTACT_INFO: 31, + ERROR_REMOVING_CONTACT_INFO: 32, + ERROR_EDITING_CONTACT_INFO: 33, + INVALID_BIRTHDAY_DATE: 34, + MISSING_USERNAME: 35, + MISSING_EMAIL: 36, + MISSING_PHONENUMBER: 37, + MISSING_QR_CODE: 38, + INVALID_PHONENUMBER: 39, + INVALID_QR_CODE: 40, + USERNAME_NOT_FOUND: 41, + EMAIL_NOT_FOUND: 42, + PHONENUMBER_NOT_FOUND: 43, + QR_CODE_NOT_FOUND: 44, + MULTIPLE_INVALID_PARAMETERS: 45 +}; + +/** + * optional Cause cause = 1; + * @return {!proto.account.ErrorResponse.Cause} + */ +proto.account.ErrorResponse.prototype.getCause = function() { + return /** @type {!proto.account.ErrorResponse.Cause} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** @param {!proto.account.ErrorResponse.Cause} value */ +proto.account.ErrorResponse.prototype.setCause = function(value) { + jspb.Message.setProto3EnumField(this, 1, value); +}; + + +/** + * optional string message = 2; + * @return {string} + */ +proto.account.ErrorResponse.prototype.getMessage = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** @param {string} value */ +proto.account.ErrorResponse.prototype.setMessage = function(value) { + jspb.Message.setProto3StringField(this, 2, value); }; @@ -6204,20 +7489,20 @@ proto.account.ContactType = { /** * @enum {number} */ -proto.account.Status = { - UNKNOWN_ACCESS_STATUS: 0, - ENABLED: 1, - SUSPENDED: 2, - DISABLED: 3 +proto.account.Role = { + UNKNOWN_ROLE: 0, + USER: 1, + ADMIN: 2 }; /** * @enum {number} */ -proto.account.Role = { - UNKNOWN_ROLE: 0, - USER: 1, - ADMIN: 2 +proto.account.AccessStatus = { + UNKNOWN_ACCESS_STATUS: 0, + ENABLED: 1, + SUSPENDED: 2, + DISABLED: 3 }; goog.object.extend(exports, proto.account); diff --git a/src/utils/grpc_proto/generated/account_pb_service.js b/src/utils/grpc_proto/generated/account_pb_service.js index 338955b..2f44b9c 100644 --- a/src/utils/grpc_proto/generated/account_pb_service.js +++ b/src/utils/grpc_proto/generated/account_pb_service.js @@ -1,5 +1,4 @@ /* eslint-disable */ - // package: account // file: account.proto @@ -57,6 +56,24 @@ AccountService.getAccountByAccountId = { responseType: account_pb.AccountResponse }; +AccountService.getAccountByUsername = { + methodName: "getAccountByUsername", + service: AccountService, + requestStream: false, + responseStream: false, + requestType: account_pb.GetByUsernameRequest, + responseType: account_pb.AccountResponse +}; + +AccountService.getAccountByQrCode = { + methodName: "getAccountByQrCode", + service: AccountService, + requestStream: false, + responseStream: false, + requestType: account_pb.GetByQrCodeRequest, + responseType: account_pb.AccountResponse +}; + AccountService.getAccountByAuthenticationProvider = { methodName: "getAccountByAuthenticationProvider", service: AccountService, @@ -147,6 +164,42 @@ AccountService.editContactInfoForAccount = { responseType: account_pb.StatusResponse }; +AccountService.searchByUsername = { + methodName: "searchByUsername", + service: AccountService, + requestStream: false, + responseStream: false, + requestType: account_pb.GetByUsernameRequest, + responseType: account_pb.SearchResponse +}; + +AccountService.searchByPhoneNumber = { + methodName: "searchByPhoneNumber", + service: AccountService, + requestStream: false, + responseStream: false, + requestType: account_pb.GetByPhoneNumberRequest, + responseType: account_pb.SearchResponse +}; + +AccountService.searchByEmail = { + methodName: "searchByEmail", + service: AccountService, + requestStream: false, + responseStream: false, + requestType: account_pb.GetByEmailRequest, + responseType: account_pb.SearchResponse +}; + +AccountService.searchByQrCode = { + methodName: "searchByQrCode", + service: AccountService, + requestStream: false, + responseStream: false, + requestType: account_pb.GetByQrCodeRequest, + responseType: account_pb.SearchResponse +}; + exports.AccountService = AccountService; function AccountServiceClient(serviceHost, options) { @@ -279,6 +332,56 @@ AccountServiceClient.prototype.getAccountByAccountId = function getAccountByAcco }); }; +AccountServiceClient.prototype.getAccountByUsername = function getAccountByUsername(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + grpc.unary(AccountService.getAccountByUsername, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); +}; + +AccountServiceClient.prototype.getAccountByQrCode = function getAccountByQrCode(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + grpc.unary(AccountService.getAccountByQrCode, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); +}; + AccountServiceClient.prototype.getAccountByAuthenticationProvider = function getAccountByAuthenticationProvider(requestMessage, metadata, callback) { if (arguments.length === 2) { callback = arguments[1]; @@ -529,5 +632,105 @@ AccountServiceClient.prototype.editContactInfoForAccount = function editContactI }); }; +AccountServiceClient.prototype.searchByUsername = function searchByUsername(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + grpc.unary(AccountService.searchByUsername, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); +}; + +AccountServiceClient.prototype.searchByPhoneNumber = function searchByPhoneNumber(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + grpc.unary(AccountService.searchByPhoneNumber, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); +}; + +AccountServiceClient.prototype.searchByEmail = function searchByEmail(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + grpc.unary(AccountService.searchByEmail, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); +}; + +AccountServiceClient.prototype.searchByQrCode = function searchByQrCode(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + grpc.unary(AccountService.searchByQrCode, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); +}; + exports.AccountServiceClient = AccountServiceClient; diff --git a/src/utils/grpc_proto/generated/auth_pb.js b/src/utils/grpc_proto/generated/auth_pb.js index f5449d5..8081f9f 100644 --- a/src/utils/grpc_proto/generated/auth_pb.js +++ b/src/utils/grpc_proto/generated/auth_pb.js @@ -1,5 +1,4 @@ /* eslint-disable */ - /** * @fileoverview * @enhanceable @@ -14,8 +13,10 @@ var goog = jspb; var global = Function('return this')(); goog.exportSymbol('proto.authentication.AccessTokenResponseDetails', null, global); +goog.exportSymbol('proto.authentication.EmptyRequest', null, global); goog.exportSymbol('proto.authentication.ErrorResponse', null, global); goog.exportSymbol('proto.authentication.ErrorResponse.Cause', null, global); +goog.exportSymbol('proto.authentication.ExchangeRefreshTokenRequest', null, global); goog.exportSymbol('proto.authentication.GenerateAccessTokenRequest', null, global); goog.exportSymbol('proto.authentication.GenerateAccessTokenResponse', null, global); goog.exportSymbol('proto.authentication.GenerateAuthTokenRequest', null, global); @@ -457,6 +458,122 @@ proto.authentication.GenerateVerifyTokenRequest.prototype.setSendvia = function( +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.authentication.EmptyRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.authentication.EmptyRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.authentication.EmptyRequest.displayName = 'proto.authentication.EmptyRequest'; +} + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.authentication.EmptyRequest.prototype.toObject = function(opt_includeInstance) { + return proto.authentication.EmptyRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.authentication.EmptyRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.authentication.EmptyRequest.toObject = function(includeInstance, msg) { + var f, obj = { + + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.authentication.EmptyRequest} + */ +proto.authentication.EmptyRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.authentication.EmptyRequest; + return proto.authentication.EmptyRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.authentication.EmptyRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.authentication.EmptyRequest} + */ +proto.authentication.EmptyRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.authentication.EmptyRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.authentication.EmptyRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.authentication.EmptyRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.authentication.EmptyRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; +}; + + + /** * Generated by JsPbCodeGenerator. * @param {Array=} opt_data Optional initial data array, typically from a @@ -815,6 +932,148 @@ proto.authentication.GenerateAccessTokenRequest.prototype.setDeviceid = function +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.authentication.ExchangeRefreshTokenRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.authentication.ExchangeRefreshTokenRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.authentication.ExchangeRefreshTokenRequest.displayName = 'proto.authentication.ExchangeRefreshTokenRequest'; +} + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.authentication.ExchangeRefreshTokenRequest.prototype.toObject = function(opt_includeInstance) { + return proto.authentication.ExchangeRefreshTokenRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.authentication.ExchangeRefreshTokenRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.authentication.ExchangeRefreshTokenRequest.toObject = function(includeInstance, msg) { + var f, obj = { + refreshtoken: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.authentication.ExchangeRefreshTokenRequest} + */ +proto.authentication.ExchangeRefreshTokenRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.authentication.ExchangeRefreshTokenRequest; + return proto.authentication.ExchangeRefreshTokenRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.authentication.ExchangeRefreshTokenRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.authentication.ExchangeRefreshTokenRequest} + */ +proto.authentication.ExchangeRefreshTokenRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setRefreshtoken(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.authentication.ExchangeRefreshTokenRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.authentication.ExchangeRefreshTokenRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.authentication.ExchangeRefreshTokenRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.authentication.ExchangeRefreshTokenRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getRefreshtoken(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string refreshToken = 1; + * @return {string} + */ +proto.authentication.ExchangeRefreshTokenRequest.prototype.getRefreshtoken = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** @param {string} value */ +proto.authentication.ExchangeRefreshTokenRequest.prototype.setRefreshtoken = function(value) { + jspb.Message.setProto3StringField(this, 1, value); +}; + + + /** * Generated by JsPbCodeGenerator. * @param {Array=} opt_data Optional initial data array, typically from a @@ -2075,7 +2334,9 @@ proto.authentication.ErrorResponse.Cause = { MAX_PHONE_FAILED_ATTEMPTS_REACHED: 12, EMAIL_INVALID: 13, SOCIAL_TOKEN_INVALID: 14, - MAX_DEVICE_FAILED_ATTEMPTS_REACHED: 15 + MAX_DEVICE_FAILED_ATTEMPTS_REACHED: 15, + REFRESH_TOKEN_INVALID: 16, + ACCESS_TOKEN_INVALID_ROLE: 17 }; /** diff --git a/src/utils/grpc_proto/generated/auth_pb_service.js b/src/utils/grpc_proto/generated/auth_pb_service.js index b123b69..33328c5 100644 --- a/src/utils/grpc_proto/generated/auth_pb_service.js +++ b/src/utils/grpc_proto/generated/auth_pb_service.js @@ -1,5 +1,4 @@ /* eslint-disable */ - // package: authentication // file: auth.proto @@ -39,6 +38,15 @@ AuthenticationService.generateAccessToken = { responseType: auth_pb.GenerateAccessTokenResponse }; +AuthenticationService.exchangeRefreshToken = { + methodName: "exchangeRefreshToken", + service: AuthenticationService, + requestStream: false, + responseStream: false, + requestType: auth_pb.ExchangeRefreshTokenRequest, + responseType: auth_pb.GenerateTokenResponse +}; + AuthenticationService.verifyAuthProvider = { methodName: "verifyAuthProvider", service: AuthenticationService, @@ -48,6 +56,15 @@ AuthenticationService.verifyAuthProvider = { responseType: auth_pb.StatusResponse }; +AuthenticationService.generateAdminAccessToken = { + methodName: "generateAdminAccessToken", + service: AuthenticationService, + requestStream: false, + responseStream: false, + requestType: auth_pb.EmptyRequest, + responseType: auth_pb.GenerateTokenResponse +}; + exports.AuthenticationService = AuthenticationService; function AuthenticationServiceClient(serviceHost, options) { @@ -130,6 +147,31 @@ AuthenticationServiceClient.prototype.generateAccessToken = function generateAcc }); }; +AuthenticationServiceClient.prototype.exchangeRefreshToken = function exchangeRefreshToken(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + grpc.unary(AuthenticationService.exchangeRefreshToken, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); +}; + AuthenticationServiceClient.prototype.verifyAuthProvider = function verifyAuthProvider(requestMessage, metadata, callback) { if (arguments.length === 2) { callback = arguments[1]; @@ -155,5 +197,30 @@ AuthenticationServiceClient.prototype.verifyAuthProvider = function verifyAuthPr }); }; +AuthenticationServiceClient.prototype.generateAdminAccessToken = function generateAdminAccessToken(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + grpc.unary(AuthenticationService.generateAdminAccessToken, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); +}; + exports.AuthenticationServiceClient = AuthenticationServiceClient; diff --git a/src/utils/grpc_proto/readme.md b/src/utils/grpc_proto/readme.md index 052e8b7..4630c7b 100644 --- a/src/utils/grpc_proto/readme.md +++ b/src/utils/grpc_proto/readme.md @@ -9,6 +9,7 @@ protoc \ account.proto // note: add /* eslint-disable */ at the top of all _pb.js files, due to eslint errors +// note2: add .toObject() to response.message - callback(null, response.message.toObject()); to the grpc unary call, so you can get object in the response instead of array // proto files are available at: // https://github.com/NYNJA-MC/proto-repository/tree/intracoldev diff --git a/src/utils/services/accounts.js b/src/utils/services/accounts.js index 94cd72e..40354a4 100644 --- a/src/utils/services/accounts.js +++ b/src/utils/services/accounts.js @@ -1,5 +1,5 @@ import { AccountServiceClient } from './../grpc_proto/generated/account_pb_service'; -import { AccountByAuthenticationProviderRequest, AccountByAccountIdRequest, Role, Status } from './../grpc_proto/generated/account_pb'; +import { AccountByAuthenticationProviderRequest, AccountByAccountIdRequest, Role, AccessStatus } from './../grpc_proto/generated/account_pb'; // import { AuthenticationServiceClient } from './../grpc_proto/generated/auth_pb_service'; // import { GenerateVerifyTokenRequest } from './../grpc_proto/generated/auth_pb'; @@ -15,7 +15,7 @@ let accountByAccountIdRequest = new AccountByAccountIdRequest(); let accountServiceClient = new AccountServiceClient(endpoint); export let accountRoleVariations = Object.keys(Role); -export let accountStatusVariations = Object.keys(Status); +export let accountStatusVariations = Object.keys(AccessStatus); export function accountByAccountIdGrpcRequest(accountId){ @@ -24,8 +24,12 @@ export function accountByAccountIdGrpcRequest(accountId){ accountServiceClient.getAccountByAccountId(accountByAccountIdRequest, {'Content-type': 'application/grpc-web+proto'}, (error, response) => { if(response.accountdetails){ + + console.log('getAccountByAccountId response', response); + response.accountdetails.rolesList = accountRoleVariations[response.accountdetails.rolesList[0]] - response.accountdetails.accountstatus = response.accountdetails.accountstatus === "" || response.accountdetails.accountstatus === 0 ? accountStatusVariations[1] : accountStatusVariations[response.accountdetails.accountstatus[0]] + response.accountdetails.accessstatus = response.accountdetails.accessstatus === undefined || response.accountdetails.accessstatus === 0 ? accountStatusVariations[1] : accountStatusVariations[response.accountdetails.accessstatus] + resolve(response.accountdetails); } else { reject(response.error); @@ -71,31 +75,4 @@ export function accountByAccountIdGrpcRequest(accountId){ // console.log("response AUTH", response); // console.log("error AUTH", error); // }) -// }); - -// { -// "result": "accountDetails", -// "requestId": "0", -// "error": null, -// "accountDetails": { -// "accountId": "fe6be425-ff19-4174-8bf6-d3bf11c17315", -// "profileId": "72e542a2-880f-4623-b583-bfdd168d692d", -// "authenticationIdentifier": "Jooooo@aol.com", -// "authenticationType": "EMAIL", -// "avatar": { -// "type": "Buffer", -// "data": [] -// }, -// "accountMark": "", -// "accountName": "", -// "firstName": "test", -// "lastName": "", -// "username": "", -// "qrCode": "", -// "contactsInfo": [], -// "roles": [ -// "UNKNOWN_ROLE" -// ], -// "accessStatus": "UNKNOWN_ACCESS_STATUS" -// } -// } \ No newline at end of file +// }); \ No newline at end of file -- GitLab From fd5dd7ceb78844e908a16c07c06d0c0927f2fbf9 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Thu, 8 Nov 2018 13:03:28 +0200 Subject: [PATCH 139/249] NY-5226 --- .../edit_user/generic_data/generic_data.css | 3 +++ src/components/edit_user/index.js | 4 ++-- .../edit_user/profile_tools/index.js | 19 ++++++++++++------- .../edit_user/profile_tools/profile_tools.css | 13 ++++++------- 4 files changed, 23 insertions(+), 16 deletions(-) diff --git a/src/components/edit_user/generic_data/generic_data.css b/src/components/edit_user/generic_data/generic_data.css index 62e1f1c..ce889f9 100644 --- a/src/components/edit_user/generic_data/generic_data.css +++ b/src/components/edit_user/generic_data/generic_data.css @@ -1,3 +1,6 @@ +.username-wrapper .MuiPaper-rounded-119 { + border-radius: 0; +} .personal-info-title, .contact-info-title { font-size: 18px; diff --git a/src/components/edit_user/index.js b/src/components/edit_user/index.js index 2ac5c55..59fa84c 100644 --- a/src/components/edit_user/index.js +++ b/src/components/edit_user/index.js @@ -100,13 +100,13 @@ class EditUser extends Component{ console.log('===================================='); const { classes, coldef, selectedUser, error } = this.props; - const { openModal } = this.state; + const { openModal, isUpdated } = this.state; const { url, path } = this.props.match; return( - + diff --git a/src/components/edit_user/profile_tools/index.js b/src/components/edit_user/profile_tools/index.js index 870c9e2..6e93a52 100644 --- a/src/components/edit_user/profile_tools/index.js +++ b/src/components/edit_user/profile_tools/index.js @@ -1,35 +1,40 @@ import React, { Component } from "react"; +import './profile_tools.css'; import { withStyles } from "@material-ui/core/styles"; import AppBar from "@material-ui/core/AppBar"; import Toolbar from "@material-ui/core/Toolbar"; import Button from "@material-ui/core/Button"; import IconButton from "@material-ui/core/IconButton"; -import MenuIcon from "@material-ui/icons/Menu"; import Typography from "@material-ui/core/Typography"; -import './profile_tools.css'; const styles = { root: { flexGrow: 1 }, grow: { - flexGrow: 1 + flexGrow: 1, + fontSize: 18 }, menuButton: { marginLeft: -12, marginRight: 20, borderRadius: 5, - lineHeight: .5 + lineHeight: 0.5 + }, + saveChangesProfile: { + backgroundColor: "#0086f8", + color: "#fff", + borderRadius: 0 }, - active:{} + active: {} }; class ProfileTools extends Component { render() { - const { classes } = this.props; + const { classes, isUpdatedFormControls } = this.props; return (
@@ -41,7 +46,7 @@ class ProfileTools extends Component { User Profile - + diff --git a/src/components/edit_user/profile_tools/profile_tools.css b/src/components/edit_user/profile_tools/profile_tools.css index 08063df..2e1e2e3 100644 --- a/src/components/edit_user/profile_tools/profile_tools.css +++ b/src/components/edit_user/profile_tools/profile_tools.css @@ -1,16 +1,15 @@ +.profile-tools-wrapper { + margin-bottom: 2px; +} .profile-tools-wrapper .MuiAppBar-colorPrimary-116 { background-color: #eeeeee; color: black; } -.profile-tools-wrapper .MuiTypography-h2-288{ +.profile-tools-wrapper .MuiTypography-h2-288 { font-size: 18px; } -.profile-tools-wrapper .MuiButton-root-310 { + +.profile-tools-wrapper button:disabled { background-color: #dadada; color: #afafaf; -} -.profile-tools-wrapper .MuiButton-root-310.ProfileTools-active-270 { - background-color: #0086f8; - color: #fff; - } \ No newline at end of file -- GitLab From faf83af81ef0eeff240d1dfa044904355f513a63 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Thu, 8 Nov 2018 13:06:37 +0200 Subject: [PATCH 140/249] Minor changes access status account --- src/components/edit_user/generic_data/index.js | 2 +- src/components/edit_user/index.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/edit_user/generic_data/index.js b/src/components/edit_user/generic_data/index.js index f9199f2..d46cf66 100644 --- a/src/components/edit_user/generic_data/index.js +++ b/src/components/edit_user/generic_data/index.js @@ -61,7 +61,7 @@ const genericUserData = (props) => {
- { selectedUser[0].accountstatus + { selectedUser[0].accessstatus ? Date: Thu, 8 Nov 2018 18:05:19 +0200 Subject: [PATCH 141/249] NY-5226 --- package.json | 1 + .../edit_user/generic_data/index.js | 46 +++++++++++++-- src/components/edit_user/index.js | 3 +- .../edit_user/profile_tools/index.js | 58 +++++++++++++++---- src/components/header_bar/css/style.css | 4 ++ src/components/header_bar/index.js | 6 +- src/components/shared/ui/modal/modal.css | 4 ++ src/index.css | 9 +++ 8 files changed, 112 insertions(+), 19 deletions(-) diff --git a/package.json b/package.json index ccfb2cf..9a9bd96 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "react-dom": "^16.5.2", "react-redux": "^5.0.7", "react-router-dom": "^4.3.1", + "react-router-navigation-prompt": "^1.8.0", "react-scripts": "2.1.1", "react-test-renderer": "^16.5.2", "redux": "^4.0.0", diff --git a/src/components/edit_user/generic_data/index.js b/src/components/edit_user/generic_data/index.js index d46cf66..de0df80 100644 --- a/src/components/edit_user/generic_data/index.js +++ b/src/components/edit_user/generic_data/index.js @@ -1,17 +1,23 @@ import React, { Fragment } from 'react'; import PropTypes from "prop-types"; +import './generic_data.css'; + import { withStyles } from "@material-ui/core/styles"; +import classNames from "classnames"; + import Card from "@material-ui/core/Card"; import CardContent from "@material-ui/core/CardContent"; -import classNames from "classnames"; import Avatar from "@material-ui/core/Avatar"; import AccountCircle from '@material-ui/icons/AccountCircle'; import TextField from "@material-ui/core/TextField"; import MenuItem from "@material-ui/core/MenuItem"; import Typography from "@material-ui/core/Typography"; import Button from "@material-ui/core/Button"; +import Input from "@material-ui/core/Input"; +import InputAdornment from "@material-ui/core/InputAdornment"; +import FormControl from "@material-ui/core/FormControl"; + import { accountStatusVariations } from '../../../utils/services/accounts'; -import './generic_data.css'; const styles = { bigAvatar: { @@ -44,7 +50,7 @@ const genericUserData = (props) => {
- { selectedUser[0].avatar + {selectedUser[0].avatar ?
{ className: classes.menu, }, }} - helperText="Please select your Access Status" + helperText="Select Access Status" margin="normal" fullWidth > @@ -179,6 +185,38 @@ const genericUserData = (props) => { Contact Information +
+ + Work} + startAdornment={ + + + + } + /> + +
+ +
+ + + + ), + }} + margin="normal" + fullWidth + /> +
+ diff --git a/src/components/edit_user/index.js b/src/components/edit_user/index.js index d8e1be3..a5319a7 100644 --- a/src/components/edit_user/index.js +++ b/src/components/edit_user/index.js @@ -105,8 +105,9 @@ class EditUser extends Component{ return( + - + diff --git a/src/components/edit_user/profile_tools/index.js b/src/components/edit_user/profile_tools/index.js index 6e93a52..94b8f2c 100644 --- a/src/components/edit_user/profile_tools/index.js +++ b/src/components/edit_user/profile_tools/index.js @@ -8,6 +8,9 @@ import Button from "@material-ui/core/Button"; import IconButton from "@material-ui/core/IconButton"; import Typography from "@material-ui/core/Typography"; +import Modal from "../../shared/ui/modal/modal"; +import NavigationPrompt from "react-router-navigation-prompt"; + const styles = { root: { flexGrow: 1 @@ -25,35 +28,68 @@ const styles = { saveChangesProfile: { backgroundColor: "#0086f8", color: "#fff", - borderRadius: 0 - }, - active: {} + borderRadius: 0, + '&:hover': { + backgroundColor: "#0086f8", + color: "#fff", + } + } }; class ProfileTools extends Component { + componentDidMount() { + if (this.props.isUpdatedFormControls) { + window.onbeforeunload = () => true; + } else { + window.onbeforeunload = undefined; + } + }; + + handelBackToPreviousState = () => { + this.props.goBack(); + }; + render() { const { classes, isUpdatedFormControls } = this.props; return (
-
+
+ + + {" "}User Profile + + - - User Profile + +
- + + { + ({ onConfirm, onCancel }) => ( + +
+

Unsaved Changes

+
+

You have unsaved changes, are you sure you want to leave?

- - +
+ + +
+
+
+
+ ) + } +
-
- ) } diff --git a/src/components/header_bar/css/style.css b/src/components/header_bar/css/style.css index af7da03..3228995 100644 --- a/src/components/header_bar/css/style.css +++ b/src/components/header_bar/css/style.css @@ -14,4 +14,8 @@ .main-header.mui-fixed > span { font-size: 20px; margin: 0 15px; +} +.header-bar-title { + font-family: "Roboto", "Helvetica", "Arial", sans-serif; + font-size: 18px; } \ No newline at end of file diff --git a/src/components/header_bar/index.js b/src/components/header_bar/index.js index fdfbc18..405fdb3 100644 --- a/src/components/header_bar/index.js +++ b/src/components/header_bar/index.js @@ -34,13 +34,13 @@ class HeaderBar extends Component { return ( - + { firstName } { lastName } - + { - error + error ? : null } diff --git a/src/components/shared/ui/modal/modal.css b/src/components/shared/ui/modal/modal.css index 28fbe47..92798ca 100644 --- a/src/components/shared/ui/modal/modal.css +++ b/src/components/shared/ui/modal/modal.css @@ -28,4 +28,8 @@ } .modal-control-btn { text-align: right; +} +.modal-control-btn button { + color: #0086f8; + font-weight: 700; } \ No newline at end of file diff --git a/src/index.css b/src/index.css index f90d7f3..f2a33f8 100644 --- a/src/index.css +++ b/src/index.css @@ -53,4 +53,13 @@ a:hover { .toggle-menu-btn svg { fill: #fff; +} + +input[type="number"]::-webkit-outer-spin-button, +input[type="number"]::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; +} +input[type="number"] { + -moz-appearance: textfield; } \ No newline at end of file -- GitLab From 6a8ce4c8fdcd180c53f3a371759d97a6e494bc05 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Thu, 8 Nov 2018 19:01:03 +0200 Subject: [PATCH 142/249] NY-4607 getting the account id from the access token endpoint --- src/components/header_bar/middleware.js | 5 +- .../grpc_proto/generated/auth_pb_service.js | 2 +- src/utils/services/auth.js | 46 + yarn.lock | 6105 +++++++++++------ 4 files changed, 3897 insertions(+), 2261 deletions(-) create mode 100644 src/utils/services/auth.js diff --git a/src/components/header_bar/middleware.js b/src/components/header_bar/middleware.js index 151ac2c..f90cbf2 100644 --- a/src/components/header_bar/middleware.js +++ b/src/components/header_bar/middleware.js @@ -1,12 +1,13 @@ import { call, put } from 'redux-saga/effects'; import { accountByAccountIdGrpcRequest } from './../../utils/services/accounts'; +import { generateTokenResponceGrpcRequest } from './../../utils/services/auth'; import { deliverAuthedUser } from './actions'; import { failUsers } from './../../hoc/error_handler/actions'; export function* getAuthedUser() { try { - // todo: implement login endpoint, when deployed - const payload = yield call(accountByAccountIdGrpcRequest, '9c53d554-5a57-4298-b93d-b3b2d83a08ea'); + const loggedInAccountId = yield call(generateTokenResponceGrpcRequest); + const payload = yield call(accountByAccountIdGrpcRequest, loggedInAccountId); yield put(deliverAuthedUser(payload)) } catch (error) { diff --git a/src/utils/grpc_proto/generated/auth_pb_service.js b/src/utils/grpc_proto/generated/auth_pb_service.js index 33328c5..6a925ef 100644 --- a/src/utils/grpc_proto/generated/auth_pb_service.js +++ b/src/utils/grpc_proto/generated/auth_pb_service.js @@ -215,7 +215,7 @@ AuthenticationServiceClient.prototype.generateAdminAccessToken = function genera err.metadata = response.trailers; callback(err, null); } else { - callback(null, response.message); + callback(null, response.message.toObject()); } } } diff --git a/src/utils/services/auth.js b/src/utils/services/auth.js new file mode 100644 index 0000000..85a44dc --- /dev/null +++ b/src/utils/services/auth.js @@ -0,0 +1,46 @@ +import { AuthenticationServiceClient } from './../grpc_proto/generated/auth_pb_service'; +import { EmptyRequest } from './../grpc_proto/generated/auth_pb'; + +const endpoint = "https://auth.dev-eu.nynja.net:443"; + +let generateAccessTokenRequest = new EmptyRequest(); + +let authenticationServiceClient = new AuthenticationServiceClient(endpoint); + +// todo: move this to localstorage and do further testing +const token = "eyJraWQiOiIyMDE4MTEwOCIsInR5cCI6IkpXVCIsImFsZyI6IkVTMjU2In0.eyJzdWIiOiJPR1l5TkRGbE1qUXRZVE00TVMwME1UZ3dMVGt6WVRjdFpERXhPVEU1TXpNNFpUWTEiLCJhdWQiOiJNVEl6TVRJejphcHBDbGFzczoxMjMzMzMzIiwic2NvcGUiOiJhY2Nlc3MiLCJyb2xlcyI6W10sImlzcyI6Imh0dHBzOi8vYXV0aC5ueW5qYS5iaXovIiwiZXhwIjoxNTQyMjg5MzQ0LCJpYXQiOjE1NDE2ODQ1NDR9.6aWodeu2GiJq3V5d8RrsCyPrvvU1SKWJevvK4Fj6Dw36vSn6dX5PB_a4_Q9S33AwW6inUEFdGlJSol3L-V0RNQ" + +export function generateTokenResponceGrpcRequest(){ + + return new Promise((resolve, reject) => { + authenticationServiceClient.generateAdminAccessToken(generateAccessTokenRequest, {'Content-type': 'application/grpc-web+proto', 'accessToken': token}, (error, response) => { + + if (response.tokenresponsedetails){ + + let tokenDecoded = response.tokenresponsedetails.token.split(/[.]/); + + let containsAccountIdDecoded = JSON.parse(b64DecodeUnicode(tokenDecoded[1])); + + let decodedAccountId = b64DecodeUnicode(containsAccountIdDecoded.sub); + + resolve(decodedAccountId) + } else { + reject(response.tokenresponsedetails) + } + + if(error){ + reject(error) + } + }) + }) +} + +/** + * Decoded Base64 string + * @param {string} str + */ +function b64DecodeUnicode(str) { + return decodeURIComponent(atob(str).split('').map(function(c) { + return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2); + }).join('')); +} diff --git a/yarn.lock b/yarn.lock index a4d8d17..d5b4a98 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,701 @@ # yarn lockfile v1 +"@babel/code-frame@7.0.0", "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.0.0-beta.35": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" + dependencies: + "@babel/highlight" "^7.0.0" + +"@babel/core@7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.1.0.tgz#08958f1371179f62df6966d8a614003d11faeb04" + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/generator" "^7.0.0" + "@babel/helpers" "^7.1.0" + "@babel/parser" "^7.1.0" + "@babel/template" "^7.1.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" + convert-source-map "^1.1.0" + debug "^3.1.0" + json5 "^0.5.0" + lodash "^4.17.10" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/core@^7.0.1": + version "7.1.5" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.1.5.tgz#abb32d7aa247a91756469e788998db6a72b93090" + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/generator" "^7.1.5" + "@babel/helpers" "^7.1.5" + "@babel/parser" "^7.1.5" + "@babel/template" "^7.1.2" + "@babel/traverse" "^7.1.5" + "@babel/types" "^7.1.5" + convert-source-map "^1.1.0" + debug "^3.1.0" + json5 "^0.5.0" + lodash "^4.17.10" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/generator@^7.0.0", "@babel/generator@^7.1.5": + version "7.1.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.1.5.tgz#615f064d13d95f8f9157c7261f68eddf32ec15b3" + dependencies: + "@babel/types" "^7.1.5" + jsesc "^2.5.1" + lodash "^4.17.10" + source-map "^0.5.0" + trim-right "^1.0.1" + +"@babel/helper-annotate-as-pure@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32" + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz#6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f" + dependencies: + "@babel/helper-explode-assignable-expression" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-builder-react-jsx@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.0.0.tgz#fa154cb53eb918cf2a9a7ce928e29eb649c5acdb" + dependencies: + "@babel/types" "^7.0.0" + esutils "^2.0.0" + +"@babel/helper-call-delegate@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.1.0.tgz#6a957f105f37755e8645343d3038a22e1449cc4a" + dependencies: + "@babel/helper-hoist-variables" "^7.0.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-define-map@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.1.0.tgz#3b74caec329b3c80c116290887c0dd9ae468c20c" + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/types" "^7.0.0" + lodash "^4.17.10" + +"@babel/helper-explode-assignable-expression@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz#537fa13f6f1674df745b0c00ec8fe4e99681c8f6" + dependencies: + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-function-name@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" + dependencies: + "@babel/helper-get-function-arity" "^7.0.0" + "@babel/template" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-get-function-arity@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-hoist-variables@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0.tgz#46adc4c5e758645ae7a45deb92bab0918c23bb88" + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-member-expression-to-functions@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz#8cd14b0a0df7ff00f009e7d7a436945f47c7a16f" + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-module-imports@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d" + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-module-transforms@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.1.0.tgz#470d4f9676d9fad50b324cdcce5fbabbc3da5787" + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-simple-access" "^7.1.0" + "@babel/helper-split-export-declaration" "^7.0.0" + "@babel/template" "^7.1.0" + "@babel/types" "^7.0.0" + lodash "^4.17.10" + +"@babel/helper-optimise-call-expression@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz#a2920c5702b073c15de51106200aa8cad20497d5" + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-plugin-utils@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" + +"@babel/helper-regex@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.0.0.tgz#2c1718923b57f9bbe64705ffe5640ac64d9bdb27" + dependencies: + lodash "^4.17.10" + +"@babel/helper-remap-async-to-generator@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz#361d80821b6f38da75bd3f0785ece20a88c5fe7f" + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-wrap-function" "^7.1.0" + "@babel/template" "^7.1.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-replace-supers@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.1.0.tgz#5fc31de522ec0ef0899dc9b3e7cf6a5dd655f362" + dependencies: + "@babel/helper-member-expression-to-functions" "^7.0.0" + "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-simple-access@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c" + dependencies: + "@babel/template" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-split-export-declaration@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz#3aae285c0311c2ab095d997b8c9a94cad547d813" + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-wrap-function@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.1.0.tgz#8cf54e9190706067f016af8f75cb3df829cc8c66" + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/template" "^7.1.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helpers@^7.1.0", "@babel/helpers@^7.1.5": + version "7.1.5" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.1.5.tgz#68bfc1895d685f2b8f1995e788dbfe1f6ccb1996" + dependencies: + "@babel/template" "^7.1.2" + "@babel/traverse" "^7.1.5" + "@babel/types" "^7.1.5" + +"@babel/highlight@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" + dependencies: + chalk "^2.0.0" + esutils "^2.0.2" + js-tokens "^4.0.0" + +"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.1.2", "@babel/parser@^7.1.5": + version "7.1.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.1.5.tgz#20b7d5e7e1811ba996f8a868962ea7dd2bfcd2fc" + +"@babel/plugin-proposal-async-generator-functions@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.1.0.tgz#41c1a702e10081456e23a7b74d891922dd1bb6ce" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-remap-async-to-generator" "^7.1.0" + "@babel/plugin-syntax-async-generators" "^7.0.0" + +"@babel/plugin-proposal-class-properties@7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.1.0.tgz#9af01856b1241db60ec8838d84691aa0bd1e8df4" + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-member-expression-to-functions" "^7.0.0" + "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.1.0" + "@babel/plugin-syntax-class-properties" "^7.0.0" + +"@babel/plugin-proposal-decorators@7.1.2": + version "7.1.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.1.2.tgz#79829bd75fced6581ec6c7ab1930e8d738e892e7" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.1.0" + "@babel/helper-split-export-declaration" "^7.0.0" + "@babel/plugin-syntax-decorators" "^7.1.0" + +"@babel/plugin-proposal-json-strings@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.0.0.tgz#3b4d7b5cf51e1f2e70f52351d28d44fc2970d01e" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-json-strings" "^7.0.0" + +"@babel/plugin-proposal-object-rest-spread@7.0.0", "@babel/plugin-proposal-object-rest-spread@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.0.0.tgz#9a17b547f64d0676b6c9cecd4edf74a82ab85e7e" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-object-rest-spread" "^7.0.0" + +"@babel/plugin-proposal-optional-catch-binding@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.0.0.tgz#b610d928fe551ff7117d42c8bb410eec312a6425" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.0.0" + +"@babel/plugin-proposal-unicode-property-regex@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.0.0.tgz#498b39cd72536cd7c4b26177d030226eba08cd33" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.0.0" + regexpu-core "^4.2.0" + +"@babel/plugin-syntax-async-generators@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.0.0.tgz#bf0891dcdbf59558359d0c626fdc9490e20bc13c" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-class-properties@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.0.0.tgz#e051af5d300cbfbcec4a7476e37a803489881634" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-decorators@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.1.0.tgz#2fa7c1a7905a299c9853ebcef340306675f9cbdc" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-dynamic-import@7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.0.0.tgz#6dfb7d8b6c3be14ce952962f658f3b7eb54c33ee" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-flow@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.0.0.tgz#70638aeaad9ee426bc532e51523cff8ff02f6f17" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-json-strings@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.0.0.tgz#0d259a68090e15b383ce3710e01d5b23f3770cbd" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-jsx@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.0.0.tgz#034d5e2b4e14ccaea2e4c137af7e4afb39375ffd" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-object-rest-spread@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.0.0.tgz#37d8fbcaf216bd658ea1aebbeb8b75e88ebc549b" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.0.0.tgz#886f72008b3a8b185977f7cb70713b45e51ee475" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-typescript@^7.0.0": + version "7.1.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.1.5.tgz#956a1f43dec8a9d6b36221f5c865335555fdcb98" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-arrow-functions@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.0.0.tgz#a6c14875848c68a3b4b3163a486535ef25c7e749" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-async-to-generator@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.1.0.tgz#109e036496c51dd65857e16acab3bafdf3c57811" + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-remap-async-to-generator" "^7.1.0" + +"@babel/plugin-transform-block-scoped-functions@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.0.0.tgz#482b3f75103927e37288b3b67b65f848e2aa0d07" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-block-scoping@^7.0.0", "@babel/plugin-transform-block-scoping@^7.1.5": + version "7.1.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.1.5.tgz#3e8e0bc9a5104519923302a24f748f72f2f61f37" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + lodash "^4.17.10" + +"@babel/plugin-transform-classes@7.1.0", "@babel/plugin-transform-classes@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.1.0.tgz#ab3f8a564361800cbc8ab1ca6f21108038432249" + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-define-map" "^7.1.0" + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.1.0" + "@babel/helper-split-export-declaration" "^7.0.0" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.0.0.tgz#2fbb8900cd3e8258f2a2ede909b90e7556185e31" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-destructuring@7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.0.0.tgz#68e911e1935dda2f06b6ccbbf184ffb024e9d43a" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-destructuring@^7.0.0": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.1.3.tgz#e69ff50ca01fac6cb72863c544e516c2b193012f" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-dotall-regex@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.0.0.tgz#73a24da69bc3c370251f43a3d048198546115e58" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.0.0" + regexpu-core "^4.1.3" + +"@babel/plugin-transform-duplicate-keys@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.0.0.tgz#a0601e580991e7cace080e4cf919cfd58da74e86" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-exponentiation-operator@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.1.0.tgz#9c34c2ee7fd77e02779cfa37e403a2e1003ccc73" + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-flow-strip-types@7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.0.0.tgz#c40ced34c2783985d90d9f9ac77a13e6fb396a01" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-flow" "^7.0.0" + +"@babel/plugin-transform-for-of@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.0.0.tgz#f2ba4eadb83bd17dc3c7e9b30f4707365e1c3e39" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-function-name@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.1.0.tgz#29c5550d5c46208e7f730516d41eeddd4affadbb" + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-literals@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.0.0.tgz#2aec1d29cdd24c407359c930cdd89e914ee8ff86" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-modules-amd@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.1.0.tgz#f9e0a7072c12e296079b5a59f408ff5b97bf86a8" + dependencies: + "@babel/helper-module-transforms" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-modules-commonjs@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.1.0.tgz#0a9d86451cbbfb29bd15186306897c67f6f9a05c" + dependencies: + "@babel/helper-module-transforms" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-simple-access" "^7.1.0" + +"@babel/plugin-transform-modules-systemjs@^7.0.0": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.1.3.tgz#2119a3e3db612fd74a19d88652efbfe9613a5db0" + dependencies: + "@babel/helper-hoist-variables" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-modules-umd@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.1.0.tgz#a29a7d85d6f28c3561c33964442257cc6a21f2a8" + dependencies: + "@babel/helper-module-transforms" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-new-target@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0.tgz#ae8fbd89517fa7892d20e6564e641e8770c3aa4a" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-object-super@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.1.0.tgz#b1ae194a054b826d8d4ba7ca91486d4ada0f91bb" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.1.0" + +"@babel/plugin-transform-parameters@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.1.0.tgz#44f492f9d618c9124026e62301c296bf606a7aed" + dependencies: + "@babel/helper-call-delegate" "^7.1.0" + "@babel/helper-get-function-arity" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-react-constant-elements@7.0.0", "@babel/plugin-transform-react-constant-elements@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.0.0.tgz#ab413e33e9c46a766f5326014bcbf9e2b34ef7a4" + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-react-display-name@7.0.0", "@babel/plugin-transform-react-display-name@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.0.0.tgz#93759e6c023782e52c2da3b75eca60d4f10533ee" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-react-jsx-self@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.0.0.tgz#a84bb70fea302d915ea81d9809e628266bb0bc11" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.0.0" + +"@babel/plugin-transform-react-jsx-source@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.0.0.tgz#28e00584f9598c0dd279f6280eee213fa0121c3c" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.0.0" + +"@babel/plugin-transform-react-jsx@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.0.0.tgz#524379e4eca5363cd10c4446ba163f093da75f3e" + dependencies: + "@babel/helper-builder-react-jsx" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.0.0" + +"@babel/plugin-transform-regenerator@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0.tgz#5b41686b4ed40bef874d7ed6a84bdd849c13e0c1" + dependencies: + regenerator-transform "^0.13.3" + +"@babel/plugin-transform-runtime@7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.1.0.tgz#9f76920d42551bb577e2dc594df229b5f7624b63" + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + resolve "^1.8.1" + semver "^5.5.1" + +"@babel/plugin-transform-shorthand-properties@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.0.0.tgz#85f8af592dcc07647541a0350e8c95c7bf419d15" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-spread@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.0.0.tgz#93583ce48dd8c85e53f3a46056c856e4af30b49b" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-sticky-regex@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.0.0.tgz#30a9d64ac2ab46eec087b8530535becd90e73366" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.0.0" + +"@babel/plugin-transform-template-literals@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.0.0.tgz#084f1952efe5b153ddae69eb8945f882c7a97c65" + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-typeof-symbol@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.0.0.tgz#4dcf1e52e943e5267b7313bff347fdbe0f81cec9" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-typescript@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.1.0.tgz#81e7b4be90e7317cbd04bf1163ebf06b2adee60b" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-typescript" "^7.0.0" + +"@babel/plugin-transform-unicode-regex@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.0.0.tgz#c6780e5b1863a76fe792d90eded9fcd5b51d68fc" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.0.0" + regexpu-core "^4.1.3" + +"@babel/preset-env@7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.1.0.tgz#e67ea5b0441cfeab1d6f41e9b5c79798800e8d11" + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-async-generator-functions" "^7.1.0" + "@babel/plugin-proposal-json-strings" "^7.0.0" + "@babel/plugin-proposal-object-rest-spread" "^7.0.0" + "@babel/plugin-proposal-optional-catch-binding" "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.0.0" + "@babel/plugin-syntax-async-generators" "^7.0.0" + "@babel/plugin-syntax-object-rest-spread" "^7.0.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.0.0" + "@babel/plugin-transform-arrow-functions" "^7.0.0" + "@babel/plugin-transform-async-to-generator" "^7.1.0" + "@babel/plugin-transform-block-scoped-functions" "^7.0.0" + "@babel/plugin-transform-block-scoping" "^7.0.0" + "@babel/plugin-transform-classes" "^7.1.0" + "@babel/plugin-transform-computed-properties" "^7.0.0" + "@babel/plugin-transform-destructuring" "^7.0.0" + "@babel/plugin-transform-dotall-regex" "^7.0.0" + "@babel/plugin-transform-duplicate-keys" "^7.0.0" + "@babel/plugin-transform-exponentiation-operator" "^7.1.0" + "@babel/plugin-transform-for-of" "^7.0.0" + "@babel/plugin-transform-function-name" "^7.1.0" + "@babel/plugin-transform-literals" "^7.0.0" + "@babel/plugin-transform-modules-amd" "^7.1.0" + "@babel/plugin-transform-modules-commonjs" "^7.1.0" + "@babel/plugin-transform-modules-systemjs" "^7.0.0" + "@babel/plugin-transform-modules-umd" "^7.1.0" + "@babel/plugin-transform-new-target" "^7.0.0" + "@babel/plugin-transform-object-super" "^7.1.0" + "@babel/plugin-transform-parameters" "^7.1.0" + "@babel/plugin-transform-regenerator" "^7.0.0" + "@babel/plugin-transform-shorthand-properties" "^7.0.0" + "@babel/plugin-transform-spread" "^7.0.0" + "@babel/plugin-transform-sticky-regex" "^7.0.0" + "@babel/plugin-transform-template-literals" "^7.0.0" + "@babel/plugin-transform-typeof-symbol" "^7.0.0" + "@babel/plugin-transform-unicode-regex" "^7.0.0" + browserslist "^4.1.0" + invariant "^2.2.2" + js-levenshtein "^1.1.3" + semver "^5.3.0" + +"@babel/preset-env@^7.0.0": + version "7.1.5" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.1.5.tgz#a28b5482ca8bc2f2d0712234d6c690240b92495d" + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-async-generator-functions" "^7.1.0" + "@babel/plugin-proposal-json-strings" "^7.0.0" + "@babel/plugin-proposal-object-rest-spread" "^7.0.0" + "@babel/plugin-proposal-optional-catch-binding" "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.0.0" + "@babel/plugin-syntax-async-generators" "^7.0.0" + "@babel/plugin-syntax-object-rest-spread" "^7.0.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.0.0" + "@babel/plugin-transform-arrow-functions" "^7.0.0" + "@babel/plugin-transform-async-to-generator" "^7.1.0" + "@babel/plugin-transform-block-scoped-functions" "^7.0.0" + "@babel/plugin-transform-block-scoping" "^7.1.5" + "@babel/plugin-transform-classes" "^7.1.0" + "@babel/plugin-transform-computed-properties" "^7.0.0" + "@babel/plugin-transform-destructuring" "^7.0.0" + "@babel/plugin-transform-dotall-regex" "^7.0.0" + "@babel/plugin-transform-duplicate-keys" "^7.0.0" + "@babel/plugin-transform-exponentiation-operator" "^7.1.0" + "@babel/plugin-transform-for-of" "^7.0.0" + "@babel/plugin-transform-function-name" "^7.1.0" + "@babel/plugin-transform-literals" "^7.0.0" + "@babel/plugin-transform-modules-amd" "^7.1.0" + "@babel/plugin-transform-modules-commonjs" "^7.1.0" + "@babel/plugin-transform-modules-systemjs" "^7.0.0" + "@babel/plugin-transform-modules-umd" "^7.1.0" + "@babel/plugin-transform-new-target" "^7.0.0" + "@babel/plugin-transform-object-super" "^7.1.0" + "@babel/plugin-transform-parameters" "^7.1.0" + "@babel/plugin-transform-regenerator" "^7.0.0" + "@babel/plugin-transform-shorthand-properties" "^7.0.0" + "@babel/plugin-transform-spread" "^7.0.0" + "@babel/plugin-transform-sticky-regex" "^7.0.0" + "@babel/plugin-transform-template-literals" "^7.0.0" + "@babel/plugin-transform-typeof-symbol" "^7.0.0" + "@babel/plugin-transform-unicode-regex" "^7.0.0" + browserslist "^4.1.0" + invariant "^2.2.2" + js-levenshtein "^1.1.3" + semver "^5.3.0" + +"@babel/preset-react@7.0.0", "@babel/preset-react@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.0.0.tgz#e86b4b3d99433c7b3e9e91747e2653958bc6b3c0" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-transform-react-display-name" "^7.0.0" + "@babel/plugin-transform-react-jsx" "^7.0.0" + "@babel/plugin-transform-react-jsx-self" "^7.0.0" + "@babel/plugin-transform-react-jsx-source" "^7.0.0" + +"@babel/preset-typescript@7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.1.0.tgz#49ad6e2084ff0bfb5f1f7fb3b5e76c434d442c7f" + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-transform-typescript" "^7.1.0" + "@babel/runtime@7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.0.0.tgz#adeb78fedfc855aa05bc041640f3f6f98e85424c" @@ -14,9 +709,43 @@ dependencies: regenerator-runtime "^0.12.0" -"@material-ui/core@^3.1.1": - version "3.3.2" - resolved "https://registry.yarnpkg.com/@material-ui/core/-/core-3.3.2.tgz#ca9ce331ac5a31ef8acc732305967f3e5cfe4934" +"@babel/template@^7.1.0", "@babel/template@^7.1.2": + version "7.1.2" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.1.2.tgz#090484a574fef5a2d2d7726a674eceda5c5b5644" + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.1.2" + "@babel/types" "^7.1.2" + +"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.1.5": + version "7.1.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.1.5.tgz#5aafca2039aa058c104cf2bfeb9fc4a857ccbca9" + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/generator" "^7.1.5" + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-split-export-declaration" "^7.0.0" + "@babel/parser" "^7.1.5" + "@babel/types" "^7.1.5" + debug "^3.1.0" + globals "^11.1.0" + lodash "^4.17.10" + +"@babel/types@^7.0.0", "@babel/types@^7.1.2", "@babel/types@^7.1.5": + version "7.1.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.1.5.tgz#12fe64e91a431234b7017b4227a78cc0eec4e081" + dependencies: + esutils "^2.0.2" + lodash "^4.17.10" + to-fast-properties "^2.0.0" + +"@csstools/convert-colors@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" + +"@material-ui/core@3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@material-ui/core/-/core-3.4.0.tgz#b33c00a3c20e856ed7a4700dd398f128647beb4a" dependencies: "@babel/runtime" "7.1.2" "@types/jss" "^9.5.6" @@ -27,7 +756,7 @@ debounce "^1.1.0" deepmerge "^2.0.1" dom-helpers "^3.2.1" - hoist-non-react-statics "^2.5.0" + hoist-non-react-statics "^3.0.0" is-plain-object "^2.0.4" jss "^9.3.3" jss-camel-case "^6.0.0" @@ -52,6 +781,40 @@ "@babel/runtime" "7.0.0" recompose "^0.29.0" +"@mrmlnc/readdir-enhanced@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" + dependencies: + call-me-maybe "^1.0.1" + glob-to-regexp "^0.3.0" + +"@nodelib/fs.stat@^1.0.1": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" + +"@svgr/core@^2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@svgr/core/-/core-2.4.1.tgz#03a407c28c4a1d84305ae95021e8eabfda8fa731" + dependencies: + camelcase "^5.0.0" + cosmiconfig "^5.0.6" + h2x-core "^1.1.0" + h2x-plugin-jsx "^1.1.0" + merge-deep "^3.0.2" + prettier "^1.14.2" + svgo "^1.0.5" + +"@svgr/webpack@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-2.4.1.tgz#68bc581ecb4c09fadeb7936bd1afaceb9da960d2" + dependencies: + "@babel/core" "^7.0.1" + "@babel/plugin-transform-react-constant-elements" "^7.0.0" + "@babel/preset-env" "^7.0.0" + "@babel/preset-react" "^7.0.0" + "@svgr/core" "^2.4.1" + loader-utils "^1.1.0" + "@types/google-protobuf@^3.2.7": version "3.2.7" resolved "https://registry.yarnpkg.com/@types/google-protobuf/-/google-protobuf-3.2.7.tgz#9576ed5dd62cdb1c9f952522028a03b7cb2b69b5" @@ -84,9 +847,150 @@ "@types/prop-types" "*" csstype "^2.2.0" -abab@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.4.tgz#5faad9c2c07f60dd76770f71cf025b62a63cfd4e" +"@types/tapable@1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.2.tgz#e13182e1b69871a422d7863e11a4a6f5b814a4bd" + +"@webassemblyjs/ast@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.7.6.tgz#3ef8c45b3e5e943a153a05281317474fef63e21e" + dependencies: + "@webassemblyjs/helper-module-context" "1.7.6" + "@webassemblyjs/helper-wasm-bytecode" "1.7.6" + "@webassemblyjs/wast-parser" "1.7.6" + mamacro "^0.0.3" + +"@webassemblyjs/floating-point-hex-parser@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.6.tgz#7cb37d51a05c3fe09b464ae7e711d1ab3837801f" + +"@webassemblyjs/helper-api-error@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.6.tgz#99b7e30e66f550a2638299a109dda84a622070ef" + +"@webassemblyjs/helper-buffer@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.6.tgz#ba0648be12bbe560c25c997e175c2018df39ca3e" + +"@webassemblyjs/helper-code-frame@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.6.tgz#5a94d21b0057b69a7403fca0c253c3aaca95b1a5" + dependencies: + "@webassemblyjs/wast-printer" "1.7.6" + +"@webassemblyjs/helper-fsm@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.6.tgz#ae1741c6f6121213c7a0b587fb964fac492d3e49" + +"@webassemblyjs/helper-module-context@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.6.tgz#116d19a51a6cebc8900ad53ca34ff8269c668c23" + dependencies: + mamacro "^0.0.3" + +"@webassemblyjs/helper-wasm-bytecode@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.6.tgz#98e515eaee611aa6834eb5f6a7f8f5b29fefb6f1" + +"@webassemblyjs/helper-wasm-section@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.6.tgz#783835867bdd686df7a95377ab64f51a275e8333" + dependencies: + "@webassemblyjs/ast" "1.7.6" + "@webassemblyjs/helper-buffer" "1.7.6" + "@webassemblyjs/helper-wasm-bytecode" "1.7.6" + "@webassemblyjs/wasm-gen" "1.7.6" + +"@webassemblyjs/ieee754@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.7.6.tgz#c34fc058f2f831fae0632a8bb9803cf2d3462eb1" + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.7.6.tgz#197f75376a29f6ed6ace15898a310d871d92f03b" + dependencies: + "@xtuc/long" "4.2.1" + +"@webassemblyjs/utf8@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.7.6.tgz#eb62c66f906af2be70de0302e29055d25188797d" + +"@webassemblyjs/wasm-edit@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.6.tgz#fa41929160cd7d676d4c28ecef420eed5b3733c5" + dependencies: + "@webassemblyjs/ast" "1.7.6" + "@webassemblyjs/helper-buffer" "1.7.6" + "@webassemblyjs/helper-wasm-bytecode" "1.7.6" + "@webassemblyjs/helper-wasm-section" "1.7.6" + "@webassemblyjs/wasm-gen" "1.7.6" + "@webassemblyjs/wasm-opt" "1.7.6" + "@webassemblyjs/wasm-parser" "1.7.6" + "@webassemblyjs/wast-printer" "1.7.6" + +"@webassemblyjs/wasm-gen@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.6.tgz#695ac38861ab3d72bf763c8c75e5f087ffabc322" + dependencies: + "@webassemblyjs/ast" "1.7.6" + "@webassemblyjs/helper-wasm-bytecode" "1.7.6" + "@webassemblyjs/ieee754" "1.7.6" + "@webassemblyjs/leb128" "1.7.6" + "@webassemblyjs/utf8" "1.7.6" + +"@webassemblyjs/wasm-opt@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.6.tgz#fbafa78e27e1a75ab759a4b658ff3d50b4636c21" + dependencies: + "@webassemblyjs/ast" "1.7.6" + "@webassemblyjs/helper-buffer" "1.7.6" + "@webassemblyjs/wasm-gen" "1.7.6" + "@webassemblyjs/wasm-parser" "1.7.6" + +"@webassemblyjs/wasm-parser@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.6.tgz#84eafeeff405ad6f4c4b5777d6a28ae54eed51fe" + dependencies: + "@webassemblyjs/ast" "1.7.6" + "@webassemblyjs/helper-api-error" "1.7.6" + "@webassemblyjs/helper-wasm-bytecode" "1.7.6" + "@webassemblyjs/ieee754" "1.7.6" + "@webassemblyjs/leb128" "1.7.6" + "@webassemblyjs/utf8" "1.7.6" + +"@webassemblyjs/wast-parser@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.7.6.tgz#ca4d20b1516e017c91981773bd7e819d6bd9c6a7" + dependencies: + "@webassemblyjs/ast" "1.7.6" + "@webassemblyjs/floating-point-hex-parser" "1.7.6" + "@webassemblyjs/helper-api-error" "1.7.6" + "@webassemblyjs/helper-code-frame" "1.7.6" + "@webassemblyjs/helper-fsm" "1.7.6" + "@xtuc/long" "4.2.1" + mamacro "^0.0.3" + +"@webassemblyjs/wast-printer@1.7.6": + version "1.7.6" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.7.6.tgz#a6002c526ac5fa230fe2c6d2f1bdbf4aead43a5e" + dependencies: + "@webassemblyjs/ast" "1.7.6" + "@webassemblyjs/wast-parser" "1.7.6" + "@xtuc/long" "4.2.1" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + +"@xtuc/long@4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.1.tgz#5c85d662f76fa1d34575766c5dcd6615abcd30d8" + +abab@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.0.tgz#aba0ab4c5eee2d4c79d3487d85450fb2376ebb0f" abbrev@1: version "1.1.1" @@ -99,36 +1003,35 @@ accepts@~1.3.4, accepts@~1.3.5: mime-types "~2.1.18" negotiator "0.6.1" -acorn-dynamic-import@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4" - dependencies: - acorn "^4.0.3" - -acorn-globals@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-3.1.0.tgz#fd8270f71fbb4996b004fa880ee5d46573a731bf" +acorn-dynamic-import@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz#901ceee4c7faaef7e07ad2a47e890675da50a278" dependencies: - acorn "^4.0.4" + acorn "^5.0.0" -acorn-jsx@^3.0.0: - version "3.0.1" - resolved "http://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" +acorn-globals@^4.1.0, acorn-globals@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.0.tgz#e3b6f8da3c1552a95ae627571f7dd6923bb54103" dependencies: - acorn "^3.0.4" + acorn "^6.0.1" + acorn-walk "^6.0.1" -acorn@^3.0.4: - version "3.3.0" - resolved "http://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" +acorn-jsx@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.0.tgz#958584ddb60990c02c97c1bd9d521fce433bb101" -acorn@^4.0.3, acorn@^4.0.4: - version "4.0.13" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" +acorn-walk@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.1.0.tgz#c957f4a1460da46af4a0388ce28b4c99355b0cbc" -acorn@^5.0.0, acorn@^5.5.0: +acorn@^5.0.0, acorn@^5.5.3, acorn@^5.6.2: version "5.7.3" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" +acorn@^6.0.1, acorn@^6.0.2: + version "6.0.4" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.0.4.tgz#77377e7353b72ec5104550aa2d2097a2fd40b754" + address@1.0.3, address@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/address/-/address-1.0.3.tgz#b5f50631f8d6cec8bd20c963963afb55e06cbce9" @@ -147,15 +1050,15 @@ ag-grid-react@^19.0.0: dependencies: prop-types "15.6.0" -ajv-keywords@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" +ajv-errors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.0.tgz#ecf021fa108fd17dfb5e6b383f2dd233e31ffc59" -ajv-keywords@^3.0.0: +ajv-keywords@^3.0.0, ajv-keywords@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a" -ajv@^5.0.0, ajv@^5.1.5, ajv@^5.2.0, ajv@^5.3.0: +ajv@^5.3.0: version "5.5.2" resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" dependencies: @@ -173,27 +1076,22 @@ ajv@^6.0.1: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -align-text@^0.1.1, align-text@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" +ajv@^6.1.0, ajv@^6.5.3: + version "6.5.5" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.5.5.tgz#cf97cdade71c6399a92c6d6c4177381291b781a1" dependencies: - kind-of "^3.0.2" - longest "^1.0.1" - repeat-string "^1.5.2" + fast-deep-equal "^2.0.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" -alphanum-sort@^1.0.1, alphanum-sort@^1.0.2: +alphanum-sort@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" -ansi-align@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" - dependencies: - string-width "^2.0.0" - -ansi-escapes@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" +ansi-colors@^3.0.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.1.tgz#9638047e4213f3428a11944a7d4b31cba0a3ff95" ansi-escapes@^3.0.0: version "3.1.0" @@ -203,7 +1101,7 @@ ansi-html@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" -ansi-regex@^2.0.0, ansi-regex@^2.1.1: +ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" @@ -215,19 +1113,12 @@ ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" -ansi-styles@^3.0.0, ansi-styles@^3.2.1: +ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" dependencies: color-convert "^1.9.0" -anymatch@^1.3.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" - dependencies: - micromatch "^2.1.5" - normalize-path "^2.0.0" - anymatch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" @@ -241,7 +1132,7 @@ append-transform@^0.4.0: dependencies: default-require-extensions "^1.0.0" -aproba@^1.0.3: +aproba@^1.0.3, aproba@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" @@ -258,9 +1149,9 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" -aria-query@^0.7.0: - version "0.7.1" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-0.7.1.tgz#26cbb5aff64144b0a825be1846e0b16cfa00b11e" +aria-query@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-3.0.0.tgz#65b3fcc1ca1155a8c9ae64d6eee297f15d5133cc" dependencies: ast-types-flow "0.0.7" commander "^2.11.0" @@ -291,10 +1182,6 @@ array-filter@~0.0.0: version "0.0.1" resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" -array-find-index@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" - array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" @@ -348,7 +1235,7 @@ arrify@^1.0.0, arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" -asap@~2.0.3: +asap@~2.0.3, asap@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" @@ -380,654 +1267,242 @@ assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" -ast-types-flow@0.0.7: +ast-types-flow@0.0.7, ast-types-flow@^0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + async-each@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" -async@^1.5.2: - version "1.5.2" - resolved "http://registry.npmjs.org/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" - -async@^2.1.2, async@^2.1.4, async@^2.4.1, async@^2.5.0: - version "2.6.1" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610" - dependencies: - lodash "^4.17.10" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - -atob@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - -autoprefixer@7.1.6: - version "7.1.6" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-7.1.6.tgz#fb933039f74af74a83e71225ce78d9fd58ba84d7" - dependencies: - browserslist "^2.5.1" - caniuse-lite "^1.0.30000748" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^6.0.13" - postcss-value-parser "^3.2.3" - -autoprefixer@^6.3.1: - version "6.7.7" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz#1dbd1c835658e35ce3f9984099db00585c782014" - dependencies: - browserslist "^1.7.6" - caniuse-db "^1.0.30000634" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^5.2.16" - postcss-value-parser "^3.2.3" - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - -aws4@^1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" - -axios@^0.18.0: - version "0.18.0" - resolved "http://registry.npmjs.org/axios/-/axios-0.18.0.tgz#32d53e4851efdc0a11993b6cd000789d70c05102" - dependencies: - follow-redirects "^1.3.0" - is-buffer "^1.1.5" - -axobject-query@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-0.1.0.tgz#62f59dbc59c9f9242759ca349960e7a2fe3c36c0" - dependencies: - ast-types-flow "0.0.7" - -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" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-core@6.26.0, babel-core@^6.0.0, babel-core@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8" - dependencies: - babel-code-frame "^6.26.0" - babel-generator "^6.26.0" - babel-helpers "^6.24.1" - babel-messages "^6.23.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - convert-source-map "^1.5.0" - debug "^2.6.8" - json5 "^0.5.1" - lodash "^4.17.4" - minimatch "^3.0.4" - path-is-absolute "^1.0.1" - private "^0.1.7" - slash "^1.0.0" - source-map "^0.5.6" - -babel-eslint@7.2.3: - version "7.2.3" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-7.2.3.tgz#b2fe2d80126470f5c19442dc757253a897710827" - dependencies: - babel-code-frame "^6.22.0" - babel-traverse "^6.23.1" - babel-types "^6.23.0" - babylon "^6.17.0" - -babel-generator@^6.18.0, babel-generator@^6.26.0: - version "6.26.1" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" - dependencies: - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.17.4" - source-map "^0.5.7" - trim-right "^1.0.1" - -babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" - dependencies: - babel-helper-explode-assignable-expression "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-builder-react-jsx@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz#39ff8313b75c8b65dceff1f31d383e0ff2a408a0" - dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - esutils "^2.0.2" - -babel-helper-call-delegate@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-define-map@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-explode-assignable-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" - dependencies: - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-function-name@^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" - dependencies: - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-get-function-arity@^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" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-hoist-variables@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-optimise-call-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-regex@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" - dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-remap-async-to-generator@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-replace-supers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" - dependencies: - babel-helper-optimise-call-expression "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helpers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-jest@20.0.3, babel-jest@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-20.0.3.tgz#e4a03b13dc10389e140fc645d09ffc4ced301671" - dependencies: - babel-core "^6.0.0" - babel-plugin-istanbul "^4.0.0" - babel-preset-jest "^20.0.3" - -babel-loader@7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.2.tgz#f6cbe122710f1aa2af4d881c6d5b54358ca24126" - dependencies: - find-cache-dir "^1.0.0" - loader-utils "^1.0.2" - mkdirp "^0.5.1" - -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-check-es2015-constants@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-dynamic-import-node@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-1.1.0.tgz#bd1d88ac7aaf98df4917c384373b04d971a2b37a" - dependencies: - babel-plugin-syntax-dynamic-import "^6.18.0" - babel-template "^6.26.0" - babel-types "^6.26.0" - -babel-plugin-istanbul@^4.0.0: - version "4.1.6" - resolved "http://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz#36c59b2192efce81c5b378321b74175add1c9a45" - dependencies: - babel-plugin-syntax-object-rest-spread "^6.13.0" - find-up "^2.1.0" - istanbul-lib-instrument "^1.10.1" - test-exclude "^4.2.1" - -babel-plugin-jest-hoist@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-20.0.3.tgz#afedc853bd3f8dc3548ea671fbe69d03cc2c1767" - -babel-plugin-syntax-async-functions@^6.8.0: - version "6.13.0" - resolved "http://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" - -babel-plugin-syntax-class-properties@^6.8.0: - version "6.13.0" - resolved "http://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de" - -babel-plugin-syntax-dynamic-import@6.18.0, babel-plugin-syntax-dynamic-import@^6.18.0: - version "6.18.0" - resolved "http://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da" - -babel-plugin-syntax-exponentiation-operator@^6.8.0: - version "6.13.0" - resolved "http://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" - -babel-plugin-syntax-flow@^6.18.0: - version "6.18.0" - resolved "http://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" - -babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0: - version "6.18.0" - resolved "http://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" - -babel-plugin-syntax-object-rest-spread@^6.13.0, babel-plugin-syntax-object-rest-spread@^6.8.0: - version "6.13.0" - resolved "http://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" - -babel-plugin-syntax-trailing-function-commas@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" - -babel-plugin-transform-async-to-generator@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" - dependencies: - babel-helper-remap-async-to-generator "^6.24.1" - babel-plugin-syntax-async-functions "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-class-properties@6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz#6a79763ea61d33d36f37b611aa9def81a81b46ac" - dependencies: - babel-helper-function-name "^6.24.1" - babel-plugin-syntax-class-properties "^6.8.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" +async-limiter@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" -babel-plugin-transform-es2015-arrow-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" - dependencies: - babel-runtime "^6.22.0" +async@^1.5.2: + version "1.5.2" + resolved "http://registry.npmjs.org/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" -babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" +async@^2.1.4, async@^2.5.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610" dependencies: - babel-runtime "^6.22.0" + lodash "^4.17.10" -babel-plugin-transform-es2015-block-scoping@^6.23.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" - dependencies: - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" -babel-plugin-transform-es2015-classes@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" - dependencies: - babel-helper-define-map "^6.24.1" - babel-helper-function-name "^6.24.1" - babel-helper-optimise-call-expression "^6.24.1" - babel-helper-replace-supers "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" +atob@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" -babel-plugin-transform-es2015-computed-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" +autoprefixer@^9.1.5: + version "9.3.1" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.3.1.tgz#71b622174de2b783d5fd99f9ad617b7a3c78443e" dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" + browserslist "^4.3.3" + caniuse-lite "^1.0.30000898" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^7.0.5" + postcss-value-parser "^3.3.1" -babel-plugin-transform-es2015-destructuring@6.23.0, babel-plugin-transform-es2015-destructuring@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" - dependencies: - babel-runtime "^6.22.0" +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" -babel-plugin-transform-es2015-duplicate-keys@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" +aws4@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" -babel-plugin-transform-es2015-for-of@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" +axios@^0.18.0: + version "0.18.0" + resolved "http://registry.npmjs.org/axios/-/axios-0.18.0.tgz#32d53e4851efdc0a11993b6cd000789d70c05102" dependencies: - babel-runtime "^6.22.0" + follow-redirects "^1.3.0" + is-buffer "^1.1.5" -babel-plugin-transform-es2015-function-name@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" +axobject-query@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.0.2.tgz#ea187abe5b9002b377f925d8bf7d1c561adf38f9" dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" + ast-types-flow "0.0.7" -babel-plugin-transform-es2015-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" +babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" dependencies: - babel-runtime "^6.22.0" + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" -babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" - dependencies: - babel-plugin-transform-es2015-modules-commonjs "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" +babel-core@7.0.0-bridge.0: + version "7.0.0-bridge.0" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" -babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: - version "6.26.2" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" +babel-core@^6.0.0, babel-core@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8" dependencies: - babel-plugin-transform-strict-mode "^6.24.1" + babel-code-frame "^6.26.0" + babel-generator "^6.26.0" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.26.0" babel-runtime "^6.26.0" babel-template "^6.26.0" + babel-traverse "^6.26.0" babel-types "^6.26.0" + babylon "^6.18.0" + convert-source-map "^1.5.0" + debug "^2.6.8" + json5 "^0.5.1" + lodash "^4.17.4" + minimatch "^3.0.4" + path-is-absolute "^1.0.1" + private "^0.1.7" + slash "^1.0.0" + source-map "^0.5.6" -babel-plugin-transform-es2015-modules-systemjs@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" +babel-eslint@9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-9.0.0.tgz#7d9445f81ed9f60aff38115f838970df9f2b6220" dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.0.0" + "@babel/traverse" "^7.0.0" + "@babel/types" "^7.0.0" + eslint-scope "3.7.1" + eslint-visitor-keys "^1.0.0" -babel-plugin-transform-es2015-modules-umd@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" +babel-extract-comments@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/babel-extract-comments/-/babel-extract-comments-1.0.0.tgz#0a2aedf81417ed391b85e18b4614e693a0351a21" dependencies: - babel-plugin-transform-es2015-modules-amd "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" + babylon "^6.18.0" -babel-plugin-transform-es2015-object-super@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" +babel-generator@^6.18.0, babel-generator@^6.26.0: + version "6.26.1" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" dependencies: - babel-helper-replace-supers "^6.24.1" - babel-runtime "^6.22.0" + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.17.4" + source-map "^0.5.7" + trim-right "^1.0.1" -babel-plugin-transform-es2015-parameters@^6.23.0: +babel-helpers@^6.24.1: version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" + resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" dependencies: - babel-helper-call-delegate "^6.24.1" - babel-helper-get-function-arity "^6.24.1" babel-runtime "^6.22.0" babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" -babel-plugin-transform-es2015-shorthand-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" +babel-jest@23.6.0, babel-jest@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-23.6.0.tgz#a644232366557a2240a0c083da6b25786185a2f1" dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" + babel-plugin-istanbul "^4.1.6" + babel-preset-jest "^23.2.0" -babel-plugin-transform-es2015-spread@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" +babel-loader@8.0.4: + version "8.0.4" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.4.tgz#7bbf20cbe4560629e2e41534147692d3fecbdce6" dependencies: - babel-runtime "^6.22.0" + find-cache-dir "^1.0.0" + loader-utils "^1.0.2" + mkdirp "^0.5.1" + util.promisify "^1.0.0" -babel-plugin-transform-es2015-sticky-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" dependencies: - babel-helper-regex "^6.24.1" babel-runtime "^6.22.0" - babel-types "^6.24.1" -babel-plugin-transform-es2015-template-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" +babel-plugin-dynamic-import-node@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.2.0.tgz#c0adfb07d95f4a4495e9aaac6ec386c4d7c2524e" dependencies: - babel-runtime "^6.22.0" + object.assign "^4.1.0" -babel-plugin-transform-es2015-typeof-symbol@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" +babel-plugin-istanbul@^4.1.6: + version "4.1.6" + resolved "http://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz#36c59b2192efce81c5b378321b74175add1c9a45" dependencies: - babel-runtime "^6.22.0" + babel-plugin-syntax-object-rest-spread "^6.13.0" + find-up "^2.1.0" + istanbul-lib-instrument "^1.10.1" + test-exclude "^4.2.1" -babel-plugin-transform-es2015-unicode-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - regexpu-core "^2.0.0" +babel-plugin-jest-hoist@^23.2.0: + version "23.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-23.2.0.tgz#e61fae05a1ca8801aadee57a6d66b8cefaf44167" -babel-plugin-transform-exponentiation-operator@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" +babel-plugin-macros@2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.4.2.tgz#21b1a2e82e2130403c5ff785cba6548e9b644b28" dependencies: - babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" - babel-plugin-syntax-exponentiation-operator "^6.8.0" - babel-runtime "^6.22.0" + cosmiconfig "^5.0.5" + resolve "^1.8.1" -babel-plugin-transform-flow-strip-types@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz#84cb672935d43714fdc32bce84568d87441cf7cf" - dependencies: - babel-plugin-syntax-flow "^6.18.0" - babel-runtime "^6.22.0" +babel-plugin-named-asset-import@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.2.3.tgz#b40ed50a848e7bb0a2a7e34d990d1f9d46fe9b38" -babel-plugin-transform-object-rest-spread@6.26.0: +babel-plugin-syntax-object-rest-spread@^6.13.0, babel-plugin-syntax-object-rest-spread@^6.8.0: + version "6.13.0" + resolved "http://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" + +babel-plugin-transform-object-rest-spread@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06" dependencies: babel-plugin-syntax-object-rest-spread "^6.8.0" babel-runtime "^6.26.0" -babel-plugin-transform-react-constant-elements@6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-constant-elements/-/babel-plugin-transform-react-constant-elements-6.23.0.tgz#2f119bf4d2cdd45eb9baaae574053c604f6147dd" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-react-display-name@^6.23.0: - version "6.25.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz#67e2bf1f1e9c93ab08db96792e05392bf2cc28d1" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-react-jsx-self@6.22.0, babel-plugin-transform-react-jsx-self@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz#df6d80a9da2612a121e6ddd7558bcbecf06e636e" - dependencies: - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-react-jsx-source@6.22.0, babel-plugin-transform-react-jsx-source@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz#66ac12153f5cd2d17b3c19268f4bf0197f44ecd6" - dependencies: - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-react-jsx@6.24.1, babel-plugin-transform-react-jsx@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz#840a028e7df460dfc3a2d29f0c0d91f6376e66a3" - dependencies: - babel-helper-builder-react-jsx "^6.24.1" - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-regenerator@6.26.0, babel-plugin-transform-regenerator@^6.22.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" - dependencies: - regenerator-transform "^0.10.0" - -babel-plugin-transform-runtime@6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz#88490d446502ea9b8e7efb0fe09ec4d99479b1ee" - dependencies: - babel-runtime "^6.22.0" +babel-plugin-transform-react-remove-prop-types@0.4.18: + version "0.4.18" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.18.tgz#85ff79d66047b34288c6f7cc986b8854ab384f8c" -babel-plugin-transform-strict-mode@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" +babel-preset-jest@^23.2.0: + version "23.2.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-23.2.0.tgz#8ec7a03a138f001a1a8fb1e8113652bf1a55da46" dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-preset-env@1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.6.1.tgz#a18b564cc9b9afdf4aae57ae3c1b0d99188e6f48" - dependencies: - babel-plugin-check-es2015-constants "^6.22.0" - babel-plugin-syntax-trailing-function-commas "^6.22.0" - babel-plugin-transform-async-to-generator "^6.22.0" - babel-plugin-transform-es2015-arrow-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoping "^6.23.0" - babel-plugin-transform-es2015-classes "^6.23.0" - babel-plugin-transform-es2015-computed-properties "^6.22.0" - babel-plugin-transform-es2015-destructuring "^6.23.0" - babel-plugin-transform-es2015-duplicate-keys "^6.22.0" - babel-plugin-transform-es2015-for-of "^6.23.0" - babel-plugin-transform-es2015-function-name "^6.22.0" - babel-plugin-transform-es2015-literals "^6.22.0" - babel-plugin-transform-es2015-modules-amd "^6.22.0" - babel-plugin-transform-es2015-modules-commonjs "^6.23.0" - babel-plugin-transform-es2015-modules-systemjs "^6.23.0" - babel-plugin-transform-es2015-modules-umd "^6.23.0" - babel-plugin-transform-es2015-object-super "^6.22.0" - babel-plugin-transform-es2015-parameters "^6.23.0" - babel-plugin-transform-es2015-shorthand-properties "^6.22.0" - babel-plugin-transform-es2015-spread "^6.22.0" - babel-plugin-transform-es2015-sticky-regex "^6.22.0" - babel-plugin-transform-es2015-template-literals "^6.22.0" - babel-plugin-transform-es2015-typeof-symbol "^6.23.0" - babel-plugin-transform-es2015-unicode-regex "^6.22.0" - babel-plugin-transform-exponentiation-operator "^6.22.0" - babel-plugin-transform-regenerator "^6.22.0" - browserslist "^2.1.2" - invariant "^2.2.2" - semver "^5.3.0" + babel-plugin-jest-hoist "^23.2.0" + babel-plugin-syntax-object-rest-spread "^6.13.0" -babel-preset-flow@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz#e71218887085ae9a24b5be4169affb599816c49d" - dependencies: - babel-plugin-transform-flow-strip-types "^6.22.0" - -babel-preset-jest@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-20.0.3.tgz#cbacaadecb5d689ca1e1de1360ebfc66862c178a" - dependencies: - babel-plugin-jest-hoist "^20.0.3" - -babel-preset-react-app@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/babel-preset-react-app/-/babel-preset-react-app-3.1.2.tgz#49ba3681b917c4e5c73a5249d3ef4c48fae064e2" - dependencies: - babel-plugin-dynamic-import-node "1.1.0" - babel-plugin-syntax-dynamic-import "6.18.0" - babel-plugin-transform-class-properties "6.24.1" - babel-plugin-transform-es2015-destructuring "6.23.0" - babel-plugin-transform-object-rest-spread "6.26.0" - babel-plugin-transform-react-constant-elements "6.23.0" - babel-plugin-transform-react-jsx "6.24.1" - babel-plugin-transform-react-jsx-self "6.22.0" - babel-plugin-transform-react-jsx-source "6.22.0" - babel-plugin-transform-regenerator "6.26.0" - babel-plugin-transform-runtime "6.23.0" - babel-preset-env "1.6.1" - babel-preset-react "6.24.1" - -babel-preset-react@6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-preset-react/-/babel-preset-react-6.24.1.tgz#ba69dfaea45fc3ec639b6a4ecea6e17702c91380" - dependencies: - babel-plugin-syntax-jsx "^6.3.13" - babel-plugin-transform-react-display-name "^6.23.0" - babel-plugin-transform-react-jsx "^6.24.1" - babel-plugin-transform-react-jsx-self "^6.22.0" - babel-plugin-transform-react-jsx-source "^6.22.0" - babel-preset-flow "^6.23.0" +babel-preset-react-app@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/babel-preset-react-app/-/babel-preset-react-app-6.1.0.tgz#477ae7f8557eb99ce26d179530127913b733310d" + dependencies: + "@babel/core" "7.1.0" + "@babel/plugin-proposal-class-properties" "7.1.0" + "@babel/plugin-proposal-decorators" "7.1.2" + "@babel/plugin-proposal-object-rest-spread" "7.0.0" + "@babel/plugin-syntax-dynamic-import" "7.0.0" + "@babel/plugin-transform-classes" "7.1.0" + "@babel/plugin-transform-destructuring" "7.0.0" + "@babel/plugin-transform-flow-strip-types" "7.0.0" + "@babel/plugin-transform-react-constant-elements" "7.0.0" + "@babel/plugin-transform-react-display-name" "7.0.0" + "@babel/plugin-transform-runtime" "7.1.0" + "@babel/preset-env" "7.1.0" + "@babel/preset-react" "7.0.0" + "@babel/preset-typescript" "7.1.0" + "@babel/runtime" "7.0.0" + babel-loader "8.0.4" + babel-plugin-dynamic-import-node "2.2.0" + babel-plugin-macros "2.4.2" + babel-plugin-transform-react-remove-prop-types "0.4.18" babel-register@^6.26.0: version "6.26.0" @@ -1041,7 +1516,7 @@ babel-register@^6.26.0: mkdirp "^0.5.1" source-map-support "^0.4.15" -babel-runtime@6.26.0, babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: +babel-runtime@^6.22.0, babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" dependencies: @@ -1058,7 +1533,7 @@ babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.26.0: babylon "^6.18.0" lodash "^4.17.4" -babel-traverse@^6.18.0, babel-traverse@^6.23.1, babel-traverse@^6.24.1, babel-traverse@^6.26.0: +babel-traverse@^6.0.0, babel-traverse@^6.18.0, babel-traverse@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" dependencies: @@ -1072,7 +1547,7 @@ babel-traverse@^6.18.0, babel-traverse@^6.23.1, babel-traverse@^6.24.1, babel-tr invariant "^2.2.2" lodash "^4.17.4" -babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.23.0, babel-types@^6.24.1, babel-types@^6.26.0: +babel-types@^6.0.0, babel-types@^6.18.0, babel-types@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" dependencies: @@ -1081,14 +1556,10 @@ babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.23.0, babel-types@^6.24 lodash "^4.17.4" to-fast-properties "^1.0.3" -babylon@^6.17.0, babylon@^6.18.0: +babylon@^6.18.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" -balanced-match@^0.4.2: - version "0.4.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" - balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" @@ -1119,6 +1590,15 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" +bfj@6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/bfj/-/bfj-6.1.1.tgz#05a3b7784fbd72cfa3c22e56002ef99336516c48" + dependencies: + bluebird "^3.5.1" + check-types "^7.3.0" + hoopy "^0.1.2" + tryer "^1.0.0" + big.js@^3.1.3: version "3.2.0" resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" @@ -1127,9 +1607,9 @@ binary-extensions@^1.0.0: version "1.12.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.12.0.tgz#c2d780f53d45bba8317a8902d4ceeaf3a6385b14" -bluebird@^3.4.7: - version "3.5.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.2.tgz#1be0908e054a751754549c270489c1505d4ab15a" +bluebird@^3.5.1: + version "3.5.3" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.3.tgz#7d01c6f9616c9a51ab0f8c549a79dfe6ec33efa7" bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: version "4.11.8" @@ -1161,23 +1641,11 @@ bonjour@^3.5.0: multicast-dns "^6.0.1" multicast-dns-service-types "^1.1.0" -boolbase@~1.0.0: +boolbase@^1.0.0, boolbase@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" -boxen@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" - dependencies: - ansi-align "^2.0.0" - camelcase "^4.0.0" - chalk "^2.0.1" - cli-boxes "^1.0.0" - string-width "^2.0.0" - term-size "^1.2.0" - widest-line "^2.0.0" - -brace-expansion@^1.0.0, brace-expansion@^1.1.7: +brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" dependencies: @@ -1219,7 +1687,11 @@ browser-headers@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/browser-headers/-/browser-headers-0.4.0.tgz#7b6b4d3cc0cecc9ddf503768147932105c421734" -browser-resolve@^1.11.2: +browser-process-hrtime@^0.1.2: + version "0.1.3" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz#616f00faef1df7ec1b5bf9cfe2bdc3170f26c7b4" + +browser-resolve@^1.11.3: version "1.11.3" resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" dependencies: @@ -1278,25 +1750,21 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: - version "1.7.7" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9" - dependencies: - caniuse-db "^1.0.30000639" - electron-to-chromium "^1.2.7" - -browserslist@^2.1.2, browserslist@^2.5.1: - version "2.11.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.11.3.tgz#fe36167aed1bbcde4827ebfe71347a2cc70b99b2" +browserslist@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.1.1.tgz#328eb4ff1215b12df6589e9ab82f8adaa4fc8cd6" dependencies: - caniuse-lite "^1.0.30000792" - electron-to-chromium "^1.3.30" + caniuse-lite "^1.0.30000884" + electron-to-chromium "^1.3.62" + node-releases "^1.0.0-alpha.11" -bser@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bser/-/bser-1.0.2.tgz#381116970b2a6deea5646dd15dd7278444b56169" +browserslist@^4.0.0, browserslist@^4.1.0, browserslist@^4.1.1, browserslist@^4.3.3: + version "4.3.4" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.3.4.tgz#4477b737db6a1b07077275b24791e680d4300425" dependencies: - node-int64 "^0.4.0" + caniuse-lite "^1.0.30000899" + electron-to-chromium "^1.3.82" + node-releases "^1.0.1" bser@^2.0.0: version "2.0.0" @@ -1324,7 +1792,7 @@ buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" -builtin-modules@^1.0.0, builtin-modules@^1.1.1: +builtin-modules@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" @@ -1336,6 +1804,43 @@ bytes@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" +cacache@^10.0.4: + version "10.0.4" + resolved "http://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460" + dependencies: + bluebird "^3.5.1" + chownr "^1.0.1" + glob "^7.1.2" + graceful-fs "^4.1.11" + lru-cache "^4.1.1" + mississippi "^2.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.2" + ssri "^5.2.4" + unique-filename "^1.1.0" + y18n "^4.0.0" + +cacache@^11.0.2: + version "11.3.1" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.1.tgz#d09d25f6c4aca7a6d305d141ae332613aa1d515f" + dependencies: + bluebird "^3.5.1" + chownr "^1.0.1" + figgy-pudding "^3.1.0" + glob "^7.1.2" + graceful-fs "^4.1.11" + lru-cache "^4.1.3" + mississippi "^3.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.2" + ssri "^6.0.0" + unique-filename "^1.1.0" + y18n "^4.0.0" + cache-base@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" @@ -1350,12 +1855,28 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" +call-me-maybe@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" + +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + dependencies: + callsites "^2.0.0" + caller-path@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" dependencies: callsites "^0.2.0" +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + dependencies: + caller-callsite "^2.0.0" + callsites@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" @@ -1371,66 +1892,50 @@ camel-case@3.0.x: no-case "^2.2.0" upper-case "^1.1.1" -camelcase-keys@^2.0.0: - version "2.1.0" - resolved "http://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" - dependencies: - camelcase "^2.0.0" - map-obj "^1.0.0" - -camelcase@^1.0.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" - -camelcase@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" - -camelcase@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" - -camelcase@^4.0.0, camelcase@^4.1.0: +camelcase@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" -caniuse-api@^1.5.2: - version "1.6.1" - resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c" +camelcase@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.0.0.tgz#03295527d58bd3cd4aa75363f35b2e8d97be2f42" + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" dependencies: - browserslist "^1.3.6" - caniuse-db "^1.0.30000529" + browserslist "^4.0.0" + caniuse-lite "^1.0.0" lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: - version "1.0.30000900" - resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000900.tgz#e123ad2cef981f234afd5572507e0c4ff2b439b0" +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000884, caniuse-lite@^1.0.30000887, caniuse-lite@^1.0.30000898, caniuse-lite@^1.0.30000899: + version "1.0.30000907" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000907.tgz#0b9899bde53fb1c30e214fb12402361e02ff5c42" -caniuse-lite@^1.0.30000748, caniuse-lite@^1.0.30000792: - version "1.0.30000900" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000900.tgz#015cfe37897a3386a3075a914498800c29afe77e" - -capture-stack-trace@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d" +capture-exit@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-1.2.0.tgz#1c5fcc489fd0ab00d4f1ac7ae1072e3173fbab6f" + dependencies: + rsvp "^3.3.3" -case-sensitive-paths-webpack-plugin@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.1.1.tgz#3d29ced8c1f124bf6f53846fb3f5894731fdc909" +case-sensitive-paths-webpack-plugin@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.1.2.tgz#c899b52175763689224571dad778742e133f0192" caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" -center-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" +chalk@2.4.1, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" dependencies: - align-text "^0.1.3" - lazy-cache "^1.0.3" + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" -chalk@1.1.3, chalk@^1.1.3: +chalk@^1.1.3: version "1.1.3" resolved "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" dependencies: @@ -1440,21 +1945,17 @@ chalk@1.1.3, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - change-emitter@^0.1.2: version "0.1.6" resolved "https://registry.yarnpkg.com/change-emitter/-/change-emitter-0.1.6.tgz#e8b2fe3d7f1ab7d69a32199aff91ea6931409515" -chardet@^0.4.0: - version "0.4.2" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + +check-types@^7.3.0: + version "7.4.0" + resolved "https://registry.yarnpkg.com/check-types/-/check-types-7.4.0.tgz#0378ec1b9616ec71f774931a3c6516fad8c152f4" cheerio@^1.0.0-rc.2: version "1.0.0-rc.2" @@ -1467,7 +1968,7 @@ cheerio@^1.0.0-rc.2: lodash "^4.15.0" parse5 "^3.0.1" -chokidar@^2.0.0, chokidar@^2.0.2: +chokidar@^2.0.0, chokidar@^2.0.2, chokidar@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.4.tgz#356ff4e2b0e8e43e322d18a372460bbcf3accd26" dependencies: @@ -1490,6 +1991,12 @@ chownr@^1.0.1: version "1.1.1" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" +chrome-trace-event@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz#45a91bd2c20c9411f0963b5aaeb9a1b95e09cc48" + dependencies: + tslib "^1.9.0" + ci-info@^1.5.0: version "1.6.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" @@ -1502,14 +2009,8 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: safe-buffer "^5.0.1" circular-json@^0.3.1: - version "0.3.3" - resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" - -clap@^1.0.9: - version "1.2.3" - resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.3.tgz#4f36745b32008492557f46412d66d50cb99bce51" - dependencies: - chalk "^1.1.3" + version "0.3.3" + resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" class-utils@^0.3.5: version "0.3.6" @@ -1530,10 +2031,6 @@ clean-css@4.2.x: dependencies: source-map "~0.6.0" -cli-boxes@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" - cli-cursor@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" @@ -1544,33 +2041,40 @@ cli-width@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" -cliui@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" +cliui@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" dependencies: - center-align "^0.1.1" - right-align "^0.1.1" - wordwrap "0.0.2" + string-width "^2.1.1" + strip-ansi "^4.0.0" + wrap-ansi "^2.0.0" -cliui@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" +clone-deep@^0.2.4: + version "0.2.4" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-0.2.4.tgz#4e73dd09e9fb971cc38670c5dced9c1896481cc6" dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - wrap-ansi "^2.0.0" + for-own "^0.1.3" + is-plain-object "^2.0.1" + kind-of "^3.0.2" + lazy-cache "^1.0.3" + shallow-clone "^0.1.2" -clone@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" +clone-deep@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-2.0.2.tgz#00db3a1e173656730d1188c3d6aced6d7ea97713" + dependencies: + for-own "^1.0.0" + is-plain-object "^2.0.4" + kind-of "^6.0.0" + shallow-clone "^1.0.0" co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" -coa@~1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.4.tgz#a9ef153660d6a86a8bdec0289a5c684d217432fd" +coa@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.1.tgz#f3f8b0b15073e35d70263fb1042cb2c023db38af" dependencies: q "^1.1.2" @@ -1585,7 +2089,7 @@ collection-visit@^1.0.0: map-visit "^1.0.0" object-visit "^1.0.0" -color-convert@^1.3.0, color-convert@^1.9.0: +color-convert@^1.9.0, color-convert@^1.9.1: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" dependencies: @@ -1595,27 +2099,19 @@ color-name@1.1.3, color-name@^1.0.0: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" -color-string@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991" +color-string@^1.5.2: + version "1.5.3" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc" dependencies: color-name "^1.0.0" + simple-swizzle "^0.2.2" -color@^0.11.0: - version "0.11.4" - resolved "http://registry.npmjs.org/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764" - dependencies: - clone "^1.0.2" - color-convert "^1.3.0" - color-string "^0.3.0" - -colormin@^1.0.5: - version "1.1.2" - resolved "https://registry.yarnpkg.com/colormin/-/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133" +color@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/color/-/color-3.1.0.tgz#d8e9fb096732875774c84bf922815df0308d0ffc" dependencies: - color "^0.11.0" - css-color-names "0.0.4" - has "^1.0.1" + color-convert "^1.9.1" + color-string "^1.5.2" colors@0.5.x: version "0.5.1" @@ -1635,6 +2131,14 @@ commander@2.17.x, commander@^2.11.0, commander@~2.17.1: version "2.17.1" resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" +commander@~2.13.0: + version "2.13.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" + +common-tags@^1.4.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" + commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -1665,7 +2169,7 @@ concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" -concat-stream@^1.6.0: +concat-stream@^1.5.0: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" dependencies: @@ -1674,16 +2178,9 @@ concat-stream@^1.6.0: readable-stream "^2.2.2" typedarray "^0.0.6" -configstore@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f" - dependencies: - dot-prop "^4.1.0" - graceful-fs "^4.1.2" - make-dir "^1.0.0" - unique-string "^1.0.0" - write-file-atomic "^2.0.0" - xdg-basedir "^3.0.0" +confusing-browser-globals@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.5.tgz#0171050cfdd4261e278978078bc00c4d88e135f4" connect-history-api-fallback@^1.3.0: version "1.5.0" @@ -1711,15 +2208,11 @@ content-disposition@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" -content-type-parser@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/content-type-parser/-/content-type-parser-1.0.2.tgz#caabe80623e63638b2502fd4c7f12ff4ce2352e7" - content-type@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" -convert-source-map@^1.4.0, convert-source-map@^1.5.0: +convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.0: version "1.6.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" dependencies: @@ -1733,33 +2226,50 @@ cookie@0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" +copy-concurrently@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + dependencies: + aproba "^1.1.1" + fs-write-stream-atomic "^1.0.8" + iferr "^0.1.5" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.0" + copy-descriptor@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" +core-js@2.5.7, core-js@^2.4.0, core-js@^2.4.1, core-js@^2.5.0: + version "2.5.7" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e" + core-js@^1.0.0: version "1.2.7" resolved "http://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" -core-js@^2.4.0, core-js@^2.4.1, core-js@^2.5.0: - version "2.5.7" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e" - core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" -cosmiconfig@^2.1.0, cosmiconfig@^2.1.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-2.2.2.tgz#6173cebd56fac042c1f4390edf7af6c07c7cb892" +cosmiconfig@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-4.0.0.tgz#760391549580bbd2df1e562bc177b13c290972dc" dependencies: is-directory "^0.3.1" - js-yaml "^3.4.3" - minimist "^1.2.0" - object-assign "^4.1.0" - os-homedir "^1.0.1" - parse-json "^2.2.0" - require-from-string "^1.1.0" + js-yaml "^3.9.0" + parse-json "^4.0.0" + require-from-string "^2.0.1" + +cosmiconfig@^5.0.0, cosmiconfig@^5.0.5, cosmiconfig@^5.0.6: + version "5.0.7" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.7.tgz#39826b292ee0d78eda137dfa3173bd1c21a43b04" + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.9.0" + parse-json "^4.0.0" create-ecdh@^4.0.0: version "4.0.3" @@ -1768,12 +2278,6 @@ create-ecdh@^4.0.0: bn.js "^4.1.0" elliptic "^6.0.0" -create-error-class@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" - dependencies: - capture-stack-trace "^1.0.0" - create-hash@^1.1.0, create-hash@^1.1.2: version "1.2.0" resolved "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" @@ -1795,7 +2299,17 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: safe-buffer "^5.0.1" sha.js "^2.4.8" -cross-spawn@5.1.0, cross-spawn@^5.0.1, cross-spawn@^5.1.0: +cross-spawn@6.0.5, cross-spawn@^6.0.0, cross-spawn@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^5.0.1: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" dependencies: @@ -1819,33 +2333,38 @@ crypto-browserify@^3.11.0: randombytes "^2.0.0" randomfill "^1.0.3" -crypto-random-string@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" - -css-color-names@0.0.4: +css-color-names@0.0.4, css-color-names@^0.0.4: version "0.0.4" resolved "http://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" -css-loader@0.28.7: - version "0.28.7" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.7.tgz#5f2ee989dd32edd907717f953317656160999c1b" +css-declaration-sorter@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" + dependencies: + postcss "^7.0.1" + timsort "^0.3.0" + +css-loader@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-1.0.0.tgz#9f46aaa5ca41dbe31860e3b62b8e23c42916bf56" dependencies: - babel-code-frame "^6.11.0" + babel-code-frame "^6.26.0" css-selector-tokenizer "^0.7.0" - cssnano ">=2.6.1 <4" icss-utils "^2.1.0" loader-utils "^1.0.2" lodash.camelcase "^4.3.0" - object-assign "^4.0.1" - postcss "^5.0.6" - postcss-modules-extract-imports "^1.0.0" - postcss-modules-local-by-default "^1.0.1" - postcss-modules-scope "^1.0.0" - postcss-modules-values "^1.1.0" + postcss "^6.0.23" + postcss-modules-extract-imports "^1.2.0" + postcss-modules-local-by-default "^1.2.0" + postcss-modules-scope "^1.1.0" + postcss-modules-values "^1.3.0" postcss-value-parser "^3.3.0" source-list-map "^2.0.0" +css-select-base-adapter@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" + css-select@^1.1.0, css-select@~1.2.0: version "1.2.0" resolved "http://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" @@ -1855,6 +2374,15 @@ css-select@^1.1.0, css-select@~1.2.0: domutils "1.5.1" nth-check "~1.0.1" +css-select@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.0.2.tgz#ab4386cec9e1f668855564b17c3733b43b2a5ede" + dependencies: + boolbase "^1.0.0" + css-what "^2.1.2" + domutils "^1.7.0" + nth-check "^1.0.2" + css-selector-tokenizer@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz#e6988474ae8c953477bf5e7efecfceccd9cf4c86" @@ -1863,71 +2391,125 @@ css-selector-tokenizer@^0.7.0: fastparse "^1.1.1" regexpu-core "^1.0.0" +css-tree@1.0.0-alpha.28: + version "1.0.0-alpha.28" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.28.tgz#8e8968190d886c9477bc8d61e96f61af3f7ffa7f" + dependencies: + mdn-data "~1.1.0" + source-map "^0.5.3" + +css-tree@1.0.0-alpha.29: + version "1.0.0-alpha.29" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.29.tgz#3fa9d4ef3142cbd1c301e7664c1f352bd82f5a39" + dependencies: + mdn-data "~1.1.0" + source-map "^0.5.3" + +css-unit-converter@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.1.tgz#d9b9281adcfd8ced935bdbaba83786897f64e996" + +css-url-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/css-url-regex/-/css-url-regex-1.1.0.tgz#83834230cc9f74c457de59eebd1543feeb83b7ec" + css-vendor@^0.3.8: version "0.3.8" resolved "https://registry.yarnpkg.com/css-vendor/-/css-vendor-0.3.8.tgz#6421cfd3034ce664fe7673972fd0119fc28941fa" dependencies: is-in-browser "^1.0.2" -css-what@2.1: +css-what@2.1, css-what@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.2.tgz#c0876d9d0480927d7d4920dcd72af3595649554d" +cssdb@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-3.2.1.tgz#65e7dc90be476ce5b6e567b19f3bd73a8c66bcb5" + cssesc@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" -"cssnano@>=2.6.1 <4": - version "3.10.0" - resolved "http://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz#4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38" +cssesc@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703" + +cssnano-preset-default@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.5.tgz#d1756c0259d98ad311e601ba76e95c60f6771ac1" + dependencies: + css-declaration-sorter "^4.0.1" + cssnano-util-raw-cache "^4.0.1" + postcss "^7.0.0" + postcss-calc "^7.0.0" + postcss-colormin "^4.0.2" + postcss-convert-values "^4.0.1" + postcss-discard-comments "^4.0.1" + postcss-discard-duplicates "^4.0.2" + postcss-discard-empty "^4.0.1" + postcss-discard-overridden "^4.0.1" + postcss-merge-longhand "^4.0.9" + postcss-merge-rules "^4.0.2" + postcss-minify-font-values "^4.0.2" + postcss-minify-gradients "^4.0.1" + postcss-minify-params "^4.0.1" + postcss-minify-selectors "^4.0.1" + postcss-normalize-charset "^4.0.1" + postcss-normalize-display-values "^4.0.1" + postcss-normalize-positions "^4.0.1" + postcss-normalize-repeat-style "^4.0.1" + postcss-normalize-string "^4.0.1" + postcss-normalize-timing-functions "^4.0.1" + postcss-normalize-unicode "^4.0.1" + postcss-normalize-url "^4.0.1" + postcss-normalize-whitespace "^4.0.1" + postcss-ordered-values "^4.1.1" + postcss-reduce-initial "^4.0.2" + postcss-reduce-transforms "^4.0.1" + postcss-svgo "^4.0.1" + postcss-unique-selectors "^4.0.1" + +cssnano-util-get-arguments@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" + +cssnano-util-get-match@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" + +cssnano-util-raw-cache@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" dependencies: - autoprefixer "^6.3.1" - decamelize "^1.1.2" - defined "^1.0.0" - has "^1.0.1" - object-assign "^4.0.1" - postcss "^5.0.14" - postcss-calc "^5.2.0" - postcss-colormin "^2.1.8" - postcss-convert-values "^2.3.4" - postcss-discard-comments "^2.0.4" - postcss-discard-duplicates "^2.0.1" - postcss-discard-empty "^2.0.1" - postcss-discard-overridden "^0.1.1" - postcss-discard-unused "^2.2.1" - postcss-filter-plugins "^2.0.0" - postcss-merge-idents "^2.1.5" - postcss-merge-longhand "^2.0.1" - postcss-merge-rules "^2.0.3" - postcss-minify-font-values "^1.0.2" - postcss-minify-gradients "^1.0.1" - postcss-minify-params "^1.0.4" - postcss-minify-selectors "^2.0.4" - postcss-normalize-charset "^1.1.0" - postcss-normalize-url "^3.0.7" - postcss-ordered-values "^2.1.0" - postcss-reduce-idents "^2.2.2" - postcss-reduce-initial "^1.0.0" - postcss-reduce-transforms "^1.0.3" - postcss-svgo "^2.1.1" - postcss-unique-selectors "^2.0.2" - postcss-value-parser "^3.2.3" - postcss-zindex "^2.0.1" - -csso@~2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/csso/-/csso-2.3.2.tgz#ddd52c587033f49e94b71fc55569f252e8ff5f85" + postcss "^7.0.0" + +cssnano-util-same-parent@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" + +cssnano@^4.1.0: + version "4.1.7" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.7.tgz#0bf112294bec103ab5f68d3f805732c8325a0b1b" dependencies: - clap "^1.0.9" - source-map "^0.5.3" + cosmiconfig "^5.0.0" + cssnano-preset-default "^4.0.5" + is-resolvable "^1.0.0" + postcss "^7.0.0" + +csso@^3.5.0: + version "3.5.1" + resolved "https://registry.yarnpkg.com/csso/-/csso-3.5.1.tgz#7b9eb8be61628973c1b261e169d2f024008e758b" + dependencies: + css-tree "1.0.0-alpha.29" -cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": +cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0", cssom@^0.3.4: version "0.3.4" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.4.tgz#8cd52e8a3acfd68d3aed38ee0a640177d2f9d797" -"cssstyle@>= 0.2.37 < 0.3.0": - version "0.2.37" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-0.2.37.tgz#541097234cb2513c83ceed3acddc27ff27987d54" +cssstyle@^1.0.0, cssstyle@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.1.1.tgz#18b038a9c44d65f7a8e428a653b9f6fe42faf5fb" dependencies: cssom "0.3.x" @@ -1935,19 +2517,11 @@ csstype@^2.0.0, csstype@^2.2.0, csstype@^2.5.2: version "2.5.7" resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.5.7.tgz#bf9235d5872141eccfb2d16d82993c6b149179ff" -currently-unhandled@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" - dependencies: - array-find-index "^1.0.1" - -d@1: - version "1.0.0" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" - dependencies: - es5-ext "^0.10.9" +cyclist@~0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" -damerau-levenshtein@^1.0.0: +damerau-levenshtein@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz#03191c432cb6eea168bb77f3a55ffdccb8978514" @@ -1957,6 +2531,14 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" +data-urls@^1.0.0, data-urls@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" + dependencies: + abab "^2.0.0" + whatwg-mimetype "^2.2.0" + whatwg-url "^7.0.0" + date-now@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" @@ -1971,16 +2553,22 @@ debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6. dependencies: ms "2.0.0" -debug@=3.1.0, debug@^3.0.1, debug@^3.1.0: +debug@=3.1.0, debug@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" dependencies: ms "2.0.0" -decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: +decamelize@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" +decamelize@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-2.0.0.tgz#656d7bbc8094c4c788ea53c5840908c9c7d063c7" + dependencies: + xregexp "4.0.0" + decode-uri-component@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" @@ -2001,6 +2589,13 @@ deepmerge@^2.0.1: version "2.2.1" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.2.1.tgz#5d3ff22a01c00f645405a2fbc17d0778a1801170" +default-gateway@^2.6.0: + version "2.7.2" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-2.7.2.tgz#b7ef339e5e024b045467af403d50348db4642d0f" + dependencies: + execa "^0.10.0" + ip-regex "^2.1.0" + default-require-extensions@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8" @@ -2032,11 +2627,7 @@ define-property@^2.0.2: is-descriptor "^1.0.2" isobject "^3.0.1" -defined@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" - -del@^2.0.2, del@^2.2.2: +del@^2.0.2: version "2.2.2" resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" dependencies: @@ -2092,6 +2683,10 @@ detect-libc@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" +detect-newline@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" + detect-node@^2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" @@ -2115,6 +2710,13 @@ diffie-hellman@^5.0.0: miller-rabin "^4.0.0" randombytes "^2.0.0" +dir-glob@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.0.0.tgz#0b205d2b6aef98238ca286598a8204d29d0a0034" + dependencies: + arrify "^1.0.1" + path-type "^3.0.0" + discontinuous-range@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/discontinuous-range/-/discontinuous-range-1.0.0.tgz#e38331f0844bba49b9a9cb71c771585aab1bc65a" @@ -2143,7 +2745,7 @@ doctrine@1.5.0: esutils "^2.0.2" isarray "^1.0.0" -doctrine@^2.0.0: +doctrine@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" dependencies: @@ -2166,12 +2768,6 @@ dom-serializer@0, dom-serializer@~0.1.0: domelementtype "~1.1.1" entities "~1.1.1" -dom-urls@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/dom-urls/-/dom-urls-1.1.0.tgz#001ddf81628cd1e706125c7176f53ccec55d918e" - dependencies: - urijs "^1.16.1" - domain-browser@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" @@ -2184,6 +2780,12 @@ domelementtype@~1.1.1: version "1.1.3" resolved "http://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" +domexception@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" + dependencies: + webidl-conversions "^4.0.2" + domhandler@2.1: version "2.1.0" resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.1.0.tgz#d2646f5e57f6c3bab11cf6cb05d3c0acf7412594" @@ -2209,7 +2811,14 @@ domutils@1.5.1, domutils@^1.5.1: dom-serializer "0" domelementtype "1" -dot-prop@^4.1.0: +domutils@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + dependencies: + dom-serializer "0" + domelementtype "1" + +dot-prop@^4.1.1: version "4.2.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" dependencies: @@ -2219,18 +2828,23 @@ dotenv-expand@4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-4.2.0.tgz#def1f1ca5d6059d24a766e587942c21106ce1275" -dotenv@4.0.0: - version "4.0.0" - resolved "http://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz#864ef1379aced55ce6f95debecdce179f7a0cd1d" - -duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" +dotenv@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-6.0.0.tgz#24e37c041741c5f4b25324958ebbc34bca965935" duplexer@^0.1.1: version "0.1.1" resolved "http://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" +duplexify@^3.4.2, duplexify@^3.6.0: + version "3.6.1" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.6.1.tgz#b1a7a29c4abfd639585efaecce80d666b1e34125" + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" @@ -2242,9 +2856,9 @@ ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" -electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.30: - version "1.3.82" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.82.tgz#7d13ae4437d2a783de3f4efba96b186c540b67b1" +electron-to-chromium@^1.3.62, electron-to-chromium@^1.3.82: + version "1.3.83" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.83.tgz#74584eb0972bb6777811c5d68d988c722f5e6666" elliptic@^6.0.0: version "6.4.1" @@ -2258,7 +2872,7 @@ elliptic@^6.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.0" -emoji-regex@^6.1.0: +emoji-regex@^6.5.1: version "6.5.1" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.5.1.tgz#9baea929b155565c11ea41c6626eaa65cef992c2" @@ -2276,14 +2890,19 @@ encoding@^0.1.11: dependencies: iconv-lite "~0.4.13" -enhanced-resolve@^3.4.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e" +end-of-stream@^1.0.0, end-of-stream@^1.1.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" + dependencies: + once "^1.4.0" + +enhanced-resolve@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" dependencies: graceful-fs "^4.1.2" memory-fs "^0.4.0" - object-assign "^4.0.1" - tapable "^0.2.7" + tapable "^1.0.0" entities@^1.1.1, entities@~1.1.1: version "1.1.2" @@ -2339,13 +2958,13 @@ errno@^0.1.3, errno@~0.1.7: dependencies: prr "~1.0.1" -error-ex@^1.2.0: +error-ex@^1.2.0, error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" dependencies: is-arrayish "^0.2.1" -es-abstract@^1.10.0, es-abstract@^1.5.0, es-abstract@^1.6.1, es-abstract@^1.7.0: +es-abstract@^1.10.0, es-abstract@^1.5.0, es-abstract@^1.5.1, es-abstract@^1.6.1, es-abstract@^1.7.0: version "1.12.0" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165" dependencies: @@ -2363,63 +2982,6 @@ es-to-primitive@^1.1.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: - version "0.10.46" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.46.tgz#efd99f67c5a7ec789baa3daa7f79870388f7f572" - dependencies: - es6-iterator "~2.0.3" - es6-symbol "~3.1.1" - next-tick "1" - -es6-iterator@^2.0.1, es6-iterator@~2.0.1, es6-iterator@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" - dependencies: - d "1" - es5-ext "^0.10.35" - es6-symbol "^3.1.1" - -es6-map@^0.1.3: - version "0.1.5" - resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" - dependencies: - d "1" - es5-ext "~0.10.14" - es6-iterator "~2.0.1" - es6-set "~0.1.5" - es6-symbol "~3.1.1" - event-emitter "~0.3.5" - -es6-promise@^4.0.5: - version "4.2.5" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.5.tgz#da6d0d5692efb461e082c14817fe2427d8f5d054" - -es6-set@~0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" - dependencies: - d "1" - es5-ext "~0.10.14" - es6-iterator "~2.0.1" - es6-symbol "3.1.1" - event-emitter "~0.3.5" - -es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" - dependencies: - d "1" - es5-ext "~0.10.14" - -es6-weak-map@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" - dependencies: - d "1" - es5-ext "^0.10.14" - es6-iterator "^2.0.1" - es6-symbol "^3.1.1" - escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -2428,7 +2990,7 @@ escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1 version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" -escodegen@^1.6.1: +escodegen@^1.11.0, escodegen@^1.9.1: version "1.11.0" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.11.0.tgz#b27a9389481d5bfd5bec76f7bb1eb3f8f4556589" dependencies: @@ -2439,18 +3001,11 @@ escodegen@^1.6.1: optionalDependencies: source-map "~0.6.1" -escope@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" +eslint-config-react-app@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-3.0.5.tgz#d199088ab486d7ccc56d40dedcb1482b01934fb2" dependencies: - es6-map "^0.1.3" - es6-weak-map "^2.0.1" - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-config-react-app@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-2.1.0.tgz#23c909f71cbaff76b945b831d2d814b8bde169eb" + confusing-browser-globals "^1.0.5" eslint-import-resolver-node@^0.3.1: version "0.3.2" @@ -2459,9 +3014,9 @@ eslint-import-resolver-node@^0.3.1: debug "^2.6.9" resolve "^1.5.0" -eslint-loader@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-1.9.0.tgz#7e1be9feddca328d3dcfaef1ad49d5beffe83a13" +eslint-loader@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-2.1.1.tgz#2a9251523652430bfdd643efdb0afc1a2a89546a" dependencies: loader-fs-cache "^1.0.0" loader-utils "^1.0.2" @@ -2469,114 +3024,129 @@ eslint-loader@1.9.0: object-hash "^1.1.4" rimraf "^2.6.1" -eslint-module-utils@^2.1.1: +eslint-module-utils@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz#b270362cd88b1a48ad308976ce7fa54e98411746" dependencies: debug "^2.6.8" pkg-dir "^1.0.0" -eslint-plugin-flowtype@2.39.1: - version "2.39.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.39.1.tgz#b5624622a0388bcd969f4351131232dcb9649cd5" +eslint-plugin-flowtype@2.50.1: + version "2.50.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.50.1.tgz#36d4c961ac8b9e9e1dc091d3fba0537dad34ae8a" dependencies: - lodash "^4.15.0" + lodash "^4.17.10" -eslint-plugin-import@2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.8.0.tgz#fa1b6ef31fcb3c501c09859c1b86f1fc5b986894" +eslint-plugin-import@2.14.0: + version "2.14.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.14.0.tgz#6b17626d2e3e6ad52cfce8807a845d15e22111a8" dependencies: - builtin-modules "^1.1.1" contains-path "^0.1.0" debug "^2.6.8" doctrine "1.5.0" eslint-import-resolver-node "^0.3.1" - eslint-module-utils "^2.1.1" + eslint-module-utils "^2.2.0" has "^1.0.1" - lodash.cond "^4.3.0" + lodash "^4.17.4" minimatch "^3.0.3" read-pkg-up "^2.0.0" + resolve "^1.6.0" -eslint-plugin-jsx-a11y@5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-5.1.1.tgz#5c96bb5186ca14e94db1095ff59b3e2bd94069b1" +eslint-plugin-jsx-a11y@6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.1.2.tgz#69bca4890b36dcf0fe16dd2129d2d88b98f33f88" dependencies: - aria-query "^0.7.0" + aria-query "^3.0.0" array-includes "^3.0.3" - ast-types-flow "0.0.7" - axobject-query "^0.1.0" - damerau-levenshtein "^1.0.0" - emoji-regex "^6.1.0" - jsx-ast-utils "^1.4.0" + ast-types-flow "^0.0.7" + axobject-query "^2.0.1" + damerau-levenshtein "^1.0.4" + emoji-regex "^6.5.1" + has "^1.0.3" + jsx-ast-utils "^2.0.1" -eslint-plugin-react@7.4.0: - version "7.4.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.4.0.tgz#300a95861b9729c087d362dd64abcc351a74364a" +eslint-plugin-react@7.11.1: + version "7.11.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.11.1.tgz#c01a7af6f17519457d6116aa94fc6d2ccad5443c" dependencies: - doctrine "^2.0.0" - has "^1.0.1" - jsx-ast-utils "^2.0.0" - prop-types "^15.5.10" + array-includes "^3.0.3" + doctrine "^2.1.0" + has "^1.0.3" + jsx-ast-utils "^2.0.1" + prop-types "^15.6.2" + +eslint-scope@3.7.1: + version "3.7.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" -eslint-scope@^3.7.1: - version "3.7.3" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.3.tgz#bb507200d3d17f60247636160b4826284b108535" +eslint-scope@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.0.tgz#50bf3071e9338bcdc43331794a0cb533f0136172" dependencies: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint@4.10.0: - version "4.10.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.10.0.tgz#f25d0d7955c81968c2309aa5c9a229e045176bb7" +eslint-utils@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.3.1.tgz#9a851ba89ee7c460346f97cf8939c7298827e512" + +eslint-visitor-keys@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" + +eslint@5.6.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.6.0.tgz#b6f7806041af01f71b3f1895cbb20971ea4b6223" dependencies: - ajv "^5.2.0" - babel-code-frame "^6.22.0" + "@babel/code-frame" "^7.0.0" + ajv "^6.5.3" chalk "^2.1.0" - concat-stream "^1.6.0" - cross-spawn "^5.1.0" - debug "^3.0.1" - doctrine "^2.0.0" - eslint-scope "^3.7.1" - espree "^3.5.1" - esquery "^1.0.0" - estraverse "^4.2.0" + cross-spawn "^6.0.5" + debug "^3.1.0" + doctrine "^2.1.0" + eslint-scope "^4.0.0" + eslint-utils "^1.3.1" + eslint-visitor-keys "^1.0.0" + espree "^4.0.0" + esquery "^1.0.1" esutils "^2.0.2" file-entry-cache "^2.0.0" functional-red-black-tree "^1.0.1" glob "^7.1.2" - globals "^9.17.0" - ignore "^3.3.3" + globals "^11.7.0" + ignore "^4.0.6" imurmurhash "^0.1.4" - inquirer "^3.0.6" - is-resolvable "^1.0.0" - js-yaml "^3.9.1" - json-stable-stringify "^1.0.1" + inquirer "^6.1.0" + is-resolvable "^1.1.0" + js-yaml "^3.12.0" + json-stable-stringify-without-jsonify "^1.0.1" levn "^0.3.0" - lodash "^4.17.4" - minimatch "^3.0.2" + lodash "^4.17.5" + minimatch "^3.0.4" mkdirp "^0.5.1" natural-compare "^1.4.0" optionator "^0.8.2" path-is-inside "^1.0.2" pluralize "^7.0.0" progress "^2.0.0" + regexpp "^2.0.0" require-uncached "^1.0.3" - semver "^5.3.0" + semver "^5.5.1" strip-ansi "^4.0.0" - strip-json-comments "~2.0.1" - table "^4.0.1" - text-table "~0.2.0" + strip-json-comments "^2.0.1" + table "^4.0.3" + text-table "^0.2.0" -espree@^3.5.1: - version "3.5.4" - resolved "http://registry.npmjs.org/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" +espree@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-4.1.0.tgz#728d5451e0fd156c04384a7ad89ed51ff54eb25f" dependencies: - acorn "^5.5.0" - acorn-jsx "^3.0.0" - -esprima@^2.6.0: - version "2.7.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" + acorn "^6.0.2" + acorn-jsx "^5.0.0" + eslint-visitor-keys "^1.0.0" esprima@^3.1.3: version "3.1.3" @@ -2586,7 +3156,7 @@ esprima@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" -esquery@^1.0.0: +esquery@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" dependencies: @@ -2602,7 +3172,7 @@ estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" -esutils@^2.0.2: +esutils@^2.0.0, esutils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" @@ -2610,13 +3180,6 @@ etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" -event-emitter@~0.3.5: - version "0.3.5" - resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" - dependencies: - d "1" - es5-ext "~0.10.14" - eventemitter3@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.0.tgz#090b4d6cdbd645ed10bf750d4b5407942d7ba163" @@ -2644,6 +3207,18 @@ exec-sh@^0.2.0: dependencies: merge "^1.2.0" +execa@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.10.0.tgz#ff456a8f53f90f8eccc71a96d11bdfc7f082cb50" + dependencies: + cross-spawn "^6.0.0" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + execa@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" @@ -2656,6 +3231,10 @@ execa@^0.7.0: signal-exit "^3.0.0" strip-eof "^1.0.0" +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + expand-brackets@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" @@ -2686,6 +3265,17 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2: dependencies: homedir-polyfill "^1.0.1" +expect@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-23.6.0.tgz#1e0c8d3ba9a581c87bd71fb9bc8862d443425f98" + dependencies: + ansi-styles "^3.2.0" + jest-diff "^23.6.0" + jest-get-type "^22.1.0" + jest-matcher-utils "^23.6.0" + jest-message-util "^23.4.0" + jest-regex-util "^23.3.0" + express@^4.16.2: version "4.16.4" resolved "https://registry.yarnpkg.com/express/-/express-4.16.4.tgz#fddef61926109e24c515ea97fd2f1bdbf62df12e" @@ -2738,12 +3328,12 @@ extend@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" -external-editor@^2.0.4: - version "2.2.0" - resolved "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" +external-editor@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz#5866db29a97826dbe4bf3afd24070ead9ea43a27" dependencies: - chardet "^0.4.0" - iconv-lite "^0.4.17" + chardet "^0.7.0" + iconv-lite "^0.4.24" tmp "^0.0.33" extglob@^0.3.1: @@ -2765,15 +3355,6 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -extract-text-webpack-plugin@3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extract-text-webpack-plugin/-/extract-text-webpack-plugin-3.0.2.tgz#5f043eaa02f9750a9258b78c0a6e0dc1408fb2f7" - dependencies: - async "^2.4.1" - loader-utils "^1.1.0" - schema-utils "^0.3.0" - webpack-sources "^1.0.1" - extsprintf@1.3.0, extsprintf@^1.2.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" @@ -2786,6 +3367,17 @@ fast-deep-equal@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" +fast-glob@^2.0.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.3.tgz#d09d378e9ef6b0076a0fa1ba7519d9d4d9699c28" + dependencies: + "@mrmlnc/readdir-enhanced" "^2.2.1" + "@nodelib/fs.stat" "^1.0.1" + glob-parent "^3.1.0" + is-glob "^4.0.0" + merge2 "^1.2.1" + micromatch "^3.1.10" + fast-json-stable-stringify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" @@ -2810,12 +3402,6 @@ faye-websocket@~0.11.0: dependencies: websocket-driver ">=0.5.1" -fb-watchman@^1.8.0: - version "1.9.2" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-1.9.2.tgz#a24cf47827f82d38fb59a69ad70b76e3b6ae7383" - dependencies: - bser "1.0.2" - fb-watchman@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58" @@ -2834,6 +3420,10 @@ fbjs@^0.8.1, fbjs@^0.8.16: setimmediate "^1.0.5" ua-parser-js "^0.7.18" +figgy-pudding@^3.1.0, figgy-pudding@^3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" + figures@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" @@ -2847,12 +3437,12 @@ file-entry-cache@^2.0.0: flat-cache "^1.2.1" object-assign "^4.0.1" -file-loader@1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-1.1.5.tgz#91c25b6b6fbe56dae99f10a425fd64933b5c9daa" +file-loader@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-2.0.0.tgz#39749c82f020b9e85901dcff98e8004e6401cfde" dependencies: loader-utils "^1.0.2" - schema-utils "^0.3.0" + schema-utils "^1.0.0" filename-regex@^2.0.0: version "2.0.1" @@ -2865,9 +3455,9 @@ fileset@^2.0.2: glob "^7.0.3" minimatch "^3.0.3" -filesize@3.5.11: - version "3.5.11" - resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.5.11.tgz#1919326749433bb3cf77368bd158caabcc19e9ee" +filesize@3.6.1: + version "3.6.1" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" fill-range@^2.1.0: version "2.2.4" @@ -2916,6 +3506,20 @@ find-cache-dir@^1.0.0: make-dir "^1.0.0" pkg-dir "^2.0.0" +find-cache-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.0.0.tgz#4c1faed59f45184530fb9d7fa123a4d04a98472d" + dependencies: + commondir "^1.0.1" + make-dir "^1.0.0" + pkg-dir "^3.0.0" + +find-up@3.0.0, find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + dependencies: + locate-path "^3.0.0" + find-up@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" @@ -2942,22 +3546,39 @@ flatten@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" +flush-write-stream@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.3.tgz#c5d586ef38af6097650b49bc41b55fabb19f35bd" + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.4" + follow-redirects@^1.0.0, follow-redirects@^1.3.0: version "1.5.9" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.9.tgz#c9ed9d748b814a39535716e531b9196a845d89c6" dependencies: debug "=3.1.0" +for-in@^0.1.3: + version "0.1.8" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1" + for-in@^1.0.1, for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" -for-own@^0.1.4: +for-own@^0.1.3, for-own@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" dependencies: for-in "^1.0.1" +for-own@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" + dependencies: + for-in "^1.0.1" + foreach@2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.4.tgz#cc5d0d8ae1d46cc9a555c2682f910977859935df" @@ -2966,6 +3587,19 @@ forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" +fork-ts-checker-webpack-plugin-alt@0.4.14: + version "0.4.14" + resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin-alt/-/fork-ts-checker-webpack-plugin-alt-0.4.14.tgz#1bd6c0d97b7d4682dde61255fcbd78b72f7473a0" + dependencies: + babel-code-frame "^6.22.0" + chalk "^2.4.1" + chokidar "^2.0.4" + lodash "^4.17.11" + micromatch "^3.1.10" + minimatch "^3.0.4" + resolve "^1.5.0" + tapable "^1.0.0" + form-data@~2.3.2: version "2.3.3" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" @@ -2988,23 +3622,36 @@ fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" -fs-extra@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-3.0.1.tgz#3794f378c58b342ea7dbbb23095109c4b3b62291" +from2@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + +fs-extra@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.0.tgz#8cc3f47ce07ef7b3593a11b9fb245f7e34c041d6" dependencies: graceful-fs "^4.1.2" - jsonfile "^3.0.0" + jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^0.30.0: - version "0.30.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" +fs-extra@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" dependencies: graceful-fs "^4.1.2" - jsonfile "^2.1.0" - klaw "^1.0.0" - path-is-absolute "^1.0.0" - rimraf "^2.2.8" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" fs-minipass@^1.2.5: version "1.2.5" @@ -3012,11 +3659,20 @@ fs-minipass@^1.2.5: dependencies: minipass "^2.2.1" +fs-write-stream-atomic@^1.0.8: + version "1.0.10" + resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + dependencies: + graceful-fs "^4.1.2" + iferr "^0.1.5" + imurmurhash "^0.1.4" + readable-stream "1 || 2" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" -fsevents@^1.1.3, fsevents@^1.2.2: +fsevents@1.2.4, fsevents@^1.2.2, fsevents@^1.2.3: version "1.2.4" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426" dependencies: @@ -3060,9 +3716,9 @@ get-caller-file@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" -get-stdin@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" +get-own-enumerable-property-symbols@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.0.tgz#b877b49a5c16aefac3655f2ed2ea5b684df8d203" get-stream@^3.0.0: version "3.0.0" @@ -3098,6 +3754,10 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" +glob-to-regexp@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" + glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2: version "7.1.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" @@ -3109,12 +3769,6 @@ glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2: once "^1.3.0" path-is-absolute "^1.0.0" -global-dirs@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" - dependencies: - ini "^1.3.4" - global-modules@1.0.0, global-modules@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" @@ -3133,10 +3787,26 @@ global-prefix@^1.0.1: is-windows "^1.0.1" which "^1.2.14" -globals@^9.17.0, globals@^9.18.0: +globals@^11.1.0, globals@^11.7.0: + version "11.8.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.8.0.tgz#c1ef45ee9bed6badf0663c5cb90e8d1adec1321d" + +globals@^9.18.0: version "9.18.0" resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" +globby@8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-8.0.1.tgz#b5ad48b8aa80b35b814fc1281ecc851f1d2b5b50" + dependencies: + array-union "^1.0.1" + dir-glob "^2.0.0" + fast-glob "^2.0.2" + glob "^7.1.2" + ignore "^3.3.5" + pify "^3.0.0" + slash "^1.0.0" + globby@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" @@ -3162,23 +3832,7 @@ google-protobuf@^3.6.1: version "3.6.1" resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.6.1.tgz#7ef58e2bea137a93cdaf5cfd5afa5f6abdd92025" -got@^6.7.1: - version "6.7.1" - resolved "http://registry.npmjs.org/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" - dependencies: - create-error-class "^3.0.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - is-redirect "^1.0.0" - is-retry-allowed "^1.0.0" - is-stream "^1.0.0" - lowercase-keys "^1.0.0" - safe-buffer "^5.0.1" - timed-out "^4.0.0" - unzip-response "^2.0.1" - url-parse-lax "^1.0.0" - -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" @@ -3192,11 +3846,49 @@ grpc-web-client@^0.6.3: dependencies: browser-headers "^0.4.0" -gzip-size@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-3.0.0.tgz#546188e9bdc337f673772f81660464b389dce520" +gzip-size@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.0.0.tgz#a55ecd99222f4c48fd8c01c625ce3b349d0a0e80" dependencies: duplexer "^0.1.1" + pify "^3.0.0" + +h2x-core@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/h2x-core/-/h2x-core-1.1.1.tgz#7fb31ab28e30ebf11818e3c7d183487ecf489f9f" + dependencies: + h2x-generate "^1.1.0" + h2x-parse "^1.1.1" + h2x-traverse "^1.1.0" + +h2x-generate@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/h2x-generate/-/h2x-generate-1.1.0.tgz#c2c98c60070e1eed231e482d5826c3c5dab2a9ba" + dependencies: + h2x-traverse "^1.1.0" + +h2x-parse@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/h2x-parse/-/h2x-parse-1.1.1.tgz#875712cd3be75cf736c610d279b8653b24f58385" + dependencies: + h2x-types "^1.1.0" + jsdom ">=11.0.0" + +h2x-plugin-jsx@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/h2x-plugin-jsx/-/h2x-plugin-jsx-1.2.0.tgz#211fa02e5c4e0a07307b0005629923910e631c01" + dependencies: + h2x-types "^1.1.0" + +h2x-traverse@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/h2x-traverse/-/h2x-traverse-1.1.0.tgz#194b36c593f4e20a754dee47fa6b2288647b2271" + dependencies: + h2x-types "^1.1.0" + +h2x-types@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/h2x-types/-/h2x-types-1.1.0.tgz#ec0d5e3674e2207269f32976ac9c82aaff4818e6" handle-thing@^1.2.5: version "1.2.5" @@ -3223,6 +3915,10 @@ har-validator@~5.1.0: ajv "^5.3.0" har-schema "^2.0.0" +harmony-reflect@^1.4.6: + version "1.6.1" + resolved "https://registry.yarnpkg.com/harmony-reflect/-/harmony-reflect-1.6.1.tgz#c108d4f2bb451efef7a37861fdbdae72c9bdefa9" + has-ansi@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" @@ -3233,10 +3929,6 @@ has-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" -has-flag@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" - has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -3276,7 +3968,7 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" -has@^1.0.1, has@^1.0.3: +has@^1.0.0, has@^1.0.1, has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" dependencies: @@ -3300,6 +3992,10 @@ he@1.2.x: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" +hex-color-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" + history@^4.7.2: version "4.7.2" resolved "https://registry.yarnpkg.com/history/-/history-4.7.2.tgz#22b5c7f31633c5b8021c7f4a8a954ac139ee8d5b" @@ -3318,6 +4014,10 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" +hoek@4.x.x: + version "4.2.1" + resolved "http://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb" + hoist-non-react-statics@^2.3.1, hoist-non-react-statics@^2.5.0: version "2.5.5" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz#c5903cf409c0dfd908f388e619d86b9c1174cb47" @@ -3341,6 +4041,10 @@ homedir-polyfill@^1.0.1: dependencies: parse-passwd "^1.0.0" +hoopy@^0.1.2: + version "0.1.4" + resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" + hosted-git-info@^2.1.4: version "2.7.1" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" @@ -3354,11 +4058,19 @@ hpack.js@^2.1.6: readable-stream "^2.0.1" wbuf "^1.1.0" +hsl-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" + +hsla-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" + html-comment-regex@^1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" -html-encoding-sniffer@^1.0.1: +html-encoding-sniffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" dependencies: @@ -3380,16 +4092,17 @@ html-minifier@^3.2.3: relateurl "0.2.x" uglify-js "3.4.x" -html-webpack-plugin@2.29.0: - version "2.29.0" - resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-2.29.0.tgz#e987f421853d3b6938c8c4c8171842e5fd17af23" +html-webpack-plugin@4.0.0-alpha.2: + version "4.0.0-alpha.2" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-4.0.0-alpha.2.tgz#7745967e389a57a098e26963f328ebe4c19b598d" dependencies: - bluebird "^3.4.7" + "@types/tapable" "1.0.2" html-minifier "^3.2.3" - loader-utils "^0.2.16" - lodash "^4.17.3" + loader-utils "^1.1.0" + lodash "^4.17.10" pretty-error "^2.0.2" - toposort "^1.0.0" + tapable "^1.0.0" + util.promisify "1.0.0" htmlparser2@^3.9.1: version "3.10.0" @@ -3428,14 +4141,14 @@ http-parser-js@>=0.4.0: version "0.5.0" resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.0.tgz#d65edbede84349d0dc30320815a15d39cc3cbbd8" -http-proxy-middleware@~0.17.4: - version "0.17.4" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz#642e8848851d66f09d4f124912846dbaeb41b833" +http-proxy-middleware@~0.18.0: + version "0.18.0" + resolved "http://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz#0987e6bb5a5606e5a69168d8f967a87f15dd8aab" dependencies: http-proxy "^1.16.2" - is-glob "^3.1.0" - lodash "^4.17.2" - micromatch "^2.3.11" + is-glob "^4.0.0" + lodash "^4.17.5" + micromatch "^3.1.9" http-proxy@^1.16.2: version "1.17.0" @@ -3467,7 +4180,7 @@ iconv-lite@0.4.23: dependencies: safer-buffer ">= 2.1.2 < 3" -iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.4, iconv-lite@~0.4.13: +iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" dependencies: @@ -3483,23 +4196,56 @@ icss-utils@^2.1.0: dependencies: postcss "^6.0.1" +identity-obj-proxy@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz#94d2bda96084453ef36fbc5aaec37e0f79f1fc14" + dependencies: + harmony-reflect "^1.4.6" + ieee754@^1.1.4: version "1.1.12" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz#50bf24e5b9c8bb98af4964c941cdb0918da7b60b" +iferr@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + ignore-walk@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" dependencies: minimatch "^3.0.4" -ignore@^3.3.3: +ignore@^3.3.5: version "3.3.10" resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" -import-lazy@^2.1.0: +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + +immer@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/immer/-/immer-1.7.2.tgz#a51e9723c50b27e132f6566facbec1c85fc69547" + +import-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" + dependencies: + import-from "^2.1.0" + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + +import-from@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" + dependencies: + resolve-from "^3.0.0" import-local@^1.0.0: version "1.0.0" @@ -3508,6 +4254,13 @@ import-local@^1.0.0: pkg-dir "^2.0.0" resolve-cwd "^2.0.0" +import-local@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" + dependencies: + pkg-dir "^3.0.0" + resolve-cwd "^2.0.0" + imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -3518,12 +4271,6 @@ indefinite-observable@^1.0.1: dependencies: symbol-observable "1.0.4" -indent-string@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" - dependencies: - repeating "^2.0.0" - indexes-of@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" @@ -3551,34 +4298,30 @@ ini@^1.3.4, ini@~1.3.0: version "1.3.5" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" -inquirer@3.3.0, inquirer@^3.0.6: - version "3.3.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" +inquirer@6.2.0, inquirer@^6.1.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.0.tgz#51adcd776f661369dc1e894859c2560a224abdd8" dependencies: ansi-escapes "^3.0.0" chalk "^2.0.0" cli-cursor "^2.1.0" cli-width "^2.0.0" - external-editor "^2.0.4" + external-editor "^3.0.0" figures "^2.0.0" - lodash "^4.3.0" + lodash "^4.17.10" mute-stream "0.0.7" run-async "^2.2.0" - rx-lite "^4.0.8" - rx-lite-aggregates "^4.0.8" + rxjs "^6.1.0" string-width "^2.1.0" strip-ansi "^4.0.0" through "^2.3.6" -internal-ip@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-1.2.0.tgz#ae9fbf93b984878785d50a8de1b356956058cf5c" +internal-ip@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-3.0.1.tgz#df5c99876e1d2eb2ea2d74f520e3f669a00ece27" dependencies: - meow "^3.3.0" - -interpret@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" + default-gateway "^2.6.0" + ipaddr.js "^1.5.2" invariant@^2.2.1, invariant@^2.2.2, invariant@^2.2.4: version "2.2.4" @@ -3590,6 +4333,14 @@ invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" +invert-kv@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" + +ip-regex@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + ip@^1.1.0, ip@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" @@ -3598,6 +4349,10 @@ ipaddr.js@1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.0.tgz#eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e" +ipaddr.js@^1.5.2: + version "1.8.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.1.tgz#fa4b79fa47fd3def5e3b159825161c0a519c9427" + is-absolute-url@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" @@ -3618,6 +4373,10 @@ is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + is-binary-path@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" @@ -3628,7 +4387,7 @@ is-boolean-object@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.0.0.tgz#98f8b28030684219a95f375cfbd88ce3405dff93" -is-buffer@^1.1.5: +is-buffer@^1.0.2, is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" @@ -3648,6 +4407,17 @@ is-ci@^1.0.10: dependencies: ci-info "^1.5.0" +is-color-stop@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" + dependencies: + css-color-names "^0.0.4" + hex-color-regex "^1.1.0" + hsl-regex "^1.0.0" + hsla-regex "^1.0.0" + rgb-regex "^1.0.1" + rgba-regex "^1.0.0" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -3728,6 +4498,10 @@ is-fullwidth-code-point@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" +is-generator-fn@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-1.0.0.tgz#969d49e1bb3329f6bb7f09089be26578b2ddd46a" + is-glob@^2.0.0, is-glob@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" @@ -3750,17 +4524,6 @@ 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" -is-installed-globally@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" - dependencies: - global-dirs "^0.1.0" - is-path-inside "^1.0.0" - -is-npm@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" - is-number-object@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.3.tgz#f265ab89a9f445034ef6aff15a8f00b00f551799" @@ -3781,7 +4544,7 @@ is-number@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" -is-obj@^1.0.0: +is-obj@^1.0.0, is-obj@^1.0.1: version "1.0.1" resolved "http://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" @@ -3801,10 +4564,6 @@ is-path-inside@^1.0.0: dependencies: path-is-inside "^1.0.1" -is-plain-obj@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" @@ -3823,29 +4582,25 @@ is-promise@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" -is-redirect@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" - is-regex@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" dependencies: has "^1.0.1" -is-resolvable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" -is-retry-allowed@^1.0.0: +is-resolvable@^1.0.0, is-resolvable@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" -is-root@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-root/-/is-root-1.0.0.tgz#07b6c233bc394cd9d02ba15c966bd6660d6342d5" +is-root@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.0.0.tgz#838d1e82318144e5a6f77819d90207645acc7019" -is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: +is-stream@^1.0.1, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" @@ -3857,9 +4612,9 @@ is-subset@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" -is-svg@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9" +is-svg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75" dependencies: html-comment-regex "^1.1.0" @@ -3893,6 +4648,12 @@ isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" +isemail@3.x.x: + version "3.2.0" + resolved "https://registry.yarnpkg.com/isemail/-/isemail-3.2.0.tgz#59310a021931a9fb06bbb51e155ce0b3f236832c" + dependencies: + punycode "2.x.x" + isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -3918,7 +4679,7 @@ isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" -istanbul-api@^1.1.1: +istanbul-api@^1.3.1: version "1.3.7" resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.3.7.tgz#a86c770d2b03e11e3f778cd7aedd82d2722092aa" dependencies: @@ -3934,7 +4695,7 @@ istanbul-api@^1.1.1: mkdirp "^0.5.1" once "^1.4.0" -istanbul-lib-coverage@^1.0.1, istanbul-lib-coverage@^1.2.1: +istanbul-lib-coverage@^1.2.0, istanbul-lib-coverage@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz#ccf7edcd0a0bb9b8f729feeb0930470f9af664f0" @@ -3944,7 +4705,7 @@ istanbul-lib-hook@^1.2.2: dependencies: append-transform "^0.4.0" -istanbul-lib-instrument@^1.10.1, istanbul-lib-instrument@^1.10.2, istanbul-lib-instrument@^1.4.2: +istanbul-lib-instrument@^1.10.1, istanbul-lib-instrument@^1.10.2: version "1.10.2" resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz#1f55ed10ac3c47f2bdddd5307935126754d0a9ca" dependencies: @@ -3965,7 +4726,7 @@ istanbul-lib-report@^1.1.5: path-parse "^1.0.5" supports-color "^3.1.2" -istanbul-lib-source-maps@^1.1.0, istanbul-lib-source-maps@^1.2.6: +istanbul-lib-source-maps@^1.2.4, istanbul-lib-source-maps@^1.2.6: version "1.2.6" resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.6.tgz#37b9ff661580f8fca11232752ee42e08c6675d8f" dependencies: @@ -3981,222 +4742,313 @@ istanbul-reports@^1.5.1: dependencies: handlebars "^4.0.3" -jest-changed-files@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-20.0.3.tgz#9394d5cc65c438406149bef1bf4d52b68e03e3f8" +jest-changed-files@^23.4.2: + version "23.4.2" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-23.4.2.tgz#1eed688370cd5eebafe4ae93d34bb3b64968fe83" + dependencies: + throat "^4.0.0" -jest-cli@^20.0.4: - version "20.0.4" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-20.0.4.tgz#e532b19d88ae5bc6c417e8b0593a6fe954b1dc93" +jest-cli@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-23.6.0.tgz#61ab917744338f443ef2baa282ddffdd658a5da4" dependencies: - ansi-escapes "^1.4.0" - callsites "^2.0.0" - chalk "^1.1.3" + ansi-escapes "^3.0.0" + chalk "^2.0.1" + exit "^0.1.2" + glob "^7.1.2" graceful-fs "^4.1.11" + import-local "^1.0.0" is-ci "^1.0.10" - istanbul-api "^1.1.1" - istanbul-lib-coverage "^1.0.1" - istanbul-lib-instrument "^1.4.2" - istanbul-lib-source-maps "^1.1.0" - jest-changed-files "^20.0.3" - jest-config "^20.0.4" - jest-docblock "^20.0.3" - jest-environment-jsdom "^20.0.3" - jest-haste-map "^20.0.4" - jest-jasmine2 "^20.0.4" - jest-message-util "^20.0.3" - jest-regex-util "^20.0.3" - jest-resolve-dependencies "^20.0.3" - jest-runtime "^20.0.4" - jest-snapshot "^20.0.3" - jest-util "^20.0.3" + istanbul-api "^1.3.1" + istanbul-lib-coverage "^1.2.0" + istanbul-lib-instrument "^1.10.1" + istanbul-lib-source-maps "^1.2.4" + jest-changed-files "^23.4.2" + jest-config "^23.6.0" + jest-environment-jsdom "^23.4.0" + jest-get-type "^22.1.0" + jest-haste-map "^23.6.0" + jest-message-util "^23.4.0" + jest-regex-util "^23.3.0" + jest-resolve-dependencies "^23.6.0" + jest-runner "^23.6.0" + jest-runtime "^23.6.0" + jest-snapshot "^23.6.0" + jest-util "^23.4.0" + jest-validate "^23.6.0" + jest-watcher "^23.4.0" + jest-worker "^23.2.0" micromatch "^2.3.11" - node-notifier "^5.0.2" - pify "^2.3.0" + node-notifier "^5.2.1" + prompts "^0.1.9" + realpath-native "^1.0.0" + rimraf "^2.5.4" slash "^1.0.0" - string-length "^1.0.1" - throat "^3.0.0" + string-length "^2.0.0" + strip-ansi "^4.0.0" which "^1.2.12" - worker-farm "^1.3.1" - yargs "^7.0.2" + yargs "^11.0.0" -jest-config@^20.0.4: - version "20.0.4" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-20.0.4.tgz#e37930ab2217c913605eff13e7bd763ec48faeea" +jest-config@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-23.6.0.tgz#f82546a90ade2d8c7026fbf6ac5207fc22f8eb1d" dependencies: - chalk "^1.1.3" + babel-core "^6.0.0" + babel-jest "^23.6.0" + chalk "^2.0.1" glob "^7.1.1" - jest-environment-jsdom "^20.0.3" - jest-environment-node "^20.0.3" - jest-jasmine2 "^20.0.4" - jest-matcher-utils "^20.0.3" - jest-regex-util "^20.0.3" - jest-resolve "^20.0.4" - jest-validate "^20.0.3" - pretty-format "^20.0.3" - -jest-diff@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-20.0.3.tgz#81f288fd9e675f0fb23c75f1c2b19445fe586617" + jest-environment-jsdom "^23.4.0" + jest-environment-node "^23.4.0" + jest-get-type "^22.1.0" + jest-jasmine2 "^23.6.0" + jest-regex-util "^23.3.0" + jest-resolve "^23.6.0" + jest-util "^23.4.0" + jest-validate "^23.6.0" + micromatch "^2.3.11" + pretty-format "^23.6.0" + +jest-diff@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-23.6.0.tgz#1500f3f16e850bb3d71233408089be099f610c7d" dependencies: - chalk "^1.1.3" + chalk "^2.0.1" diff "^3.2.0" - jest-matcher-utils "^20.0.3" - pretty-format "^20.0.3" + jest-get-type "^22.1.0" + pretty-format "^23.6.0" + +jest-docblock@^23.2.0: + version "23.2.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-23.2.0.tgz#f085e1f18548d99fdd69b20207e6fd55d91383a7" + dependencies: + detect-newline "^2.1.0" -jest-docblock@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-20.0.3.tgz#17bea984342cc33d83c50fbe1545ea0efaa44712" +jest-each@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-23.6.0.tgz#ba0c3a82a8054387016139c733a05242d3d71575" + dependencies: + chalk "^2.0.1" + pretty-format "^23.6.0" -jest-environment-jsdom@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-20.0.3.tgz#048a8ac12ee225f7190417713834bb999787de99" +jest-environment-jsdom@^23.4.0: + version "23.4.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-23.4.0.tgz#056a7952b3fea513ac62a140a2c368c79d9e6023" dependencies: - jest-mock "^20.0.3" - jest-util "^20.0.3" - jsdom "^9.12.0" + jest-mock "^23.2.0" + jest-util "^23.4.0" + jsdom "^11.5.1" -jest-environment-node@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-20.0.3.tgz#d488bc4612af2c246e986e8ae7671a099163d403" +jest-environment-node@^23.4.0: + version "23.4.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-23.4.0.tgz#57e80ed0841dea303167cce8cd79521debafde10" dependencies: - jest-mock "^20.0.3" - jest-util "^20.0.3" + jest-mock "^23.2.0" + jest-util "^23.4.0" -jest-haste-map@^20.0.4: - version "20.0.5" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-20.0.5.tgz#abad74efb1a005974a7b6517e11010709cab9112" +jest-get-type@^22.1.0: + version "22.4.3" + resolved "http://registry.npmjs.org/jest-get-type/-/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4" + +jest-haste-map@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-23.6.0.tgz#2e3eb997814ca696d62afdb3f2529f5bbc935e16" dependencies: fb-watchman "^2.0.0" graceful-fs "^4.1.11" - jest-docblock "^20.0.3" + invariant "^2.2.4" + jest-docblock "^23.2.0" + jest-serializer "^23.0.1" + jest-worker "^23.2.0" micromatch "^2.3.11" - sane "~1.6.0" - worker-farm "^1.3.1" - -jest-jasmine2@^20.0.4: - version "20.0.4" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-20.0.4.tgz#fcc5b1411780d911d042902ef1859e852e60d5e1" - dependencies: - chalk "^1.1.3" - graceful-fs "^4.1.11" - jest-diff "^20.0.3" - jest-matcher-utils "^20.0.3" - jest-matchers "^20.0.3" - jest-message-util "^20.0.3" - jest-snapshot "^20.0.3" - once "^1.4.0" - p-map "^1.1.1" + sane "^2.0.0" -jest-matcher-utils@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-20.0.3.tgz#b3a6b8e37ca577803b0832a98b164f44b7815612" +jest-jasmine2@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-23.6.0.tgz#840e937f848a6c8638df24360ab869cc718592e0" dependencies: - chalk "^1.1.3" - pretty-format "^20.0.3" - -jest-matchers@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jest-matchers/-/jest-matchers-20.0.3.tgz#ca69db1c32db5a6f707fa5e0401abb55700dfd60" + babel-traverse "^6.0.0" + chalk "^2.0.1" + co "^4.6.0" + expect "^23.6.0" + is-generator-fn "^1.0.0" + jest-diff "^23.6.0" + jest-each "^23.6.0" + jest-matcher-utils "^23.6.0" + jest-message-util "^23.4.0" + jest-snapshot "^23.6.0" + jest-util "^23.4.0" + pretty-format "^23.6.0" + +jest-leak-detector@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-23.6.0.tgz#e4230fd42cf381a1a1971237ad56897de7e171de" + dependencies: + pretty-format "^23.6.0" + +jest-matcher-utils@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-23.6.0.tgz#726bcea0c5294261a7417afb6da3186b4b8cac80" dependencies: - jest-diff "^20.0.3" - jest-matcher-utils "^20.0.3" - jest-message-util "^20.0.3" - jest-regex-util "^20.0.3" + chalk "^2.0.1" + jest-get-type "^22.1.0" + pretty-format "^23.6.0" -jest-message-util@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-20.0.3.tgz#6aec2844306fcb0e6e74d5796c1006d96fdd831c" +jest-message-util@^23.4.0: + version "23.4.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-23.4.0.tgz#17610c50942349508d01a3d1e0bda2c079086a9f" dependencies: - chalk "^1.1.3" + "@babel/code-frame" "^7.0.0-beta.35" + chalk "^2.0.1" micromatch "^2.3.11" slash "^1.0.0" + stack-utils "^1.0.1" + +jest-mock@^23.2.0: + version "23.2.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-23.2.0.tgz#ad1c60f29e8719d47c26e1138098b6d18b261134" -jest-mock@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-20.0.3.tgz#8bc070e90414aa155c11a8d64c869a0d5c71da59" +jest-pnp-resolver@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.0.1.tgz#f397cd71dbcd4a1947b2e435f6da8e9a347308fa" -jest-regex-util@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-20.0.3.tgz#85bbab5d133e44625b19faf8c6aa5122d085d762" +jest-regex-util@^23.3.0: + version "23.3.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-23.3.0.tgz#5f86729547c2785c4002ceaa8f849fe8ca471bc5" -jest-resolve-dependencies@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-20.0.3.tgz#6e14a7b717af0f2cb3667c549de40af017b1723a" +jest-resolve-dependencies@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-23.6.0.tgz#b4526af24c8540d9a3fab102c15081cf509b723d" dependencies: - jest-regex-util "^20.0.3" + jest-regex-util "^23.3.0" + jest-snapshot "^23.6.0" -jest-resolve@^20.0.4: - version "20.0.4" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-20.0.4.tgz#9448b3e8b6bafc15479444c6499045b7ffe597a5" +jest-resolve@23.6.0, jest-resolve@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-23.6.0.tgz#cf1d1a24ce7ee7b23d661c33ba2150f3aebfa0ae" dependencies: - browser-resolve "^1.11.2" - is-builtin-module "^1.0.0" - resolve "^1.3.2" + browser-resolve "^1.11.3" + chalk "^2.0.1" + realpath-native "^1.0.0" -jest-runtime@^20.0.4: - version "20.0.4" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-20.0.4.tgz#a2c802219c4203f754df1404e490186169d124d8" +jest-runner@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-23.6.0.tgz#3894bd219ffc3f3cb94dc48a4170a2e6f23a5a38" + dependencies: + exit "^0.1.2" + graceful-fs "^4.1.11" + jest-config "^23.6.0" + jest-docblock "^23.2.0" + jest-haste-map "^23.6.0" + jest-jasmine2 "^23.6.0" + jest-leak-detector "^23.6.0" + jest-message-util "^23.4.0" + jest-runtime "^23.6.0" + jest-util "^23.4.0" + jest-worker "^23.2.0" + source-map-support "^0.5.6" + throat "^4.0.0" + +jest-runtime@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-23.6.0.tgz#059e58c8ab445917cd0e0d84ac2ba68de8f23082" dependencies: babel-core "^6.0.0" - babel-jest "^20.0.3" - babel-plugin-istanbul "^4.0.0" - chalk "^1.1.3" + babel-plugin-istanbul "^4.1.6" + chalk "^2.0.1" convert-source-map "^1.4.0" + exit "^0.1.2" + fast-json-stable-stringify "^2.0.0" graceful-fs "^4.1.11" - jest-config "^20.0.4" - jest-haste-map "^20.0.4" - jest-regex-util "^20.0.3" - jest-resolve "^20.0.4" - jest-util "^20.0.3" - json-stable-stringify "^1.0.1" + jest-config "^23.6.0" + jest-haste-map "^23.6.0" + jest-message-util "^23.4.0" + jest-regex-util "^23.3.0" + jest-resolve "^23.6.0" + jest-snapshot "^23.6.0" + jest-util "^23.4.0" + jest-validate "^23.6.0" micromatch "^2.3.11" + realpath-native "^1.0.0" + slash "^1.0.0" strip-bom "3.0.0" - yargs "^7.0.2" + write-file-atomic "^2.1.0" + yargs "^11.0.0" + +jest-serializer@^23.0.1: + version "23.0.1" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-23.0.1.tgz#a3776aeb311e90fe83fab9e533e85102bd164165" -jest-snapshot@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-20.0.3.tgz#5b847e1adb1a4d90852a7f9f125086e187c76566" +jest-snapshot@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-23.6.0.tgz#f9c2625d1b18acda01ec2d2b826c0ce58a5aa17a" dependencies: - chalk "^1.1.3" - jest-diff "^20.0.3" - jest-matcher-utils "^20.0.3" - jest-util "^20.0.3" + babel-types "^6.0.0" + chalk "^2.0.1" + jest-diff "^23.6.0" + jest-matcher-utils "^23.6.0" + jest-message-util "^23.4.0" + jest-resolve "^23.6.0" + mkdirp "^0.5.1" natural-compare "^1.4.0" - pretty-format "^20.0.3" + pretty-format "^23.6.0" + semver "^5.5.0" -jest-util@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-20.0.3.tgz#0c07f7d80d82f4e5a67c6f8b9c3fe7f65cfd32ad" +jest-util@^23.4.0: + version "23.4.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-23.4.0.tgz#4d063cb927baf0a23831ff61bec2cbbf49793561" dependencies: - chalk "^1.1.3" + callsites "^2.0.0" + chalk "^2.0.1" graceful-fs "^4.1.11" - jest-message-util "^20.0.3" - jest-mock "^20.0.3" - jest-validate "^20.0.3" - leven "^2.1.0" + is-ci "^1.0.10" + jest-message-util "^23.4.0" mkdirp "^0.5.1" + slash "^1.0.0" + source-map "^0.6.0" -jest-validate@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-20.0.3.tgz#d0cfd1de4f579f298484925c280f8f1d94ec3cab" +jest-validate@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-23.6.0.tgz#36761f99d1ed33fcd425b4e4c5595d62b6597474" dependencies: - chalk "^1.1.3" - jest-matcher-utils "^20.0.3" + chalk "^2.0.1" + jest-get-type "^22.1.0" leven "^2.1.0" - pretty-format "^20.0.3" + pretty-format "^23.6.0" + +jest-watcher@^23.4.0: + version "23.4.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-23.4.0.tgz#d2e28ce74f8dad6c6afc922b92cabef6ed05c91c" + dependencies: + ansi-escapes "^3.0.0" + chalk "^2.0.1" + string-length "^2.0.0" + +jest-worker@^23.2.0: + version "23.2.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-23.2.0.tgz#faf706a8da36fae60eb26957257fa7b5d8ea02b9" + dependencies: + merge-stream "^1.0.1" -jest@20.0.4: - version "20.0.4" - resolved "https://registry.yarnpkg.com/jest/-/jest-20.0.4.tgz#3dd260c2989d6dad678b1e9cc4d91944f6d602ac" +jest@23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-23.6.0.tgz#ad5835e923ebf6e19e7a1d7529a432edfee7813d" dependencies: - jest-cli "^20.0.4" + import-local "^1.0.0" + jest-cli "^23.6.0" + +joi@^11.1.1: + version "11.4.0" + resolved "https://registry.yarnpkg.com/joi/-/joi-11.4.0.tgz#f674897537b625e9ac3d0b7e1604c828ad913ccb" + dependencies: + hoek "4.x.x" + isemail "3.x.x" + topo "2.x.x" -js-base64@^2.1.9: - version "2.4.9" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.9.tgz#748911fb04f48a60c4771b375cac45a80df11c03" +js-levenshtein@^1.1.3: + version "1.1.4" + resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.4.tgz#3a56e3cbf589ca0081eb22cd9ba0b1290a16d26e" -"js-tokens@^3.0.0 || ^4.0.0": +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -4204,59 +5056,94 @@ js-tokens@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" -js-yaml@^3.4.3, js-yaml@^3.7.0, js-yaml@^3.9.1: +js-yaml@^3.12.0, js-yaml@^3.7.0, js-yaml@^3.9.0: version "3.12.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" dependencies: argparse "^1.0.7" esprima "^4.0.0" -js-yaml@~3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" - dependencies: - argparse "^1.0.7" - esprima "^2.6.0" - jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" -jsdom@^9.12.0: - version "9.12.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-9.12.0.tgz#e8c546fffcb06c00d4833ca84410fed7f8a097d4" +jsdom@>=11.0.0: + version "13.0.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-13.0.0.tgz#f1df2411b714a4e08d1bdc343c0a0889c688210f" dependencies: - abab "^1.0.3" - acorn "^4.0.4" - acorn-globals "^3.1.0" + abab "^2.0.0" + acorn "^6.0.2" + acorn-globals "^4.3.0" + array-equal "^1.0.0" + cssom "^0.3.4" + cssstyle "^1.1.1" + data-urls "^1.0.1" + domexception "^1.0.1" + escodegen "^1.11.0" + html-encoding-sniffer "^1.0.2" + nwsapi "^2.0.9" + parse5 "5.1.0" + pn "^1.1.0" + request "^2.88.0" + request-promise-native "^1.0.5" + saxes "^3.1.3" + symbol-tree "^3.2.2" + tough-cookie "^2.4.3" + w3c-hr-time "^1.0.1" + w3c-xmlserializer "^1.0.0" + webidl-conversions "^4.0.2" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.2.0" + whatwg-url "^7.0.0" + ws "^6.1.0" + xml-name-validator "^3.0.0" + +jsdom@^11.5.1: + version "11.12.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8" + dependencies: + abab "^2.0.0" + acorn "^5.5.3" + acorn-globals "^4.1.0" array-equal "^1.0.0" - content-type-parser "^1.0.1" cssom ">= 0.3.2 < 0.4.0" - cssstyle ">= 0.2.37 < 0.3.0" - escodegen "^1.6.1" - html-encoding-sniffer "^1.0.1" - nwmatcher ">= 1.3.9 < 2.0.0" - parse5 "^1.5.1" - request "^2.79.0" - sax "^1.2.1" - symbol-tree "^3.2.1" - tough-cookie "^2.3.2" - webidl-conversions "^4.0.0" - whatwg-encoding "^1.0.1" - whatwg-url "^4.3.0" - xml-name-validator "^2.0.1" + cssstyle "^1.0.0" + data-urls "^1.0.0" + domexception "^1.0.1" + escodegen "^1.9.1" + html-encoding-sniffer "^1.0.2" + left-pad "^1.3.0" + nwsapi "^2.0.7" + parse5 "4.0.0" + pn "^1.1.0" + request "^2.87.0" + request-promise-native "^1.0.5" + sax "^1.2.4" + symbol-tree "^3.2.2" + tough-cookie "^2.3.4" + w3c-hr-time "^1.0.1" + webidl-conversions "^4.0.2" + whatwg-encoding "^1.0.3" + whatwg-mimetype "^2.1.0" + whatwg-url "^6.4.1" + ws "^5.2.0" + xml-name-validator "^3.0.0" jsesc@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" +jsesc@^2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.1.tgz#e421a2a8e20d6b0819df28908f782526b96dd1fe" + jsesc@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" -json-loader@^0.5.4: - version "0.5.7" - resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" +json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" json-schema-traverse@^0.3.0: version "0.3.1" @@ -4270,6 +5157,10 @@ json-schema@0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + json-stable-stringify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" @@ -4292,15 +5183,9 @@ json5@^0.5.0, json5@^0.5.1: version "0.5.1" resolved "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" -jsonfile@^2.1.0: - version "2.4.0" - resolved "http://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" - optionalDependencies: - graceful-fs "^4.1.6" - -jsonfile@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.1.tgz#a5ecc6f65f53f662c4415c7675a0331d0992ec66" +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" optionalDependencies: graceful-fs "^4.1.6" @@ -4355,11 +5240,7 @@ jss@^9.3.3: symbol-observable "^1.1.0" warning "^3.0.0" -jsx-ast-utils@^1.4.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz#3867213e8dd79bf1e8f2300c0cfc1efb182c0df1" - -jsx-ast-utils@^2.0.0: +jsx-ast-utils@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz#e801b1b39985e20fffc87b40e3748080e2dcac7f" dependencies: @@ -4373,6 +5254,12 @@ killable@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" +kind-of@^2.0.1: + version "2.0.1" + resolved "http://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz#018ec7a4ce7e3a86cb9141be519d24c8faa981b5" + dependencies: + is-buffer "^1.0.2" + kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" @@ -4393,17 +5280,20 @@ kind-of@^6.0.0, kind-of@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" -klaw@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" - optionalDependencies: - graceful-fs "^4.1.9" +kleur@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-2.0.2.tgz#b704f4944d95e255d038f0cb05fb8a602c55a300" -latest-version@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" +last-call-webpack-plugin@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555" dependencies: - package-json "^4.0.0" + lodash "^4.17.5" + webpack-sources "^1.1.0" + +lazy-cache@^0.2.3: + version "0.2.7" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-0.2.7.tgz#7feddf2dcb6edb77d11ef1d117ab5ffdf0ab1b65" lazy-cache@^1.0.3: version "1.0.4" @@ -4415,6 +5305,16 @@ lcid@^1.0.0: dependencies: invert-kv "^1.0.0" +lcid@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" + dependencies: + invert-kv "^2.0.0" + +left-pad@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" + leven@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" @@ -4456,16 +5356,7 @@ loader-runner@^2.3.0: version "2.3.1" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.1.tgz#026f12fe7c3115992896ac02ba022ba92971b979" -loader-utils@^0.2.16: - version "0.2.17" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" - dependencies: - big.js "^3.1.3" - emojis-list "^2.0.0" - json5 "^0.5.0" - object-assign "^4.0.1" - -loader-utils@^1.0.2, loader-utils@^1.1.0: +loader-utils@1.1.0, loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" dependencies: @@ -4480,6 +5371,13 @@ locate-path@^2.0.0: p-locate "^2.0.0" path-exists "^3.0.0" +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + lodash._reinterpolate@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" @@ -4488,18 +5386,10 @@ lodash.camelcase@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" -lodash.cond@^4.3.0: - version "4.5.2" - resolved "https://registry.yarnpkg.com/lodash.cond/-/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5" - lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" -lodash.defaults@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" - lodash.escape@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-4.0.1.tgz#c9044690c21e04294beaa517712fded1fa88de98" @@ -4524,7 +5414,15 @@ lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" -lodash.template@^4.4.0: +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + +lodash.tail@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.tail/-/lodash.tail-4.1.1.tgz#d2333a36d9e7717c8ad2f7cacafec7c32b444664" + +lodash.template@^4.2.4, lodash.template@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.4.0.tgz#e73a0385c8355591746e020b99679c690e68fba0" dependencies: @@ -4541,7 +5439,7 @@ lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" -"lodash@>=3.5 <5", lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.3.0: +"lodash@>=3.5 <5", lodash@^4.13.1, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.4, lodash@^4.17.5: version "4.17.11" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" @@ -4549,32 +5447,17 @@ loglevel@^1.4.1: version "1.6.1" resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.1.tgz#e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa" -longest@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" - loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" dependencies: js-tokens "^3.0.0 || ^4.0.0" -loud-rejection@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" - dependencies: - currently-unhandled "^0.4.1" - signal-exit "^3.0.0" - lower-case@^1.1.1: version "1.1.4" resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" -lowercase-keys@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - -lru-cache@^4.0.1: +lru-cache@^4.0.1, lru-cache@^4.1.1, lru-cache@^4.1.3: version "4.1.3" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.3.tgz#a1175cf3496dfc8436c156c334b4955992bce69c" dependencies: @@ -4593,24 +5476,26 @@ makeerror@1.0.x: dependencies: tmpl "1.0.x" +mamacro@^0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" + +map-age-cleaner@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.2.tgz#098fb15538fd3dbe461f12745b0ca8568d4e3f74" + dependencies: + p-defer "^1.0.0" + map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" -map-obj@^1.0.0, map-obj@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - map-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" dependencies: object-visit "^1.0.0" -math-expression-evaluator@^1.2.14: - version "1.2.17" - resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac" - math-random@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.1.tgz#8b3aac588b8a66e4975e3cdea67f7bb329601fac" @@ -4623,6 +5508,10 @@ md5.js@^1.3.4: inherits "^2.0.1" safe-buffer "^5.1.2" +mdn-data@~1.1.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-1.1.4.tgz#50b5d4ffc4575276573c4eedb8780812a8419f01" + media-typer@0.3.0: version "0.3.0" resolved "http://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" @@ -4633,6 +5522,14 @@ mem@^1.1.0: dependencies: mimic-fn "^1.0.0" +mem@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-4.0.0.tgz#6437690d9471678f6cc83659c00cbafcd6b0cdaf" + dependencies: + map-age-cleaner "^0.1.1" + mimic-fn "^1.0.0" + p-is-promise "^1.1.0" + memory-fs@^0.4.0, memory-fs@~0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" @@ -4640,25 +5537,28 @@ memory-fs@^0.4.0, memory-fs@~0.4.1: errno "^0.1.3" readable-stream "^2.0.1" -meow@^3.3.0, meow@^3.7.0: - version "3.7.0" - resolved "http://registry.npmjs.org/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" - dependencies: - camelcase-keys "^2.0.0" - decamelize "^1.1.2" - loud-rejection "^1.0.0" - map-obj "^1.0.1" - minimist "^1.1.3" - normalize-package-data "^2.3.4" - object-assign "^4.0.1" - read-pkg-up "^1.0.1" - redent "^1.0.0" - trim-newlines "^1.0.0" +merge-deep@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/merge-deep/-/merge-deep-3.0.2.tgz#f39fa100a4f1bd34ff29f7d2bf4508fbb8d83ad2" + dependencies: + arr-union "^3.1.0" + clone-deep "^0.2.4" + kind-of "^3.0.2" merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" +merge-stream@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" + dependencies: + readable-stream "^2.0.1" + +merge2@^1.2.1: + version "1.2.3" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.3.tgz#7ee99dbd69bb6481689253f018488a1b902b0ed5" + merge@^1.2.0: version "1.2.1" resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145" @@ -4667,7 +5567,7 @@ methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" -micromatch@^2.1.5, micromatch@^2.3.11: +micromatch@^2.3.11: version "2.3.11" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" dependencies: @@ -4685,7 +5585,7 @@ micromatch@^2.1.5, micromatch@^2.3.11: parse-glob "^3.0.4" regex-cache "^0.4.2" -micromatch@^3.1.10, micromatch@^3.1.4: +micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8, micromatch@^3.1.9: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" dependencies: @@ -4724,14 +5624,22 @@ mime@1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" -mime@^1.4.1, mime@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" +mime@^2.0.3, mime@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.3.1.tgz#b1621c54d63b97c47d3cfe7f7215f7d64517c369" mimic-fn@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" +mini-css-extract-plugin@0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.3.tgz#98d60fcc5d228c3e36a9bd15a1d6816d6580beb8" + dependencies: + loader-utils "^1.1.0" + schema-utils "^1.0.0" + webpack-sources "^1.1.0" + minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" @@ -4740,13 +5648,7 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" -minimatch@3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" - dependencies: - brace-expansion "^1.0.0" - -minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4: +minimatch@3.0.4, minimatch@^3.0.3, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" dependencies: @@ -4756,7 +5658,7 @@ minimist@0.0.8, minimist@~0.0.1: version "0.0.8" resolved "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" -minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: +minimist@^1.1.1, minimist@^1.2.0: version "1.2.0" resolved "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" @@ -4773,6 +5675,36 @@ minizlib@^1.1.0: dependencies: minipass "^2.2.1" +mississippi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-2.0.0.tgz#3442a508fafc28500486feea99409676e4ee5a6f" + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^2.0.1" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + +mississippi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^3.0.0" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + mixin-deep@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" @@ -4780,6 +5712,13 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" +mixin-object@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mixin-object/-/mixin-object-2.0.1.tgz#4fb949441dab182540f1fe035ba60e1947a5e57e" + dependencies: + for-in "^0.1.3" + is-extendable "^0.1.1" + mkdirp@0.5.1, mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: version "0.5.1" resolved "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" @@ -4790,6 +5729,17 @@ moo@^0.4.3: version "0.4.3" resolved "https://registry.yarnpkg.com/moo/-/moo-0.4.3.tgz#3f847a26f31cf625a956a87f2b10fbc013bfd10e" +move-concurrently@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + dependencies: + aproba "^1.1.1" + copy-concurrently "^1.0.0" + fs-write-stream-atomic "^1.0.8" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.3" + ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" @@ -4859,9 +5809,9 @@ neo-async@^2.5.0: version "2.6.0" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.0.tgz#b9d15e4d71c6762908654b5183ed38b753340835" -next-tick@1: - version "1.0.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" no-case@^2.2.0: version "2.3.2" @@ -4912,7 +5862,7 @@ node-libs-browser@^2.0.0: util "^0.10.3" vm-browserify "0.0.4" -node-notifier@^5.0.2: +node-notifier@^5.2.1: version "5.3.0" resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.3.0.tgz#c77a4a7b84038733d5fb351aafd8a268bfe19a01" dependencies: @@ -4936,6 +5886,12 @@ node-pre-gyp@^0.10.0: semver "^5.3.0" tar "^4" +node-releases@^1.0.0-alpha.11, node-releases@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.0.3.tgz#3414ed84595096459c251699bfcb47d88324a9e4" + dependencies: + semver "^5.3.0" + nomnom@~1.6.2: version "1.6.2" resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.6.2.tgz#84a66a260174408fc5b77a18f888eccc44fb6971" @@ -4950,7 +5906,7 @@ nopt@^4.0.1: abbrev "1" osenv "^0.1.4" -normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: +normalize-package-data@^2.3.2: version "2.4.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" dependencies: @@ -4959,7 +5915,7 @@ normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" -normalize-path@^2.0.0, normalize-path@^2.0.1, normalize-path@^2.1.1: +normalize-path@^2.0.1, normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" dependencies: @@ -4973,14 +5929,9 @@ normalize-scroll-left@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/normalize-scroll-left/-/normalize-scroll-left-0.1.2.tgz#6b79691ba79eb5fb107fa5edfbdc06b55caee2aa" -normalize-url@^1.4.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" - dependencies: - object-assign "^4.0.1" - prepend-http "^1.0.0" - query-string "^4.1.0" - sort-keys "^1.0.0" +normalize-url@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" npm-bundled@^1.0.1: version "1.0.5" @@ -5008,7 +5959,7 @@ npmlog@^4.0.2: gauge "~2.7.3" set-blocking "~2.0.0" -nth-check@~1.0.1: +nth-check@^1.0.2, nth-check@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" dependencies: @@ -5022,9 +5973,9 @@ number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" -"nwmatcher@>= 1.3.9 < 2.0.0": - version "1.4.4" - resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.4.4.tgz#2285631f34a95f0d0395cd900c96ed39b58f346e" +nwsapi@^2.0.7, nwsapi@^2.0.9: + version "2.0.9" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.0.9.tgz#77ac0cdfdcad52b6a1151a84e73254edc33ed016" oauth-sign@~0.9.0: version "0.9.0" @@ -5086,6 +6037,13 @@ object.entries@^1.0.4: function-bind "^1.1.0" has "^1.0.1" +object.getownpropertydescriptors@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.5.1" + object.omit@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" @@ -5122,7 +6080,7 @@ on-headers@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7" -once@^1.3.0, once@^1.4.0: +once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" dependencies: @@ -5134,7 +6092,13 @@ onetime@^2.0.0: dependencies: mimic-fn "^1.0.0" -opn@5.2.0, opn@^5.1.0: +opn@5.4.0: + version "5.4.0" + resolved "https://registry.yarnpkg.com/opn/-/opn-5.4.0.tgz#cb545e7aab78562beb11aa3bfabc7042e1761035" + dependencies: + is-wsl "^1.1.0" + +opn@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/opn/-/opn-5.2.0.tgz#71fdf934d6827d676cecbea1531f95d354641225" dependencies: @@ -5147,6 +6111,13 @@ optimist@^0.6.1: minimist "~0.0.1" wordwrap "~0.0.2" +optimize-css-assets-webpack-plugin@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.1.tgz#9eb500711d35165b45e7fd60ba2df40cb3eb9159" + dependencies: + cssnano "^4.1.0" + last-call-webpack-plugin "^3.0.0" + optionator@^0.8.1, optionator@^0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" @@ -5168,16 +6139,10 @@ os-browserify@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" -os-homedir@^1.0.0, os-homedir@^1.0.1: +os-homedir@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" -os-locale@^1.4.0: - version "1.4.0" - resolved "http://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" - dependencies: - lcid "^1.0.0" - os-locale@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" @@ -5186,6 +6151,14 @@ os-locale@^2.0.0: lcid "^1.0.0" mem "^1.1.0" +os-locale@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.0.1.tgz#3b014fbf01d87f60a1e5348d80fe870dc82c4620" + dependencies: + execa "^0.10.0" + lcid "^2.0.0" + mem "^4.0.0" + os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" @@ -5197,22 +6170,42 @@ osenv@^0.1.4: os-homedir "^1.0.0" os-tmpdir "^1.0.0" +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" +p-is-promise@^1.1.0: + version "1.1.0" + resolved "http://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" + p-limit@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" dependencies: p-try "^1.0.0" +p-limit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.0.0.tgz#e624ed54ee8c460a778b3c9f3670496ff8a57aec" + dependencies: + p-try "^2.0.0" + p-locate@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" dependencies: p-limit "^1.1.0" +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + dependencies: + p-limit "^2.0.0" + p-map@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" @@ -5221,19 +6214,22 @@ p-try@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" -package-json@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" - dependencies: - got "^6.7.1" - registry-auth-token "^3.0.1" - registry-url "^3.0.3" - semver "^5.1.0" +p-try@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz#85080bb87c64688fa47996fe8f7dfbe8211760b1" pako@~1.0.5: version "1.0.6" resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" +parallel-transform@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" + dependencies: + cyclist "~0.2.2" + inherits "^2.0.3" + readable-stream "^2.1.5" + param-case@2.1.x: version "2.1.1" resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" @@ -5265,13 +6261,24 @@ parse-json@^2.2.0: dependencies: error-ex "^1.2.0" +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + parse-passwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" -parse5@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-1.5.1.tgz#9b7f3b0de32be78dc2401b17573ccaf0f6f59d94" +parse5@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" + +parse5@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2" parse5@^3.0.1: version "3.0.3" @@ -5313,7 +6320,7 @@ path-is-inside@^1.0.1, path-is-inside@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" -path-key@^2.0.0: +path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" @@ -5325,7 +6332,7 @@ path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" -path-to-regexp@^1.0.1, path-to-regexp@^1.7.0: +path-to-regexp@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d" dependencies: @@ -5345,6 +6352,12 @@ path-type@^2.0.0: dependencies: pify "^2.0.0" +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + dependencies: + pify "^3.0.0" + pbkdf2@^3.0.3: version "3.0.17" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" @@ -5359,7 +6372,7 @@ performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" -pify@^2.0.0, pify@^2.3.0: +pify@^2.0.0: version "2.3.0" resolved "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -5389,10 +6402,30 @@ pkg-dir@^2.0.0: dependencies: find-up "^2.1.0" +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + dependencies: + find-up "^3.0.0" + +pkg-up@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" + dependencies: + find-up "^2.1.0" + pluralize@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" +pn@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" + +pnp-webpack-plugin@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.1.0.tgz#947a96d1db94bb5a1fc014d83b581e428699ac8c" + popper.js@^1.14.1: version "1.14.4" resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.14.4.tgz#8eec1d8ff02a5a3a152dd43414a15c7b79fd69b6" @@ -5409,282 +6442,528 @@ 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" -postcss-calc@^5.2.0: - version "5.3.1" - resolved "http://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz#77bae7ca928ad85716e2fda42f261bf7c1d65b5e" +postcss-attribute-case-insensitive@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.0.tgz#807b6a797ad8bf1c821b2d51cf641e9dd3837624" dependencies: - postcss "^5.0.2" - postcss-message-helpers "^2.0.0" - reduce-css-calc "^1.2.6" + postcss "^7.0.2" + postcss-selector-parser "^5.0.0-rc.3" -postcss-colormin@^2.1.8: - version "2.2.2" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.2.tgz#6631417d5f0e909a3d7ec26b24c8a8d1e4f96e4b" +postcss-calc@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.1.tgz#36d77bab023b0ecbb9789d84dcb23c4941145436" dependencies: - colormin "^1.0.5" - postcss "^5.0.13" - postcss-value-parser "^3.2.3" + css-unit-converter "^1.1.1" + postcss "^7.0.5" + postcss-selector-parser "^5.0.0-rc.4" + postcss-value-parser "^3.3.1" -postcss-convert-values@^2.3.4: - version "2.6.1" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz#bbd8593c5c1fd2e3d1c322bb925dcae8dae4d62d" +postcss-color-functional-notation@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz#5efd37a88fbabeb00a2966d1e53d98ced93f74e0" dependencies: - postcss "^5.0.11" - postcss-value-parser "^3.1.2" + postcss "^7.0.2" + postcss-values-parser "^2.0.0" -postcss-discard-comments@^2.0.4: - version "2.0.4" - resolved "http://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz#befe89fafd5b3dace5ccce51b76b81514be00e3d" +postcss-color-hex-alpha@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.2.tgz#e9b1886bb038daed33f6394168c210b40bb4fdb6" dependencies: - postcss "^5.0.14" + postcss "^7.0.2" + postcss-values-parser "^2.0.0" -postcss-discard-duplicates@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz#b9abf27b88ac188158a5eb12abcae20263b91932" +postcss-color-mod-function@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz#816ba145ac11cc3cb6baa905a75a49f903e4d31d" dependencies: - postcss "^5.0.4" + "@csstools/convert-colors" "^1.4.0" + postcss "^7.0.2" + postcss-values-parser "^2.0.0" -postcss-discard-empty@^2.0.1: - version "2.1.0" - resolved "http://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz#d2b4bd9d5ced5ebd8dcade7640c7d7cd7f4f92b5" +postcss-color-rebeccapurple@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz#c7a89be872bb74e45b1e3022bfe5748823e6de77" dependencies: - postcss "^5.0.14" + postcss "^7.0.2" + postcss-values-parser "^2.0.0" -postcss-discard-overridden@^0.1.1: - version "0.1.1" - resolved "http://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz#8b1eaf554f686fb288cd874c55667b0aa3668d58" +postcss-colormin@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.2.tgz#93cd1fa11280008696887db1a528048b18e7ed99" dependencies: - postcss "^5.0.16" + browserslist "^4.0.0" + color "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" -postcss-discard-unused@^2.2.1: - version "2.2.3" - resolved "http://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz#bce30b2cc591ffc634322b5fb3464b6d934f4433" +postcss-convert-values@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-custom-media@^7.0.4: + version "7.0.7" + resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-7.0.7.tgz#bbc698ed3089ded61aad0f5bfb1fb48bf6969e73" + dependencies: + postcss "^7.0.5" + +postcss-custom-properties@^8.0.5: + version "8.0.9" + resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-8.0.9.tgz#8943870528a6eae4c8e8d285b6ccc9fd1f97e69c" + dependencies: + postcss "^7.0.5" + postcss-values-parser "^2.0.0" + +postcss-custom-selectors@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz#64858c6eb2ecff2fb41d0b28c9dd7b3db4de7fba" + dependencies: + postcss "^7.0.2" + postcss-selector-parser "^5.0.0-rc.3" + +postcss-dir-pseudo-class@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz#6e3a4177d0edb3abcc85fdb6fbb1c26dabaeaba2" + dependencies: + postcss "^7.0.2" + postcss-selector-parser "^5.0.0-rc.3" + +postcss-discard-comments@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.1.tgz#30697735b0c476852a7a11050eb84387a67ef55d" + dependencies: + postcss "^7.0.0" + +postcss-discard-duplicates@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" + dependencies: + postcss "^7.0.0" + +postcss-discard-empty@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" + dependencies: + postcss "^7.0.0" + +postcss-discard-overridden@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" + dependencies: + postcss "^7.0.0" + +postcss-env-function@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-2.0.2.tgz#0f3e3d3c57f094a92c2baf4b6241f0b0da5365d7" + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-flexbugs-fixes@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.1.0.tgz#e094a9df1783e2200b7b19f875dcad3b3aff8b20" + dependencies: + postcss "^7.0.0" + +postcss-focus-visible@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz#477d107113ade6024b14128317ade2bd1e17046e" + dependencies: + postcss "^7.0.2" + +postcss-focus-within@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz#763b8788596cee9b874c999201cdde80659ef680" dependencies: - postcss "^5.0.14" + postcss "^7.0.2" + +postcss-font-variant@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-4.0.0.tgz#71dd3c6c10a0d846c5eda07803439617bbbabacc" + dependencies: + postcss "^7.0.2" + +postcss-gap-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz#431c192ab3ed96a3c3d09f2ff615960f902c1715" + dependencies: + postcss "^7.0.2" + +postcss-image-set-function@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz#28920a2f29945bed4c3198d7df6496d410d3f288" + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-initial@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-3.0.0.tgz#1772512faf11421b791fb2ca6879df5f68aa0517" + dependencies: + lodash.template "^4.2.4" + postcss "^7.0.2" + +postcss-lab-function@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz#bb51a6856cd12289ab4ae20db1e3821ef13d7d2e" + dependencies: + "@csstools/convert-colors" "^1.4.0" + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-load-config@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.0.0.tgz#f1312ddbf5912cd747177083c5ef7a19d62ee484" + dependencies: + cosmiconfig "^4.0.0" + import-cwd "^2.0.0" + +postcss-loader@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" + dependencies: + loader-utils "^1.1.0" + postcss "^7.0.0" + postcss-load-config "^2.0.0" + schema-utils "^1.0.0" + +postcss-logical@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-3.0.0.tgz#2495d0f8b82e9f262725f75f9401b34e7b45d5b5" + dependencies: + postcss "^7.0.2" + +postcss-media-minmax@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz#b75bb6cbc217c8ac49433e12f22048814a4f5ed5" + dependencies: + postcss "^7.0.2" + +postcss-merge-longhand@^4.0.9: + version "4.0.9" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.9.tgz#c2428b994833ffb2a072f290ca642e75ceabcd6f" + dependencies: + css-color-names "0.0.4" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + stylehacks "^4.0.0" + +postcss-merge-rules@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.2.tgz#2be44401bf19856f27f32b8b12c0df5af1b88e74" + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + cssnano-util-same-parent "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + vendors "^1.0.0" + +postcss-minify-font-values@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-gradients@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.1.tgz#6da95c6e92a809f956bb76bf0c04494953e1a7dd" + dependencies: + cssnano-util-get-arguments "^4.0.0" + is-color-stop "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-params@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.1.tgz#5b2e2d0264dd645ef5d68f8fec0d4c38c1cf93d2" + dependencies: + alphanum-sort "^1.0.0" + browserslist "^4.0.0" + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" uniqs "^2.0.0" -postcss-filter-plugins@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/postcss-filter-plugins/-/postcss-filter-plugins-2.0.3.tgz#82245fdf82337041645e477114d8e593aa18b8ec" +postcss-minify-selectors@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.1.tgz#a891c197977cc37abf60b3ea06b84248b1c1e9cd" dependencies: - postcss "^5.0.4" + alphanum-sort "^1.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" -postcss-flexbugs-fixes@3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-3.2.0.tgz#9b8b932c53f9cf13ba0f61875303e447c33dcc51" +postcss-modules-extract-imports@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz#dc87e34148ec7eab5f791f7cd5849833375b741a" dependencies: postcss "^6.0.1" -postcss-load-config@^1.2.0: +postcss-modules-local-by-default@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-1.2.0.tgz#539e9afc9ddc8620121ebf9d8c3673e0ce50d28a" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" dependencies: - cosmiconfig "^2.1.0" - object-assign "^4.1.0" - postcss-load-options "^1.2.0" - postcss-load-plugins "^2.3.0" + css-selector-tokenizer "^0.7.0" + postcss "^6.0.1" + +postcss-modules-scope@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" + dependencies: + css-selector-tokenizer "^0.7.0" + postcss "^6.0.1" + +postcss-modules-values@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" + dependencies: + icss-replace-symbols "^1.1.0" + postcss "^6.0.1" -postcss-load-options@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-load-options/-/postcss-load-options-1.2.0.tgz#b098b1559ddac2df04bc0bb375f99a5cfe2b6d8c" +postcss-nesting@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-7.0.0.tgz#6e26a770a0c8fcba33782a6b6f350845e1a448f6" dependencies: - cosmiconfig "^2.1.0" - object-assign "^4.1.0" + postcss "^7.0.2" -postcss-load-plugins@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz#745768116599aca2f009fad426b00175049d8d92" +postcss-normalize-charset@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" dependencies: - cosmiconfig "^2.1.1" - object-assign "^4.1.0" + postcss "^7.0.0" -postcss-loader@2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-2.0.8.tgz#8c67ddb029407dfafe684a406cfc16bad2ce0814" +postcss-normalize-display-values@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.1.tgz#d9a83d47c716e8a980f22f632c8b0458cfb48a4c" dependencies: - loader-utils "^1.1.0" - postcss "^6.0.0" - postcss-load-config "^1.2.0" - schema-utils "^0.3.0" + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" -postcss-merge-idents@^2.1.5: - version "2.1.7" - resolved "http://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz#4c5530313c08e1d5b3bbf3d2bbc747e278eea270" +postcss-normalize-positions@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.1.tgz#ee2d4b67818c961964c6be09d179894b94fd6ba1" dependencies: - has "^1.0.1" - postcss "^5.0.10" - postcss-value-parser "^3.1.1" + cssnano-util-get-arguments "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" -postcss-merge-longhand@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz#23d90cd127b0a77994915332739034a1a4f3d658" +postcss-normalize-repeat-style@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.1.tgz#5293f234b94d7669a9f805495d35b82a581c50e5" dependencies: - postcss "^5.0.4" + cssnano-util-get-arguments "^4.0.0" + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" -postcss-merge-rules@^2.0.3: - version "2.1.2" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz#d1df5dfaa7b1acc3be553f0e9e10e87c61b5f721" +postcss-normalize-string@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.1.tgz#23c5030c2cc24175f66c914fa5199e2e3c10fef3" dependencies: - browserslist "^1.5.2" - caniuse-api "^1.5.2" - postcss "^5.0.4" - postcss-selector-parser "^2.2.2" - vendors "^1.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" -postcss-message-helpers@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz#a4f2f4fab6e4fe002f0aed000478cdf52f9ba60e" +postcss-normalize-timing-functions@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.1.tgz#8be83e0b9cb3ff2d1abddee032a49108f05f95d7" + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" -postcss-minify-font-values@^1.0.2: - version "1.0.5" - resolved "http://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz#4b58edb56641eba7c8474ab3526cafd7bbdecb69" +postcss-normalize-unicode@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" dependencies: - object-assign "^4.0.1" - postcss "^5.0.4" - postcss-value-parser "^3.0.2" + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" -postcss-minify-gradients@^1.0.1: - version "1.0.5" - resolved "http://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz#5dbda11373703f83cfb4a3ea3881d8d75ff5e6e1" +postcss-normalize-url@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" dependencies: - postcss "^5.0.12" - postcss-value-parser "^3.3.0" + is-absolute-url "^2.0.0" + normalize-url "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" -postcss-minify-params@^1.0.4: - version "1.2.2" - resolved "http://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz#ad2ce071373b943b3d930a3fa59a358c28d6f1f3" +postcss-normalize-whitespace@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.1.tgz#d14cb639b61238418ac8bc8d3b7bdd65fc86575e" dependencies: - alphanum-sort "^1.0.1" - postcss "^5.0.2" - postcss-value-parser "^3.0.2" - uniqs "^2.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" -postcss-minify-selectors@^2.0.4: - version "2.1.1" - resolved "http://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz#b2c6a98c0072cf91b932d1a496508114311735bf" +postcss-ordered-values@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.1.tgz#2e3b432ef3e489b18333aeca1f1295eb89be9fc2" dependencies: - alphanum-sort "^1.0.2" - has "^1.0.1" - postcss "^5.0.14" - postcss-selector-parser "^2.0.0" + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" -postcss-modules-extract-imports@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz#66140ecece38ef06bf0d3e355d69bf59d141ea85" +postcss-overflow-shorthand@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz#31ecf350e9c6f6ddc250a78f0c3e111f32dd4c30" dependencies: - postcss "^6.0.1" + postcss "^7.0.2" -postcss-modules-local-by-default@^1.0.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" +postcss-page-break@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-2.0.0.tgz#add52d0e0a528cabe6afee8b46e2abb277df46bf" dependencies: - css-selector-tokenizer "^0.7.0" - postcss "^6.0.1" + postcss "^7.0.2" -postcss-modules-scope@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" +postcss-place@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-4.0.1.tgz#e9f39d33d2dc584e46ee1db45adb77ca9d1dcc62" + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-preset-env@6.0.6: + version "6.0.6" + resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-6.0.6.tgz#f728b9a43bf01c24eb06efeeff59de0b31ee1105" + dependencies: + autoprefixer "^9.1.5" + browserslist "^4.1.1" + caniuse-lite "^1.0.30000887" + cssdb "^3.2.1" + postcss "^7.0.2" + postcss-attribute-case-insensitive "^4.0.0" + postcss-color-functional-notation "^2.0.1" + postcss-color-hex-alpha "^5.0.2" + postcss-color-mod-function "^3.0.3" + postcss-color-rebeccapurple "^4.0.1" + postcss-custom-media "^7.0.4" + postcss-custom-properties "^8.0.5" + postcss-custom-selectors "^5.1.2" + postcss-dir-pseudo-class "^5.0.0" + postcss-env-function "^2.0.2" + postcss-focus-visible "^4.0.0" + postcss-focus-within "^3.0.0" + postcss-font-variant "^4.0.0" + postcss-gap-properties "^2.0.0" + postcss-image-set-function "^3.0.1" + postcss-initial "^3.0.0" + postcss-lab-function "^2.0.1" + postcss-logical "^3.0.0" + postcss-media-minmax "^4.0.0" + postcss-nesting "^7.0.0" + postcss-overflow-shorthand "^2.0.0" + postcss-page-break "^2.0.0" + postcss-place "^4.0.1" + postcss-pseudo-class-any-link "^6.0.0" + postcss-replace-overflow-wrap "^3.0.0" + postcss-selector-matches "^4.0.0" + postcss-selector-not "^4.0.0" + +postcss-pseudo-class-any-link@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz#2ed3eed393b3702879dec4a87032b210daeb04d1" dependencies: - css-selector-tokenizer "^0.7.0" - postcss "^6.0.1" + postcss "^7.0.2" + postcss-selector-parser "^5.0.0-rc.3" -postcss-modules-values@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" +postcss-reduce-initial@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.2.tgz#bac8e325d67510ee01fa460676dc8ea9e3b40f15" dependencies: - icss-replace-symbols "^1.1.0" - postcss "^6.0.1" + browserslist "^4.0.0" + caniuse-api "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" -postcss-normalize-charset@^1.1.0: - version "1.1.1" - resolved "http://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz#ef9ee71212d7fe759c78ed162f61ed62b5cb93f1" +postcss-reduce-transforms@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.1.tgz#8600d5553bdd3ad640f43bff81eb52f8760d4561" dependencies: - postcss "^5.0.5" + cssnano-util-get-match "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" -postcss-normalize-url@^3.0.7: - version "3.0.8" - resolved "http://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz#108f74b3f2fcdaf891a2ffa3ea4592279fc78222" +postcss-replace-overflow-wrap@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz#61b360ffdaedca84c7c918d2b0f0d0ea559ab01c" dependencies: - is-absolute-url "^2.0.0" - normalize-url "^1.4.0" - postcss "^5.0.14" - postcss-value-parser "^3.2.3" + postcss "^7.0.2" -postcss-ordered-values@^2.1.0: - version "2.2.3" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz#eec6c2a67b6c412a8db2042e77fe8da43f95c11d" +postcss-safe-parser@4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-4.0.1.tgz#8756d9e4c36fdce2c72b091bbc8ca176ab1fcdea" dependencies: - postcss "^5.0.4" - postcss-value-parser "^3.0.1" + postcss "^7.0.0" -postcss-reduce-idents@^2.2.2: - version "2.4.0" - resolved "http://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz#c2c6d20cc958284f6abfbe63f7609bf409059ad3" +postcss-selector-matches@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz#71c8248f917ba2cc93037c9637ee09c64436fcff" dependencies: - postcss "^5.0.4" - postcss-value-parser "^3.0.2" + balanced-match "^1.0.0" + postcss "^7.0.2" -postcss-reduce-initial@^1.0.0: - version "1.0.1" - resolved "http://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz#68f80695f045d08263a879ad240df8dd64f644ea" +postcss-selector-not@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-4.0.0.tgz#c68ff7ba96527499e832724a2674d65603b645c0" dependencies: - postcss "^5.0.4" + balanced-match "^1.0.0" + postcss "^7.0.2" -postcss-reduce-transforms@^1.0.3: - version "1.0.4" - resolved "http://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz#ff76f4d8212437b31c298a42d2e1444025771ae1" +postcss-selector-parser@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz#4f875f4afb0c96573d5cf4d74011aee250a7e865" dependencies: - has "^1.0.1" - postcss "^5.0.8" - postcss-value-parser "^3.0.1" + dot-prop "^4.1.1" + indexes-of "^1.0.1" + uniq "^1.0.1" -postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2: - version "2.2.3" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90" +postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4: + version "5.0.0-rc.4" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0-rc.4.tgz#ca5e77238bf152966378c13e91ad6d611568ea87" dependencies: - flatten "^1.0.2" + cssesc "^2.0.0" indexes-of "^1.0.1" uniq "^1.0.1" -postcss-svgo@^2.1.1: - version "2.1.6" - resolved "http://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz#b6df18aa613b666e133f08adb5219c2684ac108d" +postcss-svgo@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.1.tgz#5628cdb38f015de6b588ce6d0bf0724b492b581d" dependencies: - is-svg "^2.0.0" - postcss "^5.0.14" - postcss-value-parser "^3.2.3" - svgo "^0.7.0" + is-svg "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + svgo "^1.0.0" -postcss-unique-selectors@^2.0.2: - version "2.0.2" - resolved "http://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz#981d57d29ddcb33e7b1dfe1fd43b8649f933ca1d" +postcss-unique-selectors@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" dependencies: - alphanum-sort "^1.0.1" - postcss "^5.0.4" + alphanum-sort "^1.0.0" + postcss "^7.0.0" uniqs "^2.0.0" -postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: +postcss-value-parser@^3.0.0, postcss-value-parser@^3.3.0, postcss-value-parser@^3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" -postcss-zindex@^2.0.1: - version "2.2.0" - resolved "http://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz#d2109ddc055b91af67fc4cb3b025946639d2af22" - dependencies: - has "^1.0.1" - postcss "^5.0.4" - uniqs "^2.0.0" - -postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.16: - version "5.2.18" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5" +postcss-values-parser@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-2.0.0.tgz#1ba42cae31367c44f96721cb5eb99462bfb39705" dependencies: - chalk "^1.1.3" - js-base64 "^2.1.9" - source-map "^0.5.6" - supports-color "^3.2.3" + flatten "^1.0.2" + indexes-of "^1.0.1" + uniq "^1.0.1" -postcss@^6.0.0, postcss@^6.0.1, postcss@^6.0.13: +postcss@^6.0.1, postcss@^6.0.23: version "6.0.23" resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" dependencies: @@ -5692,18 +6971,26 @@ postcss@^6.0.0, postcss@^6.0.1, postcss@^6.0.13: source-map "^0.6.1" supports-color "^5.4.0" +postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.2, postcss@^7.0.5: + version "7.0.5" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.5.tgz#70e6443e36a6d520b0fd4e7593fcca3635ee9f55" + dependencies: + chalk "^2.4.1" + source-map "^0.6.1" + supports-color "^5.5.0" + prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" -prepend-http@^1.0.0, prepend-http@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - preserve@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" +prettier@^1.14.2: + version "1.15.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.15.1.tgz#06c67106afb1b40e74b002353b2079cc7e0e67bf" + pretty-bytes@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-4.0.2.tgz#b2bf82e7350d65c6c33aa95aaa5a4f6327f61cd9" @@ -5715,12 +7002,12 @@ pretty-error@^2.0.2: renderkid "^2.0.1" utila "~0.4" -pretty-format@^20.0.3: - version "20.0.3" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-20.0.3.tgz#020e350a560a1fe1a98dc3beb6ccffb386de8b14" +pretty-format@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-23.6.0.tgz#5eaac8eeb6b33b987b7fe6097ea6a8a146ab5760" dependencies: - ansi-regex "^2.1.1" - ansi-styles "^3.0.0" + ansi-regex "^3.0.0" + ansi-styles "^3.2.0" private@^0.1.6, private@^0.1.7: version "0.1.8" @@ -5738,11 +7025,15 @@ progress@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.1.tgz#c9242169342b1c29d275889c95734621b1952e31" -promise@8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/promise/-/promise-8.0.1.tgz#e45d68b00a17647b6da711bf85ed6ed47208f450" +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + +promise@8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/promise/-/promise-8.0.2.tgz#9dcd0672192c589477d56891271bdc27547ae9f0" dependencies: - asap "~2.0.3" + asap "~2.0.6" promise@^7.1.1: version "7.3.1" @@ -5750,6 +7041,13 @@ promise@^7.1.1: dependencies: asap "~2.0.3" +prompts@^0.1.9: + version "0.1.14" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-0.1.14.tgz#a8e15c612c5c9ec8f8111847df3337c9cbd443b2" + dependencies: + kleur "^2.0.1" + sisteransi "^0.1.1" + prop-types@15.6.0: version "15.6.0" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.0.tgz#ceaf083022fc46b4a35f69e13ef75aed0d639856" @@ -5758,7 +7056,7 @@ prop-types@15.6.0: loose-envify "^1.3.1" object-assign "^4.1.1" -prop-types@^15.5.10, prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2: +prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2: version "15.6.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102" dependencies: @@ -5795,18 +7093,40 @@ public-encrypt@^4.0.0: randombytes "^2.0.1" safe-buffer "^5.1.2" +pump@^2.0.0, pump@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@^1.3.3: + version "1.5.1" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + dependencies: + duplexify "^3.6.0" + inherits "^2.0.3" + pump "^2.0.0" + punycode@1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" +punycode@2.x.x, punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + punycode@^1.2.4, punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" -punycode@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - q@^1.1.2: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" @@ -5815,13 +7135,6 @@ qs@6.5.2, qs@~6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" -query-string@^4.1.0: - version "4.3.4" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" - dependencies: - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - querystring-es3@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" @@ -5885,7 +7198,7 @@ raw-body@2.3.3: iconv-lite "0.4.23" unpipe "1.0.0" -rc@^1.0.1, rc@^1.1.6, rc@^1.2.7: +rc@^1.2.7: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" dependencies: @@ -5894,27 +7207,43 @@ rc@^1.0.1, rc@^1.1.6, rc@^1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-dev-utils@^5.0.2: - version "5.0.3" - resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-5.0.3.tgz#92f97668f03deb09d7fa11ea288832a8c756e35e" +react-app-polyfill@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/react-app-polyfill/-/react-app-polyfill-0.1.3.tgz#e57bb50f3751dac0e6b3ac27673812c68c679a1d" + dependencies: + core-js "2.5.7" + object-assign "4.1.1" + promise "8.0.2" + raf "3.4.0" + whatwg-fetch "3.0.0" + +react-dev-utils@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-6.1.1.tgz#a07e3e8923c4609d9f27e5af5207e3ca20724895" dependencies: + "@babel/code-frame" "7.0.0" address "1.0.3" - babel-code-frame "6.26.0" - chalk "1.1.3" - cross-spawn "5.1.0" + browserslist "4.1.1" + chalk "2.4.1" + cross-spawn "6.0.5" detect-port-alt "1.1.6" escape-string-regexp "1.0.5" - filesize "3.5.11" + filesize "3.6.1" + find-up "3.0.0" global-modules "1.0.0" - gzip-size "3.0.0" - inquirer "3.3.0" - is-root "1.0.0" - opn "5.2.0" - react-error-overlay "^4.0.1" - recursive-readdir "2.2.1" + globby "8.0.1" + gzip-size "5.0.0" + immer "1.7.2" + inquirer "6.2.0" + is-root "2.0.0" + loader-utils "1.1.0" + opn "5.4.0" + pkg-up "2.0.0" + react-error-overlay "^5.1.0" + recursive-readdir "2.2.2" shell-quote "1.6.1" sockjs-client "1.1.5" - strip-ansi "3.0.1" + strip-ansi "4.0.0" text-table "0.2.0" react-dom@^16.5.2: @@ -5926,9 +7255,9 @@ react-dom@^16.5.2: prop-types "^15.6.2" scheduler "^0.10.0" -react-error-overlay@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-4.0.1.tgz#417addb0814a90f3a7082eacba7cee588d00da89" +react-error-overlay@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-5.1.0.tgz#c516995a5652e7bfbed8b497910d5280df74a7e8" react-event-listener@^0.6.2: version "0.6.4" @@ -5969,6 +7298,10 @@ react-router-dom@^4.3.1: react-router "^4.3.1" warning "^4.0.1" +react-router-navigation-prompt@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/react-router-navigation-prompt/-/react-router-navigation-prompt-1.8.0.tgz#1db94f552bbad1276daee30e03828f5a4a10d39a" + react-router@^4.3.1: version "4.3.1" resolved "https://registry.yarnpkg.com/react-router/-/react-router-4.3.1.tgz#aada4aef14c809cb2e686b05cee4742234506c4e" @@ -5981,50 +7314,59 @@ react-router@^4.3.1: prop-types "^15.6.1" warning "^4.0.1" -react-scripts@1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-1.1.5.tgz#3041610ab0826736b52197711a4c4e3756e97768" - dependencies: - autoprefixer "7.1.6" - babel-core "6.26.0" - babel-eslint "7.2.3" - babel-jest "20.0.3" - babel-loader "7.1.2" - babel-preset-react-app "^3.1.2" - babel-runtime "6.26.0" - case-sensitive-paths-webpack-plugin "2.1.1" - chalk "1.1.3" - css-loader "0.28.7" - dotenv "4.0.0" +react-scripts@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-2.1.1.tgz#c2959a756b0b61d3090adece0d7aedd324dff8a5" + dependencies: + "@babel/core" "7.1.0" + "@svgr/webpack" "2.4.1" + babel-core "7.0.0-bridge.0" + babel-eslint "9.0.0" + babel-jest "23.6.0" + babel-loader "8.0.4" + babel-plugin-named-asset-import "^0.2.3" + babel-preset-react-app "^6.1.0" + bfj "6.1.1" + case-sensitive-paths-webpack-plugin "2.1.2" + chalk "2.4.1" + css-loader "1.0.0" + dotenv "6.0.0" dotenv-expand "4.2.0" - eslint "4.10.0" - eslint-config-react-app "^2.1.0" - eslint-loader "1.9.0" - eslint-plugin-flowtype "2.39.1" - eslint-plugin-import "2.8.0" - eslint-plugin-jsx-a11y "5.1.1" - eslint-plugin-react "7.4.0" - extract-text-webpack-plugin "3.0.2" - file-loader "1.1.5" - fs-extra "3.0.1" - html-webpack-plugin "2.29.0" - jest "20.0.4" - object-assign "4.1.1" - postcss-flexbugs-fixes "3.2.0" - postcss-loader "2.0.8" - promise "8.0.1" - raf "3.4.0" - react-dev-utils "^5.0.2" - resolve "1.6.0" - style-loader "0.19.0" - sw-precache-webpack-plugin "0.11.4" - url-loader "0.6.2" - webpack "3.8.1" - webpack-dev-server "2.11.3" - webpack-manifest-plugin "1.3.2" - whatwg-fetch "2.0.3" + eslint "5.6.0" + eslint-config-react-app "^3.0.5" + eslint-loader "2.1.1" + eslint-plugin-flowtype "2.50.1" + eslint-plugin-import "2.14.0" + eslint-plugin-jsx-a11y "6.1.2" + eslint-plugin-react "7.11.1" + file-loader "2.0.0" + fork-ts-checker-webpack-plugin-alt "0.4.14" + fs-extra "7.0.0" + html-webpack-plugin "4.0.0-alpha.2" + identity-obj-proxy "3.0.0" + jest "23.6.0" + jest-pnp-resolver "1.0.1" + jest-resolve "23.6.0" + mini-css-extract-plugin "0.4.3" + optimize-css-assets-webpack-plugin "5.0.1" + pnp-webpack-plugin "1.1.0" + postcss-flexbugs-fixes "4.1.0" + postcss-loader "3.0.0" + postcss-preset-env "6.0.6" + postcss-safe-parser "4.0.1" + react-app-polyfill "^0.1.3" + react-dev-utils "^6.1.1" + resolve "1.8.1" + sass-loader "7.1.0" + style-loader "0.23.0" + terser-webpack-plugin "1.1.0" + url-loader "1.1.1" + webpack "4.19.1" + webpack-dev-server "3.1.9" + webpack-manifest-plugin "2.0.4" + workbox-webpack-plugin "3.6.3" optionalDependencies: - fsevents "^1.1.3" + fsevents "1.2.4" react-test-renderer@^16.0.0-0, react-test-renderer@^16.5.2: version "16.6.0" @@ -6083,16 +7425,7 @@ read-pkg@^2.0.0: normalize-package-data "^2.3.2" path-type "^2.0.0" -readable-stream@1.0: - version "1.0.34" - resolved "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.3, readable-stream@^2.3.6: +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: version "2.3.6" resolved "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" dependencies: @@ -6104,6 +7437,15 @@ readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable string_decoder "~1.1.1" util-deprecate "~1.0.1" +readable-stream@1.0: + version "1.0.34" + resolved "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + readable-stream@^3.0.6: version "3.0.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.0.6.tgz#351302e4c68b5abd6a2ed55376a7f9a25be3057a" @@ -6120,6 +7462,12 @@ readdirp@^2.0.0: micromatch "^3.1.10" readable-stream "^2.0.2" +realpath-native@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.0.2.tgz#cd51ce089b513b45cf9b1516c82989b51ccc6560" + dependencies: + util.promisify "^1.0.0" + "recompose@0.28.0 - 0.30.0", recompose@^0.29.0: version "0.29.0" resolved "https://registry.yarnpkg.com/recompose/-/recompose-0.29.0.tgz#f1a4e20d5f24d6ef1440f83924e821de0b1bccef" @@ -6131,32 +7479,11 @@ readdirp@^2.0.0: react-lifecycles-compat "^3.0.2" symbol-observable "^1.0.4" -recursive-readdir@2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.1.tgz#90ef231d0778c5ce093c9a48d74e5c5422d13a99" - dependencies: - minimatch "3.0.3" - -redent@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" - dependencies: - indent-string "^2.1.0" - strip-indent "^1.0.1" - -reduce-css-calc@^1.2.6: - version "1.3.0" - resolved "http://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716" - dependencies: - balanced-match "^0.4.2" - math-expression-evaluator "^1.2.14" - reduce-function-call "^1.0.1" - -reduce-function-call@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.2.tgz#5a200bf92e0e37751752fe45b0ab330fd4b6be99" +recursive-readdir@2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.2.tgz#9946fb3274e1628de6e36b2f6714953b4845094f" dependencies: - balanced-match "^0.4.2" + minimatch "3.0.4" redux-mock-store@^1.5.3: version "1.5.3" @@ -6190,7 +7517,13 @@ redux@^4.0.0: loose-envify "^1.4.0" symbol-observable "^1.2.0" -regenerate@^1.2.1: +regenerate-unicode-properties@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-7.0.0.tgz#107405afcc4a190ec5ed450ecaa00ed0cafa7a4c" + dependencies: + regenerate "^1.4.0" + +regenerate@^1.2.1, regenerate@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" @@ -6202,12 +7535,10 @@ regenerator-runtime@^0.12.0: version "0.12.1" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de" -regenerator-transform@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" +regenerator-transform@^0.13.3: + version "0.13.3" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.13.3.tgz#264bd9ff38a8ce24b06e0636496b2c856b57bcbb" dependencies: - babel-runtime "^6.18.0" - babel-types "^6.19.0" private "^0.1.6" regex-cache@^0.4.2: @@ -6223,6 +7554,10 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" +regexpp@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" + regexpu-core@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" @@ -6231,37 +7566,37 @@ regexpu-core@^1.0.0: regjsgen "^0.2.0" regjsparser "^0.1.4" -regexpu-core@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" - -registry-auth-token@^3.0.1: - version "3.3.2" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.2.tgz#851fd49038eecb586911115af845260eec983f20" - dependencies: - rc "^1.1.6" - safe-buffer "^5.0.1" - -registry-url@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" +regexpu-core@^4.1.3, regexpu-core@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.2.0.tgz#a3744fa03806cffe146dea4421a3e73bdcc47b1d" dependencies: - rc "^1.0.1" + regenerate "^1.4.0" + regenerate-unicode-properties "^7.0.0" + regjsgen "^0.4.0" + regjsparser "^0.3.0" + unicode-match-property-ecmascript "^1.0.4" + unicode-match-property-value-ecmascript "^1.0.2" regjsgen@^0.2.0: version "0.2.0" resolved "http://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" +regjsgen@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.4.0.tgz#c1eb4c89a209263f8717c782591523913ede2561" + regjsparser@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" dependencies: jsesc "~0.5.0" +regjsparser@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.3.0.tgz#3c326da7fcfd69fa0d332575a41c8c0cdf588c96" + dependencies: + jsesc "~0.5.0" + relateurl@0.2.x: version "0.2.7" resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" @@ -6294,7 +7629,21 @@ repeating@^2.0.0: dependencies: is-finite "^1.0.0" -request@^2.79.0: +request-promise-core@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.1.tgz#3eee00b2c5aa83239cfb04c5700da36f81cd08b6" + dependencies: + lodash "^4.13.1" + +request-promise-native@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.5.tgz#5281770f68e0c9719e5163fd3fab482215f4fda5" + dependencies: + request-promise-core "1.1.1" + stealthy-require "^1.1.0" + tough-cookie ">=2.3.3" + +request@^2.87.0, request@^2.88.0: version "2.88.0" resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" dependencies: @@ -6323,9 +7672,9 @@ require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" -require-from-string@^1.1.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-1.2.1.tgz#529c9ccef27380adfec9a2f965b649bbee636418" +require-from-string@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" require-main-filename@^1.0.1: version "1.0.1" @@ -6375,7 +7724,13 @@ resolve@1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" -resolve@1.6.0, resolve@^1.3.2, resolve@^1.5.0: +resolve@1.8.1, resolve@^1.6.0, resolve@^1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" + dependencies: + path-parse "^1.0.5" + +resolve@^1.3.2, resolve@^1.5.0: version "1.6.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.6.0.tgz#0fbd21278b27b4004481c395349e7aba60a9ff5c" dependencies: @@ -6392,13 +7747,15 @@ ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" -right-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" - dependencies: - align-text "^0.1.1" +rgb-regex@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" -rimraf@^2.2.8, rimraf@^2.6.1: +rgba-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" + +rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" dependencies: @@ -6418,21 +7775,27 @@ rst-selector-parser@^2.2.3: lodash.flattendeep "^4.4.0" nearley "^2.7.10" +rsvp@^3.3.3: + version "3.6.2" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a" + run-async@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" dependencies: is-promise "^2.1.0" -rx-lite-aggregates@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" +run-queue@^1.0.0, run-queue@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" dependencies: - rx-lite "*" + aproba "^1.1.1" -rx-lite@*, rx-lite@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" +rxjs@^6.1.0: + version "6.3.3" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.3.3.tgz#3c6a7fa420e844a81390fb1158a9ec614f4bad55" + dependencies: + tslib "^1.9.0" safe-buffer@5.1.2, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" @@ -6448,22 +7811,42 @@ safe-regex@^1.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" -sane@~1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/sane/-/sane-1.6.0.tgz#9610c452307a135d29c1fdfe2547034180c46775" +sane@^2.0.0: + version "2.5.2" + resolved "https://registry.yarnpkg.com/sane/-/sane-2.5.2.tgz#b4dc1861c21b427e929507a3e751e2a2cb8ab3fa" dependencies: - anymatch "^1.3.0" + anymatch "^2.0.0" + capture-exit "^1.2.0" exec-sh "^0.2.0" - fb-watchman "^1.8.0" - minimatch "^3.0.2" + fb-watchman "^2.0.0" + micromatch "^3.1.4" minimist "^1.1.1" walker "~1.0.5" - watch "~0.10.0" + watch "~0.18.0" + optionalDependencies: + fsevents "^1.2.3" -sax@^1.2.1, sax@^1.2.4, sax@~1.2.1: +sass-loader@7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-7.1.0.tgz#16fd5138cb8b424bf8a759528a1972d72aad069d" + dependencies: + clone-deep "^2.0.1" + loader-utils "^1.0.1" + lodash.tail "^4.1.1" + neo-async "^2.5.0" + pify "^3.0.0" + semver "^5.5.0" + +sax@^1.2.4, sax@~1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" +saxes@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-3.1.3.tgz#334ab3b802a465ccda96fff9bdefbd505546ffa8" + dependencies: + xmlchars "^1.3.1" + scheduler@^0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.10.0.tgz#7988de90fe7edccc774ea175a783e69c40c521e1" @@ -6471,11 +7854,20 @@ scheduler@^0.10.0: loose-envify "^1.1.0" object-assign "^4.1.1" -schema-utils@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.3.0.tgz#f5877222ce3e931edae039f17eb3716e7137f8cf" +schema-utils@^0.4.4, schema-utils@^0.4.5: + version "0.4.7" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187" + 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" dependencies: - ajv "^5.0.0" + ajv "^6.1.0" + ajv-errors "^1.0.0" + ajv-keywords "^3.1.0" select-hose@^2.0.0: version "2.0.0" @@ -6487,13 +7879,7 @@ selfsigned@^1.9.1: dependencies: node-forge "0.7.5" -semver-diff@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" - dependencies: - semver "^5.0.3" - -"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0: +"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1: version "5.6.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" @@ -6515,6 +7901,10 @@ send@0.16.2: range-parser "~1.2.0" statuses "~1.4.0" +serialize-javascript@^1.4.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.5.0.tgz#1aa336162c88a890ddad5384baebc93a655161fe" + serve-index@^1.7.2: version "1.9.1" resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" @@ -6536,10 +7926,6 @@ serve-static@1.13.2: parseurl "~1.3.2" send "0.16.2" -serviceworker-cache-polyfill@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/serviceworker-cache-polyfill/-/serviceworker-cache-polyfill-4.0.0.tgz#de19ee73bef21ab3c0740a37b33db62464babdeb" - set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" @@ -6577,6 +7963,23 @@ sha.js@^2.4.0, sha.js@^2.4.8: inherits "^2.0.1" safe-buffer "^5.0.1" +shallow-clone@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-0.1.2.tgz#5909e874ba77106d73ac414cfec1ffca87d97060" + dependencies: + is-extendable "^0.1.1" + kind-of "^2.0.1" + lazy-cache "^0.2.3" + mixin-object "^2.0.1" + +shallow-clone@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-1.0.0.tgz#4480cd06e882ef68b2ad88a3ea54832e2c48b571" + dependencies: + is-extendable "^0.1.1" + kind-of "^5.0.0" + mixin-object "^2.0.1" + shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" @@ -6604,6 +8007,16 @@ signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + dependencies: + is-arrayish "^0.3.1" + +sisteransi@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-0.1.1.tgz#5431447d5f7d1675aac667ccd0b865a4994cb3ce" + slash@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" @@ -6659,12 +8072,6 @@ sockjs@0.3.19: faye-websocket "^0.10.0" uuid "^3.0.1" -sort-keys@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" - dependencies: - is-plain-obj "^1.0.0" - source-list-map@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" @@ -6683,17 +8090,24 @@ source-map-support@^0.4.15: version "0.4.18" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" dependencies: - source-map "^0.5.6" + source-map "^0.5.6" + +source-map-support@^0.5.6, source-map-support@~0.5.6: + version "0.5.9" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.9.tgz#41bc953b2534267ea2d605bccfa7bfa3111ced5f" + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" source-map-url@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" -source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1: +source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" -source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" @@ -6766,6 +8180,26 @@ sshpk@^1.7.0: safer-buffer "^2.0.2" tweetnacl "~0.14.0" +ssri@^5.2.4: + version "5.3.0" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06" + dependencies: + safe-buffer "^5.1.1" + +ssri@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" + dependencies: + figgy-pudding "^3.5.1" + +stable@~0.1.6: + version "0.1.8" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + +stack-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.1.tgz#d4f33ab54e8e38778b0ca5cfd3b3afb12db68620" + static-extend@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" @@ -6777,6 +8211,10 @@ static-extend@^0.1.1: version "1.4.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" +stealthy-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + stream-browserify@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" @@ -6784,6 +8222,13 @@ stream-browserify@^2.0.1: inherits "~2.0.1" readable-stream "^2.0.2" +stream-each@^1.1.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" + dependencies: + end-of-stream "^1.1.0" + stream-shift "^1.0.0" + stream-http@^2.7.2: version "2.8.3" resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" @@ -6794,17 +8239,18 @@ stream-http@^2.7.2: to-arraybuffer "^1.0.0" xtend "^4.0.0" -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" +stream-shift@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" -string-length@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-1.0.1.tgz#56970fb1c38558e9e70b728bf3de269ac45adfac" +string-length@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" dependencies: - strip-ansi "^3.0.0" + astral-regex "^1.0.0" + strip-ansi "^4.0.0" -string-width@^1.0.1, string-width@^1.0.2: +string-width@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" dependencies: @@ -6837,18 +8283,26 @@ string_decoder@~0.10.x: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" -strip-ansi@3.0.1, strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" +stringify-object@^3.2.2: + version "3.3.0" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" dependencies: - ansi-regex "^2.0.0" + get-own-enumerable-property-symbols "^3.0.0" + is-obj "^1.0.1" + is-regexp "^1.0.0" -strip-ansi@^4.0.0: +strip-ansi@4.0.0, strip-ansi@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" dependencies: ansi-regex "^3.0.0" +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + dependencies: + ansi-regex "^2.0.0" + strip-bom@3.0.0, strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -6859,90 +8313,70 @@ strip-bom@^2.0.0: dependencies: is-utf8 "^0.2.0" +strip-comments@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/strip-comments/-/strip-comments-1.0.2.tgz#82b9c45e7f05873bee53f37168af930aa368679d" + dependencies: + babel-extract-comments "^1.0.0" + babel-plugin-transform-object-rest-spread "^6.26.0" + strip-eof@^1.0.0: version "1.0.0" resolved "http://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" -strip-indent@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" - dependencies: - get-stdin "^4.0.1" - -strip-json-comments@~2.0.1: +strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" -style-loader@0.19.0: - version "0.19.0" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.19.0.tgz#7258e788f0fee6a42d710eaf7d6c2412a4c50759" +style-loader@0.23.0: + version "0.23.0" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.23.0.tgz#8377fefab68416a2e05f1cabd8c3a3acfcce74f1" dependencies: - loader-utils "^1.0.2" - schema-utils "^0.3.0" + loader-utils "^1.1.0" + schema-utils "^0.4.5" + +stylehacks@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.1.tgz#3186595d047ab0df813d213e51c8b94e0b9010f2" + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" -supports-color@^3.1.2, supports-color@^3.2.3: +supports-color@^3.1.2: version "3.2.3" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" dependencies: has-flag "^1.0.0" -supports-color@^4.2.1: - version "4.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" - dependencies: - has-flag "^2.0.0" - -supports-color@^5.1.0, supports-color@^5.3.0, supports-color@^5.4.0: +supports-color@^5.1.0, supports-color@^5.3.0, supports-color@^5.4.0, supports-color@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" dependencies: has-flag "^3.0.0" -svgo@^0.7.0: - version "0.7.2" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5" +svgo@^1.0.0, svgo@^1.0.5: + version "1.1.1" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.1.1.tgz#12384b03335bcecd85cfa5f4e3375fed671cb985" dependencies: - coa "~1.0.1" + coa "~2.0.1" colors "~1.1.2" - csso "~2.3.1" - js-yaml "~3.7.0" + css-select "^2.0.0" + css-select-base-adapter "~0.1.0" + css-tree "1.0.0-alpha.28" + css-url-regex "^1.1.0" + csso "^3.5.0" + js-yaml "^3.12.0" mkdirp "~0.5.1" - sax "~1.2.1" - whet.extend "~0.9.9" - -sw-precache-webpack-plugin@0.11.4: - version "0.11.4" - resolved "https://registry.yarnpkg.com/sw-precache-webpack-plugin/-/sw-precache-webpack-plugin-0.11.4.tgz#a695017e54eed575551493a519dc1da8da2dc5e0" - dependencies: - del "^2.2.2" - sw-precache "^5.1.1" - uglify-js "^3.0.13" - -sw-precache@^5.1.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/sw-precache/-/sw-precache-5.2.1.tgz#06134f319eec68f3b9583ce9a7036b1c119f7179" - dependencies: - dom-urls "^1.1.0" - es6-promise "^4.0.5" - glob "^7.1.1" - lodash.defaults "^4.2.0" - lodash.template "^4.4.0" - meow "^3.7.0" - mkdirp "^0.5.1" - pretty-bytes "^4.0.2" - sw-toolbox "^3.4.0" - update-notifier "^2.3.0" - -sw-toolbox@^3.4.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/sw-toolbox/-/sw-toolbox-3.6.0.tgz#26df1d1c70348658e4dea2884319149b7b3183b5" - dependencies: - path-to-regexp "^1.0.1" - serviceworker-cache-polyfill "^4.0.0" + object.values "^1.0.4" + sax "~1.2.4" + stable "~0.1.6" + unquote "~1.1.1" + util.promisify "~1.0.0" symbol-observable@1.0.4: version "1.0.4" @@ -6952,11 +8386,11 @@ symbol-observable@^1.0.4, symbol-observable@^1.1.0, symbol-observable@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" -symbol-tree@^3.2.1: +symbol-tree@^3.2.2: version "3.2.2" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" -table@^4.0.1: +table@^4.0.3: version "4.0.3" resolved "http://registry.npmjs.org/table/-/table-4.0.3.tgz#00b5e2b602f1794b9acaf9ca908a76386a7813bc" dependencies: @@ -6967,9 +8401,9 @@ table@^4.0.1: slice-ansi "1.0.0" string-width "^2.1.1" -tapable@^0.2.7: - version "0.2.8" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22" +tapable@^1.0.0, tapable@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.0.tgz#0d076a172e3d9ba088fd2272b2668fb8d194b78c" tar@^4: version "4.4.6" @@ -6983,11 +8417,26 @@ tar@^4: safe-buffer "^5.1.2" yallist "^3.0.2" -term-size@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" +terser-webpack-plugin@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.1.0.tgz#cf7c25a1eee25bf121f4a587bb9e004e3f80e528" dependencies: - execa "^0.7.0" + cacache "^11.0.2" + find-cache-dir "^2.0.0" + schema-utils "^1.0.0" + serialize-javascript "^1.4.0" + source-map "^0.6.1" + terser "^3.8.1" + webpack-sources "^1.1.0" + worker-farm "^1.5.2" + +terser@^3.8.1: + version "3.10.11" + resolved "https://registry.yarnpkg.com/terser/-/terser-3.10.11.tgz#e063da74b194dde9faf0a561f3a438c549d2da3f" + dependencies: + commander "~2.17.1" + source-map "~0.6.1" + source-map-support "~0.5.6" test-exclude@^4.2.1: version "4.2.3" @@ -6999,13 +8448,20 @@ test-exclude@^4.2.1: read-pkg-up "^1.0.1" require-main-filename "^1.0.1" -text-table@0.2.0, text-table@~0.2.0: +text-table@0.2.0, text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" -throat@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/throat/-/throat-3.2.0.tgz#50cb0670edbc40237b9e347d7e1f88e4620af836" +throat@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" + +through2@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" through@^2.3.6: version "2.3.8" @@ -7015,20 +8471,16 @@ thunky@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.0.3.tgz#f5df732453407b09191dae73e2a8cc73f381a826" -time-stamp@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-2.2.0.tgz#917e0a66905688790ec7bbbde04046259af83f57" - -timed-out@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" - timers-browserify@^2.0.4: version "2.0.10" resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae" dependencies: setimmediate "^1.0.4" +timsort@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" + tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -7047,6 +8499,10 @@ to-fast-properties@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + to-object-path@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" @@ -7069,29 +8525,37 @@ to-regex@^3.0.1, to-regex@^3.0.2: regex-not "^1.0.2" safe-regex "^1.1.0" -toposort@^1.0.0: - version "1.0.7" - resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029" +topo@2.x.x: + version "2.0.2" + resolved "http://registry.npmjs.org/topo/-/topo-2.0.2.tgz#cd5615752539057c0dc0491a621c3bc6fbe1d182" + dependencies: + hoek "4.x.x" -tough-cookie@^2.3.2, tough-cookie@~2.4.3: +tough-cookie@>=2.3.3, tough-cookie@^2.3.4, tough-cookie@^2.4.3, tough-cookie@~2.4.3: version "2.4.3" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" dependencies: psl "^1.1.24" punycode "^1.4.1" -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - -trim-newlines@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + dependencies: + punycode "^2.1.0" trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" +tryer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" + +tslib@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" + tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" @@ -7127,38 +8591,56 @@ ua-parser-js@^0.7.18: version "0.7.19" resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.19.tgz#94151be4c0a7fb1d001af7022fdaca4642659e4b" -uglify-js@3.4.x, uglify-js@^3.0.13, uglify-js@^3.1.4: +uglify-es@^3.3.4: + version "3.3.9" + resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677" + dependencies: + commander "~2.13.0" + source-map "~0.6.1" + +uglify-js@3.4.x, uglify-js@^3.1.4: version "3.4.9" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.9.tgz#af02f180c1207d76432e473ed24a28f4a782bae3" dependencies: commander "~2.17.1" source-map "~0.6.1" -uglify-js@^2.8.29: - version "2.8.29" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" - dependencies: - source-map "~0.5.1" - yargs "~3.10.0" - optionalDependencies: - uglify-to-browserify "~1.0.0" - -uglify-to-browserify@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" - -uglifyjs-webpack-plugin@^0.4.6: - version "0.4.6" - resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz#b951f4abb6bd617e66f63eb891498e391763e309" +uglifyjs-webpack-plugin@^1.2.4: + version "1.3.0" + resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz#75f548160858163a08643e086d5fefe18a5d67de" dependencies: - source-map "^0.5.6" - uglify-js "^2.8.29" - webpack-sources "^1.0.1" + cacache "^10.0.4" + find-cache-dir "^1.0.0" + schema-utils "^0.4.5" + serialize-javascript "^1.4.0" + source-map "^0.6.1" + uglify-es "^3.3.4" + webpack-sources "^1.1.0" + worker-farm "^1.5.2" underscore@~1.4.4: version "1.4.4" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.4.4.tgz#61a6a32010622afa07963bf325203cf12239d604" +unicode-canonical-property-names-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" + +unicode-match-property-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" + dependencies: + unicode-canonical-property-names-ecmascript "^1.0.4" + unicode-property-aliases-ecmascript "^1.0.4" + +unicode-match-property-value-ecmascript@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.2.tgz#9f1dc76926d6ccf452310564fd834ace059663d4" + +unicode-property-aliases-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz#5a533f31b4317ea76f17d807fa0d116546111dd0" + union-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" @@ -7176,11 +8658,17 @@ uniqs@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" -unique-string@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" +unique-filename@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.1.tgz#5e9edc6d1ce8fb264db18a507ef9bd8544451ca6" dependencies: - crypto-random-string "^1.0.0" + imurmurhash "^0.1.4" universalify@^0.1.0: version "0.1.2" @@ -7190,6 +8678,10 @@ unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" +unquote@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" + unset-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" @@ -7197,29 +8689,10 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" -unzip-response@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" - upath@^1.0.5: version "1.1.0" resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd" -update-notifier@^2.3.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" - dependencies: - boxen "^1.2.1" - chalk "^2.0.1" - configstore "^3.0.0" - import-lazy "^2.1.0" - is-ci "^1.0.10" - is-installed-globally "^0.1.0" - is-npm "^1.0.0" - latest-version "^3.0.0" - semver-diff "^2.0.0" - xdg-basedir "^3.0.0" - upper-case@^1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" @@ -7230,27 +8703,17 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -urijs@^1.16.1: - version "1.19.1" - resolved "https://registry.yarnpkg.com/urijs/-/urijs-1.19.1.tgz#5b0ff530c0cbde8386f6342235ba5ca6e995d25a" - urix@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" -url-loader@0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-0.6.2.tgz#a007a7109620e9d988d14bce677a1decb9a993f7" - dependencies: - loader-utils "^1.0.2" - mime "^1.4.1" - schema-utils "^0.3.0" - -url-parse-lax@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" +url-loader@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-1.1.1.tgz#4d1f3b4f90dde89f02c008e662d604d7511167c1" dependencies: - prepend-http "^1.0.1" + loader-utils "^1.1.0" + mime "^2.0.3" + schema-utils "^1.0.0" url-parse@^1.1.8, url-parse@^1.4.3: version "1.4.3" @@ -7286,6 +8749,13 @@ util-inspect@^0.1.8: json3 "3.3.0" object-keys "0.5.0" +util.promisify@1.0.0, util.promisify@^1.0.0, util.promisify@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" + dependencies: + define-properties "^1.1.2" + object.getownpropertydescriptors "^2.0.3" + util@0.10.3: version "0.10.3" resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" @@ -7343,6 +8813,20 @@ vm-browserify@0.0.4: dependencies: indexof "0.0.1" +w3c-hr-time@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045" + dependencies: + browser-process-hrtime "^0.1.2" + +w3c-xmlserializer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-1.0.0.tgz#d23e20de595b892056f20a359fc2622908d48695" + dependencies: + domexception "^1.0.1" + webidl-conversions "^4.0.2" + xml-name-validator "^3.0.0" + walker@~1.0.5: version "1.0.7" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" @@ -7361,11 +8845,14 @@ warning@^4.0.1: dependencies: loose-envify "^1.0.0" -watch@~0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/watch/-/watch-0.10.0.tgz#77798b2da0f9910d595f1ace5b0c2258521f21dc" +watch@~0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/watch/-/watch-0.18.0.tgz#28095476c6df7c90c963138990c0a5423eb4b986" + dependencies: + exec-sh "^0.2.0" + minimist "^1.2.0" -watchpack@^1.4.0: +watchpack@^1.5.0: version "1.6.0" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" dependencies: @@ -7379,30 +8866,24 @@ wbuf@^1.1.0, wbuf@^1.7.2: dependencies: minimalistic-assert "^1.0.0" -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - -webidl-conversions@^4.0.0: +webidl-conversions@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" -webpack-dev-middleware@1.12.2: - version "1.12.2" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz#f8fc1120ce3b4fc5680ceecb43d777966b21105e" +webpack-dev-middleware@3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.4.0.tgz#1132fecc9026fd90f0ecedac5cbff75d1fb45890" dependencies: memory-fs "~0.4.1" - mime "^1.5.0" - path-is-absolute "^1.0.0" + mime "^2.3.1" range-parser "^1.0.3" - time-stamp "^2.0.0" + webpack-log "^2.0.0" -webpack-dev-server@2.11.3: - version "2.11.3" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.11.3.tgz#3fd48a402164a6569d94d3d17f131432631b4873" +webpack-dev-server@3.1.9: + version "3.1.9" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.1.9.tgz#8b32167624d2faff40dcedc2cbce17ed1f34d3e0" dependencies: ansi-html "0.0.7" - array-includes "^3.0.3" bonjour "^3.5.0" chokidar "^2.0.0" compression "^1.5.2" @@ -7411,14 +8892,15 @@ webpack-dev-server@2.11.3: del "^3.0.0" express "^4.16.2" html-entities "^1.2.0" - http-proxy-middleware "~0.17.4" - import-local "^1.0.0" - internal-ip "1.2.0" + http-proxy-middleware "~0.18.0" + import-local "^2.0.0" + internal-ip "^3.0.1" ip "^1.1.5" killable "^1.0.0" loglevel "^1.4.1" opn "^5.1.0" portfinder "^1.0.9" + schema-utils "^1.0.0" selfsigned "^1.9.1" serve-index "^1.7.2" sockjs "0.3.19" @@ -7426,49 +8908,60 @@ webpack-dev-server@2.11.3: spdy "^3.4.1" strip-ansi "^3.0.0" supports-color "^5.1.0" - webpack-dev-middleware "1.12.2" - yargs "6.6.0" + webpack-dev-middleware "3.4.0" + webpack-log "^2.0.0" + yargs "12.0.2" -webpack-manifest-plugin@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/webpack-manifest-plugin/-/webpack-manifest-plugin-1.3.2.tgz#5ea8ee5756359ddc1d98814324fe43496349a7d4" +webpack-log@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" dependencies: - fs-extra "^0.30.0" + ansi-colors "^3.0.0" + uuid "^3.3.2" + +webpack-manifest-plugin@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/webpack-manifest-plugin/-/webpack-manifest-plugin-2.0.4.tgz#e4ca2999b09557716b8ba4475fb79fab5986f0cd" + dependencies: + fs-extra "^7.0.0" lodash ">=3.5 <5" + tapable "^1.0.0" -webpack-sources@^1.0.1: +webpack-sources@^1.1.0, webpack-sources@^1.2.0: version "1.3.0" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85" dependencies: source-list-map "^2.0.0" source-map "~0.6.1" -webpack@3.8.1: - version "3.8.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.8.1.tgz#b16968a81100abe61608b0153c9159ef8bb2bd83" - dependencies: - acorn "^5.0.0" - acorn-dynamic-import "^2.0.0" - ajv "^5.1.5" - ajv-keywords "^2.0.0" - async "^2.1.2" - enhanced-resolve "^3.4.0" - escope "^3.6.0" - interpret "^1.0.0" - json-loader "^0.5.4" - json5 "^0.5.1" +webpack@4.19.1: + version "4.19.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.19.1.tgz#096674bc3b573f8756c762754366e5b333d6576f" + dependencies: + "@webassemblyjs/ast" "1.7.6" + "@webassemblyjs/helper-module-context" "1.7.6" + "@webassemblyjs/wasm-edit" "1.7.6" + "@webassemblyjs/wasm-parser" "1.7.6" + acorn "^5.6.2" + acorn-dynamic-import "^3.0.0" + ajv "^6.1.0" + ajv-keywords "^3.1.0" + chrome-trace-event "^1.0.0" + enhanced-resolve "^4.1.0" + eslint-scope "^4.0.0" + json-parse-better-errors "^1.0.2" loader-runner "^2.3.0" loader-utils "^1.1.0" memory-fs "~0.4.1" + micromatch "^3.1.8" mkdirp "~0.5.0" + neo-async "^2.5.0" node-libs-browser "^2.0.0" - source-map "^0.5.3" - supports-color "^4.2.1" - tapable "^0.2.7" - uglifyjs-webpack-plugin "^0.4.6" - watchpack "^1.4.0" - webpack-sources "^1.0.1" - yargs "^8.0.2" + schema-utils "^0.4.4" + tapable "^1.1.0" + uglifyjs-webpack-plugin "^1.2.4" + watchpack "^1.5.0" + webpack-sources "^1.2.0" websocket-driver@>=0.5.1: version "0.7.0" @@ -7481,30 +8974,39 @@ websocket-extensions@>=0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" -whatwg-encoding@^1.0.1: +whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3, whatwg-encoding@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" dependencies: iconv-lite "0.4.24" -whatwg-fetch@2.0.3, whatwg-fetch@>=0.10.0: +whatwg-fetch@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb" + +whatwg-fetch@>=0.10.0: version "2.0.3" resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" -whatwg-url@^4.3.0: - version "4.8.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-4.8.0.tgz#d2981aa9148c1e00a41c5a6131166ab4683bbcc0" - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" +whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.2.0.tgz#a3d58ef10b76009b042d03e25591ece89b88d171" -whet.extend@~0.9.9: - version "0.9.9" - resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1" +whatwg-url@^6.4.1: + version "6.5.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8" + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" -which-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" +whatwg-url@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.0.0.tgz#fde926fa54a599f3adf82dff25a9f7be02dc6edd" + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" which-module@^2.0.0: version "2.0.0" @@ -7522,17 +9024,7 @@ wide-align@^1.1.0: dependencies: string-width "^1.0.2 || 2" -widest-line@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" - dependencies: - string-width "^2.1.1" - -window-size@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" - -wordwrap@0.0.2, wordwrap@~0.0.2: +wordwrap@~0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" @@ -7540,7 +9032,119 @@ wordwrap@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" -worker-farm@^1.3.1: +workbox-background-sync@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-3.6.3.tgz#6609a0fac9eda336a7c52e6aa227ba2ae532ad94" + dependencies: + workbox-core "^3.6.3" + +workbox-broadcast-cache-update@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-broadcast-cache-update/-/workbox-broadcast-cache-update-3.6.3.tgz#3f5dff22ada8c93e397fb38c1dc100606a7b92da" + dependencies: + workbox-core "^3.6.3" + +workbox-build@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-3.6.3.tgz#77110f9f52dc5d82fa6c1c384c6f5e2225adcbd8" + dependencies: + babel-runtime "^6.26.0" + common-tags "^1.4.0" + fs-extra "^4.0.2" + glob "^7.1.2" + joi "^11.1.1" + lodash.template "^4.4.0" + pretty-bytes "^4.0.2" + stringify-object "^3.2.2" + strip-comments "^1.0.2" + workbox-background-sync "^3.6.3" + workbox-broadcast-cache-update "^3.6.3" + workbox-cache-expiration "^3.6.3" + workbox-cacheable-response "^3.6.3" + workbox-core "^3.6.3" + workbox-google-analytics "^3.6.3" + workbox-navigation-preload "^3.6.3" + workbox-precaching "^3.6.3" + workbox-range-requests "^3.6.3" + workbox-routing "^3.6.3" + workbox-strategies "^3.6.3" + workbox-streams "^3.6.3" + workbox-sw "^3.6.3" + +workbox-cache-expiration@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-cache-expiration/-/workbox-cache-expiration-3.6.3.tgz#4819697254a72098a13f94b594325a28a1e90372" + dependencies: + workbox-core "^3.6.3" + +workbox-cacheable-response@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-3.6.3.tgz#869f1a68fce9063f6869ddbf7fa0a2e0a868b3aa" + dependencies: + workbox-core "^3.6.3" + +workbox-core@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-3.6.3.tgz#69abba70a4f3f2a5c059295a6f3b7c62bd00e15c" + +workbox-google-analytics@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-3.6.3.tgz#99df2a3d70d6e91961e18a6752bac12e91fbf727" + dependencies: + workbox-background-sync "^3.6.3" + workbox-core "^3.6.3" + workbox-routing "^3.6.3" + workbox-strategies "^3.6.3" + +workbox-navigation-preload@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-3.6.3.tgz#a2c34eb7c17e7485b795125091215f757b3c4964" + dependencies: + workbox-core "^3.6.3" + +workbox-precaching@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-3.6.3.tgz#5341515e9d5872c58ede026a31e19bafafa4e1c1" + dependencies: + workbox-core "^3.6.3" + +workbox-range-requests@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-3.6.3.tgz#3cc21cba31f2dd8c43c52a196bcc8f6cdbcde803" + dependencies: + workbox-core "^3.6.3" + +workbox-routing@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-3.6.3.tgz#659cd8f9274986cfa98fda0d050de6422075acf7" + dependencies: + workbox-core "^3.6.3" + +workbox-strategies@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-3.6.3.tgz#11a0dc249a7bc23d3465ec1322d28fa6643d64a0" + dependencies: + workbox-core "^3.6.3" + +workbox-streams@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-3.6.3.tgz#beaea5d5b230239836cc327b07d471aa6101955a" + dependencies: + workbox-core "^3.6.3" + +workbox-sw@^3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-3.6.3.tgz#278ea4c1831b92bbe2d420da8399176c4b2789ff" + +workbox-webpack-plugin@3.6.3: + version "3.6.3" + resolved "https://registry.yarnpkg.com/workbox-webpack-plugin/-/workbox-webpack-plugin-3.6.3.tgz#a807bb891b4e4e3c808df07e58f17de2d5ba6182" + dependencies: + babel-runtime "^6.26.0" + json-stable-stringify "^1.0.1" + workbox-build "^3.6.3" + +worker-farm@^1.5.2: version "1.6.0" resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.6.0.tgz#aecc405976fab5a95526180846f0dba288f3a4a0" dependencies: @@ -7557,7 +9161,7 @@ wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" -write-file-atomic@^2.0.0: +write-file-atomic@^2.1.0: version "2.3.0" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab" dependencies: @@ -7571,15 +9175,31 @@ write@^0.2.1: dependencies: mkdirp "^0.5.1" -xdg-basedir@^3.0.0: +ws@^5.2.0: + version "5.2.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" + dependencies: + async-limiter "~1.0.0" + +ws@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.0.tgz#119a9dbf92c54e190ec18d10e871d55c95cf9373" + dependencies: + async-limiter "~1.0.0" + +xml-name-validator@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" -xml-name-validator@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-2.0.1.tgz#4d8b8f1eccd3419aa362061becef515e1e559635" +xmlchars@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-1.3.1.tgz#1dda035f833dbb4f86a0c28eaa6ca769214793cf" -xtend@^4.0.0: +xregexp@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.0.0.tgz#e698189de49dd2a18cc5687b05e17c8e43943020" + +xtend@^4.0.0, xtend@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" @@ -7587,6 +9207,10 @@ y18n@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" +"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + yallist@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" @@ -7595,83 +9219,48 @@ yallist@^3.0.0, yallist@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" -yargs-parser@^4.2.0: - version "4.2.1" - resolved "http://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c" - dependencies: - camelcase "^3.0.0" - -yargs-parser@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" - dependencies: - camelcase "^3.0.0" - -yargs-parser@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" +yargs-parser@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" dependencies: camelcase "^4.1.0" -yargs@6.6.0: - version "6.6.0" - resolved "http://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208" +yargs-parser@^9.0.2: + version "9.0.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" dependencies: - camelcase "^3.0.0" - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - os-locale "^1.4.0" - read-pkg-up "^1.0.1" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^1.0.2" - which-module "^1.0.0" - y18n "^3.2.1" - yargs-parser "^4.2.0" + camelcase "^4.1.0" -yargs@^7.0.2: - version "7.1.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" +yargs@12.0.2: + version "12.0.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.2.tgz#fe58234369392af33ecbef53819171eff0f5aadc" dependencies: - camelcase "^3.0.0" - cliui "^3.2.0" - decamelize "^1.1.1" + cliui "^4.0.0" + decamelize "^2.0.0" + find-up "^3.0.0" get-caller-file "^1.0.1" - os-locale "^1.4.0" - read-pkg-up "^1.0.1" + os-locale "^3.0.0" require-directory "^2.1.1" require-main-filename "^1.0.1" set-blocking "^2.0.0" - string-width "^1.0.2" - which-module "^1.0.0" - y18n "^3.2.1" - yargs-parser "^5.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1 || ^4.0.0" + yargs-parser "^10.1.0" -yargs@^8.0.2: - version "8.0.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" +yargs@^11.0.0: + version "11.1.0" + resolved "http://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz#90b869934ed6e871115ea2ff58b03f4724ed2d77" dependencies: - camelcase "^4.1.0" - cliui "^3.2.0" + cliui "^4.0.0" decamelize "^1.1.1" + find-up "^2.1.0" get-caller-file "^1.0.1" os-locale "^2.0.0" - read-pkg-up "^2.0.0" require-directory "^2.1.1" require-main-filename "^1.0.1" set-blocking "^2.0.0" string-width "^2.0.0" which-module "^2.0.0" y18n "^3.2.1" - yargs-parser "^7.0.0" - -yargs@~3.10.0: - version "3.10.0" - resolved "http://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" - dependencies: - camelcase "^1.0.2" - cliui "^2.1.0" - decamelize "^1.0.0" - window-size "0.1.0" + yargs-parser "^9.0.2" -- GitLab From 8b8ff74bca3b4102cbf6bcc570beca62f1fb87a5 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Fri, 9 Nov 2018 11:34:19 +0200 Subject: [PATCH 143/249] NY-4607 getting access token from localstorage and keeping it at redux store --- src/components/header_bar/middleware.js | 8 ++++-- src/utils/localstorage/configure_persist.js | 2 +- src/utils/services/auth.js | 30 ++++++++++++--------- 3 files changed, 24 insertions(+), 16 deletions(-) diff --git a/src/components/header_bar/middleware.js b/src/components/header_bar/middleware.js index f90cbf2..d3ac2f2 100644 --- a/src/components/header_bar/middleware.js +++ b/src/components/header_bar/middleware.js @@ -6,9 +6,13 @@ import { failUsers } from './../../hoc/error_handler/actions'; export function* getAuthedUser() { try { - const loggedInAccountId = yield call(generateTokenResponceGrpcRequest); + const accessToken = localStorage.getItem('token') + const loggedInAccountId = yield call(generateTokenResponceGrpcRequest, accessToken); const payload = yield call(accountByAccountIdGrpcRequest, loggedInAccountId); - yield put(deliverAuthedUser(payload)) + yield put(deliverAuthedUser({ + ...payload, + accessToken + })) } catch (error) { yield put(failUsers(error)); diff --git a/src/utils/localstorage/configure_persist.js b/src/utils/localstorage/configure_persist.js index 30e07eb..f57ef15 100644 --- a/src/utils/localstorage/configure_persist.js +++ b/src/utils/localstorage/configure_persist.js @@ -5,7 +5,7 @@ const persistConfig = { key: "root", storage, stateReconciler: autoMergeLevel1, - blacklist: ["editUser", "error"] + blacklist: ["editUser", "error", 'authedUser'] }; export const usersPersistConfig = { diff --git a/src/utils/services/auth.js b/src/utils/services/auth.js index 85a44dc..211dde9 100644 --- a/src/utils/services/auth.js +++ b/src/utils/services/auth.js @@ -7,25 +7,29 @@ let generateAccessTokenRequest = new EmptyRequest(); let authenticationServiceClient = new AuthenticationServiceClient(endpoint); -// todo: move this to localstorage and do further testing -const token = "eyJraWQiOiIyMDE4MTEwOCIsInR5cCI6IkpXVCIsImFsZyI6IkVTMjU2In0.eyJzdWIiOiJPR1l5TkRGbE1qUXRZVE00TVMwME1UZ3dMVGt6WVRjdFpERXhPVEU1TXpNNFpUWTEiLCJhdWQiOiJNVEl6TVRJejphcHBDbGFzczoxMjMzMzMzIiwic2NvcGUiOiJhY2Nlc3MiLCJyb2xlcyI6W10sImlzcyI6Imh0dHBzOi8vYXV0aC5ueW5qYS5iaXovIiwiZXhwIjoxNTQyMjg5MzQ0LCJpYXQiOjE1NDE2ODQ1NDR9.6aWodeu2GiJq3V5d8RrsCyPrvvU1SKWJevvK4Fj6Dw36vSn6dX5PB_a4_Q9S33AwW6inUEFdGlJSol3L-V0RNQ" +// token in case it gets deleted from localstorage: eyJraWQiOiIyMDE4MTEwOCIsInR5cCI6IkpXVCIsImFsZyI6IkVTMjU2In0.eyJzdWIiOiJPR1l5TkRGbE1qUXRZVE00TVMwME1UZ3dMVGt6WVRjdFpERXhPVEU1TXpNNFpUWTEiLCJhdWQiOiJNVEl6TVRJejphcHBDbGFzczoxMjMzMzMzIiwic2NvcGUiOiJhY2Nlc3MiLCJyb2xlcyI6W10sImlzcyI6Imh0dHBzOi8vYXV0aC5ueW5qYS5iaXovIiwiZXhwIjoxNTQyMjg5MzQ0LCJpYXQiOjE1NDE2ODQ1NDR9.6aWodeu2GiJq3V5d8RrsCyPrvvU1SKWJevvK4Fj6Dw36vSn6dX5PB_a4_Q9S33AwW6inUEFdGlJSol3L-V0RNQ +// localStorage.setItem('token', token) -export function generateTokenResponceGrpcRequest(){ +export function generateTokenResponceGrpcRequest(token){ return new Promise((resolve, reject) => { authenticationServiceClient.generateAdminAccessToken(generateAccessTokenRequest, {'Content-type': 'application/grpc-web+proto', 'accessToken': token}, (error, response) => { - if (response.tokenresponsedetails){ - - let tokenDecoded = response.tokenresponsedetails.token.split(/[.]/); - - let containsAccountIdDecoded = JSON.parse(b64DecodeUnicode(tokenDecoded[1])); - - let decodedAccountId = b64DecodeUnicode(containsAccountIdDecoded.sub); - - resolve(decodedAccountId) + if (response) { + if (response.tokenresponsedetails){ + + let tokenDecoded = response.tokenresponsedetails.token.split(/[.]/); + + let containsAccountIdDecoded = JSON.parse(b64DecodeUnicode(tokenDecoded[1])); + + let decodedAccountId = b64DecodeUnicode(containsAccountIdDecoded.sub); + + resolve(decodedAccountId) + } else { + reject(response.tokenresponsedetails) + } } else { - reject(response.tokenresponsedetails) + reject({errorMessage: 'Uknown Error'}) } if(error){ -- GitLab From 828d480df112854f0294a58873344f09c6fbfebd Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Fri, 9 Nov 2018 11:51:11 +0200 Subject: [PATCH 144/249] NY-4607 moving error handler as hoc --- src/App.js | 18 +++++++++++++++--- src/components/header_bar/index.js | 8 -------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/App.js b/src/App.js index 01b83d8..f72068c 100644 --- a/src/App.js +++ b/src/App.js @@ -1,6 +1,7 @@ import React, { Component, Fragment } from 'react'; import { BrowserRouter as Router, Route, Switch } from 'react-router-dom'; import PropTypes from "prop-types"; +import { connect } from 'react-redux'; import { withStyles } from "@material-ui/core/styles"; import Grid from '@material-ui/core/Grid'; @@ -11,6 +12,7 @@ import { routesArray } from './routing'; import PageNotFound from './components/page_not_found'; import Sidebar from './components/sidebar'; import HeaderBar from './components/header_bar'; +import ErrorHandler from './hoc/error_handler/' /** * @const {object} styles coming from Material UI will go here @@ -43,7 +45,7 @@ class App extends Component { * @const {object} classes coming from material ui * @const {object} leftSideNav related to show hide left side Navbar */ - const { classes } = this.props; + const { classes, error } = this.props; const { leftSideNav } = this.state; return ( @@ -75,7 +77,11 @@ class App extends Component {
- + { + error + ? + : null + } ) @@ -87,4 +93,10 @@ App.propTypes = { classes: PropTypes.object.isRequired }; -export default withStyles(styles)(App); \ No newline at end of file +function mapStateToProps({error}) { + return { + error + } +} + +export default withStyles(styles)(connect(mapStateToProps)(App)); \ No newline at end of file diff --git a/src/components/header_bar/index.js b/src/components/header_bar/index.js index 405fdb3..d03b157 100644 --- a/src/components/header_bar/index.js +++ b/src/components/header_bar/index.js @@ -8,8 +8,6 @@ import { withStyles } from '@material-ui/core/styles'; import AppBar from '@material-ui/core/AppBar'; import AccountCircle from '@material-ui/icons/AccountCircle'; -import ErrorHandler from './../../hoc/error_handler/' - import * as actions from './actions' /** @@ -38,12 +36,6 @@ class HeaderBar extends Component { { firstName } { lastName } - - { - error - ? - : null - } ) } -- GitLab From 5c8f74993a9b4d90db8ca86f2c8a8193fa2a8254 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Fri, 9 Nov 2018 11:51:51 +0200 Subject: [PATCH 145/249] NY-5226 --- .../edit_user/contact_info/phone_control.js | 36 ++++++++ .../edit_user/contact_info/text_control.js | 36 ++++++++ .../edit_user/generic_data/index.js | 82 +++++++++++-------- src/components/edit_user/index.js | 8 +- 4 files changed, 129 insertions(+), 33 deletions(-) create mode 100644 src/components/edit_user/contact_info/phone_control.js create mode 100644 src/components/edit_user/contact_info/text_control.js diff --git a/src/components/edit_user/contact_info/phone_control.js b/src/components/edit_user/contact_info/phone_control.js new file mode 100644 index 0000000..b3df82a --- /dev/null +++ b/src/components/edit_user/contact_info/phone_control.js @@ -0,0 +1,36 @@ +import React from "react"; + +import { withStyles } from "@material-ui/core/styles"; +// import classNames from "classnames"; + +import FormControl from "@material-ui/core/FormControl"; +import InputAdornment from "@material-ui/core/InputAdornment"; +import AccountCircle from "@material-ui/icons/AccountCircle"; +import Input from "@material-ui/core/Input"; + +const styles = theme => ({}); + +const PhoneControl = (props) => { + + const { classes, phoneLabel, id } = props; + + return ( +
+ + {phoneLabel}} + startAdornment={ + + + + } + /> + +
+ ); +}; + +export default withStyles(styles)(PhoneControl); \ No newline at end of file diff --git a/src/components/edit_user/contact_info/text_control.js b/src/components/edit_user/contact_info/text_control.js new file mode 100644 index 0000000..5819a41 --- /dev/null +++ b/src/components/edit_user/contact_info/text_control.js @@ -0,0 +1,36 @@ +import React from "react"; + +import { withStyles } from "@material-ui/core/styles"; +// import classNames from "classnames"; + +import InputAdornment from "@material-ui/core/InputAdornment"; +import AccountCircle from "@material-ui/icons/AccountCircle"; +import TextField from "@material-ui/core/TextField"; + +const styles = theme => ({}); + +const TextControl = (props) => { + + const { classes, id } = props; + + return ( +
+ + + + ), + }} + margin="normal" + fullWidth + /> +
+ ); +}; + +export default withStyles(styles)(TextControl); \ No newline at end of file diff --git a/src/components/edit_user/generic_data/index.js b/src/components/edit_user/generic_data/index.js index de0df80..3418594 100644 --- a/src/components/edit_user/generic_data/index.js +++ b/src/components/edit_user/generic_data/index.js @@ -17,7 +17,13 @@ import Input from "@material-ui/core/Input"; import InputAdornment from "@material-ui/core/InputAdornment"; import FormControl from "@material-ui/core/FormControl"; +import IconButton from "@material-ui/core/IconButton"; +import Menu from "@material-ui/core/Menu"; +import MoreVertIcon from "@material-ui/icons/MoreVert"; + import { accountStatusVariations } from '../../../utils/services/accounts'; +import PhoneControl from '../contact_info/phone_control'; +import TextControl from "../contact_info/text_control"; const styles = { bigAvatar: { @@ -30,6 +36,13 @@ const styles = { } }; +const options = [ + "Edit", + "Delete", +]; + +const ITEM_HEIGHT = 48; + const genericUserData = (props) => { /** @@ -37,11 +50,43 @@ const genericUserData = (props) => { * @const {Object} classes */ - const { selectedUser, classes, onHandleChange, parentState, modalAlertDeleteAvatar } = props; + const { selectedUser, classes, onHandleChange, parentState, modalAlertDeleteAvatar, onHandleCloseContactInfo, onHandleActiveRedactionContactInfo } = props; + const open = Boolean(parentState.anchorEl); return ( + + +
+ + + + + {options.map(option => ( + + {option} + + ))} + +
+ {selectedUser.length > 0 && (
@@ -185,37 +230,10 @@ const genericUserData = (props) => { Contact Information -
- - Work} - startAdornment={ - - - - } - /> - -
- -
- - - - ), - }} - margin="normal" - fullWidth - /> -
+ + + + diff --git a/src/components/edit_user/index.js b/src/components/edit_user/index.js index a5319a7..da76114 100644 --- a/src/components/edit_user/index.js +++ b/src/components/edit_user/index.js @@ -30,7 +30,8 @@ class EditUser extends Component{ accountStatus:'', isUpdated: false, valuesStates: true, - openModal: false + openModal: false, + anchorEl: null } } @@ -86,6 +87,9 @@ class EditUser extends Component{ handleAvatarAlertDelete = () => this.setState({ openModal: true }); handleModalConfirmedCancel = () => this.setState({ openModal: false }); + handleActiveRedactionContactInfo = event =>this.setState({ anchorEl: event.currentTarget }); + handleCloseContactInfo = () => this.setState({ anchorEl: null }) + render() { /** @@ -116,6 +120,8 @@ class EditUser extends Component{ onHandleChange={this.handleChange} parentState={this.state} modalAlertDeleteAvatar={this.handleAvatarAlertDelete} + onHandleActiveRedactionContactInfo={this.handleActiveRedactionContactInfo} + onHandleCloseContactInfo={this.handleCloseContactInfo} /> -- GitLab From 5755063f23f0391cab378003c2c94d5ef28dc2f1 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Fri, 9 Nov 2018 13:03:55 +0200 Subject: [PATCH 146/249] NY-4634 proto files compiled to js --- src/utils/grpc_proto/admin_account.proto | 56 + .../grpc_proto/generated/admin_account_pb.js | 1226 +++++++++++++++++ .../generated/admin_account_pb_service.js | 90 ++ 3 files changed, 1372 insertions(+) create mode 100644 src/utils/grpc_proto/admin_account.proto create mode 100644 src/utils/grpc_proto/generated/admin_account_pb.js create mode 100644 src/utils/grpc_proto/generated/admin_account_pb_service.js diff --git a/src/utils/grpc_proto/admin_account.proto b/src/utils/grpc_proto/admin_account.proto new file mode 100644 index 0000000..7c5a6ab --- /dev/null +++ b/src/utils/grpc_proto/admin_account.proto @@ -0,0 +1,56 @@ +// +// proto3 +// Syntax documentation - see https://developers.google.com/protocol-buffers/docs/proto3 +// +syntax = "proto3"; +import "account.proto"; + +// GRPC package, also used by the Go code generator +package admin; + + +option java_generic_services = true; +option java_multiple_files = true; +option java_package = "biz.nynja.account.admin.grpc"; +option java_outer_classname = "AdminAccount"; + +service AdminAccountService { + rpc getAllAccounts(GetAllAccountsRequest) returns (AccountsAdminResponse); + rpc getCountOfAllAccounts(EmptyRequest) returns (AccountsCount); +} + +message ColumnFilter { + string filterType = 1; +} + +message SortModel { + string colId = 1; + string sort = 2; +} + +message AccountsCount { + int64 count = 1; +} + +message EmptyRequest { +} + +message GetAllAccountsRequest { + int32 startRow = 1; + int32 endRow =2; +// map filterModel = 3; +// repeated SortModel sortModel = 4; +} + +message AccountAdminResponse { + repeated account.AccountDetails accountDetails = 1; + int32 lastRow = 2; + repeated string secondaryColumnFields = 3; +} + +message AccountsAdminResponse { + oneof result { + account.ErrorResponse error = 1; + AccountAdminResponse accountsResponse = 2; + } +} \ No newline at end of file diff --git a/src/utils/grpc_proto/generated/admin_account_pb.js b/src/utils/grpc_proto/generated/admin_account_pb.js new file mode 100644 index 0000000..ee25eeb --- /dev/null +++ b/src/utils/grpc_proto/generated/admin_account_pb.js @@ -0,0 +1,1226 @@ +/* eslint-disable */ +/** + * @fileoverview + * @enhanceable + * @suppress {messageConventions} JS Compiler reports an error if a variable or + * field starts with 'MSG_' and isn't a translatable message. + * @public + */ +// GENERATED CODE -- DO NOT EDIT! + +var jspb = require('google-protobuf'); +var goog = jspb; +var global = Function('return this')(); + +var account_pb = require('./account_pb.js'); +goog.exportSymbol('proto.admin.AccountAdminResponse', null, global); +goog.exportSymbol('proto.admin.AccountsAdminResponse', null, global); +goog.exportSymbol('proto.admin.AccountsCount', null, global); +goog.exportSymbol('proto.admin.ColumnFilter', null, global); +goog.exportSymbol('proto.admin.EmptyRequest', null, global); +goog.exportSymbol('proto.admin.GetAllAccountsRequest', null, global); +goog.exportSymbol('proto.admin.SortModel', null, global); + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.admin.ColumnFilter = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.admin.ColumnFilter, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.admin.ColumnFilter.displayName = 'proto.admin.ColumnFilter'; +} + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.admin.ColumnFilter.prototype.toObject = function(opt_includeInstance) { + return proto.admin.ColumnFilter.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.admin.ColumnFilter} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.admin.ColumnFilter.toObject = function(includeInstance, msg) { + var f, obj = { + filtertype: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.admin.ColumnFilter} + */ +proto.admin.ColumnFilter.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.admin.ColumnFilter; + return proto.admin.ColumnFilter.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.admin.ColumnFilter} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.admin.ColumnFilter} + */ +proto.admin.ColumnFilter.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setFiltertype(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.admin.ColumnFilter.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.admin.ColumnFilter.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.admin.ColumnFilter} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.admin.ColumnFilter.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getFiltertype(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string filterType = 1; + * @return {string} + */ +proto.admin.ColumnFilter.prototype.getFiltertype = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** @param {string} value */ +proto.admin.ColumnFilter.prototype.setFiltertype = function(value) { + jspb.Message.setProto3StringField(this, 1, value); +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.admin.SortModel = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.admin.SortModel, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.admin.SortModel.displayName = 'proto.admin.SortModel'; +} + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.admin.SortModel.prototype.toObject = function(opt_includeInstance) { + return proto.admin.SortModel.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.admin.SortModel} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.admin.SortModel.toObject = function(includeInstance, msg) { + var f, obj = { + colid: jspb.Message.getFieldWithDefault(msg, 1, ""), + sort: jspb.Message.getFieldWithDefault(msg, 2, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.admin.SortModel} + */ +proto.admin.SortModel.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.admin.SortModel; + return proto.admin.SortModel.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.admin.SortModel} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.admin.SortModel} + */ +proto.admin.SortModel.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setColid(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setSort(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.admin.SortModel.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.admin.SortModel.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.admin.SortModel} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.admin.SortModel.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getColid(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getSort(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } +}; + + +/** + * optional string colId = 1; + * @return {string} + */ +proto.admin.SortModel.prototype.getColid = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** @param {string} value */ +proto.admin.SortModel.prototype.setColid = function(value) { + jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string sort = 2; + * @return {string} + */ +proto.admin.SortModel.prototype.getSort = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** @param {string} value */ +proto.admin.SortModel.prototype.setSort = function(value) { + jspb.Message.setProto3StringField(this, 2, value); +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.admin.AccountsCount = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.admin.AccountsCount, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.admin.AccountsCount.displayName = 'proto.admin.AccountsCount'; +} + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.admin.AccountsCount.prototype.toObject = function(opt_includeInstance) { + return proto.admin.AccountsCount.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.admin.AccountsCount} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.admin.AccountsCount.toObject = function(includeInstance, msg) { + var f, obj = { + count: jspb.Message.getFieldWithDefault(msg, 1, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.admin.AccountsCount} + */ +proto.admin.AccountsCount.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.admin.AccountsCount; + return proto.admin.AccountsCount.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.admin.AccountsCount} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.admin.AccountsCount} + */ +proto.admin.AccountsCount.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readInt64()); + msg.setCount(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.admin.AccountsCount.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.admin.AccountsCount.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.admin.AccountsCount} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.admin.AccountsCount.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getCount(); + if (f !== 0) { + writer.writeInt64( + 1, + f + ); + } +}; + + +/** + * optional int64 count = 1; + * @return {number} + */ +proto.admin.AccountsCount.prototype.getCount = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** @param {number} value */ +proto.admin.AccountsCount.prototype.setCount = function(value) { + jspb.Message.setProto3IntField(this, 1, value); +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.admin.EmptyRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.admin.EmptyRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.admin.EmptyRequest.displayName = 'proto.admin.EmptyRequest'; +} + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.admin.EmptyRequest.prototype.toObject = function(opt_includeInstance) { + return proto.admin.EmptyRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.admin.EmptyRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.admin.EmptyRequest.toObject = function(includeInstance, msg) { + var f, obj = { + + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.admin.EmptyRequest} + */ +proto.admin.EmptyRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.admin.EmptyRequest; + return proto.admin.EmptyRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.admin.EmptyRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.admin.EmptyRequest} + */ +proto.admin.EmptyRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.admin.EmptyRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.admin.EmptyRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.admin.EmptyRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.admin.EmptyRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.admin.GetAllAccountsRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.admin.GetAllAccountsRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.admin.GetAllAccountsRequest.displayName = 'proto.admin.GetAllAccountsRequest'; +} + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.admin.GetAllAccountsRequest.prototype.toObject = function(opt_includeInstance) { + return proto.admin.GetAllAccountsRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.admin.GetAllAccountsRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.admin.GetAllAccountsRequest.toObject = function(includeInstance, msg) { + var f, obj = { + startrow: jspb.Message.getFieldWithDefault(msg, 1, 0), + endrow: jspb.Message.getFieldWithDefault(msg, 2, 0) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.admin.GetAllAccountsRequest} + */ +proto.admin.GetAllAccountsRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.admin.GetAllAccountsRequest; + return proto.admin.GetAllAccountsRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.admin.GetAllAccountsRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.admin.GetAllAccountsRequest} + */ +proto.admin.GetAllAccountsRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {number} */ (reader.readInt32()); + msg.setStartrow(value); + break; + case 2: + var value = /** @type {number} */ (reader.readInt32()); + msg.setEndrow(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.admin.GetAllAccountsRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.admin.GetAllAccountsRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.admin.GetAllAccountsRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.admin.GetAllAccountsRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getStartrow(); + if (f !== 0) { + writer.writeInt32( + 1, + f + ); + } + f = message.getEndrow(); + if (f !== 0) { + writer.writeInt32( + 2, + f + ); + } +}; + + +/** + * optional int32 startRow = 1; + * @return {number} + */ +proto.admin.GetAllAccountsRequest.prototype.getStartrow = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** @param {number} value */ +proto.admin.GetAllAccountsRequest.prototype.setStartrow = function(value) { + jspb.Message.setProto3IntField(this, 1, value); +}; + + +/** + * optional int32 endRow = 2; + * @return {number} + */ +proto.admin.GetAllAccountsRequest.prototype.getEndrow = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** @param {number} value */ +proto.admin.GetAllAccountsRequest.prototype.setEndrow = function(value) { + jspb.Message.setProto3IntField(this, 2, value); +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.admin.AccountAdminResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.admin.AccountAdminResponse.repeatedFields_, null); +}; +goog.inherits(proto.admin.AccountAdminResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.admin.AccountAdminResponse.displayName = 'proto.admin.AccountAdminResponse'; +} +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.admin.AccountAdminResponse.repeatedFields_ = [1,3]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.admin.AccountAdminResponse.prototype.toObject = function(opt_includeInstance) { + return proto.admin.AccountAdminResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.admin.AccountAdminResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.admin.AccountAdminResponse.toObject = function(includeInstance, msg) { + var f, obj = { + accountdetailsList: jspb.Message.toObjectList(msg.getAccountdetailsList(), + account_pb.AccountDetails.toObject, includeInstance), + lastrow: jspb.Message.getFieldWithDefault(msg, 2, 0), + secondarycolumnfieldsList: jspb.Message.getRepeatedField(msg, 3) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.admin.AccountAdminResponse} + */ +proto.admin.AccountAdminResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.admin.AccountAdminResponse; + return proto.admin.AccountAdminResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.admin.AccountAdminResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.admin.AccountAdminResponse} + */ +proto.admin.AccountAdminResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new account_pb.AccountDetails; + reader.readMessage(value,account_pb.AccountDetails.deserializeBinaryFromReader); + msg.addAccountdetails(value); + break; + case 2: + var value = /** @type {number} */ (reader.readInt32()); + msg.setLastrow(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.addSecondarycolumnfields(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.admin.AccountAdminResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.admin.AccountAdminResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.admin.AccountAdminResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.admin.AccountAdminResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getAccountdetailsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 1, + f, + account_pb.AccountDetails.serializeBinaryToWriter + ); + } + f = message.getLastrow(); + if (f !== 0) { + writer.writeInt32( + 2, + f + ); + } + f = message.getSecondarycolumnfieldsList(); + if (f.length > 0) { + writer.writeRepeatedString( + 3, + f + ); + } +}; + + +/** + * repeated account.AccountDetails accountDetails = 1; + * @return {!Array} + */ +proto.admin.AccountAdminResponse.prototype.getAccountdetailsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, account_pb.AccountDetails, 1)); +}; + + +/** @param {!Array} value */ +proto.admin.AccountAdminResponse.prototype.setAccountdetailsList = function(value) { + jspb.Message.setRepeatedWrapperField(this, 1, value); +}; + + +/** + * @param {!proto.account.AccountDetails=} opt_value + * @param {number=} opt_index + * @return {!proto.account.AccountDetails} + */ +proto.admin.AccountAdminResponse.prototype.addAccountdetails = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.account.AccountDetails, opt_index); +}; + + +proto.admin.AccountAdminResponse.prototype.clearAccountdetailsList = function() { + this.setAccountdetailsList([]); +}; + + +/** + * optional int32 lastRow = 2; + * @return {number} + */ +proto.admin.AccountAdminResponse.prototype.getLastrow = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** @param {number} value */ +proto.admin.AccountAdminResponse.prototype.setLastrow = function(value) { + jspb.Message.setProto3IntField(this, 2, value); +}; + + +/** + * repeated string secondaryColumnFields = 3; + * @return {!Array} + */ +proto.admin.AccountAdminResponse.prototype.getSecondarycolumnfieldsList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 3)); +}; + + +/** @param {!Array} value */ +proto.admin.AccountAdminResponse.prototype.setSecondarycolumnfieldsList = function(value) { + jspb.Message.setField(this, 3, value || []); +}; + + +/** + * @param {!string} value + * @param {number=} opt_index + */ +proto.admin.AccountAdminResponse.prototype.addSecondarycolumnfields = function(value, opt_index) { + jspb.Message.addToRepeatedField(this, 3, value, opt_index); +}; + + +proto.admin.AccountAdminResponse.prototype.clearSecondarycolumnfieldsList = function() { + this.setSecondarycolumnfieldsList([]); +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.admin.AccountsAdminResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.admin.AccountsAdminResponse.oneofGroups_); +}; +goog.inherits(proto.admin.AccountsAdminResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.admin.AccountsAdminResponse.displayName = 'proto.admin.AccountsAdminResponse'; +} +/** + * Oneof group definitions for this message. Each group defines the field + * numbers belonging to that group. When of these fields' value is set, all + * other fields in the group are cleared. During deserialization, if multiple + * fields are encountered for a group, only the last value seen will be kept. + * @private {!Array>} + * @const + */ +proto.admin.AccountsAdminResponse.oneofGroups_ = [[1,2]]; + +/** + * @enum {number} + */ +proto.admin.AccountsAdminResponse.ResultCase = { + RESULT_NOT_SET: 0, + ERROR: 1, + ACCOUNTSRESPONSE: 2 +}; + +/** + * @return {proto.admin.AccountsAdminResponse.ResultCase} + */ +proto.admin.AccountsAdminResponse.prototype.getResultCase = function() { + return /** @type {proto.admin.AccountsAdminResponse.ResultCase} */(jspb.Message.computeOneofCase(this, proto.admin.AccountsAdminResponse.oneofGroups_[0])); +}; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.admin.AccountsAdminResponse.prototype.toObject = function(opt_includeInstance) { + return proto.admin.AccountsAdminResponse.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.admin.AccountsAdminResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.admin.AccountsAdminResponse.toObject = function(includeInstance, msg) { + var f, obj = { + error: (f = msg.getError()) && account_pb.ErrorResponse.toObject(includeInstance, f), + accountsresponse: (f = msg.getAccountsresponse()) && proto.admin.AccountAdminResponse.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.admin.AccountsAdminResponse} + */ +proto.admin.AccountsAdminResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.admin.AccountsAdminResponse; + return proto.admin.AccountsAdminResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.admin.AccountsAdminResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.admin.AccountsAdminResponse} + */ +proto.admin.AccountsAdminResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new account_pb.ErrorResponse; + reader.readMessage(value,account_pb.ErrorResponse.deserializeBinaryFromReader); + msg.setError(value); + break; + case 2: + var value = new proto.admin.AccountAdminResponse; + reader.readMessage(value,proto.admin.AccountAdminResponse.deserializeBinaryFromReader); + msg.setAccountsresponse(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.admin.AccountsAdminResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.admin.AccountsAdminResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.admin.AccountsAdminResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.admin.AccountsAdminResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getError(); + if (f != null) { + writer.writeMessage( + 1, + f, + account_pb.ErrorResponse.serializeBinaryToWriter + ); + } + f = message.getAccountsresponse(); + if (f != null) { + writer.writeMessage( + 2, + f, + proto.admin.AccountAdminResponse.serializeBinaryToWriter + ); + } +}; + + +/** + * optional account.ErrorResponse error = 1; + * @return {?proto.account.ErrorResponse} + */ +proto.admin.AccountsAdminResponse.prototype.getError = function() { + return /** @type{?proto.account.ErrorResponse} */ ( + jspb.Message.getWrapperField(this, account_pb.ErrorResponse, 1)); +}; + + +/** @param {?proto.account.ErrorResponse|undefined} value */ +proto.admin.AccountsAdminResponse.prototype.setError = function(value) { + jspb.Message.setOneofWrapperField(this, 1, proto.admin.AccountsAdminResponse.oneofGroups_[0], value); +}; + + +proto.admin.AccountsAdminResponse.prototype.clearError = function() { + this.setError(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {!boolean} + */ +proto.admin.AccountsAdminResponse.prototype.hasError = function() { + return jspb.Message.getField(this, 1) != null; +}; + + +/** + * optional AccountAdminResponse accountsResponse = 2; + * @return {?proto.admin.AccountAdminResponse} + */ +proto.admin.AccountsAdminResponse.prototype.getAccountsresponse = function() { + return /** @type{?proto.admin.AccountAdminResponse} */ ( + jspb.Message.getWrapperField(this, proto.admin.AccountAdminResponse, 2)); +}; + + +/** @param {?proto.admin.AccountAdminResponse|undefined} value */ +proto.admin.AccountsAdminResponse.prototype.setAccountsresponse = function(value) { + jspb.Message.setOneofWrapperField(this, 2, proto.admin.AccountsAdminResponse.oneofGroups_[0], value); +}; + + +proto.admin.AccountsAdminResponse.prototype.clearAccountsresponse = function() { + this.setAccountsresponse(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {!boolean} + */ +proto.admin.AccountsAdminResponse.prototype.hasAccountsresponse = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +goog.object.extend(exports, proto.admin); diff --git a/src/utils/grpc_proto/generated/admin_account_pb_service.js b/src/utils/grpc_proto/generated/admin_account_pb_service.js new file mode 100644 index 0000000..480d9d5 --- /dev/null +++ b/src/utils/grpc_proto/generated/admin_account_pb_service.js @@ -0,0 +1,90 @@ +/* eslint-disable */ +// package: admin +// file: admin_account.proto + +var admin_account_pb = require("./admin_account_pb"); +var grpc = require("grpc-web-client").grpc; + +var AdminAccountService = (function () { + function AdminAccountService() {} + AdminAccountService.serviceName = "admin.AdminAccountService"; + return AdminAccountService; +}()); + +AdminAccountService.getAllAccounts = { + methodName: "getAllAccounts", + service: AdminAccountService, + requestStream: false, + responseStream: false, + requestType: admin_account_pb.GetAllAccountsRequest, + responseType: admin_account_pb.AccountsAdminResponse +}; + +AdminAccountService.getCountOfAllAccounts = { + methodName: "getCountOfAllAccounts", + service: AdminAccountService, + requestStream: false, + responseStream: false, + requestType: admin_account_pb.EmptyRequest, + responseType: admin_account_pb.AccountsCount +}; + +exports.AdminAccountService = AdminAccountService; + +function AdminAccountServiceClient(serviceHost, options) { + this.serviceHost = serviceHost; + this.options = options || {}; +} + +AdminAccountServiceClient.prototype.getAllAccounts = function getAllAccounts(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + grpc.unary(AdminAccountService.getAllAccounts, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); +}; + +AdminAccountServiceClient.prototype.getCountOfAllAccounts = function getCountOfAllAccounts(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + grpc.unary(AdminAccountService.getCountOfAllAccounts, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); +}; + +exports.AdminAccountServiceClient = AdminAccountServiceClient; + -- GitLab From 03109364e77ce72ac08606535c34957faa19aec0 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Fri, 9 Nov 2018 16:26:01 +0200 Subject: [PATCH 147/249] NY-4634 getting all records and total count from endpoints --- src/components/dashboard_users/index.js | 2 +- src/components/dashboard_users/reducer.js | 27 ++++++----- src/store/root_middleware/index.js | 2 +- src/utils/api/index.js | 30 +++++++++--- src/utils/grpc_proto/account.proto | 1 + src/utils/grpc_proto/generated/account_pb.js | 3 +- .../grpc_proto/generated/admin_account_pb.js | 2 +- .../generated/admin_account_pb_service.js | 4 +- src/utils/localstorage/configure_persist.js | 2 +- src/utils/services/accounts.js | 2 - src/utils/services/admin_account.js | 48 +++++++++++++++++++ 11 files changed, 96 insertions(+), 27 deletions(-) create mode 100644 src/utils/services/admin_account.js diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 14600bb..249cebb 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -74,7 +74,7 @@ class DashboardUsers extends Component { * @const {string} userId * @const {string} category */ - const userId = clickedCell.data.accountId; + const userId = clickedCell.data.accountid; this.props.history.push(`/edit-user/${userId}`); } diff --git a/src/components/dashboard_users/reducer.js b/src/components/dashboard_users/reducer.js index 4dfb3ba..b8a8b27 100644 --- a/src/components/dashboard_users/reducer.js +++ b/src/components/dashboard_users/reducer.js @@ -9,18 +9,21 @@ import moreOptions from '../../utils/services/more_options'; const initialState = { usersData: [], coldef: [ - {headerName: "avatar", hide: false, field: "avatar", filter: 'agTextColumnFilter', cellRenderer: "agGroupCellRenderer", cellRendererParams: { innerRenderer: userAvatar } }, - {headerName: "accountId", hide: false, field: "accountId", filter: 'agTextColumnFilter' }, - {headerName: "profileId", hide: false, field: "profileId", filter: 'agTextColumnFilter' }, - {headerName: "authenticationIdentifier", hide: false, field: "authenticationIdentifier", filter: 'agTextColumnFilter' }, - {headerName: "authenticationType", hide: false, field: "authenticationType", filter: 'agTextColumnFilter' }, - {headerName: "accountMark", hide: false, field: "accountMark", filter: 'agTextColumnFilter' }, - {headerName: "accountName", hide: false, field: "accountName", filter: 'agTextColumnFilter', cellRenderer: "agGroupCellRenderer", cellRendererParams: { innerRenderer: moreOptions } }, - {headerName: "firstName", hide: false, field: "firstName", filter: 'agTextColumnFilter' }, - {headerName: "lastName", hide: false, field: "lastName", filter: 'agTextColumnFilter' }, - {headerName: "accountStatus", hide: false, field: "accountStatus", filter: 'agTextColumnFilter' }, - {headerName: "qrCode", hide: false, field: "qrCode", filter: 'agTextColumnFilter' }, - {headerName: "communicationProviders", hide: false, field: "communicationProviders", filter: 'agTextColumnFilter' }, + {headerName: "Avatar", hide: false, field: "avatar", filter: 'agTextColumnFilter', cellRenderer: "agGroupCellRenderer", cellRendererParams: { innerRenderer: userAvatar } }, + {headerName: "Account ID", hide: false, field: "accountid", filter: 'agTextColumnFilter' }, + {headerName: "Username", hide: false, field: "username", filter: 'agTextColumnFilter' }, + {headerName: "Roles List", hide: false, field: "rolesList", filter: 'agTextColumnFilter' }, + {headerName: "Profile ID", hide: false, field: "profileid", filter: 'agTextColumnFilter' }, + {headerName: "Authentication Identifier", hide: false, field: "authenticationidentifier", filter: 'agTextColumnFilter' }, + {headerName: "Authentication Type", hide: false, field: "authenticationtype", filter: 'agTextColumnFilter' }, + {headerName: "Account Mark", hide: false, field: "accountmark", filter: 'agTextColumnFilter' }, + {headerName: "Account Name", hide: false, field: "accountname", filter: 'agTextColumnFilter', cellRenderer: "agGroupCellRenderer", cellRendererParams: { innerRenderer: moreOptions } }, + {headerName: "Firstname", hide: false, field: "firstname", filter: 'agTextColumnFilter' }, + {headerName: "Lastname", hide: false, field: "lastname", filter: 'agTextColumnFilter' }, + {headerName: "Access Status", hide: false, field: "accessstatus", filter: 'agTextColumnFilter' }, + {headerName: "Birthday", hide: false, field: "birthday", filter: 'agTextColumnFilter' }, + {headerName: "QR code", hide: false, field: "qrcode", filter: 'agTextColumnFilter' }, + {headerName: "Contacts Info List", hide: false, field: "contactsinfoList", filter: 'agTextColumnFilter' }, ], sideBar: { toolPanels: [ diff --git a/src/store/root_middleware/index.js b/src/store/root_middleware/index.js index 028ad29..7535188 100644 --- a/src/store/root_middleware/index.js +++ b/src/store/root_middleware/index.js @@ -22,7 +22,7 @@ export default composeEnhancers(applyMiddleware(sagaMiddleware)); export function* combineSagas() { yield all ( [ - logger(), + // logger(), takeEvery(GET_USERS, getUsers), takeEvery(GET_AUTH_USER, getAuthedUser), takeEvery(GET_SELECTED_USER_ID, getSelectedUserId), diff --git a/src/utils/api/index.js b/src/utils/api/index.js index 74c5666..213e014 100644 --- a/src/utils/api/index.js +++ b/src/utils/api/index.js @@ -1,4 +1,5 @@ import { users } from './_DATA'; +import { getAllAccountsGrpcRequest, getCountOfAllAccountsGrpcRequest } from './../services/admin_account'; export function _getUsers() { return new Promise((res, rej) => { @@ -22,6 +23,9 @@ ServerSideDatasource.prototype.getRows = function(params) { var request = params.request; console.log('request', request); + var startRow = params.request.startRow === 0 ? 1 : params.request.startRow; + var endRow = params.request.endRow; + /** * @param {func} successCallback * @param {object} request @@ -29,18 +33,32 @@ ServerSideDatasource.prototype.getRows = function(params) { * on success call params.successCallback(resultForGrid, lastRow); * params.successCallback is an ag-grid method */ - this.fakeServer.getUsersData(successCallback, request); + // this.fakeServer.getUsersData(successCallback, request); // console.log("request", request) + var getUsersDataPromise = getAllAccountsGrpcRequest(startRow, endRow); + var getCountOfAllAccountsPromise = getCountOfAllAccountsGrpcRequest(); + + Promise.all([getUsersDataPromise, getCountOfAllAccountsPromise]).then((data) => { + params.successCallback(data[0].accountdetailsList, data[1]); + }).catch((error) => { + params.failCallback(error); + }) + // getUsersDataPromise.then((response) => { + // params.successCallback(response.accountdetailsList, 50); + // }).catch((error) => { + // console.log(error); + // }) + /** * @param {array} resultForGrid * @param {number} lastRow */ - function successCallback(resultForGrid, lastRow) { - params.successCallback(resultForGrid, lastRow); - console.log("resultForGrid", resultForGrid) - console.log("lastRow", lastRow) - } + // function successCallback(resultForGrid, lastRow) { + // params.successCallback(resultForGrid, lastRow); + // console.log("resultForGrid", resultForGrid) + // console.log("lastRow", lastRow) + // } }; function FakeServer(allData){ diff --git a/src/utils/grpc_proto/account.proto b/src/utils/grpc_proto/account.proto index d3ce757..85b2cac 100644 --- a/src/utils/grpc_proto/account.proto +++ b/src/utils/grpc_proto/account.proto @@ -337,6 +337,7 @@ message ErrorResponse { PHONENUMBER_NOT_FOUND = 43; QR_CODE_NOT_FOUND = 44; MULTIPLE_INVALID_PARAMETERS = 45; + INVALID_ACCESS_STATUS = 46; } Cause cause = 1; string message = 2; diff --git a/src/utils/grpc_proto/generated/account_pb.js b/src/utils/grpc_proto/generated/account_pb.js index aaa5b86..7e40758 100644 --- a/src/utils/grpc_proto/generated/account_pb.js +++ b/src/utils/grpc_proto/generated/account_pb.js @@ -7430,7 +7430,8 @@ proto.account.ErrorResponse.Cause = { EMAIL_NOT_FOUND: 42, PHONENUMBER_NOT_FOUND: 43, QR_CODE_NOT_FOUND: 44, - MULTIPLE_INVALID_PARAMETERS: 45 + MULTIPLE_INVALID_PARAMETERS: 45, + INVALID_ACCESS_STATUS: 46 }; /** diff --git a/src/utils/grpc_proto/generated/admin_account_pb.js b/src/utils/grpc_proto/generated/admin_account_pb.js index ee25eeb..4e72460 100644 --- a/src/utils/grpc_proto/generated/admin_account_pb.js +++ b/src/utils/grpc_proto/generated/admin_account_pb.js @@ -12,7 +12,7 @@ var jspb = require('google-protobuf'); var goog = jspb; var global = Function('return this')(); -var account_pb = require('./account_pb.js'); +var account_pb = require('./account_pb'); goog.exportSymbol('proto.admin.AccountAdminResponse', null, global); goog.exportSymbol('proto.admin.AccountsAdminResponse', null, global); goog.exportSymbol('proto.admin.AccountsCount', null, global); diff --git a/src/utils/grpc_proto/generated/admin_account_pb_service.js b/src/utils/grpc_proto/generated/admin_account_pb_service.js index 480d9d5..89f0e91 100644 --- a/src/utils/grpc_proto/generated/admin_account_pb_service.js +++ b/src/utils/grpc_proto/generated/admin_account_pb_service.js @@ -54,7 +54,7 @@ AdminAccountServiceClient.prototype.getAllAccounts = function getAllAccounts(req err.metadata = response.trailers; callback(err, null); } else { - callback(null, response.message); + callback(null, response.message.toObject()); } } } @@ -79,7 +79,7 @@ AdminAccountServiceClient.prototype.getCountOfAllAccounts = function getCountOfA err.metadata = response.trailers; callback(err, null); } else { - callback(null, response.message); + callback(null, response.message.toObject()); } } } diff --git a/src/utils/localstorage/configure_persist.js b/src/utils/localstorage/configure_persist.js index f57ef15..b1baec5 100644 --- a/src/utils/localstorage/configure_persist.js +++ b/src/utils/localstorage/configure_persist.js @@ -5,7 +5,7 @@ const persistConfig = { key: "root", storage, stateReconciler: autoMergeLevel1, - blacklist: ["editUser", "error", 'authedUser'] + blacklist: ["users", "editUser", "error", 'authedUser'] }; export const usersPersistConfig = { diff --git a/src/utils/services/accounts.js b/src/utils/services/accounts.js index 40354a4..477b0b3 100644 --- a/src/utils/services/accounts.js +++ b/src/utils/services/accounts.js @@ -25,8 +25,6 @@ export function accountByAccountIdGrpcRequest(accountId){ if(response.accountdetails){ - console.log('getAccountByAccountId response', response); - response.accountdetails.rolesList = accountRoleVariations[response.accountdetails.rolesList[0]] response.accountdetails.accessstatus = response.accountdetails.accessstatus === undefined || response.accountdetails.accessstatus === 0 ? accountStatusVariations[1] : accountStatusVariations[response.accountdetails.accessstatus] diff --git a/src/utils/services/admin_account.js b/src/utils/services/admin_account.js new file mode 100644 index 0000000..ce35d22 --- /dev/null +++ b/src/utils/services/admin_account.js @@ -0,0 +1,48 @@ +import { AdminAccountServiceClient } from './../grpc_proto/generated/admin_account_pb_service'; +import { GetAllAccountsRequest, EmptyRequest } from './../grpc_proto/generated/admin_account_pb'; + +const endpoint = "https://account.dev-eu.nynja.net:443"; + +let getAllAccountsRequest = new GetAllAccountsRequest(); + +let adminAccountServiceClient = new AdminAccountServiceClient(endpoint); + +export function getAllAccountsGrpcRequest(startRow, endRow){ + + getAllAccountsRequest.setStartrow(startRow); + getAllAccountsRequest.setEndrow(endRow); + + return new Promise((resolve, reject) => { + adminAccountServiceClient.getAllAccounts(getAllAccountsRequest, {'Content-type': 'application/grpc-web+proto'}, (error, response) => { + if(response) { + if(response.accountsresponse){ + resolve(response.accountsresponse); + } else { + reject({errorMessage: "Unknown error"}) + } + } + if(error){ + reject(error); + } + }) + }) +} + +let getCountOfAllAccountsRequest = new EmptyRequest(); + +export function getCountOfAllAccountsGrpcRequest(){ + return new Promise((resolve, reject) => { + adminAccountServiceClient.getCountOfAllAccounts(getCountOfAllAccountsRequest, {'Content-type': 'application/grpc-web+proto'}, (error, response) => { + if(response) { + if(response.count){ + resolve(response.count); + } else { + reject({errorMessage: "Unknown error"}) + } + } + if(error){ + reject(error); + } + }) + }) +} \ No newline at end of file -- GitLab From 782eedacf1fe59bce17483e6f1d6ff93c5193391 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Fri, 9 Nov 2018 16:28:28 +0200 Subject: [PATCH 148/249] NY-5276 --- .../contact_info_control_options.js | 50 ++++++++++++++ .../edit_user/contact_info/phone_control.js | 25 ++++++- .../edit_user/contact_info/text_control.js | 13 +++- .../edit_user/generic_data/generic_data.css | 10 +++ .../edit_user/generic_data/index.js | 67 +++++-------------- src/components/edit_user/index.js | 21 +++++- 6 files changed, 129 insertions(+), 57 deletions(-) create mode 100644 src/components/edit_user/contact_info/contact_info_control_options.js diff --git a/src/components/edit_user/contact_info/contact_info_control_options.js b/src/components/edit_user/contact_info/contact_info_control_options.js new file mode 100644 index 0000000..c01087c --- /dev/null +++ b/src/components/edit_user/contact_info/contact_info_control_options.js @@ -0,0 +1,50 @@ +import React from "react"; +import { withStyles } from "@material-ui/core/styles"; + +import IconButton from "@material-ui/core/IconButton"; +import Menu from "@material-ui/core/Menu"; +import MoreVertIcon from "@material-ui/icons/MoreVert"; +import MenuItem from "@material-ui/core/MenuItem"; + +const ITEM_HEIGHT = 48; +const styles = theme => ({}); + +const ContactInfoControlOptions = (props) => { + + const { parentState, onHandleActiveEditContactInfo, onHandleCloseContactInfo, handleEditContact, handleDeleteContact, id } = props; + const open = Boolean(parentState.anchorEl); + + return ( + +
+ + + + + + Edit + Delete + + +
+ + ); +} + +export default withStyles(styles)(ContactInfoControlOptions); \ No newline at end of file diff --git a/src/components/edit_user/contact_info/phone_control.js b/src/components/edit_user/contact_info/phone_control.js index b3df82a..c1908d5 100644 --- a/src/components/edit_user/contact_info/phone_control.js +++ b/src/components/edit_user/contact_info/phone_control.js @@ -7,28 +7,47 @@ import FormControl from "@material-ui/core/FormControl"; import InputAdornment from "@material-ui/core/InputAdornment"; import AccountCircle from "@material-ui/icons/AccountCircle"; import Input from "@material-ui/core/Input"; +import InputLabel from "@material-ui/core/InputLabel"; +import FormHelperText from "@material-ui/core/FormHelperText"; + +import ContactInfoControlOptions from './contact_info_control_options'; const styles = theme => ({}); const PhoneControl = (props) => { - const { classes, phoneLabel, id } = props; + const { classes, phoneLabel, id, onHandleCloseContactInfo, onHandleActiveEditContactInfo, parentState, handleDeleteContact, handleEditContact } = props; return (
- + + + {phoneLabel} {phoneLabel}} startAdornment={ } + endAdornment={ + + } + /> + {phoneLabel} + +
); }; diff --git a/src/components/edit_user/contact_info/text_control.js b/src/components/edit_user/contact_info/text_control.js index 5819a41..1b1084b 100644 --- a/src/components/edit_user/contact_info/text_control.js +++ b/src/components/edit_user/contact_info/text_control.js @@ -6,12 +6,13 @@ import { withStyles } from "@material-ui/core/styles"; import InputAdornment from "@material-ui/core/InputAdornment"; import AccountCircle from "@material-ui/icons/AccountCircle"; import TextField from "@material-ui/core/TextField"; +import ContactInfoControlOptions from '../contact_info/contact_info_control_options'; const styles = theme => ({}); const TextControl = (props) => { - const { classes, id } = props; + const { classes, id, handleDeleteContact, handleEditContact, parentState, onHandleCloseContactInfo, onHandleActiveEditContactInfo } = props; return (
@@ -25,6 +26,16 @@ const TextControl = (props) => { ), + endAdornment:( + + ), }} margin="normal" fullWidth diff --git a/src/components/edit_user/generic_data/generic_data.css b/src/components/edit_user/generic_data/generic_data.css index ce889f9..10ec45b 100644 --- a/src/components/edit_user/generic_data/generic_data.css +++ b/src/components/edit_user/generic_data/generic_data.css @@ -11,4 +11,14 @@ } .avatar-wrapper { font-size: 0; +} +.contact-info-controls button { + padding: 0; +} + +.contact-info-controls button:hover { + background-color: transparent; +} +.MuiInput-underline-366.MuiInput-disabled-365:before { + border-bottom: solid 1px; } \ No newline at end of file diff --git a/src/components/edit_user/generic_data/index.js b/src/components/edit_user/generic_data/index.js index 3418594..e280244 100644 --- a/src/components/edit_user/generic_data/index.js +++ b/src/components/edit_user/generic_data/index.js @@ -13,13 +13,6 @@ import TextField from "@material-ui/core/TextField"; import MenuItem from "@material-ui/core/MenuItem"; import Typography from "@material-ui/core/Typography"; import Button from "@material-ui/core/Button"; -import Input from "@material-ui/core/Input"; -import InputAdornment from "@material-ui/core/InputAdornment"; -import FormControl from "@material-ui/core/FormControl"; - -import IconButton from "@material-ui/core/IconButton"; -import Menu from "@material-ui/core/Menu"; -import MoreVertIcon from "@material-ui/icons/MoreVert"; import { accountStatusVariations } from '../../../utils/services/accounts'; import PhoneControl from '../contact_info/phone_control'; @@ -36,13 +29,6 @@ const styles = { } }; -const options = [ - "Edit", - "Delete", -]; - -const ITEM_HEIGHT = 48; - const genericUserData = (props) => { /** @@ -50,43 +36,13 @@ const genericUserData = (props) => { * @const {Object} classes */ - const { selectedUser, classes, onHandleChange, parentState, modalAlertDeleteAvatar, onHandleCloseContactInfo, onHandleActiveRedactionContactInfo } = props; - const open = Boolean(parentState.anchorEl); + const { selectedUser, classes, onHandleChange, parentState, modalAlertDeleteAvatar, + onHandleCloseContactInfo, onHandleActiveEditContactInfo, handleDeleteContact, handleEditContact } = props; return ( - -
- - - - - {options.map(option => ( - - {option} - - ))} - -
- {selectedUser.length > 0 && (
@@ -230,10 +186,21 @@ const genericUserData = (props) => { Contact Information - - - - + + diff --git a/src/components/edit_user/index.js b/src/components/edit_user/index.js index da76114..59f39fb 100644 --- a/src/components/edit_user/index.js +++ b/src/components/edit_user/index.js @@ -87,8 +87,21 @@ class EditUser extends Component{ handleAvatarAlertDelete = () => this.setState({ openModal: true }); handleModalConfirmedCancel = () => this.setState({ openModal: false }); - handleActiveRedactionContactInfo = event =>this.setState({ anchorEl: event.currentTarget }); - handleCloseContactInfo = () => this.setState({ anchorEl: null }) + onHandleActiveEditContactInfo = event =>this.setState({ anchorEl: event.currentTarget }); + handleCloseContactInfo = () => this.setState({ anchorEl: null }); + + handleDeleteContact = () => { + this.handleCloseContactInfo(); + console.log('===================================='); + console.log('DELETE CONTACT INFO'); + console.log('===================================='); + }; + handleEditContact = () => { + this.handleCloseContactInfo(); + console.log('===================================='); + console.log('EDIT CONTACT INFO'); + console.log('===================================='); + }; render() { @@ -120,8 +133,10 @@ class EditUser extends Component{ onHandleChange={this.handleChange} parentState={this.state} modalAlertDeleteAvatar={this.handleAvatarAlertDelete} - onHandleActiveRedactionContactInfo={this.handleActiveRedactionContactInfo} + onHandleActiveEditContactInfo={this.onHandleActiveEditContactInfo} onHandleCloseContactInfo={this.handleCloseContactInfo} + handleDeleteContact={this.handleDeleteContact} + handleEditContact={this.handleEditContact} /> -- GitLab From bca1714903847c803273ac715f5cd93af53040eb Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Fri, 9 Nov 2018 17:18:22 +0200 Subject: [PATCH 149/249] NY-4634 converting user role and status to readable value --- src/utils/api/index.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/utils/api/index.js b/src/utils/api/index.js index 213e014..4085f39 100644 --- a/src/utils/api/index.js +++ b/src/utils/api/index.js @@ -1,5 +1,6 @@ import { users } from './_DATA'; import { getAllAccountsGrpcRequest, getCountOfAllAccountsGrpcRequest } from './../services/admin_account'; +import { accountStatusVariations, accountRoleVariations } from './../services/accounts' export function _getUsers() { return new Promise((res, rej) => { @@ -40,6 +41,15 @@ ServerSideDatasource.prototype.getRows = function(params) { var getCountOfAllAccountsPromise = getCountOfAllAccountsGrpcRequest(); Promise.all([getUsersDataPromise, getCountOfAllAccountsPromise]).then((data) => { + + data[0].accountdetailsList.map((item) => { + item.accessstatus = item.accessstatus === undefined || item.accessstatus === 0 ? accountStatusVariations[1] : accountStatusVariations[item.accessstatus]; + let roleListItem = item.rolesList.map((roleItem) => accountRoleVariations[roleItem]); + item.rolesList = roleListItem; + + return item; + }) + params.successCallback(data[0].accountdetailsList, data[1]); }).catch((error) => { params.failCallback(error); -- GitLab From 4e8c21c1d8c327ced1bcd18daf14ba7e15de7f92 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Fri, 9 Nov 2018 17:26:32 +0200 Subject: [PATCH 150/249] NY-4634 removing not necessary data from the dashboard --- src/components/dashboard_users/reducer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/dashboard_users/reducer.js b/src/components/dashboard_users/reducer.js index b8a8b27..5a8ba11 100644 --- a/src/components/dashboard_users/reducer.js +++ b/src/components/dashboard_users/reducer.js @@ -17,7 +17,7 @@ const initialState = { {headerName: "Authentication Identifier", hide: false, field: "authenticationidentifier", filter: 'agTextColumnFilter' }, {headerName: "Authentication Type", hide: false, field: "authenticationtype", filter: 'agTextColumnFilter' }, {headerName: "Account Mark", hide: false, field: "accountmark", filter: 'agTextColumnFilter' }, - {headerName: "Account Name", hide: false, field: "accountname", filter: 'agTextColumnFilter', cellRenderer: "agGroupCellRenderer", cellRendererParams: { innerRenderer: moreOptions } }, + {headerName: "Account Name", hide: false, field: "accountname", filter: 'agTextColumnFilter'}, {headerName: "Firstname", hide: false, field: "firstname", filter: 'agTextColumnFilter' }, {headerName: "Lastname", hide: false, field: "lastname", filter: 'agTextColumnFilter' }, {headerName: "Access Status", hide: false, field: "accessstatus", filter: 'agTextColumnFilter' }, -- GitLab From 15732c8a54ef940476af7c8a6f0724f897770b4a Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Fri, 9 Nov 2018 17:39:28 +0200 Subject: [PATCH 151/249] NY-4634 hiding not necessary data from dashboard --- src/components/dashboard_users/reducer.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/dashboard_users/reducer.js b/src/components/dashboard_users/reducer.js index 5a8ba11..d2dba59 100644 --- a/src/components/dashboard_users/reducer.js +++ b/src/components/dashboard_users/reducer.js @@ -10,10 +10,10 @@ const initialState = { usersData: [], coldef: [ {headerName: "Avatar", hide: false, field: "avatar", filter: 'agTextColumnFilter', cellRenderer: "agGroupCellRenderer", cellRendererParams: { innerRenderer: userAvatar } }, - {headerName: "Account ID", hide: false, field: "accountid", filter: 'agTextColumnFilter' }, + {headerName: "Account ID", hide: true, field: "accountid", filter: 'agTextColumnFilter' }, {headerName: "Username", hide: false, field: "username", filter: 'agTextColumnFilter' }, {headerName: "Roles List", hide: false, field: "rolesList", filter: 'agTextColumnFilter' }, - {headerName: "Profile ID", hide: false, field: "profileid", filter: 'agTextColumnFilter' }, + {headerName: "Profile ID", hide: true, field: "profileid", filter: 'agTextColumnFilter' }, {headerName: "Authentication Identifier", hide: false, field: "authenticationidentifier", filter: 'agTextColumnFilter' }, {headerName: "Authentication Type", hide: false, field: "authenticationtype", filter: 'agTextColumnFilter' }, {headerName: "Account Mark", hide: false, field: "accountmark", filter: 'agTextColumnFilter' }, @@ -22,7 +22,7 @@ const initialState = { {headerName: "Lastname", hide: false, field: "lastname", filter: 'agTextColumnFilter' }, {headerName: "Access Status", hide: false, field: "accessstatus", filter: 'agTextColumnFilter' }, {headerName: "Birthday", hide: false, field: "birthday", filter: 'agTextColumnFilter' }, - {headerName: "QR code", hide: false, field: "qrcode", filter: 'agTextColumnFilter' }, + {headerName: "QR code", hide: true, field: "qrcode", filter: 'agTextColumnFilter' }, {headerName: "Contacts Info List", hide: false, field: "contactsinfoList", filter: 'agTextColumnFilter' }, ], sideBar: { -- GitLab From fc93e5e0db9aba8b90d46003eec0e640debdef72 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Fri, 9 Nov 2018 17:59:33 +0200 Subject: [PATCH 152/249] NY-5276 --- .../edit_user/access_status/access_status.js | 60 ++++++ .../edit_user/contact_info/phone_control.js | 3 +- .../edit_user_avatar/edit_user_avatar.js | 47 +++++ .../edit_user/generic_data/index.js | 175 +++--------------- .../edit_user/personal_info/personal_info.js | 85 +++++++++ 5 files changed, 221 insertions(+), 149 deletions(-) create mode 100644 src/components/edit_user/access_status/access_status.js create mode 100644 src/components/edit_user/edit_user_avatar/edit_user_avatar.js create mode 100644 src/components/edit_user/personal_info/personal_info.js diff --git a/src/components/edit_user/access_status/access_status.js b/src/components/edit_user/access_status/access_status.js new file mode 100644 index 0000000..47070fe --- /dev/null +++ b/src/components/edit_user/access_status/access_status.js @@ -0,0 +1,60 @@ +import React from "react"; +import { withStyles } from "@material-ui/core/styles"; +// import classNames from "classnames"; +import TextField from "@material-ui/core/TextField"; +import MenuItem from "@material-ui/core/MenuItem"; + +import { accountStatusVariations } from "../../../utils/services/accounts"; + +const styles = theme => ({}); + +const AccessStatus = (props) => { + + const { classes, parentState, selectedUser, onHandleChange } = props; + + return ( + +
+ {selectedUser[0].accessstatus + + ? + { + accountStatusVariations.length !== 0 + + ? accountStatusVariations.map((option, index) => { + + if (index !== 0) { + return ( + + {option} + + ); + } else { + return null; + } + }) + : null + } + + : null + } +
+ ) +} + +export default withStyles(styles)(AccessStatus); \ No newline at end of file diff --git a/src/components/edit_user/contact_info/phone_control.js b/src/components/edit_user/contact_info/phone_control.js index c1908d5..ada3422 100644 --- a/src/components/edit_user/contact_info/phone_control.js +++ b/src/components/edit_user/contact_info/phone_control.js @@ -20,7 +20,7 @@ const PhoneControl = (props) => { return (
- + {phoneLabel} { } /> - {phoneLabel} diff --git a/src/components/edit_user/edit_user_avatar/edit_user_avatar.js b/src/components/edit_user/edit_user_avatar/edit_user_avatar.js new file mode 100644 index 0000000..0447765 --- /dev/null +++ b/src/components/edit_user/edit_user_avatar/edit_user_avatar.js @@ -0,0 +1,47 @@ +import React, { Fragment } from "react"; +import { withStyles } from "@material-ui/core/styles"; +import classNames from "classnames"; + +import Avatar from "@material-ui/core/Avatar"; +import AccountCircle from "@material-ui/icons/AccountCircle"; +import Button from "@material-ui/core/Button"; + +const styles = { + bigAvatar: { + width: 130, + height: 130 + }, + avatarDelete: { + textTransform: "none", + width: 130 + } +}; + +const UserAvatar = (props) => { +const { classes, selectedUser, modalAlertDeleteAvatar } = props; + + return ( +
+ + {selectedUser[0].avatar + + ?
+ + +
+ : + + } +
+ ); +} + +export default withStyles(styles)(UserAvatar); \ No newline at end of file diff --git a/src/components/edit_user/generic_data/index.js b/src/components/edit_user/generic_data/index.js index e280244..57953d9 100644 --- a/src/components/edit_user/generic_data/index.js +++ b/src/components/edit_user/generic_data/index.js @@ -1,35 +1,21 @@ import React, { Fragment } from 'react'; -import PropTypes from "prop-types"; +// import PropTypes from "prop-types"; import './generic_data.css'; import { withStyles } from "@material-ui/core/styles"; -import classNames from "classnames"; - import Card from "@material-ui/core/Card"; import CardContent from "@material-ui/core/CardContent"; -import Avatar from "@material-ui/core/Avatar"; -import AccountCircle from '@material-ui/icons/AccountCircle'; -import TextField from "@material-ui/core/TextField"; -import MenuItem from "@material-ui/core/MenuItem"; import Typography from "@material-ui/core/Typography"; -import Button from "@material-ui/core/Button"; -import { accountStatusVariations } from '../../../utils/services/accounts'; import PhoneControl from '../contact_info/phone_control'; import TextControl from "../contact_info/text_control"; +import PersonalInfo from '../personal_info/personal_info'; +import AccessStatus from '../access_status/access_status'; +import UserAvatar from '../edit_user_avatar/edit_user_avatar'; -const styles = { - bigAvatar: { - width: 130, - height: 130 - }, - avatarDelete: { - textTransform: 'none', - width: 130 - } -}; +const styles = theme => ({}); -const genericUserData = (props) => { +const genericUserData = (props) => { /** * @const {array} selectedUser @@ -50,138 +36,32 @@ const genericUserData = (props) => { -
- {selectedUser[0].avatar - - ?
- - -
- : - - } -
-
- -
- { selectedUser[0].accessstatus - - ? - { accountStatusVariations.length !== 0 - - ? accountStatusVariations.map((option, index) => { - if (index !== 0) { - return ( - - - {option} - - ) - } else { - return null - } - }) - : null - } - - : null - } - -
+ +
+ + + Personal Information -
- { - selectedUser[0].firstname - ? - : null - - } -
- -
- { - selectedUser[0].lastname - ? - : null - } -
- -
- { - selectedUser[0].username - ? - : null - } -
- -
- -
+
- Contact Information @@ -194,6 +74,7 @@ const genericUserData = (props) => { onHandleActiveEditContactInfo={onHandleActiveEditContactInfo} handleDeleteContact={handleDeleteContact} handleEditContact={handleEditContact} /> + { ) } -genericUserData.propTypes = { - // classes: PropTypes.object.isRequired, - // selectedUser: PropTypes.array.isRequired -}; +// genericUserData.propTypes = { +// classes: PropTypes.object.isRequired, +// selectedUser: PropTypes.array.isRequired +// }; export default withStyles(styles)(genericUserData); \ No newline at end of file diff --git a/src/components/edit_user/personal_info/personal_info.js b/src/components/edit_user/personal_info/personal_info.js new file mode 100644 index 0000000..f40fa0a --- /dev/null +++ b/src/components/edit_user/personal_info/personal_info.js @@ -0,0 +1,85 @@ +import React, { Fragment } from 'react'; +import { withStyles } from "@material-ui/core/styles"; +// import classNames from "classnames"; +import TextField from "@material-ui/core/TextField"; + +const styles = theme => ({}); + +const PersonalInfo = (props) => { + + const { parentState, classes, selectedUser, onHandleChange } = props; + + return ( + + +
+ { + selectedUser[0].firstname + ? + : null + + } +
+ +
+ { + selectedUser[0].lastname + ? + : null + } +
+ +
+ { + selectedUser[0].username + ? + : null + } +
+ +
+ +
+ +
+ ) +} + +export default withStyles(styles)(PersonalInfo); \ No newline at end of file -- GitLab From 08e88a2e46f184da427c09034e4268803de5a06c Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Fri, 9 Nov 2018 18:00:32 +0200 Subject: [PATCH 153/249] NY-4634 hiding the not necessary columns from the tool panel --- src/components/dashboard_users/css/index.css | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/components/dashboard_users/css/index.css b/src/components/dashboard_users/css/index.css index 05085b6..e0cba3b 100644 --- a/src/components/dashboard_users/css/index.css +++ b/src/components/dashboard_users/css/index.css @@ -75,4 +75,10 @@ } .account-name { top: -5px +} + +.ag-primary-cols-list-panel .ag-column-tool-panel-column:nth-child(2), +.ag-primary-cols-list-panel .ag-column-tool-panel-column:nth-child(5), +.ag-primary-cols-list-panel .ag-column-tool-panel-column:nth-child(14) { + display: none; } \ No newline at end of file -- GitLab From dee200a5bc01863314b87b7949754120b2e88db0 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Fri, 9 Nov 2018 18:04:48 +0200 Subject: [PATCH 154/249] Minor changes --- src/components/edit_user/contact_info/phone_control.js | 1 - src/components/edit_user/edit_user_avatar/edit_user_avatar.js | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/components/edit_user/contact_info/phone_control.js b/src/components/edit_user/contact_info/phone_control.js index ada3422..bba5c23 100644 --- a/src/components/edit_user/contact_info/phone_control.js +++ b/src/components/edit_user/contact_info/phone_control.js @@ -8,7 +8,6 @@ import InputAdornment from "@material-ui/core/InputAdornment"; import AccountCircle from "@material-ui/icons/AccountCircle"; import Input from "@material-ui/core/Input"; import InputLabel from "@material-ui/core/InputLabel"; -import FormHelperText from "@material-ui/core/FormHelperText"; import ContactInfoControlOptions from './contact_info_control_options'; diff --git a/src/components/edit_user/edit_user_avatar/edit_user_avatar.js b/src/components/edit_user/edit_user_avatar/edit_user_avatar.js index 0447765..3efc9be 100644 --- a/src/components/edit_user/edit_user_avatar/edit_user_avatar.js +++ b/src/components/edit_user/edit_user_avatar/edit_user_avatar.js @@ -1,4 +1,4 @@ -import React, { Fragment } from "react"; +import React from "react"; import { withStyles } from "@material-ui/core/styles"; import classNames from "classnames"; -- GitLab From ea9761cfa317ac166d6b796e41f6ae3b711dec8a Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Mon, 12 Nov 2018 10:18:28 +0200 Subject: [PATCH 155/249] NY-5198 --- .../access_status/access_status.js | 2 +- .../contact_info_control_options.js | 0 .../contact_info/phone_control.js | 0 .../contact_info/text_control.js | 2 +- .../edit_user_avatar/edit_user_avatar.js | 0 .../edit_user/generic_data/index.js | 12 ++++++------ .../personal_info/personal_info.js | 0 src/components/edit_user/index.js | 7 +++++++ .../edit_user/tabs_navigation/index.js | 19 +++++++++++++++++++ .../tabs_navigation/tab_navigation.css | 0 10 files changed, 34 insertions(+), 8 deletions(-) rename src/components/edit_user/{ => generic_data}/access_status/access_status.js (92%) rename src/components/edit_user/{ => generic_data}/contact_info/contact_info_control_options.js (100%) rename src/components/edit_user/{ => generic_data}/contact_info/phone_control.js (100%) rename src/components/edit_user/{ => generic_data}/contact_info/text_control.js (90%) rename src/components/edit_user/{ => generic_data}/edit_user_avatar/edit_user_avatar.js (100%) rename src/components/edit_user/{ => generic_data}/personal_info/personal_info.js (100%) create mode 100644 src/components/edit_user/tabs_navigation/index.js create mode 100644 src/components/edit_user/tabs_navigation/tab_navigation.css diff --git a/src/components/edit_user/access_status/access_status.js b/src/components/edit_user/generic_data/access_status/access_status.js similarity index 92% rename from src/components/edit_user/access_status/access_status.js rename to src/components/edit_user/generic_data/access_status/access_status.js index 47070fe..3154fea 100644 --- a/src/components/edit_user/access_status/access_status.js +++ b/src/components/edit_user/generic_data/access_status/access_status.js @@ -4,7 +4,7 @@ import { withStyles } from "@material-ui/core/styles"; import TextField from "@material-ui/core/TextField"; import MenuItem from "@material-ui/core/MenuItem"; -import { accountStatusVariations } from "../../../utils/services/accounts"; +import { accountStatusVariations } from "../../../../utils/services/accounts"; const styles = theme => ({}); diff --git a/src/components/edit_user/contact_info/contact_info_control_options.js b/src/components/edit_user/generic_data/contact_info/contact_info_control_options.js similarity index 100% rename from src/components/edit_user/contact_info/contact_info_control_options.js rename to src/components/edit_user/generic_data/contact_info/contact_info_control_options.js diff --git a/src/components/edit_user/contact_info/phone_control.js b/src/components/edit_user/generic_data/contact_info/phone_control.js similarity index 100% rename from src/components/edit_user/contact_info/phone_control.js rename to src/components/edit_user/generic_data/contact_info/phone_control.js diff --git a/src/components/edit_user/contact_info/text_control.js b/src/components/edit_user/generic_data/contact_info/text_control.js similarity index 90% rename from src/components/edit_user/contact_info/text_control.js rename to src/components/edit_user/generic_data/contact_info/text_control.js index 1b1084b..694e1e8 100644 --- a/src/components/edit_user/contact_info/text_control.js +++ b/src/components/edit_user/generic_data/contact_info/text_control.js @@ -6,7 +6,7 @@ import { withStyles } from "@material-ui/core/styles"; import InputAdornment from "@material-ui/core/InputAdornment"; import AccountCircle from "@material-ui/icons/AccountCircle"; import TextField from "@material-ui/core/TextField"; -import ContactInfoControlOptions from '../contact_info/contact_info_control_options'; +import ContactInfoControlOptions from './contact_info_control_options'; const styles = theme => ({}); diff --git a/src/components/edit_user/edit_user_avatar/edit_user_avatar.js b/src/components/edit_user/generic_data/edit_user_avatar/edit_user_avatar.js similarity index 100% rename from src/components/edit_user/edit_user_avatar/edit_user_avatar.js rename to src/components/edit_user/generic_data/edit_user_avatar/edit_user_avatar.js diff --git a/src/components/edit_user/generic_data/index.js b/src/components/edit_user/generic_data/index.js index 57953d9..c57240d 100644 --- a/src/components/edit_user/generic_data/index.js +++ b/src/components/edit_user/generic_data/index.js @@ -7,11 +7,11 @@ import Card from "@material-ui/core/Card"; import CardContent from "@material-ui/core/CardContent"; import Typography from "@material-ui/core/Typography"; -import PhoneControl from '../contact_info/phone_control'; -import TextControl from "../contact_info/text_control"; -import PersonalInfo from '../personal_info/personal_info'; -import AccessStatus from '../access_status/access_status'; -import UserAvatar from '../edit_user_avatar/edit_user_avatar'; +import PhoneControl from './contact_info/phone_control'; +import TextControl from "./contact_info/text_control"; +import PersonalInfo from './personal_info/personal_info'; +import AccessStatus from './access_status/access_status'; +import UserAvatar from './edit_user_avatar/edit_user_avatar'; const styles = theme => ({}); @@ -68,7 +68,7 @@ const genericUserData = (props) => { + + + + {/* diff --git a/src/components/edit_user/tabs_navigation/index.js b/src/components/edit_user/tabs_navigation/index.js new file mode 100644 index 0000000..57a436d --- /dev/null +++ b/src/components/edit_user/tabs_navigation/index.js @@ -0,0 +1,19 @@ +import React, { Component, Fragment } from "react"; +import './tab_navigation.css'; + +class TabsNavigation extends Component { + + render() { + + return ( + + + Tab navigation + + + ); + + } +} + +export default TabsNavigation; \ No newline at end of file diff --git a/src/components/edit_user/tabs_navigation/tab_navigation.css b/src/components/edit_user/tabs_navigation/tab_navigation.css new file mode 100644 index 0000000..e69de29 -- GitLab From 620e3779fe88e8b0b54809194a2bafe8838da61b Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Mon, 12 Nov 2018 11:59:18 +0200 Subject: [PATCH 156/249] NY-4634 complete switch from mock data to server side data and code maintenance --- src/components/dashboard_users/actions.js | 16 - src/components/dashboard_users/index.js | 26 +- src/components/dashboard_users/middleware.js | 28 +- src/components/dashboard_users/reducer.js | 19 +- src/components/header_bar/index.js | 2 +- src/store/root_middleware/index.js | 7 +- src/utils/api/_DATA.js | 2340 ----------------- src/utils/helpers/avatar_insertion.js | 9 + .../{services => helpers}/more_options.js | 0 .../ag_grid_server_model.js} | 16 +- src/utils/services/avatar_insertion.js | 6 - 11 files changed, 35 insertions(+), 2434 deletions(-) delete mode 100644 src/utils/api/_DATA.js create mode 100644 src/utils/helpers/avatar_insertion.js rename src/utils/{services => helpers}/more_options.js (100%) rename src/utils/{api/index.js => services/ag_grid_server_model.js} (93%) delete mode 100644 src/utils/services/avatar_insertion.js diff --git a/src/components/dashboard_users/actions.js b/src/components/dashboard_users/actions.js index f7d176b..0dd0d47 100644 --- a/src/components/dashboard_users/actions.js +++ b/src/components/dashboard_users/actions.js @@ -1,6 +1,4 @@ export const GET_USERS = 'GET_USERS'; -export const DELIVER_USERS = 'DELIVER_USERS'; -export const FAIL_USERS = 'FAIL_USERS'; export const PAGE_SIZE_UPDATE = 'PAGE_SIZE_UPDATE'; export function getUsers() { @@ -9,23 +7,9 @@ export function getUsers() { } } -export function failUsers(error) { - return { - type: FAIL_USERS, - error - } -} - export function PageSizeUpdate(pageSize) { return { type: PAGE_SIZE_UPDATE, pageSize } -} - -export function deliverUsersPayload(users) { - return { - type: DELIVER_USERS, - users - } } \ No newline at end of file diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 249cebb..1eb8318 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -10,7 +10,7 @@ import Paging from './paging/paging'; import * as PropTypes from 'prop-types'; import * as actions from './actions'; -import { dataSource } from './../../utils/api/' +import { dataSource } from './../../utils/services/ag_grid_server_model.js' import "./css/index.css"; import "./../../../node_modules/ag-grid-community/dist/styles/ag-grid.css"; @@ -26,14 +26,9 @@ class DashboardUsers extends Component { totalRowsNumber: 0 } - /** - * on componentDidMount - * { getUsers } dispatches and action in order to get - * the users from the API - */ - componentDidMount() { + componentDidiMount = () => { this.props.getUsers(); - }; + } /** * AG-Grid API communication init @@ -59,10 +54,6 @@ class DashboardUsers extends Component { // }) // }) - // TODO: remove after server side is completely integrated - // this.setState({ - // totalPageNumber: Number(this.gridApi.paginationGetTotalPages()) - // }); }; /** @@ -100,10 +91,6 @@ class DashboardUsers extends Component { const value = e.target.value; this.gridApi.paginationSetPageSize(Number(value)); this.props.PageSizeUpdate(Number(value)); - // TODO: remove after server side model is completely integrated - // this.setState({ - // totalPageNumber: Number(this.gridApi.paginationGetTotalPages()) - // }); }; onPaginationChanged = () => { @@ -170,7 +157,6 @@ class DashboardUsers extends Component { render() { /** - * @const {array} users * @const {array} coldef * @const {bool} loading * @const {bool} error @@ -182,11 +168,11 @@ class DashboardUsers extends Component { * @const {number} totalPageNumber * @const {number} currentPageNumber */ - const { users, coldef, loading, rowSelection, paginationPageSize, selectOptions, sideBar, rowModelType } = this.props; + const { coldef, loading, rowSelection, paginationPageSize, selectOptions, sideBar, rowModelType } = this.props; const { isDisableFirst, isDisableLast, totalPageNumber, currentPageNumber, totalRowsNumber } = this.state; let content = null; - if (users.length === 0 && loading) { + if (loading) { content = } else { @@ -248,7 +234,6 @@ DashboardUsers.contextTypes = { }; DashboardUsers.propTypes = { - users: PropTypes.array.isRequired, coldef: PropTypes.array.isRequired, loading: PropTypes.bool.isRequired, error: PropTypes.bool, @@ -263,7 +248,6 @@ DashboardUsers.propTypes = { const mapStateToProps = (state) => { return { - users: state.users.usersData, coldef: state.users.coldef, loading: state.users.loading, error: state.error.error, diff --git a/src/components/dashboard_users/middleware.js b/src/components/dashboard_users/middleware.js index e23425f..e23c2a5 100644 --- a/src/components/dashboard_users/middleware.js +++ b/src/components/dashboard_users/middleware.js @@ -1,21 +1,17 @@ -import { call, put } from 'redux-saga/effects'; -import { _getUsers } from './../../utils/api'; -import { deliverUsersPayload } from './actions'; -import { failUsers } from './../../hoc/error_handler/actions'; +// import { call, put } from 'redux-saga/effects'; +// import { deliverUsersPayload } from './actions'; +// import { failUsers } from './../../hoc/error_handler/actions'; /** * API call saga */ -export function* getUsers() { - try { +// export function* getUsers() { +// try { - // const getError = (state) => state.error - // const error = yield select(getError); - - const payloadArray = yield call(_getUsers); - yield put(deliverUsersPayload(payloadArray)); - } - catch(error) { - yield put(failUsers(error)); - } -} \ No newline at end of file +// const payloadArray = yield call(_getUsers); +// yield put(deliverUsersPayload(payloadArray)); +// } +// catch(error) { +// yield put(failUsers(error)); +// } +// } \ No newline at end of file diff --git a/src/components/dashboard_users/reducer.js b/src/components/dashboard_users/reducer.js index d2dba59..0acc0fc 100644 --- a/src/components/dashboard_users/reducer.js +++ b/src/components/dashboard_users/reducer.js @@ -1,15 +1,13 @@ -import { GET_USERS, DELIVER_USERS, PAGE_SIZE_UPDATE} from './actions'; +import { GET_USERS, PAGE_SIZE_UPDATE} from './actions'; import { updateObject } from '../../hoc/update-object/update-object'; -import userAvatar from '../../utils/services/avatar_insertion'; -import moreOptions from '../../utils/services/more_options'; +import userAvatar from '../../utils/helpers/avatar_insertion'; /** * AG-Grid initial column definitions, row empty data, loading and error flags */ const initialState = { - usersData: [], coldef: [ - {headerName: "Avatar", hide: false, field: "avatar", filter: 'agTextColumnFilter', cellRenderer: "agGroupCellRenderer", cellRendererParams: { innerRenderer: userAvatar } }, + {headerName: "Avatar", width: 150, hide: false, field: "avatar", suppressFilter: true, cellRenderer: "agGroupCellRenderer", cellRendererParams: { innerRenderer: userAvatar } }, {headerName: "Account ID", hide: true, field: "accountid", filter: 'agTextColumnFilter' }, {headerName: "Username", hide: false, field: "username", filter: 'agTextColumnFilter' }, {headerName: "Roles List", hide: false, field: "rolesList", filter: 'agTextColumnFilter' }, @@ -60,16 +58,6 @@ const getUsers = (state, action) => { }) }; -const deliverUsers = (state, action) => { - - const { users } = action; - - return updateObject(state, { - usersData: users, - loading: false - }) -}; - const pageSizeUpdate = (state, action) => { return updateObject(state, { @@ -82,7 +70,6 @@ export default function users(state = initialState, action) { switch(action.type) { case GET_USERS: return getUsers(state, action); - case DELIVER_USERS: return deliverUsers(state, action); case PAGE_SIZE_UPDATE: return pageSizeUpdate(state, action); default: return state; diff --git a/src/components/header_bar/index.js b/src/components/header_bar/index.js index d03b157..510115e 100644 --- a/src/components/header_bar/index.js +++ b/src/components/header_bar/index.js @@ -28,7 +28,7 @@ class HeaderBar extends Component { * @const {string} firstName * @const {string} lastName */ - const { firstName, lastName, error } = this.props; + const { firstName, lastName } = this.props; return ( diff --git a/src/store/root_middleware/index.js b/src/store/root_middleware/index.js index 7535188..fa21acb 100644 --- a/src/store/root_middleware/index.js +++ b/src/store/root_middleware/index.js @@ -4,9 +4,6 @@ import { all, takeEvery } from 'redux-saga/effects'; import logger from './logger'; -import { GET_USERS } from './../../components/dashboard_users/actions'; -import { getUsers } from './../../components/dashboard_users/middleware'; - import { UPDATE_USER_DATA_CATEGORY_X, GET_SELECTED_USER_ID } from './../../components/edit_user/actions'; import { updateUserDataName, getSelectedUserId} from './../../components/edit_user/middleware'; @@ -22,8 +19,8 @@ export default composeEnhancers(applyMiddleware(sagaMiddleware)); export function* combineSagas() { yield all ( [ - // logger(), - takeEvery(GET_USERS, getUsers), + logger(), + // takeEvery(GET_USERS, getUsers), takeEvery(GET_AUTH_USER, getAuthedUser), takeEvery(GET_SELECTED_USER_ID, getSelectedUserId), takeEvery(UPDATE_USER_DATA_CATEGORY_X, updateUserDataName) diff --git a/src/utils/api/_DATA.js b/src/utils/api/_DATA.js deleted file mode 100644 index bb51596..0000000 --- a/src/utils/api/_DATA.js +++ /dev/null @@ -1,2340 +0,0 @@ -export const users = [ - { - accountId: '9c53d554-5a57-4298-b93d-b3b2d83a08ea', - profileId: '9c53d554-5a57-4298-b93d-b3b2d83a08ea', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '259654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-e', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'admin', - firstName: 'Jane', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-z' - }, - { - accountId: '3159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-a', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'owner', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'blocked', - qrCode: '456951789', - communicationProviders: 'vendor-c' - }, - { - accountId: '1549654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '1595654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '1569654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '1597654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '1596547585', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '1599654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '1596504755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '1529654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '1595654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '7159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '1259654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '1596954755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '1596154755', - profileId: '951753852', - authenticationIdentifier: 'vendor-e', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'admin', - firstName: 'Jane', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-z' - }, - { - accountId: '1596542755', - profileId: '951753852', - authenticationIdentifier: 'vendor-a', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'owner', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'blocked', - qrCode: '456951789', - communicationProviders: 'vendor-c' - }, - { - accountId: '1539654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '1596544755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '1596545755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '1596564755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '1579654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '1599654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '1596540755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-e', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'admin', - firstName: 'Jane', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-z' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-a', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'owner', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'blocked', - qrCode: '456951789', - communicationProviders: 'vendor-c' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-e', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'admin', - firstName: 'Jane', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-z' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-a', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'owner', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'blocked', - qrCode: '456951789', - communicationProviders: 'vendor-c' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-e', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'admin', - firstName: 'Jane', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-z' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-a', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'owner', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'blocked', - qrCode: '456951789', - communicationProviders: 'vendor-c' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-e', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'admin', - firstName: 'Jane', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-z' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-a', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'owner', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'blocked', - qrCode: '456951789', - communicationProviders: 'vendor-c' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-e', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'admin', - firstName: 'Jane', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-z' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-a', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'owner', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'blocked', - qrCode: '456951789', - communicationProviders: 'vendor-c' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-e', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'admin', - firstName: 'Jane', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-z' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-a', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'owner', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'blocked', - qrCode: '456951789', - communicationProviders: 'vendor-c' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-e', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'admin', - firstName: 'Jane', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-z' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-a', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'owner', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'blocked', - qrCode: '456951789', - communicationProviders: 'vendor-c' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-e', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'admin', - firstName: 'Jane', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-z' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-a', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'owner', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'blocked', - qrCode: '456951789', - communicationProviders: 'vendor-c' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-e', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'admin', - firstName: 'Jane', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-z' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-a', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'owner', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'blocked', - qrCode: '456951789', - communicationProviders: 'vendor-c' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-e', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'admin', - firstName: 'Jane', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-z' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-a', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'owner', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'blocked', - qrCode: '456951789', - communicationProviders: 'vendor-c' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'Email', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - }, - { - accountId: '159654755', - profileId: '951753852', - authenticationIdentifier: 'vendor-x', - authenticationType: 'OAuth', - avatar: 'https://raw.githubusercontent.com/Ashwinvalento/cartoon-avatar/master/lib/images/female/68.png', - accountMark: 'random-mark', - accountName: 'user', - firstName: 'John', - lastName: 'Doe', - accountStatus: 'active', - qrCode: '456951789', - communicationProviders: 'vendor-y' - } -] \ No newline at end of file diff --git a/src/utils/helpers/avatar_insertion.js b/src/utils/helpers/avatar_insertion.js new file mode 100644 index 0000000..9d4d22f --- /dev/null +++ b/src/utils/helpers/avatar_insertion.js @@ -0,0 +1,9 @@ +const userAvatar = (params) => { + + const avatar = params.value ? `${params.value}` + : `` + debugger + return avatar ? avatar : null; +}; + +export default userAvatar; \ No newline at end of file diff --git a/src/utils/services/more_options.js b/src/utils/helpers/more_options.js similarity index 100% rename from src/utils/services/more_options.js rename to src/utils/helpers/more_options.js diff --git a/src/utils/api/index.js b/src/utils/services/ag_grid_server_model.js similarity index 93% rename from src/utils/api/index.js rename to src/utils/services/ag_grid_server_model.js index 4085f39..c452cae 100644 --- a/src/utils/api/index.js +++ b/src/utils/services/ag_grid_server_model.js @@ -1,17 +1,7 @@ -import { users } from './_DATA'; import { getAllAccountsGrpcRequest, getCountOfAllAccountsGrpcRequest } from './../services/admin_account'; import { accountStatusVariations, accountRoleVariations } from './../services/accounts' -export function _getUsers() { - return new Promise((res, rej) => { - setTimeout(() => res(users), 1000) - }) -} - -function ServerSideDatasource(fakeServer) { - this.fakeServer = fakeServer; - -} +function ServerSideDatasource() {} /** * @param {object} params @@ -166,5 +156,5 @@ FakeServer.prototype.filterList = function(data, filterModel) { return resultOfFilter; }; -var fakeserverInstance = new FakeServer(users); -export const dataSource = new ServerSideDatasource(fakeserverInstance); \ No newline at end of file +// var fakeserverInstance = new FakeServer(users); +export const dataSource = new ServerSideDatasource(); \ No newline at end of file diff --git a/src/utils/services/avatar_insertion.js b/src/utils/services/avatar_insertion.js deleted file mode 100644 index cfd75b3..0000000 --- a/src/utils/services/avatar_insertion.js +++ /dev/null @@ -1,6 +0,0 @@ -const userAvatar = (params) => { - const avatar = `${params.value}`; - return avatar ? avatar : null; -}; - -export default userAvatar; \ No newline at end of file -- GitLab From 36e733f5bf023716577d007ec170bb7bab9494ee Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Mon, 12 Nov 2018 13:49:09 +0200 Subject: [PATCH 157/249] NY-4607 handling login error, initial setup --- src/App.js | 16 +++++++++++- src/components/header_bar/index.js | 6 ++--- src/components/header_bar/middleware.js | 26 ++++++++++++------- src/hoc/error_handler/actions.js | 8 ++++++ src/hoc/error_handler/reducer.js | 13 ++++++++-- src/store/root_actions/auth.js | 15 +++++++++++ src/store/root_middleware/auth.js | 28 +++++++++++++++++++++ src/store/root_middleware/index.js | 4 +-- src/store/root_reducers/auth.js | 20 +++++++++++++++ src/store/root_reducers/index.js | 2 +- src/utils/helpers/avatar_insertion.js | 1 - src/utils/localstorage/configure_persist.js | 2 +- src/utils/services/auth.js | 3 +-- 13 files changed, 122 insertions(+), 22 deletions(-) create mode 100644 src/store/root_actions/auth.js create mode 100644 src/store/root_middleware/auth.js create mode 100644 src/store/root_reducers/auth.js diff --git a/src/App.js b/src/App.js index f72068c..91b6242 100644 --- a/src/App.js +++ b/src/App.js @@ -2,6 +2,7 @@ import React, { Component, Fragment } from 'react'; import { BrowserRouter as Router, Route, Switch } from 'react-router-dom'; import PropTypes from "prop-types"; import { connect } from 'react-redux'; +import { bindActionCreators } from 'redux'; import { withStyles } from "@material-ui/core/styles"; import Grid from '@material-ui/core/Grid'; @@ -14,6 +15,8 @@ import Sidebar from './components/sidebar'; import HeaderBar from './components/header_bar'; import ErrorHandler from './hoc/error_handler/' +import * as actions from './store/root_actions/auth'; + /** * @const {object} styles coming from Material UI will go here */ @@ -25,6 +28,10 @@ class App extends Component { leftSideNav: false }; + componentDidMount() { + this.props.getAuthedUser(); + } + /** * { sideBarToggleHandler } toggling function * checks state.leftSideNav bool and toggles it @@ -99,4 +106,11 @@ function mapStateToProps({error}) { } } -export default withStyles(styles)(connect(mapStateToProps)(App)); \ No newline at end of file +const mapDispatchToProps = (dispatch) => { + + return bindActionCreators({ + ...actions + }, dispatch) + } + +export default withStyles(styles)(connect(mapStateToProps, mapDispatchToProps)(App)); \ No newline at end of file diff --git a/src/components/header_bar/index.js b/src/components/header_bar/index.js index 510115e..24f4358 100644 --- a/src/components/header_bar/index.js +++ b/src/components/header_bar/index.js @@ -16,9 +16,9 @@ import * as actions from './actions' const styles = {}; class HeaderBar extends Component { - componentDidMount() { - this.props.getAuthedUser(); - } + // componentDidMount() { + // this.props.getAuthedUser(); + // } render() { diff --git a/src/components/header_bar/middleware.js b/src/components/header_bar/middleware.js index d3ac2f2..11c8ece 100644 --- a/src/components/header_bar/middleware.js +++ b/src/components/header_bar/middleware.js @@ -2,19 +2,27 @@ import { call, put } from 'redux-saga/effects'; import { accountByAccountIdGrpcRequest } from './../../utils/services/accounts'; import { generateTokenResponceGrpcRequest } from './../../utils/services/auth'; import { deliverAuthedUser } from './actions'; -import { failUsers } from './../../hoc/error_handler/actions'; +import { failedAuth } from './../../hoc/error_handler/actions'; export function* getAuthedUser() { try { - const accessToken = localStorage.getItem('token') - const loggedInAccountId = yield call(generateTokenResponceGrpcRequest, accessToken); - const payload = yield call(accountByAccountIdGrpcRequest, loggedInAccountId); - yield put(deliverAuthedUser({ - ...payload, - accessToken - })) + const accessToken = localStorage.getItem('token'); + + if (accessToken) { + const loggedInAccountId = yield call(generateTokenResponceGrpcRequest, accessToken); + const payload = yield call(accountByAccountIdGrpcRequest, loggedInAccountId); + + yield put(deliverAuthedUser({ + ...payload, + accessToken + })) + } else { + + yield put(failedAuth()); + } + } catch (error) { - yield put(failUsers(error)); + yield put(failedAuth()); } } \ No newline at end of file diff --git a/src/hoc/error_handler/actions.js b/src/hoc/error_handler/actions.js index 6a98293..f740f14 100644 --- a/src/hoc/error_handler/actions.js +++ b/src/hoc/error_handler/actions.js @@ -1,6 +1,7 @@ export const GLOBAL_ERROR = 'GLOBAL_ERROR'; export const FAIL_USERS = 'FAIL_USERS'; export const REMOVE_ERROR = 'REMOVE_ERROR'; +export const FAILED_AUTH = 'FAILED_AUTH'; export function globalError(errorMessage) { @@ -23,4 +24,11 @@ export function removeError() { return { type: REMOVE_ERROR } +} + +export function failedAuth() { + + return { + type: FAILED_AUTH + } } \ No newline at end of file diff --git a/src/hoc/error_handler/reducer.js b/src/hoc/error_handler/reducer.js index 0e412b4..62b2772 100644 --- a/src/hoc/error_handler/reducer.js +++ b/src/hoc/error_handler/reducer.js @@ -1,8 +1,9 @@ -import { GLOBAL_ERROR, FAIL_USERS, REMOVE_ERROR } from './actions'; +import { GLOBAL_ERROR, FAIL_USERS, REMOVE_ERROR, FAILED_AUTH } from './actions'; import { updateObject } from './../update-object/update-object'; const initialState = { - error: false + error: false, + failedAuth: false }; const globalError = (state, action) => { @@ -25,6 +26,13 @@ const removeError = (state, action) => { }) } +const failedAuth = (state, action) => { + return updateObject (state, { + error: true, + failedAuth: true + }) +} + export default function error(state = initialState, action) { switch(action.type) { @@ -32,6 +40,7 @@ export default function error(state = initialState, action) { case GLOBAL_ERROR: return globalError(state, action); case FAIL_USERS: return failUsers(state, action); case REMOVE_ERROR: return removeError(state, action); + case FAILED_AUTH: return failedAuth(state, action); default: return state; } diff --git a/src/store/root_actions/auth.js b/src/store/root_actions/auth.js new file mode 100644 index 0000000..d32f789 --- /dev/null +++ b/src/store/root_actions/auth.js @@ -0,0 +1,15 @@ +export const GET_AUTH_USER = "GET_AUTH_USER"; +export const DELIVER_AUTH_USER = "DELIVER_AUTH_USER"; + +export function getAuthedUser(){ + return { + type: GET_AUTH_USER + } +} + +export function deliverAuthedUser(authedUser){ + return { + type: DELIVER_AUTH_USER, + authedUser + } +} \ No newline at end of file diff --git a/src/store/root_middleware/auth.js b/src/store/root_middleware/auth.js new file mode 100644 index 0000000..ca687d1 --- /dev/null +++ b/src/store/root_middleware/auth.js @@ -0,0 +1,28 @@ +import { call, put } from 'redux-saga/effects'; +import { accountByAccountIdGrpcRequest } from './../../utils/services/accounts'; +import { generateTokenResponceGrpcRequest } from './../../utils/services/auth'; +import { deliverAuthedUser } from './../root_actions/auth'; +import { failedAuth } from './../../hoc/error_handler/actions'; + +export function* getAuthedUser() { + try { + const accessToken = localStorage.getItem('token'); + + if (accessToken) { + const loggedInAccountId = yield call(generateTokenResponceGrpcRequest, accessToken); + const payload = yield call(accountByAccountIdGrpcRequest, loggedInAccountId); + + yield put(deliverAuthedUser({ + ...payload, + accessToken + })) + } else { + + yield put(failedAuth()); + } + + } + catch (error) { + yield put(failedAuth()); + } +} \ No newline at end of file diff --git a/src/store/root_middleware/index.js b/src/store/root_middleware/index.js index fa21acb..e9bdbde 100644 --- a/src/store/root_middleware/index.js +++ b/src/store/root_middleware/index.js @@ -7,8 +7,8 @@ import logger from './logger'; import { UPDATE_USER_DATA_CATEGORY_X, GET_SELECTED_USER_ID } from './../../components/edit_user/actions'; import { updateUserDataName, getSelectedUserId} from './../../components/edit_user/middleware'; -import { GET_AUTH_USER } from './../../components/header_bar/actions'; -import { getAuthedUser } from './../../components/header_bar/middleware'; +import { GET_AUTH_USER } from './../root_actions/auth'; +import { getAuthedUser } from './auth'; const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose; diff --git a/src/store/root_reducers/auth.js b/src/store/root_reducers/auth.js new file mode 100644 index 0000000..59f64ec --- /dev/null +++ b/src/store/root_reducers/auth.js @@ -0,0 +1,20 @@ +import { DELIVER_AUTH_USER } from './../root_actions/auth'; +import { updateObject } from '../../hoc/update-object/update-object'; + +const initialState = {} + +const deliverAuthUser = (state, action) => { + const { authedUser } = action; + + return updateObject(state, { + ...authedUser + }) +} + +export default function authedUser(state = initialState, action) { + switch(action.type) { + case DELIVER_AUTH_USER: return deliverAuthUser(state, action) + + default: return state + } +} \ No newline at end of file diff --git a/src/store/root_reducers/index.js b/src/store/root_reducers/index.js index 1997269..094cee1 100644 --- a/src/store/root_reducers/index.js +++ b/src/store/root_reducers/index.js @@ -3,7 +3,7 @@ import { persistReducer } from "redux-persist"; import users from './../../components/dashboard_users/reducer'; import editUser from './../../components/edit_user/reducer'; -import authedUser from './../../components/header_bar/reducer'; +import authedUser from './auth'; import error from './../../hoc/error_handler/reducer'; import { usersPersistConfig } from '../../utils/localstorage/configure_persist'; diff --git a/src/utils/helpers/avatar_insertion.js b/src/utils/helpers/avatar_insertion.js index 9d4d22f..714bcba 100644 --- a/src/utils/helpers/avatar_insertion.js +++ b/src/utils/helpers/avatar_insertion.js @@ -2,7 +2,6 @@ const userAvatar = (params) => { const avatar = params.value ? `${params.value}` : `` - debugger return avatar ? avatar : null; }; diff --git a/src/utils/localstorage/configure_persist.js b/src/utils/localstorage/configure_persist.js index b1baec5..7be5f01 100644 --- a/src/utils/localstorage/configure_persist.js +++ b/src/utils/localstorage/configure_persist.js @@ -5,7 +5,7 @@ const persistConfig = { key: "root", storage, stateReconciler: autoMergeLevel1, - blacklist: ["users", "editUser", "error", 'authedUser'] + blacklist: ["users", "editUser", "error", "authedUser"] }; export const usersPersistConfig = { diff --git a/src/utils/services/auth.js b/src/utils/services/auth.js index 211dde9..4aaec69 100644 --- a/src/utils/services/auth.js +++ b/src/utils/services/auth.js @@ -14,10 +14,9 @@ export function generateTokenResponceGrpcRequest(token){ return new Promise((resolve, reject) => { authenticationServiceClient.generateAdminAccessToken(generateAccessTokenRequest, {'Content-type': 'application/grpc-web+proto', 'accessToken': token}, (error, response) => { - + debugger if (response) { if (response.tokenresponsedetails){ - let tokenDecoded = response.tokenresponsedetails.token.split(/[.]/); let containsAccountIdDecoded = JSON.parse(b64DecodeUnicode(tokenDecoded[1])); -- GitLab From 8e3f4356196e773ae3174faf606a5587d64d24a5 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Mon, 12 Nov 2018 13:51:22 +0200 Subject: [PATCH 158/249] NY-5276 --- src/components/edit_user/edit_user.css | 4 -- .../modal_content/delete_modal.js | 26 +++++++++++ .../contact_info/phone_control.js | 3 +- .../delete_avatar_modal/avatar_modal.js | 26 +++++++++++ .../edit_user/generic_data/index.js | 45 ++++++++++++------- src/components/edit_user/index.js | 29 ++++++------ src/components/shared/ui/modal/modal.css | 6 +++ src/utils/helpers/avatar_insertion.js | 4 +- 8 files changed, 103 insertions(+), 40 deletions(-) create mode 100644 src/components/edit_user/generic_data/contact_info/modal_content/delete_modal.js create mode 100644 src/components/edit_user/generic_data/edit_user_avatar/delete_avatar_modal/avatar_modal.js diff --git a/src/components/edit_user/edit_user.css b/src/components/edit_user/edit_user.css index 12f3f3c..e69de29 100644 --- a/src/components/edit_user/edit_user.css +++ b/src/components/edit_user/edit_user.css @@ -1,4 +0,0 @@ -.avatar-alert-delete { - padding: 20px; - max-width: 500px; -} \ No newline at end of file diff --git a/src/components/edit_user/generic_data/contact_info/modal_content/delete_modal.js b/src/components/edit_user/generic_data/contact_info/modal_content/delete_modal.js new file mode 100644 index 0000000..cfb29b4 --- /dev/null +++ b/src/components/edit_user/generic_data/contact_info/modal_content/delete_modal.js @@ -0,0 +1,26 @@ +import React from "react"; +import { withStyles } from "@material-ui/core/styles"; +import Button from "@material-ui/core/Button"; + +const styles = {}; + +const ContactInfoDeleteModal = (props) => { + const { handleModalConfirmedCancel, controlLabel, classes } = props; + + return ( +
+

Delete {controlLabel}

+
+

Do you want to delete user's {controlLabel} from contact information?

+ +
+ + +
+ +
+
+ ); +} + +export default withStyles(styles)(ContactInfoDeleteModal); \ No newline at end of file diff --git a/src/components/edit_user/generic_data/contact_info/phone_control.js b/src/components/edit_user/generic_data/contact_info/phone_control.js index bba5c23..d470040 100644 --- a/src/components/edit_user/generic_data/contact_info/phone_control.js +++ b/src/components/edit_user/generic_data/contact_info/phone_control.js @@ -15,7 +15,7 @@ const styles = theme => ({}); const PhoneControl = (props) => { - const { classes, phoneLabel, id, onHandleCloseContactInfo, onHandleActiveEditContactInfo, parentState, handleDeleteContact, handleEditContact } = props; + const { classes, phoneLabel, id, onHandleCloseContactInfo, onHandleActiveEditContactInfo, parentState, handleDeleteContact, handleEditContact, controlValue } = props; return (
@@ -26,6 +26,7 @@ const PhoneControl = (props) => { id={id} type="number" disabled + value={controlValue} startAdornment={ diff --git a/src/components/edit_user/generic_data/edit_user_avatar/delete_avatar_modal/avatar_modal.js b/src/components/edit_user/generic_data/edit_user_avatar/delete_avatar_modal/avatar_modal.js new file mode 100644 index 0000000..624bf78 --- /dev/null +++ b/src/components/edit_user/generic_data/edit_user_avatar/delete_avatar_modal/avatar_modal.js @@ -0,0 +1,26 @@ +import React from "react"; +import { withStyles } from "@material-ui/core/styles"; +import Button from "@material-ui/core/Button"; + +const styles = {}; + +const AvatarContentModal = (props) => { + const { handleModalConfirmedCancel, classes } = props; + + return ( +
+

Delete Avatar

+
+

Do you want to delete user's Avatar?

+ +
+ + +
+ +
+
+ ); +} + +export default withStyles(styles)(AvatarContentModal); \ No newline at end of file diff --git a/src/components/edit_user/generic_data/index.js b/src/components/edit_user/generic_data/index.js index c57240d..c13deea 100644 --- a/src/components/edit_user/generic_data/index.js +++ b/src/components/edit_user/generic_data/index.js @@ -25,6 +25,9 @@ const genericUserData = (props) => { const { selectedUser, classes, onHandleChange, parentState, modalAlertDeleteAvatar, onHandleCloseContactInfo, onHandleActiveEditContactInfo, handleDeleteContact, handleEditContact } = props; + console.log('===================================='); + console.log(selectedUser); + console.log('===================================='); return ( @@ -65,23 +68,31 @@ const genericUserData = (props) => { Contact Information - - - - + { + selectedUser[0].authenticationtype === "PHONE" && selectedUser[0].authenticationtype !== '' + ? + : selectedUser[0].authenticationtype !== "PHONE" && selectedUser[0].authenticationtype !== '' + ? + : null + } diff --git a/src/components/edit_user/index.js b/src/components/edit_user/index.js index af6ad0c..dd45ff1 100644 --- a/src/components/edit_user/index.js +++ b/src/components/edit_user/index.js @@ -9,6 +9,9 @@ import GenericData from './generic_data'; import ProfileTools from './profile_tools/index'; import TabsNavigation from './tabs_navigation/index'; +import AvatarContentModal from './generic_data/edit_user_avatar/delete_avatar_modal/avatar_modal'; +import ContactInfoDeleteModal from './generic_data/contact_info/modal_content/delete_modal'; + // import Categories from './categories'; // import AvailableData from './available_data'; // import UpdateData from './update_data'; @@ -16,7 +19,6 @@ import TabsNavigation from './tabs_navigation/index'; import { withStyles } from "@material-ui/core/styles"; import Modal from "../shared/ui/modal/modal"; import Grid from '@material-ui/core/Grid'; -import Button from "@material-ui/core/Button"; import './edit_user.css'; const styles = theme => ({}) @@ -37,11 +39,11 @@ class EditUser extends Component{ anchorEl: null } - } + }; componentDidMount(){ this.props.getSelectedUserId(this.props.match.params.id); - } + }; componentDidUpdate() { @@ -55,7 +57,7 @@ class EditUser extends Component{ valuesStates: false }); } - } + }; updateUserDataCategoryX = (dataCategoryEdit) => { const userId = this.props.selectedUser[0].accountId; @@ -88,6 +90,7 @@ class EditUser extends Component{ }; handleAvatarAlertDelete = () => this.setState({ openModal: true }); + handleContactInfoDelete = () => this.setState({ openModal: true }); handleModalConfirmedCancel = () => this.setState({ openModal: false }); onHandleActiveEditContactInfo = event =>this.setState({ anchorEl: event.currentTarget }); @@ -95,9 +98,11 @@ class EditUser extends Component{ handleDeleteContact = () => { this.handleCloseContactInfo(); + this.handleContactInfoDelete(); console.log('===================================='); console.log('DELETE CONTACT INFO'); console.log('===================================='); + }; handleEditContact = () => { this.handleCloseContactInfo(); @@ -143,18 +148,10 @@ class EditUser extends Component{ /> -
-

Delete Avatar

-
-

Do you want to delete user's Avatar?

- -
- - -
- -
-
+ +
+ + diff --git a/src/components/shared/ui/modal/modal.css b/src/components/shared/ui/modal/modal.css index 92798ca..aa7f042 100644 --- a/src/components/shared/ui/modal/modal.css +++ b/src/components/shared/ui/modal/modal.css @@ -32,4 +32,10 @@ .modal-control-btn button { color: #0086f8; font-weight: 700; +} + +.avatar-alert-delete, +.contact-alert-delete { + padding: 20px; + max-width: 500px; } \ No newline at end of file diff --git a/src/utils/helpers/avatar_insertion.js b/src/utils/helpers/avatar_insertion.js index 9d4d22f..cc87b73 100644 --- a/src/utils/helpers/avatar_insertion.js +++ b/src/utils/helpers/avatar_insertion.js @@ -1,8 +1,8 @@ const userAvatar = (params) => { - + const avatar = params.value ? `${params.value}` : `` - debugger + return avatar ? avatar : null; }; -- GitLab From cbd365fd6c24cb6fc6b857df4fddccbf7fac45bc Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Mon, 12 Nov 2018 13:55:34 +0200 Subject: [PATCH 159/249] removing debugger --- src/utils/services/auth.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/services/auth.js b/src/utils/services/auth.js index 4aaec69..c93bf1a 100644 --- a/src/utils/services/auth.js +++ b/src/utils/services/auth.js @@ -14,7 +14,7 @@ export function generateTokenResponceGrpcRequest(token){ return new Promise((resolve, reject) => { authenticationServiceClient.generateAdminAccessToken(generateAccessTokenRequest, {'Content-type': 'application/grpc-web+proto', 'accessToken': token}, (error, response) => { - debugger + if (response) { if (response.tokenresponsedetails){ let tokenDecoded = response.tokenresponsedetails.token.split(/[.]/); -- GitLab From 05629009d71bd8398c380a8674fc1e0535b2f2cf Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Mon, 12 Nov 2018 16:55:41 +0200 Subject: [PATCH 160/249] NY-5276 --- src/components/edit_user/index.js | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/src/components/edit_user/index.js b/src/components/edit_user/index.js index dd45ff1..0f7f215 100644 --- a/src/components/edit_user/index.js +++ b/src/components/edit_user/index.js @@ -33,6 +33,7 @@ class EditUser extends Component{ userName: '', userBirthday: '2017-05-24', accountStatus:'', + controlsType: '', isUpdated: false, valuesStates: true, openModal: false, @@ -93,10 +94,19 @@ class EditUser extends Component{ handleContactInfoDelete = () => this.setState({ openModal: true }); handleModalConfirmedCancel = () => this.setState({ openModal: false }); - onHandleActiveEditContactInfo = event =>this.setState({ anchorEl: event.currentTarget }); + onHandleActiveEditContactInfo = event => { + this.setState({ anchorEl: event.currentTarget }); + } handleCloseContactInfo = () => this.setState({ anchorEl: null }); - handleDeleteContact = () => { + handleDeleteContact = (authenticationType) => { + console.log(authenticationType); + + if (authenticationType !== this.state.controlsType) { + this.setState({ + controlsType: authenticationType + }); + } this.handleCloseContactInfo(); this.handleContactInfoDelete(); console.log('===================================='); @@ -124,8 +134,9 @@ class EditUser extends Component{ console.log(this.state); console.log('===================================='); + const { classes, coldef, selectedUser, error } = this.props; - const { openModal, isUpdated } = this.state; + const { openModal, isUpdated, controlsType } = this.state; const { url, path } = this.props.match; return( @@ -135,7 +146,7 @@ class EditUser extends Component{ - + this.handleDeleteContact(selectedUser[0].authenticationtype)} handleEditContact={this.handleEditContact} /> @@ -151,10 +162,10 @@ class EditUser extends Component{ - + - + -- GitLab From ad2984fc718b564359b825e1b2f8ce0591328b6b Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Mon, 12 Nov 2018 16:55:54 +0200 Subject: [PATCH 161/249] NY-5276 --- .../contact_info/phone_control.js | 60 ++++++++++--------- .../generic_data/contact_info/text_control.js | 55 +++++++++-------- .../edit_user/generic_data/index.js | 8 ++- 3 files changed, 67 insertions(+), 56 deletions(-) diff --git a/src/components/edit_user/generic_data/contact_info/phone_control.js b/src/components/edit_user/generic_data/contact_info/phone_control.js index d470040..b8c4016 100644 --- a/src/components/edit_user/generic_data/contact_info/phone_control.js +++ b/src/components/edit_user/generic_data/contact_info/phone_control.js @@ -15,37 +15,41 @@ const styles = theme => ({}); const PhoneControl = (props) => { - const { classes, phoneLabel, id, onHandleCloseContactInfo, onHandleActiveEditContactInfo, parentState, handleDeleteContact, handleEditContact, controlValue } = props; + const { classes, phoneLabel, id, onHandleCloseContactInfo, onHandleActiveEditContactInfo, parentState, + handleDeleteContact, handleEditContact, controlValue, authenticationtype } = props; return (
- - - {phoneLabel} - - - - } - endAdornment={ - - } - - /> - - + { + controlValue && controlValue !== '' + + ? + {phoneLabel} + + + + } + endAdornment={ + + } + + /> + + : null + }
); diff --git a/src/components/edit_user/generic_data/contact_info/text_control.js b/src/components/edit_user/generic_data/contact_info/text_control.js index 694e1e8..70fc3bb 100644 --- a/src/components/edit_user/generic_data/contact_info/text_control.js +++ b/src/components/edit_user/generic_data/contact_info/text_control.js @@ -12,34 +12,39 @@ const styles = theme => ({}); const TextControl = (props) => { - const { classes, id, handleDeleteContact, handleEditContact, parentState, onHandleCloseContactInfo, onHandleActiveEditContactInfo } = props; + const { classes, id, handleDeleteContact, handleEditContact, parentState, onHandleCloseContactInfo, onHandleActiveEditContactInfo, controlValue, authenticationtype } = props; return (
- - - - ), - endAdornment:( - - ), - }} - margin="normal" - fullWidth - /> + { + controlValue && controlValue !== '' + ? + + + ), + endAdornment:( + + ), + }} + margin="normal" + fullWidth + /> + : null + }
); }; diff --git a/src/components/edit_user/generic_data/index.js b/src/components/edit_user/generic_data/index.js index c13deea..b272a03 100644 --- a/src/components/edit_user/generic_data/index.js +++ b/src/components/edit_user/generic_data/index.js @@ -25,9 +25,9 @@ const genericUserData = (props) => { const { selectedUser, classes, onHandleChange, parentState, modalAlertDeleteAvatar, onHandleCloseContactInfo, onHandleActiveEditContactInfo, handleDeleteContact, handleEditContact } = props; - console.log('===================================='); - console.log(selectedUser); - console.log('===================================='); + // console.log('===================================='); + // console.log(selectedUser); + // console.log('===================================='); return ( @@ -90,6 +90,8 @@ const genericUserData = (props) => { handleDeleteContact={handleDeleteContact} handleEditContact={handleEditContact} authenticationtype={selectedUser[0].authenticationtype} + controlValue={selectedUser[0].authenticationidentifier} + /> : null } -- GitLab From 9510606113cc076c5e1fc467e8b5a3aea4cd080c Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Mon, 12 Nov 2018 18:09:54 +0200 Subject: [PATCH 162/249] NY-5276 --- .../generic_data/user_profile_model.js | 34 +++++++++++++++ src/components/edit_user/index.js | 43 ++++++++++++++----- .../edit_user/profile_tools/index.js | 11 ++--- 3 files changed, 69 insertions(+), 19 deletions(-) create mode 100644 src/components/edit_user/generic_data/user_profile_model.js diff --git a/src/components/edit_user/generic_data/user_profile_model.js b/src/components/edit_user/generic_data/user_profile_model.js new file mode 100644 index 0000000..44a9a47 --- /dev/null +++ b/src/components/edit_user/generic_data/user_profile_model.js @@ -0,0 +1,34 @@ +class UserProfileModel { + + constructor(_firstName) { + this._isUpdated = false; + this._firstName = _firstName; + this._oldFirstName = _firstName; + } + + get firstName() { + return this._firstName; + } + + set firstName(val) { + //this._oldFirstName = this._firstName; + this._firstName = val; + this._isUpdated = true; + } + + get isUpdated() { + + if (this._firstName === this._oldFirstName) { + return false; + } + + return this._isUpdated; + } + + validateUserName() { + + } + +} + +export default UserProfileModel; \ No newline at end of file diff --git a/src/components/edit_user/index.js b/src/components/edit_user/index.js index 0f7f215..bfbcdb4 100644 --- a/src/components/edit_user/index.js +++ b/src/components/edit_user/index.js @@ -11,6 +11,7 @@ import TabsNavigation from './tabs_navigation/index'; import AvatarContentModal from './generic_data/edit_user_avatar/delete_avatar_modal/avatar_modal'; import ContactInfoDeleteModal from './generic_data/contact_info/modal_content/delete_modal'; +import UserProfileModel from './generic_data/user_profile_model'; // import Categories from './categories'; // import AvailableData from './available_data'; @@ -22,12 +23,12 @@ import Grid from '@material-ui/core/Grid'; import './edit_user.css'; const styles = theme => ({}) - class EditUser extends Component{ constructor(props) { super(props); this.state = { + profileUserModel: new UserProfileModel(''), firstName: '', lastName: '', userName: '', @@ -50,13 +51,17 @@ class EditUser extends Component{ if (this.state.valuesStates && this.props.selectedUser[0].firstname !== undefined) { + let userProfileModel = new UserProfileModel( this.props.selectedUser[0].firstname ); + this.setState({ + profileUserModel: userProfileModel, firstName: this.props.selectedUser[0].firstname, lastName: this.props.selectedUser[0].lastname, userName: this.props.selectedUser[0].username, accountStatus: this.props.selectedUser[0].accessstatus, valuesStates: false }); + } }; @@ -74,19 +79,35 @@ class EditUser extends Component{ handleChange = (e) => { - if (!this.state.isUpdated) { + // let newProfileUserModel = { + // ...this.state.profileUserModel + // }; - this.setState({ - [e.target.name]: e.target.value, - isUpdated: true + let newProfileUserModel = Object.assign(Object.create(Object.getPrototypeOf(this.state.profileUserModel)), this.state.profileUserModel); - }); - } else { + newProfileUserModel[e.target.name] = e.target.value; - this.setState({ - [e.target.name]: e.target.value, - }); - } + this.setState({ + [e.target.name]: e.target.value, + profileUserModel: newProfileUserModel + }); + + // if (!this.state.isUpdated) { + + // console.log(this.state.profileUserModel); + + // this.setState({ + // [e.target.name]: e.target.value, + // profileUserModel: newProfileUserModel, + // isUpdated: true + + // }); + // } else { + + // this.setState({ + // [e.target.name]: e.target.value, + // }); + // } }; diff --git a/src/components/edit_user/profile_tools/index.js b/src/components/edit_user/profile_tools/index.js index 94b8f2c..5df45e0 100644 --- a/src/components/edit_user/profile_tools/index.js +++ b/src/components/edit_user/profile_tools/index.js @@ -38,16 +38,11 @@ const styles = { class ProfileTools extends Component { - componentDidMount() { - if (this.props.isUpdatedFormControls) { - window.onbeforeunload = () => true; - } else { - window.onbeforeunload = undefined; - } - }; - handelBackToPreviousState = () => { this.props.goBack(); + console.log('===================================='); + console.log('ACCESS'); + console.log('===================================='); }; render() { -- GitLab From 37b4132928291ba4ccaf47e3dea2a8a8b320f249 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Mon, 12 Nov 2018 18:17:52 +0200 Subject: [PATCH 163/249] NY-5303 building tab navigation and manage user initial UI --- .../edit_user/tabs_navigation/index.js | 68 +++++++++++++++-- .../tabs_navigation/manage_user/index.js | 73 +++++++++++++++++++ 2 files changed, 136 insertions(+), 5 deletions(-) create mode 100644 src/components/edit_user/tabs_navigation/manage_user/index.js diff --git a/src/components/edit_user/tabs_navigation/index.js b/src/components/edit_user/tabs_navigation/index.js index 57a436d..228720f 100644 --- a/src/components/edit_user/tabs_navigation/index.js +++ b/src/components/edit_user/tabs_navigation/index.js @@ -1,19 +1,77 @@ -import React, { Component, Fragment } from "react"; +import React, { Component } from "react"; +import PropTypes from 'prop-types'; + +import { withStyles } from '@material-ui/core/styles'; +import Paper from '@material-ui/core/Paper'; +import Tabs from '@material-ui/core/Tabs'; +import Tab from '@material-ui/core/Tab'; + +import ManageUser from './manage_user'; + import './tab_navigation.css'; +const styles = theme => ({ + root: { + flexGrow: 1, + width: '100%' + }, + tabsIndicator: { + backgroundColor: '#1890ff', + }, + tabRoot: { + fontSize: 18 + }, + tabSelected: { + color: '#1890ff' + } +}); + class TabsNavigation extends Component { + state = { + value: 2 + } + + handleChange = (event, value) => { + this.setState({ value }); + }; + render() { + + const { classes } = this.props; + const { value } = this.state; return ( - - Tab navigation - +
+
+ + + + + + + + + {value === 0 &&
login options lives here
} + {value === 1 &&
2 some ephing shit
} + {value === 2 && } +
+
+
); } } -export default TabsNavigation; \ No newline at end of file +TabsNavigation.propTypes = { + classes: PropTypes.object.isRequired, +} + +export default withStyles(styles)(TabsNavigation); \ No newline at end of file diff --git a/src/components/edit_user/tabs_navigation/manage_user/index.js b/src/components/edit_user/tabs_navigation/manage_user/index.js new file mode 100644 index 0000000..00a1548 --- /dev/null +++ b/src/components/edit_user/tabs_navigation/manage_user/index.js @@ -0,0 +1,73 @@ +import React, { Component, Fragment } from "react"; +import PropTypes from 'prop-types'; + +import { withStyles } from '@material-ui/core/styles'; +import ListSubheader from '@material-ui/core/ListSubheader'; +import List from '@material-ui/core/List'; +import ListItem from '@material-ui/core/ListItem'; +import ListItemText from '@material-ui/core/ListItemText'; +import Collapse from '@material-ui/core/Collapse'; +import ChevronRight from '@material-ui/icons/ChevronRight'; +import Grid from '@material-ui/core/Grid'; +import FormControlLabel from '@material-ui/core/FormControlLabel'; +import Switch from '@material-ui/core/Switch'; + +const styles = theme => ({ + root: {} +}); + +class ManageUser extends Component{ + + state = { + open: true, + selectedIndex: 0, + checkedA: true + }; + + handleChange = name => event => { + this.setState({ [name]: event.target.checked }); + }; + + handleClick = () => { + this.setState(state => ({ open: !state.open })); + }; + + render(){ + + return( + + + + + + + + + + + + + + } + /> + + + + ) + } +} + +ManageUser.propTypes = { + classes: PropTypes.object.isRequired, +}; + + +export default withStyles(styles)(ManageUser); \ No newline at end of file -- GitLab From f1d2111d845d2525d45a75b77457ac3f434db355 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Tue, 13 Nov 2018 10:49:49 +0200 Subject: [PATCH 164/249] NY-4634 dashboard showing only available required data --- src/components/dashboard_users/css/index.css | 4 +--- src/components/dashboard_users/index.js | 1 + src/components/dashboard_users/reducer.js | 22 ++++++++++---------- 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/src/components/dashboard_users/css/index.css b/src/components/dashboard_users/css/index.css index e0cba3b..3efb911 100644 --- a/src/components/dashboard_users/css/index.css +++ b/src/components/dashboard_users/css/index.css @@ -77,8 +77,6 @@ top: -5px } -.ag-primary-cols-list-panel .ag-column-tool-panel-column:nth-child(2), -.ag-primary-cols-list-panel .ag-column-tool-panel-column:nth-child(5), -.ag-primary-cols-list-panel .ag-column-tool-panel-column:nth-child(14) { +.ag-primary-cols-list-panel .ag-column-tool-panel-column:nth-child(n + 7) { display: none; } \ No newline at end of file diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 1eb8318..a118042 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -37,6 +37,7 @@ class DashboardUsers extends Component { this.gridApi = params.api; this.columnApi = params.columnApi; this.gridApi.setServerSideDatasource(dataSource); + this.gridApi.sizeColumnsToFit(); // early stage of server side model // presentation filtering on the client side diff --git a/src/components/dashboard_users/reducer.js b/src/components/dashboard_users/reducer.js index 0acc0fc..a80f742 100644 --- a/src/components/dashboard_users/reducer.js +++ b/src/components/dashboard_users/reducer.js @@ -7,21 +7,21 @@ import userAvatar from '../../utils/helpers/avatar_insertion'; */ const initialState = { coldef: [ - {headerName: "Avatar", width: 150, hide: false, field: "avatar", suppressFilter: true, cellRenderer: "agGroupCellRenderer", cellRendererParams: { innerRenderer: userAvatar } }, - {headerName: "Account ID", hide: true, field: "accountid", filter: 'agTextColumnFilter' }, + {headerName: "Avatar", width: 150, hide: false, field: "avatar", suppressFilter: true, suppressSizeToFit: true, cellRenderer: "agGroupCellRenderer", cellRendererParams: { innerRenderer: userAvatar } }, + {headerName: "First name", hide: false, field: "firstname", filter: 'agTextColumnFilter' }, + {headerName: "Last name", hide: false, field: "lastname", filter: 'agTextColumnFilter' }, {headerName: "Username", hide: false, field: "username", filter: 'agTextColumnFilter' }, - {headerName: "Roles List", hide: false, field: "rolesList", filter: 'agTextColumnFilter' }, - {headerName: "Profile ID", hide: true, field: "profileid", filter: 'agTextColumnFilter' }, {headerName: "Authentication Identifier", hide: false, field: "authenticationidentifier", filter: 'agTextColumnFilter' }, - {headerName: "Authentication Type", hide: false, field: "authenticationtype", filter: 'agTextColumnFilter' }, - {headerName: "Account Mark", hide: false, field: "accountmark", filter: 'agTextColumnFilter' }, - {headerName: "Account Name", hide: false, field: "accountname", filter: 'agTextColumnFilter'}, - {headerName: "Firstname", hide: false, field: "firstname", filter: 'agTextColumnFilter' }, - {headerName: "Lastname", hide: false, field: "lastname", filter: 'agTextColumnFilter' }, {headerName: "Access Status", hide: false, field: "accessstatus", filter: 'agTextColumnFilter' }, - {headerName: "Birthday", hide: false, field: "birthday", filter: 'agTextColumnFilter' }, + {headerName: "Contacts Info List", hide: true, field: "contactsinfoList", filter: 'agTextColumnFilter' }, + {headerName: "Account ID", hide: true, field: "accountid", filter: 'agTextColumnFilter' }, + {headerName: "Roles List", hide: true, field: "rolesList", filter: 'agTextColumnFilter' }, + {headerName: "Profile ID", hide: true, field: "profileid", filter: 'agTextColumnFilter' }, + {headerName: "Authentication Type", hide: true, field: "authenticationtype", filter: 'agTextColumnFilter' }, + {headerName: "Account Mark", hide: true, field: "accountmark", filter: 'agTextColumnFilter' }, + {headerName: "Account Name", hide: true, field: "accountname", filter: 'agTextColumnFilter'}, + {headerName: "Birthday", hide: true, field: "birthday", filter: 'agTextColumnFilter' }, {headerName: "QR code", hide: true, field: "qrcode", filter: 'agTextColumnFilter' }, - {headerName: "Contacts Info List", hide: false, field: "contactsinfoList", filter: 'agTextColumnFilter' }, ], sideBar: { toolPanels: [ -- GitLab From 329537f88b4e921d0a8ce743462e94c5bfd7a8bb Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Tue, 13 Nov 2018 13:43:55 +0200 Subject: [PATCH 165/249] NY-5317 manage user role UI and API get logic --- src/components/edit_user/actions.js | 7 +++ src/components/edit_user/reducer.js | 31 ++++++---- .../tabs_navigation/manage_user/index.js | 59 +++++++++++++++---- 3 files changed, 71 insertions(+), 26 deletions(-) diff --git a/src/components/edit_user/actions.js b/src/components/edit_user/actions.js index 879a440..eb3882c 100644 --- a/src/components/edit_user/actions.js +++ b/src/components/edit_user/actions.js @@ -2,6 +2,7 @@ export const GET_SELECTED_USER_ID = "GET_SELECTED_USER_ID"; export const DELIVER_SELECTED_USER_DATA = "DELIVER_SELECTED_USER_DATA"; export const UPDATE_USER_DATA_CATEGORY_X = "UPDATE_USER_DATA_CATEGORY_X"; export const DELIVER_UPDATE_USER_DATA_CATEGORY_X = "DELIVER_UPDATE_USER_DATA_CATEGORY_X"; +export const CLEAR_SELECTED_USER_DATA = "CLEAR_SELECTED_USER_DATA"; export function getSelectedUserId(userId) { return { @@ -17,6 +18,12 @@ export function deliverSelectedUserData(payload) { } } +export function clearSelectedUserData() { + return { + type: CLEAR_SELECTED_USER_DATA + } +} + export function updateUserDataName(updateDetails) { return { type: UPDATE_USER_DATA_CATEGORY_X, diff --git a/src/components/edit_user/reducer.js b/src/components/edit_user/reducer.js index 52f611f..ac525cf 100644 --- a/src/components/edit_user/reducer.js +++ b/src/components/edit_user/reducer.js @@ -1,4 +1,4 @@ -import { DELIVER_UPDATE_USER_DATA_CATEGORY_X, DELIVER_SELECTED_USER_DATA } from './actions'; +import { DELIVER_UPDATE_USER_DATA_CATEGORY_X, DELIVER_SELECTED_USER_DATA, CLEAR_SELECTED_USER_DATA } from './actions'; import { updateObject } from '../../hoc/update-object/update-object'; const initialState = {}; @@ -13,20 +13,24 @@ const deliverSelectedUserData = (state, action) => { const updateUserCategoryX = (state, action) => { - const { newValue, category, id } = action; - const userIndex = state.usersData.findIndex(item => item.accountId === id); - - state.usersData[userIndex] = Object.defineProperties(state.usersData[userIndex], { - [category]: { - value: newValue, - writable: true - } - }) - - return { - ...state + const { newValue, category, id } = action; + const userIndex = state.usersData.findIndex(item => item.accountId === id); + + state.usersData[userIndex] = Object.defineProperties(state.usersData[userIndex], { + [category]: { + value: newValue, + writable: true } + }) + + return { + ...state } +} + +const clearSelectedUserData = (state, action) => { + return initialState +} export default function editUser(state = initialState, action) { @@ -34,6 +38,7 @@ export default function editUser(state = initialState, action) { case DELIVER_SELECTED_USER_DATA: return deliverSelectedUserData(state, action); case DELIVER_UPDATE_USER_DATA_CATEGORY_X: return updateUserCategoryX(state, action); + case CLEAR_SELECTED_USER_DATA: return clearSelectedUserData(state, action); default: return state; } diff --git a/src/components/edit_user/tabs_navigation/manage_user/index.js b/src/components/edit_user/tabs_navigation/manage_user/index.js index 00a1548..9ca8cef 100644 --- a/src/components/edit_user/tabs_navigation/manage_user/index.js +++ b/src/components/edit_user/tabs_navigation/manage_user/index.js @@ -1,4 +1,5 @@ import React, { Component, Fragment } from "react"; +import { connect } from 'react-redux'; import PropTypes from 'prop-types'; import { withStyles } from '@material-ui/core/styles'; @@ -21,19 +22,43 @@ class ManageUser extends Component{ state = { open: true, selectedIndex: 0, - checkedA: true + roleAdmin: null }; handleChange = name => event => { this.setState({ [name]: event.target.checked }); + + // TODO: make a call to user profile model }; handleClick = () => { this.setState(state => ({ open: !state.open })); }; + componentDidMount(){ + + if (this.state.roleAdmin === null && this.props.selectedUser[0].rolesList) { + + let roleAdminBool = this.props.selectedUser[0].rolesList === "ADMIN" ? true : false; + this.setState({roleAdmin: roleAdminBool}) + + } + } + + componentDidUpdate(){ + + if (this.state.roleAdmin === null && this.props.selectedUser[0].rolesList) { + + let roleAdminBool = this.props.selectedUser[0].rolesList === "ADMIN" ? true : false; + this.setState({roleAdmin: roleAdminBool}) + + } + } + render(){ + const { roleAdmin } = this.state; + return( @@ -47,17 +72,20 @@ class ManageUser extends Component{ - - } - /> + { + roleAdmin !== null && + + } + /> + } @@ -69,5 +97,10 @@ ManageUser.propTypes = { classes: PropTypes.object.isRequired, }; +function mapStateToProps({ editUser }, { match }){ + return { + selectedUser: [editUser] + } +} -export default withStyles(styles)(ManageUser); \ No newline at end of file +export default withStyles(styles)(connect(mapStateToProps)(ManageUser)); \ No newline at end of file -- GitLab From c2ec2ea2f0e0efe761b7b01ee141ac72067e1452 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Tue, 13 Nov 2018 13:55:14 +0200 Subject: [PATCH 166/249] NY-5318 --- .../access_status/access_status.js | 5 +- .../personal_info/personal_info.js | 38 +++++----- .../generic_data/user_profile_model.js | 69 ++++++++++++++++++- src/components/edit_user/index.js | 35 ++++++---- 4 files changed, 110 insertions(+), 37 deletions(-) diff --git a/src/components/edit_user/generic_data/access_status/access_status.js b/src/components/edit_user/generic_data/access_status/access_status.js index 3154fea..6f551bc 100644 --- a/src/components/edit_user/generic_data/access_status/access_status.js +++ b/src/components/edit_user/generic_data/access_status/access_status.js @@ -1,6 +1,5 @@ import React from "react"; import { withStyles } from "@material-ui/core/styles"; -// import classNames from "classnames"; import TextField from "@material-ui/core/TextField"; import MenuItem from "@material-ui/core/MenuItem"; @@ -15,14 +14,14 @@ const AccessStatus = (props) => { return (
- {selectedUser[0].accessstatus + {selectedUser[0].accessstatus && parentState.profileUserModel.accountStatus ? {
{ - selectedUser[0].firstname + selectedUser[0].firstname && parentState.profileUserModel.firstName ? {
{ - selectedUser[0].lastname + selectedUser[0].lastname && parentState.profileUserModel.lastName ? {
{ - selectedUser[0].username + selectedUser[0].username && parentState.profileUserModel.userName ? {
- + { + selectedUser[0].birthday && parentState.profileUserModel.userBirthday + ? + : null + }
diff --git a/src/components/edit_user/generic_data/user_profile_model.js b/src/components/edit_user/generic_data/user_profile_model.js index 44a9a47..8dafcf6 100644 --- a/src/components/edit_user/generic_data/user_profile_model.js +++ b/src/components/edit_user/generic_data/user_profile_model.js @@ -1,11 +1,27 @@ class UserProfileModel { - constructor(_firstName) { + constructor(_firstName, _lastName, _userName, _accountStatus, _userBirthday) { this._isUpdated = false; + this._firstName = _firstName; this._oldFirstName = _firstName; + + this._lastName = _lastName; + this._oldLastName = _lastName; + + this._userName = _userName; + this._oldUserName = _userName; + + this._accountStatus = _accountStatus; + this._oldAccountStatus = _accountStatus; + + this._userBirthday = _userBirthday; + this._oldUserBirthday = _userBirthday; } + /* + * First Name + */ get firstName() { return this._firstName; } @@ -16,9 +32,58 @@ class UserProfileModel { this._isUpdated = true; } + /* + * Last Name + */ + get lastName() { + return this._lastName; + } + + set lastName(val) { + this._lastName = val; + this._isUpdated = true; + } + + /* + * Username + */ + get userName() { + return this._userName; + } + + set userName(val) { + this._userName = val; + this._isUpdated = true; + } + + /* + * Account Status / Access Status + */ + get accountStatus() { + return this._accountStatus; + } + + set accountStatus(val) { + this._accountStatus = val; + this._isUpdated = true; + } + + /* + * User Birthday + */ + get userBirthday() { + return this._userBirthday; + } + + set userBirthday(val) { + this._userBirthday = val; + this._isUpdated = true; + } + get isUpdated() { - if (this._firstName === this._oldFirstName) { + if (this._firstName === this._oldFirstName && this._lastName === this._oldLastName && this._userName === this._oldUserName && + this._accountStatus === this._oldAccountStatus && this._userBirthday === this._oldUserBirthday) { return false; } diff --git a/src/components/edit_user/index.js b/src/components/edit_user/index.js index bfbcdb4..dc253b3 100644 --- a/src/components/edit_user/index.js +++ b/src/components/edit_user/index.js @@ -29,11 +29,7 @@ class EditUser extends Component{ this.state = { profileUserModel: new UserProfileModel(''), - firstName: '', - lastName: '', - userName: '', - userBirthday: '2017-05-24', - accountStatus:'', + controlsType: '', isUpdated: false, valuesStates: true, @@ -47,18 +43,30 @@ class EditUser extends Component{ this.props.getSelectedUserId(this.props.match.params.id); }; + componentWillUnmount() { + this.props.clearSelectedUserData(); + }; + componentDidUpdate() { + let newBirthday = null; + + if (this.props.selectedUser[0].birthday && this.props.selectedUser[0].birthday.year) { + newBirthday = `${this.props.selectedUser[0].birthday.year}-${this.props.selectedUser[0].birthday.month}-${this.props.selectedUser[0].birthday.day}`; + } if (this.state.valuesStates && this.props.selectedUser[0].firstname !== undefined) { - let userProfileModel = new UserProfileModel( this.props.selectedUser[0].firstname ); + let userProfileModel = new UserProfileModel( + this.props.selectedUser[0].firstname, + this.props.selectedUser[0].lastname, + this.props.selectedUser[0].username, + this.props.selectedUser[0].accessstatus, + newBirthday + ); + this.setState({ profileUserModel: userProfileModel, - firstName: this.props.selectedUser[0].firstname, - lastName: this.props.selectedUser[0].lastname, - userName: this.props.selectedUser[0].username, - accountStatus: this.props.selectedUser[0].accessstatus, valuesStates: false }); @@ -79,9 +87,6 @@ class EditUser extends Component{ handleChange = (e) => { - // let newProfileUserModel = { - // ...this.state.profileUserModel - // }; let newProfileUserModel = Object.assign(Object.create(Object.getPrototypeOf(this.state.profileUserModel)), this.state.profileUserModel); @@ -156,9 +161,9 @@ class EditUser extends Component{ console.log('===================================='); - const { classes, coldef, selectedUser, error } = this.props; + const { classes, coldef, selectedUser } = this.props; const { openModal, isUpdated, controlsType } = this.state; - const { url, path } = this.props.match; + // const { url, path } = this.props.match; return( -- GitLab From b21234faf99a52531ad51b428fc399f966ff9816 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Tue, 13 Nov 2018 14:43:30 +0200 Subject: [PATCH 167/249] NY-5318 --- .../generic_data/personal_info/personal_info.js | 7 ++++++- .../edit_user/generic_data/user_profile_model.js | 12 ++++++++++-- src/components/edit_user/index.js | 8 ++++---- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/src/components/edit_user/generic_data/personal_info/personal_info.js b/src/components/edit_user/generic_data/personal_info/personal_info.js index ee0f360..91e95ad 100644 --- a/src/components/edit_user/generic_data/personal_info/personal_info.js +++ b/src/components/edit_user/generic_data/personal_info/personal_info.js @@ -7,8 +7,13 @@ const styles = theme => ({}); const PersonalInfo = (props) => { + let newBirthday = null; const { parentState, classes, selectedUser, onHandleChange } = props; + if (parentState.profileUserModel.userBirthday && parentState.profileUserModel.userBirthday.year) { + newBirthday = `${parentState.profileUserModel.userBirthday.year}-${parentState.profileUserModel.userBirthday.month}-${parentState.profileUserModel.userBirthday.day}`; + } + return ( @@ -73,7 +78,7 @@ const PersonalInfo = (props) => { className={classes.textField} name="userBirthday" type="date" - value={parentState.profileUserModel.userBirthday} + value={newBirthday} onChange={onHandleChange} margin="normal" fullWidth diff --git a/src/components/edit_user/generic_data/user_profile_model.js b/src/components/edit_user/generic_data/user_profile_model.js index 8dafcf6..2e77e67 100644 --- a/src/components/edit_user/generic_data/user_profile_model.js +++ b/src/components/edit_user/generic_data/user_profile_model.js @@ -76,14 +76,22 @@ class UserProfileModel { } set userBirthday(val) { - this._userBirthday = val; + let newBirthdayArray = val.split(/[-]/); + this._userBirthday = { + year: Number(newBirthdayArray[0]), + month: Number(newBirthdayArray[1]), + day: Number(newBirthdayArray[2]), + }; this._isUpdated = true; } get isUpdated() { + let _newBirthdayString = `${this._userBirthday.year}-${ this._userBirthday.month}-${ this._userBirthday.day}`; + let _oldBirthdayString = `${this._oldUserBirthday.year}-${ this._oldUserBirthday.month}-${ this._oldUserBirthday.day}`; + if (this._firstName === this._oldFirstName && this._lastName === this._oldLastName && this._userName === this._oldUserName && - this._accountStatus === this._oldAccountStatus && this._userBirthday === this._oldUserBirthday) { + this._accountStatus === this._oldAccountStatus && _newBirthdayString === _oldBirthdayString) { return false; } diff --git a/src/components/edit_user/index.js b/src/components/edit_user/index.js index dc253b3..5c01f0f 100644 --- a/src/components/edit_user/index.js +++ b/src/components/edit_user/index.js @@ -50,9 +50,9 @@ class EditUser extends Component{ componentDidUpdate() { let newBirthday = null; - if (this.props.selectedUser[0].birthday && this.props.selectedUser[0].birthday.year) { - newBirthday = `${this.props.selectedUser[0].birthday.year}-${this.props.selectedUser[0].birthday.month}-${this.props.selectedUser[0].birthday.day}`; - } + // if (this.props.selectedUser[0].birthday && this.props.selectedUser[0].birthday.year) { + // newBirthday = `${this.props.selectedUser[0].birthday.year}-${this.props.selectedUser[0].birthday.month}-${this.props.selectedUser[0].birthday.day}`; + // } if (this.state.valuesStates && this.props.selectedUser[0].firstname !== undefined) { @@ -61,7 +61,7 @@ class EditUser extends Component{ this.props.selectedUser[0].lastname, this.props.selectedUser[0].username, this.props.selectedUser[0].accessstatus, - newBirthday + {...this.props.selectedUser[0].birthday} ); -- GitLab From 0dccbbdb1f65b248e9df353185a52c0349c76d1a Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Tue, 13 Nov 2018 14:50:01 +0200 Subject: [PATCH 168/249] Minor changes --- .../contact_info/phone_control.js | 4 +-- .../generic_data/contact_info/text_control.js | 2 +- src/components/edit_user/index.js | 31 +++++++------------ .../edit_user/profile_tools/index.js | 3 -- 4 files changed, 15 insertions(+), 25 deletions(-) diff --git a/src/components/edit_user/generic_data/contact_info/phone_control.js b/src/components/edit_user/generic_data/contact_info/phone_control.js index b8c4016..f69186c 100644 --- a/src/components/edit_user/generic_data/contact_info/phone_control.js +++ b/src/components/edit_user/generic_data/contact_info/phone_control.js @@ -15,8 +15,8 @@ const styles = theme => ({}); const PhoneControl = (props) => { - const { classes, phoneLabel, id, onHandleCloseContactInfo, onHandleActiveEditContactInfo, parentState, - handleDeleteContact, handleEditContact, controlValue, authenticationtype } = props; + const { classes, phoneLabel, id, onHandleCloseContactInfo, onHandleActiveEditContactInfo, + parentState, handleDeleteContact, handleEditContact, controlValue } = props; return (
diff --git a/src/components/edit_user/generic_data/contact_info/text_control.js b/src/components/edit_user/generic_data/contact_info/text_control.js index 70fc3bb..19756b1 100644 --- a/src/components/edit_user/generic_data/contact_info/text_control.js +++ b/src/components/edit_user/generic_data/contact_info/text_control.js @@ -12,7 +12,7 @@ const styles = theme => ({}); const TextControl = (props) => { - const { classes, id, handleDeleteContact, handleEditContact, parentState, onHandleCloseContactInfo, onHandleActiveEditContactInfo, controlValue, authenticationtype } = props; + const { classes, id, handleDeleteContact, handleEditContact, parentState, onHandleCloseContactInfo, onHandleActiveEditContactInfo, controlValue } = props; return (
diff --git a/src/components/edit_user/index.js b/src/components/edit_user/index.js index 5c01f0f..3d2bec8 100644 --- a/src/components/edit_user/index.js +++ b/src/components/edit_user/index.js @@ -48,11 +48,6 @@ class EditUser extends Component{ }; componentDidUpdate() { - let newBirthday = null; - - // if (this.props.selectedUser[0].birthday && this.props.selectedUser[0].birthday.year) { - // newBirthday = `${this.props.selectedUser[0].birthday.year}-${this.props.selectedUser[0].birthday.month}-${this.props.selectedUser[0].birthday.day}`; - // } if (this.state.valuesStates && this.props.selectedUser[0].firstname !== undefined) { @@ -126,25 +121,22 @@ class EditUser extends Component{ handleCloseContactInfo = () => this.setState({ anchorEl: null }); handleDeleteContact = (authenticationType) => { - console.log(authenticationType); if (authenticationType !== this.state.controlsType) { - this.setState({ - controlsType: authenticationType - }); + this.setState({ controlsType: authenticationType }); } this.handleCloseContactInfo(); this.handleContactInfoDelete(); - console.log('===================================='); - console.log('DELETE CONTACT INFO'); - console.log('===================================='); + // console.log('===================================='); + // console.log('DELETE CONTACT INFO'); + // console.log('===================================='); }; handleEditContact = () => { this.handleCloseContactInfo(); - console.log('===================================='); - console.log('EDIT CONTACT INFO'); - console.log('===================================='); + // console.log('===================================='); + // console.log('EDIT CONTACT INFO'); + // console.log('===================================='); }; render() { @@ -156,13 +148,14 @@ class EditUser extends Component{ * @const {string} path */ - console.log('===================================='); - console.log(this.state); - console.log('===================================='); + // console.log('===================================='); + // console.log(this.state); + // console.log('===================================='); - const { classes, coldef, selectedUser } = this.props; + const { selectedUser } = this.props; const { openModal, isUpdated, controlsType } = this.state; + // const { classes, coldef, selectedUser } = this.props; // const { url, path } = this.props.match; return( diff --git a/src/components/edit_user/profile_tools/index.js b/src/components/edit_user/profile_tools/index.js index 5df45e0..6c1ba03 100644 --- a/src/components/edit_user/profile_tools/index.js +++ b/src/components/edit_user/profile_tools/index.js @@ -40,9 +40,6 @@ class ProfileTools extends Component { handelBackToPreviousState = () => { this.props.goBack(); - console.log('===================================='); - console.log('ACCESS'); - console.log('===================================='); }; render() { -- GitLab From 0986762a2616f4e8ab3e4101e28213b4267dd531 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Tue, 13 Nov 2018 15:20:24 +0200 Subject: [PATCH 169/249] NY-5322 initial user profile admin role model setup --- .../edit_user/generic_data/user_profile_model.js | 14 +++++++++++++- src/components/edit_user/tabs_navigation/index.js | 4 ++-- src/utils/services/accounts.js | 3 ++- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/components/edit_user/generic_data/user_profile_model.js b/src/components/edit_user/generic_data/user_profile_model.js index 2e77e67..28c5b3d 100644 --- a/src/components/edit_user/generic_data/user_profile_model.js +++ b/src/components/edit_user/generic_data/user_profile_model.js @@ -1,6 +1,6 @@ class UserProfileModel { - constructor(_firstName, _lastName, _userName, _accountStatus, _userBirthday) { + constructor(_firstName, _lastName, _userName, _accountStatus, _userBirthday, _roleAdmin) { this._isUpdated = false; this._firstName = _firstName; @@ -17,6 +17,9 @@ class UserProfileModel { this._userBirthday = _userBirthday; this._oldUserBirthday = _userBirthday; + + this._roleAdmin = _roleAdmin; + this._oldroleAdmin = _roleAdmin; } /* @@ -85,6 +88,15 @@ class UserProfileModel { this._isUpdated = true; } + get roleAdmin() { + return this._roleAdmin; + } + + set roleAdmin(val) { + this._roleAdmin = val; + this._isUpdated = true; + } + get isUpdated() { let _newBirthdayString = `${this._userBirthday.year}-${ this._userBirthday.month}-${ this._userBirthday.day}`; diff --git a/src/components/edit_user/tabs_navigation/index.js b/src/components/edit_user/tabs_navigation/index.js index 228720f..41f322b 100644 --- a/src/components/edit_user/tabs_navigation/index.js +++ b/src/components/edit_user/tabs_navigation/index.js @@ -58,8 +58,8 @@ class TabsNavigation extends Component { - {value === 0 &&
login options lives here
} - {value === 1 &&
2 some ephing shit
} + {value === 0 &&
login options live here
} + {value === 1 &&
active sessions live here
} {value === 2 && }
diff --git a/src/utils/services/accounts.js b/src/utils/services/accounts.js index 477b0b3..e87e099 100644 --- a/src/utils/services/accounts.js +++ b/src/utils/services/accounts.js @@ -1,5 +1,5 @@ import { AccountServiceClient } from './../grpc_proto/generated/account_pb_service'; -import { AccountByAuthenticationProviderRequest, AccountByAccountIdRequest, Role, AccessStatus } from './../grpc_proto/generated/account_pb'; +import { AccountByAuthenticationProviderRequest, AccountByAccountIdRequest, Role, AccessStatus, ContactType } from './../grpc_proto/generated/account_pb'; // import { AuthenticationServiceClient } from './../grpc_proto/generated/auth_pb_service'; // import { GenerateVerifyTokenRequest } from './../grpc_proto/generated/auth_pb'; @@ -16,6 +16,7 @@ let accountServiceClient = new AccountServiceClient(endpoint); export let accountRoleVariations = Object.keys(Role); export let accountStatusVariations = Object.keys(AccessStatus); +export let accountContactType = Object.keys(ContactType); export function accountByAccountIdGrpcRequest(accountId){ -- GitLab From 42b77fbadf59e4077f98cf374c805795d24a920d Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Tue, 13 Nov 2018 15:39:32 +0200 Subject: [PATCH 170/249] NY-5322 exposing profile model to tab navigation --- src/components/edit_user/index.js | 12 +++++++++--- src/components/edit_user/tabs_navigation/index.js | 1 + 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/components/edit_user/index.js b/src/components/edit_user/index.js index 3d2bec8..c32a898 100644 --- a/src/components/edit_user/index.js +++ b/src/components/edit_user/index.js @@ -56,7 +56,9 @@ class EditUser extends Component{ this.props.selectedUser[0].lastname, this.props.selectedUser[0].username, this.props.selectedUser[0].accessstatus, - {...this.props.selectedUser[0].birthday} + {...this.props.selectedUser[0].birthday}, + this.props.selectedUser[0].rolesList + ); @@ -154,7 +156,7 @@ class EditUser extends Component{ const { selectedUser } = this.props; - const { openModal, isUpdated, controlsType } = this.state; + const { openModal, isUpdated, controlsType, profileUserModel} = this.state; // const { classes, coldef, selectedUser } = this.props; // const { url, path } = this.props.match; @@ -185,7 +187,11 @@ class EditUser extends Component{ - + { + profileUserModel + ? + : null + } {/* diff --git a/src/components/edit_user/tabs_navigation/index.js b/src/components/edit_user/tabs_navigation/index.js index 41f322b..385093e 100644 --- a/src/components/edit_user/tabs_navigation/index.js +++ b/src/components/edit_user/tabs_navigation/index.js @@ -40,6 +40,7 @@ class TabsNavigation extends Component { const { classes } = this.props; const { value } = this.state; + console.log(this.props); return ( -- GitLab From 9298847584219b3c1c2b6bae44a80891eac19ef2 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Tue, 13 Nov 2018 16:58:10 +0200 Subject: [PATCH 171/249] NY-5322 profile model pushed to manage user area --- src/components/edit_user/index.js | 5 ++++- .../edit_user/tabs_navigation/index.js | 10 ++++++--- .../tabs_navigation/manage_user/index.js | 21 +++++++++---------- src/utils/services/accounts.js | 19 ++++++++++------- 4 files changed, 32 insertions(+), 23 deletions(-) diff --git a/src/components/edit_user/index.js b/src/components/edit_user/index.js index c32a898..e2b142a 100644 --- a/src/components/edit_user/index.js +++ b/src/components/edit_user/index.js @@ -189,7 +189,10 @@ class EditUser extends Component{ { profileUserModel - ? + ? : null } diff --git a/src/components/edit_user/tabs_navigation/index.js b/src/components/edit_user/tabs_navigation/index.js index 385093e..23cc564 100644 --- a/src/components/edit_user/tabs_navigation/index.js +++ b/src/components/edit_user/tabs_navigation/index.js @@ -38,9 +38,8 @@ class TabsNavigation extends Component { render() { - const { classes } = this.props; + const { classes, profileUserModel, onHandleChange } = this.props; const { value } = this.state; - console.log(this.props); return ( @@ -61,7 +60,12 @@ class TabsNavigation extends Component { {value === 0 &&
login options live here
} {value === 1 &&
active sessions live here
} - {value === 2 && } + {value === 2 && profileUserModel && + + }
diff --git a/src/components/edit_user/tabs_navigation/manage_user/index.js b/src/components/edit_user/tabs_navigation/manage_user/index.js index 9ca8cef..f37330c 100644 --- a/src/components/edit_user/tabs_navigation/manage_user/index.js +++ b/src/components/edit_user/tabs_navigation/manage_user/index.js @@ -37,9 +37,9 @@ class ManageUser extends Component{ componentDidMount(){ - if (this.state.roleAdmin === null && this.props.selectedUser[0].rolesList) { + if (this.state.roleAdmin === null && this.props.profileUserModel.rolesList) { - let roleAdminBool = this.props.selectedUser[0].rolesList === "ADMIN" ? true : false; + let roleAdminBool = this.props.profileUserModel.rolesList === "ADMIN" ? true : false; this.setState({roleAdmin: roleAdminBool}) } @@ -47,9 +47,9 @@ class ManageUser extends Component{ componentDidUpdate(){ - if (this.state.roleAdmin === null && this.props.selectedUser[0].rolesList) { + if (this.state.roleAdmin === null && this.props.profileUserModel.rolesList) { - let roleAdminBool = this.props.selectedUser[0].rolesList === "ADMIN" ? true : false; + let roleAdminBool = this.props.profileUserModel.rolesList === "ADMIN" ? true : false; this.setState({roleAdmin: roleAdminBool}) } @@ -58,6 +58,11 @@ class ManageUser extends Component{ render(){ const { roleAdmin } = this.state; + const { profileUserModel, onHandleChange } = this.props; + + console.log('profileUserModel', profileUserModel) + console.log('roleAdmin', roleAdmin) + console.log('this.props.profileUserModel.rolesList', this.props.profileUserModel.rolesList) return( @@ -97,10 +102,4 @@ ManageUser.propTypes = { classes: PropTypes.object.isRequired, }; -function mapStateToProps({ editUser }, { match }){ - return { - selectedUser: [editUser] - } -} - -export default withStyles(styles)(connect(mapStateToProps)(ManageUser)); \ No newline at end of file +export default withStyles(styles)(ManageUser); \ No newline at end of file diff --git a/src/utils/services/accounts.js b/src/utils/services/accounts.js index e87e099..1002c8d 100644 --- a/src/utils/services/accounts.js +++ b/src/utils/services/accounts.js @@ -23,15 +23,18 @@ export function accountByAccountIdGrpcRequest(accountId){ accountByAccountIdRequest.setAccountid(accountId); return new Promise((resolve, reject) => { accountServiceClient.getAccountByAccountId(accountByAccountIdRequest, {'Content-type': 'application/grpc-web+proto'}, (error, response) => { - - if(response.accountdetails){ - - response.accountdetails.rolesList = accountRoleVariations[response.accountdetails.rolesList[0]] - response.accountdetails.accessstatus = response.accountdetails.accessstatus === undefined || response.accountdetails.accessstatus === 0 ? accountStatusVariations[1] : accountStatusVariations[response.accountdetails.accessstatus] - - resolve(response.accountdetails); + if(response) { + if(response.accountdetails){ + + response.accountdetails.rolesList = accountRoleVariations[response.accountdetails.rolesList[0]] + response.accountdetails.accessstatus = response.accountdetails.accessstatus === undefined || response.accountdetails.accessstatus === 0 ? accountStatusVariations[1] : accountStatusVariations[response.accountdetails.accessstatus] + + resolve(response.accountdetails); + } else { + reject(response.error); + } } else { - reject(response.error); + reject({errorMessage: 'Unknow connection issue'}); } if(error){ reject(error); -- GitLab From 556bcf073472c297b12e2b3e2e3783200e09f002 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Tue, 13 Nov 2018 17:21:40 +0200 Subject: [PATCH 172/249] NY-5322 profile model isUpdated flag update --- .../generic_data/user_profile_model.js | 20 ++++---- src/components/edit_user/index.js | 1 + .../tabs_navigation/manage_user/index.js | 47 +++++++++---------- 3 files changed, 35 insertions(+), 33 deletions(-) diff --git a/src/components/edit_user/generic_data/user_profile_model.js b/src/components/edit_user/generic_data/user_profile_model.js index 28c5b3d..07b7a12 100644 --- a/src/components/edit_user/generic_data/user_profile_model.js +++ b/src/components/edit_user/generic_data/user_profile_model.js @@ -1,6 +1,6 @@ class UserProfileModel { - constructor(_firstName, _lastName, _userName, _accountStatus, _userBirthday, _roleAdmin) { + constructor(_firstName, _lastName, _userName, _accountStatus, _userBirthday, _rolesList) { this._isUpdated = false; this._firstName = _firstName; @@ -18,8 +18,8 @@ class UserProfileModel { this._userBirthday = _userBirthday; this._oldUserBirthday = _userBirthday; - this._roleAdmin = _roleAdmin; - this._oldroleAdmin = _roleAdmin; + this._rolesList = _rolesList; + this._oldrolesList = _rolesList; } /* @@ -88,12 +88,12 @@ class UserProfileModel { this._isUpdated = true; } - get roleAdmin() { - return this._roleAdmin; + get rolesList() { + return this._rolesList; } - set roleAdmin(val) { - this._roleAdmin = val; + set rolesList(val) { + this._rolesList = val === true ? "ADMIN" : "USER" ; this._isUpdated = true; } @@ -103,13 +103,17 @@ class UserProfileModel { let _oldBirthdayString = `${this._oldUserBirthday.year}-${ this._oldUserBirthday.month}-${ this._oldUserBirthday.day}`; if (this._firstName === this._oldFirstName && this._lastName === this._oldLastName && this._userName === this._oldUserName && - this._accountStatus === this._oldAccountStatus && _newBirthdayString === _oldBirthdayString) { + this._accountStatus === this._oldAccountStatus && _newBirthdayString === _oldBirthdayString && this._rolesList === this._oldrolesList) { return false; } return this._isUpdated; } + set isUpdated(val) { + this._isUpdated = val; + } + validateUserName() { } diff --git a/src/components/edit_user/index.js b/src/components/edit_user/index.js index e2b142a..49a3ab9 100644 --- a/src/components/edit_user/index.js +++ b/src/components/edit_user/index.js @@ -88,6 +88,7 @@ class EditUser extends Component{ let newProfileUserModel = Object.assign(Object.create(Object.getPrototypeOf(this.state.profileUserModel)), this.state.profileUserModel); newProfileUserModel[e.target.name] = e.target.value; + // debugger this.setState({ [e.target.name]: e.target.value, diff --git a/src/components/edit_user/tabs_navigation/manage_user/index.js b/src/components/edit_user/tabs_navigation/manage_user/index.js index f37330c..2f933dc 100644 --- a/src/components/edit_user/tabs_navigation/manage_user/index.js +++ b/src/components/edit_user/tabs_navigation/manage_user/index.js @@ -21,48 +21,44 @@ class ManageUser extends Component{ state = { open: true, - selectedIndex: 0, - roleAdmin: null + selectedIndex: 0 }; - handleChange = name => event => { - this.setState({ [name]: event.target.checked }); + // handleChange = name => event => { + // this.setState({ [name]: event.target.checked }); - // TODO: make a call to user profile model - }; + // // TODO: make a call to user profile model + // }; handleClick = () => { this.setState(state => ({ open: !state.open })); }; - componentDidMount(){ + // componentDidMount(){ - if (this.state.roleAdmin === null && this.props.profileUserModel.rolesList) { + // if (this.state.roleAdmin === null && this.props.profileUserModel.rolesList) { - let roleAdminBool = this.props.profileUserModel.rolesList === "ADMIN" ? true : false; - this.setState({roleAdmin: roleAdminBool}) + // let roleAdminBool = this.props.profileUserModel.rolesList === "ADMIN" ? true : false; + // this.setState({roleAdmin: roleAdminBool}) - } - } + // } + // } - componentDidUpdate(){ + // componentDidUpdate(){ - if (this.state.roleAdmin === null && this.props.profileUserModel.rolesList) { + // if (this.state.roleAdmin === null && this.props.profileUserModel.rolesList) { - let roleAdminBool = this.props.profileUserModel.rolesList === "ADMIN" ? true : false; - this.setState({roleAdmin: roleAdminBool}) + // let roleAdminBool = this.props.profileUserModel.rolesList === "ADMIN" ? true : false; + // this.setState({roleAdmin: roleAdminBool}) - } - } + // } + // } render(){ const { roleAdmin } = this.state; const { profileUserModel, onHandleChange } = this.props; - - console.log('profileUserModel', profileUserModel) - console.log('roleAdmin', roleAdmin) - console.log('this.props.profileUserModel.rolesList', this.props.profileUserModel.rolesList) + console.log(profileUserModel) return( @@ -83,9 +79,10 @@ class ManageUser extends Component{ label="Admin" control={ } -- GitLab From ae2e27816ce2809275a75d48bdf2d82b2b999e51 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Tue, 13 Nov 2018 17:48:42 +0200 Subject: [PATCH 173/249] NY-5322 switching to profile model --- .../generic_data/user_profile_model.js | 2 +- src/components/edit_user/index.js | 1 - .../tabs_navigation/manage_user/index.js | 28 +------------------ 3 files changed, 2 insertions(+), 29 deletions(-) diff --git a/src/components/edit_user/generic_data/user_profile_model.js b/src/components/edit_user/generic_data/user_profile_model.js index 07b7a12..5dc0dee 100644 --- a/src/components/edit_user/generic_data/user_profile_model.js +++ b/src/components/edit_user/generic_data/user_profile_model.js @@ -93,7 +93,7 @@ class UserProfileModel { } set rolesList(val) { - this._rolesList = val === true ? "ADMIN" : "USER" ; + this._rolesList = val; this._isUpdated = true; } diff --git a/src/components/edit_user/index.js b/src/components/edit_user/index.js index 49a3ab9..e2b142a 100644 --- a/src/components/edit_user/index.js +++ b/src/components/edit_user/index.js @@ -88,7 +88,6 @@ class EditUser extends Component{ let newProfileUserModel = Object.assign(Object.create(Object.getPrototypeOf(this.state.profileUserModel)), this.state.profileUserModel); newProfileUserModel[e.target.name] = e.target.value; - // debugger this.setState({ [e.target.name]: e.target.value, diff --git a/src/components/edit_user/tabs_navigation/manage_user/index.js b/src/components/edit_user/tabs_navigation/manage_user/index.js index 2f933dc..929259c 100644 --- a/src/components/edit_user/tabs_navigation/manage_user/index.js +++ b/src/components/edit_user/tabs_navigation/manage_user/index.js @@ -24,36 +24,10 @@ class ManageUser extends Component{ selectedIndex: 0 }; - // handleChange = name => event => { - // this.setState({ [name]: event.target.checked }); - - // // TODO: make a call to user profile model - // }; - handleClick = () => { this.setState(state => ({ open: !state.open })); }; - // componentDidMount(){ - - // if (this.state.roleAdmin === null && this.props.profileUserModel.rolesList) { - - // let roleAdminBool = this.props.profileUserModel.rolesList === "ADMIN" ? true : false; - // this.setState({roleAdmin: roleAdminBool}) - - // } - // } - - // componentDidUpdate(){ - - // if (this.state.roleAdmin === null && this.props.profileUserModel.rolesList) { - - // let roleAdminBool = this.props.profileUserModel.rolesList === "ADMIN" ? true : false; - // this.setState({roleAdmin: roleAdminBool}) - - // } - // } - render(){ const { roleAdmin } = this.state; @@ -82,7 +56,7 @@ class ManageUser extends Component{ name="rolesList" checked={profileUserModel.rolesList === "ADMIN" ? true : false} onChange={onHandleChange} - value={profileUserModel.rolesList === "ADMIN" ? true : false} + value={profileUserModel.rolesList === "ADMIN" ? "USER" : "ADMIN"} color="primary" /> } -- GitLab From 3c6ba52f57fb093c0eb644ab94148857fb3c24f3 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Tue, 13 Nov 2018 18:13:26 +0200 Subject: [PATCH 174/249] NY-5318 --- .../contact_info/phone_control.js | 4 +- .../generic_data/contact_info/text_control.js | 4 +- .../edit_user/generic_data/index.js | 61 ++++++++++--------- .../generic_data/user_profile_model.js | 8 +-- src/components/edit_user/index.js | 17 ++---- 5 files changed, 47 insertions(+), 47 deletions(-) diff --git a/src/components/edit_user/generic_data/contact_info/phone_control.js b/src/components/edit_user/generic_data/contact_info/phone_control.js index f69186c..f323549 100644 --- a/src/components/edit_user/generic_data/contact_info/phone_control.js +++ b/src/components/edit_user/generic_data/contact_info/phone_control.js @@ -28,8 +28,8 @@ const PhoneControl = (props) => { @@ -37,7 +37,7 @@ const PhoneControl = (props) => { } endAdornment={ { { controlValue && controlValue !== '' ? @@ -38,7 +38,7 @@ const TextControl = (props) => { handleDeleteContact={handleDeleteContact} handleEditContact={handleEditContact} /> - ), + ) }} margin="normal" fullWidth diff --git a/src/components/edit_user/generic_data/index.js b/src/components/edit_user/generic_data/index.js index b272a03..8ad4ef1 100644 --- a/src/components/edit_user/generic_data/index.js +++ b/src/components/edit_user/generic_data/index.js @@ -13,6 +13,8 @@ import PersonalInfo from './personal_info/personal_info'; import AccessStatus from './access_status/access_status'; import UserAvatar from './edit_user_avatar/edit_user_avatar'; +import { accountContactType } from "./../../../utils/services/accounts.js"; + const styles = theme => ({}); const genericUserData = (props) => { @@ -25,9 +27,6 @@ const genericUserData = (props) => { const { selectedUser, classes, onHandleChange, parentState, modalAlertDeleteAvatar, onHandleCloseContactInfo, onHandleActiveEditContactInfo, handleDeleteContact, handleEditContact } = props; - // console.log('===================================='); - // console.log(selectedUser); - // console.log('===================================='); return ( @@ -68,31 +67,37 @@ const genericUserData = (props) => { Contact Information - { - selectedUser[0].authenticationtype === "PHONE" && selectedUser[0].authenticationtype !== '' - ? - : selectedUser[0].authenticationtype !== "PHONE" && selectedUser[0].authenticationtype !== '' - ? + { selectedUser[0].contactsinfoList + + ? selectedUser[0].contactsinfoList.map((contactTypeItem, index) => { + + if (accountContactType[1] === accountContactType[contactTypeItem.type]) { + + return + } else { + return + } + }) : null } diff --git a/src/components/edit_user/generic_data/user_profile_model.js b/src/components/edit_user/generic_data/user_profile_model.js index 5dc0dee..c16f8ba 100644 --- a/src/components/edit_user/generic_data/user_profile_model.js +++ b/src/components/edit_user/generic_data/user_profile_model.js @@ -99,6 +99,10 @@ class UserProfileModel { get isUpdated() { + if (!this._userBirthday || !this._firstName || !this._lastName || !this._accountStatus || !this._rolesList) { + return false; + } + let _newBirthdayString = `${this._userBirthday.year}-${ this._userBirthday.month}-${ this._userBirthday.day}`; let _oldBirthdayString = `${this._oldUserBirthday.year}-${ this._oldUserBirthday.month}-${ this._oldUserBirthday.day}`; @@ -110,10 +114,6 @@ class UserProfileModel { return this._isUpdated; } - set isUpdated(val) { - this._isUpdated = val; - } - validateUserName() { } diff --git a/src/components/edit_user/index.js b/src/components/edit_user/index.js index e2b142a..f7747db 100644 --- a/src/components/edit_user/index.js +++ b/src/components/edit_user/index.js @@ -31,7 +31,6 @@ class EditUser extends Component{ profileUserModel: new UserProfileModel(''), controlsType: '', - isUpdated: false, valuesStates: true, openModal: false, anchorEl: null @@ -150,13 +149,9 @@ class EditUser extends Component{ * @const {string} path */ - // console.log('===================================='); - // console.log(this.state); - // console.log('===================================='); - const { selectedUser } = this.props; - const { openModal, isUpdated, controlsType, profileUserModel} = this.state; + const { openModal, controlsType, profileUserModel} = this.state; // const { classes, coldef, selectedUser } = this.props; // const { url, path } = this.props.match; @@ -164,7 +159,7 @@ class EditUser extends Component{ - + @@ -188,12 +183,12 @@ class EditUser extends Component{ { - profileUserModel - ? - : null + : null } -- GitLab From 513fc065c342cb004ddd7fde5e847184a55b694a Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Wed, 14 Nov 2018 11:07:50 +0200 Subject: [PATCH 175/249] NY-5322 removing not necessary reference --- src/components/edit_user/tabs_navigation/manage_user/index.js | 4 +--- src/utils/services/accounts.js | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/components/edit_user/tabs_navigation/manage_user/index.js b/src/components/edit_user/tabs_navigation/manage_user/index.js index 929259c..8387952 100644 --- a/src/components/edit_user/tabs_navigation/manage_user/index.js +++ b/src/components/edit_user/tabs_navigation/manage_user/index.js @@ -1,9 +1,7 @@ -import React, { Component, Fragment } from "react"; -import { connect } from 'react-redux'; +import React, { Component } from "react"; import PropTypes from 'prop-types'; import { withStyles } from '@material-ui/core/styles'; -import ListSubheader from '@material-ui/core/ListSubheader'; import List from '@material-ui/core/List'; import ListItem from '@material-ui/core/ListItem'; import ListItemText from '@material-ui/core/ListItemText'; diff --git a/src/utils/services/accounts.js b/src/utils/services/accounts.js index 1002c8d..76e730d 100644 --- a/src/utils/services/accounts.js +++ b/src/utils/services/accounts.js @@ -1,5 +1,5 @@ import { AccountServiceClient } from './../grpc_proto/generated/account_pb_service'; -import { AccountByAuthenticationProviderRequest, AccountByAccountIdRequest, Role, AccessStatus, ContactType } from './../grpc_proto/generated/account_pb'; +import { AccountByAccountIdRequest, Role, AccessStatus, ContactType } from './../grpc_proto/generated/account_pb'; // import { AuthenticationServiceClient } from './../grpc_proto/generated/auth_pb_service'; // import { GenerateVerifyTokenRequest } from './../grpc_proto/generated/auth_pb'; -- GitLab From c8433c34d6ad1474467812a4fa660542a2168533 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Wed, 14 Nov 2018 12:47:34 +0200 Subject: [PATCH 176/249] minor changes --- .../contact_info_control_options.js | 9 ++++-- .../contact_info/phone_control.js | 4 +-- .../generic_data/contact_info/text_control.js | 4 ++- .../edit_user/generic_data/index.js | 17 ++++++----- src/components/edit_user/index.js | 30 +++++-------------- 5 files changed, 29 insertions(+), 35 deletions(-) diff --git a/src/components/edit_user/generic_data/contact_info/contact_info_control_options.js b/src/components/edit_user/generic_data/contact_info/contact_info_control_options.js index c01087c..56d5c1c 100644 --- a/src/components/edit_user/generic_data/contact_info/contact_info_control_options.js +++ b/src/components/edit_user/generic_data/contact_info/contact_info_control_options.js @@ -11,9 +11,12 @@ const styles = theme => ({}); const ContactInfoControlOptions = (props) => { - const { parentState, onHandleActiveEditContactInfo, onHandleCloseContactInfo, handleEditContact, handleDeleteContact, id } = props; + const { parentState, onHandleActiveEditContactInfo, onHandleCloseContactInfo, handleEditContact, handleDeleteContact, id, accountType } = props; const open = Boolean(parentState.anchorEl); + console.log('id', id); + console.log('accountType', accountType); + return (
@@ -26,7 +29,7 @@ const ContactInfoControlOptions = (props) => { { > Edit - Delete + handleDeleteContact(accountType)}>Delete
diff --git a/src/components/edit_user/generic_data/contact_info/phone_control.js b/src/components/edit_user/generic_data/contact_info/phone_control.js index f323549..a124fb2 100644 --- a/src/components/edit_user/generic_data/contact_info/phone_control.js +++ b/src/components/edit_user/generic_data/contact_info/phone_control.js @@ -15,8 +15,7 @@ const styles = theme => ({}); const PhoneControl = (props) => { - const { classes, phoneLabel, id, onHandleCloseContactInfo, onHandleActiveEditContactInfo, - parentState, handleDeleteContact, handleEditContact, controlValue } = props; + const { classes, phoneLabel, id, onHandleCloseContactInfo, onHandleActiveEditContactInfo, parentState, handleDeleteContact, handleEditContact, controlValue, accountType } = props; return (
@@ -42,6 +41,7 @@ const PhoneControl = (props) => { onHandleCloseContactInfo={onHandleCloseContactInfo} onHandleActiveEditContactInfo={onHandleActiveEditContactInfo} handleDeleteContact={handleDeleteContact} + accountType={accountType} handleEditContact={handleEditContact} /> } diff --git a/src/components/edit_user/generic_data/contact_info/text_control.js b/src/components/edit_user/generic_data/contact_info/text_control.js index a46de69..4762fa4 100644 --- a/src/components/edit_user/generic_data/contact_info/text_control.js +++ b/src/components/edit_user/generic_data/contact_info/text_control.js @@ -12,9 +12,10 @@ const styles = theme => ({}); const TextControl = (props) => { - const { classes, id, handleDeleteContact, handleEditContact, parentState, onHandleCloseContactInfo, onHandleActiveEditContactInfo, controlValue } = props; + const { classes, id, handleDeleteContact, handleEditContact, parentState, onHandleCloseContactInfo, onHandleActiveEditContactInfo, controlValue, accountType } = props; return ( +
{ controlValue && controlValue !== '' @@ -36,6 +37,7 @@ const TextControl = (props) => { onHandleCloseContactInfo={onHandleCloseContactInfo} onHandleActiveEditContactInfo={onHandleActiveEditContactInfo} handleDeleteContact={handleDeleteContact} + accountType={accountType} handleEditContact={handleEditContact} /> ) diff --git a/src/components/edit_user/generic_data/index.js b/src/components/edit_user/generic_data/index.js index 8ad4ef1..c70ccdd 100644 --- a/src/components/edit_user/generic_data/index.js +++ b/src/components/edit_user/generic_data/index.js @@ -1,5 +1,4 @@ import React, { Fragment } from 'react'; -// import PropTypes from "prop-types"; import './generic_data.css'; import { withStyles } from "@material-ui/core/styles"; @@ -27,6 +26,12 @@ const genericUserData = (props) => { const { selectedUser, classes, onHandleChange, parentState, modalAlertDeleteAvatar, onHandleCloseContactInfo, onHandleActiveEditContactInfo, handleDeleteContact, handleEditContact } = props; + + let accountTypeString = accountContactType.map((item) => { + let accountSplit = item.split(/[_]/); + return accountSplit[0] + }) + return ( @@ -67,7 +72,7 @@ const genericUserData = (props) => { Contact Information - { selectedUser[0].contactsinfoList + {selectedUser[0].contactsinfoList ? selectedUser[0].contactsinfoList.map((contactTypeItem, index) => { @@ -81,10 +86,12 @@ const genericUserData = (props) => { onHandleCloseContactInfo={onHandleCloseContactInfo} onHandleActiveEditContactInfo={onHandleActiveEditContactInfo} handleDeleteContact={handleDeleteContact} + accountType={accountTypeString[contactTypeItem.type]} handleEditContact={handleEditContact} controlValue={contactTypeItem.value} /> } else { + return { onHandleCloseContactInfo={onHandleCloseContactInfo} onHandleActiveEditContactInfo={onHandleActiveEditContactInfo} handleDeleteContact={handleDeleteContact} + accountType={accountTypeString[contactTypeItem.type]} handleEditContact={handleEditContact} controlValue={contactTypeItem.value} @@ -111,9 +119,4 @@ const genericUserData = (props) => { ) } -// genericUserData.propTypes = { -// classes: PropTypes.object.isRequired, -// selectedUser: PropTypes.array.isRequired -// }; - export default withStyles(styles)(genericUserData); \ No newline at end of file diff --git a/src/components/edit_user/index.js b/src/components/edit_user/index.js index f7747db..72c4a97 100644 --- a/src/components/edit_user/index.js +++ b/src/components/edit_user/index.js @@ -13,6 +13,8 @@ import AvatarContentModal from './generic_data/edit_user_avatar/delete_avatar_mo import ContactInfoDeleteModal from './generic_data/contact_info/modal_content/delete_modal'; import UserProfileModel from './generic_data/user_profile_model'; +import { accountContactType } from "../../utils/services/accounts.js"; + // import Categories from './categories'; // import AvailableData from './available_data'; // import UpdateData from './update_data'; @@ -83,7 +85,6 @@ class EditUser extends Component{ handleChange = (e) => { - let newProfileUserModel = Object.assign(Object.create(Object.getPrototypeOf(this.state.profileUserModel)), this.state.profileUserModel); newProfileUserModel[e.target.name] = e.target.value; @@ -93,23 +94,6 @@ class EditUser extends Component{ profileUserModel: newProfileUserModel }); - // if (!this.state.isUpdated) { - - // console.log(this.state.profileUserModel); - - // this.setState({ - // [e.target.name]: e.target.value, - // profileUserModel: newProfileUserModel, - // isUpdated: true - - // }); - // } else { - - // this.setState({ - // [e.target.name]: e.target.value, - // }); - // } - }; handleAvatarAlertDelete = () => this.setState({ openModal: true }); @@ -123,9 +107,11 @@ class EditUser extends Component{ handleDeleteContact = (authenticationType) => { - if (authenticationType !== this.state.controlsType) { - this.setState({ controlsType: authenticationType }); - } + console.log('=======================>', authenticationType); + + // if (authenticationType !== this.state.controlsType) { + // this.setState({ controlsType: authenticationType }); + // } this.handleCloseContactInfo(); this.handleContactInfoDelete(); // console.log('===================================='); @@ -170,7 +156,7 @@ class EditUser extends Component{ modalAlertDeleteAvatar={this.handleAvatarAlertDelete} onHandleActiveEditContactInfo={this.onHandleActiveEditContactInfo} onHandleCloseContactInfo={this.handleCloseContactInfo} - handleDeleteContact={() => this.handleDeleteContact(selectedUser[0].authenticationtype)} + handleDeleteContact={this.handleDeleteContact} handleEditContact={this.handleEditContact} /> -- GitLab From e220312d66a4ef3ac289840ce634de0a949b7144 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Wed, 14 Nov 2018 13:44:04 +0200 Subject: [PATCH 177/249] birthday data fixing format issue --- .../personal_info/personal_info.js | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/components/edit_user/generic_data/personal_info/personal_info.js b/src/components/edit_user/generic_data/personal_info/personal_info.js index 91e95ad..9edace2 100644 --- a/src/components/edit_user/generic_data/personal_info/personal_info.js +++ b/src/components/edit_user/generic_data/personal_info/personal_info.js @@ -7,13 +7,28 @@ const styles = theme => ({}); const PersonalInfo = (props) => { - let newBirthday = null; + let newBirthday = null, + newBirthdayDay = null, + newBirthdayMonth = null; + const { parentState, classes, selectedUser, onHandleChange } = props; + if (parentState.profileUserModel.userBirthday && parentState.profileUserModel.userBirthday.year) { - newBirthday = `${parentState.profileUserModel.userBirthday.year}-${parentState.profileUserModel.userBirthday.month}-${parentState.profileUserModel.userBirthday.day}`; + if (parentState.profileUserModel.userBirthday.day < 10) { + newBirthdayDay = `0${parentState.profileUserModel.userBirthday.day }`; + } else { + newBirthdayDay = `${parentState.profileUserModel.userBirthday.day }`; + } + if (parentState.profileUserModel.userBirthday.month < 10) { + newBirthdayMonth = `0${parentState.profileUserModel.userBirthday.month}`; + } else { + newBirthdayMonth = `${parentState.profileUserModel.userBirthday.month}`; + } + newBirthday = `${parentState.profileUserModel.userBirthday.year}-${newBirthdayMonth}-${newBirthdayDay}`; } + return ( -- GitLab From cf63c3ad2e968c61d17886d1d5e87e2063352f0b Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Wed, 14 Nov 2018 15:25:40 +0200 Subject: [PATCH 178/249] NY-5318 --- .../edit_user/generic_data/generic_data.css | 31 ++++++++++- .../personal_info/personal_info.js | 51 +++++++++++-------- 2 files changed, 59 insertions(+), 23 deletions(-) diff --git a/src/components/edit_user/generic_data/generic_data.css b/src/components/edit_user/generic_data/generic_data.css index 10ec45b..8db0b8c 100644 --- a/src/components/edit_user/generic_data/generic_data.css +++ b/src/components/edit_user/generic_data/generic_data.css @@ -19,6 +19,33 @@ .contact-info-controls button:hover { background-color: transparent; } -.MuiInput-underline-366.MuiInput-disabled-365:before { - border-bottom: solid 1px; +.touch-personal-info { + display: none; +} +.touch-personal-info.isTouched { + position: absolute; + display: block; + + bottom: -5px; + right: 0; + + font-family: "Roboto", "Helvetica", "Arial", sans-serif; + font-size: 10px; + font-style: italic; + color: #f00; + + +} +.touch-personal-info.isTouched::before{ + position: absolute; + content: ''; + + right: 30px; + top: 2px; + width: 0; + height: 0; + + border-top: 3px solid transparent; + border-bottom: 3px solid transparent; + border-left: 3px solid #f00; } \ No newline at end of file diff --git a/src/components/edit_user/generic_data/personal_info/personal_info.js b/src/components/edit_user/generic_data/personal_info/personal_info.js index 9edace2..ee3d4cf 100644 --- a/src/components/edit_user/generic_data/personal_info/personal_info.js +++ b/src/components/edit_user/generic_data/personal_info/personal_info.js @@ -1,9 +1,14 @@ import React, { Fragment } from 'react'; import { withStyles } from "@material-ui/core/styles"; -// import classNames from "classnames"; +import classNames from "classnames"; import TextField from "@material-ui/core/TextField"; +import { relative } from 'path'; -const styles = theme => ({}); +const styles = theme => ({ + rowControlWrapper: { + position: 'relative' + } +}); const PersonalInfo = (props) => { @@ -32,7 +37,8 @@ const PersonalInfo = (props) => { return ( -
+
+ Edited { selectedUser[0].firstname && parentState.profileUserModel.firstName ? { }
-
+
+ Edited { selectedUser[0].lastname && parentState.profileUserModel.lastName ? { }
-
+
+ Edited { selectedUser[0].username && parentState.profileUserModel.userName ? { }
-
- { - selectedUser[0].birthday && parentState.profileUserModel.userBirthday - ? - : null - } +
+ Edited + { + selectedUser[0].birthday && parentState.profileUserModel.userBirthday + ? + : null + }
-- GitLab From a928a5c49b4fe965838a452b6ffba20ea7bffb3b Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Wed, 14 Nov 2018 15:27:00 +0200 Subject: [PATCH 179/249] NY-5357 contact list more options update --- .../contact_info_control_options.js | 99 +++++++++++-------- .../contact_info/phone_control.js | 5 +- .../generic_data/contact_info/text_control.js | 5 +- .../edit_user/generic_data/index.js | 7 +- src/components/edit_user/index.js | 19 +--- 5 files changed, 66 insertions(+), 69 deletions(-) diff --git a/src/components/edit_user/generic_data/contact_info/contact_info_control_options.js b/src/components/edit_user/generic_data/contact_info/contact_info_control_options.js index 56d5c1c..ee50e5b 100644 --- a/src/components/edit_user/generic_data/contact_info/contact_info_control_options.js +++ b/src/components/edit_user/generic_data/contact_info/contact_info_control_options.js @@ -1,4 +1,4 @@ -import React from "react"; +import React, { Component } from "react"; import { withStyles } from "@material-ui/core/styles"; import IconButton from "@material-ui/core/IconButton"; @@ -9,45 +9,64 @@ import MenuItem from "@material-ui/core/MenuItem"; const ITEM_HEIGHT = 48; const styles = theme => ({}); -const ContactInfoControlOptions = (props) => { - - const { parentState, onHandleActiveEditContactInfo, onHandleCloseContactInfo, handleEditContact, handleDeleteContact, id, accountType } = props; - const open = Boolean(parentState.anchorEl); - - console.log('id', id); - console.log('accountType', accountType); - - return ( - -
- - - - - - Edit - handleDeleteContact(accountType)}>Delete - - -
- - ); +class ContactInfoControlOptions extends Component { + + state = { + anchorEl: null + }; + + handleMenu = event => { + this.setState({ anchorEl: event.currentTarget }); + }; + + handleClose = () => { + this.setState({ anchorEl: null }); + }; + + callhandleDeleteContact = () => { + this.handleClose(); + this.props.handleDeleteContact(this.props.accountType) + } + + render(){ + + + const { handleEditContact } = this.props; + const open = Boolean(this.state.anchorEl); + + return ( + +
+ + + + + + Edit + Delete + + +
+ + ); + } + } export default withStyles(styles)(ContactInfoControlOptions); \ No newline at end of file diff --git a/src/components/edit_user/generic_data/contact_info/phone_control.js b/src/components/edit_user/generic_data/contact_info/phone_control.js index a124fb2..7af6c28 100644 --- a/src/components/edit_user/generic_data/contact_info/phone_control.js +++ b/src/components/edit_user/generic_data/contact_info/phone_control.js @@ -15,7 +15,7 @@ const styles = theme => ({}); const PhoneControl = (props) => { - const { classes, phoneLabel, id, onHandleCloseContactInfo, onHandleActiveEditContactInfo, parentState, handleDeleteContact, handleEditContact, controlValue, accountType } = props; + const { classes, phoneLabel, id, parentState, handleDeleteContact, handleEditContact, controlValue, accountType } = props; return (
@@ -36,10 +36,7 @@ const PhoneControl = (props) => { } endAdornment={ ({}); const TextControl = (props) => { - const { classes, id, handleDeleteContact, handleEditContact, parentState, onHandleCloseContactInfo, onHandleActiveEditContactInfo, controlValue, accountType } = props; + const { classes, id, handleDeleteContact, handleEditContact, parentState, controlValue, accountType } = props; return ( @@ -32,10 +32,7 @@ const TextControl = (props) => { ), endAdornment:( { * @const {Object} classes */ - const { selectedUser, classes, onHandleChange, parentState, modalAlertDeleteAvatar, - onHandleCloseContactInfo, onHandleActiveEditContactInfo, handleDeleteContact, handleEditContact } = props; + const { selectedUser, classes, onHandleChange, parentState, modalAlertDeleteAvatar, handleDeleteContact, handleEditContact } = props; let accountTypeString = accountContactType.map((item) => { @@ -83,8 +82,6 @@ const genericUserData = (props) => { key={contactTypeItem.value + index} phoneLabel={contactTypeItem.label} parentState={parentState} - onHandleCloseContactInfo={onHandleCloseContactInfo} - onHandleActiveEditContactInfo={onHandleActiveEditContactInfo} handleDeleteContact={handleDeleteContact} accountType={accountTypeString[contactTypeItem.type]} handleEditContact={handleEditContact} @@ -96,8 +93,6 @@ const genericUserData = (props) => { id={`userTextField1${index}`} key={contactTypeItem.value + index} parentState={parentState} - onHandleCloseContactInfo={onHandleCloseContactInfo} - onHandleActiveEditContactInfo={onHandleActiveEditContactInfo} handleDeleteContact={handleDeleteContact} accountType={accountTypeString[contactTypeItem.type]} handleEditContact={handleEditContact} diff --git a/src/components/edit_user/index.js b/src/components/edit_user/index.js index 72c4a97..523cd5c 100644 --- a/src/components/edit_user/index.js +++ b/src/components/edit_user/index.js @@ -13,8 +13,6 @@ import AvatarContentModal from './generic_data/edit_user_avatar/delete_avatar_mo import ContactInfoDeleteModal from './generic_data/contact_info/modal_content/delete_modal'; import UserProfileModel from './generic_data/user_profile_model'; -import { accountContactType } from "../../utils/services/accounts.js"; - // import Categories from './categories'; // import AvailableData from './available_data'; // import UpdateData from './update_data'; @@ -34,8 +32,7 @@ class EditUser extends Component{ controlsType: '', valuesStates: true, - openModal: false, - anchorEl: null + openModal: false } }; @@ -100,19 +97,11 @@ class EditUser extends Component{ handleContactInfoDelete = () => this.setState({ openModal: true }); handleModalConfirmedCancel = () => this.setState({ openModal: false }); - onHandleActiveEditContactInfo = event => { - this.setState({ anchorEl: event.currentTarget }); - } - handleCloseContactInfo = () => this.setState({ anchorEl: null }); - handleDeleteContact = (authenticationType) => { - console.log('=======================>', authenticationType); - - // if (authenticationType !== this.state.controlsType) { - // this.setState({ controlsType: authenticationType }); - // } - this.handleCloseContactInfo(); + if (authenticationType !== this.state.controlsType) { + this.setState({ controlsType: authenticationType }); + } this.handleContactInfoDelete(); // console.log('===================================='); // console.log('DELETE CONTACT INFO'); -- GitLab From ec146f0c49cf49cf4be6ad866e73835da5a3907c Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Wed, 14 Nov 2018 17:53:18 +0200 Subject: [PATCH 180/249] NY-5363 login options initial layout --- src/components/edit_user/index.js | 7 +- .../edit_user/tabs_navigation/index.js | 16 ++++- .../tabs_navigation/login_options/index.js | 64 +++++++++++++++++++ .../tabs_navigation/manage_user/index.js | 1 - 4 files changed, 82 insertions(+), 6 deletions(-) create mode 100644 src/components/edit_user/tabs_navigation/login_options/index.js diff --git a/src/components/edit_user/index.js b/src/components/edit_user/index.js index 523cd5c..1ebed4a 100644 --- a/src/components/edit_user/index.js +++ b/src/components/edit_user/index.js @@ -143,8 +143,6 @@ class EditUser extends Component{ onHandleChange={this.handleChange} parentState={this.state} modalAlertDeleteAvatar={this.handleAvatarAlertDelete} - onHandleActiveEditContactInfo={this.onHandleActiveEditContactInfo} - onHandleCloseContactInfo={this.handleCloseContactInfo} handleDeleteContact={this.handleDeleteContact} handleEditContact={this.handleEditContact} /> @@ -162,6 +160,11 @@ class EditUser extends Component{ ? : null } diff --git a/src/components/edit_user/tabs_navigation/index.js b/src/components/edit_user/tabs_navigation/index.js index 23cc564..a4cf697 100644 --- a/src/components/edit_user/tabs_navigation/index.js +++ b/src/components/edit_user/tabs_navigation/index.js @@ -7,6 +7,7 @@ import Tabs from '@material-ui/core/Tabs'; import Tab from '@material-ui/core/Tab'; import ManageUser from './manage_user'; +import LoginOptions from './login_options'; import './tab_navigation.css'; @@ -29,7 +30,7 @@ const styles = theme => ({ class TabsNavigation extends Component { state = { - value: 2 + value: 0 } handleChange = (event, value) => { @@ -38,7 +39,7 @@ class TabsNavigation extends Component { render() { - const { classes, profileUserModel, onHandleChange } = this.props; + const { classes, profileUserModel, selectedUser, onHandleChange, parentState, modalAlertDeleteAvatar, handleDeleteContact, handleEditContact } = this.props; const { value } = this.state; return ( @@ -58,7 +59,16 @@ class TabsNavigation extends Component { - {value === 0 &&
login options live here
} + {value === 0 && + + } {value === 1 &&
active sessions live here
} {value === 2 && profileUserModel && { + + const { selectedUser, parentState, handleDeleteContact, handleEditContact } = props; + + let accountTypeString = accountContactType.map((item) => { + let accountSplit = item.split(/[_]/); + return accountSplit[0] + }) + + console.log(props) + + return ( + + + Login Options + + {selectedUser[0].contactsinfoList + + ? selectedUser[0].contactsinfoList.map((contactTypeItem, index) => { + + if (accountContactType[1] === accountContactType[contactTypeItem.type]) { + + return + } else { + + return + } + }) + : null + } + + + ) +} + +export default LoginOption; \ No newline at end of file diff --git a/src/components/edit_user/tabs_navigation/manage_user/index.js b/src/components/edit_user/tabs_navigation/manage_user/index.js index 8387952..156bfcd 100644 --- a/src/components/edit_user/tabs_navigation/manage_user/index.js +++ b/src/components/edit_user/tabs_navigation/manage_user/index.js @@ -30,7 +30,6 @@ class ManageUser extends Component{ const { roleAdmin } = this.state; const { profileUserModel, onHandleChange } = this.props; - console.log(profileUserModel) return( -- GitLab From 6b9e4dfe08b2feb0a69c1717c8b08cab676ecf34 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Wed, 14 Nov 2018 18:03:39 +0200 Subject: [PATCH 181/249] NY-5364 --- .../delete_profile/delete_profile.js | 19 +++++++ .../delete_profile/delete_profile_modal.js | 32 +++++++++++ .../delete_avatar_modal/avatar_modal.js | 6 +- .../edit_user_avatar/edit_user_avatar.js | 2 +- .../edit_user/generic_data/generic_data.css | 53 ++++++++++++++++++ .../edit_user/generic_data/index.js | 6 +- .../personal_info/personal_info.js | 18 ++++-- src/components/edit_user/index.js | 55 ++++++++++--------- src/components/shared/ui/modal/modal.css | 12 ++-- 9 files changed, 162 insertions(+), 41 deletions(-) create mode 100644 src/components/edit_user/generic_data/delete_profile/delete_profile.js create mode 100644 src/components/edit_user/generic_data/delete_profile/delete_profile_modal.js diff --git a/src/components/edit_user/generic_data/delete_profile/delete_profile.js b/src/components/edit_user/generic_data/delete_profile/delete_profile.js new file mode 100644 index 0000000..e1cfd96 --- /dev/null +++ b/src/components/edit_user/generic_data/delete_profile/delete_profile.js @@ -0,0 +1,19 @@ +import React, { Fragment } from "react"; +import { withStyles } from "@material-ui/core/styles"; + +import Button from "@material-ui/core/Button"; + +const styles = theme => ({}); + +const DeleteProfile = (props) => { + + const { classes, handleDeleteProfile } = props; + + return ( + + + + ); + +} +export default withStyles(styles)(DeleteProfile); \ No newline at end of file diff --git a/src/components/edit_user/generic_data/delete_profile/delete_profile_modal.js b/src/components/edit_user/generic_data/delete_profile/delete_profile_modal.js new file mode 100644 index 0000000..078d36e --- /dev/null +++ b/src/components/edit_user/generic_data/delete_profile/delete_profile_modal.js @@ -0,0 +1,32 @@ +import React from "react"; +import { withStyles } from "@material-ui/core/styles"; +import Button from "@material-ui/core/Button"; + +const styles = {}; + +const DeleteProfileModal = (props) => { + const { handleModalDeleteProfileCancel, controlLabel, classes } = props; + + return ( +
+

Delete {controlLabel} Profile

+
+ { + controlLabel && controlLabel === 'ADMIN' + ?

When deleting an ADMIN user: "You are about to delete a user with ADMIN privileges. Do you want to continue?"

+ : controlLabel && controlLabel === 'USER' + ?

When deleting REGULAR user: "You are about to permanently delete a user. Do you want to continue?"

+ : null + } + +
+ + +
+ +
+
+ ); +} + +export default withStyles(styles)(DeleteProfileModal); \ No newline at end of file diff --git a/src/components/edit_user/generic_data/edit_user_avatar/delete_avatar_modal/avatar_modal.js b/src/components/edit_user/generic_data/edit_user_avatar/delete_avatar_modal/avatar_modal.js index 624bf78..f7a6d55 100644 --- a/src/components/edit_user/generic_data/edit_user_avatar/delete_avatar_modal/avatar_modal.js +++ b/src/components/edit_user/generic_data/edit_user_avatar/delete_avatar_modal/avatar_modal.js @@ -5,16 +5,16 @@ import Button from "@material-ui/core/Button"; const styles = {}; const AvatarContentModal = (props) => { - const { handleModalConfirmedCancel, classes } = props; + const { handleModalAvatarCancel, classes } = props; return (

Delete Avatar

-

Do you want to delete user's Avatar?

+

Do you want to delete user's Avatar?

- +
diff --git a/src/components/edit_user/generic_data/edit_user_avatar/edit_user_avatar.js b/src/components/edit_user/generic_data/edit_user_avatar/edit_user_avatar.js index 3efc9be..a95f1c8 100644 --- a/src/components/edit_user/generic_data/edit_user_avatar/edit_user_avatar.js +++ b/src/components/edit_user/generic_data/edit_user_avatar/edit_user_avatar.js @@ -23,7 +23,7 @@ const { classes, selectedUser, modalAlertDeleteAvatar } = props; return (
- {selectedUser[0].avatar + {!selectedUser[0].avatar ?
{ * @const {Object} classes */ - const { selectedUser, classes, onHandleChange, parentState, modalAlertDeleteAvatar, handleDeleteContact, handleEditContact } = props; + const { selectedUser, classes, onHandleChange, parentState, modalAlertDeleteAvatar, handleDeleteContact, handleEditContact, handleDeleteProfile } = props; let accountTypeString = accountContactType.map((item) => { @@ -105,6 +106,9 @@ const genericUserData = (props) => { } + + +
diff --git a/src/components/edit_user/generic_data/personal_info/personal_info.js b/src/components/edit_user/generic_data/personal_info/personal_info.js index ee3d4cf..e6d7ec0 100644 --- a/src/components/edit_user/generic_data/personal_info/personal_info.js +++ b/src/components/edit_user/generic_data/personal_info/personal_info.js @@ -18,7 +18,6 @@ const PersonalInfo = (props) => { const { parentState, classes, selectedUser, onHandleChange } = props; - if (parentState.profileUserModel.userBirthday && parentState.profileUserModel.userBirthday.year) { if (parentState.profileUserModel.userBirthday.day < 10) { newBirthdayDay = `0${parentState.profileUserModel.userBirthday.day }`; @@ -33,7 +32,6 @@ const PersonalInfo = (props) => { newBirthday = `${parentState.profileUserModel.userBirthday.year}-${newBirthdayMonth}-${newBirthdayDay}`; } - return ( @@ -93,9 +91,9 @@ const PersonalInfo = (props) => {
- Edited + Edited { - selectedUser[0].birthday && parentState.profileUserModel.userBirthday + selectedUser[0].birthday && newBirthday ? { margin="normal" fullWidth /> - : null + : }
diff --git a/src/components/edit_user/index.js b/src/components/edit_user/index.js index 523cd5c..15ac37a 100644 --- a/src/components/edit_user/index.js +++ b/src/components/edit_user/index.js @@ -11,6 +11,7 @@ import TabsNavigation from './tabs_navigation/index'; import AvatarContentModal from './generic_data/edit_user_avatar/delete_avatar_modal/avatar_modal'; import ContactInfoDeleteModal from './generic_data/contact_info/modal_content/delete_modal'; +import DeleteProfileModal from "./generic_data/delete_profile/delete_profile_modal"; import UserProfileModel from './generic_data/user_profile_model'; // import Categories from './categories'; @@ -29,10 +30,11 @@ class EditUser extends Component{ this.state = { profileUserModel: new UserProfileModel(''), - controlsType: '', valuesStates: true, - openModal: false + openModal: false, + openModalDeleteProfile: false, + openModalDeleteAvatar: false } }; @@ -68,17 +70,17 @@ class EditUser extends Component{ } }; - updateUserDataCategoryX = (dataCategoryEdit) => { - const userId = this.props.selectedUser[0].accountId; + // updateUserDataCategoryX = (dataCategoryEdit) => { + // const userId = this.props.selectedUser[0].accountId; - const updateDetails = { - id: userId, - ...dataCategoryEdit - } + // const updateDetails = { + // id: userId, + // ...dataCategoryEdit + // } - this.props.updateUserDataName(updateDetails); + // this.props.updateUserDataName(updateDetails); - }; + // }; handleChange = (e) => { @@ -93,27 +95,22 @@ class EditUser extends Component{ }; - handleAvatarAlertDelete = () => this.setState({ openModal: true }); + handleAvatarAlertDelete = () => this.setState({ openModalDeleteAvatar: true }); handleContactInfoDelete = () => this.setState({ openModal: true }); + handleDeleteProfilConfirmed = () => this.setState({ openModalDeleteProfile: true }); + + handleModalAvatarCancel = () => this.setState({ openModalDeleteAvatar: false }); handleModalConfirmedCancel = () => this.setState({ openModal: false }); + handleModalDeleteProfileCancel = () => this.setState({ openModalDeleteProfile: false }); - handleDeleteContact = (authenticationType) => { + handleDeleteContact = (contactInfoType) => { - if (authenticationType !== this.state.controlsType) { - this.setState({ controlsType: authenticationType }); + if (contactInfoType !== this.state.controlsType) { + this.setState({ controlsType: contactInfoType }); } this.handleContactInfoDelete(); - // console.log('===================================='); - // console.log('DELETE CONTACT INFO'); - // console.log('===================================='); - - }; - handleEditContact = () => { - this.handleCloseContactInfo(); - // console.log('===================================='); - // console.log('EDIT CONTACT INFO'); - // console.log('===================================='); }; + handleEditContact = () => this.handleCloseContactInfo(); render() { @@ -126,7 +123,7 @@ class EditUser extends Component{ const { selectedUser } = this.props; - const { openModal, controlsType, profileUserModel} = this.state; + const { openModal, openModalDeleteProfile, openModalDeleteAvatar, controlsType, profileUserModel} = this.state; // const { classes, coldef, selectedUser } = this.props; // const { url, path } = this.props.match; @@ -147,14 +144,18 @@ class EditUser extends Component{ onHandleCloseContactInfo={this.handleCloseContactInfo} handleDeleteContact={this.handleDeleteContact} handleEditContact={this.handleEditContact} + handleDeleteProfile={this.handleDeleteProfilConfirmed} /> - - + + + + + { diff --git a/src/components/shared/ui/modal/modal.css b/src/components/shared/ui/modal/modal.css index aa7f042..47b09f6 100644 --- a/src/components/shared/ui/modal/modal.css +++ b/src/components/shared/ui/modal/modal.css @@ -26,16 +26,20 @@ font-size: 18px; color: #24262b; } -.modal-control-btn { +.modal-control-btn, +.pfofile-delete-btn { text-align: right; } +.modal-control-btn button , +.pfofile-delete-btn button { + font-weight: 700; +} .modal-control-btn button { color: #0086f8; - font-weight: 700; } - .avatar-alert-delete, -.contact-alert-delete { +.contact-alert-delete, +.profile-delete { padding: 20px; max-width: 500px; } \ No newline at end of file -- GitLab From b5ba657d0ae498511724782f938a32cdff905d28 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Wed, 14 Nov 2018 18:26:45 +0200 Subject: [PATCH 182/249] Minor changes --- .../generic_data/access_status/access_status.js | 12 +++++++++--- .../generic_data/personal_info/personal_info.js | 1 - src/components/edit_user/index.js | 4 ++++ 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/components/edit_user/generic_data/access_status/access_status.js b/src/components/edit_user/generic_data/access_status/access_status.js index 6f551bc..2ee17c0 100644 --- a/src/components/edit_user/generic_data/access_status/access_status.js +++ b/src/components/edit_user/generic_data/access_status/access_status.js @@ -1,19 +1,25 @@ import React from "react"; import { withStyles } from "@material-ui/core/styles"; +import classNames from "classnames"; import TextField from "@material-ui/core/TextField"; import MenuItem from "@material-ui/core/MenuItem"; import { accountStatusVariations } from "../../../../utils/services/accounts"; -const styles = theme => ({}); +const styles = theme => ({ + rowControlWrapper: { + position: 'relative' + } +}); const AccessStatus = (props) => { const { classes, parentState, selectedUser, onHandleChange } = props; - +; return ( -
+
+ Edited {selectedUser[0].accessstatus && parentState.profileUserModel.accountStatus ? ({ rowControlWrapper: { diff --git a/src/components/edit_user/index.js b/src/components/edit_user/index.js index da61474..87540bc 100644 --- a/src/components/edit_user/index.js +++ b/src/components/edit_user/index.js @@ -121,6 +121,10 @@ class EditUser extends Component{ * @const {string} path */ + console.log('===================================='); + console.log(this.state); + console.log('===================================='); + const { selectedUser } = this.props; const { openModal, openModalDeleteProfile, openModalDeleteAvatar, controlsType, profileUserModel} = this.state; -- GitLab From f38b345ad39f7c86939eb3de2a6507fefe28e53e Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Thu, 15 Nov 2018 12:29:50 +0200 Subject: [PATCH 183/249] NY-5380 compiled proto files --- src/utils/grpc_proto/account.proto | 66 +- src/utils/grpc_proto/admin_account.proto | 15 + src/utils/grpc_proto/auth.proto | 4 + src/utils/grpc_proto/generated/account_pb.js | 1652 +++++++---------- .../generated/account_pb_service.js | 72 +- .../grpc_proto/generated/admin_account_pb.js | 436 ++++- .../generated/admin_account_pb_service.js | 35 + src/utils/grpc_proto/generated/auth_pb.js | 5 +- 8 files changed, 1253 insertions(+), 1032 deletions(-) diff --git a/src/utils/grpc_proto/account.proto b/src/utils/grpc_proto/account.proto index 85b2cac..32bbdce 100644 --- a/src/utils/grpc_proto/account.proto +++ b/src/utils/grpc_proto/account.proto @@ -15,18 +15,17 @@ option java_outer_classname = "Account"; service AccountService { rpc createPendingAccount(CreatePendingAccountRequest) returns (CreatePendingAccountResponse); rpc completePendingAccountCreation(CompletePendingAccountCreationRequest) returns (AccountResponse); - rpc createAccount(CreateAccountRequest) returns (AccountResponse); rpc getAllAccountsByProfileId(AccountsByProfileIdRequest) returns (AccountsResponse); rpc getAccountByAccountId(AccountByAccountIdRequest) returns (AccountResponse); rpc getAccountByUsername(GetByUsernameRequest) returns (AccountResponse); rpc getAccountByQrCode(GetByQrCodeRequest) returns (AccountResponse); rpc getAccountByAuthenticationProvider(AccountByAuthenticationProviderRequest) returns (AccountResponse); rpc updateAccount (UpdateAccountRequest) returns (AccountResponse); - rpc updateProfile (UpdateProfileRequest) returns (ProfileResponse); rpc deleteAccount (DeleteAccountRequest) returns (StatusResponse); rpc deleteProfile (DeleteProfileRequest) returns (StatusResponse); rpc addAuthenticationProviderToProfile(AddAuthenticationProviderRequest) returns (StatusResponse); rpc deleteAuthenticationProviderFromProfile(DeleteAuthenticationProviderRequest) returns (StatusResponse); + rpc updateAuthenticationProviderForProfile(UpdateAuthenticationProviderRequest) returns (StatusResponse); rpc addContactInfoToAccount(AddContactInfoRequest) returns (StatusResponse); rpc deleteContactInfoFromAccount(DeleteContactInfoRequest) returns (StatusResponse); rpc editContactInfoForAccount(EditContactInfoRequest) returns (StatusResponse); @@ -75,7 +74,7 @@ message CreatePendingAccountRequest { //NOT to be used for newly added fields. message CompletePendingAccountCreationRequest { string accountId = 1; - bytes avatar = 2; + string avatar = 2; string accountMark = 3; string accountName = 4; string firstName = 5; @@ -86,11 +85,6 @@ message CompletePendingAccountCreationRequest { AccessStatus accessStatus = 12; } -message CreateAccountRequest { - AuthenticationType authenticationType = 1; // Request for creating an account by phone number, email address, etc. - string authenticationProvider = 2; -} - message AccountsByProfileIdRequest { string profileId = 1; } @@ -116,7 +110,7 @@ message AccountByAuthenticationProviderRequest { //NOT to be used for newly added fields. message UpdateAccountRequest { string accountId = 1; - bytes avatar = 2; + string avatar = 2; string accountMark = 3; string accountName = 4; string firstName = 5; @@ -151,6 +145,12 @@ message DeleteAuthenticationProviderRequest { AuthProviderDetails authenticationProvider = 2; } +message UpdateAuthenticationProviderRequest { + string profileId = 1; + AuthProviderDetails oldAuthProvider = 2; + AuthProviderDetails updatedAuthProvider = 3; +} + message DeleteContactInfoRequest { string accountId = 1; ContactDetails contactInfo = 2; @@ -174,14 +174,6 @@ message CreatePendingAccountResponse { } } -//PREVIOUSLY RESERVED FIELD NUMBERS: 3 -//NOT to be used for newly added fields. -message UpdateProfileRequest { - string profileId = 1; - string passcode = 4; - string defaultAccountId = 5; -} - message AuthProviderDetails { AuthenticationType authenticationType = 1; // Request for creating an account by phone number, email address, etc. string authenticationProvider = 2; @@ -200,7 +192,7 @@ message AccountDetails { string profileId = 2; string authenticationIdentifier = 3; string authenticationType = 4; - bytes avatar = 5; + string avatar = 5; string accountMark = 6; string accountName = 7; string firstName = 8; @@ -221,40 +213,40 @@ message AccountResponse { } } -message StatusResponse { +//PREVIOUSLY RESERVED FIELD NUMBERS: 3 +//NOT to be used for newly added fields. +message ProfileDetails { + string profileId = 1; + repeated AuthProviderDetails authProviders = 2; + string passcode = 4; + string defaultAccountId = 5; +} + +message ProfileResponse { uint64 requestId = 1; oneof result { ErrorResponse error = 2; - string status = 3; + ProfileDetails profileDetails = 3; } } -message AccountsList { - repeated AccountDetails accountDetails = 1; -} - -message AccountsResponse { +message StatusResponse { uint64 requestId = 1; oneof result { ErrorResponse error = 2; - AccountsList accountsResponse = 3; + string status = 3; } } -//PREVIOUSLY RESERVED FIELD NUMBERS: 3 -//NOT to be used for newly added fields. -message ProfileDetails { - string profileId = 1; - repeated AuthProviderDetails authProviders = 2; - string passcode = 4; - string defaultAccountId = 5; +message AccountsList { + repeated AccountDetails accountDetails = 1; } -message ProfileResponse { +message AccountsResponse { uint64 requestId = 1; oneof result { ErrorResponse error = 2; - ProfileDetails profileDetails = 3; + AccountsList accountsResponse = 3; } } @@ -284,7 +276,7 @@ message SearchResponse { message SearchResultDetails { string accountId = 1; - bytes avatar = 2; + string avatar = 2; string firstName = 3; string lastName = 4; } @@ -338,6 +330,8 @@ message ErrorResponse { QR_CODE_NOT_FOUND = 44; MULTIPLE_INVALID_PARAMETERS = 45; INVALID_ACCESS_STATUS = 46; + AUTH_PROVIDER_NOT_FOUND = 47; + ERROR_UPDATING_AUTH_PROVIDER = 48; } Cause cause = 1; string message = 2; diff --git a/src/utils/grpc_proto/admin_account.proto b/src/utils/grpc_proto/admin_account.proto index 7c5a6ab..295d721 100644 --- a/src/utils/grpc_proto/admin_account.proto +++ b/src/utils/grpc_proto/admin_account.proto @@ -17,6 +17,7 @@ option java_outer_classname = "AdminAccount"; service AdminAccountService { rpc getAllAccounts(GetAllAccountsRequest) returns (AccountsAdminResponse); rpc getCountOfAllAccounts(EmptyRequest) returns (AccountsCount); + rpc createAccount(CreateAccountRequest) returns (account.AccountResponse); } message ColumnFilter { @@ -53,4 +54,18 @@ message AccountsAdminResponse { account.ErrorResponse error = 1; AccountAdminResponse accountsResponse = 2; } +} + +message CreateAccountRequest { + account.AuthenticationType authenticationType = 1; // Request for creating an account by phone number, email address, etc. + string authenticationProvider = 2; + string avatar = 3; + string accountMark = 4; + string accountName = 5; + string firstName = 6; + string lastName = 7; + string username = 8; + repeated account.Role roles = 9; + account.AccessStatus accessStatus = 10; + string qrCode = 11; } \ No newline at end of file diff --git a/src/utils/grpc_proto/auth.proto b/src/utils/grpc_proto/auth.proto index 1ed866b..6b1077c 100644 --- a/src/utils/grpc_proto/auth.proto +++ b/src/utils/grpc_proto/auth.proto @@ -119,6 +119,10 @@ message ErrorResponse { MAX_DEVICE_FAILED_ATTEMPTS_REACHED = 15; REFRESH_TOKEN_INVALID = 16; ACCESS_TOKEN_INVALID_ROLE = 17; + EXPIRED_REFRESH_TOKEN = 18; + ACCESS_DISABLED = 19; + ACCESS_SUSPENDED = 20; + } Cause cause = 1; string message = 2; diff --git a/src/utils/grpc_proto/generated/account_pb.js b/src/utils/grpc_proto/generated/account_pb.js index 7e40758..112502e 100644 --- a/src/utils/grpc_proto/generated/account_pb.js +++ b/src/utils/grpc_proto/generated/account_pb.js @@ -27,7 +27,6 @@ goog.exportSymbol('proto.account.AuthenticationType', null, global); goog.exportSymbol('proto.account.CompletePendingAccountCreationRequest', null, global); goog.exportSymbol('proto.account.ContactDetails', null, global); goog.exportSymbol('proto.account.ContactType', null, global); -goog.exportSymbol('proto.account.CreateAccountRequest', null, global); goog.exportSymbol('proto.account.CreatePendingAccountRequest', null, global); goog.exportSymbol('proto.account.CreatePendingAccountResponse', null, global); goog.exportSymbol('proto.account.Date', null, global); @@ -50,7 +49,7 @@ goog.exportSymbol('proto.account.SearchResponse', null, global); goog.exportSymbol('proto.account.SearchResultDetails', null, global); goog.exportSymbol('proto.account.StatusResponse', null, global); goog.exportSymbol('proto.account.UpdateAccountRequest', null, global); -goog.exportSymbol('proto.account.UpdateProfileRequest', null, global); +goog.exportSymbol('proto.account.UpdateAuthenticationProviderRequest', null, global); /** * Generated by JsPbCodeGenerator. @@ -275,7 +274,7 @@ proto.account.CompletePendingAccountCreationRequest.prototype.toObject = functio proto.account.CompletePendingAccountCreationRequest.toObject = function(includeInstance, msg) { var f, obj = { accountid: jspb.Message.getFieldWithDefault(msg, 1, ""), - avatar: msg.getAvatar_asB64(), + avatar: jspb.Message.getFieldWithDefault(msg, 2, ""), accountmark: jspb.Message.getFieldWithDefault(msg, 3, ""), accountname: jspb.Message.getFieldWithDefault(msg, 4, ""), firstname: jspb.Message.getFieldWithDefault(msg, 5, ""), @@ -325,7 +324,7 @@ proto.account.CompletePendingAccountCreationRequest.deserializeBinaryFromReader msg.setAccountid(value); break; case 2: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); + var value = /** @type {string} */ (reader.readString()); msg.setAvatar(value); break; case 3: @@ -396,9 +395,9 @@ proto.account.CompletePendingAccountCreationRequest.serializeBinaryToWriter = fu f ); } - f = message.getAvatar_asU8(); + f = message.getAvatar(); if (f.length > 0) { - writer.writeBytes( + writer.writeString( 2, f ); @@ -478,41 +477,17 @@ proto.account.CompletePendingAccountCreationRequest.prototype.setAccountid = fun /** - * optional bytes avatar = 2; - * @return {!(string|Uint8Array)} - */ -proto.account.CompletePendingAccountCreationRequest.prototype.getAvatar = function() { - return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * optional bytes avatar = 2; - * This is a type-conversion wrapper around `getAvatar()` + * optional string avatar = 2; * @return {string} */ -proto.account.CompletePendingAccountCreationRequest.prototype.getAvatar_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getAvatar())); -}; - - -/** - * optional bytes avatar = 2; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getAvatar()` - * @return {!Uint8Array} - */ -proto.account.CompletePendingAccountCreationRequest.prototype.getAvatar_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getAvatar())); +proto.account.CompletePendingAccountCreationRequest.prototype.getAvatar = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); }; -/** @param {!(string|Uint8Array)} value */ +/** @param {string} value */ proto.account.CompletePendingAccountCreationRequest.prototype.setAvatar = function(value) { - jspb.Message.setProto3BytesField(this, 2, value); + jspb.Message.setProto3StringField(this, 2, value); }; @@ -651,175 +626,6 @@ proto.account.CompletePendingAccountCreationRequest.prototype.setAccessstatus = -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.account.CreateAccountRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.account.CreateAccountRequest, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.account.CreateAccountRequest.displayName = 'proto.account.CreateAccountRequest'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.account.CreateAccountRequest.prototype.toObject = function(opt_includeInstance) { - return proto.account.CreateAccountRequest.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.account.CreateAccountRequest} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.account.CreateAccountRequest.toObject = function(includeInstance, msg) { - var f, obj = { - authenticationtype: jspb.Message.getFieldWithDefault(msg, 1, 0), - authenticationprovider: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.account.CreateAccountRequest} - */ -proto.account.CreateAccountRequest.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.account.CreateAccountRequest; - return proto.account.CreateAccountRequest.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.account.CreateAccountRequest} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.account.CreateAccountRequest} - */ -proto.account.CreateAccountRequest.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {!proto.account.AuthenticationType} */ (reader.readEnum()); - msg.setAuthenticationtype(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setAuthenticationprovider(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.account.CreateAccountRequest.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.account.CreateAccountRequest.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.account.CreateAccountRequest} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.account.CreateAccountRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getAuthenticationtype(); - if (f !== 0.0) { - writer.writeEnum( - 1, - f - ); - } - f = message.getAuthenticationprovider(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } -}; - - -/** - * optional AuthenticationType authenticationType = 1; - * @return {!proto.account.AuthenticationType} - */ -proto.account.CreateAccountRequest.prototype.getAuthenticationtype = function() { - return /** @type {!proto.account.AuthenticationType} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); -}; - - -/** @param {!proto.account.AuthenticationType} value */ -proto.account.CreateAccountRequest.prototype.setAuthenticationtype = function(value) { - jspb.Message.setProto3EnumField(this, 1, value); -}; - - -/** - * optional string authenticationProvider = 2; - * @return {string} - */ -proto.account.CreateAccountRequest.prototype.getAuthenticationprovider = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** @param {string} value */ -proto.account.CreateAccountRequest.prototype.setAuthenticationprovider = function(value) { - jspb.Message.setProto3StringField(this, 2, value); -}; - - - /** * Generated by JsPbCodeGenerator. * @param {Array=} opt_data Optional initial data array, typically from a @@ -1523,7 +1329,7 @@ proto.account.UpdateAccountRequest.prototype.toObject = function(opt_includeInst proto.account.UpdateAccountRequest.toObject = function(includeInstance, msg) { var f, obj = { accountid: jspb.Message.getFieldWithDefault(msg, 1, ""), - avatar: msg.getAvatar_asB64(), + avatar: jspb.Message.getFieldWithDefault(msg, 2, ""), accountmark: jspb.Message.getFieldWithDefault(msg, 3, ""), accountname: jspb.Message.getFieldWithDefault(msg, 4, ""), firstname: jspb.Message.getFieldWithDefault(msg, 5, ""), @@ -1573,7 +1379,7 @@ proto.account.UpdateAccountRequest.deserializeBinaryFromReader = function(msg, r msg.setAccountid(value); break; case 2: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); + var value = /** @type {string} */ (reader.readString()); msg.setAvatar(value); break; case 3: @@ -1645,9 +1451,9 @@ proto.account.UpdateAccountRequest.serializeBinaryToWriter = function(message, w f ); } - f = message.getAvatar_asU8(); + f = message.getAvatar(); if (f.length > 0) { - writer.writeBytes( + writer.writeString( 2, f ); @@ -1728,41 +1534,17 @@ proto.account.UpdateAccountRequest.prototype.setAccountid = function(value) { /** - * optional bytes avatar = 2; - * @return {!(string|Uint8Array)} - */ -proto.account.UpdateAccountRequest.prototype.getAvatar = function() { - return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * optional bytes avatar = 2; - * This is a type-conversion wrapper around `getAvatar()` + * optional string avatar = 2; * @return {string} */ -proto.account.UpdateAccountRequest.prototype.getAvatar_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getAvatar())); -}; - - -/** - * optional bytes avatar = 2; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getAvatar()` - * @return {!Uint8Array} - */ -proto.account.UpdateAccountRequest.prototype.getAvatar_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getAvatar())); +proto.account.UpdateAccountRequest.prototype.getAvatar = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); }; -/** @param {!(string|Uint8Array)} value */ +/** @param {string} value */ proto.account.UpdateAccountRequest.prototype.setAvatar = function(value) { - jspb.Message.setProto3BytesField(this, 2, value); + jspb.Message.setProto3StringField(this, 2, value); }; @@ -2768,12 +2550,12 @@ proto.account.DeleteAuthenticationProviderRequest.prototype.hasAuthenticationpro * @extends {jspb.Message} * @constructor */ -proto.account.DeleteContactInfoRequest = function(opt_data) { +proto.account.UpdateAuthenticationProviderRequest = function(opt_data) { jspb.Message.initialize(this, opt_data, 0, -1, null, null); }; -goog.inherits(proto.account.DeleteContactInfoRequest, jspb.Message); +goog.inherits(proto.account.UpdateAuthenticationProviderRequest, jspb.Message); if (goog.DEBUG && !COMPILED) { - proto.account.DeleteContactInfoRequest.displayName = 'proto.account.DeleteContactInfoRequest'; + proto.account.UpdateAuthenticationProviderRequest.displayName = 'proto.account.UpdateAuthenticationProviderRequest'; } @@ -2788,8 +2570,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * for transitional soy proto support: http://goto/soy-param-migration * @return {!Object} */ -proto.account.DeleteContactInfoRequest.prototype.toObject = function(opt_includeInstance) { - return proto.account.DeleteContactInfoRequest.toObject(opt_includeInstance, this); +proto.account.UpdateAuthenticationProviderRequest.prototype.toObject = function(opt_includeInstance) { + return proto.account.UpdateAuthenticationProviderRequest.toObject(opt_includeInstance, this); }; @@ -2798,14 +2580,15 @@ proto.account.DeleteContactInfoRequest.prototype.toObject = function(opt_include * @param {boolean|undefined} includeInstance Whether to include the JSPB * instance for transitional soy proto support: * http://goto/soy-param-migration - * @param {!proto.account.DeleteContactInfoRequest} msg The msg instance to transform. + * @param {!proto.account.UpdateAuthenticationProviderRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.account.DeleteContactInfoRequest.toObject = function(includeInstance, msg) { +proto.account.UpdateAuthenticationProviderRequest.toObject = function(includeInstance, msg) { var f, obj = { - accountid: jspb.Message.getFieldWithDefault(msg, 1, ""), - contactinfo: (f = msg.getContactinfo()) && proto.account.ContactDetails.toObject(includeInstance, f) + profileid: jspb.Message.getFieldWithDefault(msg, 1, ""), + oldauthprovider: (f = msg.getOldauthprovider()) && proto.account.AuthProviderDetails.toObject(includeInstance, f), + updatedauthprovider: (f = msg.getUpdatedauthprovider()) && proto.account.AuthProviderDetails.toObject(includeInstance, f) }; if (includeInstance) { @@ -2819,23 +2602,23 @@ proto.account.DeleteContactInfoRequest.toObject = function(includeInstance, msg) /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.account.DeleteContactInfoRequest} + * @return {!proto.account.UpdateAuthenticationProviderRequest} */ -proto.account.DeleteContactInfoRequest.deserializeBinary = function(bytes) { +proto.account.UpdateAuthenticationProviderRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.account.DeleteContactInfoRequest; - return proto.account.DeleteContactInfoRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.account.UpdateAuthenticationProviderRequest; + return proto.account.UpdateAuthenticationProviderRequest.deserializeBinaryFromReader(msg, reader); }; /** * Deserializes binary data (in protobuf wire format) from the * given reader into the given message object. - * @param {!proto.account.DeleteContactInfoRequest} msg The message object to deserialize into. + * @param {!proto.account.UpdateAuthenticationProviderRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.account.DeleteContactInfoRequest} + * @return {!proto.account.UpdateAuthenticationProviderRequest} */ -proto.account.DeleteContactInfoRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.account.UpdateAuthenticationProviderRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -2844,12 +2627,17 @@ proto.account.DeleteContactInfoRequest.deserializeBinaryFromReader = function(ms switch (field) { case 1: var value = /** @type {string} */ (reader.readString()); - msg.setAccountid(value); + msg.setProfileid(value); break; case 2: - var value = new proto.account.ContactDetails; - reader.readMessage(value,proto.account.ContactDetails.deserializeBinaryFromReader); - msg.setContactinfo(value); + var value = new proto.account.AuthProviderDetails; + reader.readMessage(value,proto.account.AuthProviderDetails.deserializeBinaryFromReader); + msg.setOldauthprovider(value); + break; + case 3: + var value = new proto.account.AuthProviderDetails; + reader.readMessage(value,proto.account.AuthProviderDetails.deserializeBinaryFromReader); + msg.setUpdatedauthprovider(value); break; default: reader.skipField(); @@ -2864,9 +2652,9 @@ proto.account.DeleteContactInfoRequest.deserializeBinaryFromReader = function(ms * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.account.DeleteContactInfoRequest.prototype.serializeBinary = function() { +proto.account.UpdateAuthenticationProviderRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.account.DeleteContactInfoRequest.serializeBinaryToWriter(this, writer); + proto.account.UpdateAuthenticationProviderRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -2874,63 +2662,71 @@ proto.account.DeleteContactInfoRequest.prototype.serializeBinary = function() { /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.account.DeleteContactInfoRequest} message + * @param {!proto.account.UpdateAuthenticationProviderRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.account.DeleteContactInfoRequest.serializeBinaryToWriter = function(message, writer) { +proto.account.UpdateAuthenticationProviderRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getAccountid(); + f = message.getProfileid(); if (f.length > 0) { writer.writeString( 1, f ); } - f = message.getContactinfo(); + f = message.getOldauthprovider(); if (f != null) { writer.writeMessage( 2, f, - proto.account.ContactDetails.serializeBinaryToWriter + proto.account.AuthProviderDetails.serializeBinaryToWriter + ); + } + f = message.getUpdatedauthprovider(); + if (f != null) { + writer.writeMessage( + 3, + f, + proto.account.AuthProviderDetails.serializeBinaryToWriter ); } }; /** - * optional string accountId = 1; + * optional string profileId = 1; * @return {string} */ -proto.account.DeleteContactInfoRequest.prototype.getAccountid = function() { +proto.account.UpdateAuthenticationProviderRequest.prototype.getProfileid = function() { return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; /** @param {string} value */ -proto.account.DeleteContactInfoRequest.prototype.setAccountid = function(value) { +proto.account.UpdateAuthenticationProviderRequest.prototype.setProfileid = function(value) { jspb.Message.setProto3StringField(this, 1, value); }; /** - * optional ContactDetails contactInfo = 2; - * @return {?proto.account.ContactDetails} + * optional AuthProviderDetails oldAuthProvider = 2; + * @return {?proto.account.AuthProviderDetails} */ -proto.account.DeleteContactInfoRequest.prototype.getContactinfo = function() { - return /** @type{?proto.account.ContactDetails} */ ( - jspb.Message.getWrapperField(this, proto.account.ContactDetails, 2)); +proto.account.UpdateAuthenticationProviderRequest.prototype.getOldauthprovider = function() { + return /** @type{?proto.account.AuthProviderDetails} */ ( + jspb.Message.getWrapperField(this, proto.account.AuthProviderDetails, 2)); }; -/** @param {?proto.account.ContactDetails|undefined} value */ -proto.account.DeleteContactInfoRequest.prototype.setContactinfo = function(value) { +/** @param {?proto.account.AuthProviderDetails|undefined} value */ +proto.account.UpdateAuthenticationProviderRequest.prototype.setOldauthprovider = function(value) { jspb.Message.setWrapperField(this, 2, value); }; -proto.account.DeleteContactInfoRequest.prototype.clearContactinfo = function() { - this.setContactinfo(undefined); +proto.account.UpdateAuthenticationProviderRequest.prototype.clearOldauthprovider = function() { + this.setOldauthprovider(undefined); }; @@ -2938,23 +2734,239 @@ proto.account.DeleteContactInfoRequest.prototype.clearContactinfo = function() { * Returns whether this field is set. * @return {!boolean} */ -proto.account.DeleteContactInfoRequest.prototype.hasContactinfo = function() { +proto.account.UpdateAuthenticationProviderRequest.prototype.hasOldauthprovider = function() { return jspb.Message.getField(this, 2) != null; }; - /** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor + * optional AuthProviderDetails updatedAuthProvider = 3; + * @return {?proto.account.AuthProviderDetails} */ -proto.account.EditContactInfoRequest = function(opt_data) { +proto.account.UpdateAuthenticationProviderRequest.prototype.getUpdatedauthprovider = function() { + return /** @type{?proto.account.AuthProviderDetails} */ ( + jspb.Message.getWrapperField(this, proto.account.AuthProviderDetails, 3)); +}; + + +/** @param {?proto.account.AuthProviderDetails|undefined} value */ +proto.account.UpdateAuthenticationProviderRequest.prototype.setUpdatedauthprovider = function(value) { + jspb.Message.setWrapperField(this, 3, value); +}; + + +proto.account.UpdateAuthenticationProviderRequest.prototype.clearUpdatedauthprovider = function() { + this.setUpdatedauthprovider(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {!boolean} + */ +proto.account.UpdateAuthenticationProviderRequest.prototype.hasUpdatedauthprovider = function() { + return jspb.Message.getField(this, 3) != null; +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.account.DeleteContactInfoRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.account.DeleteContactInfoRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.account.DeleteContactInfoRequest.displayName = 'proto.account.DeleteContactInfoRequest'; +} + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.account.DeleteContactInfoRequest.prototype.toObject = function(opt_includeInstance) { + return proto.account.DeleteContactInfoRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.account.DeleteContactInfoRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.DeleteContactInfoRequest.toObject = function(includeInstance, msg) { + var f, obj = { + accountid: jspb.Message.getFieldWithDefault(msg, 1, ""), + contactinfo: (f = msg.getContactinfo()) && proto.account.ContactDetails.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.account.DeleteContactInfoRequest} + */ +proto.account.DeleteContactInfoRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.account.DeleteContactInfoRequest; + return proto.account.DeleteContactInfoRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.account.DeleteContactInfoRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.account.DeleteContactInfoRequest} + */ +proto.account.DeleteContactInfoRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setAccountid(value); + break; + case 2: + var value = new proto.account.ContactDetails; + reader.readMessage(value,proto.account.ContactDetails.deserializeBinaryFromReader); + msg.setContactinfo(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.account.DeleteContactInfoRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.account.DeleteContactInfoRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.account.DeleteContactInfoRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.DeleteContactInfoRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getAccountid(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getContactinfo(); + if (f != null) { + writer.writeMessage( + 2, + f, + proto.account.ContactDetails.serializeBinaryToWriter + ); + } +}; + + +/** + * optional string accountId = 1; + * @return {string} + */ +proto.account.DeleteContactInfoRequest.prototype.getAccountid = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** @param {string} value */ +proto.account.DeleteContactInfoRequest.prototype.setAccountid = function(value) { + jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional ContactDetails contactInfo = 2; + * @return {?proto.account.ContactDetails} + */ +proto.account.DeleteContactInfoRequest.prototype.getContactinfo = function() { + return /** @type{?proto.account.ContactDetails} */ ( + jspb.Message.getWrapperField(this, proto.account.ContactDetails, 2)); +}; + + +/** @param {?proto.account.ContactDetails|undefined} value */ +proto.account.DeleteContactInfoRequest.prototype.setContactinfo = function(value) { + jspb.Message.setWrapperField(this, 2, value); +}; + + +proto.account.DeleteContactInfoRequest.prototype.clearContactinfo = function() { + this.setContactinfo(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {!boolean} + */ +proto.account.DeleteContactInfoRequest.prototype.hasContactinfo = function() { + return jspb.Message.getField(this, 2) != null; +}; + + + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.account.EditContactInfoRequest = function(opt_data) { jspb.Message.initialize(this, opt_data, 0, -1, null, null); }; goog.inherits(proto.account.EditContactInfoRequest, jspb.Message); @@ -3582,12 +3594,12 @@ proto.account.CreatePendingAccountResponse.prototype.hasPendingaccountdetails = * @extends {jspb.Message} * @constructor */ -proto.account.UpdateProfileRequest = function(opt_data) { +proto.account.AuthProviderDetails = function(opt_data) { jspb.Message.initialize(this, opt_data, 0, -1, null, null); }; -goog.inherits(proto.account.UpdateProfileRequest, jspb.Message); +goog.inherits(proto.account.AuthProviderDetails, jspb.Message); if (goog.DEBUG && !COMPILED) { - proto.account.UpdateProfileRequest.displayName = 'proto.account.UpdateProfileRequest'; + proto.account.AuthProviderDetails.displayName = 'proto.account.AuthProviderDetails'; } @@ -3602,8 +3614,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * for transitional soy proto support: http://goto/soy-param-migration * @return {!Object} */ -proto.account.UpdateProfileRequest.prototype.toObject = function(opt_includeInstance) { - return proto.account.UpdateProfileRequest.toObject(opt_includeInstance, this); +proto.account.AuthProviderDetails.prototype.toObject = function(opt_includeInstance) { + return proto.account.AuthProviderDetails.toObject(opt_includeInstance, this); }; @@ -3612,15 +3624,14 @@ proto.account.UpdateProfileRequest.prototype.toObject = function(opt_includeInst * @param {boolean|undefined} includeInstance Whether to include the JSPB * instance for transitional soy proto support: * http://goto/soy-param-migration - * @param {!proto.account.UpdateProfileRequest} msg The msg instance to transform. + * @param {!proto.account.AuthProviderDetails} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.account.UpdateProfileRequest.toObject = function(includeInstance, msg) { +proto.account.AuthProviderDetails.toObject = function(includeInstance, msg) { var f, obj = { - profileid: jspb.Message.getFieldWithDefault(msg, 1, ""), - passcode: jspb.Message.getFieldWithDefault(msg, 4, ""), - defaultaccountid: jspb.Message.getFieldWithDefault(msg, 5, "") + authenticationtype: jspb.Message.getFieldWithDefault(msg, 1, 0), + authenticationprovider: jspb.Message.getFieldWithDefault(msg, 2, "") }; if (includeInstance) { @@ -3634,23 +3645,23 @@ proto.account.UpdateProfileRequest.toObject = function(includeInstance, msg) { /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.account.UpdateProfileRequest} + * @return {!proto.account.AuthProviderDetails} */ -proto.account.UpdateProfileRequest.deserializeBinary = function(bytes) { +proto.account.AuthProviderDetails.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.account.UpdateProfileRequest; - return proto.account.UpdateProfileRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.account.AuthProviderDetails; + return proto.account.AuthProviderDetails.deserializeBinaryFromReader(msg, reader); }; /** * Deserializes binary data (in protobuf wire format) from the * given reader into the given message object. - * @param {!proto.account.UpdateProfileRequest} msg The message object to deserialize into. + * @param {!proto.account.AuthProviderDetails} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.account.UpdateProfileRequest} + * @return {!proto.account.AuthProviderDetails} */ -proto.account.UpdateProfileRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.account.AuthProviderDetails.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -3658,16 +3669,12 @@ proto.account.UpdateProfileRequest.deserializeBinaryFromReader = function(msg, r var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setProfileid(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setPasscode(value); + var value = /** @type {!proto.account.AuthenticationType} */ (reader.readEnum()); + msg.setAuthenticationtype(value); break; - case 5: + case 2: var value = /** @type {string} */ (reader.readString()); - msg.setDefaultaccountid(value); + msg.setAuthenticationprovider(value); break; default: reader.skipField(); @@ -3682,9 +3689,9 @@ proto.account.UpdateProfileRequest.deserializeBinaryFromReader = function(msg, r * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.account.UpdateProfileRequest.prototype.serializeBinary = function() { +proto.account.AuthProviderDetails.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.account.UpdateProfileRequest.serializeBinaryToWriter(this, writer); + proto.account.AuthProviderDetails.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -3692,202 +3699,11 @@ proto.account.UpdateProfileRequest.prototype.serializeBinary = function() { /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.account.UpdateProfileRequest} message + * @param {!proto.account.AuthProviderDetails} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.account.UpdateProfileRequest.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getProfileid(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getPasscode(); - if (f.length > 0) { - writer.writeString( - 4, - f - ); - } - f = message.getDefaultaccountid(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } -}; - - -/** - * optional string profileId = 1; - * @return {string} - */ -proto.account.UpdateProfileRequest.prototype.getProfileid = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** @param {string} value */ -proto.account.UpdateProfileRequest.prototype.setProfileid = function(value) { - jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * optional string passcode = 4; - * @return {string} - */ -proto.account.UpdateProfileRequest.prototype.getPasscode = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** @param {string} value */ -proto.account.UpdateProfileRequest.prototype.setPasscode = function(value) { - jspb.Message.setProto3StringField(this, 4, value); -}; - - -/** - * optional string defaultAccountId = 5; - * @return {string} - */ -proto.account.UpdateProfileRequest.prototype.getDefaultaccountid = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** @param {string} value */ -proto.account.UpdateProfileRequest.prototype.setDefaultaccountid = function(value) { - jspb.Message.setProto3StringField(this, 5, value); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.account.AuthProviderDetails = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.account.AuthProviderDetails, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.account.AuthProviderDetails.displayName = 'proto.account.AuthProviderDetails'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.account.AuthProviderDetails.prototype.toObject = function(opt_includeInstance) { - return proto.account.AuthProviderDetails.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.account.AuthProviderDetails} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.account.AuthProviderDetails.toObject = function(includeInstance, msg) { - var f, obj = { - authenticationtype: jspb.Message.getFieldWithDefault(msg, 1, 0), - authenticationprovider: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; -}; -} - - -/** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.account.AuthProviderDetails} - */ -proto.account.AuthProviderDetails.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.account.AuthProviderDetails; - return proto.account.AuthProviderDetails.deserializeBinaryFromReader(msg, reader); -}; - - -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.account.AuthProviderDetails} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.account.AuthProviderDetails} - */ -proto.account.AuthProviderDetails.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {!proto.account.AuthenticationType} */ (reader.readEnum()); - msg.setAuthenticationtype(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setAuthenticationprovider(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; -}; - - -/** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} - */ -proto.account.AuthProviderDetails.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.account.AuthProviderDetails.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); -}; - - -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.account.AuthProviderDetails} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.account.AuthProviderDetails.serializeBinaryToWriter = function(message, writer) { +proto.account.AuthProviderDetails.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getAuthenticationtype(); if (f !== 0.0) { @@ -4190,7 +4006,7 @@ proto.account.AccountDetails.toObject = function(includeInstance, msg) { profileid: jspb.Message.getFieldWithDefault(msg, 2, ""), authenticationidentifier: jspb.Message.getFieldWithDefault(msg, 3, ""), authenticationtype: jspb.Message.getFieldWithDefault(msg, 4, ""), - avatar: msg.getAvatar_asB64(), + avatar: jspb.Message.getFieldWithDefault(msg, 5, ""), accountmark: jspb.Message.getFieldWithDefault(msg, 6, ""), accountname: jspb.Message.getFieldWithDefault(msg, 7, ""), firstname: jspb.Message.getFieldWithDefault(msg, 8, ""), @@ -4255,7 +4071,7 @@ proto.account.AccountDetails.deserializeBinaryFromReader = function(msg, reader) msg.setAuthenticationtype(value); break; case 5: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); + var value = /** @type {string} */ (reader.readString()); msg.setAvatar(value); break; case 6: @@ -4357,9 +4173,9 @@ proto.account.AccountDetails.serializeBinaryToWriter = function(message, writer) f ); } - f = message.getAvatar_asU8(); + f = message.getAvatar(); if (f.length > 0) { - writer.writeBytes( + writer.writeString( 5, f ); @@ -4500,41 +4316,17 @@ proto.account.AccountDetails.prototype.setAuthenticationtype = function(value) { /** - * optional bytes avatar = 5; - * @return {!(string|Uint8Array)} - */ -proto.account.AccountDetails.prototype.getAvatar = function() { - return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * optional bytes avatar = 5; - * This is a type-conversion wrapper around `getAvatar()` + * optional string avatar = 5; * @return {string} */ -proto.account.AccountDetails.prototype.getAvatar_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getAvatar())); -}; - - -/** - * optional bytes avatar = 5; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getAvatar()` - * @return {!Uint8Array} - */ -proto.account.AccountDetails.prototype.getAvatar_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getAvatar())); +proto.account.AccountDetails.prototype.getAvatar = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); }; -/** @param {!(string|Uint8Array)} value */ +/** @param {string} value */ proto.account.AccountDetails.prototype.setAvatar = function(value) { - jspb.Message.setProto3BytesField(this, 5, value); + jspb.Message.setProto3StringField(this, 5, value); }; @@ -5000,38 +4792,19 @@ proto.account.AccountResponse.prototype.hasAccountdetails = function() { * @extends {jspb.Message} * @constructor */ -proto.account.StatusResponse = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, proto.account.StatusResponse.oneofGroups_); +proto.account.ProfileDetails = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.account.ProfileDetails.repeatedFields_, null); }; -goog.inherits(proto.account.StatusResponse, jspb.Message); +goog.inherits(proto.account.ProfileDetails, jspb.Message); if (goog.DEBUG && !COMPILED) { - proto.account.StatusResponse.displayName = 'proto.account.StatusResponse'; + proto.account.ProfileDetails.displayName = 'proto.account.ProfileDetails'; } /** - * Oneof group definitions for this message. Each group defines the field - * numbers belonging to that group. When of these fields' value is set, all - * other fields in the group are cleared. During deserialization, if multiple - * fields are encountered for a group, only the last value seen will be kept. - * @private {!Array>} + * List of repeated fields within this message type. + * @private {!Array} * @const */ -proto.account.StatusResponse.oneofGroups_ = [[2,3]]; - -/** - * @enum {number} - */ -proto.account.StatusResponse.ResultCase = { - RESULT_NOT_SET: 0, - ERROR: 2, - STATUS: 3 -}; - -/** - * @return {proto.account.StatusResponse.ResultCase} - */ -proto.account.StatusResponse.prototype.getResultCase = function() { - return /** @type {proto.account.StatusResponse.ResultCase} */(jspb.Message.computeOneofCase(this, proto.account.StatusResponse.oneofGroups_[0])); -}; +proto.account.ProfileDetails.repeatedFields_ = [2]; @@ -5046,8 +4819,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * for transitional soy proto support: http://goto/soy-param-migration * @return {!Object} */ -proto.account.StatusResponse.prototype.toObject = function(opt_includeInstance) { - return proto.account.StatusResponse.toObject(opt_includeInstance, this); +proto.account.ProfileDetails.prototype.toObject = function(opt_includeInstance) { + return proto.account.ProfileDetails.toObject(opt_includeInstance, this); }; @@ -5056,15 +4829,17 @@ proto.account.StatusResponse.prototype.toObject = function(opt_includeInstance) * @param {boolean|undefined} includeInstance Whether to include the JSPB * instance for transitional soy proto support: * http://goto/soy-param-migration - * @param {!proto.account.StatusResponse} msg The msg instance to transform. + * @param {!proto.account.ProfileDetails} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.account.StatusResponse.toObject = function(includeInstance, msg) { +proto.account.ProfileDetails.toObject = function(includeInstance, msg) { var f, obj = { - requestid: jspb.Message.getFieldWithDefault(msg, 1, 0), - error: (f = msg.getError()) && proto.account.ErrorResponse.toObject(includeInstance, f), - status: jspb.Message.getFieldWithDefault(msg, 3, "") + profileid: jspb.Message.getFieldWithDefault(msg, 1, ""), + authprovidersList: jspb.Message.toObjectList(msg.getAuthprovidersList(), + proto.account.AuthProviderDetails.toObject, includeInstance), + passcode: jspb.Message.getFieldWithDefault(msg, 4, ""), + defaultaccountid: jspb.Message.getFieldWithDefault(msg, 5, "") }; if (includeInstance) { @@ -5078,23 +4853,23 @@ proto.account.StatusResponse.toObject = function(includeInstance, msg) { /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.account.StatusResponse} + * @return {!proto.account.ProfileDetails} */ -proto.account.StatusResponse.deserializeBinary = function(bytes) { +proto.account.ProfileDetails.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.account.StatusResponse; - return proto.account.StatusResponse.deserializeBinaryFromReader(msg, reader); -}; + var msg = new proto.account.ProfileDetails; + return proto.account.ProfileDetails.deserializeBinaryFromReader(msg, reader); +}; /** * Deserializes binary data (in protobuf wire format) from the * given reader into the given message object. - * @param {!proto.account.StatusResponse} msg The message object to deserialize into. + * @param {!proto.account.ProfileDetails} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.account.StatusResponse} + * @return {!proto.account.ProfileDetails} */ -proto.account.StatusResponse.deserializeBinaryFromReader = function(msg, reader) { +proto.account.ProfileDetails.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -5102,17 +4877,21 @@ proto.account.StatusResponse.deserializeBinaryFromReader = function(msg, reader) var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {number} */ (reader.readUint64()); - msg.setRequestid(value); + var value = /** @type {string} */ (reader.readString()); + msg.setProfileid(value); break; case 2: - var value = new proto.account.ErrorResponse; - reader.readMessage(value,proto.account.ErrorResponse.deserializeBinaryFromReader); - msg.setError(value); + var value = new proto.account.AuthProviderDetails; + reader.readMessage(value,proto.account.AuthProviderDetails.deserializeBinaryFromReader); + msg.addAuthproviders(value); break; - case 3: + case 4: var value = /** @type {string} */ (reader.readString()); - msg.setStatus(value); + msg.setPasscode(value); + break; + case 5: + var value = /** @type {string} */ (reader.readString()); + msg.setDefaultaccountid(value); break; default: reader.skipField(); @@ -5127,9 +4906,9 @@ proto.account.StatusResponse.deserializeBinaryFromReader = function(msg, reader) * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.account.StatusResponse.prototype.serializeBinary = function() { +proto.account.ProfileDetails.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.account.StatusResponse.serializeBinaryToWriter(this, writer); + proto.account.ProfileDetails.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -5137,31 +4916,38 @@ proto.account.StatusResponse.prototype.serializeBinary = function() { /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.account.StatusResponse} message + * @param {!proto.account.ProfileDetails} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.account.StatusResponse.serializeBinaryToWriter = function(message, writer) { +proto.account.ProfileDetails.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getRequestid(); - if (f !== 0) { - writer.writeUint64( + f = message.getProfileid(); + if (f.length > 0) { + writer.writeString( 1, f ); } - f = message.getError(); - if (f != null) { - writer.writeMessage( + f = message.getAuthprovidersList(); + if (f.length > 0) { + writer.writeRepeatedMessage( 2, f, - proto.account.ErrorResponse.serializeBinaryToWriter + proto.account.AuthProviderDetails.serializeBinaryToWriter ); } - f = /** @type {string} */ (jspb.Message.getField(message, 3)); - if (f != null) { + f = message.getPasscode(); + if (f.length > 0) { writer.writeString( - 3, + 4, + f + ); + } + f = message.getDefaultaccountid(); + if (f.length > 0) { + writer.writeString( + 5, f ); } @@ -5169,76 +4955,78 @@ proto.account.StatusResponse.serializeBinaryToWriter = function(message, writer) /** - * optional uint64 requestId = 1; - * @return {number} + * optional string profileId = 1; + * @return {string} */ -proto.account.StatusResponse.prototype.getRequestid = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +proto.account.ProfileDetails.prototype.getProfileid = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; -/** @param {number} value */ -proto.account.StatusResponse.prototype.setRequestid = function(value) { - jspb.Message.setProto3IntField(this, 1, value); +/** @param {string} value */ +proto.account.ProfileDetails.prototype.setProfileid = function(value) { + jspb.Message.setProto3StringField(this, 1, value); }; /** - * optional ErrorResponse error = 2; - * @return {?proto.account.ErrorResponse} + * repeated AuthProviderDetails authProviders = 2; + * @return {!Array} */ -proto.account.StatusResponse.prototype.getError = function() { - return /** @type{?proto.account.ErrorResponse} */ ( - jspb.Message.getWrapperField(this, proto.account.ErrorResponse, 2)); +proto.account.ProfileDetails.prototype.getAuthprovidersList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.account.AuthProviderDetails, 2)); }; -/** @param {?proto.account.ErrorResponse|undefined} value */ -proto.account.StatusResponse.prototype.setError = function(value) { - jspb.Message.setOneofWrapperField(this, 2, proto.account.StatusResponse.oneofGroups_[0], value); +/** @param {!Array} value */ +proto.account.ProfileDetails.prototype.setAuthprovidersList = function(value) { + jspb.Message.setRepeatedWrapperField(this, 2, value); }; -proto.account.StatusResponse.prototype.clearError = function() { - this.setError(undefined); +/** + * @param {!proto.account.AuthProviderDetails=} opt_value + * @param {number=} opt_index + * @return {!proto.account.AuthProviderDetails} + */ +proto.account.ProfileDetails.prototype.addAuthproviders = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.account.AuthProviderDetails, opt_index); }; -/** - * Returns whether this field is set. - * @return {!boolean} - */ -proto.account.StatusResponse.prototype.hasError = function() { - return jspb.Message.getField(this, 2) != null; +proto.account.ProfileDetails.prototype.clearAuthprovidersList = function() { + this.setAuthprovidersList([]); }; /** - * optional string status = 3; + * optional string passcode = 4; * @return {string} */ -proto.account.StatusResponse.prototype.getStatus = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +proto.account.ProfileDetails.prototype.getPasscode = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); }; /** @param {string} value */ -proto.account.StatusResponse.prototype.setStatus = function(value) { - jspb.Message.setOneofField(this, 3, proto.account.StatusResponse.oneofGroups_[0], value); +proto.account.ProfileDetails.prototype.setPasscode = function(value) { + jspb.Message.setProto3StringField(this, 4, value); }; -proto.account.StatusResponse.prototype.clearStatus = function() { - jspb.Message.setOneofField(this, 3, proto.account.StatusResponse.oneofGroups_[0], undefined); +/** + * optional string defaultAccountId = 5; + * @return {string} + */ +proto.account.ProfileDetails.prototype.getDefaultaccountid = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); }; -/** - * Returns whether this field is set. - * @return {!boolean} - */ -proto.account.StatusResponse.prototype.hasStatus = function() { - return jspb.Message.getField(this, 3) != null; +/** @param {string} value */ +proto.account.ProfileDetails.prototype.setDefaultaccountid = function(value) { + jspb.Message.setProto3StringField(this, 5, value); }; @@ -5253,19 +5041,38 @@ proto.account.StatusResponse.prototype.hasStatus = function() { * @extends {jspb.Message} * @constructor */ -proto.account.AccountsList = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.account.AccountsList.repeatedFields_, null); +proto.account.ProfileResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.account.ProfileResponse.oneofGroups_); }; -goog.inherits(proto.account.AccountsList, jspb.Message); +goog.inherits(proto.account.ProfileResponse, jspb.Message); if (goog.DEBUG && !COMPILED) { - proto.account.AccountsList.displayName = 'proto.account.AccountsList'; + proto.account.ProfileResponse.displayName = 'proto.account.ProfileResponse'; } /** - * List of repeated fields within this message type. - * @private {!Array} + * Oneof group definitions for this message. Each group defines the field + * numbers belonging to that group. When of these fields' value is set, all + * other fields in the group are cleared. During deserialization, if multiple + * fields are encountered for a group, only the last value seen will be kept. + * @private {!Array>} * @const */ -proto.account.AccountsList.repeatedFields_ = [1]; +proto.account.ProfileResponse.oneofGroups_ = [[2,3]]; + +/** + * @enum {number} + */ +proto.account.ProfileResponse.ResultCase = { + RESULT_NOT_SET: 0, + ERROR: 2, + PROFILEDETAILS: 3 +}; + +/** + * @return {proto.account.ProfileResponse.ResultCase} + */ +proto.account.ProfileResponse.prototype.getResultCase = function() { + return /** @type {proto.account.ProfileResponse.ResultCase} */(jspb.Message.computeOneofCase(this, proto.account.ProfileResponse.oneofGroups_[0])); +}; @@ -5280,8 +5087,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * for transitional soy proto support: http://goto/soy-param-migration * @return {!Object} */ -proto.account.AccountsList.prototype.toObject = function(opt_includeInstance) { - return proto.account.AccountsList.toObject(opt_includeInstance, this); +proto.account.ProfileResponse.prototype.toObject = function(opt_includeInstance) { + return proto.account.ProfileResponse.toObject(opt_includeInstance, this); }; @@ -5290,14 +5097,15 @@ proto.account.AccountsList.prototype.toObject = function(opt_includeInstance) { * @param {boolean|undefined} includeInstance Whether to include the JSPB * instance for transitional soy proto support: * http://goto/soy-param-migration - * @param {!proto.account.AccountsList} msg The msg instance to transform. + * @param {!proto.account.ProfileResponse} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.account.AccountsList.toObject = function(includeInstance, msg) { +proto.account.ProfileResponse.toObject = function(includeInstance, msg) { var f, obj = { - accountdetailsList: jspb.Message.toObjectList(msg.getAccountdetailsList(), - proto.account.AccountDetails.toObject, includeInstance) + requestid: jspb.Message.getFieldWithDefault(msg, 1, 0), + error: (f = msg.getError()) && proto.account.ErrorResponse.toObject(includeInstance, f), + profiledetails: (f = msg.getProfiledetails()) && proto.account.ProfileDetails.toObject(includeInstance, f) }; if (includeInstance) { @@ -5311,23 +5119,23 @@ proto.account.AccountsList.toObject = function(includeInstance, msg) { /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.account.AccountsList} + * @return {!proto.account.ProfileResponse} */ -proto.account.AccountsList.deserializeBinary = function(bytes) { +proto.account.ProfileResponse.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.account.AccountsList; - return proto.account.AccountsList.deserializeBinaryFromReader(msg, reader); + var msg = new proto.account.ProfileResponse; + return proto.account.ProfileResponse.deserializeBinaryFromReader(msg, reader); }; /** * Deserializes binary data (in protobuf wire format) from the * given reader into the given message object. - * @param {!proto.account.AccountsList} msg The message object to deserialize into. + * @param {!proto.account.ProfileResponse} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.account.AccountsList} + * @return {!proto.account.ProfileResponse} */ -proto.account.AccountsList.deserializeBinaryFromReader = function(msg, reader) { +proto.account.ProfileResponse.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -5335,9 +5143,18 @@ proto.account.AccountsList.deserializeBinaryFromReader = function(msg, reader) { var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new proto.account.AccountDetails; - reader.readMessage(value,proto.account.AccountDetails.deserializeBinaryFromReader); - msg.addAccountdetails(value); + var value = /** @type {number} */ (reader.readUint64()); + msg.setRequestid(value); + break; + case 2: + var value = new proto.account.ErrorResponse; + reader.readMessage(value,proto.account.ErrorResponse.deserializeBinaryFromReader); + msg.setError(value); + break; + case 3: + var value = new proto.account.ProfileDetails; + reader.readMessage(value,proto.account.ProfileDetails.deserializeBinaryFromReader); + msg.setProfiledetails(value); break; default: reader.skipField(); @@ -5352,9 +5169,9 @@ proto.account.AccountsList.deserializeBinaryFromReader = function(msg, reader) { * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.account.AccountsList.prototype.serializeBinary = function() { +proto.account.ProfileResponse.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.account.AccountsList.serializeBinaryToWriter(this, writer); + proto.account.ProfileResponse.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -5362,51 +5179,110 @@ proto.account.AccountsList.prototype.serializeBinary = function() { /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.account.AccountsList} message + * @param {!proto.account.ProfileResponse} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.account.AccountsList.serializeBinaryToWriter = function(message, writer) { +proto.account.ProfileResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getAccountdetailsList(); - if (f.length > 0) { - writer.writeRepeatedMessage( + f = message.getRequestid(); + if (f !== 0) { + writer.writeUint64( 1, + f + ); + } + f = message.getError(); + if (f != null) { + writer.writeMessage( + 2, f, - proto.account.AccountDetails.serializeBinaryToWriter + proto.account.ErrorResponse.serializeBinaryToWriter + ); + } + f = message.getProfiledetails(); + if (f != null) { + writer.writeMessage( + 3, + f, + proto.account.ProfileDetails.serializeBinaryToWriter ); } }; /** - * repeated AccountDetails accountDetails = 1; - * @return {!Array} + * optional uint64 requestId = 1; + * @return {number} */ -proto.account.AccountsList.prototype.getAccountdetailsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.account.AccountDetails, 1)); +proto.account.ProfileResponse.prototype.getRequestid = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); }; -/** @param {!Array} value */ -proto.account.AccountsList.prototype.setAccountdetailsList = function(value) { - jspb.Message.setRepeatedWrapperField(this, 1, value); +/** @param {number} value */ +proto.account.ProfileResponse.prototype.setRequestid = function(value) { + jspb.Message.setProto3IntField(this, 1, value); }; /** - * @param {!proto.account.AccountDetails=} opt_value - * @param {number=} opt_index - * @return {!proto.account.AccountDetails} + * optional ErrorResponse error = 2; + * @return {?proto.account.ErrorResponse} */ -proto.account.AccountsList.prototype.addAccountdetails = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.account.AccountDetails, opt_index); +proto.account.ProfileResponse.prototype.getError = function() { + return /** @type{?proto.account.ErrorResponse} */ ( + jspb.Message.getWrapperField(this, proto.account.ErrorResponse, 2)); }; -proto.account.AccountsList.prototype.clearAccountdetailsList = function() { - this.setAccountdetailsList([]); +/** @param {?proto.account.ErrorResponse|undefined} value */ +proto.account.ProfileResponse.prototype.setError = function(value) { + jspb.Message.setOneofWrapperField(this, 2, proto.account.ProfileResponse.oneofGroups_[0], value); +}; + + +proto.account.ProfileResponse.prototype.clearError = function() { + this.setError(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {!boolean} + */ +proto.account.ProfileResponse.prototype.hasError = function() { + return jspb.Message.getField(this, 2) != null; +}; + + +/** + * optional ProfileDetails profileDetails = 3; + * @return {?proto.account.ProfileDetails} + */ +proto.account.ProfileResponse.prototype.getProfiledetails = function() { + return /** @type{?proto.account.ProfileDetails} */ ( + jspb.Message.getWrapperField(this, proto.account.ProfileDetails, 3)); +}; + + +/** @param {?proto.account.ProfileDetails|undefined} value */ +proto.account.ProfileResponse.prototype.setProfiledetails = function(value) { + jspb.Message.setOneofWrapperField(this, 3, proto.account.ProfileResponse.oneofGroups_[0], value); +}; + + +proto.account.ProfileResponse.prototype.clearProfiledetails = function() { + this.setProfiledetails(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {!boolean} + */ +proto.account.ProfileResponse.prototype.hasProfiledetails = function() { + return jspb.Message.getField(this, 3) != null; }; @@ -5421,12 +5297,12 @@ proto.account.AccountsList.prototype.clearAccountdetailsList = function() { * @extends {jspb.Message} * @constructor */ -proto.account.AccountsResponse = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, proto.account.AccountsResponse.oneofGroups_); +proto.account.StatusResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.account.StatusResponse.oneofGroups_); }; -goog.inherits(proto.account.AccountsResponse, jspb.Message); +goog.inherits(proto.account.StatusResponse, jspb.Message); if (goog.DEBUG && !COMPILED) { - proto.account.AccountsResponse.displayName = 'proto.account.AccountsResponse'; + proto.account.StatusResponse.displayName = 'proto.account.StatusResponse'; } /** * Oneof group definitions for this message. Each group defines the field @@ -5436,22 +5312,22 @@ if (goog.DEBUG && !COMPILED) { * @private {!Array>} * @const */ -proto.account.AccountsResponse.oneofGroups_ = [[2,3]]; +proto.account.StatusResponse.oneofGroups_ = [[2,3]]; /** * @enum {number} */ -proto.account.AccountsResponse.ResultCase = { +proto.account.StatusResponse.ResultCase = { RESULT_NOT_SET: 0, ERROR: 2, - ACCOUNTSRESPONSE: 3 + STATUS: 3 }; /** - * @return {proto.account.AccountsResponse.ResultCase} + * @return {proto.account.StatusResponse.ResultCase} */ -proto.account.AccountsResponse.prototype.getResultCase = function() { - return /** @type {proto.account.AccountsResponse.ResultCase} */(jspb.Message.computeOneofCase(this, proto.account.AccountsResponse.oneofGroups_[0])); +proto.account.StatusResponse.prototype.getResultCase = function() { + return /** @type {proto.account.StatusResponse.ResultCase} */(jspb.Message.computeOneofCase(this, proto.account.StatusResponse.oneofGroups_[0])); }; @@ -5467,8 +5343,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * for transitional soy proto support: http://goto/soy-param-migration * @return {!Object} */ -proto.account.AccountsResponse.prototype.toObject = function(opt_includeInstance) { - return proto.account.AccountsResponse.toObject(opt_includeInstance, this); +proto.account.StatusResponse.prototype.toObject = function(opt_includeInstance) { + return proto.account.StatusResponse.toObject(opt_includeInstance, this); }; @@ -5477,15 +5353,15 @@ proto.account.AccountsResponse.prototype.toObject = function(opt_includeInstance * @param {boolean|undefined} includeInstance Whether to include the JSPB * instance for transitional soy proto support: * http://goto/soy-param-migration - * @param {!proto.account.AccountsResponse} msg The msg instance to transform. + * @param {!proto.account.StatusResponse} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.account.AccountsResponse.toObject = function(includeInstance, msg) { +proto.account.StatusResponse.toObject = function(includeInstance, msg) { var f, obj = { requestid: jspb.Message.getFieldWithDefault(msg, 1, 0), error: (f = msg.getError()) && proto.account.ErrorResponse.toObject(includeInstance, f), - accountsresponse: (f = msg.getAccountsresponse()) && proto.account.AccountsList.toObject(includeInstance, f) + status: jspb.Message.getFieldWithDefault(msg, 3, "") }; if (includeInstance) { @@ -5499,23 +5375,23 @@ proto.account.AccountsResponse.toObject = function(includeInstance, msg) { /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.account.AccountsResponse} + * @return {!proto.account.StatusResponse} */ -proto.account.AccountsResponse.deserializeBinary = function(bytes) { +proto.account.StatusResponse.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.account.AccountsResponse; - return proto.account.AccountsResponse.deserializeBinaryFromReader(msg, reader); + var msg = new proto.account.StatusResponse; + return proto.account.StatusResponse.deserializeBinaryFromReader(msg, reader); }; /** * Deserializes binary data (in protobuf wire format) from the * given reader into the given message object. - * @param {!proto.account.AccountsResponse} msg The message object to deserialize into. + * @param {!proto.account.StatusResponse} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.account.AccountsResponse} + * @return {!proto.account.StatusResponse} */ -proto.account.AccountsResponse.deserializeBinaryFromReader = function(msg, reader) { +proto.account.StatusResponse.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -5532,9 +5408,8 @@ proto.account.AccountsResponse.deserializeBinaryFromReader = function(msg, reade msg.setError(value); break; case 3: - var value = new proto.account.AccountsList; - reader.readMessage(value,proto.account.AccountsList.deserializeBinaryFromReader); - msg.setAccountsresponse(value); + var value = /** @type {string} */ (reader.readString()); + msg.setStatus(value); break; default: reader.skipField(); @@ -5549,9 +5424,9 @@ proto.account.AccountsResponse.deserializeBinaryFromReader = function(msg, reade * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.account.AccountsResponse.prototype.serializeBinary = function() { +proto.account.StatusResponse.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.account.AccountsResponse.serializeBinaryToWriter(this, writer); + proto.account.StatusResponse.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -5559,11 +5434,11 @@ proto.account.AccountsResponse.prototype.serializeBinary = function() { /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.account.AccountsResponse} message + * @param {!proto.account.StatusResponse} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.account.AccountsResponse.serializeBinaryToWriter = function(message, writer) { +proto.account.StatusResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getRequestid(); if (f !== 0) { @@ -5580,12 +5455,11 @@ proto.account.AccountsResponse.serializeBinaryToWriter = function(message, write proto.account.ErrorResponse.serializeBinaryToWriter ); } - f = message.getAccountsresponse(); + f = /** @type {string} */ (jspb.Message.getField(message, 3)); if (f != null) { - writer.writeMessage( + writer.writeString( 3, - f, - proto.account.AccountsList.serializeBinaryToWriter + f ); } }; @@ -5595,13 +5469,13 @@ proto.account.AccountsResponse.serializeBinaryToWriter = function(message, write * optional uint64 requestId = 1; * @return {number} */ -proto.account.AccountsResponse.prototype.getRequestid = function() { +proto.account.StatusResponse.prototype.getRequestid = function() { return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); }; /** @param {number} value */ -proto.account.AccountsResponse.prototype.setRequestid = function(value) { +proto.account.StatusResponse.prototype.setRequestid = function(value) { jspb.Message.setProto3IntField(this, 1, value); }; @@ -5610,19 +5484,19 @@ proto.account.AccountsResponse.prototype.setRequestid = function(value) { * optional ErrorResponse error = 2; * @return {?proto.account.ErrorResponse} */ -proto.account.AccountsResponse.prototype.getError = function() { +proto.account.StatusResponse.prototype.getError = function() { return /** @type{?proto.account.ErrorResponse} */ ( jspb.Message.getWrapperField(this, proto.account.ErrorResponse, 2)); }; /** @param {?proto.account.ErrorResponse|undefined} value */ -proto.account.AccountsResponse.prototype.setError = function(value) { - jspb.Message.setOneofWrapperField(this, 2, proto.account.AccountsResponse.oneofGroups_[0], value); +proto.account.StatusResponse.prototype.setError = function(value) { + jspb.Message.setOneofWrapperField(this, 2, proto.account.StatusResponse.oneofGroups_[0], value); }; -proto.account.AccountsResponse.prototype.clearError = function() { +proto.account.StatusResponse.prototype.clearError = function() { this.setError(undefined); }; @@ -5631,29 +5505,28 @@ proto.account.AccountsResponse.prototype.clearError = function() { * Returns whether this field is set. * @return {!boolean} */ -proto.account.AccountsResponse.prototype.hasError = function() { +proto.account.StatusResponse.prototype.hasError = function() { return jspb.Message.getField(this, 2) != null; }; /** - * optional AccountsList accountsResponse = 3; - * @return {?proto.account.AccountsList} + * optional string status = 3; + * @return {string} */ -proto.account.AccountsResponse.prototype.getAccountsresponse = function() { - return /** @type{?proto.account.AccountsList} */ ( - jspb.Message.getWrapperField(this, proto.account.AccountsList, 3)); +proto.account.StatusResponse.prototype.getStatus = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); }; -/** @param {?proto.account.AccountsList|undefined} value */ -proto.account.AccountsResponse.prototype.setAccountsresponse = function(value) { - jspb.Message.setOneofWrapperField(this, 3, proto.account.AccountsResponse.oneofGroups_[0], value); +/** @param {string} value */ +proto.account.StatusResponse.prototype.setStatus = function(value) { + jspb.Message.setOneofField(this, 3, proto.account.StatusResponse.oneofGroups_[0], value); }; -proto.account.AccountsResponse.prototype.clearAccountsresponse = function() { - this.setAccountsresponse(undefined); +proto.account.StatusResponse.prototype.clearStatus = function() { + jspb.Message.setOneofField(this, 3, proto.account.StatusResponse.oneofGroups_[0], undefined); }; @@ -5661,7 +5534,7 @@ proto.account.AccountsResponse.prototype.clearAccountsresponse = function() { * Returns whether this field is set. * @return {!boolean} */ -proto.account.AccountsResponse.prototype.hasAccountsresponse = function() { +proto.account.StatusResponse.prototype.hasStatus = function() { return jspb.Message.getField(this, 3) != null; }; @@ -5677,19 +5550,19 @@ proto.account.AccountsResponse.prototype.hasAccountsresponse = function() { * @extends {jspb.Message} * @constructor */ -proto.account.ProfileDetails = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.account.ProfileDetails.repeatedFields_, null); +proto.account.AccountsList = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.account.AccountsList.repeatedFields_, null); }; -goog.inherits(proto.account.ProfileDetails, jspb.Message); +goog.inherits(proto.account.AccountsList, jspb.Message); if (goog.DEBUG && !COMPILED) { - proto.account.ProfileDetails.displayName = 'proto.account.ProfileDetails'; + proto.account.AccountsList.displayName = 'proto.account.AccountsList'; } /** * List of repeated fields within this message type. * @private {!Array} * @const */ -proto.account.ProfileDetails.repeatedFields_ = [2]; +proto.account.AccountsList.repeatedFields_ = [1]; @@ -5704,8 +5577,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * for transitional soy proto support: http://goto/soy-param-migration * @return {!Object} */ -proto.account.ProfileDetails.prototype.toObject = function(opt_includeInstance) { - return proto.account.ProfileDetails.toObject(opt_includeInstance, this); +proto.account.AccountsList.prototype.toObject = function(opt_includeInstance) { + return proto.account.AccountsList.toObject(opt_includeInstance, this); }; @@ -5714,17 +5587,14 @@ proto.account.ProfileDetails.prototype.toObject = function(opt_includeInstance) * @param {boolean|undefined} includeInstance Whether to include the JSPB * instance for transitional soy proto support: * http://goto/soy-param-migration - * @param {!proto.account.ProfileDetails} msg The msg instance to transform. + * @param {!proto.account.AccountsList} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.account.ProfileDetails.toObject = function(includeInstance, msg) { +proto.account.AccountsList.toObject = function(includeInstance, msg) { var f, obj = { - profileid: jspb.Message.getFieldWithDefault(msg, 1, ""), - authprovidersList: jspb.Message.toObjectList(msg.getAuthprovidersList(), - proto.account.AuthProviderDetails.toObject, includeInstance), - passcode: jspb.Message.getFieldWithDefault(msg, 4, ""), - defaultaccountid: jspb.Message.getFieldWithDefault(msg, 5, "") + accountdetailsList: jspb.Message.toObjectList(msg.getAccountdetailsList(), + proto.account.AccountDetails.toObject, includeInstance) }; if (includeInstance) { @@ -5738,23 +5608,23 @@ proto.account.ProfileDetails.toObject = function(includeInstance, msg) { /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.account.ProfileDetails} + * @return {!proto.account.AccountsList} */ -proto.account.ProfileDetails.deserializeBinary = function(bytes) { +proto.account.AccountsList.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.account.ProfileDetails; - return proto.account.ProfileDetails.deserializeBinaryFromReader(msg, reader); + var msg = new proto.account.AccountsList; + return proto.account.AccountsList.deserializeBinaryFromReader(msg, reader); }; /** * Deserializes binary data (in protobuf wire format) from the * given reader into the given message object. - * @param {!proto.account.ProfileDetails} msg The message object to deserialize into. + * @param {!proto.account.AccountsList} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.account.ProfileDetails} + * @return {!proto.account.AccountsList} */ -proto.account.ProfileDetails.deserializeBinaryFromReader = function(msg, reader) { +proto.account.AccountsList.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -5762,21 +5632,9 @@ proto.account.ProfileDetails.deserializeBinaryFromReader = function(msg, reader) var field = reader.getFieldNumber(); switch (field) { case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setProfileid(value); - break; - case 2: - var value = new proto.account.AuthProviderDetails; - reader.readMessage(value,proto.account.AuthProviderDetails.deserializeBinaryFromReader); - msg.addAuthproviders(value); - break; - case 4: - var value = /** @type {string} */ (reader.readString()); - msg.setPasscode(value); - break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setDefaultaccountid(value); + var value = new proto.account.AccountDetails; + reader.readMessage(value,proto.account.AccountDetails.deserializeBinaryFromReader); + msg.addAccountdetails(value); break; default: reader.skipField(); @@ -5791,9 +5649,9 @@ proto.account.ProfileDetails.deserializeBinaryFromReader = function(msg, reader) * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.account.ProfileDetails.prototype.serializeBinary = function() { +proto.account.AccountsList.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.account.ProfileDetails.serializeBinaryToWriter(this, writer); + proto.account.AccountsList.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -5801,117 +5659,51 @@ proto.account.ProfileDetails.prototype.serializeBinary = function() { /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.account.ProfileDetails} message + * @param {!proto.account.AccountsList} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.account.ProfileDetails.serializeBinaryToWriter = function(message, writer) { +proto.account.AccountsList.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getProfileid(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getAuthprovidersList(); + f = message.getAccountdetailsList(); if (f.length > 0) { writer.writeRepeatedMessage( - 2, + 1, f, - proto.account.AuthProviderDetails.serializeBinaryToWriter - ); - } - f = message.getPasscode(); - if (f.length > 0) { - writer.writeString( - 4, - f - ); - } - f = message.getDefaultaccountid(); - if (f.length > 0) { - writer.writeString( - 5, - f + proto.account.AccountDetails.serializeBinaryToWriter ); } }; /** - * optional string profileId = 1; - * @return {string} - */ -proto.account.ProfileDetails.prototype.getProfileid = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** @param {string} value */ -proto.account.ProfileDetails.prototype.setProfileid = function(value) { - jspb.Message.setProto3StringField(this, 1, value); -}; - - -/** - * repeated AuthProviderDetails authProviders = 2; - * @return {!Array} + * repeated AccountDetails accountDetails = 1; + * @return {!Array} */ -proto.account.ProfileDetails.prototype.getAuthprovidersList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, proto.account.AuthProviderDetails, 2)); +proto.account.AccountsList.prototype.getAccountdetailsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.account.AccountDetails, 1)); }; -/** @param {!Array} value */ -proto.account.ProfileDetails.prototype.setAuthprovidersList = function(value) { - jspb.Message.setRepeatedWrapperField(this, 2, value); +/** @param {!Array} value */ +proto.account.AccountsList.prototype.setAccountdetailsList = function(value) { + jspb.Message.setRepeatedWrapperField(this, 1, value); }; /** - * @param {!proto.account.AuthProviderDetails=} opt_value + * @param {!proto.account.AccountDetails=} opt_value * @param {number=} opt_index - * @return {!proto.account.AuthProviderDetails} - */ -proto.account.ProfileDetails.prototype.addAuthproviders = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.account.AuthProviderDetails, opt_index); -}; - - -proto.account.ProfileDetails.prototype.clearAuthprovidersList = function() { - this.setAuthprovidersList([]); -}; - - -/** - * optional string passcode = 4; - * @return {string} - */ -proto.account.ProfileDetails.prototype.getPasscode = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); -}; - - -/** @param {string} value */ -proto.account.ProfileDetails.prototype.setPasscode = function(value) { - jspb.Message.setProto3StringField(this, 4, value); -}; - - -/** - * optional string defaultAccountId = 5; - * @return {string} + * @return {!proto.account.AccountDetails} */ -proto.account.ProfileDetails.prototype.getDefaultaccountid = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); +proto.account.AccountsList.prototype.addAccountdetails = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.account.AccountDetails, opt_index); }; -/** @param {string} value */ -proto.account.ProfileDetails.prototype.setDefaultaccountid = function(value) { - jspb.Message.setProto3StringField(this, 5, value); +proto.account.AccountsList.prototype.clearAccountdetailsList = function() { + this.setAccountdetailsList([]); }; @@ -5926,12 +5718,12 @@ proto.account.ProfileDetails.prototype.setDefaultaccountid = function(value) { * @extends {jspb.Message} * @constructor */ -proto.account.ProfileResponse = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, proto.account.ProfileResponse.oneofGroups_); +proto.account.AccountsResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, proto.account.AccountsResponse.oneofGroups_); }; -goog.inherits(proto.account.ProfileResponse, jspb.Message); +goog.inherits(proto.account.AccountsResponse, jspb.Message); if (goog.DEBUG && !COMPILED) { - proto.account.ProfileResponse.displayName = 'proto.account.ProfileResponse'; + proto.account.AccountsResponse.displayName = 'proto.account.AccountsResponse'; } /** * Oneof group definitions for this message. Each group defines the field @@ -5941,22 +5733,22 @@ if (goog.DEBUG && !COMPILED) { * @private {!Array>} * @const */ -proto.account.ProfileResponse.oneofGroups_ = [[2,3]]; +proto.account.AccountsResponse.oneofGroups_ = [[2,3]]; /** * @enum {number} */ -proto.account.ProfileResponse.ResultCase = { +proto.account.AccountsResponse.ResultCase = { RESULT_NOT_SET: 0, ERROR: 2, - PROFILEDETAILS: 3 + ACCOUNTSRESPONSE: 3 }; /** - * @return {proto.account.ProfileResponse.ResultCase} + * @return {proto.account.AccountsResponse.ResultCase} */ -proto.account.ProfileResponse.prototype.getResultCase = function() { - return /** @type {proto.account.ProfileResponse.ResultCase} */(jspb.Message.computeOneofCase(this, proto.account.ProfileResponse.oneofGroups_[0])); +proto.account.AccountsResponse.prototype.getResultCase = function() { + return /** @type {proto.account.AccountsResponse.ResultCase} */(jspb.Message.computeOneofCase(this, proto.account.AccountsResponse.oneofGroups_[0])); }; @@ -5972,8 +5764,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * for transitional soy proto support: http://goto/soy-param-migration * @return {!Object} */ -proto.account.ProfileResponse.prototype.toObject = function(opt_includeInstance) { - return proto.account.ProfileResponse.toObject(opt_includeInstance, this); +proto.account.AccountsResponse.prototype.toObject = function(opt_includeInstance) { + return proto.account.AccountsResponse.toObject(opt_includeInstance, this); }; @@ -5982,15 +5774,15 @@ proto.account.ProfileResponse.prototype.toObject = function(opt_includeInstance) * @param {boolean|undefined} includeInstance Whether to include the JSPB * instance for transitional soy proto support: * http://goto/soy-param-migration - * @param {!proto.account.ProfileResponse} msg The msg instance to transform. + * @param {!proto.account.AccountsResponse} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.account.ProfileResponse.toObject = function(includeInstance, msg) { +proto.account.AccountsResponse.toObject = function(includeInstance, msg) { var f, obj = { requestid: jspb.Message.getFieldWithDefault(msg, 1, 0), error: (f = msg.getError()) && proto.account.ErrorResponse.toObject(includeInstance, f), - profiledetails: (f = msg.getProfiledetails()) && proto.account.ProfileDetails.toObject(includeInstance, f) + accountsresponse: (f = msg.getAccountsresponse()) && proto.account.AccountsList.toObject(includeInstance, f) }; if (includeInstance) { @@ -6004,23 +5796,23 @@ proto.account.ProfileResponse.toObject = function(includeInstance, msg) { /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.account.ProfileResponse} + * @return {!proto.account.AccountsResponse} */ -proto.account.ProfileResponse.deserializeBinary = function(bytes) { +proto.account.AccountsResponse.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.account.ProfileResponse; - return proto.account.ProfileResponse.deserializeBinaryFromReader(msg, reader); + var msg = new proto.account.AccountsResponse; + return proto.account.AccountsResponse.deserializeBinaryFromReader(msg, reader); }; /** * Deserializes binary data (in protobuf wire format) from the * given reader into the given message object. - * @param {!proto.account.ProfileResponse} msg The message object to deserialize into. + * @param {!proto.account.AccountsResponse} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.account.ProfileResponse} + * @return {!proto.account.AccountsResponse} */ -proto.account.ProfileResponse.deserializeBinaryFromReader = function(msg, reader) { +proto.account.AccountsResponse.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -6037,9 +5829,9 @@ proto.account.ProfileResponse.deserializeBinaryFromReader = function(msg, reader msg.setError(value); break; case 3: - var value = new proto.account.ProfileDetails; - reader.readMessage(value,proto.account.ProfileDetails.deserializeBinaryFromReader); - msg.setProfiledetails(value); + var value = new proto.account.AccountsList; + reader.readMessage(value,proto.account.AccountsList.deserializeBinaryFromReader); + msg.setAccountsresponse(value); break; default: reader.skipField(); @@ -6054,9 +5846,9 @@ proto.account.ProfileResponse.deserializeBinaryFromReader = function(msg, reader * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.account.ProfileResponse.prototype.serializeBinary = function() { +proto.account.AccountsResponse.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.account.ProfileResponse.serializeBinaryToWriter(this, writer); + proto.account.AccountsResponse.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -6064,11 +5856,11 @@ proto.account.ProfileResponse.prototype.serializeBinary = function() { /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.account.ProfileResponse} message + * @param {!proto.account.AccountsResponse} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.account.ProfileResponse.serializeBinaryToWriter = function(message, writer) { +proto.account.AccountsResponse.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getRequestid(); if (f !== 0) { @@ -6085,12 +5877,12 @@ proto.account.ProfileResponse.serializeBinaryToWriter = function(message, writer proto.account.ErrorResponse.serializeBinaryToWriter ); } - f = message.getProfiledetails(); + f = message.getAccountsresponse(); if (f != null) { writer.writeMessage( 3, f, - proto.account.ProfileDetails.serializeBinaryToWriter + proto.account.AccountsList.serializeBinaryToWriter ); } }; @@ -6100,13 +5892,13 @@ proto.account.ProfileResponse.serializeBinaryToWriter = function(message, writer * optional uint64 requestId = 1; * @return {number} */ -proto.account.ProfileResponse.prototype.getRequestid = function() { +proto.account.AccountsResponse.prototype.getRequestid = function() { return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); }; /** @param {number} value */ -proto.account.ProfileResponse.prototype.setRequestid = function(value) { +proto.account.AccountsResponse.prototype.setRequestid = function(value) { jspb.Message.setProto3IntField(this, 1, value); }; @@ -6115,19 +5907,19 @@ proto.account.ProfileResponse.prototype.setRequestid = function(value) { * optional ErrorResponse error = 2; * @return {?proto.account.ErrorResponse} */ -proto.account.ProfileResponse.prototype.getError = function() { +proto.account.AccountsResponse.prototype.getError = function() { return /** @type{?proto.account.ErrorResponse} */ ( jspb.Message.getWrapperField(this, proto.account.ErrorResponse, 2)); }; /** @param {?proto.account.ErrorResponse|undefined} value */ -proto.account.ProfileResponse.prototype.setError = function(value) { - jspb.Message.setOneofWrapperField(this, 2, proto.account.ProfileResponse.oneofGroups_[0], value); +proto.account.AccountsResponse.prototype.setError = function(value) { + jspb.Message.setOneofWrapperField(this, 2, proto.account.AccountsResponse.oneofGroups_[0], value); }; -proto.account.ProfileResponse.prototype.clearError = function() { +proto.account.AccountsResponse.prototype.clearError = function() { this.setError(undefined); }; @@ -6136,29 +5928,29 @@ proto.account.ProfileResponse.prototype.clearError = function() { * Returns whether this field is set. * @return {!boolean} */ -proto.account.ProfileResponse.prototype.hasError = function() { +proto.account.AccountsResponse.prototype.hasError = function() { return jspb.Message.getField(this, 2) != null; }; /** - * optional ProfileDetails profileDetails = 3; - * @return {?proto.account.ProfileDetails} + * optional AccountsList accountsResponse = 3; + * @return {?proto.account.AccountsList} */ -proto.account.ProfileResponse.prototype.getProfiledetails = function() { - return /** @type{?proto.account.ProfileDetails} */ ( - jspb.Message.getWrapperField(this, proto.account.ProfileDetails, 3)); +proto.account.AccountsResponse.prototype.getAccountsresponse = function() { + return /** @type{?proto.account.AccountsList} */ ( + jspb.Message.getWrapperField(this, proto.account.AccountsList, 3)); }; -/** @param {?proto.account.ProfileDetails|undefined} value */ -proto.account.ProfileResponse.prototype.setProfiledetails = function(value) { - jspb.Message.setOneofWrapperField(this, 3, proto.account.ProfileResponse.oneofGroups_[0], value); +/** @param {?proto.account.AccountsList|undefined} value */ +proto.account.AccountsResponse.prototype.setAccountsresponse = function(value) { + jspb.Message.setOneofWrapperField(this, 3, proto.account.AccountsResponse.oneofGroups_[0], value); }; -proto.account.ProfileResponse.prototype.clearProfiledetails = function() { - this.setProfiledetails(undefined); +proto.account.AccountsResponse.prototype.clearAccountsresponse = function() { + this.setAccountsresponse(undefined); }; @@ -6166,7 +5958,7 @@ proto.account.ProfileResponse.prototype.clearProfiledetails = function() { * Returns whether this field is set. * @return {!boolean} */ -proto.account.ProfileResponse.prototype.hasProfiledetails = function() { +proto.account.AccountsResponse.prototype.hasAccountsresponse = function() { return jspb.Message.getField(this, 3) != null; }; @@ -7043,7 +6835,7 @@ proto.account.SearchResultDetails.prototype.toObject = function(opt_includeInsta proto.account.SearchResultDetails.toObject = function(includeInstance, msg) { var f, obj = { accountid: jspb.Message.getFieldWithDefault(msg, 1, ""), - avatar: msg.getAvatar_asB64(), + avatar: jspb.Message.getFieldWithDefault(msg, 2, ""), firstname: jspb.Message.getFieldWithDefault(msg, 3, ""), lastname: jspb.Message.getFieldWithDefault(msg, 4, "") }; @@ -7087,7 +6879,7 @@ proto.account.SearchResultDetails.deserializeBinaryFromReader = function(msg, re msg.setAccountid(value); break; case 2: - var value = /** @type {!Uint8Array} */ (reader.readBytes()); + var value = /** @type {string} */ (reader.readString()); msg.setAvatar(value); break; case 3: @@ -7134,9 +6926,9 @@ proto.account.SearchResultDetails.serializeBinaryToWriter = function(message, wr f ); } - f = message.getAvatar_asU8(); + f = message.getAvatar(); if (f.length > 0) { - writer.writeBytes( + writer.writeString( 2, f ); @@ -7174,41 +6966,17 @@ proto.account.SearchResultDetails.prototype.setAccountid = function(value) { /** - * optional bytes avatar = 2; - * @return {!(string|Uint8Array)} - */ -proto.account.SearchResultDetails.prototype.getAvatar = function() { - return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, "")); -}; - - -/** - * optional bytes avatar = 2; - * This is a type-conversion wrapper around `getAvatar()` + * optional string avatar = 2; * @return {string} */ -proto.account.SearchResultDetails.prototype.getAvatar_asB64 = function() { - return /** @type {string} */ (jspb.Message.bytesAsB64( - this.getAvatar())); -}; - - -/** - * optional bytes avatar = 2; - * Note that Uint8Array is not supported on all browsers. - * @see http://caniuse.com/Uint8Array - * This is a type-conversion wrapper around `getAvatar()` - * @return {!Uint8Array} - */ -proto.account.SearchResultDetails.prototype.getAvatar_asU8 = function() { - return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8( - this.getAvatar())); +proto.account.SearchResultDetails.prototype.getAvatar = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); }; -/** @param {!(string|Uint8Array)} value */ +/** @param {string} value */ proto.account.SearchResultDetails.prototype.setAvatar = function(value) { - jspb.Message.setProto3BytesField(this, 2, value); + jspb.Message.setProto3StringField(this, 2, value); }; @@ -7431,7 +7199,9 @@ proto.account.ErrorResponse.Cause = { PHONENUMBER_NOT_FOUND: 43, QR_CODE_NOT_FOUND: 44, MULTIPLE_INVALID_PARAMETERS: 45, - INVALID_ACCESS_STATUS: 46 + INVALID_ACCESS_STATUS: 46, + AUTH_PROVIDER_NOT_FOUND: 47, + ERROR_UPDATING_AUTH_PROVIDER: 48 }; /** diff --git a/src/utils/grpc_proto/generated/account_pb_service.js b/src/utils/grpc_proto/generated/account_pb_service.js index 2f44b9c..8dc43cf 100644 --- a/src/utils/grpc_proto/generated/account_pb_service.js +++ b/src/utils/grpc_proto/generated/account_pb_service.js @@ -29,15 +29,6 @@ AccountService.completePendingAccountCreation = { responseType: account_pb.AccountResponse }; -AccountService.createAccount = { - methodName: "createAccount", - service: AccountService, - requestStream: false, - responseStream: false, - requestType: account_pb.CreateAccountRequest, - responseType: account_pb.AccountResponse -}; - AccountService.getAllAccountsByProfileId = { methodName: "getAllAccountsByProfileId", service: AccountService, @@ -92,15 +83,6 @@ AccountService.updateAccount = { responseType: account_pb.AccountResponse }; -AccountService.updateProfile = { - methodName: "updateProfile", - service: AccountService, - requestStream: false, - responseStream: false, - requestType: account_pb.UpdateProfileRequest, - responseType: account_pb.ProfileResponse -}; - AccountService.deleteAccount = { methodName: "deleteAccount", service: AccountService, @@ -137,6 +119,15 @@ AccountService.deleteAuthenticationProviderFromProfile = { responseType: account_pb.StatusResponse }; +AccountService.updateAuthenticationProviderForProfile = { + methodName: "updateAuthenticationProviderForProfile", + service: AccountService, + requestStream: false, + responseStream: false, + requestType: account_pb.UpdateAuthenticationProviderRequest, + responseType: account_pb.StatusResponse +}; + AccountService.addContactInfoToAccount = { methodName: "addContactInfoToAccount", service: AccountService, @@ -257,31 +248,6 @@ AccountServiceClient.prototype.completePendingAccountCreation = function complet }); }; -AccountServiceClient.prototype.createAccount = function createAccount(requestMessage, metadata, callback) { - if (arguments.length === 2) { - callback = arguments[1]; - } - grpc.unary(AccountService.createAccount, { - request: requestMessage, - host: this.serviceHost, - metadata: metadata, - transport: this.options.transport, - debug: this.options.debug, - onEnd: function (response) { - if (callback) { - if (response.status !== grpc.Code.OK) { - var err = new Error(response.statusMessage); - err.code = response.status; - err.metadata = response.trailers; - callback(err, null); - } else { - callback(null, response.message); - } - } - } - }); -}; - AccountServiceClient.prototype.getAllAccountsByProfileId = function getAllAccountsByProfileId(requestMessage, metadata, callback) { if (arguments.length === 2) { callback = arguments[1]; @@ -432,11 +398,11 @@ AccountServiceClient.prototype.updateAccount = function updateAccount(requestMes }); }; -AccountServiceClient.prototype.updateProfile = function updateProfile(requestMessage, metadata, callback) { +AccountServiceClient.prototype.deleteAccount = function deleteAccount(requestMessage, metadata, callback) { if (arguments.length === 2) { callback = arguments[1]; } - grpc.unary(AccountService.updateProfile, { + grpc.unary(AccountService.deleteAccount, { request: requestMessage, host: this.serviceHost, metadata: metadata, @@ -457,11 +423,11 @@ AccountServiceClient.prototype.updateProfile = function updateProfile(requestMes }); }; -AccountServiceClient.prototype.deleteAccount = function deleteAccount(requestMessage, metadata, callback) { +AccountServiceClient.prototype.deleteProfile = function deleteProfile(requestMessage, metadata, callback) { if (arguments.length === 2) { callback = arguments[1]; } - grpc.unary(AccountService.deleteAccount, { + grpc.unary(AccountService.deleteProfile, { request: requestMessage, host: this.serviceHost, metadata: metadata, @@ -482,11 +448,11 @@ AccountServiceClient.prototype.deleteAccount = function deleteAccount(requestMes }); }; -AccountServiceClient.prototype.deleteProfile = function deleteProfile(requestMessage, metadata, callback) { +AccountServiceClient.prototype.addAuthenticationProviderToProfile = function addAuthenticationProviderToProfile(requestMessage, metadata, callback) { if (arguments.length === 2) { callback = arguments[1]; } - grpc.unary(AccountService.deleteProfile, { + grpc.unary(AccountService.addAuthenticationProviderToProfile, { request: requestMessage, host: this.serviceHost, metadata: metadata, @@ -507,11 +473,11 @@ AccountServiceClient.prototype.deleteProfile = function deleteProfile(requestMes }); }; -AccountServiceClient.prototype.addAuthenticationProviderToProfile = function addAuthenticationProviderToProfile(requestMessage, metadata, callback) { +AccountServiceClient.prototype.deleteAuthenticationProviderFromProfile = function deleteAuthenticationProviderFromProfile(requestMessage, metadata, callback) { if (arguments.length === 2) { callback = arguments[1]; } - grpc.unary(AccountService.addAuthenticationProviderToProfile, { + grpc.unary(AccountService.deleteAuthenticationProviderFromProfile, { request: requestMessage, host: this.serviceHost, metadata: metadata, @@ -532,11 +498,11 @@ AccountServiceClient.prototype.addAuthenticationProviderToProfile = function add }); }; -AccountServiceClient.prototype.deleteAuthenticationProviderFromProfile = function deleteAuthenticationProviderFromProfile(requestMessage, metadata, callback) { +AccountServiceClient.prototype.updateAuthenticationProviderForProfile = function updateAuthenticationProviderForProfile(requestMessage, metadata, callback) { if (arguments.length === 2) { callback = arguments[1]; } - grpc.unary(AccountService.deleteAuthenticationProviderFromProfile, { + grpc.unary(AccountService.updateAuthenticationProviderForProfile, { request: requestMessage, host: this.serviceHost, metadata: metadata, diff --git a/src/utils/grpc_proto/generated/admin_account_pb.js b/src/utils/grpc_proto/generated/admin_account_pb.js index 4e72460..d56ecad 100644 --- a/src/utils/grpc_proto/generated/admin_account_pb.js +++ b/src/utils/grpc_proto/generated/admin_account_pb.js @@ -12,11 +12,12 @@ var jspb = require('google-protobuf'); var goog = jspb; var global = Function('return this')(); -var account_pb = require('./account_pb'); +var account_pb = require('./account_pb.js'); goog.exportSymbol('proto.admin.AccountAdminResponse', null, global); goog.exportSymbol('proto.admin.AccountsAdminResponse', null, global); goog.exportSymbol('proto.admin.AccountsCount', null, global); goog.exportSymbol('proto.admin.ColumnFilter', null, global); +goog.exportSymbol('proto.admin.CreateAccountRequest', null, global); goog.exportSymbol('proto.admin.EmptyRequest', null, global); goog.exportSymbol('proto.admin.GetAllAccountsRequest', null, global); goog.exportSymbol('proto.admin.SortModel', null, global); @@ -1223,4 +1224,437 @@ proto.admin.AccountsAdminResponse.prototype.hasAccountsresponse = function() { }; + +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.admin.CreateAccountRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.admin.CreateAccountRequest.repeatedFields_, null); +}; +goog.inherits(proto.admin.CreateAccountRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.admin.CreateAccountRequest.displayName = 'proto.admin.CreateAccountRequest'; +} +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.admin.CreateAccountRequest.repeatedFields_ = [9]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.admin.CreateAccountRequest.prototype.toObject = function(opt_includeInstance) { + return proto.admin.CreateAccountRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.admin.CreateAccountRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.admin.CreateAccountRequest.toObject = function(includeInstance, msg) { + var f, obj = { + authenticationtype: jspb.Message.getFieldWithDefault(msg, 1, 0), + authenticationprovider: jspb.Message.getFieldWithDefault(msg, 2, ""), + avatar: jspb.Message.getFieldWithDefault(msg, 3, ""), + accountmark: jspb.Message.getFieldWithDefault(msg, 4, ""), + accountname: jspb.Message.getFieldWithDefault(msg, 5, ""), + firstname: jspb.Message.getFieldWithDefault(msg, 6, ""), + lastname: jspb.Message.getFieldWithDefault(msg, 7, ""), + username: jspb.Message.getFieldWithDefault(msg, 8, ""), + rolesList: jspb.Message.getRepeatedField(msg, 9), + accessstatus: jspb.Message.getFieldWithDefault(msg, 10, 0), + qrcode: jspb.Message.getFieldWithDefault(msg, 11, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.admin.CreateAccountRequest} + */ +proto.admin.CreateAccountRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.admin.CreateAccountRequest; + return proto.admin.CreateAccountRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.admin.CreateAccountRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.admin.CreateAccountRequest} + */ +proto.admin.CreateAccountRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {!proto.account.AuthenticationType} */ (reader.readEnum()); + msg.setAuthenticationtype(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setAuthenticationprovider(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setAvatar(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setAccountmark(value); + break; + case 5: + var value = /** @type {string} */ (reader.readString()); + msg.setAccountname(value); + break; + case 6: + var value = /** @type {string} */ (reader.readString()); + msg.setFirstname(value); + break; + case 7: + var value = /** @type {string} */ (reader.readString()); + msg.setLastname(value); + break; + case 8: + var value = /** @type {string} */ (reader.readString()); + msg.setUsername(value); + break; + case 9: + var value = /** @type {!Array} */ (reader.readPackedEnum()); + msg.setRolesList(value); + break; + case 10: + var value = /** @type {!proto.account.AccessStatus} */ (reader.readEnum()); + msg.setAccessstatus(value); + break; + case 11: + var value = /** @type {string} */ (reader.readString()); + msg.setQrcode(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.admin.CreateAccountRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.admin.CreateAccountRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.admin.CreateAccountRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.admin.CreateAccountRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getAuthenticationtype(); + if (f !== 0.0) { + writer.writeEnum( + 1, + f + ); + } + f = message.getAuthenticationprovider(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getAvatar(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getAccountmark(); + if (f.length > 0) { + writer.writeString( + 4, + f + ); + } + f = message.getAccountname(); + if (f.length > 0) { + writer.writeString( + 5, + f + ); + } + f = message.getFirstname(); + if (f.length > 0) { + writer.writeString( + 6, + f + ); + } + f = message.getLastname(); + if (f.length > 0) { + writer.writeString( + 7, + f + ); + } + f = message.getUsername(); + if (f.length > 0) { + writer.writeString( + 8, + f + ); + } + f = message.getRolesList(); + if (f.length > 0) { + writer.writePackedEnum( + 9, + f + ); + } + f = message.getAccessstatus(); + if (f !== 0.0) { + writer.writeEnum( + 10, + f + ); + } + f = message.getQrcode(); + if (f.length > 0) { + writer.writeString( + 11, + f + ); + } +}; + + +/** + * optional account.AuthenticationType authenticationType = 1; + * @return {!proto.account.AuthenticationType} + */ +proto.admin.CreateAccountRequest.prototype.getAuthenticationtype = function() { + return /** @type {!proto.account.AuthenticationType} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); +}; + + +/** @param {!proto.account.AuthenticationType} value */ +proto.admin.CreateAccountRequest.prototype.setAuthenticationtype = function(value) { + jspb.Message.setProto3EnumField(this, 1, value); +}; + + +/** + * optional string authenticationProvider = 2; + * @return {string} + */ +proto.admin.CreateAccountRequest.prototype.getAuthenticationprovider = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** @param {string} value */ +proto.admin.CreateAccountRequest.prototype.setAuthenticationprovider = function(value) { + jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional string avatar = 3; + * @return {string} + */ +proto.admin.CreateAccountRequest.prototype.getAvatar = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** @param {string} value */ +proto.admin.CreateAccountRequest.prototype.setAvatar = function(value) { + jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional string accountMark = 4; + * @return {string} + */ +proto.admin.CreateAccountRequest.prototype.getAccountmark = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** @param {string} value */ +proto.admin.CreateAccountRequest.prototype.setAccountmark = function(value) { + jspb.Message.setProto3StringField(this, 4, value); +}; + + +/** + * optional string accountName = 5; + * @return {string} + */ +proto.admin.CreateAccountRequest.prototype.getAccountname = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); +}; + + +/** @param {string} value */ +proto.admin.CreateAccountRequest.prototype.setAccountname = function(value) { + jspb.Message.setProto3StringField(this, 5, value); +}; + + +/** + * optional string firstName = 6; + * @return {string} + */ +proto.admin.CreateAccountRequest.prototype.getFirstname = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); +}; + + +/** @param {string} value */ +proto.admin.CreateAccountRequest.prototype.setFirstname = function(value) { + jspb.Message.setProto3StringField(this, 6, value); +}; + + +/** + * optional string lastName = 7; + * @return {string} + */ +proto.admin.CreateAccountRequest.prototype.getLastname = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); +}; + + +/** @param {string} value */ +proto.admin.CreateAccountRequest.prototype.setLastname = function(value) { + jspb.Message.setProto3StringField(this, 7, value); +}; + + +/** + * optional string username = 8; + * @return {string} + */ +proto.admin.CreateAccountRequest.prototype.getUsername = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, "")); +}; + + +/** @param {string} value */ +proto.admin.CreateAccountRequest.prototype.setUsername = function(value) { + jspb.Message.setProto3StringField(this, 8, value); +}; + + +/** + * repeated account.Role roles = 9; + * @return {!Array} + */ +proto.admin.CreateAccountRequest.prototype.getRolesList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 9)); +}; + + +/** @param {!Array} value */ +proto.admin.CreateAccountRequest.prototype.setRolesList = function(value) { + jspb.Message.setField(this, 9, value || []); +}; + + +/** + * @param {!proto.account.Role} value + * @param {number=} opt_index + */ +proto.admin.CreateAccountRequest.prototype.addRoles = function(value, opt_index) { + jspb.Message.addToRepeatedField(this, 9, value, opt_index); +}; + + +proto.admin.CreateAccountRequest.prototype.clearRolesList = function() { + this.setRolesList([]); +}; + + +/** + * optional account.AccessStatus accessStatus = 10; + * @return {!proto.account.AccessStatus} + */ +proto.admin.CreateAccountRequest.prototype.getAccessstatus = function() { + return /** @type {!proto.account.AccessStatus} */ (jspb.Message.getFieldWithDefault(this, 10, 0)); +}; + + +/** @param {!proto.account.AccessStatus} value */ +proto.admin.CreateAccountRequest.prototype.setAccessstatus = function(value) { + jspb.Message.setProto3EnumField(this, 10, value); +}; + + +/** + * optional string qrCode = 11; + * @return {string} + */ +proto.admin.CreateAccountRequest.prototype.getQrcode = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 11, "")); +}; + + +/** @param {string} value */ +proto.admin.CreateAccountRequest.prototype.setQrcode = function(value) { + jspb.Message.setProto3StringField(this, 11, value); +}; + + goog.object.extend(exports, proto.admin); diff --git a/src/utils/grpc_proto/generated/admin_account_pb_service.js b/src/utils/grpc_proto/generated/admin_account_pb_service.js index 89f0e91..86cf488 100644 --- a/src/utils/grpc_proto/generated/admin_account_pb_service.js +++ b/src/utils/grpc_proto/generated/admin_account_pb_service.js @@ -3,6 +3,7 @@ // file: admin_account.proto var admin_account_pb = require("./admin_account_pb"); +var account_pb = require("./account_pb"); var grpc = require("grpc-web-client").grpc; var AdminAccountService = (function () { @@ -29,6 +30,15 @@ AdminAccountService.getCountOfAllAccounts = { responseType: admin_account_pb.AccountsCount }; +AdminAccountService.createAccount = { + methodName: "createAccount", + service: AdminAccountService, + requestStream: false, + responseStream: false, + requestType: admin_account_pb.CreateAccountRequest, + responseType: account_pb.AccountResponse +}; + exports.AdminAccountService = AdminAccountService; function AdminAccountServiceClient(serviceHost, options) { @@ -86,5 +96,30 @@ AdminAccountServiceClient.prototype.getCountOfAllAccounts = function getCountOfA }); }; +AdminAccountServiceClient.prototype.createAccount = function createAccount(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + grpc.unary(AdminAccountService.createAccount, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); +}; + exports.AdminAccountServiceClient = AdminAccountServiceClient; diff --git a/src/utils/grpc_proto/generated/auth_pb.js b/src/utils/grpc_proto/generated/auth_pb.js index 8081f9f..32c3af8 100644 --- a/src/utils/grpc_proto/generated/auth_pb.js +++ b/src/utils/grpc_proto/generated/auth_pb.js @@ -2336,7 +2336,10 @@ proto.authentication.ErrorResponse.Cause = { SOCIAL_TOKEN_INVALID: 14, MAX_DEVICE_FAILED_ATTEMPTS_REACHED: 15, REFRESH_TOKEN_INVALID: 16, - ACCESS_TOKEN_INVALID_ROLE: 17 + ACCESS_TOKEN_INVALID_ROLE: 17, + EXPIRED_REFRESH_TOKEN: 18, + ACCESS_DISABLED: 19, + ACCESS_SUSPENDED: 20 }; /** -- GitLab From 9be78834f5f8f50d562e0b2b8e7502ba602a1a0e Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Thu, 15 Nov 2018 17:26:56 +0200 Subject: [PATCH 184/249] NY-5364 --- .../contact_info_control_options.js | 30 +++++++----- .../contact_info/modal_content/edit_modal.js | 48 +++++++++++++++++++ .../delete_profile/delete_profile_modal.js | 2 +- .../delete_avatar_modal/avatar_modal.js | 2 +- .../edit_user_avatar/edit_user_avatar.js | 5 +- .../edit_user/generic_data/generic_data.css | 4 ++ src/components/edit_user/index.js | 32 +++++++++---- src/components/shared/ui/modal/modal.css | 26 ++++++++++ 8 files changed, 124 insertions(+), 25 deletions(-) create mode 100644 src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js diff --git a/src/components/edit_user/generic_data/contact_info/contact_info_control_options.js b/src/components/edit_user/generic_data/contact_info/contact_info_control_options.js index ee50e5b..6b745be 100644 --- a/src/components/edit_user/generic_data/contact_info/contact_info_control_options.js +++ b/src/components/edit_user/generic_data/contact_info/contact_info_control_options.js @@ -23,19 +23,23 @@ class ContactInfoControlOptions extends Component { this.setState({ anchorEl: null }); }; - callhandleDeleteContact = () => { + onHandleDeleteContact = () => { this.handleClose(); - this.props.handleDeleteContact(this.props.accountType) + this.props.handleDeleteContact(this.props.accountType); + } + + onHandleEditContact = () => { + this.handleClose(); + this.props.handleEditContact(this.props.accountType); } render(){ - - const { handleEditContact } = this.props; - const open = Boolean(this.state.anchorEl); - + const { anchorEl } = this.state; + const open = Boolean(anchorEl); + return ( - +
- - Edit - Delete - + + Edit + Delete +
- + ); } diff --git a/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js b/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js new file mode 100644 index 0000000..8379034 --- /dev/null +++ b/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js @@ -0,0 +1,48 @@ +import React from "react"; +import { withStyles } from "@material-ui/core/styles"; +import Button from "@material-ui/core/Button"; + +import Grid from "@material-ui/core/Grid"; +import AccountCircle from "@material-ui/icons/AccountCircle"; +import TextField from "@material-ui/core/TextField"; + +const styles = {}; + +const ContactInfoEditModal = (props) => { + const { handleModalEditProfileCancel, controlLabel, classes, controlValue, parentState } = props; + + return ( +
+

Edit {controlLabel}

+ { + controlLabel !== 'PHONE' && controlLabel && controlLabel !== '' + ?
+ +
+ + + + + + + + +
+ +
+ + +
+ +
+ : controlLabel && controlLabel !== '' + ?
+ PHONE +
+ : null + } +
+ ); +} + +export default withStyles(styles)(ContactInfoEditModal); \ No newline at end of file diff --git a/src/components/edit_user/generic_data/delete_profile/delete_profile_modal.js b/src/components/edit_user/generic_data/delete_profile/delete_profile_modal.js index 078d36e..bcb2e85 100644 --- a/src/components/edit_user/generic_data/delete_profile/delete_profile_modal.js +++ b/src/components/edit_user/generic_data/delete_profile/delete_profile_modal.js @@ -21,7 +21,7 @@ const DeleteProfileModal = (props) => {
- +
diff --git a/src/components/edit_user/generic_data/edit_user_avatar/delete_avatar_modal/avatar_modal.js b/src/components/edit_user/generic_data/edit_user_avatar/delete_avatar_modal/avatar_modal.js index f7a6d55..3422dec 100644 --- a/src/components/edit_user/generic_data/edit_user_avatar/delete_avatar_modal/avatar_modal.js +++ b/src/components/edit_user/generic_data/edit_user_avatar/delete_avatar_modal/avatar_modal.js @@ -15,7 +15,7 @@ const AvatarContentModal = (props) => {
- +
diff --git a/src/components/edit_user/generic_data/edit_user_avatar/edit_user_avatar.js b/src/components/edit_user/generic_data/edit_user_avatar/edit_user_avatar.js index a95f1c8..49c5c07 100644 --- a/src/components/edit_user/generic_data/edit_user_avatar/edit_user_avatar.js +++ b/src/components/edit_user/generic_data/edit_user_avatar/edit_user_avatar.js @@ -9,7 +9,8 @@ import Button from "@material-ui/core/Button"; const styles = { bigAvatar: { width: 130, - height: 130 + height: 130, + backgroundColor: "#dadada" }, avatarDelete: { textTransform: "none", @@ -23,7 +24,7 @@ const { classes, selectedUser, modalAlertDeleteAvatar } = props; return (
- {!selectedUser[0].avatar + {selectedUser[0].avatar ?
this.setState({ openModalDeleteAvatar: true }); - handleContactInfoDelete = () => this.setState({ openModal: true }); + handleContactInfoDelete = () => this.setState({ openModalDeleteContact: true }); + handleContactInfoEdit = () => this.setState({ openModalEditContact: true }); handleDeleteProfilConfirmed = () => this.setState({ openModalDeleteProfile: true }); handleModalAvatarCancel = () => this.setState({ openModalDeleteAvatar: false }); - handleModalConfirmedCancel = () => this.setState({ openModal: false }); + handleModalConfirmedCancel = () => this.setState({ openModalDeleteContact: false }); handleModalDeleteProfileCancel = () => this.setState({ openModalDeleteProfile: false }); + handleModalEditProfileCancel = () => this.setState({ openModalEditContact: false }); handleDeleteContact = (contactInfoType) => { @@ -110,7 +114,16 @@ class EditUser extends Component{ } this.handleContactInfoDelete(); }; - handleEditContact = () => this.handleCloseContactInfo(); + handleEditContact = (contactInfoType) => { + + if (contactInfoType !== this.state.controlTypeEdit) { + this.setState({ controlTypeEdit: contactInfoType }); + } + this.handleContactInfoEdit(); + console.log('===================================='); + console.log('EDIT'); + console.log('===================================='); + }; render() { @@ -127,7 +140,7 @@ class EditUser extends Component{ const { selectedUser } = this.props; - const { openModal, openModalDeleteProfile, openModalDeleteAvatar, controlsType, profileUserModel} = this.state; + const { openModalDeleteContact, openModalDeleteProfile, openModalEditContact, openModalDeleteAvatar, controlsType, controlTypeEdit, profileUserModel} = this.state; // const { classes, coldef, selectedUser } = this.props; // const { url, path } = this.props.match; @@ -152,12 +165,15 @@ class EditUser extends Component{ - + + + + { diff --git a/src/components/shared/ui/modal/modal.css b/src/components/shared/ui/modal/modal.css index 47b09f6..8100184 100644 --- a/src/components/shared/ui/modal/modal.css +++ b/src/components/shared/ui/modal/modal.css @@ -34,6 +34,9 @@ .pfofile-delete-btn button { font-weight: 700; } +.pfofile-delete-btn button:first-of-type { + color: #0086f8; +} .modal-control-btn button { color: #0086f8; } @@ -42,4 +45,27 @@ .profile-delete { padding: 20px; max-width: 500px; +} +.edit-modal-control { + position: relative; +} +.edit-modal-control:before { + position: absolute; + content: "\00a0"; + + left: 0; + right: 0; + bottom: 0; + + transition: border-bottom-color 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; + border-bottom: 1px solid rgba(0, 0, 0, 0.42); + pointer-events: none; + z-index: 100; +} +.edit-modal-control:hover:before { + border-bottom: 2px solid #303f9f; + z-index: 2; +} +div.edit-modal-control div.edit-lear-padding { + padding-bottom: 0; } \ No newline at end of file -- GitLab From 1abb0cdb86094c50e604074471813cef3995ae2d Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Thu, 15 Nov 2018 18:05:45 +0200 Subject: [PATCH 185/249] Minor Chnages --- .../generic_data/access_status/access_status.js | 2 +- .../edit_user/generic_data/generic_data.css | 16 ++-------------- 2 files changed, 3 insertions(+), 15 deletions(-) diff --git a/src/components/edit_user/generic_data/access_status/access_status.js b/src/components/edit_user/generic_data/access_status/access_status.js index 2ee17c0..ab98bbc 100644 --- a/src/components/edit_user/generic_data/access_status/access_status.js +++ b/src/components/edit_user/generic_data/access_status/access_status.js @@ -19,7 +19,7 @@ const AccessStatus = (props) => { return (
- Edited + Edited {selectedUser[0].accessstatus && parentState.profileUserModel.accountStatus ? Date: Thu, 15 Nov 2018 18:17:28 +0200 Subject: [PATCH 186/249] adde IDE files to gitignore --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index d30f40e..25d7f82 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,8 @@ # See https://help.github.com/ignore-files/ for more about ignoring files. +#IDE files +.idea + # dependencies /node_modules -- GitLab From 1a74a335a094a2749a0641308780b8e86b352ba7 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Fri, 16 Nov 2018 10:37:19 +0200 Subject: [PATCH 187/249] NY-5397 constructing first name and avatar in single column --- .../dashboard_users/css/{index.css => style.css} | 10 +++++++++- src/components/dashboard_users/index.js | 2 +- src/components/dashboard_users/reducer.js | 3 +-- src/utils/helpers/avatar_insertion.js | 6 ++++-- 4 files changed, 15 insertions(+), 6 deletions(-) rename src/components/dashboard_users/css/{index.css => style.css} (90%) diff --git a/src/components/dashboard_users/css/index.css b/src/components/dashboard_users/css/style.css similarity index 90% rename from src/components/dashboard_users/css/index.css rename to src/components/dashboard_users/css/style.css index 3efb911..063c594 100644 --- a/src/components/dashboard_users/css/index.css +++ b/src/components/dashboard_users/css/style.css @@ -77,6 +77,14 @@ top: -5px } -.ag-primary-cols-list-panel .ag-column-tool-panel-column:nth-child(n + 7) { +.user-avatar-img { + display:block; + float: left; + margin-top: 10px; + width: 1em; + height: 1em; +} + +.ag-primary-cols-list-panel .ag-column-tool-panel-column:nth-child(n + 6) { display: none; } \ No newline at end of file diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index a118042..6780df0 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -12,7 +12,7 @@ import * as actions from './actions'; import { dataSource } from './../../utils/services/ag_grid_server_model.js' -import "./css/index.css"; +import "./css/style.css"; import "./../../../node_modules/ag-grid-community/dist/styles/ag-grid.css"; import "./../../../node_modules/ag-grid-community/dist/styles/ag-theme-material.css"; diff --git a/src/components/dashboard_users/reducer.js b/src/components/dashboard_users/reducer.js index a80f742..7b703a7 100644 --- a/src/components/dashboard_users/reducer.js +++ b/src/components/dashboard_users/reducer.js @@ -7,8 +7,7 @@ import userAvatar from '../../utils/helpers/avatar_insertion'; */ const initialState = { coldef: [ - {headerName: "Avatar", width: 150, hide: false, field: "avatar", suppressFilter: true, suppressSizeToFit: true, cellRenderer: "agGroupCellRenderer", cellRendererParams: { innerRenderer: userAvatar } }, - {headerName: "First name", hide: false, field: "firstname", filter: 'agTextColumnFilter' }, + {headerName: "First name", hide: false, field: "firstname", filter: 'agTextColumnFilter', cellRenderer: "agGroupCellRenderer", cellRendererParams: { innerRenderer: userAvatar } }, {headerName: "Last name", hide: false, field: "lastname", filter: 'agTextColumnFilter' }, {headerName: "Username", hide: false, field: "username", filter: 'agTextColumnFilter' }, {headerName: "Authentication Identifier", hide: false, field: "authenticationidentifier", filter: 'agTextColumnFilter' }, diff --git a/src/utils/helpers/avatar_insertion.js b/src/utils/helpers/avatar_insertion.js index cc87b73..b60c427 100644 --- a/src/utils/helpers/avatar_insertion.js +++ b/src/utils/helpers/avatar_insertion.js @@ -1,7 +1,9 @@ const userAvatar = (params) => { - const avatar = params.value ? `${params.value}` - : `` + debugger + + const avatar = params.data.avatar !== "" ? `${params.data.avatar}${params.data.firstname}` + : ` ${params.data.firstname}` return avatar ? avatar : null; }; -- GitLab From 265ffb672b2494f6fb50e71eb1ef8b43c2318ce3 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Fri, 16 Nov 2018 11:02:36 +0200 Subject: [PATCH 188/249] NY-5363 compiled proto files for getProfilebyProfileId --- src/utils/grpc_proto/account.proto | 6 + src/utils/grpc_proto/generated/account_pb.js | 143 ++++++++++++++++++ .../generated/account_pb_service.js | 34 +++++ 3 files changed, 183 insertions(+) diff --git a/src/utils/grpc_proto/account.proto b/src/utils/grpc_proto/account.proto index 32bbdce..fd7bd4b 100644 --- a/src/utils/grpc_proto/account.proto +++ b/src/utils/grpc_proto/account.proto @@ -23,6 +23,8 @@ service AccountService { rpc updateAccount (UpdateAccountRequest) returns (AccountResponse); rpc deleteAccount (DeleteAccountRequest) returns (StatusResponse); rpc deleteProfile (DeleteProfileRequest) returns (StatusResponse); + /* Return the profile specified by profile Id. */ + rpc getProfileByProfileId (ProfileByProfileIdRequest) returns (ProfileResponse); rpc addAuthenticationProviderToProfile(AddAuthenticationProviderRequest) returns (StatusResponse); rpc deleteAuthenticationProviderFromProfile(DeleteAuthenticationProviderRequest) returns (StatusResponse); rpc updateAuthenticationProviderForProfile(UpdateAuthenticationProviderRequest) returns (StatusResponse); @@ -100,6 +102,10 @@ message AccountByAccountIdRequest { string accountId = 1; } +message ProfileByProfileIdRequest { + string profileId = 1; // Must be valid UUID +} + message AccountByAuthenticationProviderRequest { AuthenticationType authenticationType = 1; // Can be PHONE, EMAIL, FB, GOOGLE+ string authenticationIdentifier = 2; // The actual value to search for, like the phone number, diff --git a/src/utils/grpc_proto/generated/account_pb.js b/src/utils/grpc_proto/generated/account_pb.js index 112502e..9b7ab49 100644 --- a/src/utils/grpc_proto/generated/account_pb.js +++ b/src/utils/grpc_proto/generated/account_pb.js @@ -42,6 +42,7 @@ goog.exportSymbol('proto.account.GetByPhoneNumberRequest', null, global); goog.exportSymbol('proto.account.GetByQrCodeRequest', null, global); goog.exportSymbol('proto.account.GetByUsernameRequest', null, global); goog.exportSymbol('proto.account.PendingAccountDetails', null, global); +goog.exportSymbol('proto.account.ProfileByProfileIdRequest', null, global); goog.exportSymbol('proto.account.ProfileDetails', null, global); goog.exportSymbol('proto.account.ProfileResponse', null, global); goog.exportSymbol('proto.account.Role', null, global); @@ -1106,6 +1107,148 @@ proto.account.AccountByAccountIdRequest.prototype.setAccountid = function(value) +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.account.ProfileByProfileIdRequest = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.account.ProfileByProfileIdRequest, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.account.ProfileByProfileIdRequest.displayName = 'proto.account.ProfileByProfileIdRequest'; +} + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.account.ProfileByProfileIdRequest.prototype.toObject = function(opt_includeInstance) { + return proto.account.ProfileByProfileIdRequest.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.account.ProfileByProfileIdRequest} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.ProfileByProfileIdRequest.toObject = function(includeInstance, msg) { + var f, obj = { + profileid: jspb.Message.getFieldWithDefault(msg, 1, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.account.ProfileByProfileIdRequest} + */ +proto.account.ProfileByProfileIdRequest.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.account.ProfileByProfileIdRequest; + return proto.account.ProfileByProfileIdRequest.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.account.ProfileByProfileIdRequest} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.account.ProfileByProfileIdRequest} + */ +proto.account.ProfileByProfileIdRequest.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setProfileid(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.account.ProfileByProfileIdRequest.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.account.ProfileByProfileIdRequest.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.account.ProfileByProfileIdRequest} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.account.ProfileByProfileIdRequest.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getProfileid(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } +}; + + +/** + * optional string profileId = 1; + * @return {string} + */ +proto.account.ProfileByProfileIdRequest.prototype.getProfileid = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** @param {string} value */ +proto.account.ProfileByProfileIdRequest.prototype.setProfileid = function(value) { + jspb.Message.setProto3StringField(this, 1, value); +}; + + + /** * Generated by JsPbCodeGenerator. * @param {Array=} opt_data Optional initial data array, typically from a diff --git a/src/utils/grpc_proto/generated/account_pb_service.js b/src/utils/grpc_proto/generated/account_pb_service.js index 8dc43cf..44e5884 100644 --- a/src/utils/grpc_proto/generated/account_pb_service.js +++ b/src/utils/grpc_proto/generated/account_pb_service.js @@ -101,6 +101,15 @@ AccountService.deleteProfile = { responseType: account_pb.StatusResponse }; +AccountService.getProfileByProfileId = { + methodName: "getProfileByProfileId", + service: AccountService, + requestStream: false, + responseStream: false, + requestType: account_pb.ProfileByProfileIdRequest, + responseType: account_pb.ProfileResponse +}; + AccountService.addAuthenticationProviderToProfile = { methodName: "addAuthenticationProviderToProfile", service: AccountService, @@ -448,6 +457,31 @@ AccountServiceClient.prototype.deleteProfile = function deleteProfile(requestMes }); }; +AccountServiceClient.prototype.getProfileByProfileId = function getProfileByProfileId(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + grpc.unary(AccountService.getProfileByProfileId, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); +}; + AccountServiceClient.prototype.addAuthenticationProviderToProfile = function addAuthenticationProviderToProfile(requestMessage, metadata, callback) { if (arguments.length === 2) { callback = arguments[1]; -- GitLab From ca19046ed1491406c96dbf146f18932be8d874b2 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Fri, 16 Nov 2018 11:10:53 +0200 Subject: [PATCH 189/249] editning functionality --- src/components/dashboard_users/css/index.css | 82 ------------------- .../contact_info_control_options.js | 2 +- .../modal_content/delete_modal.js | 2 +- .../contact_info/modal_content/edit_modal.js | 19 +++-- .../generic_data/contact_info/text_control.js | 1 + .../edit_user_avatar/edit_user_avatar.js | 2 +- .../edit_user/generic_data/index.js | 5 +- .../generic_data/user_profile_model.js | 5 +- src/components/edit_user/index.js | 26 +++--- .../shared/ui/back_drop/back_drop.js | 2 +- src/components/shared/ui/modal/modal.css | 14 +++- src/components/shared/ui/modal/modal.js | 2 +- 12 files changed, 52 insertions(+), 110 deletions(-) delete mode 100644 src/components/dashboard_users/css/index.css diff --git a/src/components/dashboard_users/css/index.css b/src/components/dashboard_users/css/index.css deleted file mode 100644 index 3efb911..0000000 --- a/src/components/dashboard_users/css/index.css +++ /dev/null @@ -1,82 +0,0 @@ -.ag-grid-wrapper { - position: relative; - - height: calc(100vh - 200px); -} - -.table-grouping { - position: fixed; - - top: 115px; - right: 2px; - bottom: 0; - - padding: 0 0 0 20px; - max-width: 265px; - background: #fff; - overflow-y: auto; -} - -.user-avatar { - display: inline-block; - - width: 30px; - height: 30px; -} -.user-avatar-img { - display: block; - - margin-top: 6px; - width: 100%; -} - -.toggleGrouping { - position: absolute; - display: block; - - top: 0; - left: 0; - - -webkit-writing-mode: vertical-lr; - -ms-writing-mode: tb-lr; - writing-mode: vertical-lr; -} - -.toggleGrouping:hover { - cursor: pointer; -} - -.grouping-options { - display: none; -} - -.grouping-options.visible-grouping-options { - display: block; -} -.ag-theme-material .ag-icon-checkbox-checked:empty { - filter: invert(50%); -} -.ag-theme-material div.ag-header-cell-resize { - height: 80%; - top: 50%; - - border-left: solid 1px #ccc; - transform: translate(0, -50%); -} -.more-options, -.account-name { - position: absolute; - display: inline-block; -} - -.more-options { - top: 10px; - color: #999a9d; -} -.account-name { - top: -5px -} - -.ag-primary-cols-list-panel .ag-column-tool-panel-column:nth-child(n + 7) { - display: none; -} \ No newline at end of file diff --git a/src/components/edit_user/generic_data/contact_info/contact_info_control_options.js b/src/components/edit_user/generic_data/contact_info/contact_info_control_options.js index 6b745be..b1603e3 100644 --- a/src/components/edit_user/generic_data/contact_info/contact_info_control_options.js +++ b/src/components/edit_user/generic_data/contact_info/contact_info_control_options.js @@ -30,7 +30,7 @@ class ContactInfoControlOptions extends Component { onHandleEditContact = () => { this.handleClose(); - this.props.handleEditContact(this.props.accountType); + this.props.handleEditContact(this.props.accountType, this.props.controlValue); } render(){ diff --git a/src/components/edit_user/generic_data/contact_info/modal_content/delete_modal.js b/src/components/edit_user/generic_data/contact_info/modal_content/delete_modal.js index cfb29b4..4c2595d 100644 --- a/src/components/edit_user/generic_data/contact_info/modal_content/delete_modal.js +++ b/src/components/edit_user/generic_data/contact_info/modal_content/delete_modal.js @@ -15,7 +15,7 @@ const ContactInfoDeleteModal = (props) => {
- +
diff --git a/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js b/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js index 8379034..769646c 100644 --- a/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js +++ b/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js @@ -9,11 +9,11 @@ import TextField from "@material-ui/core/TextField"; const styles = {}; const ContactInfoEditModal = (props) => { - const { handleModalEditProfileCancel, controlLabel, classes, controlValue, parentState } = props; + const { handleModalEditProfileCancel, controlLabel, classes, controlValueEdit } = props; return (
-

Edit {controlLabel}

+

Edit {controlLabel}

{ controlLabel !== 'PHONE' && controlLabel && controlLabel !== '' ?
@@ -24,20 +24,27 @@ const ContactInfoEditModal = (props) => { - +
-
+
- +
: controlLabel && controlLabel !== '' ?
- PHONE +
+ + +
: null } diff --git a/src/components/edit_user/generic_data/contact_info/text_control.js b/src/components/edit_user/generic_data/contact_info/text_control.js index 46db24e..b1eb227 100644 --- a/src/components/edit_user/generic_data/contact_info/text_control.js +++ b/src/components/edit_user/generic_data/contact_info/text_control.js @@ -36,6 +36,7 @@ const TextControl = (props) => { handleDeleteContact={handleDeleteContact} accountType={accountType} handleEditContact={handleEditContact} + controlValue={controlValue} /> ) }} diff --git a/src/components/edit_user/generic_data/edit_user_avatar/edit_user_avatar.js b/src/components/edit_user/generic_data/edit_user_avatar/edit_user_avatar.js index 49c5c07..52dedca 100644 --- a/src/components/edit_user/generic_data/edit_user_avatar/edit_user_avatar.js +++ b/src/components/edit_user/generic_data/edit_user_avatar/edit_user_avatar.js @@ -24,7 +24,7 @@ const { classes, selectedUser, modalAlertDeleteAvatar } = props; return (
- {selectedUser[0].avatar + {!selectedUser[0].avatar ?
{ if (accountContactType[1] === accountContactType[contactTypeItem.type]) { + // console.log('===================================='); + // console.log(contactTypeItem); + // console.log('===================================='); + return { accountType={accountTypeString[contactTypeItem.type]} handleEditContact={handleEditContact} controlValue={contactTypeItem.value} - /> } }) diff --git a/src/components/edit_user/generic_data/user_profile_model.js b/src/components/edit_user/generic_data/user_profile_model.js index c16f8ba..521e03f 100644 --- a/src/components/edit_user/generic_data/user_profile_model.js +++ b/src/components/edit_user/generic_data/user_profile_model.js @@ -1,6 +1,6 @@ class UserProfileModel { - constructor(_firstName, _lastName, _userName, _accountStatus, _userBirthday, _rolesList) { + constructor(_firstName, _lastName, _userName, _accountStatus, _userBirthday, _rolesList, _contactsinfoList ) { this._isUpdated = false; this._firstName = _firstName; @@ -20,6 +20,9 @@ class UserProfileModel { this._rolesList = _rolesList; this._oldrolesList = _rolesList; + + this._contactsinfoList = _contactsinfoList; + this._oldContactsinfoList = _contactsinfoList; } /* diff --git a/src/components/edit_user/index.js b/src/components/edit_user/index.js index 5ef0786..77409d5 100644 --- a/src/components/edit_user/index.js +++ b/src/components/edit_user/index.js @@ -24,7 +24,7 @@ import Modal from "../shared/ui/modal/modal"; import Grid from '@material-ui/core/Grid'; import './edit_user.css'; -const styles = theme => ({}) +const styles = theme => ({}); class EditUser extends Component{ constructor(props) { super(props); @@ -33,6 +33,7 @@ class EditUser extends Component{ profileUserModel: new UserProfileModel(''), controlsType: '', controlTypeEdit: '', + controlValueEdit: '', valuesStates: true, openModalDeleteContact: false, openModalDeleteProfile: false, @@ -114,15 +115,17 @@ class EditUser extends Component{ } this.handleContactInfoDelete(); }; - handleEditContact = (contactInfoType) => { + + handleEditContact = (contactInfoType, contactInfoValue) => { if (contactInfoType !== this.state.controlTypeEdit) { this.setState({ controlTypeEdit: contactInfoType }); } + + if (contactInfoValue !== this.state.controlValueEdit) { + this.setState({ controlValueEdit: contactInfoValue }); + } this.handleContactInfoEdit(); - console.log('===================================='); - console.log('EDIT'); - console.log('===================================='); }; render() { @@ -140,7 +143,8 @@ class EditUser extends Component{ const { selectedUser } = this.props; - const { openModalDeleteContact, openModalDeleteProfile, openModalEditContact, openModalDeleteAvatar, controlsType, controlTypeEdit, profileUserModel} = this.state; + const { openModalDeleteContact, openModalDeleteProfile, openModalEditContact, openModalDeleteAvatar, + controlsType, controlValueEdit, controlTypeEdit, profileUserModel} = this.state; // const { classes, coldef, selectedUser } = this.props; // const { url, path } = this.props.match; @@ -171,8 +175,8 @@ class EditUser extends Component{ - - + + @@ -204,12 +208,12 @@ class EditUser extends Component{ ) } -} +}; EditUser.propTypes = { selectedUser: PropTypes.array.isRequired, coldef: PropTypes.array.isRequired -} +}; function mapStateToProps({ users, editUser, error }, { match }){ return { @@ -217,7 +221,7 @@ function mapStateToProps({ users, editUser, error }, { match }){ coldef: users.coldef, error } -} +}; const mapDispatchToProps = (dispatch) => { diff --git a/src/components/shared/ui/back_drop/back_drop.js b/src/components/shared/ui/back_drop/back_drop.js index 2501980..fa4bd99 100644 --- a/src/components/shared/ui/back_drop/back_drop.js +++ b/src/components/shared/ui/back_drop/back_drop.js @@ -11,7 +11,7 @@ const backdrop = (props) => ( ); backdrop.propTypes = { - clicked: PropTypes.func.isRequired + clicked: PropTypes.func }; export default backdrop; \ No newline at end of file diff --git a/src/components/shared/ui/modal/modal.css b/src/components/shared/ui/modal/modal.css index 8100184..395b4e4 100644 --- a/src/components/shared/ui/modal/modal.css +++ b/src/components/shared/ui/modal/modal.css @@ -30,14 +30,20 @@ .pfofile-delete-btn { text-align: right; } -.modal-control-btn button , +.modal-edit-btn { + margin-top: 30px; +} +.modal-title.edit-offset { + margin-bottom: 10px; +} +.modal-control-btn button, .pfofile-delete-btn button { font-weight: 700; } .pfofile-delete-btn button:first-of-type { color: #0086f8; } -.modal-control-btn button { +.modal-control-btn button:first-of-type { color: #0086f8; } .avatar-alert-delete, @@ -46,7 +52,7 @@ padding: 20px; max-width: 500px; } -.edit-modal-control { +/* .edit-modal-control { position: relative; } .edit-modal-control:before { @@ -68,4 +74,4 @@ } div.edit-modal-control div.edit-lear-padding { padding-bottom: 0; -} \ No newline at end of file +} */ \ No newline at end of file diff --git a/src/components/shared/ui/modal/modal.js b/src/components/shared/ui/modal/modal.js index ddd9501..9a6c4dd 100644 --- a/src/components/shared/ui/modal/modal.js +++ b/src/components/shared/ui/modal/modal.js @@ -29,7 +29,7 @@ class Modal extends Component { } Modal.propTypes = { - modalClosed: PropTypes.func.isRequired + modalClosed: PropTypes.func }; export default Modal; \ No newline at end of file -- GitLab From 1d513c088d17c7c5af313231c88a01a1dcc9d048 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Fri, 16 Nov 2018 11:44:24 +0200 Subject: [PATCH 190/249] Minor changes --- .../generic_data/delete_profile/delete_profile_modal.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/edit_user/generic_data/delete_profile/delete_profile_modal.js b/src/components/edit_user/generic_data/delete_profile/delete_profile_modal.js index bcb2e85..1c35412 100644 --- a/src/components/edit_user/generic_data/delete_profile/delete_profile_modal.js +++ b/src/components/edit_user/generic_data/delete_profile/delete_profile_modal.js @@ -13,9 +13,9 @@ const DeleteProfileModal = (props) => {
{ controlLabel && controlLabel === 'ADMIN' - ?

When deleting an ADMIN user: "You are about to delete a user with ADMIN privileges. Do you want to continue?"

+ ?

You are about to delete a user with ADMIN privileges. Do you want to continue?

: controlLabel && controlLabel === 'USER' - ?

When deleting REGULAR user: "You are about to permanently delete a user. Do you want to continue?"

+ ?

You are about to permanently delete a user. Do you want to continue?

: null } -- GitLab From cc6336bfae919f2e4f26b719181aff3138613447 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Fri, 16 Nov 2018 13:02:56 +0200 Subject: [PATCH 191/249] NY-4632 mocking created updated dashboard columns --- package.json | 1 + src/components/dashboard_users/css/style.css | 5 ++++ src/components/dashboard_users/reducer.js | 7 ++++-- src/utils/helpers/avatar_insertion.js | 2 -- src/utils/helpers/date_time_structure.js | 8 ++++++ src/utils/services/admin_account.js | 1 + src/utils/services/ag_grid_server_model.js | 26 ++++++++++++++------ yarn.lock | 4 +++ 8 files changed, 43 insertions(+), 11 deletions(-) create mode 100644 src/utils/helpers/date_time_structure.js diff --git a/package.json b/package.json index 9a9bd96..73603df 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ "enzyme-adapter-react-16": "^1.5.0", "google-protobuf": "^3.6.1", "grpc-web-client": "^0.6.3", + "moment": "^2.22.2", "prop-types": "^15.6.2", "react": "^16.5.2", "react-dom": "^16.5.2", diff --git a/src/components/dashboard_users/css/style.css b/src/components/dashboard_users/css/style.css index 063c594..033acbf 100644 --- a/src/components/dashboard_users/css/style.css +++ b/src/components/dashboard_users/css/style.css @@ -81,10 +81,15 @@ display:block; float: left; margin-top: 10px; + margin-right: 15px; width: 1em; height: 1em; } .ag-primary-cols-list-panel .ag-column-tool-panel-column:nth-child(n + 6) { display: none; +} + +body .ag-theme-material .ag-ltr .ag-row-group-leaf-indent { + margin-left: 0; } \ No newline at end of file diff --git a/src/components/dashboard_users/reducer.js b/src/components/dashboard_users/reducer.js index 7b703a7..7512e75 100644 --- a/src/components/dashboard_users/reducer.js +++ b/src/components/dashboard_users/reducer.js @@ -1,6 +1,7 @@ import { GET_USERS, PAGE_SIZE_UPDATE} from './actions'; -import { updateObject } from '../../hoc/update-object/update-object'; -import userAvatar from '../../utils/helpers/avatar_insertion'; +import { updateObject } from './../../hoc/update-object/update-object'; +import userAvatar from './../../utils/helpers/avatar_insertion'; +import dateTimeStructure from './../../utils/helpers/date_time_structure'; /** * AG-Grid initial column definitions, row empty data, loading and error flags @@ -13,6 +14,8 @@ const initialState = { {headerName: "Authentication Identifier", hide: false, field: "authenticationidentifier", filter: 'agTextColumnFilter' }, {headerName: "Access Status", hide: false, field: "accessstatus", filter: 'agTextColumnFilter' }, {headerName: "Contacts Info List", hide: true, field: "contactsinfoList", filter: 'agTextColumnFilter' }, + {headerName: "Created", hide: false, field: "creationdate", filter: 'agDateColumnFilter', cellRenderer: "agGroupCellRenderer", cellRendererParams: { innerRenderer: dateTimeStructure } }, + {headerName: "Updated", hide: false, field: "updateddate", filter: 'agDateColumnFilter', cellRenderer: "agGroupCellRenderer", cellRendererParams: { innerRenderer: dateTimeStructure } }, {headerName: "Account ID", hide: true, field: "accountid", filter: 'agTextColumnFilter' }, {headerName: "Roles List", hide: true, field: "rolesList", filter: 'agTextColumnFilter' }, {headerName: "Profile ID", hide: true, field: "profileid", filter: 'agTextColumnFilter' }, diff --git a/src/utils/helpers/avatar_insertion.js b/src/utils/helpers/avatar_insertion.js index b60c427..c79bc46 100644 --- a/src/utils/helpers/avatar_insertion.js +++ b/src/utils/helpers/avatar_insertion.js @@ -1,7 +1,5 @@ const userAvatar = (params) => { - debugger - const avatar = params.data.avatar !== "" ? `${params.data.avatar}${params.data.firstname}` : ` ${params.data.firstname}` diff --git a/src/utils/helpers/date_time_structure.js b/src/utils/helpers/date_time_structure.js new file mode 100644 index 0000000..ac5901b --- /dev/null +++ b/src/utils/helpers/date_time_structure.js @@ -0,0 +1,8 @@ +const dateTimeStructure = (params) => { + + const dateTime = params.value.length > 0 ? `${params.value[0]}${params.value[1]}` : null; + + return dateTime; + }; + + export default dateTimeStructure; \ No newline at end of file diff --git a/src/utils/services/admin_account.js b/src/utils/services/admin_account.js index ce35d22..63ebdcc 100644 --- a/src/utils/services/admin_account.js +++ b/src/utils/services/admin_account.js @@ -31,6 +31,7 @@ export function getAllAccountsGrpcRequest(startRow, endRow){ let getCountOfAllAccountsRequest = new EmptyRequest(); export function getCountOfAllAccountsGrpcRequest(){ + return new Promise((resolve, reject) => { adminAccountServiceClient.getCountOfAllAccounts(getCountOfAllAccountsRequest, {'Content-type': 'application/grpc-web+proto'}, (error, response) => { if(response) { diff --git a/src/utils/services/ag_grid_server_model.js b/src/utils/services/ag_grid_server_model.js index c452cae..0084746 100644 --- a/src/utils/services/ag_grid_server_model.js +++ b/src/utils/services/ag_grid_server_model.js @@ -1,5 +1,6 @@ import { getAllAccountsGrpcRequest, getCountOfAllAccountsGrpcRequest } from './../services/admin_account'; -import { accountStatusVariations, accountRoleVariations } from './../services/accounts' +import { accountStatusVariations, accountRoleVariations } from './../services/accounts'; +import * as moment from 'moment'; function ServerSideDatasource() {} @@ -11,11 +12,11 @@ ServerSideDatasource.prototype.getRows = function(params) { console.log('ServerSideDatasource.getRows: params = ', params); // the request is passed dynamically from ag-grid - var request = params.request; + let request = params.request; console.log('request', request); - var startRow = params.request.startRow === 0 ? 1 : params.request.startRow; - var endRow = params.request.endRow; + let startRow = params.request.startRow === 0 ? 1 : params.request.startRow; + let endRow = params.request.endRow; /** * @param {func} successCallback @@ -27,16 +28,27 @@ ServerSideDatasource.prototype.getRows = function(params) { // this.fakeServer.getUsersData(successCallback, request); // console.log("request", request) - var getUsersDataPromise = getAllAccountsGrpcRequest(startRow, endRow); - var getCountOfAllAccountsPromise = getCountOfAllAccountsGrpcRequest(); + let getUsersDataPromise = getAllAccountsGrpcRequest(startRow, endRow); + let getCountOfAllAccountsPromise = getCountOfAllAccountsGrpcRequest(); + Promise.all([getUsersDataPromise, getCountOfAllAccountsPromise]).then((data) => { - + data[0].accountdetailsList.map((item) => { item.accessstatus = item.accessstatus === undefined || item.accessstatus === 0 ? accountStatusVariations[1] : accountStatusVariations[item.accessstatus]; let roleListItem = item.rolesList.map((roleItem) => accountRoleVariations[roleItem]); item.rolesList = roleListItem; + let timestampCreated = moment(1542206425999); // this is the format, which will be taken by from the endpoint + let creationDate = `${timestampCreated.day()}/${timestampCreated.month()}/${timestampCreated.year()}` + let creationTime = `${timestampCreated.format('hh:mm A')}`; + item.creationdate = [creationDate, creationTime] + + let timestampUpdated = moment(1542286425999); // this is the format, which will be taken by from the endpoint + let updatedDate = `${timestampUpdated.day()}/${timestampUpdated.month()}/${timestampUpdated.year()}` + let updatedTime = `${timestampUpdated.format('hh:mm A')}`; + item.updateddate = [updatedDate, updatedTime] + return item; }) diff --git a/yarn.lock b/yarn.lock index d5b4a98..284f981 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5725,6 +5725,10 @@ mkdirp@0.5.1, mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@ dependencies: minimist "0.0.8" +moment@^2.22.2: + version "2.22.2" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.22.2.tgz#3c257f9839fc0e93ff53149632239eb90783ff66" + moo@^0.4.3: version "0.4.3" resolved "https://registry.yarnpkg.com/moo/-/moo-0.4.3.tgz#3f847a26f31cf625a956a87f2b10fbc013bfd10e" -- GitLab From 7291409e5315c0668db0a52ac395145f76582fd8 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Fri, 16 Nov 2018 13:22:34 +0200 Subject: [PATCH 192/249] NY-5408 style update of the timestamps --- src/components/dashboard_users/css/style.css | 5 +++++ src/utils/helpers/date_time_structure.js | 2 +- src/utils/services/ag_grid_server_model.js | 10 ++++++---- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/components/dashboard_users/css/style.css b/src/components/dashboard_users/css/style.css index 033acbf..0a72443 100644 --- a/src/components/dashboard_users/css/style.css +++ b/src/components/dashboard_users/css/style.css @@ -92,4 +92,9 @@ body .ag-theme-material .ag-ltr .ag-row-group-leaf-indent { margin-left: 0; +} + +.record-timestamp { + display: inline-block; + width: 100px; } \ No newline at end of file diff --git a/src/utils/helpers/date_time_structure.js b/src/utils/helpers/date_time_structure.js index ac5901b..6d6646d 100644 --- a/src/utils/helpers/date_time_structure.js +++ b/src/utils/helpers/date_time_structure.js @@ -1,6 +1,6 @@ const dateTimeStructure = (params) => { - const dateTime = params.value.length > 0 ? `${params.value[0]}${params.value[1]}` : null; + const dateTime = params.value.length > 0 ? `${params.value[0]}${params.value[1]}` : null; return dateTime; }; diff --git a/src/utils/services/ag_grid_server_model.js b/src/utils/services/ag_grid_server_model.js index 0084746..81970fb 100644 --- a/src/utils/services/ag_grid_server_model.js +++ b/src/utils/services/ag_grid_server_model.js @@ -34,18 +34,20 @@ ServerSideDatasource.prototype.getRows = function(params) { Promise.all([getUsersDataPromise, getCountOfAllAccountsPromise]).then((data) => { - data[0].accountdetailsList.map((item) => { + data[0].accountdetailsList.map((item, index) => { item.accessstatus = item.accessstatus === undefined || item.accessstatus === 0 ? accountStatusVariations[1] : accountStatusVariations[item.accessstatus]; let roleListItem = item.rolesList.map((roleItem) => accountRoleVariations[roleItem]); item.rolesList = roleListItem; - let timestampCreated = moment(1542206425999); // this is the format, which will be taken by from the endpoint - let creationDate = `${timestampCreated.day()}/${timestampCreated.month()}/${timestampCreated.year()}` + let timestampCreationMock = 1542206425999 + index * 100000000; + let timestampCreated = moment(timestampCreationMock); // this is the format, which will be taken by from the endpoint + let creationDate = `${timestampCreated.day() + 1}/${timestampCreated.month() + 1}/${timestampCreated.year()}` let creationTime = `${timestampCreated.format('hh:mm A')}`; item.creationdate = [creationDate, creationTime] + let timestampUpdatedMock = 1542286425999 + index * 100000000; let timestampUpdated = moment(1542286425999); // this is the format, which will be taken by from the endpoint - let updatedDate = `${timestampUpdated.day()}/${timestampUpdated.month()}/${timestampUpdated.year()}` + let updatedDate = `${timestampUpdated.day() + 1}/${timestampUpdated.month() + 1}/${timestampUpdated.year()}` let updatedTime = `${timestampUpdated.format('hh:mm A')}`; item.updateddate = [updatedDate, updatedTime] -- GitLab From 77d91c388ae7cae330b7bb7f1105531fd056de97 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Fri, 16 Nov 2018 16:25:05 +0200 Subject: [PATCH 193/249] NY-5416 --- .../contact_info/modal_content/edit_modal.js | 12 +++++-- .../contact_info/phone_control.js | 4 +-- .../generic_data/contact_info/text_control.js | 34 ++++++++++++++++--- .../edit_user/generic_data/generic_data.css | 3 ++ .../edit_user/generic_data/index.js | 9 ++--- .../personal_info/personal_info.js | 16 +++++++++ .../generic_data/user_profile_model.js | 28 +++++++++++++-- src/components/edit_user/index.js | 17 ++++++---- src/components/shared/ui/modal/modal.css | 2 +- 9 files changed, 100 insertions(+), 25 deletions(-) diff --git a/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js b/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js index 769646c..9395fd6 100644 --- a/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js +++ b/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js @@ -3,13 +3,14 @@ import { withStyles } from "@material-ui/core/styles"; import Button from "@material-ui/core/Button"; import Grid from "@material-ui/core/Grid"; -import AccountCircle from "@material-ui/icons/AccountCircle"; +import Email from "@material-ui/icons/Email"; +import People from "@material-ui/icons/People"; import TextField from "@material-ui/core/TextField"; const styles = {}; const ContactInfoEditModal = (props) => { - const { handleModalEditProfileCancel, controlLabel, classes, controlValueEdit } = props; + const { handleModalEditProfileCancel, controlLabel, classes, controlValueEdit, onHandleChange } = props; return (
@@ -21,13 +22,18 @@ const ContactInfoEditModal = (props) => {
- + {controlLabel !== 'EMAIL' && controlLabel !== 'PHONE' + ? + : + } diff --git a/src/components/edit_user/generic_data/contact_info/phone_control.js b/src/components/edit_user/generic_data/contact_info/phone_control.js index 7af6c28..cbf85a6 100644 --- a/src/components/edit_user/generic_data/contact_info/phone_control.js +++ b/src/components/edit_user/generic_data/contact_info/phone_control.js @@ -5,7 +5,7 @@ import { withStyles } from "@material-ui/core/styles"; import FormControl from "@material-ui/core/FormControl"; import InputAdornment from "@material-ui/core/InputAdornment"; -import AccountCircle from "@material-ui/icons/AccountCircle"; +import Phone from "@material-ui/icons/Phone"; import Input from "@material-ui/core/Input"; import InputLabel from "@material-ui/core/InputLabel"; @@ -31,7 +31,7 @@ const PhoneControl = (props) => { readOnly startAdornment={ - + } endAdornment={ diff --git a/src/components/edit_user/generic_data/contact_info/text_control.js b/src/components/edit_user/generic_data/contact_info/text_control.js index b1eb227..c5f27db 100644 --- a/src/components/edit_user/generic_data/contact_info/text_control.js +++ b/src/components/edit_user/generic_data/contact_info/text_control.js @@ -4,7 +4,8 @@ import { withStyles } from "@material-ui/core/styles"; // import classNames from "classnames"; import InputAdornment from "@material-ui/core/InputAdornment"; -import AccountCircle from "@material-ui/icons/AccountCircle"; +import Mail from "@material-ui/icons/Mail"; +import People from "@material-ui/icons/People"; import TextField from "@material-ui/core/TextField"; import ContactInfoControlOptions from './contact_info_control_options'; @@ -18,7 +19,7 @@ const TextControl = (props) => {
{ - controlValue && controlValue !== '' + controlValue && controlValue !== '' && accountType === 'EMAIL' ? { readOnly: true, startAdornment: ( - + ), endAdornment:( @@ -43,7 +44,32 @@ const TextControl = (props) => { margin="normal" fullWidth /> - : null + : controlValue && controlValue !== '' && accountType !== 'EMAIL' + ? + + + ), + endAdornment:( + + ) + }} + margin="normal" + fullWidth + /> + : null }
); diff --git a/src/components/edit_user/generic_data/generic_data.css b/src/components/edit_user/generic_data/generic_data.css index 5fabbed..44921d3 100644 --- a/src/components/edit_user/generic_data/generic_data.css +++ b/src/components/edit_user/generic_data/generic_data.css @@ -93,4 +93,7 @@ -ms-box-shadow: inset 0 0 6px rgba(0,0,0,0.5); -ms-border-radius: 10px; border-radius: 10px; +} +.icon-filter { + filter: invert(0.30); } \ No newline at end of file diff --git a/src/components/edit_user/generic_data/index.js b/src/components/edit_user/generic_data/index.js index 17ba96b..30fd186 100644 --- a/src/components/edit_user/generic_data/index.js +++ b/src/components/edit_user/generic_data/index.js @@ -26,7 +26,6 @@ const genericUserData = (props) => { const { selectedUser, classes, onHandleChange, parentState, modalAlertDeleteAvatar, handleDeleteContact, handleEditContact, handleDeleteProfile } = props; - let accountTypeString = accountContactType.map((item) => { let accountSplit = item.split(/[_]/); return accountSplit[0] @@ -72,16 +71,12 @@ const genericUserData = (props) => { Contact Information - {selectedUser[0].contactsinfoList + {parentState.profileUserModel.contactsinfoList && parentState.profileUserModel.contactsinfoList.length !== 0 - ? selectedUser[0].contactsinfoList.map((contactTypeItem, index) => { + ? parentState.profileUserModel.contactsinfoList.map((contactTypeItem, index) => { if (accountContactType[1] === accountContactType[contactTypeItem.type]) { - // console.log('===================================='); - // console.log(contactTypeItem); - // console.log('===================================='); - return ({ rowControlWrapper: { @@ -103,6 +105,13 @@ const PersonalInfo = (props) => { onChange={onHandleChange} margin="normal" fullWidth + InputProps={{ + startAdornment: ( + + + + ) + }} /> : { onChange={onHandleChange} margin="normal" fullWidth + InputProps={{ + startAdornment: ( + + + + ) + }} /> }
diff --git a/src/components/edit_user/generic_data/user_profile_model.js b/src/components/edit_user/generic_data/user_profile_model.js index 521e03f..baa48ed 100644 --- a/src/components/edit_user/generic_data/user_profile_model.js +++ b/src/components/edit_user/generic_data/user_profile_model.js @@ -1,6 +1,6 @@ class UserProfileModel { - constructor(_firstName, _lastName, _userName, _accountStatus, _userBirthday, _rolesList, _contactsinfoList ) { + constructor(_firstName, _lastName, _userName, _accountStatus, _userBirthday, _rolesList, _contactsinfoList) { this._isUpdated = false; this._firstName = _firstName; @@ -100,9 +100,33 @@ class UserProfileModel { this._isUpdated = true; } + /* + * User contacts info list + */ + get contactsinfoList() { + return this._contactsinfoList; + } + + set contactsinfoList(val) { + // console.log('===================================='); + // console.log(this._contactsinfoList); + // console.log('===================================='); + + // this._contactsinfoList.map((item) => { + // if (val && item.value === val) { + // return item.value = val; + // } + // }); + // this._contactsinfoList = val; + // this._isUpdated = true; + // console.log('===================================='); + // console.log(val); + // console.log('===================================='); + } + get isUpdated() { - if (!this._userBirthday || !this._firstName || !this._lastName || !this._accountStatus || !this._rolesList) { + if (!this._userBirthday || !this._firstName || !this._lastName || !this._accountStatus || !this._rolesList || !this._contactsinfoList) { return false; } diff --git a/src/components/edit_user/index.js b/src/components/edit_user/index.js index 77409d5..a88ec5f 100644 --- a/src/components/edit_user/index.js +++ b/src/components/edit_user/index.js @@ -61,7 +61,8 @@ class EditUser extends Component{ this.props.selectedUser[0].username, this.props.selectedUser[0].accessstatus, {...this.props.selectedUser[0].birthday}, - this.props.selectedUser[0].rolesList + this.props.selectedUser[0].rolesList, + [...this.props.selectedUser[0].contactsinfoList] ); @@ -137,10 +138,9 @@ class EditUser extends Component{ * @const {string} path */ - console.log('===================================='); - console.log(this.state); - console.log('===================================='); - + console.log('===================================='); + console.log(this.state); + console.log('===================================='); const { selectedUser } = this.props; const { openModalDeleteContact, openModalDeleteProfile, openModalEditContact, openModalDeleteAvatar, @@ -176,7 +176,12 @@ class EditUser extends Component{ - + diff --git a/src/components/shared/ui/modal/modal.css b/src/components/shared/ui/modal/modal.css index 395b4e4..2d8d3e2 100644 --- a/src/components/shared/ui/modal/modal.css +++ b/src/components/shared/ui/modal/modal.css @@ -34,7 +34,7 @@ margin-top: 30px; } .modal-title.edit-offset { - margin-bottom: 10px; + margin-bottom: 20px; } .modal-control-btn button, .pfofile-delete-btn button { -- GitLab From b6f5b006a81a069934196cae545c0c7730b62e6c Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Fri, 16 Nov 2018 16:40:35 +0200 Subject: [PATCH 194/249] NY-5363 getProfileByProfileId endpoint integration --- src/components/edit_user/middleware.js | 7 ++- .../tabs_navigation/login_options/index.js | 29 +++++------- .../generated/account_pb_service.js | 4 +- src/utils/services/accounts.js | 45 ++++++++++++++----- src/utils/services/ag_grid_server_model.js | 2 +- 5 files changed, 53 insertions(+), 34 deletions(-) diff --git a/src/components/edit_user/middleware.js b/src/components/edit_user/middleware.js index de4bb74..47fdd9c 100644 --- a/src/components/edit_user/middleware.js +++ b/src/components/edit_user/middleware.js @@ -1,5 +1,5 @@ import { call, put } from 'redux-saga/effects'; -import { accountByAccountIdGrpcRequest } from './../../utils/services/accounts'; +import { accountByAccountIdGrpcRequest, profileByProfileIdGrpcRequest } from './../../utils/services/accounts'; import { deliverSelectedUserData, deliverUpdateUserDataName } from './actions'; import { globalError } from './../../hoc/error_handler/actions'; @@ -7,7 +7,10 @@ import { globalError } from './../../hoc/error_handler/actions'; export function* getSelectedUserId(action) { try { - const payload = yield call(accountByAccountIdGrpcRequest, action.userId); + const accountPayload = yield call(accountByAccountIdGrpcRequest, action.userId); + const profilePayload = yield call(profileByProfileIdGrpcRequest, accountPayload.profileid); + const payload = Object.assign({loginoptions: profilePayload.authprovidersList}, accountPayload) + if(payload !== undefined) { yield put(deliverSelectedUserData(payload)); } else { diff --git a/src/components/edit_user/tabs_navigation/login_options/index.js b/src/components/edit_user/tabs_navigation/login_options/index.js index 286b5c8..661668a 100644 --- a/src/components/edit_user/tabs_navigation/login_options/index.js +++ b/src/components/edit_user/tabs_navigation/login_options/index.js @@ -6,50 +6,43 @@ import PhoneControl from './../../generic_data/contact_info/phone_control'; import Grid from '@material-ui/core/Grid'; import Typography from "@material-ui/core/Typography"; -import { accountContactType } from "./../../../../utils/services/accounts.js"; +import { accountContactType, accountLoginType } from "./../../../../utils/services/accounts.js"; const LoginOption = (props) => { const { selectedUser, parentState, handleDeleteContact, handleEditContact } = props; - let accountTypeString = accountContactType.map((item) => { - let accountSplit = item.split(/[_]/); - return accountSplit[0] - }) - - console.log(props) - return ( Login Options - {selectedUser[0].contactsinfoList + {selectedUser[0].loginoptions - ? selectedUser[0].contactsinfoList.map((contactTypeItem, index) => { + ? selectedUser[0].loginoptions.map((contactTypeItem, index) => { - if (accountContactType[1] === accountContactType[contactTypeItem.type]) { + if (accountContactType[1] === accountContactType[contactTypeItem.authenticationtype]) { return } else { return } diff --git a/src/utils/grpc_proto/generated/account_pb_service.js b/src/utils/grpc_proto/generated/account_pb_service.js index 44e5884..c859f2c 100644 --- a/src/utils/grpc_proto/generated/account_pb_service.js +++ b/src/utils/grpc_proto/generated/account_pb_service.js @@ -469,13 +469,15 @@ AccountServiceClient.prototype.getProfileByProfileId = function getProfileByProf debug: this.options.debug, onEnd: function (response) { if (callback) { + + if (response.status !== grpc.Code.OK) { var err = new Error(response.statusMessage); err.code = response.status; err.metadata = response.trailers; callback(err, null); } else { - callback(null, response.message); + callback(null, response.message.toObject()); } } } diff --git a/src/utils/services/accounts.js b/src/utils/services/accounts.js index 76e730d..ea65e86 100644 --- a/src/utils/services/accounts.js +++ b/src/utils/services/accounts.js @@ -1,22 +1,17 @@ import { AccountServiceClient } from './../grpc_proto/generated/account_pb_service'; -import { AccountByAccountIdRequest, Role, AccessStatus, ContactType } from './../grpc_proto/generated/account_pb'; -// import { AuthenticationServiceClient } from './../grpc_proto/generated/auth_pb_service'; -// import { GenerateVerifyTokenRequest } from './../grpc_proto/generated/auth_pb'; - +import { AccountByAccountIdRequest, ProfileByProfileIdRequest, Role, AccessStatus, ContactType, AuthenticationType } from './../grpc_proto/generated/account_pb'; const endpoint = "https://account.dev-eu.nynja.net:443"; -/** - * getting account details - */ -let accountByAccountIdRequest = new AccountByAccountIdRequest(); -// note: keep in mind that getting a value is using "setAccountid" instead of аccountid -// accountByAccountIdRequest.аccountid('fe6be425-ff19-4174-8bf6-d3bf11c17315'); - let accountServiceClient = new AccountServiceClient(endpoint); export let accountRoleVariations = Object.keys(Role); export let accountStatusVariations = Object.keys(AccessStatus); export let accountContactType = Object.keys(ContactType); +export let accountLoginType = Object.keys(AuthenticationType); +/** + * getting account details + */ +let accountByAccountIdRequest = new AccountByAccountIdRequest(); export function accountByAccountIdGrpcRequest(accountId){ @@ -42,7 +37,33 @@ export function accountByAccountIdGrpcRequest(accountId){ }) }) } - + +let profileByProfileIdRequest = new ProfileByProfileIdRequest(); + +export function profileByProfileIdGrpcRequest(profileId){ + + return new Promise((resolve, reject) => { + + profileByProfileIdRequest.setProfileid(profileId); + accountServiceClient.getProfileByProfileId(profileByProfileIdRequest, {'Content-type': 'application/grpc-web+proto'}, (error, response) => { + if(response) { + if(response.profiledetails){ + console.log('response', response.profiledetails.authprovidersList); + resolve(response.profiledetails); + } else { + reject(response.error); + } + + } else { + reject({errorMessage: 'Unknow connection issue'}); + } + if(error){ + console.log('error', error) + reject(error); + } + }) + }) +} // let host = "https://account.dev-eu.nynja.net:443"; // let accountByAuthenticationProviderRequest = new AccountByAuthenticationProviderRequest(); diff --git a/src/utils/services/ag_grid_server_model.js b/src/utils/services/ag_grid_server_model.js index 81970fb..67cb5cc 100644 --- a/src/utils/services/ag_grid_server_model.js +++ b/src/utils/services/ag_grid_server_model.js @@ -46,7 +46,7 @@ ServerSideDatasource.prototype.getRows = function(params) { item.creationdate = [creationDate, creationTime] let timestampUpdatedMock = 1542286425999 + index * 100000000; - let timestampUpdated = moment(1542286425999); // this is the format, which will be taken by from the endpoint + let timestampUpdated = moment(timestampUpdatedMock); // this is the format, which will be taken by from the endpoint let updatedDate = `${timestampUpdated.day() + 1}/${timestampUpdated.month() + 1}/${timestampUpdated.year()}` let updatedTime = `${timestampUpdated.format('hh:mm A')}`; item.updateddate = [updatedDate, updatedTime] -- GitLab From aefec7864be4d5e42b44705a6737bf3754bd9c65 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Fri, 16 Nov 2018 17:06:54 +0200 Subject: [PATCH 195/249] NY-5397 updating avatar hex --- src/components/dashboard_users/css/style.css | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/dashboard_users/css/style.css b/src/components/dashboard_users/css/style.css index 0a72443..505f967 100644 --- a/src/components/dashboard_users/css/style.css +++ b/src/components/dashboard_users/css/style.css @@ -84,6 +84,7 @@ margin-right: 15px; width: 1em; height: 1em; + filter: invert(0.30); } .ag-primary-cols-list-panel .ag-column-tool-panel-column:nth-child(n + 6) { -- GitLab From 8bce2da25a39945d17da2cea241d29f3de053e3d Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Fri, 16 Nov 2018 18:26:55 +0200 Subject: [PATCH 196/249] latest changes before demo sesion --- src/components/dashboard_users/css/style.css | 2 +- src/components/dashboard_users/reducer.js | 2 +- src/utils/services/accounts.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/dashboard_users/css/style.css b/src/components/dashboard_users/css/style.css index 505f967..26899e9 100644 --- a/src/components/dashboard_users/css/style.css +++ b/src/components/dashboard_users/css/style.css @@ -87,7 +87,7 @@ filter: invert(0.30); } -.ag-primary-cols-list-panel .ag-column-tool-panel-column:nth-child(n + 6) { +.ag-primary-cols-list-panel .ag-column-tool-panel-column:nth-child(n + 8) { display: none; } diff --git a/src/components/dashboard_users/reducer.js b/src/components/dashboard_users/reducer.js index 7512e75..a431aa6 100644 --- a/src/components/dashboard_users/reducer.js +++ b/src/components/dashboard_users/reducer.js @@ -13,9 +13,9 @@ const initialState = { {headerName: "Username", hide: false, field: "username", filter: 'agTextColumnFilter' }, {headerName: "Authentication Identifier", hide: false, field: "authenticationidentifier", filter: 'agTextColumnFilter' }, {headerName: "Access Status", hide: false, field: "accessstatus", filter: 'agTextColumnFilter' }, - {headerName: "Contacts Info List", hide: true, field: "contactsinfoList", filter: 'agTextColumnFilter' }, {headerName: "Created", hide: false, field: "creationdate", filter: 'agDateColumnFilter', cellRenderer: "agGroupCellRenderer", cellRendererParams: { innerRenderer: dateTimeStructure } }, {headerName: "Updated", hide: false, field: "updateddate", filter: 'agDateColumnFilter', cellRenderer: "agGroupCellRenderer", cellRendererParams: { innerRenderer: dateTimeStructure } }, + {headerName: "Contacts Info List", hide: true, field: "contactsinfoList", filter: 'agTextColumnFilter' }, {headerName: "Account ID", hide: true, field: "accountid", filter: 'agTextColumnFilter' }, {headerName: "Roles List", hide: true, field: "rolesList", filter: 'agTextColumnFilter' }, {headerName: "Profile ID", hide: true, field: "profileid", filter: 'agTextColumnFilter' }, diff --git a/src/utils/services/accounts.js b/src/utils/services/accounts.js index ea65e86..a3ec195 100644 --- a/src/utils/services/accounts.js +++ b/src/utils/services/accounts.js @@ -48,7 +48,7 @@ export function profileByProfileIdGrpcRequest(profileId){ accountServiceClient.getProfileByProfileId(profileByProfileIdRequest, {'Content-type': 'application/grpc-web+proto'}, (error, response) => { if(response) { if(response.profiledetails){ - console.log('response', response.profiledetails.authprovidersList); + resolve(response.profiledetails); } else { reject(response.error); -- GitLab From 47e1eee341a85fab34811679d43cb0169648b29c Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Mon, 19 Nov 2018 10:21:56 +0200 Subject: [PATCH 197/249] Minor changes --- .../edit_user/generic_data/personal_info/personal_info.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/components/edit_user/generic_data/personal_info/personal_info.js b/src/components/edit_user/generic_data/personal_info/personal_info.js index 3958d87..fe373dc 100644 --- a/src/components/edit_user/generic_data/personal_info/personal_info.js +++ b/src/components/edit_user/generic_data/personal_info/personal_info.js @@ -39,7 +39,7 @@ const PersonalInfo = (props) => {
Edited { - selectedUser[0].firstname && parentState.profileUserModel.firstName + parentState.profileUserModel.firstName || parentState.profileUserModel.firstName >= 0 ? {
Edited { - selectedUser[0].lastname && parentState.profileUserModel.lastName + parentState.profileUserModel.lastName || parentState.profileUserModel.lastName >= 0 ? {
Edited { - selectedUser[0].username && parentState.profileUserModel.userName + parentState.profileUserModel.userName || parentState.profileUserModel.userName >= 0 ? {
Edited { - selectedUser[0].birthday && newBirthday + newBirthday || parentState.profileUserModel.newBirthday >= 0 ? Date: Mon, 19 Nov 2018 10:24:34 +0200 Subject: [PATCH 198/249] Minor chnage --- .../edit_user/generic_data/personal_info/personal_info.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/edit_user/generic_data/personal_info/personal_info.js b/src/components/edit_user/generic_data/personal_info/personal_info.js index fe373dc..bd1cce3 100644 --- a/src/components/edit_user/generic_data/personal_info/personal_info.js +++ b/src/components/edit_user/generic_data/personal_info/personal_info.js @@ -119,7 +119,7 @@ const PersonalInfo = (props) => { className={classes.textField} name="userBirthday" type="date" - value=' ' + value='' onChange={onHandleChange} margin="normal" fullWidth -- GitLab From 8eb8ad30a83afd24278a02a62b56aabbd4898dab Mon Sep 17 00:00:00 2001 From: Vasil Nikolov Date: Mon, 19 Nov 2018 11:32:21 +0200 Subject: [PATCH 199/249] eslint integration --- .eslintrc.json | 40 +++++++++++++++++++++++++++++++++++ package.json | 10 ++++++++- yarn.lock | 57 ++++++++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 104 insertions(+), 3 deletions(-) create mode 100644 .eslintrc.json diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..e63ec92 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,40 @@ +{ + "extends": [ + "standard", + "standard-react", + "react-app" + ], + "parser": "babel-eslint", + "settings": { + "import/resolver": "webpack" + }, + "rules": { + "indent": "off", + "jsx-quotes": "off", + "max-len": "off", + "quotes": [2, "single", "avoid-escape"], + "quote-props": "off", + "react/jsx-indent": "off", + "react/jsx-indent-props": "off", + "prettier/prettier": "error", + "no-debugger" : "off", + "no-alert": "error", + "no-console": "error", + // "linebreak-style": ["error", "unix"], + "lines-between-class-members": ["error", "always"], + "padding-line-between-statements": [ + "error", + { "blankLine": "always", "prev": "*", "next": "return" } + ], + "react/no-unused-prop-types": "error", + "import/no-extraneous-dependencies": "error", + "import/order": ["error", { + "groups": ["builtin", "external", "internal", "parent", "sibling", "index"] + }] + }, + "parserOptions": { + "ecmaFeatures": { + "legacyDecorators": true + } + } +} diff --git a/package.json b/package.json index 73603df..92dbc6d 100644 --- a/package.json +++ b/package.json @@ -45,5 +45,13 @@ "not dead", "not ie <= 11", "not op_mini all" - ] + ], + "devDependencies": { + "eslint-config-react-app": "^3.0.5", + "eslint-config-standard": "^12.0.0", + "eslint-config-standard-react": "^7.0.2", + "eslint-plugin-node": "^8.0.0", + "eslint-plugin-promise": "^4.0.1", + "eslint-plugin-standard": "^4.0.0" + } } diff --git a/yarn.lock b/yarn.lock index 284f981..f59968e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3004,9 +3004,27 @@ escodegen@^1.11.0, escodegen@^1.9.1: eslint-config-react-app@^3.0.5: version "3.0.5" resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-3.0.5.tgz#d199088ab486d7ccc56d40dedcb1482b01934fb2" + integrity sha512-GjPuy0pbaCkl4+9wm8p0xpl/x/AGFy3wKuju3WNVefDNDDu8T6Ap1OFMDDJbYnOAI+4jfyAE3VT06lAYcJVpdw== dependencies: confusing-browser-globals "^1.0.5" +eslint-config-standard-jsx@^6.0.1: + version "6.0.2" + resolved "https://registry.yarnpkg.com/eslint-config-standard-jsx/-/eslint-config-standard-jsx-6.0.2.tgz#90c9aa16ac2c4f8970c13fc7efc608bacd02da70" + integrity sha512-D+YWAoXw+2GIdbMBRAzWwr1ZtvnSf4n4yL0gKGg7ShUOGXkSOLerI17K4F6LdQMJPNMoWYqepzQD/fKY+tXNSg== + +eslint-config-standard-react@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/eslint-config-standard-react/-/eslint-config-standard-react-7.0.2.tgz#80b51a0e0c371ef987679ee134768457a5b6db92" + integrity sha512-Zv/vubIfrwx4IbRXAggRjaswLXKdfFeuGfN365cVTaRmfpAy/7dIxMvJRZkUT99zEx8FOjTXL0KC4psfDjK/+w== + dependencies: + eslint-config-standard-jsx "^6.0.1" + +eslint-config-standard@^12.0.0: + version "12.0.0" + resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-12.0.0.tgz#638b4c65db0bd5a41319f96bba1f15ddad2107d9" + integrity sha512-COUz8FnXhqFitYj4DTqHzidjIL/t4mumGZto5c7DrBpvWoie+Sn3P4sLEzUGeYhRElWuFEf8K1S1EfvD1vixCQ== + eslint-import-resolver-node@^0.3.1: version "0.3.2" resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a" @@ -3031,6 +3049,14 @@ eslint-module-utils@^2.2.0: debug "^2.6.8" pkg-dir "^1.0.0" +eslint-plugin-es@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-1.3.2.tgz#6d2e94ed40db3b3d92a0eb55c7c06e3a7adbb3db" + integrity sha512-xrdbConViY20DhGrt9FwjhDo4fr/9Yus2pYf0xJsdJaCcUzMq7+pAoNH7kSXF6V08bRHMpgDWclYbcr/Sn3hNg== + dependencies: + eslint-utils "^1.3.0" + regexpp "^2.0.1" + eslint-plugin-flowtype@2.50.1: version "2.50.1" resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.50.1.tgz#36d4c961ac8b9e9e1dc091d3fba0537dad34ae8a" @@ -3065,6 +3091,23 @@ eslint-plugin-jsx-a11y@6.1.2: has "^1.0.3" jsx-ast-utils "^2.0.1" +eslint-plugin-node@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-8.0.0.tgz#fb9e8911f4543514f154bb6a5924b599aa645568" + integrity sha512-Y+ln8iQ52scz9+rSPnSWRaAxeWaoJZ4wIveDR0vLHkuSZGe44Vk1J4HX7WvEP5Cm+iXPE8ixo7OM7gAO3/OKpQ== + dependencies: + eslint-plugin-es "^1.3.1" + eslint-utils "^1.3.1" + ignore "^5.0.2" + minimatch "^3.0.4" + resolve "^1.8.1" + semver "^5.5.0" + +eslint-plugin-promise@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.0.1.tgz#2d074b653f35a23d1ba89d8e976a985117d1c6a2" + integrity sha512-Si16O0+Hqz1gDHsys6RtFRrW7cCTB6P7p3OJmKp3Y3dxpQE2qwOA7d3xnV+0mBmrPoi0RBnxlCKvqu70te6wjg== + eslint-plugin-react@7.11.1: version "7.11.1" resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.11.1.tgz#c01a7af6f17519457d6116aa94fc6d2ccad5443c" @@ -3075,6 +3118,11 @@ eslint-plugin-react@7.11.1: jsx-ast-utils "^2.0.1" prop-types "^15.6.2" +eslint-plugin-standard@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.0.0.tgz#f845b45109c99cd90e77796940a344546c8f6b5c" + integrity sha512-OwxJkR6TQiYMmt1EsNRMe5qG3GsbjlcOhbGUBY4LtavF9DsLaTcoR+j2Tdjqi23oUwKNUqX7qcn5fPStafMdlA== + eslint-scope@3.7.1: version "3.7.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" @@ -3089,7 +3137,7 @@ eslint-scope@^4.0.0: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-utils@^1.3.1: +eslint-utils@^1.3.0, eslint-utils@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.3.1.tgz#9a851ba89ee7c460346f97cf8939c7298827e512" @@ -4224,6 +4272,11 @@ ignore@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" +ignore@^5.0.2: + version "5.0.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.0.4.tgz#33168af4a21e99b00c5d41cbadb6a6cb49903a45" + integrity sha512-WLsTMEhsQuXpCiG173+f3aymI43SXa+fB1rSfbzyP4GkPP+ZFVuO0/3sFUGNBtifisPeDcl/uD/Y2NxZ7xFq4g== + immer@1.7.2: version "1.7.2" resolved "https://registry.yarnpkg.com/immer/-/immer-1.7.2.tgz#a51e9723c50b27e132f6566facbec1c85fc69547" @@ -7558,7 +7611,7 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexpp@^2.0.0: +regexpp@^2.0.0, regexpp@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" -- GitLab From 064dd321a6b10deca6cec8ff7f4beb97f5894502 Mon Sep 17 00:00:00 2001 From: Vasil Nikolov Date: Mon, 19 Nov 2018 14:38:44 +0200 Subject: [PATCH 200/249] refactoring --- .eslintrc.json | 8 +- .../contact_info_control_options.js | 105 +++--- .../contact_info/phone_control.js | 55 --- .../contact_info/static_control.js | 109 ++++++ .../generic_data/contact_info/text_control.js | 78 ---- .../edit_user_avatar/edit_user_avatar.js | 77 ++-- .../edit_user/generic_data/index.js | 159 ++++---- src/components/edit_user/index.js | 343 ++++++++---------- src/components/edit_user/middleware.js | 102 ++++-- src/components/edit_user/reducer.js | 63 ++-- .../tabs_navigation/login_options/index.js | 87 ++--- src/constants/contactInfoTypes.js | 5 + 12 files changed, 567 insertions(+), 624 deletions(-) delete mode 100644 src/components/edit_user/generic_data/contact_info/phone_control.js create mode 100644 src/components/edit_user/generic_data/contact_info/static_control.js delete mode 100644 src/components/edit_user/generic_data/contact_info/text_control.js create mode 100644 src/constants/contactInfoTypes.js diff --git a/.eslintrc.json b/.eslintrc.json index e63ec92..426a734 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -9,7 +9,11 @@ "import/resolver": "webpack" }, "rules": { - "indent": "off", + "indent": ["error", "tab"], + "no-mixed-spaces-and-tabs": "off", + "no-tabs": 0, + "one-var": "off", + "one-var-declaration-per-line": ["error", "always"], "jsx-quotes": "off", "max-len": "off", "quotes": [2, "single", "avoid-escape"], @@ -20,7 +24,7 @@ "no-debugger" : "off", "no-alert": "error", "no-console": "error", - // "linebreak-style": ["error", "unix"], +// "linebreak-style": ["error", "unix"], "lines-between-class-members": ["error", "always"], "padding-line-between-statements": [ "error", diff --git a/src/components/edit_user/generic_data/contact_info/contact_info_control_options.js b/src/components/edit_user/generic_data/contact_info/contact_info_control_options.js index b1603e3..8f75efa 100644 --- a/src/components/edit_user/generic_data/contact_info/contact_info_control_options.js +++ b/src/components/edit_user/generic_data/contact_info/contact_info_control_options.js @@ -1,76 +1,73 @@ -import React, { Component } from "react"; -import { withStyles } from "@material-ui/core/styles"; +import React, { Component } from 'react' +import { withStyles } from '@material-ui/core/styles' -import IconButton from "@material-ui/core/IconButton"; -import Menu from "@material-ui/core/Menu"; -import MoreVertIcon from "@material-ui/icons/MoreVert"; -import MenuItem from "@material-ui/core/MenuItem"; +import IconButton from '@material-ui/core/IconButton' +import Menu from '@material-ui/core/Menu' +import MoreVertIcon from '@material-ui/icons/MoreVert' +import MenuItem from '@material-ui/core/MenuItem' -const ITEM_HEIGHT = 48; -const styles = theme => ({}); +const ITEM_HEIGHT = 48 +const styles = theme => ({}) class ContactInfoControlOptions extends Component { - state = { - anchorEl: null + anchorEl: null }; handleMenu = event => { - this.setState({ anchorEl: event.currentTarget }); + this.setState({ anchorEl: event.currentTarget }) }; handleClose = () => { - this.setState({ anchorEl: null }); + this.setState({ anchorEl: null }) }; onHandleDeleteContact = () => { - this.handleClose(); - this.props.handleDeleteContact(this.props.accountType); + this.handleClose() + this.props.handleDeleteContact(this.props.inputType) } onHandleEditContact = () => { - this.handleClose(); - this.props.handleEditContact(this.props.accountType, this.props.controlValue); + this.handleClose() + this.props.handleEditContact(this.props.inputType, this.props.controlValue) } - render(){ - - const { anchorEl } = this.state; - const open = Boolean(anchorEl); - - return ( - -
- - - - - - Edit - Delete - - -
- - ); + render () { + const { anchorEl } = this.state + const open = Boolean(anchorEl) + + return ( + +
+ + + + + + Edit + Delete + + +
+ + ) } - } -export default withStyles(styles)(ContactInfoControlOptions); \ No newline at end of file +export default withStyles(styles)(ContactInfoControlOptions) diff --git a/src/components/edit_user/generic_data/contact_info/phone_control.js b/src/components/edit_user/generic_data/contact_info/phone_control.js deleted file mode 100644 index cbf85a6..0000000 --- a/src/components/edit_user/generic_data/contact_info/phone_control.js +++ /dev/null @@ -1,55 +0,0 @@ -import React from "react"; - -import { withStyles } from "@material-ui/core/styles"; -// import classNames from "classnames"; - -import FormControl from "@material-ui/core/FormControl"; -import InputAdornment from "@material-ui/core/InputAdornment"; -import Phone from "@material-ui/icons/Phone"; -import Input from "@material-ui/core/Input"; -import InputLabel from "@material-ui/core/InputLabel"; - -import ContactInfoControlOptions from './contact_info_control_options'; - -const styles = theme => ({}); - -const PhoneControl = (props) => { - - const { classes, phoneLabel, id, parentState, handleDeleteContact, handleEditContact, controlValue, accountType } = props; - - return ( -
- { - controlValue && controlValue !== '' - - ? - {phoneLabel} - - - - } - endAdornment={ - - } - - /> - - : null - } - -
- ); -}; - -export default withStyles(styles)(PhoneControl); \ No newline at end of file diff --git a/src/components/edit_user/generic_data/contact_info/static_control.js b/src/components/edit_user/generic_data/contact_info/static_control.js new file mode 100644 index 0000000..044741e --- /dev/null +++ b/src/components/edit_user/generic_data/contact_info/static_control.js @@ -0,0 +1,109 @@ +import React from 'react' +import PropTypes from 'prop-types' + +import { withStyles } from '@material-ui/core/styles' + +import InputAdornment from '@material-ui/core/InputAdornment' +import Mail from '@material-ui/icons/Mail' +import People from '@material-ui/icons/People' +import TextField from '@material-ui/core/TextField' +import InputLabel from '@material-ui/core/InputLabel/InputLabel' +import Input from '@material-ui/core/Input/Input' +import Phone from '@material-ui/icons/Phone' +import FormControl from '@material-ui/core/FormControl/FormControl' +import ContactInfoControlOptions from './contact_info_control_options' + +const styles = theme => ({}) + +const StaticControl = (props) => { + const { classes, id, handleDeleteContact, handleEditContact, info, inputType } = props + + return ( + +
+ { + inputType === 'EMAIL' + ? + + + ), + endAdornment: ( + + ) + }} + margin="normal" + fullWidth + /> + : inputType === 'PHONE' + ? + {info.label} + + + + } + endAdornment={ + + } + + /> + + : + + + ), + endAdornment: ( + + ) + }} + margin="normal" + fullWidth + /> + } +
+ ) +} + +StaticControl.propTypes = { + info: PropTypes.object.isRequired, + inputType: PropTypes.string.isRequired, + handleEditContact: PropTypes.func.isRequired, + handleDeleteContact: PropTypes.func.isRequired, + classes: PropTypes.object.isRequired, + id: PropTypes.string.isRequired +} + +export default withStyles(styles)(StaticControl) diff --git a/src/components/edit_user/generic_data/contact_info/text_control.js b/src/components/edit_user/generic_data/contact_info/text_control.js deleted file mode 100644 index c5f27db..0000000 --- a/src/components/edit_user/generic_data/contact_info/text_control.js +++ /dev/null @@ -1,78 +0,0 @@ -import React from "react"; - -import { withStyles } from "@material-ui/core/styles"; -// import classNames from "classnames"; - -import InputAdornment from "@material-ui/core/InputAdornment"; -import Mail from "@material-ui/icons/Mail"; -import People from "@material-ui/icons/People"; -import TextField from "@material-ui/core/TextField"; -import ContactInfoControlOptions from './contact_info_control_options'; - -const styles = theme => ({}); - -const TextControl = (props) => { - - const { classes, id, handleDeleteContact, handleEditContact, parentState, controlValue, accountType } = props; - - return ( - -
- { - controlValue && controlValue !== '' && accountType === 'EMAIL' - ? - - - ), - endAdornment:( - - ) - }} - margin="normal" - fullWidth - /> - : controlValue && controlValue !== '' && accountType !== 'EMAIL' - ? - - - ), - endAdornment:( - - ) - }} - margin="normal" - fullWidth - /> - : null - } -
- ); -}; - -export default withStyles(styles)(TextControl); \ No newline at end of file diff --git a/src/components/edit_user/generic_data/edit_user_avatar/edit_user_avatar.js b/src/components/edit_user/generic_data/edit_user_avatar/edit_user_avatar.js index 52dedca..141d2f0 100644 --- a/src/components/edit_user/generic_data/edit_user_avatar/edit_user_avatar.js +++ b/src/components/edit_user/generic_data/edit_user_avatar/edit_user_avatar.js @@ -1,48 +1,47 @@ -import React from "react"; -import { withStyles } from "@material-ui/core/styles"; -import classNames from "classnames"; +import React from 'react' +import { withStyles } from '@material-ui/core/styles' +import classNames from 'classnames' -import Avatar from "@material-ui/core/Avatar"; -import AccountCircle from "@material-ui/icons/AccountCircle"; -import Button from "@material-ui/core/Button"; +import Avatar from '@material-ui/core/Avatar' +import AccountCircle from '@material-ui/icons/AccountCircle' +import Button from '@material-ui/core/Button' const styles = { - bigAvatar: { - width: 130, - height: 130, - backgroundColor: "#dadada" - }, - avatarDelete: { - textTransform: "none", - width: 130 - } -}; + bigAvatar: { + width: 130, + height: 130, + backgroundColor: '#dadada' + }, + avatarDelete: { + textTransform: 'none', + width: 130 + } +} const UserAvatar = (props) => { -const { classes, selectedUser, modalAlertDeleteAvatar } = props; - - return ( -
- - {!selectedUser[0].avatar - - ?
- - -
- : + +
+ : - } -
- ); + } +
+ ) } -export default withStyles(styles)(UserAvatar); \ No newline at end of file +export default withStyles(styles)(UserAvatar) diff --git a/src/components/edit_user/generic_data/index.js b/src/components/edit_user/generic_data/index.js index 30fd186..0cef1e0 100644 --- a/src/components/edit_user/generic_data/index.js +++ b/src/components/edit_user/generic_data/index.js @@ -1,119 +1,104 @@ -import React, { Fragment } from 'react'; -import './generic_data.css'; +import React, { Fragment } from 'react' +import './generic_data.css' -import { withStyles } from "@material-ui/core/styles"; -import Card from "@material-ui/core/Card"; -import CardContent from "@material-ui/core/CardContent"; -import Typography from "@material-ui/core/Typography"; +import { withStyles } from '@material-ui/core/styles' +import Card from '@material-ui/core/Card' +import CardContent from '@material-ui/core/CardContent' +import Typography from '@material-ui/core/Typography' -import PhoneControl from './contact_info/phone_control'; -import TextControl from "./contact_info/text_control"; -import PersonalInfo from './personal_info/personal_info'; -import AccessStatus from './access_status/access_status'; -import UserAvatar from './edit_user_avatar/edit_user_avatar'; -import DeleteProfile from "./delete_profile/delete_profile"; +import StaticControl from './contact_info/static_control' +import PersonalInfo from './personal_info/personal_info' +import AccessStatus from './access_status/access_status' +import UserAvatar from './edit_user_avatar/edit_user_avatar' +import DeleteProfile from './delete_profile/delete_profile' -import { accountContactType } from "./../../../utils/services/accounts.js"; +import { accountContactType } from './../../../utils/services/accounts.js' -const styles = theme => ({}); +const styles = theme => ({}) -const genericUserData = (props) => { - - /** +const genericUserData = (props) => { + /** * @const {array} selectedUser * @const {Object} classes */ - const { selectedUser, classes, onHandleChange, parentState, modalAlertDeleteAvatar, handleDeleteContact, handleEditContact, handleDeleteProfile } = props; + const { user, classes, onHandleChange, parentState, modalAlertDeleteAvatar, handleDeleteContact, handleEditContact, handleDeleteProfile } = props - let accountTypeString = accountContactType.map((item) => { - let accountSplit = item.split(/[_]/); - return accountSplit[0] - }) + let contactInfo = user.contactsinfoList - return ( + let controls = [] - + for (let key in contactInfo) { + let arr = contactInfo[key].map((el, index) => { + return ( + + ) + }) - {selectedUser.length > 0 && ( + controls = [ ...controls, ...arr ] + } -
+ return ( - + - + {user ? ( - +
- - + - - - + - Personal Information + - + + - - + {/* */} + + - Contact Information - {parentState.profileUserModel.contactsinfoList && parentState.profileUserModel.contactsinfoList.length !== 0 + Personal Information - ? parentState.profileUserModel.contactsinfoList.map((contactTypeItem, index) => { + {/* */} - if (accountContactType[1] === accountContactType[contactTypeItem.type]) { + + - return - } else { + Contact Information - return - } - }) - : null - } + {controls} - - - - + + + + - -
+
+
- )} -
- ) + ) : ''} + + ) } -export default withStyles(styles)(genericUserData); \ No newline at end of file +export default withStyles(styles)(genericUserData) diff --git a/src/components/edit_user/index.js b/src/components/edit_user/index.js index a88ec5f..72bf0e2 100644 --- a/src/components/edit_user/index.js +++ b/src/components/edit_user/index.js @@ -1,206 +1,167 @@ -import React, { Component } from 'react'; -import { connect } from 'react-redux'; -import { bindActionCreators } from 'redux'; -import PropTypes from 'prop-types'; +import React, { Component } from 'react' +import { connect } from 'react-redux' +import { bindActionCreators } from 'redux' +import PropTypes from 'prop-types' // import { Route, withRouter } from 'react-router-dom'; -import * as actions from './actions'; +import { withStyles } from '@material-ui/core/styles' +import Grid from '@material-ui/core/Grid' +import Modal from '../shared/ui/modal/modal' +import * as actions from './actions' -import GenericData from './generic_data'; -import ProfileTools from './profile_tools/index'; -import TabsNavigation from './tabs_navigation/index'; +import GenericData from './generic_data' +import ProfileTools from './profile_tools/index' +import TabsNavigation from './tabs_navigation/index' -import AvatarContentModal from './generic_data/edit_user_avatar/delete_avatar_modal/avatar_modal'; -import ContactInfoDeleteModal from './generic_data/contact_info/modal_content/delete_modal'; -import ContactInfoEditModal from "./generic_data/contact_info/modal_content/edit_modal"; -import DeleteProfileModal from "./generic_data/delete_profile/delete_profile_modal"; -import UserProfileModel from './generic_data/user_profile_model'; +import AvatarContentModal from './generic_data/edit_user_avatar/delete_avatar_modal/avatar_modal' +import ContactInfoDeleteModal from './generic_data/contact_info/modal_content/delete_modal' +import ContactInfoEditModal from './generic_data/contact_info/modal_content/edit_modal' +import DeleteProfileModal from './generic_data/delete_profile/delete_profile_modal' +import UserProfileModel from './generic_data/user_profile_model' // import Categories from './categories'; // import AvailableData from './available_data'; // import UpdateData from './update_data'; -import { withStyles } from "@material-ui/core/styles"; -import Modal from "../shared/ui/modal/modal"; -import Grid from '@material-ui/core/Grid'; -import './edit_user.css'; - -const styles = theme => ({}); -class EditUser extends Component{ - constructor(props) { - super(props); - - this.state = { - profileUserModel: new UserProfileModel(''), - controlsType: '', - controlTypeEdit: '', - controlValueEdit: '', - valuesStates: true, - openModalDeleteContact: false, - openModalDeleteProfile: false, - openModalDeleteAvatar: false, - openModalEditContact: false - } - - }; - - componentDidMount(){ - this.props.getSelectedUserId(this.props.match.params.id); - }; - - componentWillUnmount() { - this.props.clearSelectedUserData(); - }; - - componentDidUpdate() { - - if (this.state.valuesStates && this.props.selectedUser[0].firstname !== undefined) { - - let userProfileModel = new UserProfileModel( - this.props.selectedUser[0].firstname, - this.props.selectedUser[0].lastname, - this.props.selectedUser[0].username, - this.props.selectedUser[0].accessstatus, - {...this.props.selectedUser[0].birthday}, - this.props.selectedUser[0].rolesList, - [...this.props.selectedUser[0].contactsinfoList] - - ); - - this.setState({ - profileUserModel: userProfileModel, - valuesStates: false - }); - - } - }; - - // updateUserDataCategoryX = (dataCategoryEdit) => { - // const userId = this.props.selectedUser[0].accountId; - - // const updateDetails = { - // id: userId, - // ...dataCategoryEdit - // } - - // this.props.updateUserDataName(updateDetails); - - // }; +import './edit_user.css' + +const styles = theme => ({}) +class EditUser extends Component { + constructor (props) { + super(props) + + this.state = { + profileUserModel: new UserProfileModel(''), + controlsType: '', + controlTypeEdit: '', + controlValueEdit: '', + valuesStates: true, + openModalDeleteContact: false, + openModalDeleteProfile: false, + openModalDeleteAvatar: false, + openModalEditContact: false + } + }; + + static propTypes = { + match: PropTypes.object.isRequired, + selectedUser: PropTypes.object, + getSelectedUserId: PropTypes.func, + clearSelectedUserData: PropTypes.func + } + + componentDidMount () { + this.props.getSelectedUserId(this.props.match.params.id) + }; + + componentWillUnmount () { + this.props.clearSelectedUserData() + }; handleChange = (e) => { + let newProfileUserModel = Object.assign(Object.create(Object.getPrototypeOf(this.state.profileUserModel)), this.state.profileUserModel) - let newProfileUserModel = Object.assign(Object.create(Object.getPrototypeOf(this.state.profileUserModel)), this.state.profileUserModel); - - newProfileUserModel[e.target.name] = e.target.value; - - this.setState({ - [e.target.name]: e.target.value, - profileUserModel: newProfileUserModel - }); + newProfileUserModel[e.target.name] = e.target.value + this.setState({ + [e.target.name]: e.target.value, + profileUserModel: newProfileUserModel + }) }; handleAvatarAlertDelete = () => this.setState({ openModalDeleteAvatar: true }); + handleContactInfoDelete = () => this.setState({ openModalDeleteContact: true }); + handleContactInfoEdit = () => this.setState({ openModalEditContact: true }); + handleDeleteProfilConfirmed = () => this.setState({ openModalDeleteProfile: true }); handleModalAvatarCancel = () => this.setState({ openModalDeleteAvatar: false }); + handleModalConfirmedCancel = () => this.setState({ openModalDeleteContact: false }); + handleModalDeleteProfileCancel = () => this.setState({ openModalDeleteProfile: false }); + handleModalEditProfileCancel = () => this.setState({ openModalEditContact: false }); handleDeleteContact = (contactInfoType) => { - - if (contactInfoType !== this.state.controlsType) { - this.setState({ controlsType: contactInfoType }); - } - this.handleContactInfoDelete(); + if (contactInfoType !== this.state.controlsType) { + this.setState({ controlsType: contactInfoType }) + } + this.handleContactInfoDelete() }; handleEditContact = (contactInfoType, contactInfoValue) => { - - if (contactInfoType !== this.state.controlTypeEdit) { - this.setState({ controlTypeEdit: contactInfoType }); - } - - if (contactInfoValue !== this.state.controlValueEdit) { - this.setState({ controlValueEdit: contactInfoValue }); - } - this.handleContactInfoEdit(); + if (contactInfoType !== this.state.controlTypeEdit) { + this.setState({ controlTypeEdit: contactInfoType }) + } + + if (contactInfoValue !== this.state.controlValueEdit) { + this.setState({ controlValueEdit: contactInfoValue }) + } + this.handleContactInfoEdit() }; - render() { - - /** - * @const {array} coldef - * @const {array} selectedUser - * @const {string} url - * @const {string} path - */ - - console.log('===================================='); - console.log(this.state); - console.log('===================================='); - - const { selectedUser } = this.props; - const { openModalDeleteContact, openModalDeleteProfile, openModalEditContact, openModalDeleteAvatar, - controlsType, controlValueEdit, controlTypeEdit, profileUserModel} = this.state; - // const { classes, coldef, selectedUser } = this.props; - // const { url, path } = this.props.match; - - return( - - - - - - - - - - - - - - - - - - - - - - - - { - profileUserModel - ? - : null - } - - - {/* + render () { + const { selectedUser } = this.props + + const { openModalDeleteContact, openModalDeleteProfile, openModalEditContact, openModalDeleteAvatar, + controlsType, controlValueEdit, controlTypeEdit, profileUserModel } = this.state + + return ( + + + + + + + + {selectedUser.contactsinfoList + ? : '' + } + + + + + + + + + + + + + + + {/* */} + {/* { */} + {/* profileUserModel */} + {/* ? */} + {/*: null */} + {/* } */} + {/* */} + + {/* @@ -209,30 +170,24 @@ class EditUser extends Component{ this.updateUserDataCategoryX(data)} />} /> */} - + - ) - } -}; - -EditUser.propTypes = { - selectedUser: PropTypes.array.isRequired, - coldef: PropTypes.array.isRequired -}; - -function mapStateToProps({ users, editUser, error }, { match }){ - return { - selectedUser: [editUser], - coldef: users.coldef, - error + ) } +} + +function mapStateToProps ({ users, editUser, error }, { match }) { + return { + selectedUser: editUser, + coldef: users.coldef, + error + } }; const mapDispatchToProps = (dispatch) => { + return bindActionCreators({ + ...actions + }, dispatch) +} - return bindActionCreators({ - ...actions - }, dispatch) -}; - -export default withStyles(styles)(connect(mapStateToProps, mapDispatchToProps)(EditUser)); \ No newline at end of file +export default withStyles(styles)(connect(mapStateToProps, mapDispatchToProps)(EditUser)) diff --git a/src/components/edit_user/middleware.js b/src/components/edit_user/middleware.js index 47fdd9c..3db38f2 100644 --- a/src/components/edit_user/middleware.js +++ b/src/components/edit_user/middleware.js @@ -1,36 +1,78 @@ -import { call, put } from 'redux-saga/effects'; -import { accountByAccountIdGrpcRequest, profileByProfileIdGrpcRequest } from './../../utils/services/accounts'; -import { deliverSelectedUserData, deliverUpdateUserDataName } from './actions'; - -import { globalError } from './../../hoc/error_handler/actions'; - -export function* getSelectedUserId(action) { - - try { - const accountPayload = yield call(accountByAccountIdGrpcRequest, action.userId); - const profilePayload = yield call(profileByProfileIdGrpcRequest, accountPayload.profileid); - const payload = Object.assign({loginoptions: profilePayload.authprovidersList}, accountPayload) - - if(payload !== undefined) { - yield put(deliverSelectedUserData(payload)); - } else { - yield put(globalError({errorMessage: 'Unknown error'})) - } - } - catch(error){ - console.log(error); - } +import { call, put } from 'redux-saga/effects' +import { accountByAccountIdGrpcRequest, profileByProfileIdGrpcRequest, accountContactType } from './../../utils/services/accounts' +import { deliverSelectedUserData, deliverUpdateUserDataName } from './actions' -} +import { globalError } from './../../hoc/error_handler/actions' + +export function * getSelectedUserId (action) { + try { + let accountPayload = yield call(accountByAccountIdGrpcRequest, action.userId), + profilePayload = yield call(profileByProfileIdGrpcRequest, accountPayload.profileid) + + let accountTypeString = accountContactType.map((item) => { + let accountSplit = item.split(/[_]/) + + return accountSplit[0] + }) -export function* updateUserDataName(action) { + let EMAIL = [], + PHONE = [], + FACEBOOK = [], + GOOGLEPLUS = [], + TWITTER = [] - const newData = { - id: action.id, - category: action.category, - newValue: action.newValue - } + accountPayload.contactsinfoList.forEach((el, index) => { + switch (accountTypeString[el.type]) { + case 'EMAIL': + EMAIL.push({ value: el.value, type: el.type, key: index }) + break + case 'PHONE': + PHONE.push({ value: el.value, type: el.type, label: el.label, key: index }) + break + case 'FACEBOOK': + FACEBOOK.push({ value: el.value, type: el.type, key: index }) + break + case 'GOOGLEPLUS': + GOOGLEPLUS.push({ value: el.value, type: el.type, key: index }) + break + case 'TWITTER': + TWITTER.push({ value: el.value, type: el.type, key: index }) + break + default: + break + } + }) + + let contactsinfoList = { + EMAIL, + PHONE, + FACEBOOK, + GOOGLEPLUS, + TWITTER + } + + let payload = { + ...accountPayload, + loginoptions: profilePayload.authprovidersList, + contactsinfoList + } + + if (payload !== undefined) { + yield put(deliverSelectedUserData(payload)) + } else { + yield put(globalError({ errorMessage: 'Unknown error' })) + } + } catch (error) { + console.log(error) + } +} - yield put(deliverUpdateUserDataName(newData)) +export function * updateUserDataName (action) { + const newData = { + id: action.id, + category: action.category, + newValue: action.newValue + } + yield put(deliverUpdateUserDataName(newData)) } diff --git a/src/components/edit_user/reducer.js b/src/components/edit_user/reducer.js index ac525cf..2f5a21d 100644 --- a/src/components/edit_user/reducer.js +++ b/src/components/edit_user/reducer.js @@ -1,45 +1,44 @@ -import { DELIVER_UPDATE_USER_DATA_CATEGORY_X, DELIVER_SELECTED_USER_DATA, CLEAR_SELECTED_USER_DATA } from './actions'; -import { updateObject } from '../../hoc/update-object/update-object'; +import { updateObject } from '../../hoc/update-object/update-object' +import { DELIVER_UPDATE_USER_DATA_CATEGORY_X, DELIVER_SELECTED_USER_DATA, CLEAR_SELECTED_USER_DATA } from './actions' -const initialState = {}; +const initialState = { + selectedUser: {} +} const deliverSelectedUserData = (state, action) => { - const { selectedUser } = action; + const { selectedUser } = action - return updateObject(state, { - ...selectedUser - }) + return updateObject(state, { + ...selectedUser + }) } const updateUserCategoryX = (state, action) => { - - const { newValue, category, id } = action; - const userIndex = state.usersData.findIndex(item => item.accountId === id); - - state.usersData[userIndex] = Object.defineProperties(state.usersData[userIndex], { - [category]: { - value: newValue, - writable: true - } - }) - - return { - ...state - } + const { newValue, category, id } = action + const userIndex = state.usersData.findIndex(item => item.accountId === id) + + state.usersData[userIndex] = Object.defineProperties(state.usersData[userIndex], { + [category]: { + value: newValue, + writable: true + } + }) + + return { + ...state + } } const clearSelectedUserData = (state, action) => { - return initialState + return initialState } -export default function editUser(state = initialState, action) { - - switch(action.type) { - - case DELIVER_SELECTED_USER_DATA: return deliverSelectedUserData(state, action); - case DELIVER_UPDATE_USER_DATA_CATEGORY_X: return updateUserCategoryX(state, action); - case CLEAR_SELECTED_USER_DATA: return clearSelectedUserData(state, action); +export default function editUser (state = initialState, action) { + switch (action.type) { + case DELIVER_SELECTED_USER_DATA: return deliverSelectedUserData(state, action) + case DELIVER_UPDATE_USER_DATA_CATEGORY_X: return updateUserCategoryX(state, action) + case CLEAR_SELECTED_USER_DATA: return clearSelectedUserData(state, action) - default: return state; - } -}; \ No newline at end of file + default: return state + } +}; diff --git a/src/components/edit_user/tabs_navigation/login_options/index.js b/src/components/edit_user/tabs_navigation/login_options/index.js index 661668a..7108957 100644 --- a/src/components/edit_user/tabs_navigation/login_options/index.js +++ b/src/components/edit_user/tabs_navigation/login_options/index.js @@ -1,57 +1,38 @@ -import React from 'react'; +import React from 'react' -import TextControl from "./../../generic_data/contact_info/text_control"; -import PhoneControl from './../../generic_data/contact_info/phone_control'; +import Grid from '@material-ui/core/Grid' +import Typography from '@material-ui/core/Typography' +import StaticControl from './../../generic_data/contact_info/static_control' -import Grid from '@material-ui/core/Grid'; -import Typography from "@material-ui/core/Typography"; - -import { accountContactType, accountLoginType } from "./../../../../utils/services/accounts.js"; +import { accountContactType, accountLoginType } from './../../../../utils/services/accounts.js' const LoginOption = (props) => { - - const { selectedUser, parentState, handleDeleteContact, handleEditContact } = props; - - return ( - - - Login Options - - {selectedUser[0].loginoptions - - ? selectedUser[0].loginoptions.map((contactTypeItem, index) => { - - if (accountContactType[1] === accountContactType[contactTypeItem.authenticationtype]) { - - return - } else { - - return - } - }) - : null - } - - - ) -} - -export default LoginOption; \ No newline at end of file + const { selectedUser, parentState, handleDeleteContact, handleEditContact } = props + + return ( + + + Login Options + + {selectedUser[0].loginoptions + + ? selectedUser[0].loginoptions.map((contactTypeItem, index) => { + return + }) + : null + } + + + ) +} + +export default LoginOption diff --git a/src/constants/contactInfoTypes.js b/src/constants/contactInfoTypes.js new file mode 100644 index 0000000..1ae60e3 --- /dev/null +++ b/src/constants/contactInfoTypes.js @@ -0,0 +1,5 @@ +export const phone = 1 +export const email = 2 +export const facebook = 3 +export const googlePlus = 4 +export const twitter = 5 \ No newline at end of file -- GitLab From 9b55db59274abfe4785fe0c6a705ca5cfb1c380c Mon Sep 17 00:00:00 2001 From: Vasil Nikolov Date: Mon, 19 Nov 2018 15:38:52 +0200 Subject: [PATCH 201/249] access and generic data --- .../access_status/access_status.js | 113 ++++---- .../edit_user_avatar/edit_user_avatar.js | 6 +- .../edit_user/generic_data/index.js | 172 +++++++----- .../personal_info/personal_info.js | 251 +++++++++--------- src/components/edit_user/index.js | 2 +- 5 files changed, 288 insertions(+), 256 deletions(-) diff --git a/src/components/edit_user/generic_data/access_status/access_status.js b/src/components/edit_user/generic_data/access_status/access_status.js index ab98bbc..47f04f1 100644 --- a/src/components/edit_user/generic_data/access_status/access_status.js +++ b/src/components/edit_user/generic_data/access_status/access_status.js @@ -1,65 +1,62 @@ -import React from "react"; -import { withStyles } from "@material-ui/core/styles"; -import classNames from "classnames"; -import TextField from "@material-ui/core/TextField"; -import MenuItem from "@material-ui/core/MenuItem"; +import React from 'react' +import { withStyles } from '@material-ui/core/styles' +import classNames from 'classnames' +import TextField from '@material-ui/core/TextField' +import MenuItem from '@material-ui/core/MenuItem' -import { accountStatusVariations } from "../../../../utils/services/accounts"; +import { accountStatusVariations } from '../../../../utils/services/accounts' const styles = theme => ({ - rowControlWrapper: { - position: 'relative' - } -}); + rowControlWrapper: { + position: 'relative' + } +}) const AccessStatus = (props) => { - - const { classes, parentState, selectedUser, onHandleChange } = props; -; - return ( - -
- Edited - {selectedUser[0].accessstatus && parentState.profileUserModel.accountStatus - - ? - { - accountStatusVariations.length !== 0 - - ? accountStatusVariations.map((option, index) => { - - if (index !== 0) { - return ( - - {option} - - ); - } else { - return null; - } - }) - : null - } - - : null - } -
- ) + const { classes, accessStatus, oldAccessStatus, onChangeInfo } = props + + return ( + +
+ Edited + {accessStatus + ? + { + accountStatusVariations.length !== 0 + + ? accountStatusVariations.map((option, index) => { + if (index !== 0) { + return ( + + {option} + + ) + } else { + return null + } + }) + : null + } + + : null + } +
+ ) } -export default withStyles(styles)(AccessStatus); \ No newline at end of file +export default withStyles(styles)(AccessStatus) diff --git a/src/components/edit_user/generic_data/edit_user_avatar/edit_user_avatar.js b/src/components/edit_user/generic_data/edit_user_avatar/edit_user_avatar.js index 141d2f0..6be7c4d 100644 --- a/src/components/edit_user/generic_data/edit_user_avatar/edit_user_avatar.js +++ b/src/components/edit_user/generic_data/edit_user_avatar/edit_user_avatar.js @@ -19,16 +19,16 @@ const styles = { } const UserAvatar = (props) => { - const { classes, selectedUser, modalAlertDeleteAvatar } = props + const { classes, avatar, modalAlertDeleteAvatar } = props return (
- {!selectedUser.avatar + {!avatar ?
- -
+
+ + +
-
-
- ); +
+
+ ) } -export default withStyles(styles)(ContactInfoDeleteModal); \ No newline at end of file +export default withStyles(styles)(ContactInfoDeleteModal) diff --git a/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js b/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js index 9395fd6..6a280e5 100644 --- a/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js +++ b/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js @@ -1,61 +1,61 @@ -import React from "react"; -import { withStyles } from "@material-ui/core/styles"; -import Button from "@material-ui/core/Button"; +import React from 'react'; +import { withStyles } from '@material-ui/core/styles'; +import Button from '@material-ui/core/Button'; -import Grid from "@material-ui/core/Grid"; -import Email from "@material-ui/icons/Email"; -import People from "@material-ui/icons/People"; -import TextField from "@material-ui/core/TextField"; +import Grid from '@material-ui/core/Grid'; +import Email from '@material-ui/icons/Email'; +import People from '@material-ui/icons/People'; +import TextField from '@material-ui/core/TextField'; -const styles = {}; +const styles = {} const ContactInfoEditModal = (props) => { - const { handleModalEditProfileCancel, controlLabel, classes, controlValueEdit, onHandleChange } = props; + const { handleModalEditProfileCancel, controlLabel, classes, controlValueEdit, onHandleChange } = props return ( -
-

Edit {controlLabel}

- { - controlLabel !== 'PHONE' && controlLabel && controlLabel !== '' - ?
- -
- - - {controlLabel !== 'EMAIL' && controlLabel !== 'PHONE' - ? - : - } - - - - - -
- -
- - -
- -
- : controlLabel && controlLabel !== '' - ?
-
- - -
-
- : null - } -
- ); +
+

Edit {controlLabel}

+ { + controlLabel !== 'PHONE' && controlLabel && controlLabel !== '' + ?
+ +
+ + + {controlLabel !== 'EMAIL' && controlLabel !== 'PHONE' + ? + : + } + + + + + +
+ +
+ + +
+ +
+ : controlLabel && controlLabel !== '' + ?
+
+ + +
+
+ : null + } +
+ ) } -export default withStyles(styles)(ContactInfoEditModal); \ No newline at end of file +export default withStyles(styles)(ContactInfoEditModal) diff --git a/src/components/edit_user/generic_data/edit_user_avatar/edit_user_avatar.js b/src/components/edit_user/generic_data/edit_user_avatar/edit_user_avatar.js index 6be7c4d..0d873e0 100644 --- a/src/components/edit_user/generic_data/edit_user_avatar/edit_user_avatar.js +++ b/src/components/edit_user/generic_data/edit_user_avatar/edit_user_avatar.js @@ -5,6 +5,7 @@ import classNames from 'classnames' import Avatar from '@material-ui/core/Avatar' import AccountCircle from '@material-ui/icons/AccountCircle' import Button from '@material-ui/core/Button' +import PropTypes from 'prop-types' const styles = { bigAvatar: { @@ -21,6 +22,12 @@ const styles = { const UserAvatar = (props) => { const { classes, avatar, modalAlertDeleteAvatar } = props + /** + * @const {any} avatar + * @const {Object} classes + * @const {Func} modalAlertDeleteAvatar + */ + return (
@@ -44,4 +51,10 @@ const UserAvatar = (props) => { ) } +UserAvatar.propTypes = { + avatar: PropTypes.any, + classes: PropTypes.object.isRequired, + modalAlertDeleteAvatar: PropTypes.func.isRequired +} + export default withStyles(styles)(UserAvatar) diff --git a/src/components/edit_user/generic_data/index.js b/src/components/edit_user/generic_data/index.js index 74e7c62..1f96191 100644 --- a/src/components/edit_user/generic_data/index.js +++ b/src/components/edit_user/generic_data/index.js @@ -16,37 +16,42 @@ import DeleteProfile from './delete_profile/delete_profile' const styles = theme => ({}) class genericUserData extends Component { + state = { contactInfo: this.props.user.contactsinfoList, avatar: this.props.user.avatar, accessStatus: this.props.user.accessstatus, - currentUser: { + personalInfo: { firstName: this.props.user.firstname, lastName: this.props.user.lastname, - userName: this.props.user.username, - birthDate: this.props.user.birthday + userName: this.props.user.username + // birthDate: this.props.user.birthday } } static propTypes = { user: PropTypes.object.isRequired, - avatar: PropTypes.any + avatar: PropTypes.any, + classes: PropTypes.object.isRequired, + modalAlertDeleteAvatar: PropTypes.func.isRequired, + handleDeleteContact: PropTypes.func.isRequired, + handleEditContact: PropTypes.func.isRequired, + handleDeleteProfile: PropTypes.func.isRequired } handleChange = (e, type) => { switch (type) { - case 'currentUser': - this.setState({ - [type]: { - [e.target.name]: e.target.value - } - }) + case 'personalInfo': + + let newCurrentUser = { ...this.state.personalInfo } + newCurrentUser[e.target.name] = e.target.value + + this.setState({ [type]: newCurrentUser }) break + default: - this.setState({ - [type]: e.target.value - }) + this.setState({ [type]: e.target.value }) break } } @@ -54,12 +59,20 @@ class genericUserData extends Component { render () { /** * @const {array} selectedUser + * @const {Object} user * @const {Object} classes + * @const {Func} modalAlertDeleteAvatar + * @const {Func} handleDeleteContact + * @const {Func} handleEditContact + * @const {Func} handleDeleteProfile + * @const {Any} avatar + * @const {Object} contactInfo + * @const {String} accessStatus + * @const {Object} personalInfo */ const { user, classes, modalAlertDeleteAvatar, handleDeleteContact, handleEditContact, handleDeleteProfile } = this.props - - let { avatar, contactInfo, accessStatus, currentUser } = this.state + const { avatar, contactInfo, accessStatus, personalInfo } = this.state let controls = [] @@ -80,6 +93,10 @@ class genericUserData extends Component { controls = [ ...controls, ...arr ] } + console.log('====================================') + console.log(this.state) + console.log('====================================') + return ( @@ -111,16 +128,15 @@ class genericUserData extends Component { Personal Information this.handleChange(e, 'currentUser')} + onChangeInfo={e => this.handleChange(e, 'personalInfo')} /> Contact Information - {controls} diff --git a/src/components/edit_user/generic_data/personal_info/personal_info.js b/src/components/edit_user/generic_data/personal_info/personal_info.js index 15dc43e..c0e53d8 100644 --- a/src/components/edit_user/generic_data/personal_info/personal_info.js +++ b/src/components/edit_user/generic_data/personal_info/personal_info.js @@ -2,8 +2,9 @@ import React, { Fragment } from 'react' import { withStyles } from '@material-ui/core/styles' import classNames from 'classnames' import TextField from '@material-ui/core/TextField' -import InputAdornment from '@material-ui/core/InputAdornment' -import CalendarToday from '@material-ui/icons/CalendarToday' +import PropTypes from 'prop-types' +// import InputAdornment from '@material-ui/core/InputAdornment' +// import CalendarToday from '@material-ui/icons/CalendarToday' const styles = theme => ({ rowControlWrapper: { @@ -12,40 +13,48 @@ const styles = theme => ({ }) const PersonalInfo = (props) => { - let newBirthday = null, - newBirthdayDay = null, - newBirthdayMonth = null - const { currentUser, initialUser, classes, onChangeInfo } = props + /** + * @const {Object} personalInfo + * @const {Object} initialUser + * @const {Object} classes + * @const {Func} onChangeInfo + */ - if (parentState.profileUserModel.userBirthday && parentState.profileUserModel.userBirthday.year) { - if (parentState.profileUserModel.userBirthday.day < 10) { - newBirthdayDay = `0${parentState.profileUserModel.userBirthday.day}` - } else { - newBirthdayDay = `${parentState.profileUserModel.userBirthday.day}` - } - if (parentState.profileUserModel.userBirthday.month < 10) { - newBirthdayMonth = `0${parentState.profileUserModel.userBirthday.month}` - } else { - newBirthdayMonth = `${parentState.profileUserModel.userBirthday.month}` - } - newBirthday = `${parentState.profileUserModel.userBirthday.year}-${newBirthdayMonth}-${newBirthdayDay}` - } + // let newBirthday = null, + // newBirthdayDay = null, + // newBirthdayMonth = null + + const { personalInfo, initialUser, classes, onChangeInfo } = props + + // if (personalInfo.userBirthday && personalInfo.userBirthday.year) { + // if (personalInfo.userBirthday.day < 10) { + // newBirthdayDay = `0${personalInfo.userBirthday.day}` + // } else { + // newBirthdayDay = `${personalInfo.userBirthday.day}` + // } + // if (personalInfo.userBirthday.month < 10) { + // newBirthdayMonth = `0${personalInfo.userBirthday.month}` + // } else { + // newBirthdayMonth = `${personalInfo.userBirthday.month}` + // } + // newBirthday = `${personalInfo.userBirthday.year}-${newBirthdayMonth}-${newBirthdayDay}` + // } return (
- Edited + Edited { - parentState.profileUserModel.firstName || parentState.profileUserModel.firstName >= 0 + personalInfo.firstName || personalInfo.firstName >= 0 ? @@ -55,16 +64,16 @@ const PersonalInfo = (props) => {
- Edited + Edited { - parentState.profileUserModel.lastName || parentState.profileUserModel.lastName >= 0 + personalInfo.lastName || personalInfo.lastName >= 0 ? @@ -73,16 +82,16 @@ const PersonalInfo = (props) => {
- Edited + Edited { - parentState.profileUserModel.userName || parentState.profileUserModel.userName >= 0 + personalInfo.userName || personalInfo.userName >= 0 ? @@ -90,18 +99,18 @@ const PersonalInfo = (props) => { }
-
- Edited + {/*
+ Edited { - newBirthday || parentState.profileUserModel.newBirthday >= 0 + personalInfo.newBirthday >= 0 ? { name="userBirthday" type="date" value='' - onChange={onHandleChange} + onChange={onChangeInfo} margin="normal" fullWidth InputProps={{ @@ -131,10 +140,17 @@ const PersonalInfo = (props) => { }} /> } -
+
*/}
) } +PersonalInfo.propTypes = { + personalInfo: PropTypes.object.isRequired, + initialUser: PropTypes.object.isRequired, + classes: PropTypes.object.isRequired, + onChangeInfo: PropTypes.func.isRequired +} + export default withStyles(styles)(PersonalInfo) diff --git a/src/components/edit_user/generic_data/user_profile_model.js b/src/components/edit_user/generic_data/user_profile_model.js index baa48ed..d08b67f 100644 --- a/src/components/edit_user/generic_data/user_profile_model.js +++ b/src/components/edit_user/generic_data/user_profile_model.js @@ -1,150 +1,120 @@ class UserProfileModel { + constructor (_firstName, _lastName, _userName, _accountStatus, _userBirthday, _rolesList) { + this._isUpdated = false - constructor(_firstName, _lastName, _userName, _accountStatus, _userBirthday, _rolesList, _contactsinfoList) { - this._isUpdated = false; + this._firstName = _firstName + this._oldFirstName = _firstName - this._firstName = _firstName; - this._oldFirstName = _firstName; + this._lastName = _lastName + this._oldLastName = _lastName - this._lastName = _lastName; - this._oldLastName = _lastName; + this._userName = _userName + this._oldUserName = _userName - this._userName = _userName; - this._oldUserName = _userName; + this._accountStatus = _accountStatus + this._oldAccountStatus = _accountStatus - this._accountStatus = _accountStatus; - this._oldAccountStatus = _accountStatus; + this._userBirthday = _userBirthday + this._oldUserBirthday = _userBirthday - this._userBirthday = _userBirthday; - this._oldUserBirthday = _userBirthday; + this._rolesList = _rolesList + this._oldrolesList = _rolesList + } - this._rolesList = _rolesList; - this._oldrolesList = _rolesList; - - this._contactsinfoList = _contactsinfoList; - this._oldContactsinfoList = _contactsinfoList; - } - - /* + /* * First Name */ - get firstName() { - return this._firstName; - } + get firstName () { + return this._firstName + } - set firstName(val) { - //this._oldFirstName = this._firstName; - this._firstName = val; - this._isUpdated = true; - } + set firstName (val) { + // this._oldFirstName = this._firstName; + this._firstName = val + this._isUpdated = true + } - /* + /* * Last Name */ - get lastName() { - return this._lastName; - } + get lastName () { + return this._lastName + } - set lastName(val) { - this._lastName = val; - this._isUpdated = true; - } + set lastName (val) { + this._lastName = val + this._isUpdated = true + } - /* + /* * Username */ - get userName() { - return this._userName; - } + get userName () { + return this._userName + } - set userName(val) { - this._userName = val; - this._isUpdated = true; - } + set userName (val) { + this._userName = val + this._isUpdated = true + } - /* + /* * Account Status / Access Status */ - get accountStatus() { - return this._accountStatus; - } + get accountStatus () { + return this._accountStatus + } - set accountStatus(val) { - this._accountStatus = val; - this._isUpdated = true; - } + set accountStatus (val) { + this._accountStatus = val + this._isUpdated = true + } - /* + /* * User Birthday */ - get userBirthday() { - return this._userBirthday; - } - - set userBirthday(val) { - let newBirthdayArray = val.split(/[-]/); - this._userBirthday = { - year: Number(newBirthdayArray[0]), - month: Number(newBirthdayArray[1]), - day: Number(newBirthdayArray[2]), - }; - this._isUpdated = true; - } - - get rolesList() { - return this._rolesList; - } - - set rolesList(val) { - this._rolesList = val; - this._isUpdated = true; - } - - /* - * User contacts info list - */ - get contactsinfoList() { - return this._contactsinfoList; - } - - set contactsinfoList(val) { - // console.log('===================================='); - // console.log(this._contactsinfoList); - // console.log('===================================='); - - // this._contactsinfoList.map((item) => { - // if (val && item.value === val) { - // return item.value = val; - // } - // }); - // this._contactsinfoList = val; - // this._isUpdated = true; - // console.log('===================================='); - // console.log(val); - // console.log('===================================='); - } - - get isUpdated() { - - if (!this._userBirthday || !this._firstName || !this._lastName || !this._accountStatus || !this._rolesList || !this._contactsinfoList) { - return false; - } - - let _newBirthdayString = `${this._userBirthday.year}-${ this._userBirthday.month}-${ this._userBirthday.day}`; - let _oldBirthdayString = `${this._oldUserBirthday.year}-${ this._oldUserBirthday.month}-${ this._oldUserBirthday.day}`; - - if (this._firstName === this._oldFirstName && this._lastName === this._oldLastName && this._userName === this._oldUserName && + get userBirthday () { + return this._userBirthday + } + + set userBirthday (val) { + let newBirthdayArray = val.split(/[-]/) + this._userBirthday = { + year: Number(newBirthdayArray[0]), + month: Number(newBirthdayArray[1]), + day: Number(newBirthdayArray[2]) + } + this._isUpdated = true + } + + get rolesList () { + return this._rolesList + } + + set rolesList (val) { + this._rolesList = val + this._isUpdated = true + } + + get isUpdated () { + if (!this._userBirthday || !this._firstName || !this._lastName || !this._accountStatus || !this._rolesList || !this._contactsinfoList) { + return false + } + + let _newBirthdayString = `${this._userBirthday.year}-${this._userBirthday.month}-${this._userBirthday.day}` + let _oldBirthdayString = `${this._oldUserBirthday.year}-${this._oldUserBirthday.month}-${this._oldUserBirthday.day}` + + if (this._firstName === this._oldFirstName && this._lastName === this._oldLastName && this._userName === this._oldUserName && this._accountStatus === this._oldAccountStatus && _newBirthdayString === _oldBirthdayString && this._rolesList === this._oldrolesList) { - return false; - } - - return this._isUpdated; - } + return false + } - validateUserName() { + return this._isUpdated + } - } + validateUserName () { + } } -export default UserProfileModel; \ No newline at end of file +export default UserProfileModel diff --git a/src/components/edit_user/index.js b/src/components/edit_user/index.js index 91cc32e..b626114 100644 --- a/src/components/edit_user/index.js +++ b/src/components/edit_user/index.js @@ -10,7 +10,7 @@ import * as actions from './actions' import GenericData from './generic_data' import ProfileTools from './profile_tools/index' -import TabsNavigation from './tabs_navigation/index' +// import TabsNavigation from './tabs_navigation/index' import AvatarContentModal from './generic_data/edit_user_avatar/delete_avatar_modal/avatar_modal' import ContactInfoDeleteModal from './generic_data/contact_info/modal_content/delete_modal' @@ -32,13 +32,13 @@ class EditUser extends Component { this.state = { profileUserModel: new UserProfileModel(''), controlsType: '', - controlTypeEdit: '', - controlValueEdit: '', - valuesStates: true, + // controlTypeEdit: '', + // controlValueEdit: '', + // valuesStates: true, openModalDeleteContact: false, openModalDeleteProfile: false, openModalDeleteAvatar: false, - openModalEditContact: false, + openModalEditContact: false } }; @@ -57,48 +57,37 @@ class EditUser extends Component { this.props.clearSelectedUserData() }; - handleChange = (e) => { - let newProfileUserModel = Object.assign(Object.create(Object.getPrototypeOf(this.state.profileUserModel)), this.state.profileUserModel) + handleAvatarAlertDelete = () => this.setState({ openModalDeleteAvatar: true }) - newProfileUserModel[e.target.name] = e.target.value + handleContactInfoDelete = () => this.setState({ openModalDeleteContact: true }) - this.setState({ - [e.target.name]: e.target.value, - profileUserModel: newProfileUserModel - }) - }; - - handleAvatarAlertDelete = () => this.setState({ openModalDeleteAvatar: true }); - - handleContactInfoDelete = () => this.setState({ openModalDeleteContact: true }); - - handleContactInfoEdit = () => this.setState({ openModalEditContact: true }); + handleContactInfoEdit = () => this.setState({ openModalEditContact: true }) - handleDeleteProfilConfirmed = () => this.setState({ openModalDeleteProfile: true }); + handleDeleteProfilConfirmed = () => this.setState({ openModalDeleteProfile: true }) - handleModalAvatarCancel = () => this.setState({ openModalDeleteAvatar: false }); + handleModalAvatarCancel = () => this.setState({ openModalDeleteAvatar: false }) - handleModalConfirmedCancel = () => this.setState({ openModalDeleteContact: false }); + handleModalConfirmedCancel = () => this.setState({ openModalDeleteContact: false }) - handleModalDeleteProfileCancel = () => this.setState({ openModalDeleteProfile: false }); + handleModalDeleteProfileCancel = () => this.setState({ openModalDeleteProfile: false }) - handleModalEditProfileCancel = () => this.setState({ openModalEditContact: false }); + handleModalEditProfileCancel = () => this.setState({ openModalEditContact: false }) handleDeleteContact = (contactInfoType) => { - if (contactInfoType !== this.state.controlsType) { - this.setState({ controlsType: contactInfoType }) - } + // if (contactInfoType !== this.state.controlsType) { + // this.setState({ controlsType: contactInfoType }) + // } this.handleContactInfoDelete() }; handleEditContact = (contactInfoType, contactInfoValue) => { - if (contactInfoType !== this.state.controlTypeEdit) { - this.setState({ controlTypeEdit: contactInfoType }) - } + // if (contactInfoType !== this.state.controlTypeEdit) { + // this.setState({ controlTypeEdit: contactInfoType }) + // } - if (contactInfoValue !== this.state.controlValueEdit) { - this.setState({ controlValueEdit: contactInfoValue }) - } + // if (contactInfoValue !== this.state.controlValueEdit) { + // this.setState({ controlValueEdit: contactInfoValue }) + // } this.handleContactInfoEdit() }; @@ -119,7 +108,6 @@ class EditUser extends Component { {selectedUser.contactsinfoList ? */} - {/* - - - - } /> - - - this.updateUserDataCategoryX(data)} />} /> - */} ) diff --git a/src/components/edit_user/profile_tools/index.js b/src/components/edit_user/profile_tools/index.js index 6c1ba03..25d809b 100644 --- a/src/components/edit_user/profile_tools/index.js +++ b/src/components/edit_user/profile_tools/index.js @@ -1,91 +1,87 @@ -import React, { Component } from "react"; -import './profile_tools.css'; +import React, { Component } from 'react' +import './profile_tools.css' -import { withStyles } from "@material-ui/core/styles"; -import AppBar from "@material-ui/core/AppBar"; -import Toolbar from "@material-ui/core/Toolbar"; -import Button from "@material-ui/core/Button"; -import IconButton from "@material-ui/core/IconButton"; -import Typography from "@material-ui/core/Typography"; +import { withStyles } from '@material-ui/core/styles' +import AppBar from '@material-ui/core/AppBar' +import Toolbar from '@material-ui/core/Toolbar' +import Button from '@material-ui/core/Button' +import IconButton from '@material-ui/core/IconButton' +import Typography from '@material-ui/core/Typography' -import Modal from "../../shared/ui/modal/modal"; -import NavigationPrompt from "react-router-navigation-prompt"; +import NavigationPrompt from 'react-router-navigation-prompt' +import Modal from '../../shared/ui/modal/modal' const styles = { - root: { - flexGrow: 1 - }, - grow: { - flexGrow: 1, - fontSize: 18 - }, - menuButton: { - marginLeft: -12, - marginRight: 20, - borderRadius: 5, - lineHeight: 0.5 - }, - saveChangesProfile: { - backgroundColor: "#0086f8", - color: "#fff", - borderRadius: 0, - '&:hover': { - backgroundColor: "#0086f8", - color: "#fff", - } - } -}; + root: { + flexGrow: 1 + }, + grow: { + flexGrow: 1, + fontSize: 18 + }, + menuButton: { + marginLeft: -12, + marginRight: 20, + borderRadius: 5, + lineHeight: 0.5 + }, + saveChangesProfile: { + backgroundColor: '#0086f8', + color: '#fff', + borderRadius: 0, + '&:hover': { + backgroundColor: '#0086f8', + color: '#fff' + } + } +} class ProfileTools extends Component { - handelBackToPreviousState = () => { - this.props.goBack(); + this.props.goBack() }; - render() { - - const { classes, isUpdatedFormControls } = this.props; - - return ( -
- -
- - - - - {" "}User Profile - - - - -
- - - { - ({ onConfirm, onCancel }) => ( - -
-

Unsaved Changes

-
-

You have unsaved changes, are you sure you want to leave?

- -
- - -
-
-
-
- ) - } -
- -
- ) - + render () { + const { classes, isUpdatedFormControls } = this.props + + return ( +
+ +
+ + + + + {' '}User Profile + + + + +
+ + + { + ({ onConfirm, onCancel }) => ( + +
+

Unsaved Changes

+
+

You have unsaved changes, are you sure you want to leave?

+ +
+ + +
+
+
+
+ ) + } +
+ +
+ ) } - } -export default withStyles(styles)(ProfileTools); \ No newline at end of file +export default withStyles(styles)(ProfileTools) -- GitLab From 25480116ba7c7706c3a39c8d9fd43f9f14275c78 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Tue, 20 Nov 2018 10:21:57 +0200 Subject: [PATCH 203/249] Minor changes --- .../edit_user/generic_data/index.js | 4 +- .../personal_info/personal_info.js | 52 ++++++++++--------- 2 files changed, 29 insertions(+), 27 deletions(-) diff --git a/src/components/edit_user/generic_data/index.js b/src/components/edit_user/generic_data/index.js index 1f96191..da82f0d 100644 --- a/src/components/edit_user/generic_data/index.js +++ b/src/components/edit_user/generic_data/index.js @@ -24,8 +24,8 @@ class genericUserData extends Component { personalInfo: { firstName: this.props.user.firstname, lastName: this.props.user.lastname, - userName: this.props.user.username - // birthDate: this.props.user.birthday + userName: this.props.user.username, + birthDate: this.props.user.birthday } } diff --git a/src/components/edit_user/generic_data/personal_info/personal_info.js b/src/components/edit_user/generic_data/personal_info/personal_info.js index c0e53d8..ab73630 100644 --- a/src/components/edit_user/generic_data/personal_info/personal_info.js +++ b/src/components/edit_user/generic_data/personal_info/personal_info.js @@ -3,8 +3,8 @@ import { withStyles } from '@material-ui/core/styles' import classNames from 'classnames' import TextField from '@material-ui/core/TextField' import PropTypes from 'prop-types' -// import InputAdornment from '@material-ui/core/InputAdornment' -// import CalendarToday from '@material-ui/icons/CalendarToday' +import InputAdornment from '@material-ui/core/InputAdornment' +import CalendarToday from '@material-ui/icons/CalendarToday' const styles = theme => ({ rowControlWrapper: { @@ -13,7 +13,6 @@ const styles = theme => ({ }) const PersonalInfo = (props) => { - /** * @const {Object} personalInfo * @const {Object} initialUser @@ -21,25 +20,28 @@ const PersonalInfo = (props) => { * @const {Func} onChangeInfo */ - // let newBirthday = null, - // newBirthdayDay = null, - // newBirthdayMonth = null + let newBirthDate = null, + newBirthdayDay = null, + newBirthdayMonth = null const { personalInfo, initialUser, classes, onChangeInfo } = props - // if (personalInfo.userBirthday && personalInfo.userBirthday.year) { - // if (personalInfo.userBirthday.day < 10) { - // newBirthdayDay = `0${personalInfo.userBirthday.day}` - // } else { - // newBirthdayDay = `${personalInfo.userBirthday.day}` - // } - // if (personalInfo.userBirthday.month < 10) { - // newBirthdayMonth = `0${personalInfo.userBirthday.month}` - // } else { - // newBirthdayMonth = `${personalInfo.userBirthday.month}` - // } - // newBirthday = `${personalInfo.userBirthday.year}-${newBirthdayMonth}-${newBirthdayDay}` - // } + if (personalInfo.birthDate && personalInfo.birthDate.year) { + if (personalInfo.birthDate.day < 10) { + newBirthdayDay = `0${personalInfo.birthDate.day}` + } else { + newBirthdayDay = `${personalInfo.birthDate.day}` + } + if (personalInfo.birthDate.month < 10) { + newBirthdayMonth = `0${personalInfo.birthDate.month}` + } else { + newBirthdayMonth = `${personalInfo.birthDate.month}` + } + newBirthDate = `${personalInfo.birthDate.year}-${newBirthdayMonth}-${newBirthdayDay}` + } + console.log('====================================') + console.log(newBirthDate) + console.log('====================================') return ( @@ -99,17 +101,17 @@ const PersonalInfo = (props) => { }
- {/*
- Edited +
+ {/* Edited */} { - personalInfo.newBirthday >= 0 + newBirthDate ? { }} /> } -
*/} +
) -- GitLab From 2c437265b8351595beb814b7448f7bbff60d00ad Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Tue, 20 Nov 2018 10:23:21 +0200 Subject: [PATCH 204/249] Minor chnages --- .../edit_user/generic_data/personal_info/personal_info.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/components/edit_user/generic_data/personal_info/personal_info.js b/src/components/edit_user/generic_data/personal_info/personal_info.js index ab73630..f22a3f1 100644 --- a/src/components/edit_user/generic_data/personal_info/personal_info.js +++ b/src/components/edit_user/generic_data/personal_info/personal_info.js @@ -39,9 +39,6 @@ const PersonalInfo = (props) => { } newBirthDate = `${personalInfo.birthDate.year}-${newBirthdayMonth}-${newBirthdayDay}` } - console.log('====================================') - console.log(newBirthDate) - console.log('====================================') return ( -- GitLab From 56da0f4cefe2e2ebf8e2e093861c13e45a3a7ce1 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Tue, 20 Nov 2018 12:41:56 +0200 Subject: [PATCH 205/249] NY-5408 switching from mocked to real data from the endpoint --- src/components/dashboard_users/reducer.js | 4 +- src/utils/grpc_proto/account.proto | 152 ++++++++++-------- src/utils/grpc_proto/generated/account_pb.js | 147 +++++++++++------ .../generated/account_pb_service.js | 2 - src/utils/services/ag_grid_server_model.js | 24 +-- 5 files changed, 199 insertions(+), 130 deletions(-) diff --git a/src/components/dashboard_users/reducer.js b/src/components/dashboard_users/reducer.js index a431aa6..3fc67e5 100644 --- a/src/components/dashboard_users/reducer.js +++ b/src/components/dashboard_users/reducer.js @@ -13,8 +13,8 @@ const initialState = { {headerName: "Username", hide: false, field: "username", filter: 'agTextColumnFilter' }, {headerName: "Authentication Identifier", hide: false, field: "authenticationidentifier", filter: 'agTextColumnFilter' }, {headerName: "Access Status", hide: false, field: "accessstatus", filter: 'agTextColumnFilter' }, - {headerName: "Created", hide: false, field: "creationdate", filter: 'agDateColumnFilter', cellRenderer: "agGroupCellRenderer", cellRendererParams: { innerRenderer: dateTimeStructure } }, - {headerName: "Updated", hide: false, field: "updateddate", filter: 'agDateColumnFilter', cellRenderer: "agGroupCellRenderer", cellRendererParams: { innerRenderer: dateTimeStructure } }, + {headerName: "Created", hide: false, field: "creationtimestamp", filter: 'agDateColumnFilter', cellRenderer: "agGroupCellRenderer", cellRendererParams: { innerRenderer: dateTimeStructure } }, + {headerName: "Updated", hide: false, field: "lastupdatetimestamp", filter: 'agDateColumnFilter', cellRenderer: "agGroupCellRenderer", cellRendererParams: { innerRenderer: dateTimeStructure } }, {headerName: "Contacts Info List", hide: true, field: "contactsinfoList", filter: 'agTextColumnFilter' }, {headerName: "Account ID", hide: true, field: "accountid", filter: 'agTextColumnFilter' }, {headerName: "Roles List", hide: true, field: "rolesList", filter: 'agTextColumnFilter' }, diff --git a/src/utils/grpc_proto/account.proto b/src/utils/grpc_proto/account.proto index fd7bd4b..518e5db 100644 --- a/src/utils/grpc_proto/account.proto +++ b/src/utils/grpc_proto/account.proto @@ -13,27 +13,47 @@ option java_package = "biz.nynja.account.grpc"; option java_outer_classname = "Account"; service AccountService { + /* This must be called only internally by auth service. Country selector must be in uppercase (BG:) */ rpc createPendingAccount(CreatePendingAccountRequest) returns (CreatePendingAccountResponse); + /* Must be called only once when a user log in for first time.*/ rpc completePendingAccountCreation(CompletePendingAccountCreationRequest) returns (AccountResponse); + /* Return all accounts with specified profile Id. */ rpc getAllAccountsByProfileId(AccountsByProfileIdRequest) returns (AccountsResponse); + /* Return the account specified by profile Id. */ rpc getAccountByAccountId(AccountByAccountIdRequest) returns (AccountResponse); + /* Return the account specified by username.*/ rpc getAccountByUsername(GetByUsernameRequest) returns (AccountResponse); + /* Return the account specified by QR Code.*/ rpc getAccountByQrCode(GetByQrCodeRequest) returns (AccountResponse); + /* Return the account specified by authentication provider(phone, email etc.).*/ rpc getAccountByAuthenticationProvider(AccountByAuthenticationProviderRequest) returns (AccountResponse); + /* Updates specified account */ rpc updateAccount (UpdateAccountRequest) returns (AccountResponse); + /* Delete specified account */ rpc deleteAccount (DeleteAccountRequest) returns (StatusResponse); + /* Delete specified profile */ rpc deleteProfile (DeleteProfileRequest) returns (StatusResponse); /* Return the profile specified by profile Id. */ rpc getProfileByProfileId (ProfileByProfileIdRequest) returns (ProfileResponse); + /* Add specified Authentication provider. To one profile could be added maximun three authentication providers.*/ rpc addAuthenticationProviderToProfile(AddAuthenticationProviderRequest) returns (StatusResponse); + /* Delete authentication Provider. The last authentication provider could not be deleted. */ rpc deleteAuthenticationProviderFromProfile(DeleteAuthenticationProviderRequest) returns (StatusResponse); + /* Update specified Authentication provider. */ rpc updateAuthenticationProviderForProfile(UpdateAuthenticationProviderRequest) returns (StatusResponse); + /* Add Contact information which will be visible for the other Nynja users. */ rpc addContactInfoToAccount(AddContactInfoRequest) returns (StatusResponse); + /* Delete Contact information. */ rpc deleteContactInfoFromAccount(DeleteContactInfoRequest) returns (StatusResponse); + /* Edit Contact information. */ rpc editContactInfoForAccount(EditContactInfoRequest) returns (StatusResponse); + /* Search account by username. This is pretty much like getAccountByUsername but the result does not contains all account fields */ rpc searchByUsername(GetByUsernameRequest) returns (SearchResponse); + /* Search account by phone number. This is pretty much like getAccountByAuthenticationProvider but the result does not contains all account fields */ rpc searchByPhoneNumber(GetByPhoneNumberRequest) returns (SearchResponse); + /* Search account by email. This is pretty much like getAccountByAuthenticationProvider but the result does not contains all account fields */ rpc searchByEmail(GetByEmailRequest) returns (SearchResponse); + /* Search account by QRCode. This is pretty much like getAccountByQrCode but the result does not contains all account fields */ rpc searchByQrCode(GetByQrCodeRequest) returns (SearchResponse); } @@ -54,33 +74,32 @@ enum ContactType { TWITTER_CONTACT = 5; } +/* Each user could have one or more roles listed bellow: */ enum Role { UNKNOWN_ROLE = 0; - USER = 1; - ADMIN = 2; + USER = 1; // regular user + ADMIN = 2; // this role must be treated as account admin } enum AccessStatus { UNKNOWN_ACCESS_STATUS = 0; - ENABLED = 1; - SUSPENDED = 2; - DISABLED = 3; + ENABLED = 1; // Regular running user. + SUSPENDED = 2; // Behaves exactly as deleted for certain period. + DISABLED = 3; // All requests from such user are discarded including login. } - +/*Request for creating an account by phone number, email address, etc.*/ message CreatePendingAccountRequest { - AuthenticationType authenticationType = 1; // Request for creating an account by phone number, email address, etc. - string authenticationProvider = 2; + AuthenticationType authenticationType = 1; // authentication type like phone, email etc. + string authenticationProvider = 2; // authentication provider value. If for example authenticationType is Phone country selector must be in uppercase (BG:) } -//PREVIOUSLY RESERVED FIELD NUMBERS: 10, 8 -//NOT to be used for newly added fields. message CompletePendingAccountCreationRequest { string accountId = 1; - string avatar = 2; + string avatar = 2; // string accountMark = 3; string accountName = 4; - string firstName = 5; - string lastName = 6; + string firstName = 5; // Mandatory field + string lastName = 6; // Mandatory field string username = 7; string qrCode = 9; repeated Role roles = 11; @@ -93,8 +112,7 @@ message AccountsByProfileIdRequest { message Date { int32 year = 1; - //month: from 1(January) to 12(December) - int32 month = 2; + int32 month = 2; //month: from 1(January) to 12(December) int32 day = 3; } @@ -112,8 +130,6 @@ message AccountByAuthenticationProviderRequest { // email address, Facebook user Id, Google user Id } -//PREVIOUSLY RESERVED FIELD NUMBERS: 8,9 -//NOT to be used for newly added fields. message UpdateAccountRequest { string accountId = 1; string avatar = 2; @@ -124,8 +140,7 @@ message UpdateAccountRequest { string username = 7; repeated Role roles = 10; AccessStatus accessStatus = 11; - //To remove the value for birthday date do not set the birthday field or use 0,0,0 for year, month, day. - Date birthday = 12; + Date birthday = 12; //To remove the value for birthday date do not set the birthday field or use 0,0,0 for year, month, day. } message DeleteAccountRequest { @@ -191,8 +206,6 @@ message ContactDetails { string label = 3; } -//PREVIOUSLY RESERVED FIELD NUMBERS: 11, 13 -//NOT to be used for newly added fields. message AccountDetails { string accountId = 1; string profileId = 2; @@ -209,6 +222,8 @@ message AccountDetails { repeated Role roles = 15; AccessStatus accessStatus = 16; Date birthday = 17; + int64 creationTimestamp = 18; // Creation timestamp is set when account is created. + int64 lastUpdateTimestamp = 19; // Update timestamp is '0' if account is never updated. } message AccountResponse { @@ -290,54 +305,53 @@ message SearchResultDetails { message ErrorResponse { enum Cause { INTERNAL_SERVER_ERROR = 0; - MISSING_FIRST_NAME = 1; - EMAIL_ALREADY_USED = 2; - EMAIL_INVALID = 3; - PHONE_NUMBER_ALREADY_USED = 4; - PHONE_NUMBER_INVALID = 5; - USERNAME_ALREADY_USED = 6; - USERNAME_INVALID = 7; - ACCOUNT_NOT_FOUND = 8; - MISSING_AUTH_PROVIDER_TYPE = 9; - MISSING_AUTH_PROVIDER_IDENTIFIER = 10; - MISSING_PROFILE_ID = 11; - MISSING_ACCOUNT_ID = 12; - INVALID_FIRST_NAME = 13; - INVALID_LAST_NAME = 14; - INVALID_AUTH_PROVIDER_TYPE = 15; - ERROR_CREATING_ACCOUNT = 16; - ERROR_UPDATING_ACCOUNT = 17; - ERROR_UPDATING_PROFILE = 18; - ACCOUNT_NAME_INVALID = 19; - ACCOUNT_ALREADY_CREATED = 20; - ERROR_DELETING_ACCOUNT = 21; - ERROR_DELETING_PROFILE = 22; - ERROR_ADDING_AUTH_PROVIDER = 23; - ERROR_DELETING_AUTH_PROVIDER = 24; - PROFILE_NOT_FOUND = 25; - INVALID_PROFILE_ID = 26; - AUTH_PROVIDER_ALREADY_USED = 27; - MISSING_CONTACT_INFO_TYPE = 28; - MISSING_CONTACT_INFO_IDENTIFIER = 29; - INVALID_ACCOUNT_ID = 30; - ERROR_ADDING_CONTACT_INFO = 31; - ERROR_REMOVING_CONTACT_INFO = 32; - ERROR_EDITING_CONTACT_INFO = 33; - INVALID_BIRTHDAY_DATE = 34; - MISSING_USERNAME = 35; - MISSING_EMAIL = 36; - MISSING_PHONENUMBER = 37; - MISSING_QR_CODE = 38; - INVALID_PHONENUMBER = 39; - INVALID_QR_CODE = 40; - USERNAME_NOT_FOUND = 41; - EMAIL_NOT_FOUND = 42; - PHONENUMBER_NOT_FOUND = 43; - QR_CODE_NOT_FOUND = 44; - MULTIPLE_INVALID_PARAMETERS = 45; - INVALID_ACCESS_STATUS = 46; - AUTH_PROVIDER_NOT_FOUND = 47; - ERROR_UPDATING_AUTH_PROVIDER = 48; + MISSING_ACCOUNT_ID = 1; //account id is mandatory but not set in the request + INVALID_ACCOUNT_ID = 2; // Passed account id has invalid format. Possible formats ? + INVALID_ACCOUNT_NAME = 3; // Passed account name has invalid format. Possible formats ? + ACCOUNT_ALREADY_CREATED = 4; + ACCOUNT_NOT_FOUND = 5; // specified account is not found + MISSING_PROFILE_ID = 6; //profile id is mandatory but not set in the request + INVALID_PROFILE_ID = 7; // Passed first name has invalid format. Possible formats ? + PROFILE_NOT_FOUND = 8; // specified profile is not found + MISSING_AUTH_PROVIDER_TYPE = 9; //auth provider is mandatory but not set in the request + MISSING_AUTH_PROVIDER_ID = 10; //auth provider identifier is mandatory but not set in the request + INVALID_AUTH_PROVIDER_TYPE = 11; // Passed username has invalid type. Look at @AuthenticationType enum. + AUTH_PROVIDER_ALREADY_USED = 12; // Passed authentication provider is already used by another account + AUTH_PROVIDER_NOT_FOUND = 13; + MISSING_FIRST_NAME = 14; //first name is mandatory but not set in the request + INVALID_FIRST_NAME = 15; // Passed first name has invalid format. Possible formats ? + INVALID_LAST_NAME = 16; // Passed last name has invalid format. Possible formats ? + MISSING_EMAIL = 17; //email is mandatory but not set in the request + INVALID_EMAIL = 18; //email syntax is not correct. + EMAIL_ALREADY_USED = 19; // exists account which already use this email. + EMAIL_NOT_FOUND = 20; // account with specified email is not found + MISSING_USERNAME = 21; //username is mandatory but not set in the request + USERNAME_NOT_FOUND = 22; // account with specified username is not found + USERNAME_ALREADY_USED = 23; // exists account which already use this username. + INVALID_USERNAME = 24; // Passed username has invalid format. Possible formats ? + MISSING_PHONENUMBER = 25; //phone number is mandatory but not set in the request + INVALID_PHONENUMBER = 26; // Passed phone number has invalid format. Possible formats :+ or +. For Example BG:+359878123456 or +359878123456 + PHONENUMBER_NOT_FOUND = 27; // account with specified phone number is not found + PHONENUMBER_ALREADY_USED = 28; // exists account which already use this phone number. + MISSING_QR_CODE = 29; //QR code is mandatory but not set in the request + INVALID_QR_CODE = 30; // Passed QR code has invalid format. Possible formats ? + QR_CODE_NOT_FOUND = 31; // account with specified QR code is not found + MISSING_CONTACT_INFO_TYPE = 32; //contact info is mandatory but not set in the request + MISSING_CONTACT_INFO_ID = 33; //contact info identifier is mandatory but not set in the request + INVALID_BIRTHDAY_DATE = 34; // Passed birthday has invalid format. Possible formats ? + MULTIPLE_INVALID_PARAMETERS = 35; // several input fields are not valid + INVALID_ACCESS_STATUS = 36; // Passed access status has invalid value/type. Refer @AccessStatus enum + ERROR_CREATING_ACCOUNT = 37; // error occurred during account creation + ERROR_UPDATING_ACCOUNT = 38; // error occurred during account update + ERROR_DELETING_ACCOUNT = 39; // error occurred during account deletion + ERROR_UPDATING_PROFILE = 40; // error occurred during profile update + ERROR_DELETING_PROFILE = 41; // error occurred during profile deletion + ERROR_ADDING_AUTH_PROVIDER = 42; // error occurred authentication provider addition + ERROR_UPDATING_AUTH_PROVIDER = 43; + ERROR_DELETING_AUTH_PROVIDER = 44; // error occurred during authentication provider deletion + ERROR_ADDING_CONTACT_INFO = 45; // error occurred during contact info addition + ERROR_DELETING_CONTACT_INFO = 46; // error occurred during contact info removal + ERROR_EDITING_CONTACT_INFO = 47; // error occurred during contact info update } Cause cause = 1; string message = 2; diff --git a/src/utils/grpc_proto/generated/account_pb.js b/src/utils/grpc_proto/generated/account_pb.js index 9b7ab49..1d376b2 100644 --- a/src/utils/grpc_proto/generated/account_pb.js +++ b/src/utils/grpc_proto/generated/account_pb.js @@ -4160,7 +4160,9 @@ proto.account.AccountDetails.toObject = function(includeInstance, msg) { proto.account.ContactDetails.toObject, includeInstance), rolesList: jspb.Message.getRepeatedField(msg, 15), accessstatus: jspb.Message.getFieldWithDefault(msg, 16, 0), - birthday: (f = msg.getBirthday()) && proto.account.Date.toObject(includeInstance, f) + birthday: (f = msg.getBirthday()) && proto.account.Date.toObject(includeInstance, f), + creationtimestamp: jspb.Message.getFieldWithDefault(msg, 18, 0), + lastupdatetimestamp: jspb.Message.getFieldWithDefault(msg, 19, 0) }; if (includeInstance) { @@ -4259,6 +4261,14 @@ proto.account.AccountDetails.deserializeBinaryFromReader = function(msg, reader) reader.readMessage(value,proto.account.Date.deserializeBinaryFromReader); msg.setBirthday(value); break; + case 18: + var value = /** @type {number} */ (reader.readInt64()); + msg.setCreationtimestamp(value); + break; + case 19: + var value = /** @type {number} */ (reader.readInt64()); + msg.setLastupdatetimestamp(value); + break; default: reader.skipField(); break; @@ -4395,6 +4405,20 @@ proto.account.AccountDetails.serializeBinaryToWriter = function(message, writer) proto.account.Date.serializeBinaryToWriter ); } + f = message.getCreationtimestamp(); + if (f !== 0) { + writer.writeInt64( + 18, + f + ); + } + f = message.getLastupdatetimestamp(); + if (f !== 0) { + writer.writeInt64( + 19, + f + ); + } }; @@ -4668,6 +4692,36 @@ proto.account.AccountDetails.prototype.hasBirthday = function() { }; +/** + * optional int64 creationTimestamp = 18; + * @return {number} + */ +proto.account.AccountDetails.prototype.getCreationtimestamp = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 18, 0)); +}; + + +/** @param {number} value */ +proto.account.AccountDetails.prototype.setCreationtimestamp = function(value) { + jspb.Message.setProto3IntField(this, 18, value); +}; + + +/** + * optional int64 lastUpdateTimestamp = 19; + * @return {number} + */ +proto.account.AccountDetails.prototype.getLastupdatetimestamp = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 19, 0)); +}; + + +/** @param {number} value */ +proto.account.AccountDetails.prototype.setLastupdatetimestamp = function(value) { + jspb.Message.setProto3IntField(this, 19, value); +}; + + /** * Generated by JsPbCodeGenerator. @@ -7297,54 +7351,53 @@ proto.account.ErrorResponse.serializeBinaryToWriter = function(message, writer) */ proto.account.ErrorResponse.Cause = { INTERNAL_SERVER_ERROR: 0, - MISSING_FIRST_NAME: 1, - EMAIL_ALREADY_USED: 2, - EMAIL_INVALID: 3, - PHONE_NUMBER_ALREADY_USED: 4, - PHONE_NUMBER_INVALID: 5, - USERNAME_ALREADY_USED: 6, - USERNAME_INVALID: 7, - ACCOUNT_NOT_FOUND: 8, + MISSING_ACCOUNT_ID: 1, + INVALID_ACCOUNT_ID: 2, + INVALID_ACCOUNT_NAME: 3, + ACCOUNT_ALREADY_CREATED: 4, + ACCOUNT_NOT_FOUND: 5, + MISSING_PROFILE_ID: 6, + INVALID_PROFILE_ID: 7, + PROFILE_NOT_FOUND: 8, MISSING_AUTH_PROVIDER_TYPE: 9, - MISSING_AUTH_PROVIDER_IDENTIFIER: 10, - MISSING_PROFILE_ID: 11, - MISSING_ACCOUNT_ID: 12, - INVALID_FIRST_NAME: 13, - INVALID_LAST_NAME: 14, - INVALID_AUTH_PROVIDER_TYPE: 15, - ERROR_CREATING_ACCOUNT: 16, - ERROR_UPDATING_ACCOUNT: 17, - ERROR_UPDATING_PROFILE: 18, - ACCOUNT_NAME_INVALID: 19, - ACCOUNT_ALREADY_CREATED: 20, - ERROR_DELETING_ACCOUNT: 21, - ERROR_DELETING_PROFILE: 22, - ERROR_ADDING_AUTH_PROVIDER: 23, - ERROR_DELETING_AUTH_PROVIDER: 24, - PROFILE_NOT_FOUND: 25, - INVALID_PROFILE_ID: 26, - AUTH_PROVIDER_ALREADY_USED: 27, - MISSING_CONTACT_INFO_TYPE: 28, - MISSING_CONTACT_INFO_IDENTIFIER: 29, - INVALID_ACCOUNT_ID: 30, - ERROR_ADDING_CONTACT_INFO: 31, - ERROR_REMOVING_CONTACT_INFO: 32, - ERROR_EDITING_CONTACT_INFO: 33, + MISSING_AUTH_PROVIDER_ID: 10, + INVALID_AUTH_PROVIDER_TYPE: 11, + AUTH_PROVIDER_ALREADY_USED: 12, + AUTH_PROVIDER_NOT_FOUND: 13, + MISSING_FIRST_NAME: 14, + INVALID_FIRST_NAME: 15, + INVALID_LAST_NAME: 16, + MISSING_EMAIL: 17, + INVALID_EMAIL: 18, + EMAIL_ALREADY_USED: 19, + EMAIL_NOT_FOUND: 20, + MISSING_USERNAME: 21, + USERNAME_NOT_FOUND: 22, + USERNAME_ALREADY_USED: 23, + INVALID_USERNAME: 24, + MISSING_PHONENUMBER: 25, + INVALID_PHONENUMBER: 26, + PHONENUMBER_NOT_FOUND: 27, + PHONENUMBER_ALREADY_USED: 28, + MISSING_QR_CODE: 29, + INVALID_QR_CODE: 30, + QR_CODE_NOT_FOUND: 31, + MISSING_CONTACT_INFO_TYPE: 32, + MISSING_CONTACT_INFO_ID: 33, INVALID_BIRTHDAY_DATE: 34, - MISSING_USERNAME: 35, - MISSING_EMAIL: 36, - MISSING_PHONENUMBER: 37, - MISSING_QR_CODE: 38, - INVALID_PHONENUMBER: 39, - INVALID_QR_CODE: 40, - USERNAME_NOT_FOUND: 41, - EMAIL_NOT_FOUND: 42, - PHONENUMBER_NOT_FOUND: 43, - QR_CODE_NOT_FOUND: 44, - MULTIPLE_INVALID_PARAMETERS: 45, - INVALID_ACCESS_STATUS: 46, - AUTH_PROVIDER_NOT_FOUND: 47, - ERROR_UPDATING_AUTH_PROVIDER: 48 + MULTIPLE_INVALID_PARAMETERS: 35, + INVALID_ACCESS_STATUS: 36, + ERROR_CREATING_ACCOUNT: 37, + ERROR_UPDATING_ACCOUNT: 38, + ERROR_DELETING_ACCOUNT: 39, + ERROR_UPDATING_PROFILE: 40, + ERROR_DELETING_PROFILE: 41, + ERROR_ADDING_AUTH_PROVIDER: 42, + ERROR_UPDATING_AUTH_PROVIDER: 43, + ERROR_DELETING_AUTH_PROVIDER: 44, + ERROR_ADDING_CONTACT_INFO: 45, + ERROR_DELETING_CONTACT_INFO: 46, + ERROR_EDITING_CONTACT_INFO: 47 }; /** diff --git a/src/utils/grpc_proto/generated/account_pb_service.js b/src/utils/grpc_proto/generated/account_pb_service.js index c859f2c..2913a4f 100644 --- a/src/utils/grpc_proto/generated/account_pb_service.js +++ b/src/utils/grpc_proto/generated/account_pb_service.js @@ -469,8 +469,6 @@ AccountServiceClient.prototype.getProfileByProfileId = function getProfileByProf debug: this.options.debug, onEnd: function (response) { if (callback) { - - if (response.status !== grpc.Code.OK) { var err = new Error(response.statusMessage); err.code = response.status; diff --git a/src/utils/services/ag_grid_server_model.js b/src/utils/services/ag_grid_server_model.js index 67cb5cc..a848a68 100644 --- a/src/utils/services/ag_grid_server_model.js +++ b/src/utils/services/ag_grid_server_model.js @@ -33,23 +33,27 @@ ServerSideDatasource.prototype.getRows = function(params) { Promise.all([getUsersDataPromise, getCountOfAllAccountsPromise]).then((data) => { - + data[0].accountdetailsList.map((item, index) => { item.accessstatus = item.accessstatus === undefined || item.accessstatus === 0 ? accountStatusVariations[1] : accountStatusVariations[item.accessstatus]; let roleListItem = item.rolesList.map((roleItem) => accountRoleVariations[roleItem]); item.rolesList = roleListItem; - let timestampCreationMock = 1542206425999 + index * 100000000; - let timestampCreated = moment(timestampCreationMock); // this is the format, which will be taken by from the endpoint + let timestampCreationDate = item.creationtimestamp; + let timestampCreated = moment(timestampCreationDate); // this is the format, which will be taken by from the endpoint let creationDate = `${timestampCreated.day() + 1}/${timestampCreated.month() + 1}/${timestampCreated.year()}` let creationTime = `${timestampCreated.format('hh:mm A')}`; - item.creationdate = [creationDate, creationTime] - - let timestampUpdatedMock = 1542286425999 + index * 100000000; - let timestampUpdated = moment(timestampUpdatedMock); // this is the format, which will be taken by from the endpoint - let updatedDate = `${timestampUpdated.day() + 1}/${timestampUpdated.month() + 1}/${timestampUpdated.year()}` - let updatedTime = `${timestampUpdated.format('hh:mm A')}`; - item.updateddate = [updatedDate, updatedTime] + item.creationtimestamp = [creationDate, creationTime] + + let timestampUpdatedDate = item.lastupdatetimestamp; + if (timestampUpdatedDate !== 0) { + let timestampUpdated = moment(timestampUpdatedDate); // this is the format, which will be taken by from the endpoint + let updatedDate = `${timestampUpdated.day() + 1}/${timestampUpdated.month() + 1}/${timestampUpdated.year()}` + let updatedTime = `${timestampUpdated.format('hh:mm A')}`; + item.lastupdatetimestamp = [updatedDate, updatedTime] + } else { + item.lastupdatetimestamp = ['no updates done', ''] + } return item; }) -- GitLab From 5e61e3bb0d1612037ad4f283a8f7785b62e8553f Mon Sep 17 00:00:00 2001 From: Vasil Nikolov Date: Tue, 20 Nov 2018 13:38:41 +0200 Subject: [PATCH 206/249] personal info updates, react datetime integration, env variable implemented --- .env | 1 + package.json | 1 + .../edit_user/generic_data/index.js | 31 +- .../personal_info/personal_info.js | 144 +++------ src/components/edit_user/middleware.js | 17 +- src/constants/formats.js | 1 + src/utils/helpers/format_date.js | 11 + src/utils/services/accounts.js | 115 ++++--- src/utils/services/ag_grid_server_model.js | 297 +++++++++--------- yarn.lock | 33 +- 10 files changed, 322 insertions(+), 329 deletions(-) create mode 100644 .env create mode 100644 src/constants/formats.js create mode 100644 src/utils/helpers/format_date.js diff --git a/.env b/.env new file mode 100644 index 0000000..f85aab1 --- /dev/null +++ b/.env @@ -0,0 +1 @@ +NODE_PATH=src \ No newline at end of file diff --git a/package.json b/package.json index 92dbc6d..1921c17 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "moment": "^2.22.2", "prop-types": "^15.6.2", "react": "^16.5.2", + "react-datetime": "^2.16.2", "react-dom": "^16.5.2", "react-redux": "^5.0.7", "react-router-dom": "^4.3.1", diff --git a/src/components/edit_user/generic_data/index.js b/src/components/edit_user/generic_data/index.js index da82f0d..8e5f0a3 100644 --- a/src/components/edit_user/generic_data/index.js +++ b/src/components/edit_user/generic_data/index.js @@ -13,19 +13,20 @@ import AccessStatus from './access_status/access_status' import UserAvatar from './edit_user_avatar/edit_user_avatar' import DeleteProfile from './delete_profile/delete_profile' +import { formatDate } from 'utils/helpers/format_date' + const styles = theme => ({}) class genericUserData extends Component { - state = { contactInfo: this.props.user.contactsinfoList, avatar: this.props.user.avatar, accessStatus: this.props.user.accessstatus, personalInfo: { - firstName: this.props.user.firstname, - lastName: this.props.user.lastname, - userName: this.props.user.username, - birthDate: this.props.user.birthday + firstname: this.props.user.firstname, + lastname: this.props.user.lastname, + username: this.props.user.username, + birthday: this.props.user.birthday } } @@ -43,13 +44,14 @@ class genericUserData extends Component { handleChange = (e, type) => { switch (type) { case 'personalInfo': - let newCurrentUser = { ...this.state.personalInfo } - newCurrentUser[e.target.name] = e.target.value - + if (e.target) { + newCurrentUser[e.target.name] = e.target.value + } else { + newCurrentUser.birthday = formatDate(e) + } this.setState({ [type]: newCurrentUser }) break - default: this.setState({ [type]: e.target.value }) break @@ -93,10 +95,6 @@ class genericUserData extends Component { controls = [ ...controls, ...arr ] } - console.log('====================================') - console.log(this.state) - console.log('====================================') - return ( @@ -129,7 +127,12 @@ class genericUserData extends Component { this.handleChange(e, 'personalInfo')} /> diff --git a/src/components/edit_user/generic_data/personal_info/personal_info.js b/src/components/edit_user/generic_data/personal_info/personal_info.js index f22a3f1..3c5df86 100644 --- a/src/components/edit_user/generic_data/personal_info/personal_info.js +++ b/src/components/edit_user/generic_data/personal_info/personal_info.js @@ -3,8 +3,12 @@ import { withStyles } from '@material-ui/core/styles' import classNames from 'classnames' import TextField from '@material-ui/core/TextField' import PropTypes from 'prop-types' -import InputAdornment from '@material-ui/core/InputAdornment' -import CalendarToday from '@material-ui/icons/CalendarToday' +import DateTime from 'react-datetime' + +import { formatDate } from 'utils/helpers/format_date' +import { DATE_FORMAT } from 'constants/formats' + +import 'react-datetime/css/react-datetime.css' const styles = theme => ({ rowControlWrapper: { @@ -20,124 +24,72 @@ const PersonalInfo = (props) => { * @const {Func} onChangeInfo */ - let newBirthDate = null, - newBirthdayDay = null, - newBirthdayMonth = null - - const { personalInfo, initialUser, classes, onChangeInfo } = props - - if (personalInfo.birthDate && personalInfo.birthDate.year) { - if (personalInfo.birthDate.day < 10) { - newBirthdayDay = `0${personalInfo.birthDate.day}` - } else { - newBirthdayDay = `${personalInfo.birthDate.day}` - } - if (personalInfo.birthDate.month < 10) { - newBirthdayMonth = `0${personalInfo.birthDate.month}` - } else { - newBirthdayMonth = `${personalInfo.birthDate.month}` - } - newBirthDate = `${personalInfo.birthDate.year}-${newBirthdayMonth}-${newBirthdayDay}` - } + const { personalInfo, initialInfo, classes, onChangeInfo } = props return (
- Edited + Edited { - personalInfo.firstName || personalInfo.firstName >= 0 - ? - : null - + }
- Edited + Edited { - personalInfo.lastName || personalInfo.lastName >= 0 - ? - : null + }
- Edited + Edited { - personalInfo.userName || personalInfo.userName >= 0 - ? - : null + }
- {/* Edited */} + Edited { - newBirthDate - ? - - - ) - }} - /> - : - - - ) - }} /> + : null }
@@ -147,7 +99,7 @@ const PersonalInfo = (props) => { PersonalInfo.propTypes = { personalInfo: PropTypes.object.isRequired, - initialUser: PropTypes.object.isRequired, + initialInfo: PropTypes.object.isRequired, classes: PropTypes.object.isRequired, onChangeInfo: PropTypes.func.isRequired } diff --git a/src/components/edit_user/middleware.js b/src/components/edit_user/middleware.js index 3db38f2..9471637 100644 --- a/src/components/edit_user/middleware.js +++ b/src/components/edit_user/middleware.js @@ -51,19 +51,22 @@ export function * getSelectedUserId (action) { TWITTER } + let birthday = '' + + if (accountPayload.birthday && accountPayload.birthday.year) { + birthday = `${accountPayload.birthday.year}/${accountPayload.birthday.month}/${accountPayload.birthday.day}` + } + let payload = { ...accountPayload, loginoptions: profilePayload.authprovidersList, - contactsinfoList + contactsinfoList, + birthday } - if (payload !== undefined) { - yield put(deliverSelectedUserData(payload)) - } else { - yield put(globalError({ errorMessage: 'Unknown error' })) - } + yield put(deliverSelectedUserData(payload)) } catch (error) { - console.log(error) + yield put(globalError({ errorMessage: 'Unknown error' })) } } diff --git a/src/constants/formats.js b/src/constants/formats.js new file mode 100644 index 0000000..03798a0 --- /dev/null +++ b/src/constants/formats.js @@ -0,0 +1 @@ +export const DATE_FORMAT = 'YYYY/MM/DD' diff --git a/src/utils/helpers/format_date.js b/src/utils/helpers/format_date.js new file mode 100644 index 0000000..9495b6e --- /dev/null +++ b/src/utils/helpers/format_date.js @@ -0,0 +1,11 @@ +import moment from 'moment' +import { DATE_FORMAT } from 'constants/formats' + +export { formatDate } + +function formatDate (value, format = DATE_FORMAT) { + return value ? moment(value, DATE_FORMAT).format(format) : null +} + + +moment('date', 'YYYY/MM/DD') \ No newline at end of file diff --git a/src/utils/services/accounts.js b/src/utils/services/accounts.js index a3ec195..60ac23f 100644 --- a/src/utils/services/accounts.js +++ b/src/utils/services/accounts.js @@ -1,69 +1,64 @@ -import { AccountServiceClient } from './../grpc_proto/generated/account_pb_service'; -import { AccountByAccountIdRequest, ProfileByProfileIdRequest, Role, AccessStatus, ContactType, AuthenticationType } from './../grpc_proto/generated/account_pb'; +import { AccountServiceClient } from './../grpc_proto/generated/account_pb_service' +import { AccountByAccountIdRequest, ProfileByProfileIdRequest, Role, AccessStatus, ContactType, AuthenticationType } from './../grpc_proto/generated/account_pb' -const endpoint = "https://account.dev-eu.nynja.net:443"; -let accountServiceClient = new AccountServiceClient(endpoint); +const endpoint = 'https://account.dev-eu.nynja.net:443' +let accountServiceClient = new AccountServiceClient(endpoint) -export let accountRoleVariations = Object.keys(Role); -export let accountStatusVariations = Object.keys(AccessStatus); -export let accountContactType = Object.keys(ContactType); -export let accountLoginType = Object.keys(AuthenticationType); +export let accountRoleVariations = Object.keys(Role) +export let accountStatusVariations = Object.keys(AccessStatus) +export let accountContactType = Object.keys(ContactType) +export let accountLoginType = Object.keys(AuthenticationType) /** * getting account details */ -let accountByAccountIdRequest = new AccountByAccountIdRequest(); - -export function accountByAccountIdGrpcRequest(accountId){ - - accountByAccountIdRequest.setAccountid(accountId); - return new Promise((resolve, reject) => { - accountServiceClient.getAccountByAccountId(accountByAccountIdRequest, {'Content-type': 'application/grpc-web+proto'}, (error, response) => { - if(response) { - if(response.accountdetails){ - - response.accountdetails.rolesList = accountRoleVariations[response.accountdetails.rolesList[0]] - response.accountdetails.accessstatus = response.accountdetails.accessstatus === undefined || response.accountdetails.accessstatus === 0 ? accountStatusVariations[1] : accountStatusVariations[response.accountdetails.accessstatus] - - resolve(response.accountdetails); - } else { - reject(response.error); - } - } else { - reject({errorMessage: 'Unknow connection issue'}); - } - if(error){ - reject(error); - } - }) - }) +let accountByAccountIdRequest = new AccountByAccountIdRequest() + +export function accountByAccountIdGrpcRequest (accountId) { + accountByAccountIdRequest.setAccountid(accountId) + + return new Promise((resolve, reject) => { + accountServiceClient.getAccountByAccountId(accountByAccountIdRequest, { 'Content-type': 'application/grpc-web+proto' }, (error, response) => { + if (response) { + if (response.accountdetails) { + response.accountdetails.rolesList = accountRoleVariations[response.accountdetails.rolesList[0]] + response.accountdetails.accessstatus = response.accountdetails.accessstatus === undefined || response.accountdetails.accessstatus === 0 ? accountStatusVariations[1] : accountStatusVariations[response.accountdetails.accessstatus] + + resolve(response.accountdetails) + } else { + reject(response.error) + } + } else { + reject({ errorMessage: 'Unknow connection issue' }) + } + if (error) { + reject(error) + } + }) + }) } -let profileByProfileIdRequest = new ProfileByProfileIdRequest(); - -export function profileByProfileIdGrpcRequest(profileId){ - - return new Promise((resolve, reject) => { - - profileByProfileIdRequest.setProfileid(profileId); - accountServiceClient.getProfileByProfileId(profileByProfileIdRequest, {'Content-type': 'application/grpc-web+proto'}, (error, response) => { - if(response) { - if(response.profiledetails){ - - resolve(response.profiledetails); - } else { - reject(response.error); - } - - } else { - reject({errorMessage: 'Unknow connection issue'}); - } - if(error){ - console.log('error', error) - reject(error); - } - }) - }) -} +let profileByProfileIdRequest = new ProfileByProfileIdRequest() + +export function profileByProfileIdGrpcRequest (profileId) { + return new Promise((resolve, reject) => { + profileByProfileIdRequest.setProfileid(profileId) + accountServiceClient.getProfileByProfileId(profileByProfileIdRequest, { 'Content-type': 'application/grpc-web+proto' }, (error, response) => { + if (response) { + if (response.profiledetails) { + resolve(response.profiledetails) + } else { + reject(response.error) + } + } else { + reject({ errorMessage: 'Unknow connection issue' }) + } + if (error) { + console.log('error', error) + reject(error) + } + }) + }) +} // let host = "https://account.dev-eu.nynja.net:443"; // let accountByAuthenticationProviderRequest = new AccountByAuthenticationProviderRequest(); @@ -98,4 +93,4 @@ export function profileByProfileIdGrpcRequest(profileId){ // console.log("response AUTH", response); // console.log("error AUTH", error); // }) -// }); \ No newline at end of file +// }); diff --git a/src/utils/services/ag_grid_server_model.js b/src/utils/services/ag_grid_server_model.js index 67cb5cc..a5f2cc8 100644 --- a/src/utils/services/ag_grid_server_model.js +++ b/src/utils/services/ag_grid_server_model.js @@ -1,174 +1,171 @@ -import { getAllAccountsGrpcRequest, getCountOfAllAccountsGrpcRequest } from './../services/admin_account'; -import { accountStatusVariations, accountRoleVariations } from './../services/accounts'; -import * as moment from 'moment'; +import * as moment from 'moment' +import { getAllAccountsGrpcRequest, getCountOfAllAccountsGrpcRequest } from './../services/admin_account' +import { accountStatusVariations, accountRoleVariations } from './../services/accounts' -function ServerSideDatasource() {} +function ServerSideDatasource () {} /** * @param {object} params * this one comes from ag-grid API */ -ServerSideDatasource.prototype.getRows = function(params) { - console.log('ServerSideDatasource.getRows: params = ', params); +ServerSideDatasource.prototype.getRows = function (params) { + console.log('ServerSideDatasource.getRows: params = ', params) - // the request is passed dynamically from ag-grid - let request = params.request; - console.log('request', request); + // the request is passed dynamically from ag-grid + let request = params.request + console.log('request', request) - let startRow = params.request.startRow === 0 ? 1 : params.request.startRow; - let endRow = params.request.endRow; + let startRow = params.request.startRow === 0 ? 1 : params.request.startRow + let endRow = params.request.endRow - /** + /** * @param {func} successCallback * @param {object} request * the request created by ag-grid is passed to an endpoint * on success call params.successCallback(resultForGrid, lastRow); * params.successCallback is an ag-grid method */ - // this.fakeServer.getUsersData(successCallback, request); - // console.log("request", request) - - let getUsersDataPromise = getAllAccountsGrpcRequest(startRow, endRow); - let getCountOfAllAccountsPromise = getCountOfAllAccountsGrpcRequest(); - - - Promise.all([getUsersDataPromise, getCountOfAllAccountsPromise]).then((data) => { - - data[0].accountdetailsList.map((item, index) => { - item.accessstatus = item.accessstatus === undefined || item.accessstatus === 0 ? accountStatusVariations[1] : accountStatusVariations[item.accessstatus]; - let roleListItem = item.rolesList.map((roleItem) => accountRoleVariations[roleItem]); - item.rolesList = roleListItem; - - let timestampCreationMock = 1542206425999 + index * 100000000; - let timestampCreated = moment(timestampCreationMock); // this is the format, which will be taken by from the endpoint - let creationDate = `${timestampCreated.day() + 1}/${timestampCreated.month() + 1}/${timestampCreated.year()}` - let creationTime = `${timestampCreated.format('hh:mm A')}`; - item.creationdate = [creationDate, creationTime] - - let timestampUpdatedMock = 1542286425999 + index * 100000000; - let timestampUpdated = moment(timestampUpdatedMock); // this is the format, which will be taken by from the endpoint - let updatedDate = `${timestampUpdated.day() + 1}/${timestampUpdated.month() + 1}/${timestampUpdated.year()}` - let updatedTime = `${timestampUpdated.format('hh:mm A')}`; - item.updateddate = [updatedDate, updatedTime] - - return item; - }) - - params.successCallback(data[0].accountdetailsList, data[1]); - }).catch((error) => { - params.failCallback(error); - }) - // getUsersDataPromise.then((response) => { - // params.successCallback(response.accountdetailsList, 50); - // }).catch((error) => { - // console.log(error); - // }) - - /** + // this.fakeServer.getUsersData(successCallback, request); + // console.log("request", request) + + let getUsersDataPromise = getAllAccountsGrpcRequest(startRow, endRow) + let getCountOfAllAccountsPromise = getCountOfAllAccountsGrpcRequest() + + Promise.all([getUsersDataPromise, getCountOfAllAccountsPromise]).then((data) => { + data[0].accountdetailsList.map((item, index) => { + item.accessstatus = item.accessstatus === undefined || item.accessstatus === 0 ? accountStatusVariations[1] : accountStatusVariations[item.accessstatus] + let roleListItem = item.rolesList.map((roleItem) => accountRoleVariations[roleItem]) + item.rolesList = roleListItem + + let timestampCreationMock = 1542206425999 + index * 100000000 + let timestampCreated = moment(timestampCreationMock) // this is the format, which will be taken by from the endpoint + let creationDate = `${timestampCreated.day() + 1}/${timestampCreated.month() + 1}/${timestampCreated.year()}` + let creationTime = `${timestampCreated.format('hh:mm A')}` + item.creationdate = [creationDate, creationTime] + + let timestampUpdatedMock = 1542286425999 + index * 100000000 + let timestampUpdated = moment(timestampUpdatedMock) // this is the format, which will be taken by from the endpoint + let updatedDate = `${timestampUpdated.day() + 1}/${timestampUpdated.month() + 1}/${timestampUpdated.year()}` + let updatedTime = `${timestampUpdated.format('hh:mm A')}` + item.updateddate = [updatedDate, updatedTime] + + return item + }) + + params.successCallback(data[0].accountdetailsList, data[1]) + }).catch((error) => { + params.failCallback(error) + }) + // getUsersDataPromise.then((response) => { + // params.successCallback(response.accountdetailsList, 50); + // }).catch((error) => { + // console.log(error); + // }) + + /** * @param {array} resultForGrid * @param {number} lastRow */ - // function successCallback(resultForGrid, lastRow) { - // params.successCallback(resultForGrid, lastRow); - // console.log("resultForGrid", resultForGrid) - // console.log("lastRow", lastRow) - // } -}; - -function FakeServer(allData){ - this.initData(allData); + // function successCallback(resultForGrid, lastRow) { + // params.successCallback(resultForGrid, lastRow); + // console.log("resultForGrid", resultForGrid) + // console.log("lastRow", lastRow) + // } } -FakeServer.prototype.initData = function(allData) { - this.usersData = allData; - - this.usersData.sort(function(a,b) { return a.accountId < b.accountId ? -1 : 1; }); -}; - -FakeServer.prototype.sortList = function(data, sortModel) { - var sortPresent = sortModel && sortModel.length > 0; - - if (!sortPresent) { - - return data; - } - // do an in memory sort of the data, across all the fields - var resultOfSort = data.slice(); - resultOfSort.sort(function(a,b) { - for (var k = 0; k valueB) { - return sortDirection; - } else { - return sortDirection * -1; - } - } - // no filters found a difference - return 0; - }); - return resultOfSort; -}; +function FakeServer (allData) { + this.initData(allData) +} + +FakeServer.prototype.initData = function (allData) { + this.usersData = allData + + this.usersData.sort(function (a, b) { return a.accountId < b.accountId ? -1 : 1 }) +} + +FakeServer.prototype.sortList = function (data, sortModel) { + var sortPresent = sortModel && sortModel.length > 0 + + if (!sortPresent) { + return data + } + // do an in memory sort of the data, across all the fields + var resultOfSort = data.slice() + resultOfSort.sort(function (a, b) { + for (var k = 0; k < sortModel.length; k++) { + var sortColModel = sortModel[k] + var valueA = a[sortColModel.colId] + var valueB = b[sortColModel.colId] + // this filter didn't find a difference, move onto the next one + if (valueA === valueB) { + continue + } + var sortDirection = sortColModel.sort === 'asc' ? 1 : -1 + if (valueA > valueB) { + return sortDirection + } else { + return sortDirection * -1 + } + } + + // no filters found a difference + return 0 + }) + + return resultOfSort +} // when looking for the top list, always return back the full list of countries -FakeServer.prototype.getUsersData = function(callback, request) { - - var sortModel = request.sortModel; - var filterModel = request.filterModel; - - var lastRow = this.getLastRowResult(this.usersData, request); - var rowData = this.getBlockFromResult(this.usersData, request); - - rowData = this.sortList(rowData, sortModel); - rowData = this.filterList(rowData, filterModel); - - // put the response into a timeout, so it looks like an async call from a server - setTimeout( function() { - callback(rowData, lastRow); // second param mimicks that now rows were received mimicking that no rows were received - }, 1000); -}; - -FakeServer.prototype.getBlockFromResult = function(data, request) { - - return data.slice(request.startRow, request.endRow); - -}; - -FakeServer.prototype.getLastRowResult = function(result, request) { - // we mimic finding the last row. if the request exceeds the length of the - // list, then we assume the last row is found. this would be similar to hitting - // a database, where we have gone past the last row. - var lastRowFound = (result.length <= request.endRow); - var lastRow = lastRowFound ? result.length : null; - return lastRow; -}; - -FakeServer.prototype.filterList = function(data, filterModel) { - var filterPresent = filterModel && Object.keys(filterModel).length > 0; - if (!filterPresent) { - return data; - } - var resultOfFilter = []; - for (var i = 0; i=0) { - resultOfFilter.push(item); - } - } - - } - // console.log(resultOfFilter) - return resultOfFilter; -}; +FakeServer.prototype.getUsersData = function (callback, request) { + var sortModel = request.sortModel + var filterModel = request.filterModel + + var lastRow = this.getLastRowResult(this.usersData, request) + var rowData = this.getBlockFromResult(this.usersData, request) + + rowData = this.sortList(rowData, sortModel) + rowData = this.filterList(rowData, filterModel) + + // put the response into a timeout, so it looks like an async call from a server + setTimeout(function () { + callback(rowData, lastRow) // second param mimicks that now rows were received mimicking that no rows were received + }, 1000) +} + +FakeServer.prototype.getBlockFromResult = function (data, request) { + return data.slice(request.startRow, request.endRow) +} + +FakeServer.prototype.getLastRowResult = function (result, request) { + // we mimic finding the last row. if the request exceeds the length of the + // list, then we assume the last row is found. this would be similar to hitting + // a database, where we have gone past the last row. + var lastRowFound = (result.length <= request.endRow) + var lastRow = lastRowFound ? result.length : null + + return lastRow +} + +FakeServer.prototype.filterList = function (data, filterModel) { + var filterPresent = filterModel && Object.keys(filterModel).length > 0 + if (!filterPresent) { + return data + } + var resultOfFilter = [] + for (var i = 0; i < data.length; i++) { + var item = data[i] + if (filterModel.accountId.filter) { + // console.log(item.accountId) + // console.log(filterModel.accountId.filter) + if (item.accountId.indexOf(filterModel.accountId.filter) >= 0) { + resultOfFilter.push(item) + } + } + } + + // console.log(resultOfFilter) + return resultOfFilter +} // var fakeserverInstance = new FakeServer(users); -export const dataSource = new ServerSideDatasource(); \ No newline at end of file +export const dataSource = new ServerSideDatasource() diff --git a/yarn.lock b/yarn.lock index f59968e..9e8c9fc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2299,6 +2299,15 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: safe-buffer "^5.0.1" sha.js "^2.4.8" +create-react-class@^15.5.2: + version "15.6.3" + resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.3.tgz#2d73237fb3f970ae6ebe011a9e66f46dbca80036" + integrity sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg== + dependencies: + fbjs "^0.8.9" + loose-envify "^1.3.1" + object-assign "^4.1.1" + cross-spawn@6.0.5, cross-spawn@^6.0.0, cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" @@ -3456,7 +3465,7 @@ fb-watchman@^2.0.0: dependencies: bser "^2.0.0" -fbjs@^0.8.1, fbjs@^0.8.16: +fbjs@^0.8.1, fbjs@^0.8.16, fbjs@^0.8.9: version "0.8.17" resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd" dependencies: @@ -6042,6 +6051,11 @@ object-assign@4.1.1, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^ version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" +object-assign@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" + integrity sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I= + object-copy@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" @@ -7113,7 +7127,7 @@ prop-types@15.6.0: loose-envify "^1.3.1" object-assign "^4.1.1" -prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2: +prop-types@^15.5.7, prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2: version "15.6.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102" dependencies: @@ -7274,6 +7288,16 @@ react-app-polyfill@^0.1.3: raf "3.4.0" whatwg-fetch "3.0.0" +react-datetime@^2.16.2: + version "2.16.2" + resolved "https://registry.yarnpkg.com/react-datetime/-/react-datetime-2.16.2.tgz#d5d41fe3f6f3fa8fa1b068f2fae75cec25e1bb39" + integrity sha512-QjQIixhmsbAQZSe2nlliTWAqdmckov3+rEL/s/uxw9LcM/V7vaFX0DIVRHksi1IsIqUG2AgM/4EX+aMZwXMMGg== + dependencies: + create-react-class "^15.5.2" + object-assign "^3.0.0" + prop-types "^15.5.7" + react-onclickoutside "^6.5.0" + react-dev-utils@^6.1.1: version "6.1.1" resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-6.1.1.tgz#a07e3e8923c4609d9f27e5af5207e3ca20724895" @@ -7332,6 +7356,11 @@ react-lifecycles-compat@^3.0.0, react-lifecycles-compat@^3.0.2, react-lifecycles version "3.0.4" resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" +react-onclickoutside@^6.5.0: + version "6.7.1" + resolved "https://registry.yarnpkg.com/react-onclickoutside/-/react-onclickoutside-6.7.1.tgz#6a5b5b8b4eae6b776259712c89c8a2b36b17be93" + integrity sha512-p84kBqGaMoa7VYT0vZ/aOYRfJB+gw34yjpda1Z5KeLflg70HipZOT+MXQenEhdkPAABuE2Astq4zEPdMqUQxcg== + react-redux@^5.0.7: version "5.1.0" resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-5.1.0.tgz#948b1e2686473d1999092bcfb32d0dc43d33f667" -- GitLab From 3651b31b5355aac00bf86c405aa3050953479dab Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Tue, 20 Nov 2018 14:02:40 +0200 Subject: [PATCH 207/249] Minor changes --- .../edit_user/generic_data/generic_data.css | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/src/components/edit_user/generic_data/generic_data.css b/src/components/edit_user/generic_data/generic_data.css index 44921d3..b6c0ffb 100644 --- a/src/components/edit_user/generic_data/generic_data.css +++ b/src/components/edit_user/generic_data/generic_data.css @@ -96,4 +96,46 @@ } .icon-filter { filter: invert(0.30); +} +.user-birthday { + position: relative; +} +.user-birthday input { + display: block; + width: 100%; + + margin: 0; + padding: 6px 0 7px; + font: inherit; + border: 0; + min-width: 0; + background: none; +} +.user-birthday:before { + position: absolute; + content: "\00a0"; + + left: 0; + right: 0; + bottom: 0; + + transition: border-bottom-color 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; + border-bottom: 1px solid rgba(0, 0, 0, 0.42); + pointer-events: none; +} +.user-birthday:hover:before { + border-bottom: 2px solid rgba(0, 0, 0, 0.87); +} +.user-birthday:after { + position: absolute; + content: ""; + + left: 0; + right: 0; + bottom: 0; + + transform: scaleX(0); + transition: transform 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms; + border-bottom: 2px solid #303f9f; + pointer-events: none; } \ No newline at end of file -- GitLab From 0f757534576e69d47b0dffe7fb10027f76f5c077 Mon Sep 17 00:00:00 2001 From: Vasil Nikolov Date: Tue, 20 Nov 2018 14:05:17 +0200 Subject: [PATCH 208/249] date picker no data case --- .../personal_info/personal_info.js | 25 ++++++++----------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/src/components/edit_user/generic_data/personal_info/personal_info.js b/src/components/edit_user/generic_data/personal_info/personal_info.js index 3c5df86..def2c7f 100644 --- a/src/components/edit_user/generic_data/personal_info/personal_info.js +++ b/src/components/edit_user/generic_data/personal_info/personal_info.js @@ -1,3 +1,4 @@ +import { DATE_FORMAT } from 'constants/formats' import React, { Fragment } from 'react' import { withStyles } from '@material-ui/core/styles' import classNames from 'classnames' @@ -6,7 +7,6 @@ import PropTypes from 'prop-types' import DateTime from 'react-datetime' import { formatDate } from 'utils/helpers/format_date' -import { DATE_FORMAT } from 'constants/formats' import 'react-datetime/css/react-datetime.css' @@ -78,19 +78,16 @@ const PersonalInfo = (props) => {
- Edited - { - personalInfo.birthday !== '' - ? - : null - } + Edited +
-- GitLab From 7a43d5b66cbe7753b1f8d56ac4f8cd1b5a279e86 Mon Sep 17 00:00:00 2001 From: Vasil Nikolov Date: Tue, 20 Nov 2018 14:05:53 +0200 Subject: [PATCH 209/249] eslint fix --- src/components/edit_user/generic_data/index.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/components/edit_user/generic_data/index.js b/src/components/edit_user/generic_data/index.js index 8e5f0a3..dc1ebad 100644 --- a/src/components/edit_user/generic_data/index.js +++ b/src/components/edit_user/generic_data/index.js @@ -7,14 +7,13 @@ import Card from '@material-ui/core/Card' import CardContent from '@material-ui/core/CardContent' import Typography from '@material-ui/core/Typography' +import { formatDate } from 'utils/helpers/format_date' import StaticControl from './contact_info/static_control' import PersonalInfo from './personal_info/personal_info' import AccessStatus from './access_status/access_status' import UserAvatar from './edit_user_avatar/edit_user_avatar' import DeleteProfile from './delete_profile/delete_profile' -import { formatDate } from 'utils/helpers/format_date' - const styles = theme => ({}) class genericUserData extends Component { -- GitLab From 40e378c326af09ad14bffba7ba46a006a2a81ae4 Mon Sep 17 00:00:00 2001 From: Vasil Nikolov Date: Tue, 20 Nov 2018 17:31:46 +0200 Subject: [PATCH 210/249] fixed isupdated, fixed modals, fixed controls, fix edit --- .../contact_info_control_options.js | 4 +- .../modal_content/delete_modal.js | 16 +- .../contact_info/modal_content/edit_modal.js | 114 +++++----- .../contact_info/static_control.js | 8 +- .../edit_user_avatar/edit_user_avatar.js | 2 +- .../edit_user/generic_data/index.js | 204 +++++++++++++----- .../generic_data/user_profile_model.js | 120 ----------- src/components/edit_user/index.js | 78 ++----- .../edit_user/profile_tools/index.js | 4 +- src/components/edit_user/update_data/index.js | 106 ++++----- 10 files changed, 307 insertions(+), 349 deletions(-) delete mode 100644 src/components/edit_user/generic_data/user_profile_model.js diff --git a/src/components/edit_user/generic_data/contact_info/contact_info_control_options.js b/src/components/edit_user/generic_data/contact_info/contact_info_control_options.js index 28b6caf..c9d8073 100644 --- a/src/components/edit_user/generic_data/contact_info/contact_info_control_options.js +++ b/src/components/edit_user/generic_data/contact_info/contact_info_control_options.js @@ -24,12 +24,12 @@ class ContactInfoControlOptions extends Component { onHandleDeleteContact = () => { this.handleClose() - // this.props.handleDeleteContact(this.props.inputType) + this.props.handleDeleteContact(this.props.inputType) } onHandleEditContact = () => { this.handleClose() - // this.props.handleEditContact(this.props.inputType, this.props.controlValue) + this.props.handleEditContact(this.props.infoKey, this.props.controlValue, this.props.inputType) } render () { diff --git a/src/components/edit_user/generic_data/contact_info/modal_content/delete_modal.js b/src/components/edit_user/generic_data/contact_info/modal_content/delete_modal.js index 403e0eb..533aa72 100644 --- a/src/components/edit_user/generic_data/contact_info/modal_content/delete_modal.js +++ b/src/components/edit_user/generic_data/contact_info/modal_content/delete_modal.js @@ -1,20 +1,20 @@ -import React from 'react'; -import { withStyles } from '@material-ui/core/styles'; -import Button from '@material-ui/core/Button'; +import React from 'react' +import { withStyles } from '@material-ui/core/styles' +import Button from '@material-ui/core/Button' const styles = {} const ContactInfoDeleteModal = (props) => { - const { handleModalConfirmedCancel, controlLabel, classes } = props + const { handleModalCancel, type, classes } = props - return ( + return (
-

Delete {controlLabel}

+

Delete {type}

-

Do you want to delete user's {controlLabel} from contact information?

+

Do you want to delete user's {type} from contact information?

- +
diff --git a/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js b/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js index 6a280e5..6e5c8dc 100644 --- a/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js +++ b/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js @@ -1,61 +1,79 @@ -import React from 'react'; -import { withStyles } from '@material-ui/core/styles'; -import Button from '@material-ui/core/Button'; +import React, { PureComponent } from 'react' +import { withStyles } from '@material-ui/core/styles' +import Button from '@material-ui/core/Button' -import Grid from '@material-ui/core/Grid'; -import Email from '@material-ui/icons/Email'; -import People from '@material-ui/icons/People'; -import TextField from '@material-ui/core/TextField'; +import Grid from '@material-ui/core/Grid' +import Email from '@material-ui/icons/Email' +import People from '@material-ui/icons/People' +import TextField from '@material-ui/core/TextField' const styles = {} -const ContactInfoEditModal = (props) => { - const { handleModalEditProfileCancel, controlLabel, classes, controlValueEdit, onHandleChange } = props - - return ( -
-

Edit {controlLabel}

- { - controlLabel !== 'PHONE' && controlLabel && controlLabel !== '' - ?
- -
- - - {controlLabel !== 'EMAIL' && controlLabel !== 'PHONE' - ? - : - } - - - - - -
+class ContactInfoEditModal extends PureComponent { + constructor (props) { + super(props) -
- - -
+ let { value } = this.props + + this.state = { + value + } + } + + handleChange = (e) => { + this.setState({ value: e.target.value }) + } + + render () { + const { handleModalEditProfileCancel, type, classes, onSave } = this.props + + return ( +
+

Edit {type}

+ { + type !== 'PHONE' + ?
+ +
+ + + {type !== 'EMAIL' && type !== 'PHONE' + ? + : + } + + + + + +
-
- : controlLabel && controlLabel !== '' - ?
- +
+
- : null - } -
- ) + : type && type !== '' + ?
+
+ + +
+
+ : null + } +
+ ) + } } export default withStyles(styles)(ContactInfoEditModal) diff --git a/src/components/edit_user/generic_data/contact_info/static_control.js b/src/components/edit_user/generic_data/contact_info/static_control.js index 044741e..f39b4d2 100644 --- a/src/components/edit_user/generic_data/contact_info/static_control.js +++ b/src/components/edit_user/generic_data/contact_info/static_control.js @@ -37,9 +37,10 @@ const StaticControl = (props) => { endAdornment: ( ) }} @@ -63,6 +64,8 @@ const StaticControl = (props) => { } @@ -83,9 +86,10 @@ const StaticControl = (props) => { endAdornment: ( ) }} diff --git a/src/components/edit_user/generic_data/edit_user_avatar/edit_user_avatar.js b/src/components/edit_user/generic_data/edit_user_avatar/edit_user_avatar.js index 0d873e0..f0550f5 100644 --- a/src/components/edit_user/generic_data/edit_user_avatar/edit_user_avatar.js +++ b/src/components/edit_user/generic_data/edit_user_avatar/edit_user_avatar.js @@ -54,7 +54,7 @@ const UserAvatar = (props) => { UserAvatar.propTypes = { avatar: PropTypes.any, classes: PropTypes.object.isRequired, - modalAlertDeleteAvatar: PropTypes.func.isRequired + modalAlertDeleteAvatar: PropTypes.func } export default withStyles(styles)(UserAvatar) diff --git a/src/components/edit_user/generic_data/index.js b/src/components/edit_user/generic_data/index.js index dc1ebad..a43c20e 100644 --- a/src/components/edit_user/generic_data/index.js +++ b/src/components/edit_user/generic_data/index.js @@ -8,36 +8,78 @@ import CardContent from '@material-ui/core/CardContent' import Typography from '@material-ui/core/Typography' import { formatDate } from 'utils/helpers/format_date' +import Grid from '@material-ui/core/Grid/Grid' +import Modal from '../../shared/ui/modal/modal' import StaticControl from './contact_info/static_control' import PersonalInfo from './personal_info/personal_info' import AccessStatus from './access_status/access_status' import UserAvatar from './edit_user_avatar/edit_user_avatar' import DeleteProfile from './delete_profile/delete_profile' +import AvatarContentModal from './edit_user_avatar/delete_avatar_modal/avatar_modal' +import ContactInfoDeleteModal from './contact_info/modal_content/delete_modal' +import DeleteProfileModal from './delete_profile/delete_profile_modal' +import ContactInfoEditModal from './contact_info/modal_content/edit_modal' const styles = theme => ({}) class genericUserData extends Component { - state = { - contactInfo: this.props.user.contactsinfoList, - avatar: this.props.user.avatar, - accessStatus: this.props.user.accessstatus, - personalInfo: { - firstname: this.props.user.firstname, - lastname: this.props.user.lastname, - username: this.props.user.username, - birthday: this.props.user.birthday - } + constructor (props) { + super(props) + this.state = { + contactInfo: JSON.parse(JSON.stringify(this.props.user.contactsinfoList)), + avatar: this.props.user.avatar, + accessStatus: this.props.user.accessstatus, + personalInfo: { + firstname: this.props.user.firstname, + lastname: this.props.user.lastname, + username: this.props.user.username, + birthday: this.props.user.birthday + }, + modalState: { + showDeleteModal: false, + showEditModal: false, + showProfileDeleteModal: false, + key: null, + value: '', + type: '' + } + } } static propTypes = { user: PropTypes.object.isRequired, avatar: PropTypes.any, classes: PropTypes.object.isRequired, - modalAlertDeleteAvatar: PropTypes.func.isRequired, - handleDeleteContact: PropTypes.func.isRequired, - handleEditContact: PropTypes.func.isRequired, - handleDeleteProfile: PropTypes.func.isRequired + handleDeleteProfile: PropTypes.func.isRequired, + changed: PropTypes.func.isRequired + } + + detectChange = () => { + let { user } = this.props + + let result = [] + + for (let key in this.state.contactInfo) { + this.state.contactInfo[key].forEach((el, index) => { + result.push(Boolean(el.value === user.contactsinfoList[key][index].value)) + }) + } + + let contactInfoNotUpdated = result.every(currentValue => currentValue === true) + + if (!contactInfoNotUpdated || + this.state.avatar !== this.props.user.avatar || + this.state.accessStatus !== this.props.user.accessstatus || + this.state.personalInfo.firstname !== this.props.user.firstname || + this.state.personalInfo.lastname !== this.props.user.lastname || + this.state.personalInfo.username !== this.props.user.username || + this.state.personalInfo.birthday !== this.props.user.birthday + ) { + this.props.changed(true) + } else { + this.props.changed(false) + } } handleChange = (e, type) => { @@ -49,14 +91,60 @@ class genericUserData extends Component { } else { newCurrentUser.birthday = formatDate(e) } - this.setState({ [type]: newCurrentUser }) + this.setState({ [type]: newCurrentUser }, this.detectChange) break default: - this.setState({ [type]: e.target.value }) + this.setState({ [type]: e.target.value }, this.detectChange) break } } + handleEditModalSave = (value) => { + let contactInfo = { ...this.state.contactInfo } + + console.log(contactInfo[this.state.modalState.type]) + + contactInfo[this.state.modalState.type].forEach(el => { + if (el.key === this.state.modalState.key) { + el.value = value + } + }) + + this.setState({ contactInfo }, this.detectChange) + this.handleEditContact() + } + + handleDeleteContact = (type) => { + let newModalState = { ...this.state.modalState } + + if (this.state.modalState.showDeleteModal === true) { + newModalState.showDeleteModal = false + } else { + newModalState.showDeleteModal = true + newModalState.type = type + } + + this.setState({ modalState: newModalState }) + } + + handleEditContact = (key, value, type) => { + let newModalState = { ...this.state.modalState } + + if (this.state.modalState.showEditModal === true) { + newModalState.showEditModal = false + } else { + newModalState = { + ...newModalState, + showEditModal: true, + key, + value, + type + } + } + + this.setState({ modalState: newModalState }) + } + render () { /** * @const {array} selectedUser @@ -72,8 +160,8 @@ class genericUserData extends Component { * @const {Object} personalInfo */ - const { user, classes, modalAlertDeleteAvatar, handleDeleteContact, handleEditContact, handleDeleteProfile } = this.props - const { avatar, contactInfo, accessStatus, personalInfo } = this.state + const { user, classes, handleDeleteProfile } = this.props + const { avatar, contactInfo, accessStatus, personalInfo, modalState } = this.state let controls = [] @@ -83,9 +171,9 @@ class genericUserData extends Component { ) @@ -98,31 +186,27 @@ class genericUserData extends Component { - {user ? ( - -
+
- + - + - - - - + - this.handleChange(e, 'accessStatus')} + + + this.handleChange(e, 'accessStatus')} /> - - + + - Personal Information + Personal Information this.handleChange(e, 'personalInfo')} /> - - + + - Contact Information - {controls} + Contact Information + {controls} - - - - + + + + - -
+ + + {/* */} + {/* */} + {/* */} + + + + {/* */} + {/* */} + {/* */} + { + modalState.showEditModal + ? + + : null + } +
- ) : ''}
) } diff --git a/src/components/edit_user/generic_data/user_profile_model.js b/src/components/edit_user/generic_data/user_profile_model.js deleted file mode 100644 index d08b67f..0000000 --- a/src/components/edit_user/generic_data/user_profile_model.js +++ /dev/null @@ -1,120 +0,0 @@ -class UserProfileModel { - constructor (_firstName, _lastName, _userName, _accountStatus, _userBirthday, _rolesList) { - this._isUpdated = false - - this._firstName = _firstName - this._oldFirstName = _firstName - - this._lastName = _lastName - this._oldLastName = _lastName - - this._userName = _userName - this._oldUserName = _userName - - this._accountStatus = _accountStatus - this._oldAccountStatus = _accountStatus - - this._userBirthday = _userBirthday - this._oldUserBirthday = _userBirthday - - this._rolesList = _rolesList - this._oldrolesList = _rolesList - } - - /* - * First Name - */ - get firstName () { - return this._firstName - } - - set firstName (val) { - // this._oldFirstName = this._firstName; - this._firstName = val - this._isUpdated = true - } - - /* - * Last Name - */ - get lastName () { - return this._lastName - } - - set lastName (val) { - this._lastName = val - this._isUpdated = true - } - - /* - * Username - */ - get userName () { - return this._userName - } - - set userName (val) { - this._userName = val - this._isUpdated = true - } - - /* - * Account Status / Access Status - */ - get accountStatus () { - return this._accountStatus - } - - set accountStatus (val) { - this._accountStatus = val - this._isUpdated = true - } - - /* - * User Birthday - */ - get userBirthday () { - return this._userBirthday - } - - set userBirthday (val) { - let newBirthdayArray = val.split(/[-]/) - this._userBirthday = { - year: Number(newBirthdayArray[0]), - month: Number(newBirthdayArray[1]), - day: Number(newBirthdayArray[2]) - } - this._isUpdated = true - } - - get rolesList () { - return this._rolesList - } - - set rolesList (val) { - this._rolesList = val - this._isUpdated = true - } - - get isUpdated () { - if (!this._userBirthday || !this._firstName || !this._lastName || !this._accountStatus || !this._rolesList || !this._contactsinfoList) { - return false - } - - let _newBirthdayString = `${this._userBirthday.year}-${this._userBirthday.month}-${this._userBirthday.day}` - let _oldBirthdayString = `${this._oldUserBirthday.year}-${this._oldUserBirthday.month}-${this._oldUserBirthday.day}` - - if (this._firstName === this._oldFirstName && this._lastName === this._oldLastName && this._userName === this._oldUserName && - this._accountStatus === this._oldAccountStatus && _newBirthdayString === _oldBirthdayString && this._rolesList === this._oldrolesList) { - return false - } - - return this._isUpdated - } - - validateUserName () { - - } -} - -export default UserProfileModel diff --git a/src/components/edit_user/index.js b/src/components/edit_user/index.js index b626114..5e206c2 100644 --- a/src/components/edit_user/index.js +++ b/src/components/edit_user/index.js @@ -12,12 +12,6 @@ import GenericData from './generic_data' import ProfileTools from './profile_tools/index' // import TabsNavigation from './tabs_navigation/index' -import AvatarContentModal from './generic_data/edit_user_avatar/delete_avatar_modal/avatar_modal' -import ContactInfoDeleteModal from './generic_data/contact_info/modal_content/delete_modal' -import ContactInfoEditModal from './generic_data/contact_info/modal_content/edit_modal' -import DeleteProfileModal from './generic_data/delete_profile/delete_profile_modal' -import UserProfileModel from './generic_data/user_profile_model' - // import Categories from './categories'; // import AvailableData from './available_data'; // import UpdateData from './update_data'; @@ -26,21 +20,9 @@ import './edit_user.css' const styles = theme => ({}) class EditUser extends Component { - constructor (props) { - super(props) - - this.state = { - profileUserModel: new UserProfileModel(''), - controlsType: '', - // controlTypeEdit: '', - // controlValueEdit: '', - // valuesStates: true, - openModalDeleteContact: false, - openModalDeleteProfile: false, - openModalDeleteAvatar: false, - openModalEditContact: false - } - }; + state = { + isUpdated: false + } static propTypes = { match: PropTypes.object.isRequired, @@ -51,27 +33,21 @@ class EditUser extends Component { componentDidMount () { this.props.getSelectedUserId(this.props.match.params.id) - }; + } componentWillUnmount () { this.props.clearSelectedUserData() - }; - - handleAvatarAlertDelete = () => this.setState({ openModalDeleteAvatar: true }) - - handleContactInfoDelete = () => this.setState({ openModalDeleteContact: true }) - - handleContactInfoEdit = () => this.setState({ openModalEditContact: true }) - - handleDeleteProfilConfirmed = () => this.setState({ openModalDeleteProfile: true }) - - handleModalAvatarCancel = () => this.setState({ openModalDeleteAvatar: false }) + } - handleModalConfirmedCancel = () => this.setState({ openModalDeleteContact: false }) + saveChanges = (e) => { + let { saveUserData } = this.props - handleModalDeleteProfileCancel = () => this.setState({ openModalDeleteProfile: false }) + console.log(e) + } - handleModalEditProfileCancel = () => this.setState({ openModalEditContact: false }) + userDataChanged = (flag) => { + this.setState({ isUpdated: flag }) + } handleDeleteContact = (contactInfoType) => { // if (contactInfoType !== this.state.controlsType) { @@ -94,44 +70,20 @@ class EditUser extends Component { render () { const { selectedUser } = this.props - const { openModalDeleteContact, openModalDeleteProfile, openModalEditContact, openModalDeleteAvatar, - controlsType, controlValueEdit, controlTypeEdit, profileUserModel } = this.state + console.log(this.state.isUpdated) return ( - + {selectedUser.contactsinfoList - ? : '' + ? : '' } - - - - - - - - - - - - {/* */} {/* { */} diff --git a/src/components/edit_user/profile_tools/index.js b/src/components/edit_user/profile_tools/index.js index 25d809b..83f64bc 100644 --- a/src/components/edit_user/profile_tools/index.js +++ b/src/components/edit_user/profile_tools/index.js @@ -42,7 +42,7 @@ class ProfileTools extends Component { }; render () { - const { classes, isUpdatedFormControls } = this.props + const { classes, isUpdatedFormControls, saveChanges } = this.props return (
@@ -53,7 +53,7 @@ class ProfileTools extends Component { {' '}User Profile - + diff --git a/src/components/edit_user/update_data/index.js b/src/components/edit_user/update_data/index.js index 5d701b2..8163ec1 100644 --- a/src/components/edit_user/update_data/index.js +++ b/src/components/edit_user/update_data/index.js @@ -1,91 +1,91 @@ -import React, {Component} from 'react'; -import PropTypes from "prop-types"; +import React, { Component } from 'react' +import PropTypes from 'prop-types' -import TextField from "@material-ui/core/TextField"; -import Button from "@material-ui/core/Button"; -import Card from "@material-ui/core/Card"; -import CardContent from "@material-ui/core/CardContent"; +import TextField from '@material-ui/core/TextField' +import Button from '@material-ui/core/Button' +import Card from '@material-ui/core/Card' +import CardContent from '@material-ui/core/CardContent' -import { withStyles } from "@material-ui/core/styles"; +import { withStyles } from '@material-ui/core/styles' const styles = { - button: { - marginTop: "20px" + button: { + marginTop: '20px' - } -}; + } +} class UpdateData extends Component { - state = { - name: "" + name: '' }; onSubmitHandler = e => { - e.preventDefault(); + e.preventDefault() - const { name } = this.state; - const { selectedCategory } = this.props.match.params; + const { name } = this.state + const { selectedCategory } = this.props.match.params - const dataToChange = { - newValue: name, - category: selectedCategory - } + const dataToChange = { + newValue: name, + category: selectedCategory + } - e.currentTarget.reset(); + e.currentTarget.reset() - this.setState({ name: ""}); - this.props.updateUserDataCategoryX(dataToChange); + this.setState({ name: '' }) + this.props.updateUserDataCategoryX(dataToChange) }; handleChange = e => { - this.setState({ [e.currentTarget.name]: e.currentTarget.value }); + this.setState({ [e.currentTarget.name]: e.currentTarget.value }) }; isDisabled = () => { - const { name } = this.state; - return name === "" ? true : false; + const { name } = this.state + + return name === '' }; - render() { - /** + render () { + /** * @const {string} selectedCategory * @const {Func} updateUserDataCategoryX * @const {object} classes */ - const {classes } = this.props; + const { classes } = this.props - return ( -
+ return ( +
- - + + -
- - - +
+ + + -
-
+
+
-
- ); +
+ ) } } UpdateData.propTypes = { - classes: PropTypes.object.isRequired, - updateUserDataCategoryX: PropTypes.func.isRequired, - selectedCategory: PropTypes.string -}; + classes: PropTypes.object.isRequired, + updateUserDataCategoryX: PropTypes.func.isRequired, + selectedCategory: PropTypes.string +} -export default withStyles(styles)(UpdateData); \ No newline at end of file +export default withStyles(styles)(UpdateData) -- GitLab From f33304bfdf52810f55c8af017af846b7ef03462a Mon Sep 17 00:00:00 2001 From: Vasil Nikolov Date: Tue, 20 Nov 2018 17:32:17 +0200 Subject: [PATCH 211/249] removed log --- src/components/edit_user/generic_data/index.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/components/edit_user/generic_data/index.js b/src/components/edit_user/generic_data/index.js index a43c20e..e075751 100644 --- a/src/components/edit_user/generic_data/index.js +++ b/src/components/edit_user/generic_data/index.js @@ -102,8 +102,6 @@ class genericUserData extends Component { handleEditModalSave = (value) => { let contactInfo = { ...this.state.contactInfo } - console.log(contactInfo[this.state.modalState.type]) - contactInfo[this.state.modalState.type].forEach(el => { if (el.key === this.state.modalState.key) { el.value = value -- GitLab From 519aa5b87e045cc8ffb5c394db7661bdfe8d86ed Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Tue, 20 Nov 2018 18:27:53 +0200 Subject: [PATCH 212/249] NY-5493 --- .../edit_user/generic_data/generic_data.css | 2 - src/components/edit_user/index.js | 4 - .../edit_user/profile_tools/index.js | 6 +- src/components/shared/ui/modal/modal.js | 23 ++- yarn.lock | 166 ++---------------- 5 files changed, 32 insertions(+), 169 deletions(-) diff --git a/src/components/edit_user/generic_data/generic_data.css b/src/components/edit_user/generic_data/generic_data.css index b6c0ffb..4dd6d8a 100644 --- a/src/components/edit_user/generic_data/generic_data.css +++ b/src/components/edit_user/generic_data/generic_data.css @@ -6,8 +6,6 @@ -moz-overflow-scrolling: touch; -ms-overflow-scrolling: touch; overflow-scrolling: touch; - - transform: translate(0,0); } .username-wrapper .MuiPaper-rounded-119 { border-radius: 0; diff --git a/src/components/edit_user/index.js b/src/components/edit_user/index.js index 5e206c2..c8727ce 100644 --- a/src/components/edit_user/index.js +++ b/src/components/edit_user/index.js @@ -41,8 +41,6 @@ class EditUser extends Component { saveChanges = (e) => { let { saveUserData } = this.props - - console.log(e) } userDataChanged = (flag) => { @@ -70,8 +68,6 @@ class EditUser extends Component { render () { const { selectedUser } = this.props - console.log(this.state.isUpdated) - return ( diff --git a/src/components/edit_user/profile_tools/index.js b/src/components/edit_user/profile_tools/index.js index 83f64bc..0394b7f 100644 --- a/src/components/edit_user/profile_tools/index.js +++ b/src/components/edit_user/profile_tools/index.js @@ -42,7 +42,7 @@ class ProfileTools extends Component { }; render () { - const { classes, isUpdatedFormControls, saveChanges } = this.props + const { classes, isUpdated, saveChanges } = this.props return (
@@ -53,13 +53,13 @@ class ProfileTools extends Component { {' '}User Profile - +
- + { ({ onConfirm, onCancel }) => ( diff --git a/src/components/shared/ui/modal/modal.js b/src/components/shared/ui/modal/modal.js index 9a6c4dd..56b4b1f 100644 --- a/src/components/shared/ui/modal/modal.js +++ b/src/components/shared/ui/modal/modal.js @@ -1,16 +1,15 @@ -import React, { Component, Fragment } from 'react'; -import Backdrop from '../back_drop/back_drop'; -import PropTypes from "prop-types"; -import './modal.css'; +import React, { Component, Fragment } from 'react' +import PropTypes from 'prop-types' +import Backdrop from '../back_drop/back_drop' +import './modal.css' class Modal extends Component { - - shouldComponentUpdate(nextProps, nextState) { - return nextProps.show !== this.props.show || nextProps.children !== this.props.children; + shouldComponentUpdate (nextProps, nextState) { + return nextProps.show !== this.props.show || nextProps.children !== this.props.children }; - render() { - const { show, modalClosed, className } = this.props; + render () { + const { show, modalClosed, className } = this.props return ( @@ -29,7 +28,7 @@ class Modal extends Component { } Modal.propTypes = { - modalClosed: PropTypes.func -}; + modalClosed: PropTypes.func +} -export default Modal; \ No newline at end of file +export default Modal \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 9e8c9fc..eb6ad79 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8,7 +8,7 @@ dependencies: "@babel/highlight" "^7.0.0" -"@babel/core@7.1.0": +"@babel/core@7.1.0", "@babel/core@^7.0.1": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.1.0.tgz#08958f1371179f62df6966d8a614003d11faeb04" dependencies: @@ -27,25 +27,6 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/core@^7.0.1": - version "7.1.5" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.1.5.tgz#abb32d7aa247a91756469e788998db6a72b93090" - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.1.5" - "@babel/helpers" "^7.1.5" - "@babel/parser" "^7.1.5" - "@babel/template" "^7.1.2" - "@babel/traverse" "^7.1.5" - "@babel/types" "^7.1.5" - convert-source-map "^1.1.0" - debug "^3.1.0" - json5 "^0.5.0" - lodash "^4.17.10" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - "@babel/generator@^7.0.0", "@babel/generator@^7.1.5": version "7.1.5" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.1.5.tgz#615f064d13d95f8f9157c7261f68eddf32ec15b3" @@ -199,7 +180,7 @@ "@babel/traverse" "^7.1.0" "@babel/types" "^7.0.0" -"@babel/helpers@^7.1.0", "@babel/helpers@^7.1.5": +"@babel/helpers@^7.1.0": version "7.1.5" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.1.5.tgz#68bfc1895d685f2b8f1995e788dbfe1f6ccb1996" dependencies: @@ -382,18 +363,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-destructuring@7.0.0": +"@babel/plugin-transform-destructuring@7.0.0", "@babel/plugin-transform-destructuring@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.0.0.tgz#68e911e1935dda2f06b6ccbbf184ffb024e9d43a" dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-destructuring@^7.0.0": - version "7.1.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.1.3.tgz#e69ff50ca01fac6cb72863c544e516c2b193012f" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-transform-dotall-regex@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.0.0.tgz#73a24da69bc3c370251f43a3d048198546115e58" @@ -1009,7 +984,7 @@ acorn-dynamic-import@^3.0.0: dependencies: acorn "^5.0.0" -acorn-globals@^4.1.0, acorn-globals@^4.3.0: +acorn-globals@^4.1.0: version "4.3.0" resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.0.tgz#e3b6f8da3c1552a95ae627571f7dd6923bb54103" dependencies: @@ -1067,16 +1042,7 @@ ajv@^5.3.0: fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.3.0" -ajv@^6.0.1: - version "6.5.4" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.5.4.tgz#247d5274110db653706b550fcc2b797ca28cfc59" - dependencies: - fast-deep-equal "^2.0.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ajv@^6.1.0, ajv@^6.5.3: +ajv@^6.0.1, ajv@^6.1.0, ajv@^6.5.3: version "6.5.5" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.5.5.tgz#cf97cdade71c6399a92c6d6c4177381291b781a1" dependencies: @@ -2302,7 +2268,6 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: create-react-class@^15.5.2: version "15.6.3" resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.3.tgz#2d73237fb3f970ae6ebe011a9e66f46dbca80036" - integrity sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg== dependencies: fbjs "^0.8.9" loose-envify "^1.3.1" @@ -2512,11 +2477,11 @@ csso@^3.5.0: dependencies: css-tree "1.0.0-alpha.29" -cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0", cssom@^0.3.4: +cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": version "0.3.4" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.4.tgz#8cd52e8a3acfd68d3aed38ee0a640177d2f9d797" -cssstyle@^1.0.0, cssstyle@^1.1.1: +cssstyle@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.1.1.tgz#18b038a9c44d65f7a8e428a653b9f6fe42faf5fb" dependencies: @@ -2540,7 +2505,7 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" -data-urls@^1.0.0, data-urls@^1.0.1: +data-urls@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" dependencies: @@ -2999,7 +2964,7 @@ escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1 version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" -escodegen@^1.11.0, escodegen@^1.9.1: +escodegen@^1.9.1: version "1.11.0" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.11.0.tgz#b27a9389481d5bfd5bec76f7bb1eb3f8f4556589" dependencies: @@ -3013,26 +2978,22 @@ escodegen@^1.11.0, escodegen@^1.9.1: eslint-config-react-app@^3.0.5: version "3.0.5" resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-3.0.5.tgz#d199088ab486d7ccc56d40dedcb1482b01934fb2" - integrity sha512-GjPuy0pbaCkl4+9wm8p0xpl/x/AGFy3wKuju3WNVefDNDDu8T6Ap1OFMDDJbYnOAI+4jfyAE3VT06lAYcJVpdw== dependencies: confusing-browser-globals "^1.0.5" eslint-config-standard-jsx@^6.0.1: version "6.0.2" resolved "https://registry.yarnpkg.com/eslint-config-standard-jsx/-/eslint-config-standard-jsx-6.0.2.tgz#90c9aa16ac2c4f8970c13fc7efc608bacd02da70" - integrity sha512-D+YWAoXw+2GIdbMBRAzWwr1ZtvnSf4n4yL0gKGg7ShUOGXkSOLerI17K4F6LdQMJPNMoWYqepzQD/fKY+tXNSg== eslint-config-standard-react@^7.0.2: version "7.0.2" resolved "https://registry.yarnpkg.com/eslint-config-standard-react/-/eslint-config-standard-react-7.0.2.tgz#80b51a0e0c371ef987679ee134768457a5b6db92" - integrity sha512-Zv/vubIfrwx4IbRXAggRjaswLXKdfFeuGfN365cVTaRmfpAy/7dIxMvJRZkUT99zEx8FOjTXL0KC4psfDjK/+w== dependencies: eslint-config-standard-jsx "^6.0.1" eslint-config-standard@^12.0.0: version "12.0.0" resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-12.0.0.tgz#638b4c65db0bd5a41319f96bba1f15ddad2107d9" - integrity sha512-COUz8FnXhqFitYj4DTqHzidjIL/t4mumGZto5c7DrBpvWoie+Sn3P4sLEzUGeYhRElWuFEf8K1S1EfvD1vixCQ== eslint-import-resolver-node@^0.3.1: version "0.3.2" @@ -3061,7 +3022,6 @@ eslint-module-utils@^2.2.0: eslint-plugin-es@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-1.3.2.tgz#6d2e94ed40db3b3d92a0eb55c7c06e3a7adbb3db" - integrity sha512-xrdbConViY20DhGrt9FwjhDo4fr/9Yus2pYf0xJsdJaCcUzMq7+pAoNH7kSXF6V08bRHMpgDWclYbcr/Sn3hNg== dependencies: eslint-utils "^1.3.0" regexpp "^2.0.1" @@ -3103,7 +3063,6 @@ eslint-plugin-jsx-a11y@6.1.2: eslint-plugin-node@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-8.0.0.tgz#fb9e8911f4543514f154bb6a5924b599aa645568" - integrity sha512-Y+ln8iQ52scz9+rSPnSWRaAxeWaoJZ4wIveDR0vLHkuSZGe44Vk1J4HX7WvEP5Cm+iXPE8ixo7OM7gAO3/OKpQ== dependencies: eslint-plugin-es "^1.3.1" eslint-utils "^1.3.1" @@ -3115,7 +3074,6 @@ eslint-plugin-node@^8.0.0: eslint-plugin-promise@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.0.1.tgz#2d074b653f35a23d1ba89d8e976a985117d1c6a2" - integrity sha512-Si16O0+Hqz1gDHsys6RtFRrW7cCTB6P7p3OJmKp3Y3dxpQE2qwOA7d3xnV+0mBmrPoi0RBnxlCKvqu70te6wjg== eslint-plugin-react@7.11.1: version "7.11.1" @@ -3130,7 +3088,6 @@ eslint-plugin-react@7.11.1: eslint-plugin-standard@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.0.0.tgz#f845b45109c99cd90e77796940a344546c8f6b5c" - integrity sha512-OwxJkR6TQiYMmt1EsNRMe5qG3GsbjlcOhbGUBY4LtavF9DsLaTcoR+j2Tdjqi23oUwKNUqX7qcn5fPStafMdlA== eslint-scope@3.7.1: version "3.7.1" @@ -3686,7 +3643,7 @@ from2@^2.1.0: inherits "^2.0.1" readable-stream "^2.0.0" -fs-extra@7.0.0: +fs-extra@7.0.0, fs-extra@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.0.tgz#8cc3f47ce07ef7b3593a11b9fb245f7e34c041d6" dependencies: @@ -3702,14 +3659,6 @@ fs-extra@^4.0.2: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - fs-minipass@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" @@ -4284,7 +4233,6 @@ ignore@^4.0.6: ignore@^5.0.2: version "5.0.4" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.0.4.tgz#33168af4a21e99b00c5d41cbadb6a6cb49903a45" - integrity sha512-WLsTMEhsQuXpCiG173+f3aymI43SXa+fB1rSfbzyP4GkPP+ZFVuO0/3sFUGNBtifisPeDcl/uD/Y2NxZ7xFq4g== immer@1.7.2: version "1.7.2" @@ -5129,38 +5077,7 @@ jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" -jsdom@>=11.0.0: - version "13.0.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-13.0.0.tgz#f1df2411b714a4e08d1bdc343c0a0889c688210f" - dependencies: - abab "^2.0.0" - acorn "^6.0.2" - acorn-globals "^4.3.0" - array-equal "^1.0.0" - cssom "^0.3.4" - cssstyle "^1.1.1" - data-urls "^1.0.1" - domexception "^1.0.1" - escodegen "^1.11.0" - html-encoding-sniffer "^1.0.2" - nwsapi "^2.0.9" - parse5 "5.1.0" - pn "^1.1.0" - request "^2.88.0" - request-promise-native "^1.0.5" - saxes "^3.1.3" - symbol-tree "^3.2.2" - tough-cookie "^2.4.3" - w3c-hr-time "^1.0.1" - w3c-xmlserializer "^1.0.0" - webidl-conversions "^4.0.2" - whatwg-encoding "^1.0.5" - whatwg-mimetype "^2.2.0" - whatwg-url "^7.0.0" - ws "^6.1.0" - xml-name-validator "^3.0.0" - -jsdom@^11.5.1: +jsdom@>=11.0.0, jsdom@^11.5.1: version "11.12.0" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8" dependencies: @@ -6039,7 +5956,7 @@ number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" -nwsapi@^2.0.7, nwsapi@^2.0.9: +nwsapi@^2.0.7: version "2.0.9" resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.0.9.tgz#77ac0cdfdcad52b6a1151a84e73254edc33ed016" @@ -6054,7 +5971,6 @@ object-assign@4.1.1, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^ object-assign@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" - integrity sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I= object-copy@^0.1.0: version "0.1.0" @@ -6163,18 +6079,12 @@ onetime@^2.0.0: dependencies: mimic-fn "^1.0.0" -opn@5.4.0: +opn@5.4.0, opn@^5.1.0: version "5.4.0" resolved "https://registry.yarnpkg.com/opn/-/opn-5.4.0.tgz#cb545e7aab78562beb11aa3bfabc7042e1761035" dependencies: is-wsl "^1.1.0" -opn@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/opn/-/opn-5.2.0.tgz#71fdf934d6827d676cecbea1531f95d354641225" - dependencies: - is-wsl "^1.1.0" - optimist@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" @@ -6347,10 +6257,6 @@ parse5@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" -parse5@5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2" - parse5@^3.0.1: version "3.0.3" resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c" @@ -7291,7 +7197,6 @@ react-app-polyfill@^0.1.3: react-datetime@^2.16.2: version "2.16.2" resolved "https://registry.yarnpkg.com/react-datetime/-/react-datetime-2.16.2.tgz#d5d41fe3f6f3fa8fa1b068f2fae75cec25e1bb39" - integrity sha512-QjQIixhmsbAQZSe2nlliTWAqdmckov3+rEL/s/uxw9LcM/V7vaFX0DIVRHksi1IsIqUG2AgM/4EX+aMZwXMMGg== dependencies: create-react-class "^15.5.2" object-assign "^3.0.0" @@ -7359,7 +7264,6 @@ react-lifecycles-compat@^3.0.0, react-lifecycles-compat@^3.0.2, react-lifecycles react-onclickoutside@^6.5.0: version "6.7.1" resolved "https://registry.yarnpkg.com/react-onclickoutside/-/react-onclickoutside-6.7.1.tgz#6a5b5b8b4eae6b776259712c89c8a2b36b17be93" - integrity sha512-p84kBqGaMoa7VYT0vZ/aOYRfJB+gw34yjpda1Z5KeLflg70HipZOT+MXQenEhdkPAABuE2Astq4zEPdMqUQxcg== react-redux@^5.0.7: version "5.1.0" @@ -7729,7 +7633,7 @@ request-promise-native@^1.0.5: stealthy-require "^1.1.0" tough-cookie ">=2.3.3" -request@^2.87.0, request@^2.88.0: +request@^2.87.0: version "2.88.0" resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" dependencies: @@ -7810,18 +7714,12 @@ resolve@1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" -resolve@1.8.1, resolve@^1.6.0, resolve@^1.8.1: +resolve@1.8.1, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.6.0, resolve@^1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" dependencies: path-parse "^1.0.5" -resolve@^1.3.2, resolve@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.6.0.tgz#0fbd21278b27b4004481c395349e7aba60a9ff5c" - dependencies: - path-parse "^1.0.5" - restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" @@ -7927,12 +7825,6 @@ sax@^1.2.4, sax@~1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" -saxes@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/saxes/-/saxes-3.1.3.tgz#334ab3b802a465ccda96fff9bdefbd505546ffa8" - dependencies: - xmlchars "^1.3.1" - scheduler@^0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.10.0.tgz#7988de90fe7edccc774ea175a783e69c40c521e1" @@ -8617,7 +8509,7 @@ topo@2.x.x: dependencies: hoek "4.x.x" -tough-cookie@>=2.3.3, tough-cookie@^2.3.4, tough-cookie@^2.4.3, tough-cookie@~2.4.3: +tough-cookie@>=2.3.3, tough-cookie@^2.3.4, tough-cookie@~2.4.3: version "2.4.3" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" dependencies: @@ -8905,14 +8797,6 @@ w3c-hr-time@^1.0.1: dependencies: browser-process-hrtime "^0.1.2" -w3c-xmlserializer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-1.0.0.tgz#d23e20de595b892056f20a359fc2622908d48695" - dependencies: - domexception "^1.0.1" - webidl-conversions "^4.0.2" - xml-name-validator "^3.0.0" - walker@~1.0.5: version "1.0.7" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" @@ -9060,20 +8944,16 @@ websocket-extensions@>=0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" -whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3, whatwg-encoding@^1.0.5: +whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3: version "1.0.5" resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" dependencies: iconv-lite "0.4.24" -whatwg-fetch@3.0.0: +whatwg-fetch@3.0.0, whatwg-fetch@>=0.10.0: version "3.0.0" resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb" -whatwg-fetch@>=0.10.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" - whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.2.0.tgz#a3d58ef10b76009b042d03e25591ece89b88d171" @@ -9267,20 +9147,10 @@ ws@^5.2.0: dependencies: async-limiter "~1.0.0" -ws@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.0.tgz#119a9dbf92c54e190ec18d10e871d55c95cf9373" - dependencies: - async-limiter "~1.0.0" - xml-name-validator@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" -xmlchars@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-1.3.1.tgz#1dda035f833dbb4f86a0c28eaa6ca769214793cf" - xregexp@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.0.0.tgz#e698189de49dd2a18cc5687b05e17c8e43943020" -- GitLab From 1bbb1d469acde402e3b55d2e71c1b1575cbd723c Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Wed, 21 Nov 2018 10:59:08 +0200 Subject: [PATCH 213/249] NY-5496 --- .../edit_user/available_data/index.js | 45 ------ src/components/edit_user/categories/index.js | 64 --------- .../modal_content/delete_modal.js | 1 + .../delete_profile/delete_profile_modal.js | 48 +++---- .../delete_avatar_modal/avatar_modal.js | 36 ++--- .../edit_user_avatar/edit_user_avatar.js | 8 +- .../{generic_data.css => index.css} | 0 .../edit_user/generic_data/index.js | 76 ++++++---- .../edit_user/{edit_user.css => index.css} | 0 src/components/edit_user/index.js | 59 +++----- .../edit_user/tabs_navigation/index.js | 130 ++++++++---------- .../tabs_navigation/manage_user/index.js | 108 +++++++-------- src/components/edit_user/update_data/index.js | 91 ------------ src/components/shared/ui/modal/modal.css | 5 +- 14 files changed, 233 insertions(+), 438 deletions(-) delete mode 100644 src/components/edit_user/available_data/index.js delete mode 100644 src/components/edit_user/categories/index.js rename src/components/edit_user/generic_data/{generic_data.css => index.css} (100%) rename src/components/edit_user/{edit_user.css => index.css} (100%) delete mode 100644 src/components/edit_user/update_data/index.js diff --git a/src/components/edit_user/available_data/index.js b/src/components/edit_user/available_data/index.js deleted file mode 100644 index 2658b15..0000000 --- a/src/components/edit_user/available_data/index.js +++ /dev/null @@ -1,45 +0,0 @@ -import React from 'react'; -import PropTypes from "prop-types"; - -import { withStyles } from "@material-ui/core/styles"; -import Card from "@material-ui/core/Card"; -import CardContent from "@material-ui/core/CardContent"; - -const styles = {}; - -const AvailableData = (props) => { - - /** - * @const {array} selectedUser - * @const {string} selectedCategory - */ - const { selectedUser, classes } = props; - const { selectedCategory } = props.match.params; - - return ( -
- - - - -

- { - selectedUser.length > 0 && - selectedUser[0][selectedCategory] - } -

- -
-
- -
- ) -}; - -AvailableData.propTypes = { - classes: PropTypes.object.isRequired, - selectedUser: PropTypes.array.isRequired, - selectedCategory: PropTypes.string -}; - -export default withStyles(styles)(AvailableData); \ No newline at end of file diff --git a/src/components/edit_user/categories/index.js b/src/components/edit_user/categories/index.js deleted file mode 100644 index 6b25d95..0000000 --- a/src/components/edit_user/categories/index.js +++ /dev/null @@ -1,64 +0,0 @@ -import React, { Fragment } from 'react'; -import { Link } from 'react-router-dom'; -import PropTypes from "prop-types"; - -import List from "@material-ui/core/List"; -import ListItem from "@material-ui/core/ListItem"; -import ListItemText from "@material-ui/core/ListItemText"; -import Card from "@material-ui/core/Card"; -import { withStyles } from "@material-ui/core/styles"; - -const styles = {}; - -const Categories = (props) => { - - /** - * @const {array} coldef - * @const {string} url - * @const {object} classes - */ - - const { coldef, url, classes } = props; - - return ( - - - { - coldef.length > 0 - ? coldef.map((item) => { - - return ( -
- - - - - - - - - - - - - - -
- ) - - }) - - : null - } - -
- ) -}; - -Categories.propTypes = { - classes: PropTypes.object.isRequired, - coldef: PropTypes.array.isRequired, - url: PropTypes.string.isRequired -}; - -export default withStyles(styles)(Categories); \ No newline at end of file diff --git a/src/components/edit_user/generic_data/contact_info/modal_content/delete_modal.js b/src/components/edit_user/generic_data/contact_info/modal_content/delete_modal.js index 533aa72..eab1e31 100644 --- a/src/components/edit_user/generic_data/contact_info/modal_content/delete_modal.js +++ b/src/components/edit_user/generic_data/contact_info/modal_content/delete_modal.js @@ -5,6 +5,7 @@ import Button from '@material-ui/core/Button' const styles = {} const ContactInfoDeleteModal = (props) => { + const { handleModalCancel, type, classes } = props return ( diff --git a/src/components/edit_user/generic_data/delete_profile/delete_profile_modal.js b/src/components/edit_user/generic_data/delete_profile/delete_profile_modal.js index 1c35412..adc20e6 100644 --- a/src/components/edit_user/generic_data/delete_profile/delete_profile_modal.js +++ b/src/components/edit_user/generic_data/delete_profile/delete_profile_modal.js @@ -1,32 +1,32 @@ -import React from "react"; -import { withStyles } from "@material-ui/core/styles"; -import Button from "@material-ui/core/Button"; +import React from 'react' +import { withStyles } from '@material-ui/core/styles' +import Button from '@material-ui/core/Button' -const styles = {}; +const styles = {} const DeleteProfileModal = (props) => { - const { handleModalDeleteProfileCancel, controlLabel, classes } = props; + const { handleDeleteProfile, typeRole, classes } = props - return ( -
-

Delete {controlLabel} Profile

-
- { - controlLabel && controlLabel === 'ADMIN' - ?

You are about to delete a user with ADMIN privileges. Do you want to continue?

- : controlLabel && controlLabel === 'USER' - ?

You are about to permanently delete a user. Do you want to continue?

- : null - } + return ( +
+

Delete {typeRole} Profile

+
+ { + typeRole && typeRole === 'ADMIN' + ?

You are about to delete a user with ADMIN privileges. Do you want to continue?

+ : typeRole && typeRole === 'USER' + ?

You are about to permanently delete a user. Do you want to continue?

+ : null + } -
- - -
+
+ + +
-
-
- ); +
+
+ ) } -export default withStyles(styles)(DeleteProfileModal); \ No newline at end of file +export default withStyles(styles)(DeleteProfileModal) diff --git a/src/components/edit_user/generic_data/edit_user_avatar/delete_avatar_modal/avatar_modal.js b/src/components/edit_user/generic_data/edit_user_avatar/delete_avatar_modal/avatar_modal.js index 3422dec..6852fb7 100644 --- a/src/components/edit_user/generic_data/edit_user_avatar/delete_avatar_modal/avatar_modal.js +++ b/src/components/edit_user/generic_data/edit_user_avatar/delete_avatar_modal/avatar_modal.js @@ -1,26 +1,26 @@ -import React from "react"; -import { withStyles } from "@material-ui/core/styles"; -import Button from "@material-ui/core/Button"; +import React from 'react' +import { withStyles } from '@material-ui/core/styles' +import Button from '@material-ui/core/Button' -const styles = {}; +const styles = {} const AvatarContentModal = (props) => { - const { handleModalAvatarCancel, classes } = props; + const { handleModalAvatarCancel, classes } = props - return ( -
-

Delete Avatar

-
-

Do you want to delete user's Avatar?

+ return ( +
+

Delete Avatar

+
+

Do you want to delete user's Avatar?

-
- - -
+
+ + +
-
-
- ); +
+
+ ) } -export default withStyles(styles)(AvatarContentModal); \ No newline at end of file +export default withStyles(styles)(AvatarContentModal) diff --git a/src/components/edit_user/generic_data/edit_user_avatar/edit_user_avatar.js b/src/components/edit_user/generic_data/edit_user_avatar/edit_user_avatar.js index f0550f5..86bd48b 100644 --- a/src/components/edit_user/generic_data/edit_user_avatar/edit_user_avatar.js +++ b/src/components/edit_user/generic_data/edit_user_avatar/edit_user_avatar.js @@ -20,12 +20,12 @@ const styles = { } const UserAvatar = (props) => { - const { classes, avatar, modalAlertDeleteAvatar } = props + const { classes, avatar, handleDeleteAvatar } = props /** * @const {any} avatar * @const {Object} classes - * @const {Func} modalAlertDeleteAvatar + * @const {Func} handleDeleteAvatar */ return ( @@ -38,7 +38,7 @@ const UserAvatar = (props) => { src={avatar} className={classNames(classes.avatar, classes.bigAvatar)} /> - - - - - -
- ) - } -} - -UpdateData.propTypes = { - classes: PropTypes.object.isRequired, - updateUserDataCategoryX: PropTypes.func.isRequired, - selectedCategory: PropTypes.string -} - -export default withStyles(styles)(UpdateData) diff --git a/src/components/shared/ui/modal/modal.css b/src/components/shared/ui/modal/modal.css index 2d8d3e2..3dc468c 100644 --- a/src/components/shared/ui/modal/modal.css +++ b/src/components/shared/ui/modal/modal.css @@ -47,8 +47,9 @@ color: #0086f8; } .avatar-alert-delete, -.contact-alert-delete, -.profile-delete { +.contact-modal-delete, +.profile-delete, +.contact-modal-edit { padding: 20px; max-width: 500px; } -- GitLab From 1828cd3c75c8271891161a76c4ae60a6c8de409f Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Wed, 21 Nov 2018 15:30:51 +0200 Subject: [PATCH 214/249] NY-5496 --- .../modal_content/delete_modal.js | 13 +++- .../delete_profile/delete_profile_modal.js | 13 +++- .../delete_avatar_modal/avatar_modal.js | 12 +++- .../edit_user/generic_data/index.js | 72 +++++++++++++------ src/components/edit_user/index.js | 20 +++--- .../edit_user/tabs_navigation/index.js | 61 ++++++++++++---- .../tabs_navigation/manage_user/index.js | 40 +++++------ 7 files changed, 158 insertions(+), 73 deletions(-) diff --git a/src/components/edit_user/generic_data/contact_info/modal_content/delete_modal.js b/src/components/edit_user/generic_data/contact_info/modal_content/delete_modal.js index eab1e31..426c19e 100644 --- a/src/components/edit_user/generic_data/contact_info/modal_content/delete_modal.js +++ b/src/components/edit_user/generic_data/contact_info/modal_content/delete_modal.js @@ -1,4 +1,6 @@ import React from 'react' +import PropTypes from 'prop-types' + import { withStyles } from '@material-ui/core/styles' import Button from '@material-ui/core/Button' @@ -6,7 +8,7 @@ const styles = {} const ContactInfoDeleteModal = (props) => { - const { handleModalCancel, type, classes } = props + const { handleModalCancel, handleDeleteContactConfirmed, type, classes } = props return (
@@ -16,7 +18,7 @@ const ContactInfoDeleteModal = (props) => {
- +
@@ -24,4 +26,11 @@ const ContactInfoDeleteModal = (props) => { ) } +ContactInfoDeleteModal.propTypes = { + handleModalCancel: PropTypes.func, + handleDeleteContactConfirmed: PropTypes.func, + type: PropTypes.string.isRequired, + classes: PropTypes.object.isRequired +} + export default withStyles(styles)(ContactInfoDeleteModal) diff --git a/src/components/edit_user/generic_data/delete_profile/delete_profile_modal.js b/src/components/edit_user/generic_data/delete_profile/delete_profile_modal.js index adc20e6..2c02e6c 100644 --- a/src/components/edit_user/generic_data/delete_profile/delete_profile_modal.js +++ b/src/components/edit_user/generic_data/delete_profile/delete_profile_modal.js @@ -1,11 +1,13 @@ import React from 'react' +import PropTypes from 'prop-types' + import { withStyles } from '@material-ui/core/styles' import Button from '@material-ui/core/Button' const styles = {} const DeleteProfileModal = (props) => { - const { handleDeleteProfile, typeRole, classes } = props + const { handleDeleteProfile, typeRole, classes, handleDeleteProfileConfirmed } = props return (
@@ -21,7 +23,7 @@ const DeleteProfileModal = (props) => {
- +
@@ -29,4 +31,11 @@ const DeleteProfileModal = (props) => { ) } +DeleteProfileModal.propTypes = { + handleDeleteProfile: PropTypes.func, + handleDeleteProfileConfirmed: PropTypes.func, + classes: PropTypes.object.isRequired, + typeRole: PropTypes.string.isRequired +} + export default withStyles(styles)(DeleteProfileModal) diff --git a/src/components/edit_user/generic_data/edit_user_avatar/delete_avatar_modal/avatar_modal.js b/src/components/edit_user/generic_data/edit_user_avatar/delete_avatar_modal/avatar_modal.js index 6852fb7..c42fbde 100644 --- a/src/components/edit_user/generic_data/edit_user_avatar/delete_avatar_modal/avatar_modal.js +++ b/src/components/edit_user/generic_data/edit_user_avatar/delete_avatar_modal/avatar_modal.js @@ -1,11 +1,13 @@ import React from 'react' +import PropTypes from 'prop-types' + import { withStyles } from '@material-ui/core/styles' import Button from '@material-ui/core/Button' const styles = {} const AvatarContentModal = (props) => { - const { handleModalAvatarCancel, classes } = props + const { handleModalAvatarCancel, classes, handleDeleteAvatarConfirmed } = props return (
@@ -15,7 +17,7 @@ const AvatarContentModal = (props) => {
- +
@@ -23,4 +25,10 @@ const AvatarContentModal = (props) => { ) } +AvatarContentModal.propTypes = { + handleDeleteAvatarConfirmed: PropTypes.func, + handleModalAvatarCancel: PropTypes.func, + classes: PropTypes.object.isRequired +} + export default withStyles(styles)(AvatarContentModal) diff --git a/src/components/edit_user/generic_data/index.js b/src/components/edit_user/generic_data/index.js index 741817f..c9e660d 100644 --- a/src/components/edit_user/generic_data/index.js +++ b/src/components/edit_user/generic_data/index.js @@ -39,11 +39,10 @@ class genericUserData extends Component { birthday: this.props.user.birthday }, modalState: { - showDeleteModal: false, + showContactModal: false, showEditModal: false, - showProfileDeleteModal: false, - showAvatarDeleteModal: false, - showProfileDeleteModal: false, + showProfileModal: false, + showAvatarModal: false, key: null, value: '', type: '' @@ -77,7 +76,8 @@ class genericUserData extends Component { this.state.personalInfo.firstname !== this.props.user.firstname || this.state.personalInfo.lastname !== this.props.user.lastname || this.state.personalInfo.username !== this.props.user.username || - this.state.personalInfo.birthday !== this.props.user.birthday) { + this.state.personalInfo.birthday !== this.props.user.birthday + ) { this.props.changed(true) } else { this.props.changed(false) @@ -120,40 +120,61 @@ class genericUserData extends Component { handleDeleteContact = (type) => { let newModalState = { ...this.state.modalState } - if (this.state.modalState.showDeleteModal === true) { - newModalState.showDeleteModal = false + if (this.state.modalState.showContactModal === true) { + newModalState.showContactModal = false } else { - newModalState.showDeleteModal = true + newModalState.showContactModal = true newModalState.type = type } this.setState({ modalState: newModalState }) } + deleteContact = () => { + console.log('====================================') + console.log('DELETE CONTACT') + console.log('====================================') + this.handleDeleteContact() + } + handleDeleteAvatar = () => { let newModalState = { ...this.state.modalState } - if (this.state.modalState.showAvatarDeleteModal === true) { - newModalState.showAvatarDeleteModal = false + if (this.state.modalState.showAvatarModal === true) { + newModalState.showAvatarModal = false } else { - newModalState.showAvatarDeleteModal = true + newModalState.showAvatarModal = true } this.setState({ modalState: newModalState }) } + deleteAvatar = () => { + console.log('====================================') + console.log('DELETE AVATAR') + console.log('====================================') + this.handleDeleteAvatar() + } + handleDeleteProfile = () => { let newModalState = { ...this.state.modalState } - if (this.state.modalState.showProfileDeleteModal === true) { - newModalState.showProfileDeleteModal = false + if (this.state.modalState.showProfileModal === true) { + newModalState.showProfileModal = false } else { - newModalState.showProfileDeleteModal = true + newModalState.showProfileModal = true } this.setState({ modalState: newModalState }) } + deleteProfile = () => { + console.log('====================================') + console.log('DELETE PROFILE') + console.log('====================================') + this.handleDeleteProfile() + } + handleEditContact = (key, value, type) => { let newModalState = { ...this.state.modalState } @@ -257,16 +278,27 @@ class genericUserData extends Component { - - + + - - + + - - + + { diff --git a/src/components/edit_user/index.js b/src/components/edit_user/index.js index 87956b2..26d8b4d 100644 --- a/src/components/edit_user/index.js +++ b/src/components/edit_user/index.js @@ -35,7 +35,7 @@ class EditUser extends Component { } saveChanges = (e) => { - let { saveUserData } = this.props + // let { saveUserData } = this.props } userDataChanged = (flag) => { @@ -53,19 +53,17 @@ class EditUser extends Component {
- {selectedUser.contactsinfoList - ? : '' + { + selectedUser.contactsinfoList + ? + : '' } { selectedUser.rolesList - ? + ? : null } @@ -76,11 +74,9 @@ class EditUser extends Component { } } -function mapStateToProps ({ users, editUser, error }, { match }) { +function mapStateToProps ({ editUser }) { return { - selectedUser: editUser, - coldef: users.coldef, - error + selectedUser: editUser } }; diff --git a/src/components/edit_user/tabs_navigation/index.js b/src/components/edit_user/tabs_navigation/index.js index f53874d..ded3df0 100644 --- a/src/components/edit_user/tabs_navigation/index.js +++ b/src/components/edit_user/tabs_navigation/index.js @@ -7,7 +7,7 @@ import Tabs from '@material-ui/core/Tabs' import Tab from '@material-ui/core/Tab' import ManageUser from './manage_user' -import LoginOptions from './login_options' +// import LoginOptions from './login_options' import './tab_navigation.css' @@ -28,17 +28,52 @@ const styles = theme => ({ }) class TabsNavigation extends Component { - state = { - value: 0 + constructor (props) { + super(props) + + this.state = { + value: 0, + manageUser: { + rolesList: this.props.user.rolesList + } + } + } + + static propTypes = { + classes: PropTypes.object.isRequired, + user: PropTypes.object, + changed: PropTypes.func.isRequired } - handleChange = (event, value) => { + handleTabsNavChange = (e, value) => { this.setState({ value }) - }; + } + + handleChange = (e, type) => { + switch (type) { + case 'manageUser': + let newManageUser = { ...this.state.manageUser } + newManageUser[e.target.name] = e.target.value + this.setState({ [type]: newManageUser }, this.detectChange) + break + + default: + this.setState({ [type]: e.target.value }, this.detectChange) + break + } + } + + detectChange = () => { + if (this.state.manageUser.rolesList !== this.props.user.rolesList) { + this.props.changed(true) + } else { + this.props.changed(false) + } + } render () { - const { classes, rolesList, onHandleChange } = this.props - const { value } = this.state + const { classes } = this.props + const { value, manageUser } = this.state return ( @@ -47,7 +82,7 @@ class TabsNavigation extends Component { @@ -63,10 +98,10 @@ class TabsNavigation extends Component { /> } */} {value === 1 &&
active sessions live here
} - {value === 2 && rolesList && + {value === 2 && manageUser && this.handleChange(e, 'manageUser')} /> }
@@ -77,8 +112,4 @@ class TabsNavigation extends Component { } } -TabsNavigation.propTypes = { - classes: PropTypes.object.isRequired -} - export default withStyles(styles)(TabsNavigation) diff --git a/src/components/edit_user/tabs_navigation/manage_user/index.js b/src/components/edit_user/tabs_navigation/manage_user/index.js index a88601b..cfa47e3 100644 --- a/src/components/edit_user/tabs_navigation/manage_user/index.js +++ b/src/components/edit_user/tabs_navigation/manage_user/index.js @@ -16,18 +16,25 @@ const styles = theme => ({ }) class ManageUser extends Component { - state = { - open: true, - selectedIndex: 0 - }; + constructor (props) { + super(props) + this.state = { + open: true, + selectedIndex: 0 + } + } + + static propTypes = { + manageUser: PropTypes.object, + handleChange: PropTypes.func.isRequired + } handleClick = () => { this.setState(state => ({ open: !state.open })) }; render () { - const { roleAdmin } = this.state - const { rolesList } = this.props + const { manageUser, handleChange } = this.props return ( @@ -42,21 +49,18 @@ class ManageUser extends Component { - { - roleAdmin !== null && - - } - /> - } + } + /> @@ -64,8 +68,4 @@ class ManageUser extends Component { } } -ManageUser.propTypes = { - classes: PropTypes.object.isRequired -} - export default withStyles(styles)(ManageUser) -- GitLab From 726bdd78eb2e7adbfb47d531ad815c41457736eb Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Wed, 21 Nov 2018 18:16:43 +0200 Subject: [PATCH 215/249] NY-5540 --- .../edit_user/generic_data/index.css | 62 ++++- .../edit_user/generic_data/index.js | 27 ++- .../generic_data/personal_info/datetime.css | 223 ++++++++++++++++++ .../personal_info/personal_info.js | 115 +++++---- 4 files changed, 362 insertions(+), 65 deletions(-) create mode 100644 src/components/edit_user/generic_data/personal_info/datetime.css diff --git a/src/components/edit_user/generic_data/index.css b/src/components/edit_user/generic_data/index.css index 4dd6d8a..825267c 100644 --- a/src/components/edit_user/generic_data/index.css +++ b/src/components/edit_user/generic_data/index.css @@ -32,10 +32,11 @@ .contact-info-controls button:hover { background-color: transparent; } -.touch-personal-info { +.touch-personal-info, .touch-birthday { display: none; } -.touch-personal-info.isTouched { +.touch-personal-info.isTouched, +.touch-birthday.isTouched { position: absolute; display: block; @@ -47,7 +48,8 @@ font-style: italic; color: #f00; } -.touch-personal-info.isTouched.offset-touched { +.touch-personal-info.isTouched.offset-touched, +.touch-birthday.isTouched.offset-touched { bottom: 8px; } @@ -136,4 +138,58 @@ transition: transform 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms; border-bottom: 2px solid #303f9f; pointer-events: none; +} +.user-birthday.rdtOpen{ + padding-bottom: 286px; +} +.user-birthday.rdtOpen:after { + transform: scaleX(1); +} +.birthday-label { + position: absolute; + top: 0; + left: 50px; + padding: 0; + color: rgba(0, 0, 0, 0.54); + + font-size: 1rem; + font-family: "Roboto", "Helvetica", "Arial", sans-serif; + line-height: 1; + + transform: translate(0, 1.5px) scale(0.75); + transform-origin: top left; + + transition: color 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms,transform 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms; +} +.birthday-label.active{ + color: #303f9f; +} +.birthday-label.clear-label{ + transform: translate(0, 24px) scale(1); +} +.date-time-picker { + position: relative; + display: inline-flex; + align-items: center; + width: 100%; + + margin-top: 16px; + font-family: "Roboto", "Helvetica", "Arial", sans-serif; + font-size: 1rem; + line-height: 1.1875em; + cursor: text; +} +.user-birthday { + width: 100%; +} +.touch-birthday.isTouched { + bottom: -16px; +} +.icon-offset { + position: absolute; + top: -6px; + left: 12px; +} +.user-birthday input { + padding-left: 50px; } \ No newline at end of file diff --git a/src/components/edit_user/generic_data/index.js b/src/components/edit_user/generic_data/index.js index c9e660d..9980f38 100644 --- a/src/components/edit_user/generic_data/index.js +++ b/src/components/edit_user/generic_data/index.js @@ -46,7 +46,8 @@ class genericUserData extends Component { key: null, value: '', type: '' - } + }, + activeFocusElement: false } } @@ -57,6 +58,10 @@ class genericUserData extends Component { changed: PropTypes.func.isRequired } + setActive = (state) => { + this.setState({ activeFocusElement: state }) + } + detectChange = () => { let { user } = this.props @@ -209,7 +214,7 @@ class genericUserData extends Component { */ const { user, classes } = this.props - const { avatar, contactInfo, accessStatus, personalInfo, modalState } = this.state + const { avatar, contactInfo, accessStatus, personalInfo, modalState, activeFocusElement } = this.state let controls = [] @@ -256,14 +261,16 @@ class genericUserData extends Component { Personal Information this.handleChange(e, 'personalInfo')} + personalInfo={personalInfo} + initialInfo={{ + firstname: this.props.user.firstname, + lastname: this.props.user.lastname, + username: this.props.user.username, + birthday: this.props.user.birthday + }} + activeFocusElement={activeFocusElement} + onChangeInfo={e => this.handleChange(e, 'personalInfo')} + setActive={this.setActive} /> diff --git a/src/components/edit_user/generic_data/personal_info/datetime.css b/src/components/edit_user/generic_data/personal_info/datetime.css new file mode 100644 index 0000000..044fd38 --- /dev/null +++ b/src/components/edit_user/generic_data/personal_info/datetime.css @@ -0,0 +1,223 @@ +/*! + * https://github.com/YouCanBookMe/react-datetime + */ + +.rdt { + position: relative; +} +.rdtPicker { + position: absolute; + display: none; + + max-width: 300px; + width: 100%; + padding: 4px; + margin-top: 1px; + z-index: 99999 !important; + background: #fff; + box-shadow: 0 1px 3px rgba(0,0,0,.1); + border: 1px solid #f9f9f9; + + left: 50%; + transform: translate(-50%, 0); +} +.rdtOpen .rdtPicker { + display: block; +} +.rdtStatic .rdtPicker { + box-shadow: none; + position: static; +} + +.rdtPicker .rdtTimeToggle { + text-align: center; +} + +.rdtPicker table { + width: 100%; + margin: 0; +} +.rdtPicker td, +.rdtPicker th { + text-align: center; + height: 28px; +} +.rdtPicker td { + cursor: pointer; +} +.rdtPicker td.rdtDay:hover, +.rdtPicker td.rdtHour:hover, +.rdtPicker td.rdtMinute:hover, +.rdtPicker td.rdtSecond:hover, +.rdtPicker .rdtTimeToggle:hover { + background: #eeeeee; + cursor: pointer; +} +.rdtPicker td.rdtOld, +.rdtPicker td.rdtNew { + color: #999999; +} +.rdtPicker td.rdtToday { + position: relative; +} +.rdtPicker td.rdtToday:before { + content: ''; + display: inline-block; + border-left: 7px solid transparent; + border-bottom: 7px solid #428bca; + border-top-color: rgba(0, 0, 0, 0.2); + position: absolute; + bottom: 4px; + right: 4px; +} +.rdtPicker td.rdtActive, +.rdtPicker td.rdtActive:hover { + background-color: #428bca; + color: #fff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} +.rdtPicker td.rdtActive.rdtToday:before { + border-bottom-color: #fff; +} +.rdtPicker td.rdtDisabled, +.rdtPicker td.rdtDisabled:hover { + background: none; + color: #999999; + cursor: not-allowed; +} + +.rdtPicker td span.rdtOld { + color: #999999; +} +.rdtPicker td span.rdtDisabled, +.rdtPicker td span.rdtDisabled:hover { + background: none; + color: #999999; + cursor: not-allowed; +} +.rdtPicker th { + border-bottom: 1px solid #f9f9f9; +} +.rdtPicker .dow { + width: 14.2857%; + border-bottom: none; + cursor: default; +} +.rdtPicker th.rdtSwitch { + width: 100px; +} +.rdtPicker th.rdtNext, +.rdtPicker th.rdtPrev { + font-size: 21px; + vertical-align: top; +} + +.rdtPrev span, +.rdtNext span { + display: block; + -webkit-touch-callout: none; /* iOS Safari */ + -webkit-user-select: none; /* Chrome/Safari/Opera */ + -khtml-user-select: none; /* Konqueror */ + -moz-user-select: none; /* Firefox */ + -ms-user-select: none; /* Internet Explorer/Edge */ + user-select: none; +} + +.rdtPicker th.rdtDisabled, +.rdtPicker th.rdtDisabled:hover { + background: none; + color: #999999; + cursor: not-allowed; +} +.rdtPicker thead tr:first-child th { + cursor: pointer; +} +.rdtPicker thead tr:first-child th:hover { + background: #eeeeee; +} + +.rdtPicker tfoot { + border-top: 1px solid #f9f9f9; +} + +.rdtPicker button { + border: none; + background: none; + cursor: pointer; +} +.rdtPicker button:hover { + background-color: #eee; +} + +.rdtPicker thead button { + width: 100%; + height: 100%; +} + +td.rdtMonth, +td.rdtYear { + height: 50px; + width: 25%; + cursor: pointer; +} +td.rdtMonth:hover, +td.rdtYear:hover { + background: #eee; +} + +.rdtCounters { + display: inline-block; +} + +.rdtCounters > div { + float: left; +} + +.rdtCounter { + height: 100px; +} + +.rdtCounter { + width: 40px; +} + +.rdtCounterSeparator { + line-height: 100px; +} + +.rdtCounter .rdtBtn { + height: 40%; + line-height: 40px; + cursor: pointer; + display: block; + + -webkit-touch-callout: none; /* iOS Safari */ + -webkit-user-select: none; /* Chrome/Safari/Opera */ + -khtml-user-select: none; /* Konqueror */ + -moz-user-select: none; /* Firefox */ + -ms-user-select: none; /* Internet Explorer/Edge */ + user-select: none; +} +.rdtCounter .rdtBtn:hover { + background: #eee; +} +.rdtCounter .rdtCount { + height: 20%; + font-size: 1.2em; +} + +.rdtMilli { + vertical-align: middle; + padding-left: 8px; + width: 48px; +} + +.rdtMilli input { + width: 100%; + font-size: 1.2em; + margin-top: 37px; +} + +.rdtTime td { + cursor: default; +} diff --git a/src/components/edit_user/generic_data/personal_info/personal_info.js b/src/components/edit_user/generic_data/personal_info/personal_info.js index def2c7f..a01263f 100644 --- a/src/components/edit_user/generic_data/personal_info/personal_info.js +++ b/src/components/edit_user/generic_data/personal_info/personal_info.js @@ -1,18 +1,23 @@ import { DATE_FORMAT } from 'constants/formats' import React, { Fragment } from 'react' +import { formatDate } from 'utils/helpers/format_date' +import PropTypes from 'prop-types' + +import CalendarToday from '@material-ui/icons/CalendarToday' import { withStyles } from '@material-ui/core/styles' import classNames from 'classnames' import TextField from '@material-ui/core/TextField' -import PropTypes from 'prop-types' import DateTime from 'react-datetime' -import { formatDate } from 'utils/helpers/format_date' - -import 'react-datetime/css/react-datetime.css' +import './datetime.css' const styles = theme => ({ rowControlWrapper: { position: 'relative' + }, + marginOffset: { + marginTop: 16, + marginBottom: 8 } }) @@ -24,70 +29,74 @@ const PersonalInfo = (props) => { * @const {Func} onChangeInfo */ - const { personalInfo, initialInfo, classes, onChangeInfo } = props + const { personalInfo, initialInfo, classes, onChangeInfo, setActive, activeFocusElement } = props return (
Edited - { - - } + +
Edited - { - - } + +
Edited - { - +
+ +
+ Edited + + +
+ + setActive(true)} + onBlur={() => setActive(false)} /> - } -
-
- Edited - +
@@ -98,7 +107,9 @@ PersonalInfo.propTypes = { personalInfo: PropTypes.object.isRequired, initialInfo: PropTypes.object.isRequired, classes: PropTypes.object.isRequired, - onChangeInfo: PropTypes.func.isRequired + onChangeInfo: PropTypes.func.isRequired, + setActive: PropTypes.func.isRequired, + activeFocusElement: PropTypes.bool.isRequired } export default withStyles(styles)(PersonalInfo) -- GitLab From 6c36b87afe2e944b3ef687475cde98fccb14f344 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Thu, 22 Nov 2018 16:37:46 +0200 Subject: [PATCH 216/249] NY-5540 --- .../contact_info/modal_content/edit_modal.js | 19 ++++++++++--- .../contact_info/static_control.js | 10 +++---- .../edit_user/generic_data/index.css | 27 ++++++++++++++++++- .../generic_data/personal_info/datetime.css | 1 + .../personal_info/personal_info.js | 6 ++--- src/components/shared/ui/modal/modal.css | 5 +++- 6 files changed, 55 insertions(+), 13 deletions(-) diff --git a/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js b/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js index 6e5c8dc..99b482c 100644 --- a/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js +++ b/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js @@ -16,16 +16,24 @@ class ContactInfoEditModal extends PureComponent { let { value } = this.props this.state = { + isUpdated: false, value } } handleChange = (e) => { - this.setState({ value: e.target.value }) + let oldValue = this.props.value + + if (e.target.value !== oldValue) { + this.setState({ value: e.target.value, isUpdated: true }) + } else { + this.setState({ value: e.target.value, isUpdated: false }) + } } render () { const { handleModalEditProfileCancel, type, classes, onSave } = this.props + const { isUpdated } = this.state return (
@@ -56,8 +64,13 @@ class ContactInfoEditModal extends PureComponent {
- +
diff --git a/src/components/edit_user/generic_data/contact_info/static_control.js b/src/components/edit_user/generic_data/contact_info/static_control.js index f39b4d2..ff66e5c 100644 --- a/src/components/edit_user/generic_data/contact_info/static_control.js +++ b/src/components/edit_user/generic_data/contact_info/static_control.js @@ -30,7 +30,7 @@ const StaticControl = (props) => { InputProps={{ readOnly: true, startAdornment: ( - + ), @@ -48,15 +48,15 @@ const StaticControl = (props) => { fullWidth /> : inputType === 'PHONE' - ? - {info.label} + ? + {info.label} + } @@ -79,7 +79,7 @@ const StaticControl = (props) => { InputProps={{ readOnly: true, startAdornment: ( - + ), diff --git a/src/components/edit_user/generic_data/index.css b/src/components/edit_user/generic_data/index.css index 825267c..06f6b4f 100644 --- a/src/components/edit_user/generic_data/index.css +++ b/src/components/edit_user/generic_data/index.css @@ -25,6 +25,9 @@ font-weight: 700; color: #1890ff; } +.phone-control .contact-info-controls { + /* margin-left: 70px; */ +} .contact-info-controls button { padding: 0; } @@ -140,7 +143,7 @@ pointer-events: none; } .user-birthday.rdtOpen{ - padding-bottom: 286px; + padding-bottom: 260px; } .user-birthday.rdtOpen:after { transform: scaleX(1); @@ -192,4 +195,26 @@ } .user-birthday input { padding-left: 50px; +} +.icon-contact-info svg { + /* margin: 0 10px; */ +} +.contactInfo-phoneLabel { + left: 32px; + /* left: auto; + right: 15px; + top: auto; + bottom: 5px; + + max-width: 70px; + + overflow: hidden; + text-overflow: ellipsis; + white-space: normal; */ +} +.personal-info label { + left: 15px; +} +.personal-info > div div { + padding-left: 15px; } \ No newline at end of file diff --git a/src/components/edit_user/generic_data/personal_info/datetime.css b/src/components/edit_user/generic_data/personal_info/datetime.css index 044fd38..2a74a50 100644 --- a/src/components/edit_user/generic_data/personal_info/datetime.css +++ b/src/components/edit_user/generic_data/personal_info/datetime.css @@ -31,6 +31,7 @@ .rdtPicker .rdtTimeToggle { text-align: center; + display: none; } .rdtPicker table { diff --git a/src/components/edit_user/generic_data/personal_info/personal_info.js b/src/components/edit_user/generic_data/personal_info/personal_info.js index a01263f..4d6e345 100644 --- a/src/components/edit_user/generic_data/personal_info/personal_info.js +++ b/src/components/edit_user/generic_data/personal_info/personal_info.js @@ -34,7 +34,7 @@ const PersonalInfo = (props) => { return ( -
+
Edited {
-
+
Edited {
-
+
Edited Date: Thu, 22 Nov 2018 17:57:51 +0200 Subject: [PATCH 217/249] deleting user info --- .../contact_info_control_options.js | 2 +- .../modal_content/delete_modal.js | 6 ++-- .../edit_user/generic_data/index.js | 29 ++++++++++++------- .../personal_info/personal_info.js | 16 ++++++++++ 4 files changed, 39 insertions(+), 14 deletions(-) diff --git a/src/components/edit_user/generic_data/contact_info/contact_info_control_options.js b/src/components/edit_user/generic_data/contact_info/contact_info_control_options.js index c9d8073..44a602b 100644 --- a/src/components/edit_user/generic_data/contact_info/contact_info_control_options.js +++ b/src/components/edit_user/generic_data/contact_info/contact_info_control_options.js @@ -24,7 +24,7 @@ class ContactInfoControlOptions extends Component { onHandleDeleteContact = () => { this.handleClose() - this.props.handleDeleteContact(this.props.inputType) + this.props.handleDeleteContact(this.props.infoKey, this.props.controlValue, this.props.inputType) } onHandleEditContact = () => { diff --git a/src/components/edit_user/generic_data/contact_info/modal_content/delete_modal.js b/src/components/edit_user/generic_data/contact_info/modal_content/delete_modal.js index 426c19e..ab9cce3 100644 --- a/src/components/edit_user/generic_data/contact_info/modal_content/delete_modal.js +++ b/src/components/edit_user/generic_data/contact_info/modal_content/delete_modal.js @@ -8,13 +8,13 @@ const styles = {} const ContactInfoDeleteModal = (props) => { - const { handleModalCancel, handleDeleteContactConfirmed, type, classes } = props + const { handleModalCancel, handleDeleteContactConfirmed, value, type, classes } = props return (
-

Delete {type}

+

Delete {type.toLowerCase()}

-

Do you want to delete user's {type} from contact information?

+

Do you want to delete user's {value} from contact information?

diff --git a/src/components/edit_user/generic_data/index.js b/src/components/edit_user/generic_data/index.js index 9980f38..ae70adc 100644 --- a/src/components/edit_user/generic_data/index.js +++ b/src/components/edit_user/generic_data/index.js @@ -122,24 +122,30 @@ class genericUserData extends Component { this.handleEditContact() } - handleDeleteContact = (type) => { + handleDeleteContactModal = (key, value, type) => { let newModalState = { ...this.state.modalState } if (this.state.modalState.showContactModal === true) { newModalState.showContactModal = false } else { newModalState.showContactModal = true + newModalState.key = key + newModalState.value = value newModalState.type = type } this.setState({ modalState: newModalState }) } - deleteContact = () => { - console.log('====================================') - console.log('DELETE CONTACT') - console.log('====================================') - this.handleDeleteContact() + deleteContact = (e) => { + let { contactInfo, modalState } = this.state + + let newContactInfo = { ...contactInfo } + + newContactInfo[modalState.type] = newContactInfo[modalState.type].filter(el => el.key !== modalState.key) + + this.setState({ contactInfo: newContactInfo }) + this.handleDeleteContactModal() } handleDeleteAvatar = () => { @@ -204,7 +210,7 @@ class genericUserData extends Component { * @const {Object} user * @const {Object} classes * @const {Func} modalAlertDeleteAvatar - * @const {Func} handleDeleteContact + * @const {Func} handleDeleteContactModal * @const {Func} handleEditContact * @const {Func} handleDeleteProfile * @const {Any} avatar @@ -224,7 +230,7 @@ class genericUserData extends Component { - + diff --git a/src/components/edit_user/generic_data/personal_info/personal_info.js b/src/components/edit_user/generic_data/personal_info/personal_info.js index 4d6e345..ec0f6f1 100644 --- a/src/components/edit_user/generic_data/personal_info/personal_info.js +++ b/src/components/edit_user/generic_data/personal_info/personal_info.js @@ -21,6 +21,20 @@ const styles = theme => ({ } }) +// let renderDay = (props, currentDate, selectedDate) => { +// let element +// +// if (currentDate === selectedDate) { +// element = { currentDate.date() } +// } else { +// element = { currentDate.date() } +// } +// +// debugger +// +// return element +// } + const PersonalInfo = (props) => { /** * @const {Object} personalInfo @@ -89,7 +103,9 @@ const PersonalInfo = (props) => { className={'user-birthday'} label="Birthday" name="birthday" + closeOnSelect dateFormat={DATE_FORMAT} + timeFormat={false} value={formatDate(personalInfo.birthday)} onChange={onChangeInfo} onFocus={() => setActive(true)} -- GitLab From b4b09efc79379da9afe07785adc7ea5fae1d89fe Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Fri, 23 Nov 2018 10:42:59 +0200 Subject: [PATCH 218/249] minor chnages --- src/utils/services/ag_grid_server_model.js | 69 ++++------------------ 1 file changed, 13 insertions(+), 56 deletions(-) diff --git a/src/utils/services/ag_grid_server_model.js b/src/utils/services/ag_grid_server_model.js index 00507b2..d790140 100644 --- a/src/utils/services/ag_grid_server_model.js +++ b/src/utils/services/ag_grid_server_model.js @@ -25,52 +25,6 @@ ServerSideDatasource.prototype.getRows = function (params) { * on success call params.successCallback(resultForGrid, lastRow); * params.successCallback is an ag-grid method */ -<<<<<<< HEAD - // this.fakeServer.getUsersData(successCallback, request); - // console.log("request", request) - - let getUsersDataPromise = getAllAccountsGrpcRequest(startRow, endRow); - let getCountOfAllAccountsPromise = getCountOfAllAccountsGrpcRequest(); - - - Promise.all([getUsersDataPromise, getCountOfAllAccountsPromise]).then((data) => { - - data[0].accountdetailsList.map((item, index) => { - item.accessstatus = item.accessstatus === undefined || item.accessstatus === 0 ? accountStatusVariations[1] : accountStatusVariations[item.accessstatus]; - let roleListItem = item.rolesList.map((roleItem) => accountRoleVariations[roleItem]); - item.rolesList = roleListItem; - - let timestampCreationDate = item.creationtimestamp; - let timestampCreated = moment(timestampCreationDate); // this is the format, which will be taken by from the endpoint - let creationDate = `${timestampCreated.day() + 1}/${timestampCreated.month() + 1}/${timestampCreated.year()}` - let creationTime = `${timestampCreated.format('hh:mm A')}`; - item.creationtimestamp = [creationDate, creationTime] - - let timestampUpdatedDate = item.lastupdatetimestamp; - if (timestampUpdatedDate !== 0) { - let timestampUpdated = moment(timestampUpdatedDate); // this is the format, which will be taken by from the endpoint - let updatedDate = `${timestampUpdated.day() + 1}/${timestampUpdated.month() + 1}/${timestampUpdated.year()}` - let updatedTime = `${timestampUpdated.format('hh:mm A')}`; - item.lastupdatetimestamp = [updatedDate, updatedTime] - } else { - item.lastupdatetimestamp = ['no updates done', ''] - } - - return item; - }) - - params.successCallback(data[0].accountdetailsList, data[1]); - }).catch((error) => { - params.failCallback(error); - }) - // getUsersDataPromise.then((response) => { - // params.successCallback(response.accountdetailsList, 50); - // }).catch((error) => { - // console.log(error); - // }) - - /** -======= // this.fakeServer.getUsersData(successCallback, request); // console.log("request", request) @@ -83,17 +37,21 @@ ServerSideDatasource.prototype.getRows = function (params) { let roleListItem = item.rolesList.map((roleItem) => accountRoleVariations[roleItem]) item.rolesList = roleListItem - let timestampCreationMock = 1542206425999 + index * 100000000 - let timestampCreated = moment(timestampCreationMock) // this is the format, which will be taken by from the endpoint + let timestampCreationDate = item.creationtimestamp + let timestampCreated = moment(timestampCreationDate) // this is the format, which will be taken by from the endpoint let creationDate = `${timestampCreated.day() + 1}/${timestampCreated.month() + 1}/${timestampCreated.year()}` let creationTime = `${timestampCreated.format('hh:mm A')}` - item.creationdate = [creationDate, creationTime] - - let timestampUpdatedMock = 1542286425999 + index * 100000000 - let timestampUpdated = moment(timestampUpdatedMock) // this is the format, which will be taken by from the endpoint - let updatedDate = `${timestampUpdated.day() + 1}/${timestampUpdated.month() + 1}/${timestampUpdated.year()}` - let updatedTime = `${timestampUpdated.format('hh:mm A')}` - item.updateddate = [updatedDate, updatedTime] + item.creationtimestamp = [creationDate, creationTime] + + let timestampUpdatedDate = item.lastupdatetimestamp + if (timestampUpdatedDate !== 0) { + let timestampUpdated = moment(timestampUpdatedDate) // this is the format, which will be taken by from the endpoint + let updatedDate = `${timestampUpdated.day() + 1}/${timestampUpdated.month() + 1}/${timestampUpdated.year()}` + let updatedTime = `${timestampUpdated.format('hh:mm A')}` + item.lastupdatetimestamp = [updatedDate, updatedTime] + } else { + item.lastupdatetimestamp = ['no updates done', ''] + } return item }) @@ -109,7 +67,6 @@ ServerSideDatasource.prototype.getRows = function (params) { // }) /** ->>>>>>> feature/refactor_contact * @param {array} resultForGrid * @param {number} lastRow */ -- GitLab From 1c9d91fc6ff186f8dff64fe104e3e0dd76409b9a Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Fri, 23 Nov 2018 12:00:53 +0200 Subject: [PATCH 219/249] Minor change --- .../edit_user/generic_data/index.css | 2 +- .../generic_data/personal_info/datetime.css | 12 +- .../personal_info/personal_info.js | 15 -- src/components/sidebar/css/style.css | 15 +- yarn.lock | 191 +++++------------- 5 files changed, 64 insertions(+), 171 deletions(-) diff --git a/src/components/edit_user/generic_data/index.css b/src/components/edit_user/generic_data/index.css index 06f6b4f..7c18cf1 100644 --- a/src/components/edit_user/generic_data/index.css +++ b/src/components/edit_user/generic_data/index.css @@ -143,7 +143,7 @@ pointer-events: none; } .user-birthday.rdtOpen{ - padding-bottom: 260px; + padding-bottom: 311px; } .user-birthday.rdtOpen:after { transform: scaleX(1); diff --git a/src/components/edit_user/generic_data/personal_info/datetime.css b/src/components/edit_user/generic_data/personal_info/datetime.css index 2a74a50..9f8ec7b 100644 --- a/src/components/edit_user/generic_data/personal_info/datetime.css +++ b/src/components/edit_user/generic_data/personal_info/datetime.css @@ -41,7 +41,7 @@ .rdtPicker td, .rdtPicker th { text-align: center; - height: 28px; + height: 35px; } .rdtPicker td { cursor: pointer; @@ -71,12 +71,17 @@ bottom: 4px; right: 4px; } -.rdtPicker td.rdtActive, .rdtPicker td.rdtActive:hover { background-color: #428bca; color: #fff; text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); } +.rdtPicker td.rdtActive { + background-color: #1890ff; + color: #fff; + + border-radius: 100%; +} .rdtPicker td.rdtActive.rdtToday:before { border-bottom-color: #fff; } @@ -103,9 +108,11 @@ width: 14.2857%; border-bottom: none; cursor: default; + filter: invert(60%); } .rdtPicker th.rdtSwitch { width: 100px; + color: rgba(0, 0, 0, 0.4); } .rdtPicker th.rdtNext, .rdtPicker th.rdtPrev { @@ -116,6 +123,7 @@ .rdtPrev span, .rdtNext span { display: block; + filter: invert(40%); -webkit-touch-callout: none; /* iOS Safari */ -webkit-user-select: none; /* Chrome/Safari/Opera */ -khtml-user-select: none; /* Konqueror */ diff --git a/src/components/edit_user/generic_data/personal_info/personal_info.js b/src/components/edit_user/generic_data/personal_info/personal_info.js index ec0f6f1..721b0af 100644 --- a/src/components/edit_user/generic_data/personal_info/personal_info.js +++ b/src/components/edit_user/generic_data/personal_info/personal_info.js @@ -21,20 +21,6 @@ const styles = theme => ({ } }) -// let renderDay = (props, currentDate, selectedDate) => { -// let element -// -// if (currentDate === selectedDate) { -// element = { currentDate.date() } -// } else { -// element = { currentDate.date() } -// } -// -// debugger -// -// return element -// } - const PersonalInfo = (props) => { /** * @const {Object} personalInfo @@ -103,7 +89,6 @@ const PersonalInfo = (props) => { className={'user-birthday'} label="Birthday" name="birthday" - closeOnSelect dateFormat={DATE_FORMAT} timeFormat={false} value={formatDate(personalInfo.birthday)} diff --git a/src/components/sidebar/css/style.css b/src/components/sidebar/css/style.css index 9aabcd6..84c469d 100644 --- a/src/components/sidebar/css/style.css +++ b/src/components/sidebar/css/style.css @@ -28,10 +28,10 @@ z-index: 1400; background: #24262b; transform: translateX(0); - -webkit-transform:translateX(0); + -webkit-transform:translateX(0); -webkit-animation: move-right ease 1 normal 0.5s; - animation: move-right ease 1 normal 0.5s; -} + animation: move-right ease 1 normal 0.5s; +} .side-menu-logo-wrap { background: #24262b; @@ -45,6 +45,7 @@ } .side-menu-logo-text { + font-family: "Roboto", "Helvetica", "Arial", sans-serif; font-size: 15px; color: #fff; } @@ -52,7 +53,7 @@ .side-menu-nav-link > div:hover, .side-menu-nav-link.active > div { background-color: transparent; -} +} .side-menu-nav-link > div:hover span, .side-menu-nav-link.active > div span { @@ -68,17 +69,17 @@ } to { transform: translateX(0); - -webkit-transform:translateX(0); + -webkit-transform:translateX(0); } } @keyframes move-right { from { transform: translateX(-100%); - -webkit-transform:translateX(-100%); + -webkit-transform:translateX(-100%); } to { transform: translateX(0); - -webkit-transform:translateX(0); + -webkit-transform:translateX(0); } } \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index f59968e..eb6ad79 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8,7 +8,7 @@ dependencies: "@babel/highlight" "^7.0.0" -"@babel/core@7.1.0": +"@babel/core@7.1.0", "@babel/core@^7.0.1": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.1.0.tgz#08958f1371179f62df6966d8a614003d11faeb04" dependencies: @@ -27,25 +27,6 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/core@^7.0.1": - version "7.1.5" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.1.5.tgz#abb32d7aa247a91756469e788998db6a72b93090" - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.1.5" - "@babel/helpers" "^7.1.5" - "@babel/parser" "^7.1.5" - "@babel/template" "^7.1.2" - "@babel/traverse" "^7.1.5" - "@babel/types" "^7.1.5" - convert-source-map "^1.1.0" - debug "^3.1.0" - json5 "^0.5.0" - lodash "^4.17.10" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - "@babel/generator@^7.0.0", "@babel/generator@^7.1.5": version "7.1.5" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.1.5.tgz#615f064d13d95f8f9157c7261f68eddf32ec15b3" @@ -199,7 +180,7 @@ "@babel/traverse" "^7.1.0" "@babel/types" "^7.0.0" -"@babel/helpers@^7.1.0", "@babel/helpers@^7.1.5": +"@babel/helpers@^7.1.0": version "7.1.5" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.1.5.tgz#68bfc1895d685f2b8f1995e788dbfe1f6ccb1996" dependencies: @@ -382,18 +363,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-destructuring@7.0.0": +"@babel/plugin-transform-destructuring@7.0.0", "@babel/plugin-transform-destructuring@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.0.0.tgz#68e911e1935dda2f06b6ccbbf184ffb024e9d43a" dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-destructuring@^7.0.0": - version "7.1.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.1.3.tgz#e69ff50ca01fac6cb72863c544e516c2b193012f" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-transform-dotall-regex@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.0.0.tgz#73a24da69bc3c370251f43a3d048198546115e58" @@ -1009,7 +984,7 @@ acorn-dynamic-import@^3.0.0: dependencies: acorn "^5.0.0" -acorn-globals@^4.1.0, acorn-globals@^4.3.0: +acorn-globals@^4.1.0: version "4.3.0" resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.0.tgz#e3b6f8da3c1552a95ae627571f7dd6923bb54103" dependencies: @@ -1067,16 +1042,7 @@ ajv@^5.3.0: fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.3.0" -ajv@^6.0.1: - version "6.5.4" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.5.4.tgz#247d5274110db653706b550fcc2b797ca28cfc59" - dependencies: - fast-deep-equal "^2.0.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ajv@^6.1.0, ajv@^6.5.3: +ajv@^6.0.1, ajv@^6.1.0, ajv@^6.5.3: version "6.5.5" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.5.5.tgz#cf97cdade71c6399a92c6d6c4177381291b781a1" dependencies: @@ -2299,6 +2265,14 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: safe-buffer "^5.0.1" sha.js "^2.4.8" +create-react-class@^15.5.2: + version "15.6.3" + resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.3.tgz#2d73237fb3f970ae6ebe011a9e66f46dbca80036" + dependencies: + fbjs "^0.8.9" + loose-envify "^1.3.1" + object-assign "^4.1.1" + cross-spawn@6.0.5, cross-spawn@^6.0.0, cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" @@ -2503,11 +2477,11 @@ csso@^3.5.0: dependencies: css-tree "1.0.0-alpha.29" -cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0", cssom@^0.3.4: +cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": version "0.3.4" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.4.tgz#8cd52e8a3acfd68d3aed38ee0a640177d2f9d797" -cssstyle@^1.0.0, cssstyle@^1.1.1: +cssstyle@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.1.1.tgz#18b038a9c44d65f7a8e428a653b9f6fe42faf5fb" dependencies: @@ -2531,7 +2505,7 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" -data-urls@^1.0.0, data-urls@^1.0.1: +data-urls@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" dependencies: @@ -2990,7 +2964,7 @@ escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1 version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" -escodegen@^1.11.0, escodegen@^1.9.1: +escodegen@^1.9.1: version "1.11.0" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.11.0.tgz#b27a9389481d5bfd5bec76f7bb1eb3f8f4556589" dependencies: @@ -3004,26 +2978,22 @@ escodegen@^1.11.0, escodegen@^1.9.1: eslint-config-react-app@^3.0.5: version "3.0.5" resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-3.0.5.tgz#d199088ab486d7ccc56d40dedcb1482b01934fb2" - integrity sha512-GjPuy0pbaCkl4+9wm8p0xpl/x/AGFy3wKuju3WNVefDNDDu8T6Ap1OFMDDJbYnOAI+4jfyAE3VT06lAYcJVpdw== dependencies: confusing-browser-globals "^1.0.5" eslint-config-standard-jsx@^6.0.1: version "6.0.2" resolved "https://registry.yarnpkg.com/eslint-config-standard-jsx/-/eslint-config-standard-jsx-6.0.2.tgz#90c9aa16ac2c4f8970c13fc7efc608bacd02da70" - integrity sha512-D+YWAoXw+2GIdbMBRAzWwr1ZtvnSf4n4yL0gKGg7ShUOGXkSOLerI17K4F6LdQMJPNMoWYqepzQD/fKY+tXNSg== eslint-config-standard-react@^7.0.2: version "7.0.2" resolved "https://registry.yarnpkg.com/eslint-config-standard-react/-/eslint-config-standard-react-7.0.2.tgz#80b51a0e0c371ef987679ee134768457a5b6db92" - integrity sha512-Zv/vubIfrwx4IbRXAggRjaswLXKdfFeuGfN365cVTaRmfpAy/7dIxMvJRZkUT99zEx8FOjTXL0KC4psfDjK/+w== dependencies: eslint-config-standard-jsx "^6.0.1" eslint-config-standard@^12.0.0: version "12.0.0" resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-12.0.0.tgz#638b4c65db0bd5a41319f96bba1f15ddad2107d9" - integrity sha512-COUz8FnXhqFitYj4DTqHzidjIL/t4mumGZto5c7DrBpvWoie+Sn3P4sLEzUGeYhRElWuFEf8K1S1EfvD1vixCQ== eslint-import-resolver-node@^0.3.1: version "0.3.2" @@ -3052,7 +3022,6 @@ eslint-module-utils@^2.2.0: eslint-plugin-es@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-1.3.2.tgz#6d2e94ed40db3b3d92a0eb55c7c06e3a7adbb3db" - integrity sha512-xrdbConViY20DhGrt9FwjhDo4fr/9Yus2pYf0xJsdJaCcUzMq7+pAoNH7kSXF6V08bRHMpgDWclYbcr/Sn3hNg== dependencies: eslint-utils "^1.3.0" regexpp "^2.0.1" @@ -3094,7 +3063,6 @@ eslint-plugin-jsx-a11y@6.1.2: eslint-plugin-node@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-8.0.0.tgz#fb9e8911f4543514f154bb6a5924b599aa645568" - integrity sha512-Y+ln8iQ52scz9+rSPnSWRaAxeWaoJZ4wIveDR0vLHkuSZGe44Vk1J4HX7WvEP5Cm+iXPE8ixo7OM7gAO3/OKpQ== dependencies: eslint-plugin-es "^1.3.1" eslint-utils "^1.3.1" @@ -3106,7 +3074,6 @@ eslint-plugin-node@^8.0.0: eslint-plugin-promise@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.0.1.tgz#2d074b653f35a23d1ba89d8e976a985117d1c6a2" - integrity sha512-Si16O0+Hqz1gDHsys6RtFRrW7cCTB6P7p3OJmKp3Y3dxpQE2qwOA7d3xnV+0mBmrPoi0RBnxlCKvqu70te6wjg== eslint-plugin-react@7.11.1: version "7.11.1" @@ -3121,7 +3088,6 @@ eslint-plugin-react@7.11.1: eslint-plugin-standard@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.0.0.tgz#f845b45109c99cd90e77796940a344546c8f6b5c" - integrity sha512-OwxJkR6TQiYMmt1EsNRMe5qG3GsbjlcOhbGUBY4LtavF9DsLaTcoR+j2Tdjqi23oUwKNUqX7qcn5fPStafMdlA== eslint-scope@3.7.1: version "3.7.1" @@ -3456,7 +3422,7 @@ fb-watchman@^2.0.0: dependencies: bser "^2.0.0" -fbjs@^0.8.1, fbjs@^0.8.16: +fbjs@^0.8.1, fbjs@^0.8.16, fbjs@^0.8.9: version "0.8.17" resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd" dependencies: @@ -3677,7 +3643,7 @@ from2@^2.1.0: inherits "^2.0.1" readable-stream "^2.0.0" -fs-extra@7.0.0: +fs-extra@7.0.0, fs-extra@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.0.tgz#8cc3f47ce07ef7b3593a11b9fb245f7e34c041d6" dependencies: @@ -3693,14 +3659,6 @@ fs-extra@^4.0.2: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - fs-minipass@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" @@ -4275,7 +4233,6 @@ ignore@^4.0.6: ignore@^5.0.2: version "5.0.4" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.0.4.tgz#33168af4a21e99b00c5d41cbadb6a6cb49903a45" - integrity sha512-WLsTMEhsQuXpCiG173+f3aymI43SXa+fB1rSfbzyP4GkPP+ZFVuO0/3sFUGNBtifisPeDcl/uD/Y2NxZ7xFq4g== immer@1.7.2: version "1.7.2" @@ -5120,38 +5077,7 @@ jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" -jsdom@>=11.0.0: - version "13.0.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-13.0.0.tgz#f1df2411b714a4e08d1bdc343c0a0889c688210f" - dependencies: - abab "^2.0.0" - acorn "^6.0.2" - acorn-globals "^4.3.0" - array-equal "^1.0.0" - cssom "^0.3.4" - cssstyle "^1.1.1" - data-urls "^1.0.1" - domexception "^1.0.1" - escodegen "^1.11.0" - html-encoding-sniffer "^1.0.2" - nwsapi "^2.0.9" - parse5 "5.1.0" - pn "^1.1.0" - request "^2.88.0" - request-promise-native "^1.0.5" - saxes "^3.1.3" - symbol-tree "^3.2.2" - tough-cookie "^2.4.3" - w3c-hr-time "^1.0.1" - w3c-xmlserializer "^1.0.0" - webidl-conversions "^4.0.2" - whatwg-encoding "^1.0.5" - whatwg-mimetype "^2.2.0" - whatwg-url "^7.0.0" - ws "^6.1.0" - xml-name-validator "^3.0.0" - -jsdom@^11.5.1: +jsdom@>=11.0.0, jsdom@^11.5.1: version "11.12.0" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8" dependencies: @@ -6030,7 +5956,7 @@ number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" -nwsapi@^2.0.7, nwsapi@^2.0.9: +nwsapi@^2.0.7: version "2.0.9" resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.0.9.tgz#77ac0cdfdcad52b6a1151a84e73254edc33ed016" @@ -6042,6 +5968,10 @@ object-assign@4.1.1, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^ version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" +object-assign@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" + object-copy@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" @@ -6149,18 +6079,12 @@ onetime@^2.0.0: dependencies: mimic-fn "^1.0.0" -opn@5.4.0: +opn@5.4.0, opn@^5.1.0: version "5.4.0" resolved "https://registry.yarnpkg.com/opn/-/opn-5.4.0.tgz#cb545e7aab78562beb11aa3bfabc7042e1761035" dependencies: is-wsl "^1.1.0" -opn@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/opn/-/opn-5.2.0.tgz#71fdf934d6827d676cecbea1531f95d354641225" - dependencies: - is-wsl "^1.1.0" - optimist@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" @@ -6333,10 +6257,6 @@ parse5@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" -parse5@5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2" - parse5@^3.0.1: version "3.0.3" resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c" @@ -7113,7 +7033,7 @@ prop-types@15.6.0: loose-envify "^1.3.1" object-assign "^4.1.1" -prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2: +prop-types@^15.5.7, prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2: version "15.6.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102" dependencies: @@ -7274,6 +7194,15 @@ react-app-polyfill@^0.1.3: raf "3.4.0" whatwg-fetch "3.0.0" +react-datetime@^2.16.2: + version "2.16.2" + resolved "https://registry.yarnpkg.com/react-datetime/-/react-datetime-2.16.2.tgz#d5d41fe3f6f3fa8fa1b068f2fae75cec25e1bb39" + dependencies: + create-react-class "^15.5.2" + object-assign "^3.0.0" + prop-types "^15.5.7" + react-onclickoutside "^6.5.0" + react-dev-utils@^6.1.1: version "6.1.1" resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-6.1.1.tgz#a07e3e8923c4609d9f27e5af5207e3ca20724895" @@ -7332,6 +7261,10 @@ react-lifecycles-compat@^3.0.0, react-lifecycles-compat@^3.0.2, react-lifecycles version "3.0.4" resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" +react-onclickoutside@^6.5.0: + version "6.7.1" + resolved "https://registry.yarnpkg.com/react-onclickoutside/-/react-onclickoutside-6.7.1.tgz#6a5b5b8b4eae6b776259712c89c8a2b36b17be93" + react-redux@^5.0.7: version "5.1.0" resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-5.1.0.tgz#948b1e2686473d1999092bcfb32d0dc43d33f667" @@ -7700,7 +7633,7 @@ request-promise-native@^1.0.5: stealthy-require "^1.1.0" tough-cookie ">=2.3.3" -request@^2.87.0, request@^2.88.0: +request@^2.87.0: version "2.88.0" resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" dependencies: @@ -7781,18 +7714,12 @@ resolve@1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" -resolve@1.8.1, resolve@^1.6.0, resolve@^1.8.1: +resolve@1.8.1, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.6.0, resolve@^1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" dependencies: path-parse "^1.0.5" -resolve@^1.3.2, resolve@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.6.0.tgz#0fbd21278b27b4004481c395349e7aba60a9ff5c" - dependencies: - path-parse "^1.0.5" - restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" @@ -7898,12 +7825,6 @@ sax@^1.2.4, sax@~1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" -saxes@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/saxes/-/saxes-3.1.3.tgz#334ab3b802a465ccda96fff9bdefbd505546ffa8" - dependencies: - xmlchars "^1.3.1" - scheduler@^0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.10.0.tgz#7988de90fe7edccc774ea175a783e69c40c521e1" @@ -8588,7 +8509,7 @@ topo@2.x.x: dependencies: hoek "4.x.x" -tough-cookie@>=2.3.3, tough-cookie@^2.3.4, tough-cookie@^2.4.3, tough-cookie@~2.4.3: +tough-cookie@>=2.3.3, tough-cookie@^2.3.4, tough-cookie@~2.4.3: version "2.4.3" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" dependencies: @@ -8876,14 +8797,6 @@ w3c-hr-time@^1.0.1: dependencies: browser-process-hrtime "^0.1.2" -w3c-xmlserializer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-1.0.0.tgz#d23e20de595b892056f20a359fc2622908d48695" - dependencies: - domexception "^1.0.1" - webidl-conversions "^4.0.2" - xml-name-validator "^3.0.0" - walker@~1.0.5: version "1.0.7" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" @@ -9031,20 +8944,16 @@ websocket-extensions@>=0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" -whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3, whatwg-encoding@^1.0.5: +whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3: version "1.0.5" resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" dependencies: iconv-lite "0.4.24" -whatwg-fetch@3.0.0: +whatwg-fetch@3.0.0, whatwg-fetch@>=0.10.0: version "3.0.0" resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz#fc804e458cc460009b1a2b966bc8817d2578aefb" -whatwg-fetch@>=0.10.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" - whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.2.0.tgz#a3d58ef10b76009b042d03e25591ece89b88d171" @@ -9238,20 +9147,10 @@ ws@^5.2.0: dependencies: async-limiter "~1.0.0" -ws@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.0.tgz#119a9dbf92c54e190ec18d10e871d55c95cf9373" - dependencies: - async-limiter "~1.0.0" - xml-name-validator@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" -xmlchars@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-1.3.1.tgz#1dda035f833dbb4f86a0c28eaa6ca769214793cf" - xregexp@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.0.0.tgz#e698189de49dd2a18cc5687b05e17c8e43943020" -- GitLab From d31b57a7fa0abeb11589a642146ad7e1ecd6a346 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Fri, 23 Nov 2018 13:15:25 +0200 Subject: [PATCH 220/249] NY-5608 update dashboard with phone from authprovidersList --- src/components/dashboard_users/reducer.js | 2 +- src/utils/grpc_proto/account.proto | 2 + src/utils/grpc_proto/admin_account.proto | 45 +- src/utils/grpc_proto/auth.proto | 18 +- .../grpc_proto/generated/admin_account_pb.js | 1010 +++++++++++++---- src/utils/grpc_proto/generated/auth_pb.js | 98 +- src/utils/services/ag_grid_server_model.js | 15 +- 7 files changed, 936 insertions(+), 254 deletions(-) diff --git a/src/components/dashboard_users/reducer.js b/src/components/dashboard_users/reducer.js index 3fc67e5..5e2109f 100644 --- a/src/components/dashboard_users/reducer.js +++ b/src/components/dashboard_users/reducer.js @@ -11,7 +11,7 @@ const initialState = { {headerName: "First name", hide: false, field: "firstname", filter: 'agTextColumnFilter', cellRenderer: "agGroupCellRenderer", cellRendererParams: { innerRenderer: userAvatar } }, {headerName: "Last name", hide: false, field: "lastname", filter: 'agTextColumnFilter' }, {headerName: "Username", hide: false, field: "username", filter: 'agTextColumnFilter' }, - {headerName: "Authentication Identifier", hide: false, field: "authenticationidentifier", filter: 'agTextColumnFilter' }, + {headerName: "Phone", hide: false, field: "authPhone", filter: 'agTextColumnFilter' }, {headerName: "Access Status", hide: false, field: "accessstatus", filter: 'agTextColumnFilter' }, {headerName: "Created", hide: false, field: "creationtimestamp", filter: 'agDateColumnFilter', cellRenderer: "agGroupCellRenderer", cellRendererParams: { innerRenderer: dateTimeStructure } }, {headerName: "Updated", hide: false, field: "lastupdatetimestamp", filter: 'agDateColumnFilter', cellRenderer: "agGroupCellRenderer", cellRendererParams: { innerRenderer: dateTimeStructure } }, diff --git a/src/utils/grpc_proto/account.proto b/src/utils/grpc_proto/account.proto index 518e5db..3eda8dc 100644 --- a/src/utils/grpc_proto/account.proto +++ b/src/utils/grpc_proto/account.proto @@ -203,6 +203,8 @@ message AuthProviderDetails { message ContactDetails { ContactType type = 1; string value = 2; + /* The label is not mandatory. It could be used only when type field is set to 'PHONE_CONTACT'. + * The value of this label should clarify the phone number: for example "work", "home" etc. */ string label = 3; } diff --git a/src/utils/grpc_proto/admin_account.proto b/src/utils/grpc_proto/admin_account.proto index 295d721..a5434bd 100644 --- a/src/utils/grpc_proto/admin_account.proto +++ b/src/utils/grpc_proto/admin_account.proto @@ -20,13 +20,20 @@ service AdminAccountService { rpc createAccount(CreateAccountRequest) returns (account.AccountResponse); } -message ColumnFilter { - string filterType = 1; -} - -message SortModel { +message FilterModel { + enum FilterType { + TYPE_NOT_SET = 0; + CONTAINS = 1; + NOTCONTAINS = 2; + EQUALS = 3; + NOTEQUAL = 4; + STARTSWITH = 5; + ENDSWITH = 6; + } string colId = 1; - string sort = 2; + FilterType filterType = 2; + string filterValue = 3; + string valueType = 4; // text } message AccountsCount { @@ -39,14 +46,30 @@ message EmptyRequest { message GetAllAccountsRequest { int32 startRow = 1; int32 endRow =2; -// map filterModel = 3; -// repeated SortModel sortModel = 4; + repeated FilterModel filterModel = 3; +} + +message AccountDetails { + string accountId = 1; + string profileId = 2; + repeated account.AuthProviderDetails authProviders = 3; + string avatar = 4; + string accountMark = 5; + string accountName = 6; + string firstName = 7; + string lastName = 8; + string username = 9; + string qrCode = 10; + repeated account.ContactDetails contactsInfo = 11; + repeated account.Role roles = 12; + account.AccessStatus accessStatus = 13; + account.Date birthday = 14; + int64 creationTimestamp = 15; // Creation timestamp is set when account is created. + int64 lastUpdateTimestamp = 16; // Update timestamp is '0' if account is never updated. } message AccountAdminResponse { - repeated account.AccountDetails accountDetails = 1; - int32 lastRow = 2; - repeated string secondaryColumnFields = 3; + repeated AccountDetails accountDetails = 1; } message AccountsAdminResponse { diff --git a/src/utils/grpc_proto/auth.proto b/src/utils/grpc_proto/auth.proto index 6b1077c..a04c190 100644 --- a/src/utils/grpc_proto/auth.proto +++ b/src/utils/grpc_proto/auth.proto @@ -70,6 +70,17 @@ message VerifyAuthProviderRequest { string verifyToken = 1; string verifyCode=2; string profileId=3; + enum Action { + ACTION_NOT_SET = 0; + ACTION_ADD_AUTH_PROVIDER = 1; + ACTION_UPDATE_AUTH_PROVIDER = 2; + } + //sidType of the auth provider to be removed; used with action: ACTION_UPDATE_AUTH_PROVIDER + SidType sidTypeToRemove = 4; + //auth provider to be removed; used with action: ACTION_UPDATE_AUTH_PROVIDER + string sidToRemove = 5; + //action: for adding/updating auth provider + Action action = 6; } message GenerateTokenResponse { @@ -122,7 +133,12 @@ message ErrorResponse { EXPIRED_REFRESH_TOKEN = 18; ACCESS_DISABLED = 19; ACCESS_SUSPENDED = 20; - + //Missing verify action: adding/updating auth provider + MISSING_VERIFY_ACTION = 21; + //Missing data for update: sidTypeToRemove, sidToRemove + MISSING_UPDATE_AUTH_PROVIDER_DATA = 22; + //Several input fields are not valid + MULTIPLE_INVALID_PARAMETERS = 23; } Cause cause = 1; string message = 2; diff --git a/src/utils/grpc_proto/generated/admin_account_pb.js b/src/utils/grpc_proto/generated/admin_account_pb.js index d56ecad..59506e0 100644 --- a/src/utils/grpc_proto/generated/admin_account_pb.js +++ b/src/utils/grpc_proto/generated/admin_account_pb.js @@ -14,13 +14,14 @@ var global = Function('return this')(); var account_pb = require('./account_pb.js'); goog.exportSymbol('proto.admin.AccountAdminResponse', null, global); +goog.exportSymbol('proto.admin.AccountDetails', null, global); goog.exportSymbol('proto.admin.AccountsAdminResponse', null, global); goog.exportSymbol('proto.admin.AccountsCount', null, global); -goog.exportSymbol('proto.admin.ColumnFilter', null, global); goog.exportSymbol('proto.admin.CreateAccountRequest', null, global); goog.exportSymbol('proto.admin.EmptyRequest', null, global); +goog.exportSymbol('proto.admin.FilterModel', null, global); +goog.exportSymbol('proto.admin.FilterModel.FilterType', null, global); goog.exportSymbol('proto.admin.GetAllAccountsRequest', null, global); -goog.exportSymbol('proto.admin.SortModel', null, global); /** * Generated by JsPbCodeGenerator. @@ -32,12 +33,12 @@ goog.exportSymbol('proto.admin.SortModel', null, global); * @extends {jspb.Message} * @constructor */ -proto.admin.ColumnFilter = function(opt_data) { +proto.admin.FilterModel = function(opt_data) { jspb.Message.initialize(this, opt_data, 0, -1, null, null); }; -goog.inherits(proto.admin.ColumnFilter, jspb.Message); +goog.inherits(proto.admin.FilterModel, jspb.Message); if (goog.DEBUG && !COMPILED) { - proto.admin.ColumnFilter.displayName = 'proto.admin.ColumnFilter'; + proto.admin.FilterModel.displayName = 'proto.admin.FilterModel'; } @@ -52,8 +53,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * for transitional soy proto support: http://goto/soy-param-migration * @return {!Object} */ -proto.admin.ColumnFilter.prototype.toObject = function(opt_includeInstance) { - return proto.admin.ColumnFilter.toObject(opt_includeInstance, this); +proto.admin.FilterModel.prototype.toObject = function(opt_includeInstance) { + return proto.admin.FilterModel.toObject(opt_includeInstance, this); }; @@ -62,13 +63,16 @@ proto.admin.ColumnFilter.prototype.toObject = function(opt_includeInstance) { * @param {boolean|undefined} includeInstance Whether to include the JSPB * instance for transitional soy proto support: * http://goto/soy-param-migration - * @param {!proto.admin.ColumnFilter} msg The msg instance to transform. + * @param {!proto.admin.FilterModel} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.admin.ColumnFilter.toObject = function(includeInstance, msg) { +proto.admin.FilterModel.toObject = function(includeInstance, msg) { var f, obj = { - filtertype: jspb.Message.getFieldWithDefault(msg, 1, "") + colid: jspb.Message.getFieldWithDefault(msg, 1, ""), + filtertype: jspb.Message.getFieldWithDefault(msg, 2, 0), + filtervalue: jspb.Message.getFieldWithDefault(msg, 3, ""), + valuetype: jspb.Message.getFieldWithDefault(msg, 4, "") }; if (includeInstance) { @@ -82,23 +86,23 @@ proto.admin.ColumnFilter.toObject = function(includeInstance, msg) { /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.admin.ColumnFilter} + * @return {!proto.admin.FilterModel} */ -proto.admin.ColumnFilter.deserializeBinary = function(bytes) { +proto.admin.FilterModel.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.admin.ColumnFilter; - return proto.admin.ColumnFilter.deserializeBinaryFromReader(msg, reader); + var msg = new proto.admin.FilterModel; + return proto.admin.FilterModel.deserializeBinaryFromReader(msg, reader); }; /** * Deserializes binary data (in protobuf wire format) from the * given reader into the given message object. - * @param {!proto.admin.ColumnFilter} msg The message object to deserialize into. + * @param {!proto.admin.FilterModel} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.admin.ColumnFilter} + * @return {!proto.admin.FilterModel} */ -proto.admin.ColumnFilter.deserializeBinaryFromReader = function(msg, reader) { +proto.admin.FilterModel.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -107,8 +111,20 @@ proto.admin.ColumnFilter.deserializeBinaryFromReader = function(msg, reader) { switch (field) { case 1: var value = /** @type {string} */ (reader.readString()); + msg.setColid(value); + break; + case 2: + var value = /** @type {!proto.admin.FilterModel.FilterType} */ (reader.readEnum()); msg.setFiltertype(value); break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setFiltervalue(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setValuetype(value); + break; default: reader.skipField(); break; @@ -122,9 +138,9 @@ proto.admin.ColumnFilter.deserializeBinaryFromReader = function(msg, reader) { * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.admin.ColumnFilter.prototype.serializeBinary = function() { +proto.admin.FilterModel.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.admin.ColumnFilter.serializeBinaryToWriter(this, writer); + proto.admin.FilterModel.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -132,203 +148,113 @@ proto.admin.ColumnFilter.prototype.serializeBinary = function() { /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.admin.ColumnFilter} message + * @param {!proto.admin.FilterModel} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.admin.ColumnFilter.serializeBinaryToWriter = function(message, writer) { +proto.admin.FilterModel.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getFiltertype(); + f = message.getColid(); if (f.length > 0) { writer.writeString( 1, f ); } + f = message.getFiltertype(); + if (f !== 0.0) { + writer.writeEnum( + 2, + f + ); + } + f = message.getFiltervalue(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getValuetype(); + if (f.length > 0) { + writer.writeString( + 4, + f + ); + } }; /** - * optional string filterType = 1; - * @return {string} - */ -proto.admin.ColumnFilter.prototype.getFiltertype = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); -}; - - -/** @param {string} value */ -proto.admin.ColumnFilter.prototype.setFiltertype = function(value) { - jspb.Message.setProto3StringField(this, 1, value); -}; - - - -/** - * Generated by JsPbCodeGenerator. - * @param {Array=} opt_data Optional initial data array, typically from a - * server response, or constructed directly in Javascript. The array is used - * in place and becomes part of the constructed object. It is not cloned. - * If no data is provided, the constructed object will be empty, but still - * valid. - * @extends {jspb.Message} - * @constructor - */ -proto.admin.SortModel = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); -}; -goog.inherits(proto.admin.SortModel, jspb.Message); -if (goog.DEBUG && !COMPILED) { - proto.admin.SortModel.displayName = 'proto.admin.SortModel'; -} - - -if (jspb.Message.GENERATE_TO_OBJECT) { -/** - * Creates an object representation of this proto suitable for use in Soy templates. - * Field names that are reserved in JavaScript and will be renamed to pb_name. - * To access a reserved field use, foo.pb_, eg, foo.pb_default. - * For the list of reserved names please see: - * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. - * @param {boolean=} opt_includeInstance Whether to include the JSPB instance - * for transitional soy proto support: http://goto/soy-param-migration - * @return {!Object} - */ -proto.admin.SortModel.prototype.toObject = function(opt_includeInstance) { - return proto.admin.SortModel.toObject(opt_includeInstance, this); -}; - - -/** - * Static version of the {@see toObject} method. - * @param {boolean|undefined} includeInstance Whether to include the JSPB - * instance for transitional soy proto support: - * http://goto/soy-param-migration - * @param {!proto.admin.SortModel} msg The msg instance to transform. - * @return {!Object} - * @suppress {unusedLocalVariables} f is only used for nested messages + * @enum {number} */ -proto.admin.SortModel.toObject = function(includeInstance, msg) { - var f, obj = { - colid: jspb.Message.getFieldWithDefault(msg, 1, ""), - sort: jspb.Message.getFieldWithDefault(msg, 2, "") - }; - - if (includeInstance) { - obj.$jspbMessageInstance = msg; - } - return obj; +proto.admin.FilterModel.FilterType = { + TYPE_NOT_SET: 0, + CONTAINS: 1, + NOTCONTAINS: 2, + EQUALS: 3, + NOTEQUAL: 4, + STARTSWITH: 5, + ENDSWITH: 6 }; -} - /** - * Deserializes binary data (in protobuf wire format). - * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.admin.SortModel} + * optional string colId = 1; + * @return {string} */ -proto.admin.SortModel.deserializeBinary = function(bytes) { - var reader = new jspb.BinaryReader(bytes); - var msg = new proto.admin.SortModel; - return proto.admin.SortModel.deserializeBinaryFromReader(msg, reader); +proto.admin.FilterModel.prototype.getColid = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; -/** - * Deserializes binary data (in protobuf wire format) from the - * given reader into the given message object. - * @param {!proto.admin.SortModel} msg The message object to deserialize into. - * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.admin.SortModel} - */ -proto.admin.SortModel.deserializeBinaryFromReader = function(msg, reader) { - while (reader.nextField()) { - if (reader.isEndGroup()) { - break; - } - var field = reader.getFieldNumber(); - switch (field) { - case 1: - var value = /** @type {string} */ (reader.readString()); - msg.setColid(value); - break; - case 2: - var value = /** @type {string} */ (reader.readString()); - msg.setSort(value); - break; - default: - reader.skipField(); - break; - } - } - return msg; +/** @param {string} value */ +proto.admin.FilterModel.prototype.setColid = function(value) { + jspb.Message.setProto3StringField(this, 1, value); }; /** - * Serializes the message to binary data (in protobuf wire format). - * @return {!Uint8Array} + * optional FilterType filterType = 2; + * @return {!proto.admin.FilterModel.FilterType} */ -proto.admin.SortModel.prototype.serializeBinary = function() { - var writer = new jspb.BinaryWriter(); - proto.admin.SortModel.serializeBinaryToWriter(this, writer); - return writer.getResultBuffer(); +proto.admin.FilterModel.prototype.getFiltertype = function() { + return /** @type {!proto.admin.FilterModel.FilterType} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); }; -/** - * Serializes the given message to binary data (in protobuf wire - * format), writing to the given BinaryWriter. - * @param {!proto.admin.SortModel} message - * @param {!jspb.BinaryWriter} writer - * @suppress {unusedLocalVariables} f is only used for nested messages - */ -proto.admin.SortModel.serializeBinaryToWriter = function(message, writer) { - var f = undefined; - f = message.getColid(); - if (f.length > 0) { - writer.writeString( - 1, - f - ); - } - f = message.getSort(); - if (f.length > 0) { - writer.writeString( - 2, - f - ); - } +/** @param {!proto.admin.FilterModel.FilterType} value */ +proto.admin.FilterModel.prototype.setFiltertype = function(value) { + jspb.Message.setProto3EnumField(this, 2, value); }; /** - * optional string colId = 1; + * optional string filterValue = 3; * @return {string} */ -proto.admin.SortModel.prototype.getColid = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +proto.admin.FilterModel.prototype.getFiltervalue = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); }; /** @param {string} value */ -proto.admin.SortModel.prototype.setColid = function(value) { - jspb.Message.setProto3StringField(this, 1, value); +proto.admin.FilterModel.prototype.setFiltervalue = function(value) { + jspb.Message.setProto3StringField(this, 3, value); }; /** - * optional string sort = 2; + * optional string valueType = 4; * @return {string} */ -proto.admin.SortModel.prototype.getSort = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +proto.admin.FilterModel.prototype.getValuetype = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); }; /** @param {string} value */ -proto.admin.SortModel.prototype.setSort = function(value) { - jspb.Message.setProto3StringField(this, 2, value); +proto.admin.FilterModel.prototype.setValuetype = function(value) { + jspb.Message.setProto3StringField(this, 4, value); }; @@ -602,12 +528,19 @@ proto.admin.EmptyRequest.serializeBinaryToWriter = function(message, writer) { * @constructor */ proto.admin.GetAllAccountsRequest = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, null, null); + jspb.Message.initialize(this, opt_data, 0, -1, proto.admin.GetAllAccountsRequest.repeatedFields_, null); }; goog.inherits(proto.admin.GetAllAccountsRequest, jspb.Message); if (goog.DEBUG && !COMPILED) { proto.admin.GetAllAccountsRequest.displayName = 'proto.admin.GetAllAccountsRequest'; } +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.admin.GetAllAccountsRequest.repeatedFields_ = [3]; + if (jspb.Message.GENERATE_TO_OBJECT) { @@ -638,7 +571,9 @@ proto.admin.GetAllAccountsRequest.prototype.toObject = function(opt_includeInsta proto.admin.GetAllAccountsRequest.toObject = function(includeInstance, msg) { var f, obj = { startrow: jspb.Message.getFieldWithDefault(msg, 1, 0), - endrow: jspb.Message.getFieldWithDefault(msg, 2, 0) + endrow: jspb.Message.getFieldWithDefault(msg, 2, 0), + filtermodelList: jspb.Message.toObjectList(msg.getFiltermodelList(), + proto.admin.FilterModel.toObject, includeInstance) }; if (includeInstance) { @@ -683,6 +618,11 @@ proto.admin.GetAllAccountsRequest.deserializeBinaryFromReader = function(msg, re var value = /** @type {number} */ (reader.readInt32()); msg.setEndrow(value); break; + case 3: + var value = new proto.admin.FilterModel; + reader.readMessage(value,proto.admin.FilterModel.deserializeBinaryFromReader); + msg.addFiltermodel(value); + break; default: reader.skipField(); break; @@ -726,6 +666,14 @@ proto.admin.GetAllAccountsRequest.serializeBinaryToWriter = function(message, wr f ); } + f = message.getFiltermodelList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 3, + f, + proto.admin.FilterModel.serializeBinaryToWriter + ); + } }; @@ -759,6 +707,37 @@ proto.admin.GetAllAccountsRequest.prototype.setEndrow = function(value) { }; +/** + * repeated FilterModel filterModel = 3; + * @return {!Array} + */ +proto.admin.GetAllAccountsRequest.prototype.getFiltermodelList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.admin.FilterModel, 3)); +}; + + +/** @param {!Array} value */ +proto.admin.GetAllAccountsRequest.prototype.setFiltermodelList = function(value) { + jspb.Message.setRepeatedWrapperField(this, 3, value); +}; + + +/** + * @param {!proto.admin.FilterModel=} opt_value + * @param {number=} opt_index + * @return {!proto.admin.FilterModel} + */ +proto.admin.GetAllAccountsRequest.prototype.addFiltermodel = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.admin.FilterModel, opt_index); +}; + + +proto.admin.GetAllAccountsRequest.prototype.clearFiltermodelList = function() { + this.setFiltermodelList([]); +}; + + /** * Generated by JsPbCodeGenerator. @@ -770,19 +749,19 @@ proto.admin.GetAllAccountsRequest.prototype.setEndrow = function(value) { * @extends {jspb.Message} * @constructor */ -proto.admin.AccountAdminResponse = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.admin.AccountAdminResponse.repeatedFields_, null); +proto.admin.AccountDetails = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.admin.AccountDetails.repeatedFields_, null); }; -goog.inherits(proto.admin.AccountAdminResponse, jspb.Message); +goog.inherits(proto.admin.AccountDetails, jspb.Message); if (goog.DEBUG && !COMPILED) { - proto.admin.AccountAdminResponse.displayName = 'proto.admin.AccountAdminResponse'; + proto.admin.AccountDetails.displayName = 'proto.admin.AccountDetails'; } /** * List of repeated fields within this message type. * @private {!Array} * @const */ -proto.admin.AccountAdminResponse.repeatedFields_ = [1,3]; +proto.admin.AccountDetails.repeatedFields_ = [3,11,12]; @@ -797,8 +776,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * for transitional soy proto support: http://goto/soy-param-migration * @return {!Object} */ -proto.admin.AccountAdminResponse.prototype.toObject = function(opt_includeInstance) { - return proto.admin.AccountAdminResponse.toObject(opt_includeInstance, this); +proto.admin.AccountDetails.prototype.toObject = function(opt_includeInstance) { + return proto.admin.AccountDetails.toObject(opt_includeInstance, this); }; @@ -807,16 +786,30 @@ proto.admin.AccountAdminResponse.prototype.toObject = function(opt_includeInstan * @param {boolean|undefined} includeInstance Whether to include the JSPB * instance for transitional soy proto support: * http://goto/soy-param-migration - * @param {!proto.admin.AccountAdminResponse} msg The msg instance to transform. + * @param {!proto.admin.AccountDetails} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.admin.AccountAdminResponse.toObject = function(includeInstance, msg) { +proto.admin.AccountDetails.toObject = function(includeInstance, msg) { var f, obj = { - accountdetailsList: jspb.Message.toObjectList(msg.getAccountdetailsList(), - account_pb.AccountDetails.toObject, includeInstance), - lastrow: jspb.Message.getFieldWithDefault(msg, 2, 0), - secondarycolumnfieldsList: jspb.Message.getRepeatedField(msg, 3) + accountid: jspb.Message.getFieldWithDefault(msg, 1, ""), + profileid: jspb.Message.getFieldWithDefault(msg, 2, ""), + authprovidersList: jspb.Message.toObjectList(msg.getAuthprovidersList(), + account_pb.AuthProviderDetails.toObject, includeInstance), + avatar: jspb.Message.getFieldWithDefault(msg, 4, ""), + accountmark: jspb.Message.getFieldWithDefault(msg, 5, ""), + accountname: jspb.Message.getFieldWithDefault(msg, 6, ""), + firstname: jspb.Message.getFieldWithDefault(msg, 7, ""), + lastname: jspb.Message.getFieldWithDefault(msg, 8, ""), + username: jspb.Message.getFieldWithDefault(msg, 9, ""), + qrcode: jspb.Message.getFieldWithDefault(msg, 10, ""), + contactsinfoList: jspb.Message.toObjectList(msg.getContactsinfoList(), + account_pb.ContactDetails.toObject, includeInstance), + rolesList: jspb.Message.getRepeatedField(msg, 12), + accessstatus: jspb.Message.getFieldWithDefault(msg, 13, 0), + birthday: (f = msg.getBirthday()) && account_pb.Date.toObject(includeInstance, f), + creationtimestamp: jspb.Message.getFieldWithDefault(msg, 15, 0), + lastupdatetimestamp: jspb.Message.getFieldWithDefault(msg, 16, 0) }; if (includeInstance) { @@ -830,23 +823,23 @@ proto.admin.AccountAdminResponse.toObject = function(includeInstance, msg) { /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.admin.AccountAdminResponse} + * @return {!proto.admin.AccountDetails} */ -proto.admin.AccountAdminResponse.deserializeBinary = function(bytes) { +proto.admin.AccountDetails.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.admin.AccountAdminResponse; - return proto.admin.AccountAdminResponse.deserializeBinaryFromReader(msg, reader); + var msg = new proto.admin.AccountDetails; + return proto.admin.AccountDetails.deserializeBinaryFromReader(msg, reader); }; /** * Deserializes binary data (in protobuf wire format) from the * given reader into the given message object. - * @param {!proto.admin.AccountAdminResponse} msg The message object to deserialize into. + * @param {!proto.admin.AccountDetails} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.admin.AccountAdminResponse} + * @return {!proto.admin.AccountDetails} */ -proto.admin.AccountAdminResponse.deserializeBinaryFromReader = function(msg, reader) { +proto.admin.AccountDetails.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -854,17 +847,71 @@ proto.admin.AccountAdminResponse.deserializeBinaryFromReader = function(msg, rea var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new account_pb.AccountDetails; - reader.readMessage(value,account_pb.AccountDetails.deserializeBinaryFromReader); - msg.addAccountdetails(value); + var value = /** @type {string} */ (reader.readString()); + msg.setAccountid(value); break; case 2: - var value = /** @type {number} */ (reader.readInt32()); - msg.setLastrow(value); + var value = /** @type {string} */ (reader.readString()); + msg.setProfileid(value); break; case 3: + var value = new account_pb.AuthProviderDetails; + reader.readMessage(value,account_pb.AuthProviderDetails.deserializeBinaryFromReader); + msg.addAuthproviders(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setAvatar(value); + break; + case 5: + var value = /** @type {string} */ (reader.readString()); + msg.setAccountmark(value); + break; + case 6: + var value = /** @type {string} */ (reader.readString()); + msg.setAccountname(value); + break; + case 7: + var value = /** @type {string} */ (reader.readString()); + msg.setFirstname(value); + break; + case 8: + var value = /** @type {string} */ (reader.readString()); + msg.setLastname(value); + break; + case 9: + var value = /** @type {string} */ (reader.readString()); + msg.setUsername(value); + break; + case 10: var value = /** @type {string} */ (reader.readString()); - msg.addSecondarycolumnfields(value); + msg.setQrcode(value); + break; + case 11: + var value = new account_pb.ContactDetails; + reader.readMessage(value,account_pb.ContactDetails.deserializeBinaryFromReader); + msg.addContactsinfo(value); + break; + case 12: + var value = /** @type {!Array} */ (reader.readPackedEnum()); + msg.setRolesList(value); + break; + case 13: + var value = /** @type {!proto.account.AccessStatus} */ (reader.readEnum()); + msg.setAccessstatus(value); + break; + case 14: + var value = new account_pb.Date; + reader.readMessage(value,account_pb.Date.deserializeBinaryFromReader); + msg.setBirthday(value); + break; + case 15: + var value = /** @type {number} */ (reader.readInt64()); + msg.setCreationtimestamp(value); + break; + case 16: + var value = /** @type {number} */ (reader.readInt64()); + msg.setLastupdatetimestamp(value); break; default: reader.skipField(); @@ -879,9 +926,9 @@ proto.admin.AccountAdminResponse.deserializeBinaryFromReader = function(msg, rea * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.admin.AccountAdminResponse.prototype.serializeBinary = function() { +proto.admin.AccountDetails.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.admin.AccountAdminResponse.serializeBinaryToWriter(this, writer); + proto.admin.AccountDetails.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -889,31 +936,124 @@ proto.admin.AccountAdminResponse.prototype.serializeBinary = function() { /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.admin.AccountAdminResponse} message + * @param {!proto.admin.AccountDetails} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.admin.AccountAdminResponse.serializeBinaryToWriter = function(message, writer) { +proto.admin.AccountDetails.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getAccountdetailsList(); + f = message.getAccountid(); if (f.length > 0) { - writer.writeRepeatedMessage( + writer.writeString( 1, - f, - account_pb.AccountDetails.serializeBinaryToWriter + f ); } - f = message.getLastrow(); - if (f !== 0) { - writer.writeInt32( + f = message.getProfileid(); + if (f.length > 0) { + writer.writeString( 2, f ); } - f = message.getSecondarycolumnfieldsList(); + f = message.getAuthprovidersList(); if (f.length > 0) { - writer.writeRepeatedString( + writer.writeRepeatedMessage( 3, + f, + account_pb.AuthProviderDetails.serializeBinaryToWriter + ); + } + f = message.getAvatar(); + if (f.length > 0) { + writer.writeString( + 4, + f + ); + } + f = message.getAccountmark(); + if (f.length > 0) { + writer.writeString( + 5, + f + ); + } + f = message.getAccountname(); + if (f.length > 0) { + writer.writeString( + 6, + f + ); + } + f = message.getFirstname(); + if (f.length > 0) { + writer.writeString( + 7, + f + ); + } + f = message.getLastname(); + if (f.length > 0) { + writer.writeString( + 8, + f + ); + } + f = message.getUsername(); + if (f.length > 0) { + writer.writeString( + 9, + f + ); + } + f = message.getQrcode(); + if (f.length > 0) { + writer.writeString( + 10, + f + ); + } + f = message.getContactsinfoList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 11, + f, + account_pb.ContactDetails.serializeBinaryToWriter + ); + } + f = message.getRolesList(); + if (f.length > 0) { + writer.writePackedEnum( + 12, + f + ); + } + f = message.getAccessstatus(); + if (f !== 0.0) { + writer.writeEnum( + 13, + f + ); + } + f = message.getBirthday(); + if (f != null) { + writer.writeMessage( + 14, + f, + account_pb.Date.serializeBinaryToWriter + ); + } + f = message.getCreationtimestamp(); + if (f !== 0) { + writer.writeInt64( + 15, + f + ); + } + f = message.getLastupdatetimestamp(); + if (f !== 0) { + writer.writeInt64( + 16, f ); } @@ -921,77 +1061,471 @@ proto.admin.AccountAdminResponse.serializeBinaryToWriter = function(message, wri /** - * repeated account.AccountDetails accountDetails = 1; - * @return {!Array} + * optional string accountId = 1; + * @return {string} */ -proto.admin.AccountAdminResponse.prototype.getAccountdetailsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, account_pb.AccountDetails, 1)); +proto.admin.AccountDetails.prototype.getAccountid = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); }; -/** @param {!Array} value */ -proto.admin.AccountAdminResponse.prototype.setAccountdetailsList = function(value) { - jspb.Message.setRepeatedWrapperField(this, 1, value); +/** @param {string} value */ +proto.admin.AccountDetails.prototype.setAccountid = function(value) { + jspb.Message.setProto3StringField(this, 1, value); }; /** - * @param {!proto.account.AccountDetails=} opt_value + * optional string profileId = 2; + * @return {string} + */ +proto.admin.AccountDetails.prototype.getProfileid = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** @param {string} value */ +proto.admin.AccountDetails.prototype.setProfileid = function(value) { + jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * repeated account.AuthProviderDetails authProviders = 3; + * @return {!Array} + */ +proto.admin.AccountDetails.prototype.getAuthprovidersList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, account_pb.AuthProviderDetails, 3)); +}; + + +/** @param {!Array} value */ +proto.admin.AccountDetails.prototype.setAuthprovidersList = function(value) { + jspb.Message.setRepeatedWrapperField(this, 3, value); +}; + + +/** + * @param {!proto.account.AuthProviderDetails=} opt_value * @param {number=} opt_index - * @return {!proto.account.AccountDetails} + * @return {!proto.account.AuthProviderDetails} */ -proto.admin.AccountAdminResponse.prototype.addAccountdetails = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.account.AccountDetails, opt_index); +proto.admin.AccountDetails.prototype.addAuthproviders = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.account.AuthProviderDetails, opt_index); }; -proto.admin.AccountAdminResponse.prototype.clearAccountdetailsList = function() { - this.setAccountdetailsList([]); +proto.admin.AccountDetails.prototype.clearAuthprovidersList = function() { + this.setAuthprovidersList([]); +}; + + +/** + * optional string avatar = 4; + * @return {string} + */ +proto.admin.AccountDetails.prototype.getAvatar = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** @param {string} value */ +proto.admin.AccountDetails.prototype.setAvatar = function(value) { + jspb.Message.setProto3StringField(this, 4, value); +}; + + +/** + * optional string accountMark = 5; + * @return {string} + */ +proto.admin.AccountDetails.prototype.getAccountmark = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); +}; + + +/** @param {string} value */ +proto.admin.AccountDetails.prototype.setAccountmark = function(value) { + jspb.Message.setProto3StringField(this, 5, value); +}; + + +/** + * optional string accountName = 6; + * @return {string} + */ +proto.admin.AccountDetails.prototype.getAccountname = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, "")); +}; + + +/** @param {string} value */ +proto.admin.AccountDetails.prototype.setAccountname = function(value) { + jspb.Message.setProto3StringField(this, 6, value); +}; + + +/** + * optional string firstName = 7; + * @return {string} + */ +proto.admin.AccountDetails.prototype.getFirstname = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, "")); +}; + + +/** @param {string} value */ +proto.admin.AccountDetails.prototype.setFirstname = function(value) { + jspb.Message.setProto3StringField(this, 7, value); +}; + + +/** + * optional string lastName = 8; + * @return {string} + */ +proto.admin.AccountDetails.prototype.getLastname = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, "")); +}; + + +/** @param {string} value */ +proto.admin.AccountDetails.prototype.setLastname = function(value) { + jspb.Message.setProto3StringField(this, 8, value); +}; + + +/** + * optional string username = 9; + * @return {string} + */ +proto.admin.AccountDetails.prototype.getUsername = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, "")); +}; + + +/** @param {string} value */ +proto.admin.AccountDetails.prototype.setUsername = function(value) { + jspb.Message.setProto3StringField(this, 9, value); +}; + + +/** + * optional string qrCode = 10; + * @return {string} + */ +proto.admin.AccountDetails.prototype.getQrcode = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 10, "")); +}; + + +/** @param {string} value */ +proto.admin.AccountDetails.prototype.setQrcode = function(value) { + jspb.Message.setProto3StringField(this, 10, value); +}; + + +/** + * repeated account.ContactDetails contactsInfo = 11; + * @return {!Array} + */ +proto.admin.AccountDetails.prototype.getContactsinfoList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, account_pb.ContactDetails, 11)); +}; + + +/** @param {!Array} value */ +proto.admin.AccountDetails.prototype.setContactsinfoList = function(value) { + jspb.Message.setRepeatedWrapperField(this, 11, value); +}; + + +/** + * @param {!proto.account.ContactDetails=} opt_value + * @param {number=} opt_index + * @return {!proto.account.ContactDetails} + */ +proto.admin.AccountDetails.prototype.addContactsinfo = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 11, opt_value, proto.account.ContactDetails, opt_index); +}; + + +proto.admin.AccountDetails.prototype.clearContactsinfoList = function() { + this.setContactsinfoList([]); +}; + + +/** + * repeated account.Role roles = 12; + * @return {!Array} + */ +proto.admin.AccountDetails.prototype.getRolesList = function() { + return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 12)); +}; + + +/** @param {!Array} value */ +proto.admin.AccountDetails.prototype.setRolesList = function(value) { + jspb.Message.setField(this, 12, value || []); +}; + + +/** + * @param {!proto.account.Role} value + * @param {number=} opt_index + */ +proto.admin.AccountDetails.prototype.addRoles = function(value, opt_index) { + jspb.Message.addToRepeatedField(this, 12, value, opt_index); +}; + + +proto.admin.AccountDetails.prototype.clearRolesList = function() { + this.setRolesList([]); +}; + + +/** + * optional account.AccessStatus accessStatus = 13; + * @return {!proto.account.AccessStatus} + */ +proto.admin.AccountDetails.prototype.getAccessstatus = function() { + return /** @type {!proto.account.AccessStatus} */ (jspb.Message.getFieldWithDefault(this, 13, 0)); +}; + + +/** @param {!proto.account.AccessStatus} value */ +proto.admin.AccountDetails.prototype.setAccessstatus = function(value) { + jspb.Message.setProto3EnumField(this, 13, value); +}; + + +/** + * optional account.Date birthday = 14; + * @return {?proto.account.Date} + */ +proto.admin.AccountDetails.prototype.getBirthday = function() { + return /** @type{?proto.account.Date} */ ( + jspb.Message.getWrapperField(this, account_pb.Date, 14)); +}; + + +/** @param {?proto.account.Date|undefined} value */ +proto.admin.AccountDetails.prototype.setBirthday = function(value) { + jspb.Message.setWrapperField(this, 14, value); +}; + + +proto.admin.AccountDetails.prototype.clearBirthday = function() { + this.setBirthday(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {!boolean} + */ +proto.admin.AccountDetails.prototype.hasBirthday = function() { + return jspb.Message.getField(this, 14) != null; }; /** - * optional int32 lastRow = 2; + * optional int64 creationTimestamp = 15; * @return {number} */ -proto.admin.AccountAdminResponse.prototype.getLastrow = function() { - return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +proto.admin.AccountDetails.prototype.getCreationtimestamp = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 15, 0)); }; /** @param {number} value */ -proto.admin.AccountAdminResponse.prototype.setLastrow = function(value) { - jspb.Message.setProto3IntField(this, 2, value); +proto.admin.AccountDetails.prototype.setCreationtimestamp = function(value) { + jspb.Message.setProto3IntField(this, 15, value); +}; + + +/** + * optional int64 lastUpdateTimestamp = 16; + * @return {number} + */ +proto.admin.AccountDetails.prototype.getLastupdatetimestamp = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 16, 0)); }; +/** @param {number} value */ +proto.admin.AccountDetails.prototype.setLastupdatetimestamp = function(value) { + jspb.Message.setProto3IntField(this, 16, value); +}; + + + /** - * repeated string secondaryColumnFields = 3; - * @return {!Array} + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor */ -proto.admin.AccountAdminResponse.prototype.getSecondarycolumnfieldsList = function() { - return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 3)); +proto.admin.AccountAdminResponse = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.admin.AccountAdminResponse.repeatedFields_, null); }; +goog.inherits(proto.admin.AccountAdminResponse, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.admin.AccountAdminResponse.displayName = 'proto.admin.AccountAdminResponse'; +} +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.admin.AccountAdminResponse.repeatedFields_ = [1]; + -/** @param {!Array} value */ -proto.admin.AccountAdminResponse.prototype.setSecondarycolumnfieldsList = function(value) { - jspb.Message.setField(this, 3, value || []); +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.admin.AccountAdminResponse.prototype.toObject = function(opt_includeInstance) { + return proto.admin.AccountAdminResponse.toObject(opt_includeInstance, this); }; /** - * @param {!string} value + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.admin.AccountAdminResponse} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.admin.AccountAdminResponse.toObject = function(includeInstance, msg) { + var f, obj = { + accountdetailsList: jspb.Message.toObjectList(msg.getAccountdetailsList(), + proto.admin.AccountDetails.toObject, includeInstance) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.admin.AccountAdminResponse} + */ +proto.admin.AccountAdminResponse.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.admin.AccountAdminResponse; + return proto.admin.AccountAdminResponse.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.admin.AccountAdminResponse} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.admin.AccountAdminResponse} + */ +proto.admin.AccountAdminResponse.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.admin.AccountDetails; + reader.readMessage(value,proto.admin.AccountDetails.deserializeBinaryFromReader); + msg.addAccountdetails(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.admin.AccountAdminResponse.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.admin.AccountAdminResponse.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.admin.AccountAdminResponse} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.admin.AccountAdminResponse.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getAccountdetailsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 1, + f, + proto.admin.AccountDetails.serializeBinaryToWriter + ); + } +}; + + +/** + * repeated AccountDetails accountDetails = 1; + * @return {!Array} + */ +proto.admin.AccountAdminResponse.prototype.getAccountdetailsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.admin.AccountDetails, 1)); +}; + + +/** @param {!Array} value */ +proto.admin.AccountAdminResponse.prototype.setAccountdetailsList = function(value) { + jspb.Message.setRepeatedWrapperField(this, 1, value); +}; + + +/** + * @param {!proto.admin.AccountDetails=} opt_value * @param {number=} opt_index + * @return {!proto.admin.AccountDetails} */ -proto.admin.AccountAdminResponse.prototype.addSecondarycolumnfields = function(value, opt_index) { - jspb.Message.addToRepeatedField(this, 3, value, opt_index); +proto.admin.AccountAdminResponse.prototype.addAccountdetails = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.admin.AccountDetails, opt_index); }; -proto.admin.AccountAdminResponse.prototype.clearSecondarycolumnfieldsList = function() { - this.setSecondarycolumnfieldsList([]); +proto.admin.AccountAdminResponse.prototype.clearAccountdetailsList = function() { + this.setAccountdetailsList([]); }; diff --git a/src/utils/grpc_proto/generated/auth_pb.js b/src/utils/grpc_proto/generated/auth_pb.js index 32c3af8..3f2dc6b 100644 --- a/src/utils/grpc_proto/generated/auth_pb.js +++ b/src/utils/grpc_proto/generated/auth_pb.js @@ -29,6 +29,7 @@ goog.exportSymbol('proto.authentication.SidType', null, global); goog.exportSymbol('proto.authentication.StatusResponse', null, global); goog.exportSymbol('proto.authentication.TokenResponseDetails', null, global); goog.exportSymbol('proto.authentication.VerifyAuthProviderRequest', null, global); +goog.exportSymbol('proto.authentication.VerifyAuthProviderRequest.Action', null, global); /** * Generated by JsPbCodeGenerator. @@ -1122,7 +1123,10 @@ proto.authentication.VerifyAuthProviderRequest.toObject = function(includeInstan var f, obj = { verifytoken: jspb.Message.getFieldWithDefault(msg, 1, ""), verifycode: jspb.Message.getFieldWithDefault(msg, 2, ""), - profileid: jspb.Message.getFieldWithDefault(msg, 3, "") + profileid: jspb.Message.getFieldWithDefault(msg, 3, ""), + sidtypetoremove: jspb.Message.getFieldWithDefault(msg, 4, 0), + sidtoremove: jspb.Message.getFieldWithDefault(msg, 5, ""), + action: jspb.Message.getFieldWithDefault(msg, 6, 0) }; if (includeInstance) { @@ -1171,6 +1175,18 @@ proto.authentication.VerifyAuthProviderRequest.deserializeBinaryFromReader = fun var value = /** @type {string} */ (reader.readString()); msg.setProfileid(value); break; + case 4: + var value = /** @type {!proto.authentication.SidType} */ (reader.readEnum()); + msg.setSidtypetoremove(value); + break; + case 5: + var value = /** @type {string} */ (reader.readString()); + msg.setSidtoremove(value); + break; + case 6: + var value = /** @type {!proto.authentication.VerifyAuthProviderRequest.Action} */ (reader.readEnum()); + msg.setAction(value); + break; default: reader.skipField(); break; @@ -1221,9 +1237,39 @@ proto.authentication.VerifyAuthProviderRequest.serializeBinaryToWriter = functio f ); } + f = message.getSidtypetoremove(); + if (f !== 0.0) { + writer.writeEnum( + 4, + f + ); + } + f = message.getSidtoremove(); + if (f.length > 0) { + writer.writeString( + 5, + f + ); + } + f = message.getAction(); + if (f !== 0.0) { + writer.writeEnum( + 6, + f + ); + } }; +/** + * @enum {number} + */ +proto.authentication.VerifyAuthProviderRequest.Action = { + ACTION_NOT_SET: 0, + ACTION_ADD_AUTH_PROVIDER: 1, + ACTION_UPDATE_AUTH_PROVIDER: 2 +}; + /** * optional string verifyToken = 1; * @return {string} @@ -1269,6 +1315,51 @@ proto.authentication.VerifyAuthProviderRequest.prototype.setProfileid = function }; +/** + * optional SidType sidTypeToRemove = 4; + * @return {!proto.authentication.SidType} + */ +proto.authentication.VerifyAuthProviderRequest.prototype.getSidtypetoremove = function() { + return /** @type {!proto.authentication.SidType} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); +}; + + +/** @param {!proto.authentication.SidType} value */ +proto.authentication.VerifyAuthProviderRequest.prototype.setSidtypetoremove = function(value) { + jspb.Message.setProto3EnumField(this, 4, value); +}; + + +/** + * optional string sidToRemove = 5; + * @return {string} + */ +proto.authentication.VerifyAuthProviderRequest.prototype.getSidtoremove = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); +}; + + +/** @param {string} value */ +proto.authentication.VerifyAuthProviderRequest.prototype.setSidtoremove = function(value) { + jspb.Message.setProto3StringField(this, 5, value); +}; + + +/** + * optional Action action = 6; + * @return {!proto.authentication.VerifyAuthProviderRequest.Action} + */ +proto.authentication.VerifyAuthProviderRequest.prototype.getAction = function() { + return /** @type {!proto.authentication.VerifyAuthProviderRequest.Action} */ (jspb.Message.getFieldWithDefault(this, 6, 0)); +}; + + +/** @param {!proto.authentication.VerifyAuthProviderRequest.Action} value */ +proto.authentication.VerifyAuthProviderRequest.prototype.setAction = function(value) { + jspb.Message.setProto3EnumField(this, 6, value); +}; + + /** * Generated by JsPbCodeGenerator. @@ -2339,7 +2430,10 @@ proto.authentication.ErrorResponse.Cause = { ACCESS_TOKEN_INVALID_ROLE: 17, EXPIRED_REFRESH_TOKEN: 18, ACCESS_DISABLED: 19, - ACCESS_SUSPENDED: 20 + ACCESS_SUSPENDED: 20, + MISSING_VERIFY_ACTION: 21, + MISSING_UPDATE_AUTH_PROVIDER_DATA: 22, + MULTIPLE_INVALID_PARAMETERS: 23 }; /** diff --git a/src/utils/services/ag_grid_server_model.js b/src/utils/services/ag_grid_server_model.js index a848a68..37fa8e8 100644 --- a/src/utils/services/ag_grid_server_model.js +++ b/src/utils/services/ag_grid_server_model.js @@ -33,18 +33,23 @@ ServerSideDatasource.prototype.getRows = function(params) { Promise.all([getUsersDataPromise, getCountOfAllAccountsPromise]).then((data) => { - + console.log(data[0]); data[0].accountdetailsList.map((item, index) => { + // convert Access Status int to string from protobuf item.accessstatus = item.accessstatus === undefined || item.accessstatus === 0 ? accountStatusVariations[1] : accountStatusVariations[item.accessstatus]; + + // convert Role list int to string from protobuf let roleListItem = item.rolesList.map((roleItem) => accountRoleVariations[roleItem]); item.rolesList = roleListItem; + // convert timestamp long to required date format let timestampCreationDate = item.creationtimestamp; let timestampCreated = moment(timestampCreationDate); // this is the format, which will be taken by from the endpoint let creationDate = `${timestampCreated.day() + 1}/${timestampCreated.month() + 1}/${timestampCreated.year()}` let creationTime = `${timestampCreated.format('hh:mm A')}`; item.creationtimestamp = [creationDate, creationTime] + // convert timestamp long to required time format let timestampUpdatedDate = item.lastupdatetimestamp; if (timestampUpdatedDate !== 0) { let timestampUpdated = moment(timestampUpdatedDate); // this is the format, which will be taken by from the endpoint @@ -55,6 +60,14 @@ ServerSideDatasource.prototype.getRows = function(params) { item.lastupdatetimestamp = ['no updates done', ''] } + // todo: rework this so it supports email and social providers + // note: for now it stays "hardcoded", due to AG-Grid freezing + // when you loop through item.authprovidersList items + item.authPhone = item.authprovidersList[0].authenticationtype === 1 ? item.authprovidersList[0].authenticationprovider : "N/A"; + item.authEmail = "N/A"; + item.authFacebook = "N/A"; + item.authGoogle = "N/A"; + return item; }) -- GitLab From 45d9211fb52a909ce1b275dfbed38c9d8eaf0d4f Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Fri, 23 Nov 2018 18:09:23 +0200 Subject: [PATCH 221/249] NY-5629 Login Option Parse Layout --- .../modal_content/delete_modal.js | 14 ++++--- .../contact_info/modal_content/edit_modal.js | 13 ++---- .../contact_info/static_control.js | 3 +- .../delete_profile/delete_profile_modal.js | 2 +- .../delete_avatar_modal/avatar_modal.js | 2 +- .../edit_user/generic_data/index.css | 6 +-- .../edit_user/generic_data/index.js | 31 ++++---------- src/components/edit_user/index.js | 4 +- .../manage_control/manage_control.js | 31 ++++++++++++++ .../manage_control_login_option.js | 35 ++++++++++++++++ src/components/edit_user/middleware.js | 40 ++++++++++++++++++- .../edit_user/tabs_navigation/index.js | 34 ++++++++++++---- .../tabs_navigation/login_options/index.js | 29 ++++---------- src/components/shared/ui/modal/modal.css | 5 +-- 14 files changed, 167 insertions(+), 82 deletions(-) create mode 100644 src/components/edit_user/manage_control/manage_control.js create mode 100644 src/components/edit_user/manage_control/manage_control_login_option.js diff --git a/src/components/edit_user/generic_data/contact_info/modal_content/delete_modal.js b/src/components/edit_user/generic_data/contact_info/modal_content/delete_modal.js index ab9cce3..6554012 100644 --- a/src/components/edit_user/generic_data/contact_info/modal_content/delete_modal.js +++ b/src/components/edit_user/generic_data/contact_info/modal_content/delete_modal.js @@ -7,18 +7,21 @@ import Button from '@material-ui/core/Button' const styles = {} const ContactInfoDeleteModal = (props) => { - const { handleModalCancel, handleDeleteContactConfirmed, value, type, classes } = props return (
-

Delete {type.toLowerCase()}

+

Delete {type}

-

Do you want to delete user's {value} from contact information?

+ { + type !== 'PHONE' + ?

Do you want to delete user's {type.toLowerCase()}: {value} from contact information?

+ :

Do you want to delete user's {type.toLowerCase()}: +{value} from contact information?

+ }
- +
@@ -30,7 +33,8 @@ ContactInfoDeleteModal.propTypes = { handleModalCancel: PropTypes.func, handleDeleteContactConfirmed: PropTypes.func, type: PropTypes.string.isRequired, - classes: PropTypes.object.isRequired + classes: PropTypes.object.isRequired, + value: PropTypes.string.isRequired } export default withStyles(styles)(ContactInfoDeleteModal) diff --git a/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js b/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js index 99b482c..3ad1c0a 100644 --- a/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js +++ b/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js @@ -64,22 +64,15 @@ class ContactInfoEditModal extends PureComponent {
- +
: type && type !== '' ?
- - + +
: null diff --git a/src/components/edit_user/generic_data/contact_info/static_control.js b/src/components/edit_user/generic_data/contact_info/static_control.js index ff66e5c..a17321b 100644 --- a/src/components/edit_user/generic_data/contact_info/static_control.js +++ b/src/components/edit_user/generic_data/contact_info/static_control.js @@ -52,8 +52,7 @@ const StaticControl = (props) => { {info.label} diff --git a/src/components/edit_user/generic_data/delete_profile/delete_profile_modal.js b/src/components/edit_user/generic_data/delete_profile/delete_profile_modal.js index 2c02e6c..cd4a2f7 100644 --- a/src/components/edit_user/generic_data/delete_profile/delete_profile_modal.js +++ b/src/components/edit_user/generic_data/delete_profile/delete_profile_modal.js @@ -23,7 +23,7 @@ const DeleteProfileModal = (props) => {
- +
diff --git a/src/components/edit_user/generic_data/edit_user_avatar/delete_avatar_modal/avatar_modal.js b/src/components/edit_user/generic_data/edit_user_avatar/delete_avatar_modal/avatar_modal.js index c42fbde..3672799 100644 --- a/src/components/edit_user/generic_data/edit_user_avatar/delete_avatar_modal/avatar_modal.js +++ b/src/components/edit_user/generic_data/edit_user_avatar/delete_avatar_modal/avatar_modal.js @@ -17,7 +17,7 @@ const AvatarContentModal = (props) => {
- +
diff --git a/src/components/edit_user/generic_data/index.css b/src/components/edit_user/generic_data/index.css index 7c18cf1..3ad694c 100644 --- a/src/components/edit_user/generic_data/index.css +++ b/src/components/edit_user/generic_data/index.css @@ -204,13 +204,13 @@ /* left: auto; right: 15px; top: auto; - bottom: 5px; + bottom: 5px; */ - max-width: 70px; + max-width: 350px; overflow: hidden; text-overflow: ellipsis; - white-space: normal; */ + white-space: nowrap; } .personal-info label { left: 15px; diff --git a/src/components/edit_user/generic_data/index.js b/src/components/edit_user/generic_data/index.js index ae70adc..260457f 100644 --- a/src/components/edit_user/generic_data/index.js +++ b/src/components/edit_user/generic_data/index.js @@ -6,12 +6,11 @@ import { withStyles } from '@material-ui/core/styles' import Card from '@material-ui/core/Card' import CardContent from '@material-ui/core/CardContent' import Typography from '@material-ui/core/Typography' -// import Grid from '@material-ui/core/Grid/Grid' import { formatDate } from 'utils/helpers/format_date' import Modal from '../../shared/ui/modal/modal' -import StaticControl from './contact_info/static_control' +import ManageControlContactInfo from '../manage_control/manage_control' import PersonalInfo from './personal_info/personal_info' import AccessStatus from './access_status/access_status' import UserAvatar from './edit_user_avatar/edit_user_avatar' @@ -206,10 +205,8 @@ class genericUserData extends Component { render () { /** - * @const {array} selectedUser * @const {Object} user * @const {Object} classes - * @const {Func} modalAlertDeleteAvatar * @const {Func} handleDeleteContactModal * @const {Func} handleEditContact * @const {Func} handleDeleteProfile @@ -222,25 +219,6 @@ class genericUserData extends Component { const { user, classes } = this.props const { avatar, contactInfo, accessStatus, personalInfo, modalState, activeFocusElement } = this.state - let controls = [] - - for (let key in contactInfo) { - let arr = contactInfo[key].map((el, index) => { - return ( - - ) - }) - - controls = [ ...controls, ...arr ] - } - return ( @@ -282,7 +260,12 @@ class genericUserData extends Component { Contact Information - {controls} + diff --git a/src/components/edit_user/index.js b/src/components/edit_user/index.js index 26d8b4d..b090524 100644 --- a/src/components/edit_user/index.js +++ b/src/components/edit_user/index.js @@ -43,7 +43,7 @@ class EditUser extends Component { } render () { - const { selectedUser } = this.props + const { selectedUser } = this.props return ( @@ -62,7 +62,7 @@ class EditUser extends Component { { - selectedUser.rolesList + selectedUser.loginOptionsList ? : null } diff --git a/src/components/edit_user/manage_control/manage_control.js b/src/components/edit_user/manage_control/manage_control.js new file mode 100644 index 0000000..53f479f --- /dev/null +++ b/src/components/edit_user/manage_control/manage_control.js @@ -0,0 +1,31 @@ +import React from 'react' +import PropTypes from 'prop-types' + +import StaticControl from '../generic_data/contact_info/static_control' + +const ManageControlContactInfo = (props) => { + const { contactInfoProfile, handleDeleteContactModal, handleEditContact, userID } = props + + let controls = [] + + for (let key in contactInfoProfile) { + let arr = contactInfoProfile[key].map((el, index) => { + return ( + + ) + }) + + controls = [...controls, ...arr] + } + + return controls +} + +export default ManageControlContactInfo diff --git a/src/components/edit_user/manage_control/manage_control_login_option.js b/src/components/edit_user/manage_control/manage_control_login_option.js new file mode 100644 index 0000000..bd908a1 --- /dev/null +++ b/src/components/edit_user/manage_control/manage_control_login_option.js @@ -0,0 +1,35 @@ +import React from 'react' +import PropTypes from 'prop-types' + +import StaticControl from '../generic_data/contact_info/static_control' + +const ManageControlLoginOption = (props) => { + const { loginOptions, handleDeleteContactModal, handleEditContact, userID } = props + + let controls = [] + + for (let key in loginOptions) { + let arr = loginOptions[key].map((el, index) => { + + console.log('===================================='); + console.log(key); + console.log('===================================='); + return ( + + ) + }) + + controls = [...controls, ...arr] + } + + return controls +} + +export default ManageControlLoginOption diff --git a/src/components/edit_user/middleware.js b/src/components/edit_user/middleware.js index 9471637..919f407 100644 --- a/src/components/edit_user/middleware.js +++ b/src/components/edit_user/middleware.js @@ -19,7 +19,12 @@ export function * getSelectedUserId (action) { PHONE = [], FACEBOOK = [], GOOGLEPLUS = [], - TWITTER = [] + TWITTER = [], + loginEmail = [], + loginPhone = [], + loginFacebook = [], + loginGoogleplus = [], + loginTwitter = [] accountPayload.contactsinfoList.forEach((el, index) => { switch (accountTypeString[el.type]) { @@ -43,6 +48,28 @@ export function * getSelectedUserId (action) { } }) + profilePayload.authprovidersList.forEach((el, index) => { + switch (accountTypeString[el.authenticationtype]) { + case 'EMAIL': + loginEmail.push({ value: el.authenticationprovider, type: el.authenticationtype, key: index }) + break + case 'PHONE': + loginPhone.push({ value: el.authenticationprovider, type: el.authenticationtype, key: index }) + break + case 'FACEBOOK': + loginFacebook.push({ value: el.authenticationprovider, type: el.authenticationtype, key: index }) + break + case 'GOOGLEPLUS': + loginGoogleplus.push({ value: el.authenticationprovider, type: el.authenticationtype, key: index }) + break + case 'TWITTER': + loginTwitter.push({ value: el.authenticationprovider, type: el.authenticationtype, key: index }) + break + default: + break + } + }) + let contactsinfoList = { EMAIL, PHONE, @@ -51,6 +78,14 @@ export function * getSelectedUserId (action) { TWITTER } + let loginOptionsList = { + EMAIL: loginEmail, + PHONE: loginPhone, + FACEBOOK: loginFacebook, + GOOGLEPLUS: loginGoogleplus, + TWITTER: loginTwitter + } + let birthday = '' if (accountPayload.birthday && accountPayload.birthday.year) { @@ -59,8 +94,9 @@ export function * getSelectedUserId (action) { let payload = { ...accountPayload, - loginoptions: profilePayload.authprovidersList, + ...profilePayload, contactsinfoList, + loginOptionsList, birthday } diff --git a/src/components/edit_user/tabs_navigation/index.js b/src/components/edit_user/tabs_navigation/index.js index ded3df0..075b448 100644 --- a/src/components/edit_user/tabs_navigation/index.js +++ b/src/components/edit_user/tabs_navigation/index.js @@ -7,7 +7,7 @@ import Tabs from '@material-ui/core/Tabs' import Tab from '@material-ui/core/Tab' import ManageUser from './manage_user' -// import LoginOptions from './login_options' +import LoginOptions from './login_options' import './tab_navigation.css' @@ -33,6 +33,7 @@ class TabsNavigation extends Component { this.state = { value: 0, + loginOptions: JSON.parse(JSON.stringify(this.props.user.loginOptionsList)), manageUser: { rolesList: this.props.user.rolesList } @@ -71,9 +72,25 @@ class TabsNavigation extends Component { } } - render () { + handleEditContact = () => { + console.log('====================================') + console.log('EDIT CONTACT') + console.log('====================================') + } + + handleDeleteContactModal = () => { + console.log('====================================') + console.log('DELETE CONTACT') + console.log('====================================') + } + + render () { const { classes } = this.props - const { value, manageUser } = this.state + const { value, manageUser, loginOptions } = this.state + + console.log('====================================') + console.log(this.state) + console.log('====================================') return ( @@ -92,11 +109,14 @@ class TabsNavigation extends Component { - {/* {value === 0 && + { + value === 0 && - } */} + } {value === 1 &&
active sessions live here
} {value === 2 && manageUser && ) - } + } } export default withStyles(styles)(TabsNavigation) diff --git a/src/components/edit_user/tabs_navigation/login_options/index.js b/src/components/edit_user/tabs_navigation/login_options/index.js index 7108957..944a376 100644 --- a/src/components/edit_user/tabs_navigation/login_options/index.js +++ b/src/components/edit_user/tabs_navigation/login_options/index.js @@ -2,34 +2,21 @@ import React from 'react' import Grid from '@material-ui/core/Grid' import Typography from '@material-ui/core/Typography' -import StaticControl from './../../generic_data/contact_info/static_control' - -import { accountContactType, accountLoginType } from './../../../../utils/services/accounts.js' +import ManageControlLoginOption from '../../manage_control/manage_control_login_option' const LoginOption = (props) => { - const { selectedUser, parentState, handleDeleteContact, handleEditContact } = props + const { loginOptions, handleDeleteContactModal, handleEditContact } = props return ( Login Options - - {selectedUser[0].loginoptions - - ? selectedUser[0].loginoptions.map((contactTypeItem, index) => { - return - }) - : null - } + ) diff --git a/src/components/shared/ui/modal/modal.css b/src/components/shared/ui/modal/modal.css index 18b944c..551c3a3 100644 --- a/src/components/shared/ui/modal/modal.css +++ b/src/components/shared/ui/modal/modal.css @@ -43,10 +43,7 @@ margin-left: 10px; } .modal-control-btn button, -.pfofile-delete-btn button:first-of-type { - color: #0086f8; -} -.modal-control-btn button { +.pfofile-delete-btn button { color: #0086f8; } .avatar-alert-delete, -- GitLab From d0fded32bcf38c72b7eb8c2e4d9c4b14c195dc0f Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Mon, 26 Nov 2018 17:59:33 +0200 Subject: [PATCH 222/249] NY-5660 and NY-5629 --- .../add_contact_info/add_contact_info.js | 70 +++++++++++ .../contact_info_control_options.js | 3 +- .../contact_info/contact_info_controls.js | 55 +++++++++ .../manage_control_contact_info.js} | 11 +- .../contact_info/static_control.js | 112 ------------------ .../type_controls/type_control_email.js | 56 +++++++++ .../type_controls/type_control_phone.js | 53 +++++++++ .../type_controls/type_control_social.js | 53 +++++++++ .../delete_profile/delete_profile.js | 30 +++-- .../edit_user/generic_data/index.css | 21 ++++ .../edit_user/generic_data/index.js | 49 +++++--- .../edit_user/tabs_navigation/index.css | 10 ++ .../edit_user/tabs_navigation/index.js | 80 ++++++++++--- .../tabs_navigation/login_options/index.js | 15 ++- .../login_option_control_options.js | 73 ++++++++++++ .../login_options/login_option_controls.js | 55 +++++++++ .../manage_control_login_option.js | 14 +-- .../modal_content/delete_modal.js | 40 +++++++ .../type_controls/type_control_email.js | 56 +++++++++ .../type_controls/type_control_phone.js | 53 +++++++++ .../type_controls/type_control_social.js | 53 +++++++++ .../tabs_navigation/tab_navigation.css | 0 22 files changed, 785 insertions(+), 177 deletions(-) create mode 100644 src/components/edit_user/generic_data/contact_info/add_contact_info/add_contact_info.js create mode 100644 src/components/edit_user/generic_data/contact_info/contact_info_controls.js rename src/components/edit_user/{manage_control/manage_control.js => generic_data/contact_info/manage_control_contact_info.js} (66%) delete mode 100644 src/components/edit_user/generic_data/contact_info/static_control.js create mode 100644 src/components/edit_user/generic_data/contact_info/type_controls/type_control_email.js create mode 100644 src/components/edit_user/generic_data/contact_info/type_controls/type_control_phone.js create mode 100644 src/components/edit_user/generic_data/contact_info/type_controls/type_control_social.js create mode 100644 src/components/edit_user/tabs_navigation/index.css create mode 100644 src/components/edit_user/tabs_navigation/login_options/login_option_control_options.js create mode 100644 src/components/edit_user/tabs_navigation/login_options/login_option_controls.js rename src/components/edit_user/{manage_control => tabs_navigation/login_options}/manage_control_login_option.js (52%) create mode 100644 src/components/edit_user/tabs_navigation/login_options/modal_content/delete_modal.js create mode 100644 src/components/edit_user/tabs_navigation/login_options/type_controls/type_control_email.js create mode 100644 src/components/edit_user/tabs_navigation/login_options/type_controls/type_control_phone.js create mode 100644 src/components/edit_user/tabs_navigation/login_options/type_controls/type_control_social.js delete mode 100644 src/components/edit_user/tabs_navigation/tab_navigation.css diff --git a/src/components/edit_user/generic_data/contact_info/add_contact_info/add_contact_info.js b/src/components/edit_user/generic_data/contact_info/add_contact_info/add_contact_info.js new file mode 100644 index 0000000..8ed6279 --- /dev/null +++ b/src/components/edit_user/generic_data/contact_info/add_contact_info/add_contact_info.js @@ -0,0 +1,70 @@ +import React, { Component } from 'react' + +import { withStyles } from '@material-ui/core/styles' +import Button from '@material-ui/core/Button' +import Menu from '@material-ui/core/Menu' +import MenuItem from '@material-ui/core/MenuItem' + +const styles = theme => ({}) + +class AddContactInfo extends Component { + constructor (props) { + super(props) + + this.state = { + anchorEl: null + } + } + + handleShowMenuList = event => { + this.setState({ anchorEl: event.currentTarget }) + } + + handleClose = () => { + this.setState({ anchorEl: null }) + }; + + handleAddTextField = () => { + + } + + render () { + const { classes } = this.props + const { anchorEl } = this.state + + console.log('====================================') + console.log('ADD CONTACT INFO MENU', this.state) + console.log('====================================') + + return ( + +
+ + + + Phone Number + Email + Facebook + Google + Twitter + +
+ + ) + } +} + +export default withStyles(styles)(AddContactInfo) diff --git a/src/components/edit_user/generic_data/contact_info/contact_info_control_options.js b/src/components/edit_user/generic_data/contact_info/contact_info_control_options.js index 44a602b..66e11e9 100644 --- a/src/components/edit_user/generic_data/contact_info/contact_info_control_options.js +++ b/src/components/edit_user/generic_data/contact_info/contact_info_control_options.js @@ -59,11 +59,10 @@ class ContactInfoControlOptions extends Component { } }} > - Edit Delete - +
) diff --git a/src/components/edit_user/generic_data/contact_info/contact_info_controls.js b/src/components/edit_user/generic_data/contact_info/contact_info_controls.js new file mode 100644 index 0000000..b7a28b0 --- /dev/null +++ b/src/components/edit_user/generic_data/contact_info/contact_info_controls.js @@ -0,0 +1,55 @@ +import React from 'react' +import PropTypes from 'prop-types' + +import { withStyles } from '@material-ui/core/styles' +import TypeControlEmail from './type_controls/type_control_email' +import TypeControlPhone from './type_controls/type_control_phone' +import TypeControlSocial from './type_controls/type_control_social' + +const styles = theme => ({}) + +const ContactInfoControls = (props) => { + const { classes, id, handleDeleteContact, handleEditContact, info, inputType } = props + + return ( + +
+ { + inputType === 'EMAIL' + ? + : inputType === 'PHONE' + ? + : + } +
+ ) +} + +ContactInfoControls.propTypes = { + info: PropTypes.object.isRequired, + inputType: PropTypes.string.isRequired, + handleEditContact: PropTypes.func, + handleDeleteContact: PropTypes.func.isRequired, + classes: PropTypes.object.isRequired, + id: PropTypes.string.isRequired +} + +export default withStyles(styles)(ContactInfoControls) diff --git a/src/components/edit_user/manage_control/manage_control.js b/src/components/edit_user/generic_data/contact_info/manage_control_contact_info.js similarity index 66% rename from src/components/edit_user/manage_control/manage_control.js rename to src/components/edit_user/generic_data/contact_info/manage_control_contact_info.js index 53f479f..2775bf9 100644 --- a/src/components/edit_user/manage_control/manage_control.js +++ b/src/components/edit_user/generic_data/contact_info/manage_control_contact_info.js @@ -1,7 +1,7 @@ import React from 'react' import PropTypes from 'prop-types' -import StaticControl from '../generic_data/contact_info/static_control' +import ContactInfoControls from './contact_info_controls' const ManageControlContactInfo = (props) => { const { contactInfoProfile, handleDeleteContactModal, handleEditContact, userID } = props @@ -11,7 +11,7 @@ const ManageControlContactInfo = (props) => { for (let key in contactInfoProfile) { let arr = contactInfoProfile[key].map((el, index) => { return ( - { return controls } +ManageControlContactInfo.propTypes = { + contactInfoProfile: PropTypes.object.isRequired, + handleDeleteContactModal: PropTypes.func.isRequired, + handleEditContact: PropTypes.func.isRequired, + userID: PropTypes.string.isRequired +} + export default ManageControlContactInfo diff --git a/src/components/edit_user/generic_data/contact_info/static_control.js b/src/components/edit_user/generic_data/contact_info/static_control.js deleted file mode 100644 index a17321b..0000000 --- a/src/components/edit_user/generic_data/contact_info/static_control.js +++ /dev/null @@ -1,112 +0,0 @@ -import React from 'react' -import PropTypes from 'prop-types' - -import { withStyles } from '@material-ui/core/styles' - -import InputAdornment from '@material-ui/core/InputAdornment' -import Mail from '@material-ui/icons/Mail' -import People from '@material-ui/icons/People' -import TextField from '@material-ui/core/TextField' -import InputLabel from '@material-ui/core/InputLabel/InputLabel' -import Input from '@material-ui/core/Input/Input' -import Phone from '@material-ui/icons/Phone' -import FormControl from '@material-ui/core/FormControl/FormControl' -import ContactInfoControlOptions from './contact_info_control_options' - -const styles = theme => ({}) - -const StaticControl = (props) => { - const { classes, id, handleDeleteContact, handleEditContact, info, inputType } = props - - return ( - -
- { - inputType === 'EMAIL' - ? - - - ), - endAdornment: ( - - ) - }} - margin="normal" - fullWidth - /> - : inputType === 'PHONE' - ? - {info.label} - - - - } - endAdornment={ - - } - - /> - - : - - - ), - endAdornment: ( - - ) - }} - margin="normal" - fullWidth - /> - } -
- ) -} - -StaticControl.propTypes = { - info: PropTypes.object.isRequired, - inputType: PropTypes.string.isRequired, - handleEditContact: PropTypes.func.isRequired, - handleDeleteContact: PropTypes.func.isRequired, - classes: PropTypes.object.isRequired, - id: PropTypes.string.isRequired -} - -export default withStyles(styles)(StaticControl) diff --git a/src/components/edit_user/generic_data/contact_info/type_controls/type_control_email.js b/src/components/edit_user/generic_data/contact_info/type_controls/type_control_email.js new file mode 100644 index 0000000..25b08fb --- /dev/null +++ b/src/components/edit_user/generic_data/contact_info/type_controls/type_control_email.js @@ -0,0 +1,56 @@ +import React from 'react' +import PropTypes from 'prop-types' + +import { withStyles } from '@material-ui/core/styles' + +import InputAdornment from '@material-ui/core/InputAdornment' +import Mail from '@material-ui/icons/Mail' +import TextField from '@material-ui/core/TextField' +import ContactInfoControlOptions from '../contact_info_control_options' + +const styles = theme => ({}) + +const TypeControlEmail = (props) => { + const { classes, id, handleDeleteContact, handleEditContact, info, inputType } = props + + return ( + +
+ + + + ), + endAdornment: ( + + ) + }} + margin="normal" + fullWidth + /> +
+ ) +} + +TypeControlEmail.propTypes = { + info: PropTypes.object.isRequired, + inputType: PropTypes.string.isRequired, + handleEditContact: PropTypes.func, + handleDeleteContact: PropTypes.func.isRequired, + classes: PropTypes.object.isRequired, + id: PropTypes.string.isRequired +} + +export default withStyles(styles)(TypeControlEmail) diff --git a/src/components/edit_user/generic_data/contact_info/type_controls/type_control_phone.js b/src/components/edit_user/generic_data/contact_info/type_controls/type_control_phone.js new file mode 100644 index 0000000..6da5e90 --- /dev/null +++ b/src/components/edit_user/generic_data/contact_info/type_controls/type_control_phone.js @@ -0,0 +1,53 @@ +import React from 'react' +import PropTypes from 'prop-types' + +import { withStyles } from '@material-ui/core/styles' +import InputAdornment from '@material-ui/core/InputAdornment' +import InputLabel from '@material-ui/core/InputLabel/InputLabel' +import Input from '@material-ui/core/Input/Input' +import Phone from '@material-ui/icons/Phone' +import FormControl from '@material-ui/core/FormControl/FormControl' +import ContactInfoControlOptions from '../contact_info_control_options' + +const styles = theme => ({}) + +const TypeControlPhone = (props) => { + const { id, handleDeleteContact, handleEditContact, info, inputType } = props + + return ( + + + {info.label} + + + + } + endAdornment={ + + } + + /> + + ) +} + +TypeControlPhone.propTypes = { + info: PropTypes.object.isRequired, + inputType: PropTypes.string.isRequired, + handleEditContact: PropTypes.func, + handleDeleteContact: PropTypes.func.isRequired, + id: PropTypes.string.isRequired +} + +export default withStyles(styles)(TypeControlPhone) diff --git a/src/components/edit_user/generic_data/contact_info/type_controls/type_control_social.js b/src/components/edit_user/generic_data/contact_info/type_controls/type_control_social.js new file mode 100644 index 0000000..a7835ab --- /dev/null +++ b/src/components/edit_user/generic_data/contact_info/type_controls/type_control_social.js @@ -0,0 +1,53 @@ +import React from 'react' +import PropTypes from 'prop-types' + +import { withStyles } from '@material-ui/core/styles' +import InputAdornment from '@material-ui/core/InputAdornment' +import People from '@material-ui/icons/People' +import TextField from '@material-ui/core/TextField' +import ContactInfoControlOptions from '../contact_info_control_options' + +const styles = theme => ({}) + +const TypeControlSocial = (props) => { + const { classes, id, handleDeleteContact, handleEditContact, info, inputType } = props + + return ( + + + + + ), + endAdornment: ( + + ) + }} + margin="normal" + fullWidth + /> + ) +} + +TypeControlSocial.propTypes = { + info: PropTypes.object.isRequired, + inputType: PropTypes.string.isRequired, + handleEditContact: PropTypes.func, + handleDeleteContact: PropTypes.func.isRequired, + classes: PropTypes.object.isRequired, + id: PropTypes.string.isRequired +} + +export default withStyles(styles)(TypeControlSocial) diff --git a/src/components/edit_user/generic_data/delete_profile/delete_profile.js b/src/components/edit_user/generic_data/delete_profile/delete_profile.js index e1cfd96..cb1b0c6 100644 --- a/src/components/edit_user/generic_data/delete_profile/delete_profile.js +++ b/src/components/edit_user/generic_data/delete_profile/delete_profile.js @@ -1,19 +1,23 @@ -import React, { Fragment } from "react"; -import { withStyles } from "@material-ui/core/styles"; +import React from 'react' +import PropTypes from 'prop-types' +import { withStyles } from '@material-ui/core/styles' +import Button from '@material-ui/core/Button' -import Button from "@material-ui/core/Button"; - -const styles = theme => ({}); +const styles = theme => ({}) const DeleteProfile = (props) => { + const { classes, handleDeleteProfile } = props - const { classes, handleDeleteProfile } = props; - - return ( - - - - ); + return ( +
+ +
+ ) +} +DeleteProfile.propTypes = { + classes: PropTypes.object.isRequired, + handleDeleteProfile: PropTypes.func.isRequired } -export default withStyles(styles)(DeleteProfile); \ No newline at end of file + +export default withStyles(styles)(DeleteProfile) diff --git a/src/components/edit_user/generic_data/index.css b/src/components/edit_user/generic_data/index.css index 3ad694c..520ab29 100644 --- a/src/components/edit_user/generic_data/index.css +++ b/src/components/edit_user/generic_data/index.css @@ -217,4 +217,25 @@ } .personal-info > div div { padding-left: 15px; +} +.delete-profile, +.personal-information { + border-top: solid 1px #eee; +} +.delete-pofile-wrapper { + font-size: 0; +} +.delete-pofile-wrapper button { + display: inline-block; + text-align: left; + padding: 0; + text-transform: none; + font-weight: 700; +} +.add-contact-info > button { + text-transform: none; + padding: 0; +} +.add-contact-info > button span { + color: #1890ff; } \ No newline at end of file diff --git a/src/components/edit_user/generic_data/index.js b/src/components/edit_user/generic_data/index.js index 260457f..2d6d896 100644 --- a/src/components/edit_user/generic_data/index.js +++ b/src/components/edit_user/generic_data/index.js @@ -10,11 +10,12 @@ import Typography from '@material-ui/core/Typography' import { formatDate } from 'utils/helpers/format_date' import Modal from '../../shared/ui/modal/modal' -import ManageControlContactInfo from '../manage_control/manage_control' +import ManageControlContactInfo from './contact_info/manage_control_contact_info' import PersonalInfo from './personal_info/personal_info' import AccessStatus from './access_status/access_status' import UserAvatar from './edit_user_avatar/edit_user_avatar' import DeleteProfile from './delete_profile/delete_profile' +import AddContactInfo from './contact_info/add_contact_info/add_contact_info' import AvatarContentModal from './edit_user_avatar/delete_avatar_modal/avatar_modal' import ContactInfoDeleteModal from './contact_info/modal_content/delete_modal' @@ -38,7 +39,7 @@ class genericUserData extends Component { birthday: this.props.user.birthday }, modalState: { - showContactModal: false, + showDeleteModal: false, showEditModal: false, showProfileModal: false, showAvatarModal: false, @@ -124,10 +125,10 @@ class genericUserData extends Component { handleDeleteContactModal = (key, value, type) => { let newModalState = { ...this.state.modalState } - if (this.state.modalState.showContactModal === true) { - newModalState.showContactModal = false + if (this.state.modalState.showDeleteModal === true) { + newModalState.showDeleteModal = false } else { - newModalState.showContactModal = true + newModalState.showDeleteModal = true newModalState.key = key newModalState.value = value newModalState.type = type @@ -138,12 +139,11 @@ class genericUserData extends Component { deleteContact = (e) => { let { contactInfo, modalState } = this.state - let newContactInfo = { ...contactInfo } newContactInfo[modalState.type] = newContactInfo[modalState.type].filter(el => el.key !== modalState.key) - this.setState({ contactInfo: newContactInfo }) + this.setState({ contactInfo: newContactInfo }, this.detectChange) this.handleDeleteContactModal() } @@ -219,6 +219,10 @@ class genericUserData extends Component { const { user, classes } = this.props const { avatar, contactInfo, accessStatus, personalInfo, modalState, activeFocusElement } = this.state + console.log('====================================') + console.log(this.state) + console.log('====================================') + return ( @@ -242,7 +246,7 @@ class genericUserData extends Component { /> - + Personal Information + - + @@ -281,16 +286,21 @@ class genericUserData extends Component { /> - - + + + : null - /> - + } - : null + + : null }
diff --git a/src/components/edit_user/tabs_navigation/index.css b/src/components/edit_user/tabs_navigation/index.css new file mode 100644 index 0000000..c5589f8 --- /dev/null +++ b/src/components/edit_user/tabs_navigation/index.css @@ -0,0 +1,10 @@ +.loginOption-length-message { + padding: 20px; + + font-family: "Roboto", "Helvetica", "Arial", sans-serif; + font-size: 15px; + + text-align: center; + font-weight: 700; + color: #f50057; +} \ No newline at end of file diff --git a/src/components/edit_user/tabs_navigation/index.js b/src/components/edit_user/tabs_navigation/index.js index 075b448..8ed5703 100644 --- a/src/components/edit_user/tabs_navigation/index.js +++ b/src/components/edit_user/tabs_navigation/index.js @@ -6,10 +6,12 @@ import Paper from '@material-ui/core/Paper' import Tabs from '@material-ui/core/Tabs' import Tab from '@material-ui/core/Tab' +import Modal from '../../shared/ui/modal/modal' import ManageUser from './manage_user' import LoginOptions from './login_options' +import LoginOptionDeleteModal from './login_options/modal_content/delete_modal' -import './tab_navigation.css' +import './index.css' const styles = theme => ({ root: { @@ -36,6 +38,12 @@ class TabsNavigation extends Component { loginOptions: JSON.parse(JSON.stringify(this.props.user.loginOptionsList)), manageUser: { rolesList: this.props.user.rolesList + }, + modalState: { + showDeleteModal: false, + key: null, + value: '', + type: '' } } } @@ -65,32 +73,58 @@ class TabsNavigation extends Component { } detectChange = () => { - if (this.state.manageUser.rolesList !== this.props.user.rolesList) { + let { user } = this.props + let result = [] + + for (let key in this.state.loginOptions) { + this.state.loginOptions[key].forEach((el, index) => { + result.push(Boolean(el.value === user.loginOptionsList[key][index].value)) + }) + } + + let loginOptionsListNotUpdated = result.every(currentValue => currentValue === true) + + if (!loginOptionsListNotUpdated || this.state.manageUser.rolesList !== this.props.user.rolesList) { this.props.changed(true) } else { this.props.changed(false) } } - handleEditContact = () => { - console.log('====================================') - console.log('EDIT CONTACT') - console.log('====================================') + handleDeleteContactModal = (key, value, type) => { + let newModalState = { ...this.state.modalState } + + if (this.state.modalState.showDeleteModal === true) { + newModalState.showDeleteModal = false + } else { + newModalState.showDeleteModal = true + newModalState.key = key + newModalState.value = value + newModalState.type = type + } + + this.setState({ modalState: newModalState }) } - handleDeleteContactModal = () => { - console.log('====================================') - console.log('DELETE CONTACT') - console.log('====================================') + deleteContact = (e) => { + let { loginOptions, modalState } = this.state + let newLoginOptions = { ...loginOptions } + + newLoginOptions[modalState.type] = newLoginOptions[modalState.type].filter(el => el.key !== modalState.key) + + this.setState({ loginOptions: newLoginOptions }, this.detectChange) + this.handleDeleteContactModal() } render () { const { classes } = this.props - const { value, manageUser, loginOptions } = this.state + const { value, manageUser, loginOptions, modalState } = this.state - console.log('====================================') - console.log(this.state) - console.log('====================================') + let LoginOptionLength = 0 + + for (let key in loginOptions) { + LoginOptionLength = LoginOptionLength + loginOptions[key].length + } return ( @@ -114,7 +148,7 @@ class TabsNavigation extends Component { } {value === 1 &&
active sessions live here
} @@ -126,7 +160,21 @@ class TabsNavigation extends Component { }
-
+ { + modalState.showDeleteModal + ? + + + : null + + } +
) } diff --git a/src/components/edit_user/tabs_navigation/login_options/index.js b/src/components/edit_user/tabs_navigation/login_options/index.js index 944a376..b8e4f4f 100644 --- a/src/components/edit_user/tabs_navigation/login_options/index.js +++ b/src/components/edit_user/tabs_navigation/login_options/index.js @@ -1,25 +1,32 @@ import React from 'react' +import PropTypes from 'prop-types' import Grid from '@material-ui/core/Grid' import Typography from '@material-ui/core/Typography' -import ManageControlLoginOption from '../../manage_control/manage_control_login_option' +import ManageControlLoginOption from './manage_control_login_option' const LoginOption = (props) => { - const { loginOptions, handleDeleteContactModal, handleEditContact } = props + const { loginOptions, handleDeleteContactModal, LoginOptionLength } = props return ( - + Login Options ) } +LoginOption.propTypes = { + loginOptions: PropTypes.object.isRequired, + handleDeleteContactModal: PropTypes.func.isRequired, + LoginOptionLength: PropTypes.number.isRequired +} + export default LoginOption diff --git a/src/components/edit_user/tabs_navigation/login_options/login_option_control_options.js b/src/components/edit_user/tabs_navigation/login_options/login_option_control_options.js new file mode 100644 index 0000000..1fcd668 --- /dev/null +++ b/src/components/edit_user/tabs_navigation/login_options/login_option_control_options.js @@ -0,0 +1,73 @@ +import React, { Component } from 'react' +import { withStyles } from '@material-ui/core/styles' + +import IconButton from '@material-ui/core/IconButton' +import Menu from '@material-ui/core/Menu' +import MoreVertIcon from '@material-ui/icons/MoreVert' +import MenuItem from '@material-ui/core/MenuItem' + +const ITEM_HEIGHT = 48 +const styles = theme => ({}) + +class LoginOptionControlOptions extends Component { + state = { + anchorEl: null + }; + + handleMenu = event => { + this.setState({ anchorEl: event.currentTarget }) + }; + + handleClose = () => { + this.setState({ anchorEl: null }) + }; + + onHandleDeleteContact = () => { + this.handleClose() + this.props.handleDeleteContact(this.props.infoKey, this.props.controlValue, this.props.inputType) + } + + render () { + const { LoginOptionLength } = this.props + const { anchorEl } = this.state + const open = Boolean(anchorEl) + + return ( +
+ { + LoginOptionLength && LoginOptionLength > 1 + ?
+ + + + + Delete + + +
+ : null + } + +
+ + ) + } +} + +export default withStyles(styles)(LoginOptionControlOptions) diff --git a/src/components/edit_user/tabs_navigation/login_options/login_option_controls.js b/src/components/edit_user/tabs_navigation/login_options/login_option_controls.js new file mode 100644 index 0000000..9816fa1 --- /dev/null +++ b/src/components/edit_user/tabs_navigation/login_options/login_option_controls.js @@ -0,0 +1,55 @@ +import React from 'react' +import PropTypes from 'prop-types' + +import { withStyles } from '@material-ui/core/styles' +import TypeControlEmail from './type_controls/type_control_email' +import TypeControlPhone from './type_controls/type_control_phone' +import TypeControlSocial from './type_controls/type_control_social' + +const styles = theme => ({}) + +const LoginOptionControls = (props) => { + const { classes, id, handleDeleteContact, info, inputType, LoginOptionLength } = props + + return ( + +
+ { + inputType === 'EMAIL' + ? + : inputType === 'PHONE' + ? + : + } +
+ ) +} + +LoginOptionControls.propTypes = { + info: PropTypes.object.isRequired, + inputType: PropTypes.string.isRequired, + handleDeleteContact: PropTypes.func.isRequired, + classes: PropTypes.object.isRequired, + id: PropTypes.string.isRequired, + LoginOptionLength: PropTypes.number +} + +export default withStyles(styles)(LoginOptionControls) diff --git a/src/components/edit_user/manage_control/manage_control_login_option.js b/src/components/edit_user/tabs_navigation/login_options/manage_control_login_option.js similarity index 52% rename from src/components/edit_user/manage_control/manage_control_login_option.js rename to src/components/edit_user/tabs_navigation/login_options/manage_control_login_option.js index bd908a1..7f6685f 100644 --- a/src/components/edit_user/manage_control/manage_control_login_option.js +++ b/src/components/edit_user/tabs_navigation/login_options/manage_control_login_option.js @@ -1,26 +1,22 @@ import React from 'react' -import PropTypes from 'prop-types' +// import PropTypes from 'prop-types' -import StaticControl from '../generic_data/contact_info/static_control' +import LoginOptionControls from './login_option_controls' const ManageControlLoginOption = (props) => { - const { loginOptions, handleDeleteContactModal, handleEditContact, userID } = props + const { loginOptions, handleDeleteContactModal, userID, LoginOptionLength } = props let controls = [] for (let key in loginOptions) { let arr = loginOptions[key].map((el, index) => { - - console.log('===================================='); - console.log(key); - console.log('===================================='); return ( - ) diff --git a/src/components/edit_user/tabs_navigation/login_options/modal_content/delete_modal.js b/src/components/edit_user/tabs_navigation/login_options/modal_content/delete_modal.js new file mode 100644 index 0000000..8a7b411 --- /dev/null +++ b/src/components/edit_user/tabs_navigation/login_options/modal_content/delete_modal.js @@ -0,0 +1,40 @@ +import React from 'react' +import PropTypes from 'prop-types' + +import { withStyles } from '@material-ui/core/styles' +import Button from '@material-ui/core/Button' + +const styles = {} + +const LoginOptionDeleteModal = (props) => { + const { handleModalCancel, handleDeleteContactConfirmed, value, type, classes } = props + + return ( +
+

Delete {type}

+
+ { + type !== 'PHONE' + ?

Do you want to delete user's {type.toLowerCase()}: {value} from contact information?

+ :

Do you want to delete user's {type.toLowerCase()}: +{value} from contact information?

+ } + +
+ + +
+ +
+
+ ) +} + +LoginOptionDeleteModal.propTypes = { + handleModalCancel: PropTypes.func, + handleDeleteContactConfirmed: PropTypes.func, + type: PropTypes.string.isRequired, + classes: PropTypes.object.isRequired, + value: PropTypes.string.isRequired +} + +export default withStyles(styles)(LoginOptionDeleteModal) diff --git a/src/components/edit_user/tabs_navigation/login_options/type_controls/type_control_email.js b/src/components/edit_user/tabs_navigation/login_options/type_controls/type_control_email.js new file mode 100644 index 0000000..95079f3 --- /dev/null +++ b/src/components/edit_user/tabs_navigation/login_options/type_controls/type_control_email.js @@ -0,0 +1,56 @@ +import React from 'react' +import PropTypes from 'prop-types' + +import { withStyles } from '@material-ui/core/styles' + +import InputAdornment from '@material-ui/core/InputAdornment' +import Mail from '@material-ui/icons/Mail' +import TextField from '@material-ui/core/TextField' +import LoginOptionControlOptions from '../login_option_control_options' + +const styles = theme => ({}) + +const TypeControlEmail = (props) => { + const { classes, id, handleDeleteContact, info, inputType, LoginOptionLength } = props + + return ( + +
+ + + + ), + endAdornment: ( + + ) + }} + margin="normal" + fullWidth + /> +
+ ) +} + +TypeControlEmail.propTypes = { + info: PropTypes.object.isRequired, + inputType: PropTypes.string.isRequired, + handleDeleteContact: PropTypes.func.isRequired, + classes: PropTypes.object.isRequired, + id: PropTypes.string.isRequired, + LoginOptionLength: PropTypes.number +} + +export default withStyles(styles)(TypeControlEmail) diff --git a/src/components/edit_user/tabs_navigation/login_options/type_controls/type_control_phone.js b/src/components/edit_user/tabs_navigation/login_options/type_controls/type_control_phone.js new file mode 100644 index 0000000..4f14e48 --- /dev/null +++ b/src/components/edit_user/tabs_navigation/login_options/type_controls/type_control_phone.js @@ -0,0 +1,53 @@ +import React from 'react' +import PropTypes from 'prop-types' + +import { withStyles } from '@material-ui/core/styles' +import InputAdornment from '@material-ui/core/InputAdornment' +import InputLabel from '@material-ui/core/InputLabel/InputLabel' +import Input from '@material-ui/core/Input/Input' +import Phone from '@material-ui/icons/Phone' +import FormControl from '@material-ui/core/FormControl/FormControl' +import LoginOptionControlOptions from '../login_option_control_options' + +const styles = theme => ({}) + +const TypeControlPhone = (props) => { + const { id, handleDeleteContact, info, inputType, LoginOptionLength } = props + + return ( + + + {info.label} + + +
+ } + endAdornment={ + + } + + /> +
+ ) +} + +TypeControlPhone.propTypes = { + info: PropTypes.object.isRequired, + inputType: PropTypes.string.isRequired, + handleDeleteContact: PropTypes.func.isRequired, + id: PropTypes.string.isRequired, + LoginOptionLength: PropTypes.number +} + +export default withStyles(styles)(TypeControlPhone) diff --git a/src/components/edit_user/tabs_navigation/login_options/type_controls/type_control_social.js b/src/components/edit_user/tabs_navigation/login_options/type_controls/type_control_social.js new file mode 100644 index 0000000..ae1508e --- /dev/null +++ b/src/components/edit_user/tabs_navigation/login_options/type_controls/type_control_social.js @@ -0,0 +1,53 @@ +import React from 'react' +import PropTypes from 'prop-types' + +import { withStyles } from '@material-ui/core/styles' +import InputAdornment from '@material-ui/core/InputAdornment' +import People from '@material-ui/icons/People' +import TextField from '@material-ui/core/TextField' +import LoginOptionControlOptions from '../login_option_control_options' + +const styles = theme => ({}) + +const TypeControlSocial = (props) => { + const { classes, id, handleDeleteContact, info, inputType, LoginOptionLength } = props + + return ( + + + +
+ ), + endAdornment: ( + + ) + }} + margin="normal" + fullWidth + /> + ) +} + +TypeControlSocial.propTypes = { + info: PropTypes.object.isRequired, + inputType: PropTypes.string.isRequired, + handleDeleteContact: PropTypes.func.isRequired, + classes: PropTypes.object.isRequired, + id: PropTypes.string.isRequired, + LoginOptionLength: PropTypes.number +} + +export default withStyles(styles)(TypeControlSocial) diff --git a/src/components/edit_user/tabs_navigation/tab_navigation.css b/src/components/edit_user/tabs_navigation/tab_navigation.css deleted file mode 100644 index e69de29..0000000 -- GitLab From a2707679911995d754a00bea1bc3338d5ba5132e Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Tue, 27 Nov 2018 11:39:28 +0200 Subject: [PATCH 223/249] NY-5660 --- .../add_contact_info/add_contact_info.js | 13 ++--- .../contact_info_control_options.js | 9 ++-- .../type_controls/type_control_email.js | 51 +++++++++---------- .../edit_user/generic_data/index.js | 14 +++-- src/components/edit_user/middleware.js | 3 +- 5 files changed, 49 insertions(+), 41 deletions(-) diff --git a/src/components/edit_user/generic_data/contact_info/add_contact_info/add_contact_info.js b/src/components/edit_user/generic_data/contact_info/add_contact_info/add_contact_info.js index 8ed6279..a710d8a 100644 --- a/src/components/edit_user/generic_data/contact_info/add_contact_info/add_contact_info.js +++ b/src/components/edit_user/generic_data/contact_info/add_contact_info/add_contact_info.js @@ -29,7 +29,7 @@ class AddContactInfo extends Component { } render () { - const { classes } = this.props + const { classes, addOptionString } = this.props const { anchorEl } = this.state console.log('====================================') @@ -55,11 +55,12 @@ class AddContactInfo extends Component { open={Boolean(anchorEl)} onClose={this.handleClose} > - Phone Number - Email - Facebook - Google - Twitter + + { + addOptionString.map((el, index) => { + return {el.substr(0, 1) + el.substr(1).toLowerCase()} + }).slice(1) + }
diff --git a/src/components/edit_user/generic_data/contact_info/contact_info_control_options.js b/src/components/edit_user/generic_data/contact_info/contact_info_control_options.js index 66e11e9..c965981 100644 --- a/src/components/edit_user/generic_data/contact_info/contact_info_control_options.js +++ b/src/components/edit_user/generic_data/contact_info/contact_info_control_options.js @@ -10,9 +10,12 @@ const ITEM_HEIGHT = 48 const styles = theme => ({}) class ContactInfoControlOptions extends Component { - state = { - anchorEl: null - }; + constructor (props) { + super(props) + this.state = { + anchorEl: null + } + } handleMenu = event => { this.setState({ anchorEl: event.currentTarget }) diff --git a/src/components/edit_user/generic_data/contact_info/type_controls/type_control_email.js b/src/components/edit_user/generic_data/contact_info/type_controls/type_control_email.js index 25b08fb..d2755e0 100644 --- a/src/components/edit_user/generic_data/contact_info/type_controls/type_control_email.js +++ b/src/components/edit_user/generic_data/contact_info/type_controls/type_control_email.js @@ -15,32 +15,31 @@ const TypeControlEmail = (props) => { return ( -
- - - - ), - endAdornment: ( - - ) - }} - margin="normal" - fullWidth - /> -
+ + + + ), + endAdornment: ( + + ) + }} + margin="normal" + fullWidth + /> + ) } diff --git a/src/components/edit_user/generic_data/index.js b/src/components/edit_user/generic_data/index.js index 2d6d896..e3aac07 100644 --- a/src/components/edit_user/generic_data/index.js +++ b/src/components/edit_user/generic_data/index.js @@ -219,10 +219,6 @@ class genericUserData extends Component { const { user, classes } = this.props const { avatar, contactInfo, accessStatus, personalInfo, modalState, activeFocusElement } = this.state - console.log('====================================') - console.log(this.state) - console.log('====================================') - return ( @@ -270,7 +266,15 @@ class genericUserData extends Component { handleEditContact={this.handleEditContact} userID='userContactInfo1' /> - + + { + user.accountTypeString && user.accountTypeString.length !== 0 + ? + : null + } + diff --git a/src/components/edit_user/middleware.js b/src/components/edit_user/middleware.js index 919f407..59efc92 100644 --- a/src/components/edit_user/middleware.js +++ b/src/components/edit_user/middleware.js @@ -97,7 +97,8 @@ export function * getSelectedUserId (action) { ...profilePayload, contactsinfoList, loginOptionsList, - birthday + birthday, + accountTypeString } yield put(deliverSelectedUserData(payload)) -- GitLab From 33cee983e04234171ce11ebcc6b7a5cd143a4466 Mon Sep 17 00:00:00 2001 From: Vasil Nikolov Date: Tue, 27 Nov 2018 13:43:05 +0200 Subject: [PATCH 224/249] delete fix --- src/components/edit_user/generic_data/index.js | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/components/edit_user/generic_data/index.js b/src/components/edit_user/generic_data/index.js index e3aac07..8974fe5 100644 --- a/src/components/edit_user/generic_data/index.js +++ b/src/components/edit_user/generic_data/index.js @@ -67,15 +67,19 @@ class genericUserData extends Component { let result = [] - for (let key in this.state.contactInfo) { - this.state.contactInfo[key].forEach((el, index) => { - result.push(Boolean(el.value === user.contactsinfoList[key][index].value)) + for (let key in user.contactsinfoList) { + user.contactsinfoList[key].forEach((el, index) => { + if (this.state.contactInfo[key][index]) { + result.push(Boolean(el.value === this.state.contactInfo[key][index].value)) + } else { + result.push(false) + } }) } - let contactInfoNotUpdated = result.every(currentValue => currentValue === true) + let contactInfoUpdated = !result.every(currentValue => currentValue === true) - if (!contactInfoNotUpdated || + if (contactInfoUpdated || this.state.avatar !== this.props.user.avatar || this.state.accessStatus !== this.props.user.accessstatus || this.state.personalInfo.firstname !== this.props.user.firstname || -- GitLab From c2b534bc8b24a3c8acfdfe68a53a9c51ea780cdb Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Tue, 27 Nov 2018 18:09:49 +0200 Subject: [PATCH 225/249] NY-5660 Login Option Add UI and Modal functionality --- .../add_contact_info/add_contact_info.js | 23 +++-- .../contact_info/modal_content/add_modal.js | 71 ++++++++++++++++ .../contact_info/modal_content/edit_modal.js | 6 +- .../edit_user/generic_data/index.css | 9 +- .../edit_user/generic_data/index.js | 35 +++++++- src/components/edit_user/index.css | 0 src/components/edit_user/index.js | 2 - .../edit_user/tabs_navigation/index.js | 69 ++++++++++++--- .../add_login_options/add_login_options.js | 85 +++++++++++++++++++ .../tabs_navigation/login_options/index.js | 12 ++- .../login_options/modal_content/add_modal.js | 71 ++++++++++++++++ src/components/shared/ui/modal/modal.css | 36 +++----- 12 files changed, 358 insertions(+), 61 deletions(-) create mode 100644 src/components/edit_user/generic_data/contact_info/modal_content/add_modal.js delete mode 100644 src/components/edit_user/index.css create mode 100644 src/components/edit_user/tabs_navigation/login_options/add_login_options/add_login_options.js create mode 100644 src/components/edit_user/tabs_navigation/login_options/modal_content/add_modal.js diff --git a/src/components/edit_user/generic_data/contact_info/add_contact_info/add_contact_info.js b/src/components/edit_user/generic_data/contact_info/add_contact_info/add_contact_info.js index a710d8a..7e5abae 100644 --- a/src/components/edit_user/generic_data/contact_info/add_contact_info/add_contact_info.js +++ b/src/components/edit_user/generic_data/contact_info/add_contact_info/add_contact_info.js @@ -24,17 +24,15 @@ class AddContactInfo extends Component { this.setState({ anchorEl: null }) }; - handleAddTextField = () => { - - } + handleAddTextField = (stringType) => { + const { handleAddContactModal } = this.props + handleAddContactModal(stringType) + this.handleClose() + } - render () { + render () { const { classes, addOptionString } = this.props - const { anchorEl } = this.state - - console.log('====================================') - console.log('ADD CONTACT INFO MENU', this.state) - console.log('====================================') + const { anchorEl } = this.state return ( @@ -55,17 +53,16 @@ class AddContactInfo extends Component { open={Boolean(anchorEl)} onClose={this.handleClose} > - { - addOptionString.map((el, index) => { - return {el.substr(0, 1) + el.substr(1).toLowerCase()} + addOptionString.map((el) => { + return this.handleAddTextField(el)} key={el}>{`${el.substr(0, 1)}${el.substr(1).toLowerCase()}`} }).slice(1) }
) - } + } } export default withStyles(styles)(AddContactInfo) diff --git a/src/components/edit_user/generic_data/contact_info/modal_content/add_modal.js b/src/components/edit_user/generic_data/contact_info/modal_content/add_modal.js new file mode 100644 index 0000000..726f193 --- /dev/null +++ b/src/components/edit_user/generic_data/contact_info/modal_content/add_modal.js @@ -0,0 +1,71 @@ +import React, { PureComponent } from 'react' +import { withStyles } from '@material-ui/core/styles' +import Button from '@material-ui/core/Button' + +import Grid from '@material-ui/core/Grid' +import Email from '@material-ui/icons/Email' +import People from '@material-ui/icons/People' +import TextField from '@material-ui/core/TextField' + +const styles = {} + +class ContactInfoAddModal extends PureComponent { + constructor (props) { + super(props) + + this.state = { + + } + } + + render () { + const { classes, type, handleAddContactConfirmed, handleModalCancel } = this.props + + return ( +
+

Add {type} in Contact Information

+ { + type !== 'PHONE' + ?
+ +
+ + + {type !== 'EMAIL' && type !== 'PHONE' + ? + : + } + + + + + +
+ +
+ + +
+ +
+ : type && type !== '' + ?
+ PHONE +
+ + +
+
+ : null + } +
+ ) + } +} + +export default withStyles(styles)(ContactInfoAddModal) diff --git a/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js b/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js index 3ad1c0a..73753c3 100644 --- a/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js +++ b/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js @@ -43,14 +43,14 @@ class ContactInfoEditModal extends PureComponent { ?
- - + + {type !== 'EMAIL' && type !== 'PHONE' ? : } - + button { +.add-contact-info > button, +.add-login-option > button { text-transform: none; padding: 0; } -.add-contact-info > button span { +.add-contact-info > button span, +.add-login-option > button span { color: #1890ff; +} +.add-login-option button:disabled span { + color: rgba(0, 0, 0, 0.26); } \ No newline at end of file diff --git a/src/components/edit_user/generic_data/index.js b/src/components/edit_user/generic_data/index.js index 8974fe5..cd7258e 100644 --- a/src/components/edit_user/generic_data/index.js +++ b/src/components/edit_user/generic_data/index.js @@ -21,6 +21,7 @@ import AvatarContentModal from './edit_user_avatar/delete_avatar_modal/avatar_mo import ContactInfoDeleteModal from './contact_info/modal_content/delete_modal' import DeleteProfileModal from './delete_profile/delete_profile_modal' import ContactInfoEditModal from './contact_info/modal_content/edit_modal' +import ContactInfoAddModal from './contact_info/modal_content/add_modal' const styles = theme => ({}) @@ -43,6 +44,7 @@ class genericUserData extends Component { showEditModal: false, showProfileModal: false, showAvatarModal: false, + showAddModal: false, key: null, value: '', type: '' @@ -113,6 +115,25 @@ class genericUserData extends Component { } } + handleAddContactModal = (type) => { + let newModalState = { ...this.state.modalState } + + if (this.state.modalState.showAddModal === true) { + newModalState.showAddModal = false + } else { + newModalState.showAddModal = true + newModalState.type = type + } + + this.setState({ modalState: newModalState }) + } + + addContact = () => { + console.log('====================================') + console.log('ADD CONTACT INFO ACTIVETED!') + console.log('====================================') + } + handleEditModalSave = (value) => { let contactInfo = { ...this.state.contactInfo } @@ -272,9 +293,10 @@ class genericUserData extends Component { /> { - user.accountTypeString && user.accountTypeString.length !== 0 + user.accountTypeString ? : null } @@ -307,7 +329,18 @@ class genericUserData extends Component { /> : null + } + { + modalState.showAddModal + ? + + + : null } diff --git a/src/components/edit_user/index.css b/src/components/edit_user/index.css deleted file mode 100644 index e69de29..0000000 diff --git a/src/components/edit_user/index.js b/src/components/edit_user/index.js index b090524..a535e59 100644 --- a/src/components/edit_user/index.js +++ b/src/components/edit_user/index.js @@ -11,8 +11,6 @@ import GenericData from './generic_data' import ProfileTools from './profile_tools/index' import TabsNavigation from './tabs_navigation/index' -import './index.css' - const styles = theme => ({}) class EditUser extends Component { state = { diff --git a/src/components/edit_user/tabs_navigation/index.js b/src/components/edit_user/tabs_navigation/index.js index 8ed5703..bcfaa2c 100644 --- a/src/components/edit_user/tabs_navigation/index.js +++ b/src/components/edit_user/tabs_navigation/index.js @@ -10,6 +10,7 @@ import Modal from '../../shared/ui/modal/modal' import ManageUser from './manage_user' import LoginOptions from './login_options' import LoginOptionDeleteModal from './login_options/modal_content/delete_modal' +import LoginOptionsAddModal from './login_options/modal_content/add_modal' import './index.css' @@ -41,6 +42,7 @@ class TabsNavigation extends Component { }, modalState: { showDeleteModal: false, + showAddModal: false, key: null, value: '', type: '' @@ -76,21 +78,50 @@ class TabsNavigation extends Component { let { user } = this.props let result = [] - for (let key in this.state.loginOptions) { - this.state.loginOptions[key].forEach((el, index) => { - result.push(Boolean(el.value === user.loginOptionsList[key][index].value)) + // for (let key in this.state.loginOptions) { + // this.state.loginOptions[key].forEach((el, index) => { + // result.push(Boolean(el.value === user.loginOptionsList[key][index].value)) + // }) + // } + + for (let key in user.loginOptionsList) { + user.loginOptionsList[key].forEach((el, index) => { + if (this.state.loginOptions[key][index]) { + result.push(Boolean(el.value === this.state.loginOptions[key][index].value)) + } else { + result.push(false) + } }) } - let loginOptionsListNotUpdated = result.every(currentValue => currentValue === true) + let loginOptionsListNotUpdated = !result.every(currentValue => currentValue === true) - if (!loginOptionsListNotUpdated || this.state.manageUser.rolesList !== this.props.user.rolesList) { + if (loginOptionsListNotUpdated || this.state.manageUser.rolesList !== this.props.user.rolesList) { this.props.changed(true) } else { this.props.changed(false) } } + handleAddLoginOptionsModal = (type) => { + let newModalState = { ...this.state.modalState } + + if (this.state.modalState.showAddModal === true) { + newModalState.showAddModal = false + } else { + newModalState.showAddModal = true + newModalState.type = type + } + + this.setState({ modalState: newModalState }) + } + + addLoginOptions = () => { + console.log('====================================') + console.log('ADD CONTACT INFO ACTIVETED!') + console.log('====================================') + } + handleDeleteContactModal = (key, value, type) => { let newModalState = { ...this.state.modalState } @@ -117,7 +148,7 @@ class TabsNavigation extends Component { } render () { - const { classes } = this.props + const { classes, user } = this.props const { value, manageUser, loginOptions, modalState } = this.state let LoginOptionLength = 0 @@ -144,12 +175,15 @@ class TabsNavigation extends Component { { - value === 0 && - + value === 0 && user.accountTypeString + ? + : null } {value === 1 &&
active sessions live here
} {value === 2 && manageUser && @@ -172,7 +206,18 @@ class TabsNavigation extends Component { />
: null + } + { + modalState.showAddModal + ? + + + : null }
diff --git a/src/components/edit_user/tabs_navigation/login_options/add_login_options/add_login_options.js b/src/components/edit_user/tabs_navigation/login_options/add_login_options/add_login_options.js new file mode 100644 index 0000000..61075e9 --- /dev/null +++ b/src/components/edit_user/tabs_navigation/login_options/add_login_options/add_login_options.js @@ -0,0 +1,85 @@ +import React, { Component } from 'react' + +import { withStyles } from '@material-ui/core/styles' +import Button from '@material-ui/core/Button' +import Menu from '@material-ui/core/Menu' +import MenuItem from '@material-ui/core/MenuItem' + +const styles = theme => ({}) + +class AddLoginOptions extends Component { + constructor (props) { + super(props) + + this.state = { + anchorEl: null + } + } + + handleShowMenuList = event => { + this.setState({ anchorEl: event.currentTarget }) + } + + handleClose = () => { + this.setState({ anchorEl: null }) + }; + + handleAddTextField = (stringType) => { + const { handleAddLoginOptionsModal } = this.props + handleAddLoginOptionsModal(stringType) + this.handleClose() + } + + // isDisableBtn = () => { + + // } + + render () { + const { classes, addOptionString, LoginOptionLength } = this.props + const { anchorEl } = this.state + + let isDisabled = false + + if (LoginOptionLength >= 3) { + isDisabled = false + } else { + isDisabled = true + } + + return ( + +
+ + + + { + addOptionString.map((el) => { + if (el === 'EMAIL' || el === 'PHONE') { + return this.handleAddTextField(el)} key={el}>{`${el.substr(0, 1)}${el.substr(1).toLowerCase()}`} + } else { + return null + } + }).slice(1) + } + +
+ + ) + } +} + +export default withStyles(styles)(AddLoginOptions) diff --git a/src/components/edit_user/tabs_navigation/login_options/index.js b/src/components/edit_user/tabs_navigation/login_options/index.js index b8e4f4f..534d342 100644 --- a/src/components/edit_user/tabs_navigation/login_options/index.js +++ b/src/components/edit_user/tabs_navigation/login_options/index.js @@ -4,9 +4,10 @@ import PropTypes from 'prop-types' import Grid from '@material-ui/core/Grid' import Typography from '@material-ui/core/Typography' import ManageControlLoginOption from './manage_control_login_option' +import AddLoginOptions from './add_login_options/add_login_options' const LoginOption = (props) => { - const { loginOptions, handleDeleteContactModal, LoginOptionLength } = props + const { loginOptions, handleDeleteContactModal, LoginOptionLength, addOptionString, handleAddLoginOptionsModal } = props return ( @@ -18,6 +19,11 @@ const LoginOption = (props) => { userID='userLoginOption1' LoginOptionLength={LoginOptionLength} /> + ) @@ -26,7 +32,9 @@ const LoginOption = (props) => { LoginOption.propTypes = { loginOptions: PropTypes.object.isRequired, handleDeleteContactModal: PropTypes.func.isRequired, - LoginOptionLength: PropTypes.number.isRequired + handleAddLoginOptionsModal: PropTypes.func.isRequired, + LoginOptionLength: PropTypes.number.isRequired, + addOptionString: PropTypes.array.isRequired } export default LoginOption diff --git a/src/components/edit_user/tabs_navigation/login_options/modal_content/add_modal.js b/src/components/edit_user/tabs_navigation/login_options/modal_content/add_modal.js new file mode 100644 index 0000000..b6f41f3 --- /dev/null +++ b/src/components/edit_user/tabs_navigation/login_options/modal_content/add_modal.js @@ -0,0 +1,71 @@ +import React, { PureComponent } from 'react' +import { withStyles } from '@material-ui/core/styles' +import Button from '@material-ui/core/Button' + +import Grid from '@material-ui/core/Grid' +import Email from '@material-ui/icons/Email' +import People from '@material-ui/icons/People' +import TextField from '@material-ui/core/TextField' + +const styles = {} + +class LoginOptionsAddModal extends PureComponent { + constructor (props) { + super(props) + + this.state = { + + } + } + + render () { + const { classes, type, handleAddLoginOptionsConfirmed, handleModalCancel } = this.props + + return ( +
+

Add {type} in Login Options

+ { + type !== 'PHONE' + ?
+ +
+ + + {type !== 'EMAIL' && type !== 'PHONE' + ? + : + } + + + + + +
+ +
+ + +
+ +
+ : type && type !== '' + ?
+ PHONE +
+ + +
+
+ : null + } +
+ ) + } +} + +export default withStyles(styles)(LoginOptionsAddModal) diff --git a/src/components/shared/ui/modal/modal.css b/src/components/shared/ui/modal/modal.css index 551c3a3..8cafd1b 100644 --- a/src/components/shared/ui/modal/modal.css +++ b/src/components/shared/ui/modal/modal.css @@ -30,10 +30,12 @@ .pfofile-delete-btn { text-align: right; } -.modal-edit-btn { +.modal-edit-btn, +.modal-add-btn { margin-top: 30px; } -.modal-title.edit-offset { +.modal-title.edit-offset, +.modal-title.add-offset { margin-bottom: 20px; } .modal-control-btn button, @@ -49,30 +51,12 @@ .avatar-alert-delete, .contact-modal-delete, .profile-delete, -.contact-modal-edit { +.contact-modal-edit, +.contact-modal-add { padding: 20px; max-width: 500px; } -/* .edit-modal-control { - position: relative; -} -.edit-modal-control:before { - position: absolute; - content: "\00a0"; - - left: 0; - right: 0; - bottom: 0; - - transition: border-bottom-color 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; - border-bottom: 1px solid rgba(0, 0, 0, 0.42); - pointer-events: none; - z-index: 100; -} -.edit-modal-control:hover:before { - border-bottom: 2px solid #303f9f; - z-index: 2; -} -div.edit-modal-control div.edit-lear-padding { - padding-bottom: 0; -} */ \ No newline at end of file +.add-contact-desc, +.add-login-desc { + font-weight: normal; +} \ No newline at end of file -- GitLab From c67958c37aa98e9b68c5686ec478c6aea0159e72 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Wed, 28 Nov 2018 15:26:25 +0200 Subject: [PATCH 226/249] NY-5696 Add Contact Info element --- .../manage_control_contact_info.js | 30 +++++++------ .../contact_info/modal_content/add_modal.js | 45 ++++++++++++++----- .../edit_user/generic_data/index.js | 22 ++++++--- src/components/edit_user/middleware.js | 14 ++---- .../edit_user/tabs_navigation/index.js | 4 +- .../login_options/modal_content/add_modal.js | 1 - src/utils/services/accounts.js | 9 ++++ 7 files changed, 79 insertions(+), 46 deletions(-) diff --git a/src/components/edit_user/generic_data/contact_info/manage_control_contact_info.js b/src/components/edit_user/generic_data/contact_info/manage_control_contact_info.js index 2775bf9..1499090 100644 --- a/src/components/edit_user/generic_data/contact_info/manage_control_contact_info.js +++ b/src/components/edit_user/generic_data/contact_info/manage_control_contact_info.js @@ -9,20 +9,22 @@ const ManageControlContactInfo = (props) => { let controls = [] for (let key in contactInfoProfile) { - let arr = contactInfoProfile[key].map((el, index) => { - return ( - - ) - }) - - controls = [...controls, ...arr] + if (contactInfoProfile[key].length !== 0) { + let arr = contactInfoProfile[key].map((el, index) => { + return ( + + ) + }) + + controls = [...controls, ...arr] + } } return controls diff --git a/src/components/edit_user/generic_data/contact_info/modal_content/add_modal.js b/src/components/edit_user/generic_data/contact_info/modal_content/add_modal.js index 726f193..a6edee3 100644 --- a/src/components/edit_user/generic_data/contact_info/modal_content/add_modal.js +++ b/src/components/edit_user/generic_data/contact_info/modal_content/add_modal.js @@ -14,12 +14,31 @@ class ContactInfoAddModal extends PureComponent { super(props) this.state = { - + addContactInfo: '', + isUpdated: false } } - render () { - const { classes, type, handleAddContactConfirmed, handleModalCancel } = this.props +handleChange = (e) => { + let newCurrentUser = { ...this.state.addContactInfo } + let oldValue = '' + + newCurrentUser[e.target.name] = e.target.value + + if (e.target.value !== oldValue) { + this.setState({ addContactInfo: e.target.value, isUpdated: true }) + } else { + this.setState({ addContactInfo: e.target.value, isUpdated: false }) + } +} + +render () { + const { classes, type, handleModalCancel, onSave } = this.props + const { addContactInfo, isUpdated } = this.state + + // console.log('====================================') + // console.log(this.state) + // console.log('====================================') return (
@@ -38,18 +57,20 @@ class ContactInfoAddModal extends PureComponent { + label={type} + id="profileAdd-contact" + name="addContactInfo" + value={addContactInfo} + onChange={this.handleChange} + fullWidth + />
- - + +
@@ -58,14 +79,14 @@ class ContactInfoAddModal extends PureComponent { PHONE
- +
: null }
) - } +} } export default withStyles(styles)(ContactInfoAddModal) diff --git a/src/components/edit_user/generic_data/index.js b/src/components/edit_user/generic_data/index.js index cd7258e..284c461 100644 --- a/src/components/edit_user/generic_data/index.js +++ b/src/components/edit_user/generic_data/index.js @@ -10,6 +10,7 @@ import Typography from '@material-ui/core/Typography' import { formatDate } from 'utils/helpers/format_date' import Modal from '../../shared/ui/modal/modal' +import { contactTypeKeys } from '../../../utils/services/accounts' import ManageControlContactInfo from './contact_info/manage_control_contact_info' import PersonalInfo from './personal_info/personal_info' import AccessStatus from './access_status/access_status' @@ -128,10 +129,17 @@ class genericUserData extends Component { this.setState({ modalState: newModalState }) } - addContact = () => { - console.log('====================================') - console.log('ADD CONTACT INFO ACTIVETED!') - console.log('====================================') + handleAddModalSave = (value) => { + let newContactInfo = { ...this.state.contactInfo } + + newContactInfo[this.state.modalState.type].push({ + value, + type: contactTypeKeys[this.state.modalState.type], + key: new Date().getTime() + }) + + this.setState({ contactInfo: newContactInfo }, this.detectChange) + this.handleAddContactModal() } handleEditModalSave = (value) => { @@ -293,9 +301,9 @@ class genericUserData extends Component { /> { - user.accountTypeString + user.contactTypes ? : null @@ -336,7 +344,7 @@ class genericUserData extends Component { ? diff --git a/src/components/edit_user/middleware.js b/src/components/edit_user/middleware.js index 59efc92..7f19570 100644 --- a/src/components/edit_user/middleware.js +++ b/src/components/edit_user/middleware.js @@ -1,5 +1,5 @@ import { call, put } from 'redux-saga/effects' -import { accountByAccountIdGrpcRequest, profileByProfileIdGrpcRequest, accountContactType } from './../../utils/services/accounts' +import { accountByAccountIdGrpcRequest, profileByProfileIdGrpcRequest, contactTypes } from './../../utils/services/accounts' import { deliverSelectedUserData, deliverUpdateUserDataName } from './actions' import { globalError } from './../../hoc/error_handler/actions' @@ -9,12 +9,6 @@ export function * getSelectedUserId (action) { let accountPayload = yield call(accountByAccountIdGrpcRequest, action.userId), profilePayload = yield call(profileByProfileIdGrpcRequest, accountPayload.profileid) - let accountTypeString = accountContactType.map((item) => { - let accountSplit = item.split(/[_]/) - - return accountSplit[0] - }) - let EMAIL = [], PHONE = [], FACEBOOK = [], @@ -27,7 +21,7 @@ export function * getSelectedUserId (action) { loginTwitter = [] accountPayload.contactsinfoList.forEach((el, index) => { - switch (accountTypeString[el.type]) { + switch (contactTypes[el.type]) { case 'EMAIL': EMAIL.push({ value: el.value, type: el.type, key: index }) break @@ -49,7 +43,7 @@ export function * getSelectedUserId (action) { }) profilePayload.authprovidersList.forEach((el, index) => { - switch (accountTypeString[el.authenticationtype]) { + switch (contactTypes[el.authenticationtype]) { case 'EMAIL': loginEmail.push({ value: el.authenticationprovider, type: el.authenticationtype, key: index }) break @@ -98,7 +92,7 @@ export function * getSelectedUserId (action) { contactsinfoList, loginOptionsList, birthday, - accountTypeString + contactTypes } yield put(deliverSelectedUserData(payload)) diff --git a/src/components/edit_user/tabs_navigation/index.js b/src/components/edit_user/tabs_navigation/index.js index bcfaa2c..de445ed 100644 --- a/src/components/edit_user/tabs_navigation/index.js +++ b/src/components/edit_user/tabs_navigation/index.js @@ -175,10 +175,10 @@ class TabsNavigation extends Component { { - value === 0 && user.accountTypeString + value === 0 && user.contactTypes ? item.split(/[_]/)[0]) + +export let contactTypeKeys = {} + +for (let key in ContactType) { + contactTypeKeys[key.split(/[_]/)[0]] = ContactType[key] +} + /** * getting account details */ + let accountByAccountIdRequest = new AccountByAccountIdRequest() export function accountByAccountIdGrpcRequest (accountId) { -- GitLab From d0346d08a1579a79042b894f958c563e92a9e66e Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Wed, 28 Nov 2018 16:40:11 +0200 Subject: [PATCH 227/249] NY-5699 Add Login Option --- .../edit_user/tabs_navigation/index.js | 24 +++++++------- .../manage_control_login_option.js | 29 ++++++++--------- .../login_options/modal_content/add_modal.js | 31 ++++++++++++++----- 3 files changed, 52 insertions(+), 32 deletions(-) diff --git a/src/components/edit_user/tabs_navigation/index.js b/src/components/edit_user/tabs_navigation/index.js index de445ed..fe70e50 100644 --- a/src/components/edit_user/tabs_navigation/index.js +++ b/src/components/edit_user/tabs_navigation/index.js @@ -7,6 +7,7 @@ import Tabs from '@material-ui/core/Tabs' import Tab from '@material-ui/core/Tab' import Modal from '../../shared/ui/modal/modal' +import { contactTypeKeys } from '../../../utils/services/accounts' import ManageUser from './manage_user' import LoginOptions from './login_options' import LoginOptionDeleteModal from './login_options/modal_content/delete_modal' @@ -78,12 +79,6 @@ class TabsNavigation extends Component { let { user } = this.props let result = [] - // for (let key in this.state.loginOptions) { - // this.state.loginOptions[key].forEach((el, index) => { - // result.push(Boolean(el.value === user.loginOptionsList[key][index].value)) - // }) - // } - for (let key in user.loginOptionsList) { user.loginOptionsList[key].forEach((el, index) => { if (this.state.loginOptions[key][index]) { @@ -116,10 +111,17 @@ class TabsNavigation extends Component { this.setState({ modalState: newModalState }) } - addLoginOptions = () => { - console.log('====================================') - console.log('ADD CONTACT INFO ACTIVETED!') - console.log('====================================') + handleAddModalSave = (value) => { + let newLoginOptions = { ...this.state.loginOptions } + + newLoginOptions[this.state.modalState.type].push({ + value, + type: contactTypeKeys[this.state.modalState.type], + key: new Date().getTime() + }) + + this.setState({ loginOptions: newLoginOptions }) + this.handleAddLoginOptionsModal() } handleDeleteContactModal = (key, value, type) => { @@ -213,7 +215,7 @@ class TabsNavigation extends Component { ? diff --git a/src/components/edit_user/tabs_navigation/login_options/manage_control_login_option.js b/src/components/edit_user/tabs_navigation/login_options/manage_control_login_option.js index 7f6685f..91006e5 100644 --- a/src/components/edit_user/tabs_navigation/login_options/manage_control_login_option.js +++ b/src/components/edit_user/tabs_navigation/login_options/manage_control_login_option.js @@ -9,20 +9,21 @@ const ManageControlLoginOption = (props) => { let controls = [] for (let key in loginOptions) { - let arr = loginOptions[key].map((el, index) => { - return ( - - ) - }) - - controls = [...controls, ...arr] + if (loginOptions[key].length !== 0) { + let arr = loginOptions[key].map((el, index) => { + return ( + + ) + }) + controls = [...controls, ...arr] + } } return controls diff --git a/src/components/edit_user/tabs_navigation/login_options/modal_content/add_modal.js b/src/components/edit_user/tabs_navigation/login_options/modal_content/add_modal.js index b89a84d..674618f 100644 --- a/src/components/edit_user/tabs_navigation/login_options/modal_content/add_modal.js +++ b/src/components/edit_user/tabs_navigation/login_options/modal_content/add_modal.js @@ -13,12 +13,27 @@ class LoginOptionsAddModal extends PureComponent { super(props) this.state = { + addLoginOptions: '', + isUpdated: false + } + } + + handleChange = (e) => { + let newCurrentUser = { ...this.state.addLoginOptions } + let oldValue = '' + newCurrentUser[e.target.name] = e.target.value + + if (e.target.value !== oldValue) { + this.setState({ addLoginOptions: e.target.value, isUpdated: true }) + } else { + this.setState({ addLoginOptions: e.target.value, isUpdated: false }) } } render () { - const { classes, type, handleAddLoginOptionsConfirmed, handleModalCancel } = this.props + const { classes, type, onSave, handleModalCancel } = this.props + const { addLoginOptions, isUpdated } = this.state return (
@@ -37,18 +52,20 @@ class LoginOptionsAddModal extends PureComponent { + id="profileAdd-login" + value={addLoginOptions} + name="addLoginOptions" + onChange={this.handleChange} + fullWidth + />
- +
@@ -57,7 +74,7 @@ class LoginOptionsAddModal extends PureComponent { PHONE
- +
: null -- GitLab From a65fbfd608c6e12cd812a3d5fb738653222012c3 Mon Sep 17 00:00:00 2001 From: stanislav kumanov Date: Wed, 28 Nov 2018 16:55:07 +0200 Subject: [PATCH 228/249] NY-5704 delete account and profile API GRPC integration --- .../generated/account_pb_service.js | 4 +- src/utils/services/accounts.js | 46 ++++++++++++++++++- 2 files changed, 47 insertions(+), 3 deletions(-) diff --git a/src/utils/grpc_proto/generated/account_pb_service.js b/src/utils/grpc_proto/generated/account_pb_service.js index 2913a4f..1b65f7d 100644 --- a/src/utils/grpc_proto/generated/account_pb_service.js +++ b/src/utils/grpc_proto/generated/account_pb_service.js @@ -425,7 +425,7 @@ AccountServiceClient.prototype.deleteAccount = function deleteAccount(requestMes err.metadata = response.trailers; callback(err, null); } else { - callback(null, response.message); + callback(null, response.message.toObject()); } } } @@ -450,7 +450,7 @@ AccountServiceClient.prototype.deleteProfile = function deleteProfile(requestMes err.metadata = response.trailers; callback(err, null); } else { - callback(null, response.message); + callback(null, response.message.toObject()); } } } diff --git a/src/utils/services/accounts.js b/src/utils/services/accounts.js index 7320277..1c485af 100644 --- a/src/utils/services/accounts.js +++ b/src/utils/services/accounts.js @@ -1,5 +1,5 @@ import { AccountServiceClient } from './../grpc_proto/generated/account_pb_service' -import { AccountByAccountIdRequest, ProfileByProfileIdRequest, Role, AccessStatus, ContactType, AuthenticationType } from './../grpc_proto/generated/account_pb' +import { AccountByAccountIdRequest, ProfileByProfileIdRequest, DeleteAccountRequest, DeleteProfileRequest, Role, AccessStatus, ContactType, AuthenticationType } from './../grpc_proto/generated/account_pb' const endpoint = 'https://account.dev-eu.nynja.net:443' let accountServiceClient = new AccountServiceClient(endpoint) @@ -69,6 +69,50 @@ export function profileByProfileIdGrpcRequest (profileId) { }) } +let deleteProfileRequest = new DeleteProfileRequest(); + +export function deleteProfileGrpcRequest (profileId) { + return new Promise((resolve, reject) => { + deleteProfileRequest.setProfileid(profileId); + accountServiceClient.deleteProfile(deleteProfileRequest, { 'Content-type': 'application/grpc-web+proto' }, (error, response) => { + if (response) { + if(response.status === "SUCCESS") { + resolve(response.status) + } else { + reject(response.error.message) + } + + } + if (error) { + console.log(error); + reject(error) + } + }) + }) +} + +let deleteAccountRequest = new DeleteAccountRequest(); + +export function deleteAccountGrpcRequest (accountId) { + return new Promise((resolve, reject) => { + deleteAccountRequest.setAccountid(accountId); + accountServiceClient.deleteAccount(deleteAccountRequest, { 'Content-type': 'application/grpc-web+proto' }, (error, response) => { + if (response) { + if(response.status === "SUCCESS") { + resolve(response.status) + } else { + reject(response.error.message) + } + + } + if (error) { + console.log(error); + reject(error) + } + }) + }) +} + // let host = "https://account.dev-eu.nynja.net:443"; // let accountByAuthenticationProviderRequest = new AccountByAuthenticationProviderRequest(); // accountByAuthenticationProviderRequest.authenticationType = 1; -- GitLab From a06735cbdc163c781e0f725dab46e31abf5fbec1 Mon Sep 17 00:00:00 2001 From: Vasil Nikolov Date: Wed, 28 Nov 2018 17:36:28 +0200 Subject: [PATCH 229/249] changed contact types --- .../add_contact_info/add_contact_info.js | 15 ++++- src/components/edit_user/middleware.js | 66 +++++++++---------- .../add_login_options/add_login_options.js | 26 +++++--- .../tabs_navigation/login_options/index.js | 2 +- .../login_options/login_option_controls.js | 4 +- src/utils/helpers/common.js | 1 + src/utils/services/accounts.js | 11 ++-- 7 files changed, 72 insertions(+), 53 deletions(-) create mode 100644 src/utils/helpers/common.js diff --git a/src/components/edit_user/generic_data/contact_info/add_contact_info/add_contact_info.js b/src/components/edit_user/generic_data/contact_info/add_contact_info/add_contact_info.js index 7e5abae..687a9a5 100644 --- a/src/components/edit_user/generic_data/contact_info/add_contact_info/add_contact_info.js +++ b/src/components/edit_user/generic_data/contact_info/add_contact_info/add_contact_info.js @@ -4,6 +4,7 @@ import { withStyles } from '@material-ui/core/styles' import Button from '@material-ui/core/Button' import Menu from '@material-ui/core/Menu' import MenuItem from '@material-ui/core/MenuItem' +import { formatContactInfo } from 'utils/helpers/common' const styles = theme => ({}) @@ -34,6 +35,16 @@ class AddContactInfo extends Component { const { classes, addOptionString } = this.props const { anchorEl } = this.state + let buttons = [] + + for (let key in addOptionString) { + let formattedString = formatContactInfo(key) + buttons.push(( + this.handleAddTextField(key)} key={key}> + {`${formattedString.substr(0, 1)}${formattedString.substr(1).toLowerCase()}`} + )) + } + return (
@@ -54,9 +65,7 @@ class AddContactInfo extends Component { onClose={this.handleClose} > { - addOptionString.map((el) => { - return this.handleAddTextField(el)} key={el}>{`${el.substr(0, 1)}${el.substr(1).toLowerCase()}`} - }).slice(1) + buttons }
diff --git a/src/components/edit_user/middleware.js b/src/components/edit_user/middleware.js index 7f19570..063d17e 100644 --- a/src/components/edit_user/middleware.js +++ b/src/components/edit_user/middleware.js @@ -1,5 +1,5 @@ import { call, put } from 'redux-saga/effects' -import { accountByAccountIdGrpcRequest, profileByProfileIdGrpcRequest, contactTypes } from './../../utils/services/accounts' +import { accountByAccountIdGrpcRequest, profileByProfileIdGrpcRequest, contactTypes, contactTypeKeys } from './../../utils/services/accounts' import { deliverSelectedUserData, deliverUpdateUserDataName } from './actions' import { globalError } from './../../hoc/error_handler/actions' @@ -9,11 +9,11 @@ export function * getSelectedUserId (action) { let accountPayload = yield call(accountByAccountIdGrpcRequest, action.userId), profilePayload = yield call(profileByProfileIdGrpcRequest, accountPayload.profileid) - let EMAIL = [], - PHONE = [], - FACEBOOK = [], - GOOGLEPLUS = [], - TWITTER = [], + let EMAIL_CONTACT = [], + PHONE_CONTACT = [], + FACEBOOK_CONTACT = [], + GOOGLEPLUS_CONTACT = [], + TWITTER_CONTACT = [], loginEmail = [], loginPhone = [], loginFacebook = [], @@ -21,21 +21,21 @@ export function * getSelectedUserId (action) { loginTwitter = [] accountPayload.contactsinfoList.forEach((el, index) => { - switch (contactTypes[el.type]) { - case 'EMAIL': - EMAIL.push({ value: el.value, type: el.type, key: index }) + switch (contactTypeKeys[el.type]) { + case 'EMAIL_CONTACT': + EMAIL_CONTACT.push({ value: el.value, type: el.type, key: index }) break - case 'PHONE': - PHONE.push({ value: el.value, type: el.type, label: el.label, key: index }) + case 'PHONE_CONTACT': + PHONE_CONTACT.push({ value: el.value, type: el.type, label: el.label, key: index }) break - case 'FACEBOOK': - FACEBOOK.push({ value: el.value, type: el.type, key: index }) + case 'FACEBOOK_CONTACT': + FACEBOOK_CONTACT.push({ value: el.value, type: el.type, key: index }) break - case 'GOOGLEPLUS': - GOOGLEPLUS.push({ value: el.value, type: el.type, key: index }) + case 'GOOGLEPLUS_CONTACT': + GOOGLEPLUS_CONTACT.push({ value: el.value, type: el.type, key: index }) break - case 'TWITTER': - TWITTER.push({ value: el.value, type: el.type, key: index }) + case 'TWITTER_CONTACT': + TWITTER_CONTACT.push({ value: el.value, type: el.type, key: index }) break default: break @@ -43,20 +43,20 @@ export function * getSelectedUserId (action) { }) profilePayload.authprovidersList.forEach((el, index) => { - switch (contactTypes[el.authenticationtype]) { - case 'EMAIL': + switch (contactTypeKeys[el.authenticationtype]) { + case 'EMAIL_CONTACT': loginEmail.push({ value: el.authenticationprovider, type: el.authenticationtype, key: index }) break - case 'PHONE': + case 'PHONE_CONTACT': loginPhone.push({ value: el.authenticationprovider, type: el.authenticationtype, key: index }) break - case 'FACEBOOK': + case 'FACEBOOK_CONTACT': loginFacebook.push({ value: el.authenticationprovider, type: el.authenticationtype, key: index }) break - case 'GOOGLEPLUS': + case 'GOOGLEPLUS_CONTACT': loginGoogleplus.push({ value: el.authenticationprovider, type: el.authenticationtype, key: index }) break - case 'TWITTER': + case 'TWITTER_CONTACT': loginTwitter.push({ value: el.authenticationprovider, type: el.authenticationtype, key: index }) break default: @@ -65,19 +65,19 @@ export function * getSelectedUserId (action) { }) let contactsinfoList = { - EMAIL, - PHONE, - FACEBOOK, - GOOGLEPLUS, - TWITTER + EMAIL_CONTACT, + PHONE_CONTACT, + FACEBOOK_CONTACT, + GOOGLEPLUS_CONTACT, + TWITTER_CONTACT } let loginOptionsList = { - EMAIL: loginEmail, - PHONE: loginPhone, - FACEBOOK: loginFacebook, - GOOGLEPLUS: loginGoogleplus, - TWITTER: loginTwitter + EMAIL_CONTACT: loginEmail, + PHONE_CONTACT: loginPhone, + FACEBOOK_CONTACT: loginFacebook, + GOOGLEPLUS_CONTACT: loginGoogleplus, + TWITTER_CONTACT: loginTwitter } let birthday = '' diff --git a/src/components/edit_user/tabs_navigation/login_options/add_login_options/add_login_options.js b/src/components/edit_user/tabs_navigation/login_options/add_login_options/add_login_options.js index 61075e9..a1388e2 100644 --- a/src/components/edit_user/tabs_navigation/login_options/add_login_options/add_login_options.js +++ b/src/components/edit_user/tabs_navigation/login_options/add_login_options/add_login_options.js @@ -4,6 +4,7 @@ import { withStyles } from '@material-ui/core/styles' import Button from '@material-ui/core/Button' import Menu from '@material-ui/core/Menu' import MenuItem from '@material-ui/core/MenuItem' +import { formatContactInfo } from 'utils/helpers/common' const styles = theme => ({}) @@ -38,7 +39,20 @@ class AddLoginOptions extends Component { const { classes, addOptionString, LoginOptionLength } = this.props const { anchorEl } = this.state - let isDisabled = false + let isDisabled = false, + buttons = [] + + for (let key in addOptionString) { + let formattedKey = formatContactInfo(key) + + if (key === 'EMAIL_CONTACT' || key === 'PHONE_CONTACT') { + buttons.push(( + this.handleAddTextField(key)} key={key}> + {`${formattedKey.substr(0, 1)}${formattedKey.substr(1).toLowerCase()}`} + + )) + } + } if (LoginOptionLength >= 3) { isDisabled = false @@ -66,15 +80,7 @@ class AddLoginOptions extends Component { open={Boolean(anchorEl)} onClose={this.handleClose} > - { - addOptionString.map((el) => { - if (el === 'EMAIL' || el === 'PHONE') { - return this.handleAddTextField(el)} key={el}>{`${el.substr(0, 1)}${el.substr(1).toLowerCase()}`} - } else { - return null - } - }).slice(1) - } + {buttons}
diff --git a/src/components/edit_user/tabs_navigation/login_options/index.js b/src/components/edit_user/tabs_navigation/login_options/index.js index 534d342..a98748c 100644 --- a/src/components/edit_user/tabs_navigation/login_options/index.js +++ b/src/components/edit_user/tabs_navigation/login_options/index.js @@ -34,7 +34,7 @@ LoginOption.propTypes = { handleDeleteContactModal: PropTypes.func.isRequired, handleAddLoginOptionsModal: PropTypes.func.isRequired, LoginOptionLength: PropTypes.number.isRequired, - addOptionString: PropTypes.array.isRequired + addOptionString: PropTypes.object.isRequired } export default LoginOption diff --git a/src/components/edit_user/tabs_navigation/login_options/login_option_controls.js b/src/components/edit_user/tabs_navigation/login_options/login_option_controls.js index 9816fa1..2fdc976 100644 --- a/src/components/edit_user/tabs_navigation/login_options/login_option_controls.js +++ b/src/components/edit_user/tabs_navigation/login_options/login_option_controls.js @@ -15,7 +15,7 @@ const LoginOptionControls = (props) => {
{ - inputType === 'EMAIL' + inputType === 'EMAIL_CONTACT' ? { info={info} inputType={inputType} /> - : inputType === 'PHONE' + : inputType === 'PHONE_CONTACT' ? name.split(/[_]/)[0] diff --git a/src/utils/services/accounts.js b/src/utils/services/accounts.js index 7320277..1914e24 100644 --- a/src/utils/services/accounts.js +++ b/src/utils/services/accounts.js @@ -6,16 +6,19 @@ let accountServiceClient = new AccountServiceClient(endpoint) export let accountRoleVariations = Object.keys(Role) export let accountStatusVariations = Object.keys(AccessStatus) -export let accountContactType = Object.keys(ContactType) export let accountLoginType = Object.keys(AuthenticationType) -export let contactTypes = Object.keys(ContactType).map(item => item.split(/[_]/)[0]) -export let contactTypeKeys = {} +delete ContactType.MISSING_CONTACT_TYPE +export const contactTypes = { ...ContactType } + +let contactKeys = {} for (let key in ContactType) { - contactTypeKeys[key.split(/[_]/)[0]] = ContactType[key] + contactKeys[ContactType[key]] = key } +export const contactTypeKeys = { ...contactKeys } + /** * getting account details */ -- GitLab From cb9f149aa5e288f06940df98f5d0ceac74fdb1a9 Mon Sep 17 00:00:00 2001 From: Vasil Nikolov Date: Wed, 28 Nov 2018 18:05:33 +0200 Subject: [PATCH 230/249] eslint fix --- src/utils/services/accounts.js | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/src/utils/services/accounts.js b/src/utils/services/accounts.js index 0611865..9d97608 100644 --- a/src/utils/services/accounts.js +++ b/src/utils/services/accounts.js @@ -72,48 +72,46 @@ export function profileByProfileIdGrpcRequest (profileId) { }) } -let deleteProfileRequest = new DeleteProfileRequest(); +let deleteProfileRequest = new DeleteProfileRequest() export function deleteProfileGrpcRequest (profileId) { return new Promise((resolve, reject) => { - deleteProfileRequest.setProfileid(profileId); + deleteProfileRequest.setProfileid(profileId) accountServiceClient.deleteProfile(deleteProfileRequest, { 'Content-type': 'application/grpc-web+proto' }, (error, response) => { if (response) { - if(response.status === "SUCCESS") { + if (response.status === 'SUCCESS') { resolve(response.status) } else { reject(response.error.message) } - } if (error) { - console.log(error); + console.log(error) reject(error) } }) - }) + }) } -let deleteAccountRequest = new DeleteAccountRequest(); +let deleteAccountRequest = new DeleteAccountRequest() export function deleteAccountGrpcRequest (accountId) { return new Promise((resolve, reject) => { - deleteAccountRequest.setAccountid(accountId); + deleteAccountRequest.setAccountid(accountId) accountServiceClient.deleteAccount(deleteAccountRequest, { 'Content-type': 'application/grpc-web+proto' }, (error, response) => { if (response) { - if(response.status === "SUCCESS") { + if (response.status === 'SUCCESS') { resolve(response.status) } else { reject(response.error.message) } - } if (error) { - console.log(error); + console.log(error) reject(error) } }) - }) + }) } // let host = "https://account.dev-eu.nynja.net:443"; -- GitLab From 4b6fbfa719f980aaad56d37e3f9e60b9b04df74f Mon Sep 17 00:00:00 2001 From: Vasil Nikolov Date: Wed, 28 Nov 2018 18:18:38 +0200 Subject: [PATCH 231/249] adjustments to modals with new contact types --- .../contact_info/modal_content/add_modal.js | 14 ++++++-------- .../contact_info/modal_content/delete_modal.js | 10 ++++++---- .../contact_info/modal_content/edit_modal.js | 10 ++++++---- .../login_options/modal_content/add_modal.js | 6 ++++-- .../login_options/modal_content/delete_modal.js | 8 +++++--- 5 files changed, 27 insertions(+), 21 deletions(-) diff --git a/src/components/edit_user/generic_data/contact_info/modal_content/add_modal.js b/src/components/edit_user/generic_data/contact_info/modal_content/add_modal.js index a6edee3..d676799 100644 --- a/src/components/edit_user/generic_data/contact_info/modal_content/add_modal.js +++ b/src/components/edit_user/generic_data/contact_info/modal_content/add_modal.js @@ -6,6 +6,7 @@ import Grid from '@material-ui/core/Grid' import Email from '@material-ui/icons/Email' import People from '@material-ui/icons/People' import TextField from '@material-ui/core/TextField' +import { formatContactInfo } from 'utils/helpers/common' const styles = {} @@ -35,29 +36,26 @@ handleChange = (e) => { render () { const { classes, type, handleModalCancel, onSave } = this.props const { addContactInfo, isUpdated } = this.state - - // console.log('====================================') - // console.log(this.state) - // console.log('====================================') + let label = formatContactInfo(type) return (
-

Add {type} in Contact Information

+

Add {label} in Contact Information

{ - type !== 'PHONE' + type !== 'PHONE_CONTACT' ?
- {type !== 'EMAIL' && type !== 'PHONE' + {type !== 'EMAIL_CONTACT' && type !== 'PHONE_CONTACT' ? : } { const { handleModalCancel, handleDeleteContactConfirmed, value, type, classes } = props + let label = formatContactInfo(type) return (
-

Delete {type}

+

Delete {label}

{ - type !== 'PHONE' - ?

Do you want to delete user's {type.toLowerCase()}: {value} from contact information?

- :

Do you want to delete user's {type.toLowerCase()}: +{value} from contact information?

+ type !== 'PHONE_CONTACT' + ?

Do you want to delete user's {label.toLowerCase()}: {value} from contact information?

+ :

Do you want to delete user's {label.toLowerCase()}: +{value} from contact information?

}
diff --git a/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js b/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js index 73753c3..a404e64 100644 --- a/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js +++ b/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js @@ -6,6 +6,7 @@ import Grid from '@material-ui/core/Grid' import Email from '@material-ui/icons/Email' import People from '@material-ui/icons/People' import TextField from '@material-ui/core/TextField' +import { formatContactInfo } from 'utils/helpers/common' const styles = {} @@ -34,18 +35,19 @@ class ContactInfoEditModal extends PureComponent { render () { const { handleModalEditProfileCancel, type, classes, onSave } = this.props const { isUpdated } = this.state + let label = formatContactInfo(type) return (
-

Edit {type}

+

Edit {label}

{ - type !== 'PHONE' + type !== 'PHONE_CONTACT' ?
- {type !== 'EMAIL' && type !== 'PHONE' + {type !== 'EMAIL_CONTACT' && type !== 'PHONE_CONTACT' ? : } @@ -55,7 +57,7 @@ class ContactInfoEditModal extends PureComponent { id="profileEdit-contact" value={this.state.value} name="contactsinfoList" - label={type} + label={label} onChange={this.handleChange} fullWidth /> diff --git a/src/components/edit_user/tabs_navigation/login_options/modal_content/add_modal.js b/src/components/edit_user/tabs_navigation/login_options/modal_content/add_modal.js index 674618f..04f24b8 100644 --- a/src/components/edit_user/tabs_navigation/login_options/modal_content/add_modal.js +++ b/src/components/edit_user/tabs_navigation/login_options/modal_content/add_modal.js @@ -6,6 +6,7 @@ import Grid from '@material-ui/core/Grid' import Email from '@material-ui/icons/Email' import People from '@material-ui/icons/People' import TextField from '@material-ui/core/TextField' +import { formatContactInfo } from 'utils/helpers/common' const styles = {} class LoginOptionsAddModal extends PureComponent { @@ -34,10 +35,11 @@ class LoginOptionsAddModal extends PureComponent { render () { const { classes, type, onSave, handleModalCancel } = this.props const { addLoginOptions, isUpdated } = this.state + let label = formatContactInfo(type) return (
-

Add {type} in Login Options

+

Add {label} in Login Options

{ type !== 'PHONE' ?
@@ -52,7 +54,7 @@ class LoginOptionsAddModal extends PureComponent { { const { handleModalCancel, handleDeleteContactConfirmed, value, type, classes } = props + let label = formatContactInfo(type) return (
-

Delete {type}

+

Delete {label}

{ type !== 'PHONE' - ?

Do you want to delete user's {type.toLowerCase()}: {value} from contact information?

- :

Do you want to delete user's {type.toLowerCase()}: +{value} from contact information?

+ ?

Do you want to delete user's {label.toLowerCase()}: {value} from contact information?

+ :

Do you want to delete user's {label.toLowerCase()}: +{value} from contact information?

}
-- GitLab From 574fd49927c05a6366529eab0aecd069168f3497 Mon Sep 17 00:00:00 2001 From: Vasil Nikolov Date: Wed, 28 Nov 2018 18:21:10 +0200 Subject: [PATCH 232/249] fixed input icons --- .../generic_data/contact_info/contact_info_controls.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/edit_user/generic_data/contact_info/contact_info_controls.js b/src/components/edit_user/generic_data/contact_info/contact_info_controls.js index b7a28b0..750da27 100644 --- a/src/components/edit_user/generic_data/contact_info/contact_info_controls.js +++ b/src/components/edit_user/generic_data/contact_info/contact_info_controls.js @@ -15,7 +15,7 @@ const ContactInfoControls = (props) => {
{ - inputType === 'EMAIL' + inputType === 'EMAIL_CONTACT' ? { info={info} inputType={inputType} /> - : inputType === 'PHONE' + : inputType === 'PHONE_CONTACT' ? Date: Wed, 28 Nov 2018 18:33:25 +0200 Subject: [PATCH 233/249] detect change improvement --- src/components/edit_user/generic_data/index.js | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/components/edit_user/generic_data/index.js b/src/components/edit_user/generic_data/index.js index 284c461..17cfedd 100644 --- a/src/components/edit_user/generic_data/index.js +++ b/src/components/edit_user/generic_data/index.js @@ -71,13 +71,17 @@ class genericUserData extends Component { let result = [] for (let key in user.contactsinfoList) { - user.contactsinfoList[key].forEach((el, index) => { - if (this.state.contactInfo[key][index]) { - result.push(Boolean(el.value === this.state.contactInfo[key][index].value)) - } else { - result.push(false) - } - }) + if (user.contactsinfoList[key].length === this.state.contactInfo[key].length) { + user.contactsinfoList[key].forEach((el, index) => { + if (this.state.contactInfo[key][index]) { + result.push(Boolean(el.value === this.state.contactInfo[key][index].value)) + } else { + result.push(false) + } + }) + } else { + result.push(false) + } } let contactInfoUpdated = !result.every(currentValue => currentValue === true) -- GitLab From 38fe8cfab4e3e2b261447b7b56b4212229807365 Mon Sep 17 00:00:00 2001 From: Vasil Nikolov Date: Wed, 28 Nov 2018 18:35:34 +0200 Subject: [PATCH 234/249] improvement to detect change for login options --- .../edit_user/tabs_navigation/index.js | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/components/edit_user/tabs_navigation/index.js b/src/components/edit_user/tabs_navigation/index.js index fe70e50..2738724 100644 --- a/src/components/edit_user/tabs_navigation/index.js +++ b/src/components/edit_user/tabs_navigation/index.js @@ -80,13 +80,17 @@ class TabsNavigation extends Component { let result = [] for (let key in user.loginOptionsList) { - user.loginOptionsList[key].forEach((el, index) => { - if (this.state.loginOptions[key][index]) { - result.push(Boolean(el.value === this.state.loginOptions[key][index].value)) - } else { - result.push(false) - } - }) + if (user.loginOptionsList[key].length === this.state.loginOptions[key].length) { + user.loginOptionsList[key].forEach((el, index) => { + if (this.state.loginOptions[key][index]) { + result.push(Boolean(el.value === this.state.loginOptions[key][index].value)) + } else { + result.push(false) + } + }) + } else { + result.push(false) + } } let loginOptionsListNotUpdated = !result.every(currentValue => currentValue === true) -- GitLab From 4608f164f2310ec3c3c5e36701e42665f6c6fe55 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Thu, 29 Nov 2018 11:01:31 +0200 Subject: [PATCH 235/249] NY-4528 Add missing Prop Types --- src/App.js | 170 +++++++++--------- .../add_contact_info/add_contact_info.js | 7 + .../contact_info_control_options.js | 11 +- .../contact_info/modal_content/add_modal.js | 10 +- .../contact_info/modal_content/edit_modal.js | 11 +- src/components/edit_user/index.js | 2 +- .../edit_user/profile_tools/index.js | 10 +- .../add_login_options/add_login_options.js | 12 +- .../login_option_control_options.js | 15 +- .../manage_control_login_option.js | 9 +- .../login_options/modal_content/add_modal.js | 14 +- .../modal_content/delete_modal.js | 2 +- .../type_controls/type_control_email.js | 1 - src/index.js | 65 ++++--- src/utils/helpers/avatar_insertion.js | 14 +- src/utils/helpers/date_time_structure.js | 13 +- src/utils/helpers/format_date.js | 5 +- src/utils/helpers/more_options.js | 9 +- src/utils/localstorage/configure_persist.js | 24 +-- src/utils/services/auth.js | 72 ++++---- 20 files changed, 270 insertions(+), 206 deletions(-) diff --git a/src/App.js b/src/App.js index 91b6242..134f150 100644 --- a/src/App.js +++ b/src/App.js @@ -1,35 +1,40 @@ -import React, { Component, Fragment } from 'react'; -import { BrowserRouter as Router, Route, Switch } from 'react-router-dom'; -import PropTypes from "prop-types"; -import { connect } from 'react-redux'; -import { bindActionCreators } from 'redux'; - -import { withStyles } from "@material-ui/core/styles"; -import Grid from '@material-ui/core/Grid'; -import IconButton from "@material-ui/core/IconButton"; -import MenuIcon from "@material-ui/icons/Menu"; - -import { routesArray } from './routing'; -import PageNotFound from './components/page_not_found'; -import Sidebar from './components/sidebar'; -import HeaderBar from './components/header_bar'; +import React, { Component, Fragment } from 'react' +import { BrowserRouter as Router, Route, Switch } from 'react-router-dom' +import PropTypes from 'prop-types' +import { connect } from 'react-redux' +import { bindActionCreators } from 'redux' + +import { withStyles } from '@material-ui/core/styles' +import Grid from '@material-ui/core/Grid' +import IconButton from '@material-ui/core/IconButton' +import MenuIcon from '@material-ui/icons/Menu' + +import { routesArray } from './routing' +import PageNotFound from './components/page_not_found' +import Sidebar from './components/sidebar' +import HeaderBar from './components/header_bar' import ErrorHandler from './hoc/error_handler/' -import * as actions from './store/root_actions/auth'; +import * as actions from './store/root_actions/auth' /** * @const {object} styles coming from Material UI will go here */ -const styles = {}; +const styles = {} class App extends Component { - state = { - leftSideNav: false - }; + leftSideNav: false + } - componentDidMount() { - this.props.getAuthedUser(); + static propTypes = { + classes: PropTypes.object.isRequired, + getAuthedUser: PropTypes.func.isRequired, + error: PropTypes.object.isRequired + } + + componentDidMount () { + this.props.getAuthedUser() } /** @@ -37,80 +42,71 @@ class App extends Component { * checks state.leftSideNav bool and toggles it */ sideBarToggleHandler = () => { - - this.setState((prevState) => { - return { - leftSideNav: !prevState.leftSideNav - } - - }); + this.setState((prevState) => { + return { + leftSideNav: !prevState.leftSideNav + } + }) } - render() { - - /** + render () { + /** * @const {object} classes coming from material ui * @const {object} leftSideNav related to show hide left side Navbar */ - const { classes, error } = this.props; - const { leftSideNav } = this.state; - - return ( - - - -
- - - -
- - - - { - leftSideNav - ? - : null - } - - - - { - routesArray.map((item, index) => ) - } - } /> - - - - - - { - error - ? - : null - } -
- - ) - + const { classes, error } = this.props + const { leftSideNav } = this.state + + return ( + + + +
+ + + +
+ + + + { + leftSideNav + ? + : null + } + + + + { + routesArray.map((item, index) => ) + } + } /> + + + + + + { + error + ? + : null + } +
+ + ) } } -App.propTypes = { - classes: PropTypes.object.isRequired -}; - -function mapStateToProps({error}) { - return { - error - } +function mapStateToProps ({ error }) { + return { + error + } } const mapDispatchToProps = (dispatch) => { - - return bindActionCreators({ - ...actions - }, dispatch) - } + return bindActionCreators({ + ...actions + }, dispatch) +} -export default withStyles(styles)(connect(mapStateToProps, mapDispatchToProps)(App)); \ No newline at end of file +export default withStyles(styles)(connect(mapStateToProps, mapDispatchToProps)(App)) diff --git a/src/components/edit_user/generic_data/contact_info/add_contact_info/add_contact_info.js b/src/components/edit_user/generic_data/contact_info/add_contact_info/add_contact_info.js index 687a9a5..cb663f7 100644 --- a/src/components/edit_user/generic_data/contact_info/add_contact_info/add_contact_info.js +++ b/src/components/edit_user/generic_data/contact_info/add_contact_info/add_contact_info.js @@ -1,4 +1,5 @@ import React, { Component } from 'react' +import PropTypes from 'prop-types' import { withStyles } from '@material-ui/core/styles' import Button from '@material-ui/core/Button' @@ -17,6 +18,12 @@ class AddContactInfo extends Component { } } + static propTypes = { + handleAddContactModal: PropTypes.func.isRequired, + classes: PropTypes.object.isRequired, + addOptionString: PropTypes.object.isRequired + } + handleShowMenuList = event => { this.setState({ anchorEl: event.currentTarget }) } diff --git a/src/components/edit_user/generic_data/contact_info/contact_info_control_options.js b/src/components/edit_user/generic_data/contact_info/contact_info_control_options.js index c965981..18def29 100644 --- a/src/components/edit_user/generic_data/contact_info/contact_info_control_options.js +++ b/src/components/edit_user/generic_data/contact_info/contact_info_control_options.js @@ -1,6 +1,7 @@ import React, { Component } from 'react' -import { withStyles } from '@material-ui/core/styles' +import PropTypes from 'prop-types' +import { withStyles } from '@material-ui/core/styles' import IconButton from '@material-ui/core/IconButton' import Menu from '@material-ui/core/Menu' import MoreVertIcon from '@material-ui/icons/MoreVert' @@ -17,6 +18,14 @@ class ContactInfoControlOptions extends Component { } } + static propTypes = { + handleEditContact: PropTypes.func.isRequired, + handleDeleteContact: PropTypes.func.isRequired, + infoKey: PropTypes.number.isRequired, + controlValue: PropTypes.string.isRequired, + inputType: PropTypes.string.isRequired + } + handleMenu = event => { this.setState({ anchorEl: event.currentTarget }) }; diff --git a/src/components/edit_user/generic_data/contact_info/modal_content/add_modal.js b/src/components/edit_user/generic_data/contact_info/modal_content/add_modal.js index d676799..9ce42c2 100644 --- a/src/components/edit_user/generic_data/contact_info/modal_content/add_modal.js +++ b/src/components/edit_user/generic_data/contact_info/modal_content/add_modal.js @@ -1,7 +1,8 @@ import React, { PureComponent } from 'react' +import PropTypes from 'prop-types' + import { withStyles } from '@material-ui/core/styles' import Button from '@material-ui/core/Button' - import Grid from '@material-ui/core/Grid' import Email from '@material-ui/icons/Email' import People from '@material-ui/icons/People' @@ -20,6 +21,13 @@ class ContactInfoAddModal extends PureComponent { } } + static propTypes = { + handleModalCancel: PropTypes.func.isRequired, + onSave: PropTypes.func.isRequired, + classes: PropTypes.object.isRequired, + type: PropTypes.string.isRequired + } + handleChange = (e) => { let newCurrentUser = { ...this.state.addContactInfo } let oldValue = '' diff --git a/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js b/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js index a404e64..fe26478 100644 --- a/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js +++ b/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js @@ -1,7 +1,8 @@ import React, { PureComponent } from 'react' +import PropTypes from 'prop-types' + import { withStyles } from '@material-ui/core/styles' import Button from '@material-ui/core/Button' - import Grid from '@material-ui/core/Grid' import Email from '@material-ui/icons/Email' import People from '@material-ui/icons/People' @@ -22,6 +23,14 @@ class ContactInfoEditModal extends PureComponent { } } + static propTypes = { + handleModalEditProfileCancel: PropTypes.func.isRequired, + type: PropTypes.string.isRequired, + onSave: PropTypes.func.isRequired, + classes: PropTypes.object.isRequired, + value: PropTypes.string.isRequired + } + handleChange = (e) => { let oldValue = this.props.value diff --git a/src/components/edit_user/index.js b/src/components/edit_user/index.js index a535e59..60f6cde 100644 --- a/src/components/edit_user/index.js +++ b/src/components/edit_user/index.js @@ -5,8 +5,8 @@ import PropTypes from 'prop-types' import { withStyles } from '@material-ui/core/styles' import Grid from '@material-ui/core/Grid' -import * as actions from './actions' +import * as actions from './actions' import GenericData from './generic_data' import ProfileTools from './profile_tools/index' import TabsNavigation from './tabs_navigation/index' diff --git a/src/components/edit_user/profile_tools/index.js b/src/components/edit_user/profile_tools/index.js index 0394b7f..9b22e89 100644 --- a/src/components/edit_user/profile_tools/index.js +++ b/src/components/edit_user/profile_tools/index.js @@ -1,4 +1,5 @@ import React, { Component } from 'react' +import PropTypes from 'prop-types' import './profile_tools.css' import { withStyles } from '@material-ui/core/styles' @@ -37,9 +38,16 @@ const styles = { } class ProfileTools extends Component { + static propTypes = { + isUpdated: PropTypes.bool.isRequired, + classes: PropTypes.object.isRequired, + saveChanges: PropTypes.func.isRequired, + goBack: PropTypes.func.isRequired + } + handelBackToPreviousState = () => { this.props.goBack() - }; + } render () { const { classes, isUpdated, saveChanges } = this.props diff --git a/src/components/edit_user/tabs_navigation/login_options/add_login_options/add_login_options.js b/src/components/edit_user/tabs_navigation/login_options/add_login_options/add_login_options.js index a1388e2..2a13d64 100644 --- a/src/components/edit_user/tabs_navigation/login_options/add_login_options/add_login_options.js +++ b/src/components/edit_user/tabs_navigation/login_options/add_login_options/add_login_options.js @@ -1,4 +1,5 @@ import React, { Component } from 'react' +import PropTypes from 'prop-types' import { withStyles } from '@material-ui/core/styles' import Button from '@material-ui/core/Button' @@ -17,6 +18,13 @@ class AddLoginOptions extends Component { } } + static propTypes = { + LoginOptionLength: PropTypes.number.isRequired, + handleAddLoginOptionsModal: PropTypes.func.isRequired, + classes: PropTypes.object.isRequired, + addOptionString: PropTypes.object.isRequired + } + handleShowMenuList = event => { this.setState({ anchorEl: event.currentTarget }) } @@ -31,10 +39,6 @@ class AddLoginOptions extends Component { this.handleClose() } - // isDisableBtn = () => { - - // } - render () { const { classes, addOptionString, LoginOptionLength } = this.props const { anchorEl } = this.state diff --git a/src/components/edit_user/tabs_navigation/login_options/login_option_control_options.js b/src/components/edit_user/tabs_navigation/login_options/login_option_control_options.js index 1fcd668..c0ba392 100644 --- a/src/components/edit_user/tabs_navigation/login_options/login_option_control_options.js +++ b/src/components/edit_user/tabs_navigation/login_options/login_option_control_options.js @@ -5,6 +5,7 @@ import IconButton from '@material-ui/core/IconButton' import Menu from '@material-ui/core/Menu' import MoreVertIcon from '@material-ui/icons/MoreVert' import MenuItem from '@material-ui/core/MenuItem' +import PropTypes from 'prop-types' const ITEM_HEIGHT = 48 const styles = theme => ({}) @@ -12,15 +13,23 @@ const styles = theme => ({}) class LoginOptionControlOptions extends Component { state = { anchorEl: null - }; + } + + static propTypes = { + LoginOptionLength: PropTypes.number.isRequired, + handleDeleteContact: PropTypes.func.isRequired, + infoKey: PropTypes.number.isRequired, + controlValue: PropTypes.string.isRequired, + inputType: PropTypes.string.isRequired + } handleMenu = event => { this.setState({ anchorEl: event.currentTarget }) - }; + } handleClose = () => { this.setState({ anchorEl: null }) - }; + } onHandleDeleteContact = () => { this.handleClose() diff --git a/src/components/edit_user/tabs_navigation/login_options/manage_control_login_option.js b/src/components/edit_user/tabs_navigation/login_options/manage_control_login_option.js index 91006e5..68f66eb 100644 --- a/src/components/edit_user/tabs_navigation/login_options/manage_control_login_option.js +++ b/src/components/edit_user/tabs_navigation/login_options/manage_control_login_option.js @@ -1,5 +1,5 @@ import React from 'react' -// import PropTypes from 'prop-types' +import PropTypes from 'prop-types' import LoginOptionControls from './login_option_controls' @@ -29,4 +29,11 @@ const ManageControlLoginOption = (props) => { return controls } +ManageControlLoginOption.propTypes = { + loginOptions: PropTypes.object.isRequired, + LoginOptionLength: PropTypes.number.isRequired, + handleDeleteContactModal: PropTypes.func, + userID: PropTypes.string.isRequired +} + export default ManageControlLoginOption diff --git a/src/components/edit_user/tabs_navigation/login_options/modal_content/add_modal.js b/src/components/edit_user/tabs_navigation/login_options/modal_content/add_modal.js index 04f24b8..643e9a8 100644 --- a/src/components/edit_user/tabs_navigation/login_options/modal_content/add_modal.js +++ b/src/components/edit_user/tabs_navigation/login_options/modal_content/add_modal.js @@ -1,7 +1,8 @@ import React, { PureComponent } from 'react' +import PropTypes from 'prop-types' + import { withStyles } from '@material-ui/core/styles' import Button from '@material-ui/core/Button' - import Grid from '@material-ui/core/Grid' import Email from '@material-ui/icons/Email' import People from '@material-ui/icons/People' @@ -19,6 +20,13 @@ class LoginOptionsAddModal extends PureComponent { } } + static propTypes = { + handleModalCancel: PropTypes.func.isRequired, + onSave: PropTypes.func.isRequired, + classes: PropTypes.object.isRequired, + type: PropTypes.string.isRequired + } + handleChange = (e) => { let newCurrentUser = { ...this.state.addLoginOptions } let oldValue = '' @@ -41,13 +49,13 @@ class LoginOptionsAddModal extends PureComponent {

Add {label} in Login Options

{ - type !== 'PHONE' + type !== 'PHONE_CONTACT' ?
- {type !== 'EMAIL' && type !== 'PHONE' + {type !== 'EMAIL_CONTACT' && type !== 'PHONE_CONTACT' ? : } diff --git a/src/components/edit_user/tabs_navigation/login_options/modal_content/delete_modal.js b/src/components/edit_user/tabs_navigation/login_options/modal_content/delete_modal.js index c092c1a..9c6e90e 100644 --- a/src/components/edit_user/tabs_navigation/login_options/modal_content/delete_modal.js +++ b/src/components/edit_user/tabs_navigation/login_options/modal_content/delete_modal.js @@ -16,7 +16,7 @@ const LoginOptionDeleteModal = (props) => {

Delete {label}

{ - type !== 'PHONE' + type !== 'PHONE_CONTACT' ?

Do you want to delete user's {label.toLowerCase()}: {value} from contact information?

:

Do you want to delete user's {label.toLowerCase()}: +{value} from contact information?

} diff --git a/src/components/edit_user/tabs_navigation/login_options/type_controls/type_control_email.js b/src/components/edit_user/tabs_navigation/login_options/type_controls/type_control_email.js index 95079f3..7970281 100644 --- a/src/components/edit_user/tabs_navigation/login_options/type_controls/type_control_email.js +++ b/src/components/edit_user/tabs_navigation/login_options/type_controls/type_control_email.js @@ -2,7 +2,6 @@ import React from 'react' import PropTypes from 'prop-types' import { withStyles } from '@material-ui/core/styles' - import InputAdornment from '@material-ui/core/InputAdornment' import Mail from '@material-ui/icons/Mail' import TextField from '@material-ui/core/TextField' diff --git a/src/index.js b/src/index.js index 44fefc7..2e391e2 100644 --- a/src/index.js +++ b/src/index.js @@ -1,47 +1,46 @@ -import React from 'react'; -import ReactDOM from 'react-dom'; -import { createStore } from 'redux'; -import { Provider } from 'react-redux'; -import {LicenseManager} from "ag-grid-enterprise"; +import React from 'react' +import ReactDOM from 'react-dom' +import { createStore } from 'redux' +import { Provider } from 'react-redux' +import { LicenseManager } from 'ag-grid-enterprise' -import rootReducer from './store/root_reducers'; -import rootMiddleware, { sagaMiddleware, combineSagas } from './store/root_middleware'; +import { persistStore, persistReducer } from 'redux-persist' +import { PersistGate } from 'redux-persist/integration/react' +import { MuiThemeProvider, createMuiTheme } from '@material-ui/core/styles' +import rootReducer from './store/root_reducers' +import rootMiddleware, { sagaMiddleware, combineSagas } from './store/root_middleware' -import { persistStore, persistReducer } from "redux-persist"; -import { PersistGate } from "redux-persist/integration/react"; -import persistConfig from './utils/localstorage/configure_persist'; +import persistConfig from './utils/localstorage/configure_persist' -import { MuiThemeProvider, createMuiTheme } from "@material-ui/core/styles"; -import Spinner from './components/shared/ui/spinner/spinner'; +import Spinner from './components/shared/ui/spinner/spinner' +import './index.css' +import App from './App' -import './index.css'; -import App from './App'; - -LicenseManager.setLicenseKey("Evaluation_License_Valid_Until__22_December_2018__MTU0NTQzNjgwMDAwMA==d8310d76d04f6e775e384fcc32f337c5"); +LicenseManager.setLicenseKey('Evaluation_License_Valid_Until__22_December_2018__MTU0NTQzNjgwMDAwMA==d8310d76d04f6e775e384fcc32f337c5') const theme = createMuiTheme({ - typography: { - useNextVariants: true - } -}); + typography: { + useNextVariants: true + } +}) -const persistedReducer = persistReducer(persistConfig, rootReducer); -const store = createStore(persistedReducer, rootMiddleware); -const persistor = persistStore(store); +const persistedReducer = persistReducer(persistConfig, rootReducer) +const store = createStore(persistedReducer, rootMiddleware) +const persistor = persistStore(store) -sagaMiddleware.run(combineSagas); +sagaMiddleware.run(combineSagas) ReactDOM.render( - + - } persistor={persistor}> - + } persistor={persistor}> + - + - - + + - , - document.getElementById('root') -); \ No newline at end of file + , + document.getElementById('root') +) diff --git a/src/utils/helpers/avatar_insertion.js b/src/utils/helpers/avatar_insertion.js index c79bc46..bc780e0 100644 --- a/src/utils/helpers/avatar_insertion.js +++ b/src/utils/helpers/avatar_insertion.js @@ -1,9 +1,11 @@ const userAvatar = (params) => { + const avatar = params.data.avatar !== '' + ? `${params.data.avatar}${params.data.firstname}` + : `${params.data.avatar}${params.data.firstname}` - : ` ${params.data.firstname}` + return avatar || null +} - return avatar ? avatar : null; -}; - -export default userAvatar; \ No newline at end of file +export default userAvatar diff --git a/src/utils/helpers/date_time_structure.js b/src/utils/helpers/date_time_structure.js index 6d6646d..54918cd 100644 --- a/src/utils/helpers/date_time_structure.js +++ b/src/utils/helpers/date_time_structure.js @@ -1,8 +1,9 @@ const dateTimeStructure = (params) => { - - const dateTime = params.value.length > 0 ? `${params.value[0]}${params.value[1]}` : null; + const dateTime = params.value.length > 0 + ? `${params.value[0]}${params.value[1]}` + : null - return dateTime; - }; - - export default dateTimeStructure; \ No newline at end of file + return dateTime +} + +export default dateTimeStructure diff --git a/src/utils/helpers/format_date.js b/src/utils/helpers/format_date.js index 9495b6e..73e8bbb 100644 --- a/src/utils/helpers/format_date.js +++ b/src/utils/helpers/format_date.js @@ -1,5 +1,5 @@ -import moment from 'moment' import { DATE_FORMAT } from 'constants/formats' +import moment from 'moment' export { formatDate } @@ -7,5 +7,4 @@ function formatDate (value, format = DATE_FORMAT) { return value ? moment(value, DATE_FORMAT).format(format) : null } - -moment('date', 'YYYY/MM/DD') \ No newline at end of file +moment('date', 'YYYY/MM/DD') diff --git a/src/utils/helpers/more_options.js b/src/utils/helpers/more_options.js index 237029c..f5bbd17 100644 --- a/src/utils/helpers/more_options.js +++ b/src/utils/helpers/more_options.js @@ -1,6 +1,7 @@ const moreOptions = params => { - const optionContent = `and (5) more`; - return optionContent; -}; + const optionContent = `and (5) more` -export default moreOptions; \ No newline at end of file + return optionContent +} + +export default moreOptions diff --git a/src/utils/localstorage/configure_persist.js b/src/utils/localstorage/configure_persist.js index 7be5f01..16d028e 100644 --- a/src/utils/localstorage/configure_persist.js +++ b/src/utils/localstorage/configure_persist.js @@ -1,17 +1,17 @@ -import storage from "redux-persist/lib/storage"; -import autoMergeLevel1 from "redux-persist/lib/stateReconciler/autoMergeLevel1"; +import storage from 'redux-persist/lib/storage' +import autoMergeLevel1 from 'redux-persist/lib/stateReconciler/autoMergeLevel1' const persistConfig = { - key: "root", - storage, - stateReconciler: autoMergeLevel1, - blacklist: ["users", "editUser", "error", "authedUser"] -}; + key: 'root', + storage, + stateReconciler: autoMergeLevel1, + blacklist: ['users', 'editUser', 'error', 'authedUser'] +} export const usersPersistConfig = { - key: "users", - storage: storage, - blacklist: ["usersData", "coldef"] -}; + key: 'users', + storage: storage, + blacklist: ['usersData', 'coldef'] +} -export default persistConfig; \ No newline at end of file +export default persistConfig diff --git a/src/utils/services/auth.js b/src/utils/services/auth.js index c93bf1a..047f53f 100644 --- a/src/utils/services/auth.js +++ b/src/utils/services/auth.js @@ -1,49 +1,47 @@ -import { AuthenticationServiceClient } from './../grpc_proto/generated/auth_pb_service'; -import { EmptyRequest } from './../grpc_proto/generated/auth_pb'; +import { AuthenticationServiceClient } from './../grpc_proto/generated/auth_pb_service' +import { EmptyRequest } from './../grpc_proto/generated/auth_pb' -const endpoint = "https://auth.dev-eu.nynja.net:443"; +const endpoint = 'https://auth.dev-eu.nynja.net:443' -let generateAccessTokenRequest = new EmptyRequest(); +let generateAccessTokenRequest = new EmptyRequest() -let authenticationServiceClient = new AuthenticationServiceClient(endpoint); +let authenticationServiceClient = new AuthenticationServiceClient(endpoint) // token in case it gets deleted from localstorage: eyJraWQiOiIyMDE4MTEwOCIsInR5cCI6IkpXVCIsImFsZyI6IkVTMjU2In0.eyJzdWIiOiJPR1l5TkRGbE1qUXRZVE00TVMwME1UZ3dMVGt6WVRjdFpERXhPVEU1TXpNNFpUWTEiLCJhdWQiOiJNVEl6TVRJejphcHBDbGFzczoxMjMzMzMzIiwic2NvcGUiOiJhY2Nlc3MiLCJyb2xlcyI6W10sImlzcyI6Imh0dHBzOi8vYXV0aC5ueW5qYS5iaXovIiwiZXhwIjoxNTQyMjg5MzQ0LCJpYXQiOjE1NDE2ODQ1NDR9.6aWodeu2GiJq3V5d8RrsCyPrvvU1SKWJevvK4Fj6Dw36vSn6dX5PB_a4_Q9S33AwW6inUEFdGlJSol3L-V0RNQ // localStorage.setItem('token', token) -export function generateTokenResponceGrpcRequest(token){ - - return new Promise((resolve, reject) => { - authenticationServiceClient.generateAdminAccessToken(generateAccessTokenRequest, {'Content-type': 'application/grpc-web+proto', 'accessToken': token}, (error, response) => { - - if (response) { - if (response.tokenresponsedetails){ - let tokenDecoded = response.tokenresponsedetails.token.split(/[.]/); - - let containsAccountIdDecoded = JSON.parse(b64DecodeUnicode(tokenDecoded[1])); - - let decodedAccountId = b64DecodeUnicode(containsAccountIdDecoded.sub); - - resolve(decodedAccountId) - } else { - reject(response.tokenresponsedetails) - } - } else { - reject({errorMessage: 'Uknown Error'}) - } - - if(error){ - reject(error) - } - }) - }) -} +export function generateTokenResponceGrpcRequest (token) { + return new Promise((resolve, reject) => { + authenticationServiceClient.generateAdminAccessToken(generateAccessTokenRequest, { 'Content-type': 'application/grpc-web+proto', 'accessToken': token }, (error, response) => { + if (response) { + if (response.tokenresponsedetails) { + let tokenDecoded = response.tokenresponsedetails.token.split(/[.]/) + + let containsAccountIdDecoded = JSON.parse(b64DecodeUnicode(tokenDecoded[1])) + + let decodedAccountId = b64DecodeUnicode(containsAccountIdDecoded.sub) + + resolve(decodedAccountId) + } else { + reject(response.tokenresponsedetails) + } + } else { + reject({ errorMessage: 'Uknown Error' }) + } + + if (error) { + reject(error) + } + }) + }) +} /** * Decoded Base64 string - * @param {string} str + * @param {string} str */ -function b64DecodeUnicode(str) { - return decodeURIComponent(atob(str).split('').map(function(c) { - return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2); - }).join('')); +function b64DecodeUnicode (str) { + return decodeURIComponent(atob(str).split('').map(function (c) { + return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2) + }).join('')) } -- GitLab From 8bf43432d2631c63f872fd817b71ac35eb1c59ba Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Thu, 29 Nov 2018 13:41:01 +0200 Subject: [PATCH 236/249] NY-4528 Delete profile end points --- src/components/edit_user/actions.js | 72 ++++++++------- .../edit_user/generic_data/index.js | 7 +- src/components/edit_user/index.js | 2 +- src/components/edit_user/middleware.js | 20 +++- src/store/root_middleware/index.js | 45 ++++----- src/store/root_middleware/logger.js | 18 ++-- src/utils/services/accounts.js | 3 + src/utils/services/admin_account.js | 92 +++++++++---------- 8 files changed, 140 insertions(+), 119 deletions(-) diff --git a/src/components/edit_user/actions.js b/src/components/edit_user/actions.js index eb3882c..a74c8fd 100644 --- a/src/components/edit_user/actions.js +++ b/src/components/edit_user/actions.js @@ -1,39 +1,45 @@ -export const GET_SELECTED_USER_ID = "GET_SELECTED_USER_ID"; -export const DELIVER_SELECTED_USER_DATA = "DELIVER_SELECTED_USER_DATA"; -export const UPDATE_USER_DATA_CATEGORY_X = "UPDATE_USER_DATA_CATEGORY_X"; -export const DELIVER_UPDATE_USER_DATA_CATEGORY_X = "DELIVER_UPDATE_USER_DATA_CATEGORY_X"; -export const CLEAR_SELECTED_USER_DATA = "CLEAR_SELECTED_USER_DATA"; +export const GET_SELECTED_USER_ID = 'GET_SELECTED_USER_ID' +export const DELIVER_SELECTED_USER_DATA = 'DELIVER_SELECTED_USER_DATA' +export const UPDATE_USER_DATA_CATEGORY_X = 'UPDATE_USER_DATA_CATEGORY_X' +export const DELIVER_UPDATE_USER_DATA_CATEGORY_X = 'DELIVER_UPDATE_USER_DATA_CATEGORY_X' +export const CLEAR_SELECTED_USER_DATA = 'CLEAR_SELECTED_USER_DATA' +export const DELETE_ACCOUNT = 'DELETE_ACCOUNT' -export function getSelectedUserId(userId) { - return { - type: GET_SELECTED_USER_ID, - userId - } -} +export function getSelectedUserId (userId) { + return { + type: GET_SELECTED_USER_ID, + userId + } +} -export function deliverSelectedUserData(payload) { - return { - type: DELIVER_SELECTED_USER_DATA, - selectedUser: payload - } -} +export function deliverSelectedUserData (payload) { + return { + type: DELIVER_SELECTED_USER_DATA, + selectedUser: payload + } +} -export function clearSelectedUserData() { - return { - type: CLEAR_SELECTED_USER_DATA - } +export function clearSelectedUserData () { + return { + type: CLEAR_SELECTED_USER_DATA + } } -export function updateUserDataName(updateDetails) { - return { - type: UPDATE_USER_DATA_CATEGORY_X, - ...updateDetails - } -} +export function updateUserDataName (updateDetails) { + return { + type: UPDATE_USER_DATA_CATEGORY_X, + ...updateDetails + } +} -export function deliverUpdateUserDataName(newData) { - return { - type: DELIVER_UPDATE_USER_DATA_CATEGORY_X, - ...newData - } -} \ No newline at end of file +export function deliverUpdateUserDataName (newData) { + return { + type: DELIVER_UPDATE_USER_DATA_CATEGORY_X, + ...newData + } +} +export function deleteAccount () { + return { + type: DELETE_ACCOUNT + } +} diff --git a/src/components/edit_user/generic_data/index.js b/src/components/edit_user/generic_data/index.js index 17cfedd..3983a08 100644 --- a/src/components/edit_user/generic_data/index.js +++ b/src/components/edit_user/generic_data/index.js @@ -58,7 +58,8 @@ class genericUserData extends Component { user: PropTypes.object.isRequired, avatar: PropTypes.any, classes: PropTypes.object.isRequired, - changed: PropTypes.func.isRequired + changed: PropTypes.func.isRequired, + deleteAccount: PropTypes.func.isRequired } setActive = (state) => { @@ -216,9 +217,7 @@ class genericUserData extends Component { } deleteProfile = () => { - console.log('====================================') - console.log('DELETE PROFILE') - console.log('====================================') + this.props.deleteAccount() this.handleDeleteProfile() } diff --git a/src/components/edit_user/index.js b/src/components/edit_user/index.js index 60f6cde..1c847ed 100644 --- a/src/components/edit_user/index.js +++ b/src/components/edit_user/index.js @@ -53,7 +53,7 @@ class EditUser extends Component { { selectedUser.contactsinfoList - ? + ? : '' } diff --git a/src/components/edit_user/middleware.js b/src/components/edit_user/middleware.js index 063d17e..47b755b 100644 --- a/src/components/edit_user/middleware.js +++ b/src/components/edit_user/middleware.js @@ -1,9 +1,23 @@ -import { call, put } from 'redux-saga/effects' -import { accountByAccountIdGrpcRequest, profileByProfileIdGrpcRequest, contactTypes, contactTypeKeys } from './../../utils/services/accounts' -import { deliverSelectedUserData, deliverUpdateUserDataName } from './actions' +import { call, put, select } from 'redux-saga/effects' +import { accountByAccountIdGrpcRequest, profileByProfileIdGrpcRequest, contactTypes, contactTypeKeys, deleteProfileGrpcRequest, deleteAccountGrpcRequest } from './../../utils/services/accounts' +import { deliverSelectedUserData, deliverUpdateUserDataName } from './actions' import { globalError } from './../../hoc/error_handler/actions' +export function * deleteAccountProfile () { + const editUser = yield select((state) => state.editUser) + + try { + let deleteProfile = yield call(deleteProfileGrpcRequest, editUser.profileid) + // deleteAccount = yield call(deleteAccountGrpcRequest, editUser.accountid) + } catch (error) { + console.log('====================================') + console.log(error) + console.log('====================================') + + } +} + export function * getSelectedUserId (action) { try { let accountPayload = yield call(accountByAccountIdGrpcRequest, action.userId), diff --git a/src/store/root_middleware/index.js b/src/store/root_middleware/index.js index e9bdbde..4422eef 100644 --- a/src/store/root_middleware/index.js +++ b/src/store/root_middleware/index.js @@ -1,29 +1,30 @@ -import { applyMiddleware, compose } from 'redux'; -import createSagaMiddleware from 'redux-saga'; -import { all, takeEvery } from 'redux-saga/effects'; +import { applyMiddleware, compose } from 'redux' +import createSagaMiddleware from 'redux-saga' +import { all, takeEvery } from 'redux-saga/effects' -import logger from './logger'; +import logger from './logger' -import { UPDATE_USER_DATA_CATEGORY_X, GET_SELECTED_USER_ID } from './../../components/edit_user/actions'; -import { updateUserDataName, getSelectedUserId} from './../../components/edit_user/middleware'; +import { UPDATE_USER_DATA_CATEGORY_X, GET_SELECTED_USER_ID, DELETE_ACCOUNT } from './../../components/edit_user/actions' +import { updateUserDataName, getSelectedUserId, deleteAccountProfile } from './../../components/edit_user/middleware' -import { GET_AUTH_USER } from './../root_actions/auth'; -import { getAuthedUser } from './auth'; +import { GET_AUTH_USER } from './../root_actions/auth' +import { getAuthedUser } from './auth' -const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose; +const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose -export const sagaMiddleware = createSagaMiddleware(); +export const sagaMiddleware = createSagaMiddleware() -export default composeEnhancers(applyMiddleware(sagaMiddleware)); +export default composeEnhancers(applyMiddleware(sagaMiddleware)) -export function* combineSagas() { - yield all ( - [ - logger(), - // takeEvery(GET_USERS, getUsers), - takeEvery(GET_AUTH_USER, getAuthedUser), - takeEvery(GET_SELECTED_USER_ID, getSelectedUserId), - takeEvery(UPDATE_USER_DATA_CATEGORY_X, updateUserDataName) - ] - ) -} \ No newline at end of file +export function * combineSagas () { + yield all( + [ + logger(), + // takeEvery(GET_USERS, getUsers), + takeEvery(GET_AUTH_USER, getAuthedUser), + takeEvery(GET_SELECTED_USER_ID, getSelectedUserId), + takeEvery(UPDATE_USER_DATA_CATEGORY_X, updateUserDataName), + takeEvery(DELETE_ACCOUNT, deleteAccountProfile) + ] + ) +} diff --git a/src/store/root_middleware/logger.js b/src/store/root_middleware/logger.js index 37b4cf0..6076611 100644 --- a/src/store/root_middleware/logger.js +++ b/src/store/root_middleware/logger.js @@ -1,11 +1,11 @@ -import { take, select } from 'redux-saga/effects'; +import { take, select } from 'redux-saga/effects' -export default function* logger() { - while (true) { - const action = yield take('*') - const state = yield select(); +export default function * logger () { + while (true) { + const action = yield take('*') + const state = yield select() - console.log(action); - console.log(state); - } -} \ No newline at end of file + console.log(action) + console.log(state) + } +} diff --git a/src/utils/services/accounts.js b/src/utils/services/accounts.js index 9d97608..cfc34c6 100644 --- a/src/utils/services/accounts.js +++ b/src/utils/services/accounts.js @@ -98,6 +98,8 @@ let deleteAccountRequest = new DeleteAccountRequest() export function deleteAccountGrpcRequest (accountId) { return new Promise((resolve, reject) => { deleteAccountRequest.setAccountid(accountId) + console.log(accountId) + accountServiceClient.deleteAccount(deleteAccountRequest, { 'Content-type': 'application/grpc-web+proto' }, (error, response) => { if (response) { if (response.status === 'SUCCESS') { @@ -108,6 +110,7 @@ export function deleteAccountGrpcRequest (accountId) { } if (error) { console.log(error) + reject(error) } }) diff --git a/src/utils/services/admin_account.js b/src/utils/services/admin_account.js index 63ebdcc..e6de59b 100644 --- a/src/utils/services/admin_account.js +++ b/src/utils/services/admin_account.js @@ -1,49 +1,47 @@ -import { AdminAccountServiceClient } from './../grpc_proto/generated/admin_account_pb_service'; -import { GetAllAccountsRequest, EmptyRequest } from './../grpc_proto/generated/admin_account_pb'; - -const endpoint = "https://account.dev-eu.nynja.net:443"; - -let getAllAccountsRequest = new GetAllAccountsRequest(); - -let adminAccountServiceClient = new AdminAccountServiceClient(endpoint); - -export function getAllAccountsGrpcRequest(startRow, endRow){ - - getAllAccountsRequest.setStartrow(startRow); - getAllAccountsRequest.setEndrow(endRow); - - return new Promise((resolve, reject) => { - adminAccountServiceClient.getAllAccounts(getAllAccountsRequest, {'Content-type': 'application/grpc-web+proto'}, (error, response) => { - if(response) { - if(response.accountsresponse){ - resolve(response.accountsresponse); - } else { - reject({errorMessage: "Unknown error"}) - } - } - if(error){ - reject(error); - } - }) - }) +import { AdminAccountServiceClient } from './../grpc_proto/generated/admin_account_pb_service' +import { GetAllAccountsRequest, EmptyRequest } from './../grpc_proto/generated/admin_account_pb' + +const endpoint = 'https://account.dev-eu.nynja.net:443' + +let getAllAccountsRequest = new GetAllAccountsRequest() + +let adminAccountServiceClient = new AdminAccountServiceClient(endpoint) + +export function getAllAccountsGrpcRequest (startRow, endRow) { + getAllAccountsRequest.setStartrow(startRow) + getAllAccountsRequest.setEndrow(endRow) + + return new Promise((resolve, reject) => { + adminAccountServiceClient.getAllAccounts(getAllAccountsRequest, { 'Content-type': 'application/grpc-web+proto' }, (error, response) => { + if (response) { + if (response.accountsresponse) { + resolve(response.accountsresponse) + } else { + reject({ errorMessage: 'Unknown error' }) + } + } + if (error) { + reject(error) + } + }) + }) } -let getCountOfAllAccountsRequest = new EmptyRequest(); - -export function getCountOfAllAccountsGrpcRequest(){ - - return new Promise((resolve, reject) => { - adminAccountServiceClient.getCountOfAllAccounts(getCountOfAllAccountsRequest, {'Content-type': 'application/grpc-web+proto'}, (error, response) => { - if(response) { - if(response.count){ - resolve(response.count); - } else { - reject({errorMessage: "Unknown error"}) - } - } - if(error){ - reject(error); - } - }) - }) -} \ No newline at end of file +let getCountOfAllAccountsRequest = new EmptyRequest() + +export function getCountOfAllAccountsGrpcRequest () { + return new Promise((resolve, reject) => { + adminAccountServiceClient.getCountOfAllAccounts(getCountOfAllAccountsRequest, { 'Content-type': 'application/grpc-web+proto' }, (error, response) => { + if (response) { + if (response.count) { + resolve(response.count) + } else { + reject({ errorMessage: 'Unknown error' }) + } + } + if (error) { + reject(error) + } + }) + }) +} -- GitLab From e280c839ce47a08bfe8632fd876e695630327eaa Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Thu, 29 Nov 2018 18:31:14 +0200 Subject: [PATCH 237/249] ag-group-value --- src/components/dashboard_users/actions.js | 19 +- src/components/dashboard_users/css/style.css | 22 +- src/components/dashboard_users/index.js | 377 ++++++++---------- .../dashboard_users/page_size/page_size.css | 17 +- .../dashboard_users/paging/paging.css | 13 +- .../dashboard_users/paging/paging.js | 167 ++++---- src/components/dashboard_users/reducer.js | 129 +++--- src/components/edit_user/actions.js | 8 + .../edit_user/generic_data/index.js | 8 +- src/components/edit_user/index.js | 23 +- src/components/edit_user/middleware.js | 11 +- .../edit_user/profile_tools/profile_tools.css | 2 +- src/components/edit_user/reducer.js | 25 +- src/components/header_bar/css/style.css | 12 +- src/components/header_bar/index.js | 78 ++-- src/components/shared/ui/spinner/spinner.css | 23 +- src/components/shared/ui/spinner/spinner.js | 49 ++- src/constants/loaders.js | 1 + src/index.css | 2 +- src/store/root_actions/loaders.js | 16 + src/store/root_middleware/index.js | 1 - src/store/root_reducers/index.js | 31 +- src/store/root_reducers/loaders.js | 27 ++ src/utils/helpers/avatar_insertion.js | 1 + src/utils/services/ag_grid_server_model.js | 116 +++--- 25 files changed, 598 insertions(+), 580 deletions(-) create mode 100644 src/constants/loaders.js create mode 100644 src/store/root_actions/loaders.js create mode 100644 src/store/root_reducers/loaders.js diff --git a/src/components/dashboard_users/actions.js b/src/components/dashboard_users/actions.js index 0dd0d47..1b1454e 100644 --- a/src/components/dashboard_users/actions.js +++ b/src/components/dashboard_users/actions.js @@ -1,15 +1,8 @@ -export const GET_USERS = 'GET_USERS'; -export const PAGE_SIZE_UPDATE = 'PAGE_SIZE_UPDATE'; +export const PAGE_SIZE_UPDATE = 'PAGE_SIZE_UPDATE' -export function getUsers() { - return { - type: GET_USERS - } +export function PageSizeUpdate (pageSize) { + return { + type: PAGE_SIZE_UPDATE, + pageSize + } } - -export function PageSizeUpdate(pageSize) { - return { - type: PAGE_SIZE_UPDATE, - pageSize - } -} \ No newline at end of file diff --git a/src/components/dashboard_users/css/style.css b/src/components/dashboard_users/css/style.css index 26899e9..3e0fd28 100644 --- a/src/components/dashboard_users/css/style.css +++ b/src/components/dashboard_users/css/style.css @@ -1,7 +1,7 @@ .ag-grid-wrapper { position: relative; - height: calc(100vh - 200px); + height: calc(100vh - 176px); } .table-grouping { @@ -19,15 +19,15 @@ .user-avatar { display: inline-block; - - width: 30px; - height: 30px; } .user-avatar-img { display: block; - margin-top: 6px; - width: 100%; + margin-top: 10px; + margin-right: 15px; + width: 32px; + height: 32px; + filter: invert(0.30); } .toggleGrouping { @@ -77,16 +77,6 @@ top: -5px } -.user-avatar-img { - display:block; - float: left; - margin-top: 10px; - margin-right: 15px; - width: 1em; - height: 1em; - filter: invert(0.30); -} - .ag-primary-cols-list-panel .ag-column-tool-panel-column:nth-child(n + 8) { display: none; } diff --git a/src/components/dashboard_users/index.js b/src/components/dashboard_users/index.js index 6780df0..3c9aebe 100644 --- a/src/components/dashboard_users/index.js +++ b/src/components/dashboard_users/index.js @@ -1,87 +1,63 @@ -import React, { Component, Fragment } from 'react'; -import { AgGridReact } from "ag-grid-react"; -import "ag-grid-enterprise"; -import { connect } from 'react-redux'; -import { bindActionCreators } from 'redux'; -import Spinner from './../shared/ui/spinner/spinner'; -import PageSize from './page_size'; -import Paging from './paging/paging'; - -import * as PropTypes from 'prop-types'; -import * as actions from './actions'; +import React, { Component } from 'react' +import { AgGridReact } from 'ag-grid-react' +import 'ag-grid-enterprise' +import { connect } from 'react-redux' +import { bindActionCreators } from 'redux' +import * as PropTypes from 'prop-types' +import Spinner from './../shared/ui/spinner/spinner' +import PageSize from './page_size' +import Paging from './paging/paging' + +import * as actions from './actions' import { dataSource } from './../../utils/services/ag_grid_server_model.js' -import "./css/style.css"; -import "./../../../node_modules/ag-grid-community/dist/styles/ag-grid.css"; -import "./../../../node_modules/ag-grid-community/dist/styles/ag-theme-material.css"; +import './css/style.css' +import './../../../node_modules/ag-grid-community/dist/styles/ag-grid.css' +import './../../../node_modules/ag-grid-community/dist/styles/ag-theme-material.css' class DashboardUsers extends Component { - state = { - isDisableLast: false, - isDisableFirst: true, - totalPageNumber: null, - currentPageNumber: 0, - totalRowsNumber: 0 + isDisableLast: false, + isDisableFirst: true, + totalPageNumber: null, + currentPageNumber: 0, + totalRowsNumber: 0 } - componentDidiMount = () => { - this.props.getUsers(); - } - /** * AG-Grid API communication init */ onGridReady = (params) => { - this.gridApi = params.api; - this.columnApi = params.columnApi; - this.gridApi.setServerSideDatasource(dataSource); - this.gridApi.sizeColumnsToFit(); - - // early stage of server side model - // presentation filtering on the client side - // this.gridApi.addEventListener('filterChanged', () => { - // this.gridApi.addEventListener('paginationChanged', () => { - // let currentModel = this.gridApi.getModel(); - // let rowNodes = currentModel.rowNodeBlockLoader.blocks[0].rowNodes; - // let counter = 0; - // for (let i = 0; i < rowNodes.length; i++){ - // if (rowNodes[i].data !== undefined) { - // counter++ - // } - // } - // this.gridApi.paginationSetPageSize(counter); - // }) - // }) - - }; + this.gridApi = params.api + this.columnApi = params.columnApi + this.gridApi.setServerSideDatasource(dataSource) + this.gridApi.sizeColumnsToFit() + } /** * @param {object} clickedCell */ onCellClicked = (clickedCell) => { - - /** + /** * @const {string} userId * @const {string} category */ - const userId = clickedCell.data.accountid; + const userId = clickedCell.data.accountid - this.props.history.push(`/edit-user/${userId}`); + this.props.history.push(`/edit-user/${userId}`) } paginationNumberFormatter = (params) => `[ ${params.value.toLocaleString()} ]`; onComponentStateChanged = () => { - let currentRowsNumber = this.gridApi.getDisplayedRowCount(); - - if(currentRowsNumber !== this.state.totalRowsNumber){ + let currentRowsNumber = this.gridApi.getDisplayedRowCount() - this.setState({ - totalRowsNumber: currentRowsNumber - }); - } + if (currentRowsNumber !== this.state.totalRowsNumber) { + this.setState({ + totalRowsNumber: currentRowsNumber + }) + } } /** @@ -89,75 +65,69 @@ class DashboardUsers extends Component { * total number of row entries visible for the user */ onPageSizeChanged = (e) => { - const value = e.target.value; - this.gridApi.paginationSetPageSize(Number(value)); - this.props.PageSizeUpdate(Number(value)); + const value = e.target.value + this.gridApi.paginationSetPageSize(Number(value)) + this.props.PageSizeUpdate(Number(value)) }; onPaginationChanged = () => { - if (this.gridApi) { - - let getCurrentPageNumber = Number(this.gridApi.paginationGetCurrentPage()); - let getTotalPagesNumber = Number(this.gridApi.paginationGetTotalPages()); - - if (getCurrentPageNumber !== this.state.currentPageNumber || getTotalPagesNumber !== this.state.totalPageNumber) { - this.setLastButtonDisabled(getTotalPagesNumber, getCurrentPageNumber); - } - - if (getCurrentPageNumber !== this.state.currentPageNumber) { - this.setState({ - currentPageNumber: getCurrentPageNumber - }) - } - - if (getTotalPagesNumber !== this.state.totalPageNumber) { - this.setState({ - totalPageNumber: getTotalPagesNumber - }) - } - } + if (this.gridApi) { + let getCurrentPageNumber = Number(this.gridApi.paginationGetCurrentPage()) + let getTotalPagesNumber = Number(this.gridApi.paginationGetTotalPages()) + + if (getCurrentPageNumber !== this.state.currentPageNumber || getTotalPagesNumber !== this.state.totalPageNumber) { + this.setLastButtonDisabled(getTotalPagesNumber, getCurrentPageNumber) + } + + if (getCurrentPageNumber !== this.state.currentPageNumber) { + this.setState({ + currentPageNumber: getCurrentPageNumber + }) + } + + if (getTotalPagesNumber !== this.state.totalPageNumber) { + this.setState({ + totalPageNumber: getTotalPagesNumber + }) + } + } }; setLastButtonDisabled = (total, current) => { + let isDisableFlagLastPage = this.state.isDisableLast + let isDisableFlagFirstPage = this.state.isDisableFirst + + switch (current) { + case total - 1: + isDisableFlagLastPage = true + isDisableFlagFirstPage = false + break + + case 0: + isDisableFlagLastPage = false + isDisableFlagFirstPage = true + break + + default: + isDisableFlagLastPage = false + isDisableFlagFirstPage = false + break + } + + if (this.state.isDisableLast !== isDisableFlagLastPage) { + this.setState({ + isDisableLast: isDisableFlagLastPage + }) + } + if (this.state.isDisableFirst !== isDisableFlagFirstPage) { + this.setState({ + isDisableFirst: isDisableFlagFirstPage + }) + } + } - let isDisableFlagLastPage = this.state.isDisableLast; - let isDisableFlagFirstPage = this.state.isDisableFirst; - - switch (current) { - - case total - 1: - isDisableFlagLastPage = true; - isDisableFlagFirstPage = false; - break; - - case 0: - isDisableFlagLastPage = false; - isDisableFlagFirstPage = true; - break; - - default: - isDisableFlagLastPage = false; - isDisableFlagFirstPage = false; - break; - } - - if(this.state.isDisableLast !== isDisableFlagLastPage) { - this.setState({ - isDisableLast: isDisableFlagLastPage - }); - } - if(this.state.isDisableFirst !== isDisableFlagFirstPage) { - this.setState({ - isDisableFirst: isDisableFlagFirstPage - }); - } - - }; - - - render() { - - /** + render () { + /** * @const {array} coldef * @const {bool} loading * @const {bool} error @@ -169,102 +139,93 @@ class DashboardUsers extends Component { * @const {number} totalPageNumber * @const {number} currentPageNumber */ - const { coldef, loading, rowSelection, paginationPageSize, selectOptions, sideBar, rowModelType } = this.props; - const { isDisableFirst, isDisableLast, totalPageNumber, currentPageNumber, totalRowsNumber } = this.state; - let content = null; - - if (loading) { - content = - - } else { - - content = ( -
- - - - - - - -
- ) - } - - return { content } - + const { coldef, loading, rowSelection, paginationPageSize, selectOptions, sideBar, rowModelType } = this.props + const { isDisableFirst, isDisableLast, totalPageNumber, currentPageNumber, totalRowsNumber } = this.state + + return ( + <> + +
+ + + + + + + +
+ + ) } -}; +} DashboardUsers.contextTypes = { - store: PropTypes.object -}; + store: PropTypes.object +} DashboardUsers.propTypes = { - coldef: PropTypes.array.isRequired, - loading: PropTypes.bool.isRequired, - error: PropTypes.bool, - paginationPageSize: PropTypes.number.isRequired, - selectOptions: PropTypes.array.isRequired, - isDisableFirst: PropTypes.bool, - isDisableLast: PropTypes.bool, - totalPageNumber: PropTypes.number, - currentPageNumber: PropTypes.number -}; + coldef: PropTypes.array.isRequired, + loading: PropTypes.bool.isRequired, + error: PropTypes.bool, + paginationPageSize: PropTypes.number.isRequired, + selectOptions: PropTypes.array.isRequired, + isDisableFirst: PropTypes.bool, + isDisableLast: PropTypes.bool, + totalPageNumber: PropTypes.number, + currentPageNumber: PropTypes.number +} const mapStateToProps = (state) => { - - return { - coldef: state.users.coldef, - loading: state.users.loading, - error: state.error.error, - rowSelection: state.users.rowSelection, - paginationPageSize: state.users.paginationPageSize, - selectOptions: state.users.selectOptions, - sideBar: state.users.sideBar, - rowModelType: state.users.rowModelType - } -}; + return { + coldef: state.users.coldef, + loading: state.users.loading, + error: state.error.error, + rowSelection: state.users.rowSelection, + paginationPageSize: state.users.paginationPageSize, + selectOptions: state.users.selectOptions, + sideBar: state.users.sideBar, + rowModelType: state.users.rowModelType + } +} const mapDispatchToProps = (dispatch) => { + return bindActionCreators({ + ...actions + }, dispatch) +} - return bindActionCreators({ - ...actions - }, dispatch) -}; - -export default connect(mapStateToProps, mapDispatchToProps, null, { withRef: true })(DashboardUsers); \ No newline at end of file +export default connect(mapStateToProps, mapDispatchToProps, null, { withRef: true })(DashboardUsers) diff --git a/src/components/dashboard_users/page_size/page_size.css b/src/components/dashboard_users/page_size/page_size.css index 498be82..842994d 100644 --- a/src/components/dashboard_users/page_size/page_size.css +++ b/src/components/dashboard_users/page_size/page_size.css @@ -1,19 +1,24 @@ .page-size-changed { - padding: 10px 20px; + padding: 7px 20px 0 20px; + height: 48px; - font-size: 20px; + font-family: "Roboto", "Helvetica", "Arial", sans-serif; + font-size: 12px; + + border-bottom: 1px #9a9a9a solid; background-color: #eeeeee; color: #55575b; } .page-size-select { max-width: 150px; + height: 32px; - margin: 0 10px; - padding: 10px; + margin: 0 5px; + padding: 0; - font-size: 18px; + font-size: 14px; background-color: #eeeeee; - color: #55575b; + color: #333333; border: solid 1px #c6cbd4; border-radius: 3px; diff --git a/src/components/dashboard_users/paging/paging.css b/src/components/dashboard_users/paging/paging.css index f8adc9b..e3a2dc1 100644 --- a/src/components/dashboard_users/paging/paging.css +++ b/src/components/dashboard_users/paging/paging.css @@ -3,6 +3,7 @@ position: relative; padding: 15px 15px 0; + min-height: 64px; text-align: center; font-size: 0; @@ -16,8 +17,8 @@ margin: 0 3px; - width: 45px; - height: 45px; + width: 32px; + height: 32px; background-color: #fff; border: solid 1px #eee; @@ -42,11 +43,11 @@ } .paging-info { position: absolute; - top: 70%; + top: 50%; - transform: translate(0, -70%); - font-size: 20px; - color: #55575b; + transform: translate(0, -50%); + font-size: 14px; + color: #4c4e52; } .paging-info p { margin: 0; diff --git a/src/components/dashboard_users/paging/paging.js b/src/components/dashboard_users/paging/paging.js index 7291ce1..3fe2a86 100644 --- a/src/components/dashboard_users/paging/paging.js +++ b/src/components/dashboard_users/paging/paging.js @@ -1,51 +1,57 @@ -import React, { Component, Fragment } from 'react'; -import PropTypes from "prop-types"; -import './paging.css'; -import Spinner from "../../shared/ui/spinner/spinner"; +import React, { Component, Fragment } from 'react' +import PropTypes from 'prop-types' +import Spinner from '../../shared/ui/spinner/spinner' +import './paging.css' class Paging extends Component { - state = { - pagingElements: [] + pagingElements: [] } - static getDerivedStateFromProps = (props, state) => { - - let pagingContent = []; - - for (let index = 1; index <= props.totalPageNumber; index++) { + static propTypes = { + gridApi: PropTypes.object, + currentPageNumber: PropTypes.number.isRequired, + totalPageNumber: PropTypes.number, + totalRowsNumber: PropTypes.number, + paginationPageSize: PropTypes.number.isRequired, + isDisableFirst: PropTypes.bool.isRequired, + isDisableLast: PropTypes.bool.isRequired + } - let button = ( + static getDerivedStateFromProps = (props, state) => { + let pagingContent = [] - + for (let index = 1; index <= props.totalPageNumber; index++) { + let button = ( - ) + - pagingContent.push(button); - } + ) - return { pagingElements: pagingContent } + pagingContent.push(button) + } + return { pagingElements: pagingContent } } onFirst = () => { - this.props.gridApi.paginationGoToFirstPage(); + this.props.gridApi.paginationGoToFirstPage() }; onLast = () => { - this.props.gridApi.paginationGoToLastPage(); + this.props.gridApi.paginationGoToLastPage() }; onNext = () => { - this.props.gridApi.paginationGoToNextPage(); + this.props.gridApi.paginationGoToNextPage() }; onPrevious = () => { - this.props.gridApi.paginationGoToPreviousPage(); + this.props.gridApi.paginationGoToPreviousPage() }; /** @@ -58,69 +64,54 @@ class Paging extends Component { * @const {bool} isDisableLast */ - render() { - - const { paginationPageSize, isDisableFirst, isDisableLast, totalRowsNumber, currentPageNumber, totalPageNumber } = this.props; - const { pagingElements } = this.state; - - let pagingControls = pagingElements.map((item, index) => { - - if (index < 4 || index === currentPageNumber || index === currentPageNumber + 1 || index === currentPageNumber - 1) { - - if (index === 3 && pagingElements.length > 4) { - - return ( - - {item} - ... - - ) - } - - return item; - } - - return null; - - }) - - return ( - - { - pagingControls.length !== 0 - ?
- -

Rows {paginationPageSize} of {totalRowsNumber}

- - - - { pagingControls } - { - Number(totalPageNumber) && totalPageNumber > 4 && currentPageNumber + 1 !== totalPageNumber && currentPageNumber + 1 < totalPageNumber - 2 - ? - : null - } - - - -
- - :
- } - -
- ) + render () { + const { paginationPageSize, isDisableFirst, isDisableLast, totalRowsNumber, currentPageNumber, totalPageNumber } = this.props + const { pagingElements } = this.state + + let pagingControls = pagingElements.map((item, index) => { + if (index < 4 || index === currentPageNumber || index === currentPageNumber + 1 || index === currentPageNumber - 1) { + if (index === 3 && pagingElements.length > 4) { + return ( + + {item} + ... + + ) + } + + return item + } + + return null + }) + + return ( + <> + { + pagingControls.length !== 0 + ?
+ +

Rows {paginationPageSize} of {totalRowsNumber}

+ + + + { pagingControls } + { + Number(totalPageNumber) && totalPageNumber > 4 && currentPageNumber + 1 !== totalPageNumber && currentPageNumber + 1 < totalPageNumber - 2 + ? + : null + } + + + +
+ + : null + } + + + ) } - } -Paging.propTypes = { - gridApi: PropTypes.object, - currentPageNumber: PropTypes.number.isRequired, - totalPageNumber: PropTypes.number, - paginationPageSize: PropTypes.number.isRequired, - isDisableFirst: PropTypes.bool.isRequired, - isDisableLast: PropTypes.bool.isRequired -}; - -export default Paging; \ No newline at end of file +export default Paging diff --git a/src/components/dashboard_users/reducer.js b/src/components/dashboard_users/reducer.js index 5e2109f..418799a 100644 --- a/src/components/dashboard_users/reducer.js +++ b/src/components/dashboard_users/reducer.js @@ -1,79 +1,68 @@ -import { GET_USERS, PAGE_SIZE_UPDATE} from './actions'; -import { updateObject } from './../../hoc/update-object/update-object'; -import userAvatar from './../../utils/helpers/avatar_insertion'; -import dateTimeStructure from './../../utils/helpers/date_time_structure'; +import { PAGE_SIZE_UPDATE } from './actions' +import { updateObject } from './../../hoc/update-object/update-object' +import userAvatar from './../../utils/helpers/avatar_insertion' +import dateTimeStructure from './../../utils/helpers/date_time_structure' /** * AG-Grid initial column definitions, row empty data, loading and error flags */ const initialState = { - coldef: [ - {headerName: "First name", hide: false, field: "firstname", filter: 'agTextColumnFilter', cellRenderer: "agGroupCellRenderer", cellRendererParams: { innerRenderer: userAvatar } }, - {headerName: "Last name", hide: false, field: "lastname", filter: 'agTextColumnFilter' }, - {headerName: "Username", hide: false, field: "username", filter: 'agTextColumnFilter' }, - {headerName: "Phone", hide: false, field: "authPhone", filter: 'agTextColumnFilter' }, - {headerName: "Access Status", hide: false, field: "accessstatus", filter: 'agTextColumnFilter' }, - {headerName: "Created", hide: false, field: "creationtimestamp", filter: 'agDateColumnFilter', cellRenderer: "agGroupCellRenderer", cellRendererParams: { innerRenderer: dateTimeStructure } }, - {headerName: "Updated", hide: false, field: "lastupdatetimestamp", filter: 'agDateColumnFilter', cellRenderer: "agGroupCellRenderer", cellRendererParams: { innerRenderer: dateTimeStructure } }, - {headerName: "Contacts Info List", hide: true, field: "contactsinfoList", filter: 'agTextColumnFilter' }, - {headerName: "Account ID", hide: true, field: "accountid", filter: 'agTextColumnFilter' }, - {headerName: "Roles List", hide: true, field: "rolesList", filter: 'agTextColumnFilter' }, - {headerName: "Profile ID", hide: true, field: "profileid", filter: 'agTextColumnFilter' }, - {headerName: "Authentication Type", hide: true, field: "authenticationtype", filter: 'agTextColumnFilter' }, - {headerName: "Account Mark", hide: true, field: "accountmark", filter: 'agTextColumnFilter' }, - {headerName: "Account Name", hide: true, field: "accountname", filter: 'agTextColumnFilter'}, - {headerName: "Birthday", hide: true, field: "birthday", filter: 'agTextColumnFilter' }, - {headerName: "QR code", hide: true, field: "qrcode", filter: 'agTextColumnFilter' }, - ], - sideBar: { - toolPanels: [ - { - id: "columns", - labelDefault: "Columns", - labelKey: "columns", - iconKey: "columns", - toolPanel: "agColumnsToolPanel", - toolPanelParams: { - suppressRowGroups: true, - suppressValues: true, - suppressPivots: true, - suppressPivotMode: true, - suppressSideButtons: true, - suppressColumnFilter: true, - suppressColumnSelectAll: true, - suppressColumnExpandAll: true - } - } - ] - }, - rowModelType: "serverSide", - loading: false, - rowSelection: "single", - paginationPageSize: 30, - selectOptions: [10, 20, 30, 50, 100] -}; - -const getUsers = (state, action) => { - - return updateObject(state, { - loading: true - }) -}; + coldef: [ + { headerName: 'First name', hide: false, field: 'firstname', filter: 'agTextColumnFilter', cellRenderer: 'agGroupCellRenderer', cellRendererParams: { innerRenderer: userAvatar } }, + { headerName: 'Last name', hide: false, field: 'lastname', filter: 'agTextColumnFilter' }, + { headerName: 'Username', hide: false, field: 'username', filter: 'agTextColumnFilter' }, + { headerName: 'Phone', hide: false, field: 'authPhone', filter: 'agTextColumnFilter' }, + { headerName: 'Access Status', hide: false, field: 'accessstatus', filter: 'agTextColumnFilter' }, + { headerName: 'Created', hide: false, field: 'creationtimestamp', filter: 'agDateColumnFilter', cellRenderer: 'agGroupCellRenderer', cellRendererParams: { innerRenderer: dateTimeStructure } }, + { headerName: 'Updated', hide: false, field: 'lastupdatetimestamp', filter: 'agDateColumnFilter', cellRenderer: 'agGroupCellRenderer', cellRendererParams: { innerRenderer: dateTimeStructure } }, + { headerName: 'Contacts Info List', hide: true, field: 'contactsinfoList', filter: 'agTextColumnFilter' }, + { headerName: 'Account ID', hide: true, field: 'accountid', filter: 'agTextColumnFilter' }, + { headerName: 'Roles List', hide: true, field: 'rolesList', filter: 'agTextColumnFilter' }, + { headerName: 'Profile ID', hide: true, field: 'profileid', filter: 'agTextColumnFilter' }, + { headerName: 'Authentication Type', hide: true, field: 'authenticationtype', filter: 'agTextColumnFilter' }, + { headerName: 'Account Mark', hide: true, field: 'accountmark', filter: 'agTextColumnFilter' }, + { headerName: 'Account Name', hide: true, field: 'accountname', filter: 'agTextColumnFilter' }, + { headerName: 'Birthday', hide: true, field: 'birthday', filter: 'agTextColumnFilter' }, + { headerName: 'QR code', hide: true, field: 'qrcode', filter: 'agTextColumnFilter' } + ], + sideBar: { + toolPanels: [ + { + id: 'columns', + labelDefault: 'Columns', + labelKey: 'columns', + iconKey: 'columns', + toolPanel: 'agColumnsToolPanel', + toolPanelParams: { + suppressRowGroups: true, + suppressValues: true, + suppressPivots: true, + suppressPivotMode: true, + suppressSideButtons: true, + suppressColumnFilter: true, + suppressColumnSelectAll: true, + suppressColumnExpandAll: true + } + } + ] + }, + rowModelType: 'serverSide', + loading: false, + rowSelection: 'single', + paginationPageSize: 30, + selectOptions: [10, 20, 30, 50, 100] +} const pageSizeUpdate = (state, action) => { + return updateObject(state, { + paginationPageSize: action.pageSize + }) +} - return updateObject(state, { - paginationPageSize: action.pageSize - }); -}; - -export default function users(state = initialState, action) { - - switch(action.type) { - - case GET_USERS: return getUsers(state, action); - case PAGE_SIZE_UPDATE: return pageSizeUpdate(state, action); +export default function users (state = initialState, action) { + switch (action.type) { + case PAGE_SIZE_UPDATE: return pageSizeUpdate(state, action) - default: return state; - } -}; \ No newline at end of file + default: return state + } +} diff --git a/src/components/edit_user/actions.js b/src/components/edit_user/actions.js index a74c8fd..2ddf8b1 100644 --- a/src/components/edit_user/actions.js +++ b/src/components/edit_user/actions.js @@ -4,6 +4,7 @@ export const UPDATE_USER_DATA_CATEGORY_X = 'UPDATE_USER_DATA_CATEGORY_X' export const DELIVER_UPDATE_USER_DATA_CATEGORY_X = 'DELIVER_UPDATE_USER_DATA_CATEGORY_X' export const CLEAR_SELECTED_USER_DATA = 'CLEAR_SELECTED_USER_DATA' export const DELETE_ACCOUNT = 'DELETE_ACCOUNT' +export const REDIRECT_AFTER_DELETE_ACCOUNT = 'REDIRECT_AFTER_DELETE_ACCOUNT' export function getSelectedUserId (userId) { return { @@ -38,8 +39,15 @@ export function deliverUpdateUserDataName (newData) { ...newData } } + export function deleteAccount () { return { type: DELETE_ACCOUNT } } + +export function shouldRedirect () { + return { + type: REDIRECT_AFTER_DELETE_ACCOUNT + } +} diff --git a/src/components/edit_user/generic_data/index.js b/src/components/edit_user/generic_data/index.js index 3983a08..ccdf7cf 100644 --- a/src/components/edit_user/generic_data/index.js +++ b/src/components/edit_user/generic_data/index.js @@ -62,6 +62,12 @@ class genericUserData extends Component { deleteAccount: PropTypes.func.isRequired } + componentDidUpdate (prevProps, prevState) { + if (this.props.deleteProfileRedirect) { + this.props.push('/') + } + } + setActive = (state) => { this.setState({ activeFocusElement: state }) } @@ -218,7 +224,7 @@ class genericUserData extends Component { deleteProfile = () => { this.props.deleteAccount() - this.handleDeleteProfile() + this.handleDeleteProfile() } handleEditContact = (key, value, type) => { diff --git a/src/components/edit_user/index.js b/src/components/edit_user/index.js index 1c847ed..25b114c 100644 --- a/src/components/edit_user/index.js +++ b/src/components/edit_user/index.js @@ -6,6 +6,7 @@ import PropTypes from 'prop-types' import { withStyles } from '@material-ui/core/styles' import Grid from '@material-ui/core/Grid' +import Spinner from '../shared/ui/spinner/spinner' import * as actions from './actions' import GenericData from './generic_data' import ProfileTools from './profile_tools/index' @@ -21,7 +22,8 @@ class EditUser extends Component { match: PropTypes.object.isRequired, selectedUser: PropTypes.object, getSelectedUserId: PropTypes.func, - clearSelectedUserData: PropTypes.func + clearSelectedUserData: PropTypes.func, + loading: PropTypes.bool.isRequired } componentDidMount () { @@ -41,19 +43,24 @@ class EditUser extends Component { } render () { - const { selectedUser } = this.props + const { selectedUser, loading, deleteProfileRedirect, deleteAccount, history } = this.props return ( - + - + { selectedUser.contactsinfoList - ? + ? : '' } @@ -72,9 +79,11 @@ class EditUser extends Component { } } -function mapStateToProps ({ editUser }) { +function mapStateToProps ({ editUser, loaders }) { return { - selectedUser: editUser + selectedUser: editUser, + loading: loaders.DELETE_LOADER, + deleteProfileRedirect: editUser.redirectAfterDeleteAccount } }; diff --git a/src/components/edit_user/middleware.js b/src/components/edit_user/middleware.js index 47b755b..a5eff77 100644 --- a/src/components/edit_user/middleware.js +++ b/src/components/edit_user/middleware.js @@ -1,20 +1,21 @@ +import { DELETE_LOADER } from 'constants/loaders' import { call, put, select } from 'redux-saga/effects' +import { loadingStart, loadingStop } from '../../store/root_actions/loaders' import { accountByAccountIdGrpcRequest, profileByProfileIdGrpcRequest, contactTypes, contactTypeKeys, deleteProfileGrpcRequest, deleteAccountGrpcRequest } from './../../utils/services/accounts' -import { deliverSelectedUserData, deliverUpdateUserDataName } from './actions' +import { deliverSelectedUserData, deliverUpdateUserDataName, shouldRedirect } from './actions' import { globalError } from './../../hoc/error_handler/actions' export function * deleteAccountProfile () { const editUser = yield select((state) => state.editUser) - + yield put(loadingStart(DELETE_LOADER)) try { let deleteProfile = yield call(deleteProfileGrpcRequest, editUser.profileid) // deleteAccount = yield call(deleteAccountGrpcRequest, editUser.accountid) + yield put(loadingStop(DELETE_LOADER)) + yield put(shouldRedirect()) } catch (error) { - console.log('====================================') console.log(error) - console.log('====================================') - } } diff --git a/src/components/edit_user/profile_tools/profile_tools.css b/src/components/edit_user/profile_tools/profile_tools.css index 2e1e2e3..6fb118f 100644 --- a/src/components/edit_user/profile_tools/profile_tools.css +++ b/src/components/edit_user/profile_tools/profile_tools.css @@ -1,7 +1,7 @@ .profile-tools-wrapper { margin-bottom: 2px; } -.profile-tools-wrapper .MuiAppBar-colorPrimary-116 { +.profile-tools-wrapper header { background-color: #eeeeee; color: black; } diff --git a/src/components/edit_user/reducer.js b/src/components/edit_user/reducer.js index 2f5a21d..c0bef82 100644 --- a/src/components/edit_user/reducer.js +++ b/src/components/edit_user/reducer.js @@ -1,8 +1,9 @@ import { updateObject } from '../../hoc/update-object/update-object' -import { DELIVER_UPDATE_USER_DATA_CATEGORY_X, DELIVER_SELECTED_USER_DATA, CLEAR_SELECTED_USER_DATA } from './actions' +import { DELIVER_SELECTED_USER_DATA, CLEAR_SELECTED_USER_DATA, REDIRECT_AFTER_DELETE_ACCOUNT } from './actions' const initialState = { - selectedUser: {} + selectedUser: {}, + redirectAfterDeleteAccount: false } const deliverSelectedUserData = (state, action) => { @@ -13,20 +14,10 @@ const deliverSelectedUserData = (state, action) => { }) } -const updateUserCategoryX = (state, action) => { - const { newValue, category, id } = action - const userIndex = state.usersData.findIndex(item => item.accountId === id) - - state.usersData[userIndex] = Object.defineProperties(state.usersData[userIndex], { - [category]: { - value: newValue, - writable: true - } +const redirectShould = (state, action) => { + return updateObject(state, { + redirectAfterDeleteAccount: true }) - - return { - ...state - } } const clearSelectedUserData = (state, action) => { @@ -36,9 +27,9 @@ const clearSelectedUserData = (state, action) => { export default function editUser (state = initialState, action) { switch (action.type) { case DELIVER_SELECTED_USER_DATA: return deliverSelectedUserData(state, action) - case DELIVER_UPDATE_USER_DATA_CATEGORY_X: return updateUserCategoryX(state, action) case CLEAR_SELECTED_USER_DATA: return clearSelectedUserData(state, action) + case REDIRECT_AFTER_DELETE_ACCOUNT: return redirectShould(state, action) default: return state } -}; +} diff --git a/src/components/header_bar/css/style.css b/src/components/header_bar/css/style.css index 3228995..b641790 100644 --- a/src/components/header_bar/css/style.css +++ b/src/components/header_bar/css/style.css @@ -5,17 +5,23 @@ background: #24262b; flex-direction: row; width: 100%; - justify-content: flex-end; + /* justify-content: flex-end; */ z-index: 500; box-shadow: none; - min-height: 60px; + min-height: 64px; } .main-header.mui-fixed > span { + float: right; font-size: 20px; - margin: 0 15px; + margin: 0 15px 0 auto; } .header-bar-title { font-family: "Roboto", "Helvetica", "Arial", sans-serif; font-size: 18px; +} +h2.header-info-title { + font-family: "Roboto", "Helvetica", "Arial", sans-serif; + font-size: 21px; + color: #fff; } \ No newline at end of file diff --git a/src/components/header_bar/index.js b/src/components/header_bar/index.js index 24f4358..7b45d7b 100644 --- a/src/components/header_bar/index.js +++ b/src/components/header_bar/index.js @@ -1,66 +1,64 @@ -import React, { Component } from 'react'; -import { connect } from 'react-redux'; -import { bindActionCreators } from 'redux'; -import PropTypes from 'prop-types'; +import React, { Component } from 'react' +import { connect } from 'react-redux' +import { bindActionCreators } from 'redux' +import PropTypes from 'prop-types' import './css/style.css' -import { withStyles } from '@material-ui/core/styles'; -import AppBar from '@material-ui/core/AppBar'; -import AccountCircle from '@material-ui/icons/AccountCircle'; +import { withStyles } from '@material-ui/core/styles' +import Typography from '@material-ui/core/Typography' +import AppBar from '@material-ui/core/AppBar' +import AccountCircle from '@material-ui/icons/AccountCircle' import * as actions from './actions' /** * @const {object} styles */ -const styles = {}; +const styles = {} class HeaderBar extends Component { + // componentDidMount() { + // this.props.getAuthedUser(); + // } - // componentDidMount() { - // this.props.getAuthedUser(); - // } - - render() { - - /** + render () { + /** * @const {object} classes * @const {string} adaptiveWidth * @const {string} firstName * @const {string} lastName */ - const { firstName, lastName } = this.props; + const { firstName, lastName } = this.props - return ( - - - { firstName } { lastName } - - - - ) - } + return ( + + User managment + + { firstName } { lastName } + + + + ) + } } HeaderBar.propTypes = { - classes: PropTypes.object.isRequired, - firstName: PropTypes.string, - lastName: PropTypes.string -}; + classes: PropTypes.object.isRequired, + firstName: PropTypes.string, + lastName: PropTypes.string +} const mapStateToProps = (state) => { - - return { - firstName: state.authedUser.firstname, - lastName: state.authedUser.lastname, - error: state.error - } + return { + firstName: state.authedUser.firstname, + lastName: state.authedUser.lastname, + error: state.error + } } const mapDispatchToProps = (dispatch) => { - - return bindActionCreators({ - ...actions - }, dispatch) + return bindActionCreators({ + ...actions + }, dispatch) } -export default withStyles(styles)(connect(mapStateToProps, mapDispatchToProps)(HeaderBar)); \ No newline at end of file +export default withStyles(styles)(connect(mapStateToProps, mapDispatchToProps)(HeaderBar)) diff --git a/src/components/shared/ui/spinner/spinner.css b/src/components/shared/ui/spinner/spinner.css index 7007579..384b357 100644 --- a/src/components/shared/ui/spinner/spinner.css +++ b/src/components/shared/ui/spinner/spinner.css @@ -1,7 +1,22 @@ .spinner-wrapper { - height: 100%; - justify-content: center; + position: fixed; + + top: 50%; + left: 50%; + + transform: translate(-50%, -50%); + z-index: 10001; + } -.paging-spinner .spinner-wrapper { - height: auto; +.spinner-shall div svg { + color: #3f51b5; +} +.spiner-main { + position: fixed; + top: 0; + bottom: 0; + width: 100%; + background: rgba(0,0,0,.1); + z-index: 10000; + } \ No newline at end of file diff --git a/src/components/shared/ui/spinner/spinner.js b/src/components/shared/ui/spinner/spinner.js index 2269e9b..8363662 100644 --- a/src/components/shared/ui/spinner/spinner.js +++ b/src/components/shared/ui/spinner/spinner.js @@ -1,31 +1,40 @@ -import React from 'react'; -import PropTypes from 'prop-types'; -import { withStyles } from '@material-ui/core/styles'; -import CircularProgress from '@material-ui/core/CircularProgress'; -import purple from '@material-ui/core/colors/purple'; -import Grid from '@material-ui/core/Grid'; -import './spinner.css'; +import React from 'react' +import PropTypes from 'prop-types' +import { withStyles } from '@material-ui/core/styles' +import CircularProgress from '@material-ui/core/CircularProgress' +import purple from '@material-ui/core/colors/purple' +import Grid from '@material-ui/core/Grid' +import './spinner.css' const styles = theme => ({ progress: { - margin: theme.spacing.unit * 2, - }, -}); + margin: theme.spacing.unit * 2 + } +}) -function spinner(props) { - const { classes } = props; +function spinner (props) { + const { classes, loading } = props return ( - - - - - - ); + <> + { loading === true + ?
+ + + + + +
+ : null + } + + + ) } spinner.propTypes = { classes: PropTypes.object.isRequired, -}; + loading: PropTypes.bool +} -export default withStyles(styles)(spinner); \ No newline at end of file +export default withStyles(styles)(spinner) diff --git a/src/constants/loaders.js b/src/constants/loaders.js new file mode 100644 index 0000000..992d724 --- /dev/null +++ b/src/constants/loaders.js @@ -0,0 +1 @@ +export const DELETE_LOADER = 'DELETE_LOADER' diff --git a/src/index.css b/src/index.css index f2a33f8..26b3c55 100644 --- a/src/index.css +++ b/src/index.css @@ -21,7 +21,7 @@ body, } #root { - padding-top: 60px; + padding-top: 64px; } a { diff --git a/src/store/root_actions/loaders.js b/src/store/root_actions/loaders.js new file mode 100644 index 0000000..b1978b3 --- /dev/null +++ b/src/store/root_actions/loaders.js @@ -0,0 +1,16 @@ +export const START_LOADING = 'START_LOADING' +export const STOP_LOADING = 'STOP_LOADING' + +export function loadingStart (loader) { + return { + type: START_LOADING, + loader + } +} + +export function loadingStop (loader) { + return { + type: STOP_LOADING, + loader + } +} diff --git a/src/store/root_middleware/index.js b/src/store/root_middleware/index.js index 4422eef..64f7cd4 100644 --- a/src/store/root_middleware/index.js +++ b/src/store/root_middleware/index.js @@ -20,7 +20,6 @@ export function * combineSagas () { yield all( [ logger(), - // takeEvery(GET_USERS, getUsers), takeEvery(GET_AUTH_USER, getAuthedUser), takeEvery(GET_SELECTED_USER_ID, getSelectedUserId), takeEvery(UPDATE_USER_DATA_CATEGORY_X, updateUserDataName), diff --git a/src/store/root_reducers/index.js b/src/store/root_reducers/index.js index 094cee1..3befeb5 100644 --- a/src/store/root_reducers/index.js +++ b/src/store/root_reducers/index.js @@ -1,18 +1,19 @@ -import { combineReducers } from 'redux'; -import { persistReducer } from "redux-persist"; +import { combineReducers } from 'redux' +import { persistReducer } from 'redux-persist' -import users from './../../components/dashboard_users/reducer'; -import editUser from './../../components/edit_user/reducer'; -import authedUser from './auth'; -import error from './../../hoc/error_handler/reducer'; - -import { usersPersistConfig } from '../../utils/localstorage/configure_persist'; +import { usersPersistConfig } from '../../utils/localstorage/configure_persist' +import users from './../../components/dashboard_users/reducer' +import editUser from './../../components/edit_user/reducer' +import authedUser from './auth' +import error from './../../hoc/error_handler/reducer' +import loaders from './loaders' export default combineReducers( - { - users: persistReducer(usersPersistConfig, users), - editUser, - authedUser, - error - } -) \ No newline at end of file + { + users: persistReducer(usersPersistConfig, users), + editUser, + authedUser, + error, + loaders + } +) diff --git a/src/store/root_reducers/loaders.js b/src/store/root_reducers/loaders.js new file mode 100644 index 0000000..f8f128d --- /dev/null +++ b/src/store/root_reducers/loaders.js @@ -0,0 +1,27 @@ +import { updateObject } from '../../hoc/update-object/update-object' +import { START_LOADING, STOP_LOADING } from '../root_actions/loaders' + +const initialState = { + selectedUser: {} +} + +const startLoading = (state, action) => { + return updateObject(state, { + [action.loader]: true + }) +} + +const stopLoading = (state, action) => { + return updateObject(state, { + [action.loader]: false + }) +} + +export default function loaders (state = initialState, action) { + switch (action.type) { + case START_LOADING: return startLoading(state, action) + case STOP_LOADING: return stopLoading(state, action) + + default: return state + } +} diff --git a/src/utils/helpers/avatar_insertion.js b/src/utils/helpers/avatar_insertion.js index bc780e0..b8ebc9f 100644 --- a/src/utils/helpers/avatar_insertion.js +++ b/src/utils/helpers/avatar_insertion.js @@ -1,4 +1,5 @@ const userAvatar = (params) => { + debugger const avatar = params.data.avatar !== '' ? `${params.data.avatar}${params.data.firstname}` : ` + User Profile diff --git a/src/components/edit_user/profile_tools/profile_tools.css b/src/components/edit_user/profile_tools/profile_tools.css index 6fb118f..ae45bed 100644 --- a/src/components/edit_user/profile_tools/profile_tools.css +++ b/src/components/edit_user/profile_tools/profile_tools.css @@ -1,7 +1,10 @@ .profile-tools-wrapper { - margin-bottom: 2px; + margin-bottom: 1px; } .profile-tools-wrapper header { + height: 48px; + padding: 6px 20px 0 20px; + background-color: #eeeeee; color: black; } @@ -12,4 +15,17 @@ .profile-tools-wrapper button:disabled { background-color: #dadada; color: #afafaf; +} +.profile-tools-wrapper header > div { + min-height: auto; +} + +@media (min-width: 600px) { + .profile-tools-wrapper header > div { + min-height: auto; + } +} +.profile-tool-desc, +.profile-tool-back { + font-size: 14px; } \ No newline at end of file diff --git a/src/components/edit_user/tabs_navigation/index.js b/src/components/edit_user/tabs_navigation/index.js index 2738724..592b291 100644 --- a/src/components/edit_user/tabs_navigation/index.js +++ b/src/components/edit_user/tabs_navigation/index.js @@ -24,7 +24,7 @@ const styles = theme => ({ backgroundColor: '#1890ff' }, tabRoot: { - fontSize: 18 + fontSize: 14 }, tabSelected: { color: '#1890ff' diff --git a/src/components/header_bar/css/style.css b/src/components/header_bar/css/style.css index b641790..ed53ec8 100644 --- a/src/components/header_bar/css/style.css +++ b/src/components/header_bar/css/style.css @@ -24,4 +24,5 @@ h2.header-info-title { font-family: "Roboto", "Helvetica", "Arial", sans-serif; font-size: 21px; color: #fff; + margin: 0 0 0 15px; } \ No newline at end of file diff --git a/src/utils/helpers/avatar_insertion.js b/src/utils/helpers/avatar_insertion.js index b8ebc9f..1ac75d3 100644 --- a/src/utils/helpers/avatar_insertion.js +++ b/src/utils/helpers/avatar_insertion.js @@ -1,10 +1,10 @@ const userAvatar = (params) => { - debugger const avatar = params.data.avatar !== '' ? `${params.data.avatar}${params.data.firstname}` : ` + ${params.data.firstname}` return avatar || null } diff --git a/src/utils/services/ag_grid_server_model.js b/src/utils/services/ag_grid_server_model.js index 7f8edce..29764f5 100644 --- a/src/utils/services/ag_grid_server_model.js +++ b/src/utils/services/ag_grid_server_model.js @@ -33,7 +33,6 @@ ServerSideDatasource.prototype.getRows = function (params) { let getCountOfAllAccountsPromise = getCountOfAllAccountsGrpcRequest() Promise.all([getUsersDataPromise, getCountOfAllAccountsPromise]).then((data) => { - debugger console.log(data); data[0].accountdetailsList.map((item, index) => { // convert Access Status int to string from protobuf -- GitLab From 7af0bae2dd53ff0485226acc0cd8154865029cbf Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Fri, 30 Nov 2018 15:24:47 +0200 Subject: [PATCH 239/249] NY-5748 Add Icons for Contact Info and Login Options --- .../dashboard_users/paging/paging.js | 3 +- .../contact_info/modal_content/add_modal.js | 18 ++++--- .../modal_content/delete_modal.js | 2 +- .../contact_info/modal_content/edit_modal.js | 19 ++++--- .../contact_info/svg/ic_email.svg | 9 ++++ .../contact_info/svg/ic_facebook.svg | 6 +++ .../contact_info/svg/ic_google.svg | 11 +++++ .../contact_info/svg/ic_phone.svg | 6 +++ .../contact_info/svg/ic_twitter.svg | 6 +++ .../type_controls/type_control_email.js | 10 ++-- .../type_controls/type_control_phone.js | 4 +- .../type_controls/type_control_social.js | 19 +++++-- .../edit_user/generic_data/index.css | 46 ++++++++++++----- src/components/edit_user/middleware.js | 6 +-- .../tabs_navigation/login_options/index.js | 2 +- .../login_options/modal_content/add_modal.js | 19 ++++--- .../modal_content/delete_modal.js | 2 +- .../login_options/svg/ic_email.svg | 9 ++++ .../login_options/svg/ic_facebook.svg | 6 +++ .../login_options/svg/ic_google.svg | 11 +++++ .../login_options/svg/ic_phone.svg | 6 +++ .../login_options/svg/ic_twitter.svg | 6 +++ .../type_controls/type_control_email.js | 6 +-- .../type_controls/type_control_phone.js | 4 +- .../type_controls/type_control_social.js | 19 +++++-- src/components/sidebar/index.js | 28 +++++------ src/components/sidebar/side_nav/index.js | 49 +++++++++---------- 27 files changed, 231 insertions(+), 101 deletions(-) create mode 100644 src/components/edit_user/generic_data/contact_info/svg/ic_email.svg create mode 100644 src/components/edit_user/generic_data/contact_info/svg/ic_facebook.svg create mode 100644 src/components/edit_user/generic_data/contact_info/svg/ic_google.svg create mode 100644 src/components/edit_user/generic_data/contact_info/svg/ic_phone.svg create mode 100644 src/components/edit_user/generic_data/contact_info/svg/ic_twitter.svg create mode 100644 src/components/edit_user/tabs_navigation/login_options/svg/ic_email.svg create mode 100644 src/components/edit_user/tabs_navigation/login_options/svg/ic_facebook.svg create mode 100644 src/components/edit_user/tabs_navigation/login_options/svg/ic_google.svg create mode 100644 src/components/edit_user/tabs_navigation/login_options/svg/ic_phone.svg create mode 100644 src/components/edit_user/tabs_navigation/login_options/svg/ic_twitter.svg diff --git a/src/components/dashboard_users/paging/paging.js b/src/components/dashboard_users/paging/paging.js index 3fe2a86..b6e733a 100644 --- a/src/components/dashboard_users/paging/paging.js +++ b/src/components/dashboard_users/paging/paging.js @@ -1,6 +1,5 @@ -import React, { Component, Fragment } from 'react' +import React, { Component } from 'react' import PropTypes from 'prop-types' -import Spinner from '../../shared/ui/spinner/spinner' import './paging.css' class Paging extends Component { diff --git a/src/components/edit_user/generic_data/contact_info/modal_content/add_modal.js b/src/components/edit_user/generic_data/contact_info/modal_content/add_modal.js index 9ce42c2..df424c2 100644 --- a/src/components/edit_user/generic_data/contact_info/modal_content/add_modal.js +++ b/src/components/edit_user/generic_data/contact_info/modal_content/add_modal.js @@ -4,10 +4,12 @@ import PropTypes from 'prop-types' import { withStyles } from '@material-ui/core/styles' import Button from '@material-ui/core/Button' import Grid from '@material-ui/core/Grid' -import Email from '@material-ui/icons/Email' -import People from '@material-ui/icons/People' import TextField from '@material-ui/core/TextField' import { formatContactInfo } from 'utils/helpers/common' +import facebookIcon from '../svg/ic_facebook.svg' +import googleIcon from '../svg/ic_google.svg' +import twitterIcon from '../svg/ic_twitter.svg' +import emailIcon from '../svg/ic_email.svg' const styles = {} @@ -45,6 +47,13 @@ render () { const { classes, type, handleModalCancel, onSave } = this.props const { addContactInfo, isUpdated } = this.state let label = formatContactInfo(type) + let iconContactType = null + + type === 'FACEBOOK_CONTACT' + ? iconContactType = {type} + : type === 'GOOGLEPLUS_CONTACT' + ? iconContactType = googleplus icon + : iconContactType = twitter icon return (
@@ -56,10 +65,7 @@ render () {
- {type !== 'EMAIL_CONTACT' && type !== 'PHONE_CONTACT' - ? - : - } + { type === 'EMAIL_CONTACT' ? email icon : iconContactType } {
{ type !== 'PHONE_CONTACT' - ?

Do you want to delete user's {label.toLowerCase()}: {value} from contact information?

+ ?

Do you want to delete user's {label.toLowerCase()}: {value} from contact information?

:

Do you want to delete user's {label.toLowerCase()}: +{value} from contact information?

} diff --git a/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js b/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js index fe26478..41db257 100644 --- a/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js +++ b/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js @@ -4,10 +4,12 @@ import PropTypes from 'prop-types' import { withStyles } from '@material-ui/core/styles' import Button from '@material-ui/core/Button' import Grid from '@material-ui/core/Grid' -import Email from '@material-ui/icons/Email' -import People from '@material-ui/icons/People' import TextField from '@material-ui/core/TextField' import { formatContactInfo } from 'utils/helpers/common' +import facebookIcon from '../svg/ic_facebook.svg' +import googleIcon from '../svg/ic_google.svg' +import twitterIcon from '../svg/ic_twitter.svg' +import emailIcon from '../svg/ic_email.svg' const styles = {} @@ -44,7 +46,15 @@ class ContactInfoEditModal extends PureComponent { render () { const { handleModalEditProfileCancel, type, classes, onSave } = this.props const { isUpdated } = this.state + let label = formatContactInfo(type) + let iconContactType = null + + type === 'FACEBOOK_CONTACT' + ? iconContactType = {type} + : type === 'GOOGLEPLUS_CONTACT' + ? iconContactType = googleplus icon + : iconContactType = twitter icon return (
@@ -56,10 +66,7 @@ class ContactInfoEditModal extends PureComponent {
- {type !== 'EMAIL_CONTACT' && type !== 'PHONE_CONTACT' - ? - : - } + { type === 'EMAIL_CONTACT' ? email icon : iconContactType } + + + + + + + + diff --git a/src/components/edit_user/generic_data/contact_info/svg/ic_facebook.svg b/src/components/edit_user/generic_data/contact_info/svg/ic_facebook.svg new file mode 100644 index 0000000..788efb6 --- /dev/null +++ b/src/components/edit_user/generic_data/contact_info/svg/ic_facebook.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/components/edit_user/generic_data/contact_info/svg/ic_google.svg b/src/components/edit_user/generic_data/contact_info/svg/ic_google.svg new file mode 100644 index 0000000..d141305 --- /dev/null +++ b/src/components/edit_user/generic_data/contact_info/svg/ic_google.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/components/edit_user/generic_data/contact_info/svg/ic_phone.svg b/src/components/edit_user/generic_data/contact_info/svg/ic_phone.svg new file mode 100644 index 0000000..6eec43c --- /dev/null +++ b/src/components/edit_user/generic_data/contact_info/svg/ic_phone.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/components/edit_user/generic_data/contact_info/svg/ic_twitter.svg b/src/components/edit_user/generic_data/contact_info/svg/ic_twitter.svg new file mode 100644 index 0000000..5ae93db --- /dev/null +++ b/src/components/edit_user/generic_data/contact_info/svg/ic_twitter.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/components/edit_user/generic_data/contact_info/type_controls/type_control_email.js b/src/components/edit_user/generic_data/contact_info/type_controls/type_control_email.js index d2755e0..62eceb1 100644 --- a/src/components/edit_user/generic_data/contact_info/type_controls/type_control_email.js +++ b/src/components/edit_user/generic_data/contact_info/type_controls/type_control_email.js @@ -2,28 +2,27 @@ import React from 'react' import PropTypes from 'prop-types' import { withStyles } from '@material-ui/core/styles' - import InputAdornment from '@material-ui/core/InputAdornment' -import Mail from '@material-ui/icons/Mail' import TextField from '@material-ui/core/TextField' import ContactInfoControlOptions from '../contact_info_control_options' +import emailIcon from '../svg/ic_email.svg' const styles = theme => ({}) const TypeControlEmail = (props) => { - const { classes, id, handleDeleteContact, handleEditContact, info, inputType } = props + const { id, handleDeleteContact, handleEditContact, info, inputType } = props return ( - + email icon ), endAdornment: ( @@ -48,7 +47,6 @@ TypeControlEmail.propTypes = { inputType: PropTypes.string.isRequired, handleEditContact: PropTypes.func, handleDeleteContact: PropTypes.func.isRequired, - classes: PropTypes.object.isRequired, id: PropTypes.string.isRequired } diff --git a/src/components/edit_user/generic_data/contact_info/type_controls/type_control_phone.js b/src/components/edit_user/generic_data/contact_info/type_controls/type_control_phone.js index 6da5e90..24d0985 100644 --- a/src/components/edit_user/generic_data/contact_info/type_controls/type_control_phone.js +++ b/src/components/edit_user/generic_data/contact_info/type_controls/type_control_phone.js @@ -5,9 +5,9 @@ import { withStyles } from '@material-ui/core/styles' import InputAdornment from '@material-ui/core/InputAdornment' import InputLabel from '@material-ui/core/InputLabel/InputLabel' import Input from '@material-ui/core/Input/Input' -import Phone from '@material-ui/icons/Phone' import FormControl from '@material-ui/core/FormControl/FormControl' import ContactInfoControlOptions from '../contact_info_control_options' +import phoneIcon from '../svg/ic_phone.svg' const styles = theme => ({}) @@ -24,7 +24,7 @@ const TypeControlPhone = (props) => { readOnly startAdornment={ - + phone icon } endAdornment={ diff --git a/src/components/edit_user/generic_data/contact_info/type_controls/type_control_social.js b/src/components/edit_user/generic_data/contact_info/type_controls/type_control_social.js index a7835ab..14af6a6 100644 --- a/src/components/edit_user/generic_data/contact_info/type_controls/type_control_social.js +++ b/src/components/edit_user/generic_data/contact_info/type_controls/type_control_social.js @@ -3,26 +3,36 @@ import PropTypes from 'prop-types' import { withStyles } from '@material-ui/core/styles' import InputAdornment from '@material-ui/core/InputAdornment' -import People from '@material-ui/icons/People' import TextField from '@material-ui/core/TextField' import ContactInfoControlOptions from '../contact_info_control_options' +import facebookIcon from '../svg/ic_facebook.svg' +import googleIcon from '../svg/ic_google.svg' +import twitterIcon from '../svg/ic_twitter.svg' const styles = theme => ({}) const TypeControlSocial = (props) => { - const { classes, id, handleDeleteContact, handleEditContact, info, inputType } = props + const { id, handleDeleteContact, handleEditContact, info, inputType } = props + + let iconContactType = null + + inputType === 'FACEBOOK_CONTACT' + ? iconContactType = {inputType} + : inputType === 'GOOGLEPLUS_CONTACT' + ? iconContactType = googleplus icon + : iconContactType = twitter icon return ( - + { iconContactType } ), endAdornment: ( @@ -46,7 +56,6 @@ TypeControlSocial.propTypes = { inputType: PropTypes.string.isRequired, handleEditContact: PropTypes.func, handleDeleteContact: PropTypes.func.isRequired, - classes: PropTypes.object.isRequired, id: PropTypes.string.isRequired } diff --git a/src/components/edit_user/generic_data/index.css b/src/components/edit_user/generic_data/index.css index 77c1eef..0787afb 100644 --- a/src/components/edit_user/generic_data/index.css +++ b/src/components/edit_user/generic_data/index.css @@ -1,5 +1,5 @@ .username-wrapper { - height: calc(100vh - 126px); + height: calc(100vh - 113px); overflow-y: scroll; -webkit-overflow-scrolling: touch; @@ -11,10 +11,15 @@ border-radius: 0; } .personal-info-title, -.contact-info-title { +.contact-info-title, +.login-option-title { font-size: 14px; color: #959699; } +.login-option-title, +.contact-info-title { + margin-bottom: 20px; +} .default-avatar { width: 130px; height: 130px; @@ -95,9 +100,6 @@ -ms-border-radius: 10px; border-radius: 10px; } -.icon-filter { - filter: invert(0.30); -} .user-birthday { position: relative; } @@ -180,6 +182,10 @@ line-height: 1.1875em; cursor: text; } +.date-time-picker .icon-filter { + filter: invert(50%); + width: 20px; +} .user-birthday { width: 100%; } @@ -194,15 +200,10 @@ .user-birthday input { padding-left: 50px; } -.icon-contact-info svg { - /* margin: 0 10px; */ -} .contactInfo-phoneLabel { + top: 8px; left: 32px; - /* left: auto; - right: 15px; - top: auto; - bottom: 5px; */ + max-width: 350px; @@ -248,4 +249,25 @@ } .username-wrapper label { color: #666666; +} +.icon-filter { + filter: invert(10%); +} + +.contact-info-social, +.contact-info-email { + margin: 0; + padding-top: 5px; +} +.contact-info-social > div, +.contact-info-email > div { + padding-bottom: 5px; +} + +.phone-control { + margin: 0; + padding-top: 5px; +} +.phone-control > div { + padding-bottom: 5px; } \ No newline at end of file diff --git a/src/components/edit_user/middleware.js b/src/components/edit_user/middleware.js index a5eff77..15e30bb 100644 --- a/src/components/edit_user/middleware.js +++ b/src/components/edit_user/middleware.js @@ -2,7 +2,7 @@ import { DELETE_LOADER } from 'constants/loaders' import { call, put, select } from 'redux-saga/effects' import { loadingStart, loadingStop } from '../../store/root_actions/loaders' -import { accountByAccountIdGrpcRequest, profileByProfileIdGrpcRequest, contactTypes, contactTypeKeys, deleteProfileGrpcRequest, deleteAccountGrpcRequest } from './../../utils/services/accounts' +import { accountByAccountIdGrpcRequest, profileByProfileIdGrpcRequest, contactTypes, contactTypeKeys, deleteProfileGrpcRequest } from './../../utils/services/accounts' import { deliverSelectedUserData, deliverUpdateUserDataName, shouldRedirect } from './actions' import { globalError } from './../../hoc/error_handler/actions' @@ -10,8 +10,8 @@ export function * deleteAccountProfile () { const editUser = yield select((state) => state.editUser) yield put(loadingStart(DELETE_LOADER)) try { - let deleteProfile = yield call(deleteProfileGrpcRequest, editUser.profileid) - // deleteAccount = yield call(deleteAccountGrpcRequest, editUser.accountid) + yield call(deleteProfileGrpcRequest, editUser.profileid) + yield put(loadingStop(DELETE_LOADER)) yield put(shouldRedirect()) } catch (error) { diff --git a/src/components/edit_user/tabs_navigation/login_options/index.js b/src/components/edit_user/tabs_navigation/login_options/index.js index a98748c..f6f696f 100644 --- a/src/components/edit_user/tabs_navigation/login_options/index.js +++ b/src/components/edit_user/tabs_navigation/login_options/index.js @@ -12,7 +12,7 @@ const LoginOption = (props) => { return ( - Login Options + Login Options + : type === 'GOOGLEPLUS_CONTACT' + ? iconContactType = googleplus icon + : iconContactType = twitter icon return (
@@ -55,10 +65,7 @@ class LoginOptionsAddModal extends PureComponent {
- {type !== 'EMAIL_CONTACT' && type !== 'PHONE_CONTACT' - ? - : - } + { type === 'EMAIL_CONTACT' ? email icon : iconContactType } {
{ type !== 'PHONE_CONTACT' - ?

Do you want to delete user's {label.toLowerCase()}: {value} from contact information?

+ ?

Do you want to delete user's {label.toLowerCase()}: {value} from contact information?

:

Do you want to delete user's {label.toLowerCase()}: +{value} from contact information?

} diff --git a/src/components/edit_user/tabs_navigation/login_options/svg/ic_email.svg b/src/components/edit_user/tabs_navigation/login_options/svg/ic_email.svg new file mode 100644 index 0000000..a1c130d --- /dev/null +++ b/src/components/edit_user/tabs_navigation/login_options/svg/ic_email.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/components/edit_user/tabs_navigation/login_options/svg/ic_facebook.svg b/src/components/edit_user/tabs_navigation/login_options/svg/ic_facebook.svg new file mode 100644 index 0000000..788efb6 --- /dev/null +++ b/src/components/edit_user/tabs_navigation/login_options/svg/ic_facebook.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/components/edit_user/tabs_navigation/login_options/svg/ic_google.svg b/src/components/edit_user/tabs_navigation/login_options/svg/ic_google.svg new file mode 100644 index 0000000..d141305 --- /dev/null +++ b/src/components/edit_user/tabs_navigation/login_options/svg/ic_google.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/components/edit_user/tabs_navigation/login_options/svg/ic_phone.svg b/src/components/edit_user/tabs_navigation/login_options/svg/ic_phone.svg new file mode 100644 index 0000000..6eec43c --- /dev/null +++ b/src/components/edit_user/tabs_navigation/login_options/svg/ic_phone.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/components/edit_user/tabs_navigation/login_options/svg/ic_twitter.svg b/src/components/edit_user/tabs_navigation/login_options/svg/ic_twitter.svg new file mode 100644 index 0000000..5ae93db --- /dev/null +++ b/src/components/edit_user/tabs_navigation/login_options/svg/ic_twitter.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/components/edit_user/tabs_navigation/login_options/type_controls/type_control_email.js b/src/components/edit_user/tabs_navigation/login_options/type_controls/type_control_email.js index 7970281..d73a675 100644 --- a/src/components/edit_user/tabs_navigation/login_options/type_controls/type_control_email.js +++ b/src/components/edit_user/tabs_navigation/login_options/type_controls/type_control_email.js @@ -3,8 +3,8 @@ import PropTypes from 'prop-types' import { withStyles } from '@material-ui/core/styles' import InputAdornment from '@material-ui/core/InputAdornment' -import Mail from '@material-ui/icons/Mail' import TextField from '@material-ui/core/TextField' +import emailIcon from '../svg/ic_email.svg' import LoginOptionControlOptions from '../login_option_control_options' const styles = theme => ({}) @@ -16,14 +16,14 @@ const TypeControlEmail = (props) => {
- + email icon ), endAdornment: ( diff --git a/src/components/edit_user/tabs_navigation/login_options/type_controls/type_control_phone.js b/src/components/edit_user/tabs_navigation/login_options/type_controls/type_control_phone.js index 4f14e48..8ef0441 100644 --- a/src/components/edit_user/tabs_navigation/login_options/type_controls/type_control_phone.js +++ b/src/components/edit_user/tabs_navigation/login_options/type_controls/type_control_phone.js @@ -5,8 +5,8 @@ import { withStyles } from '@material-ui/core/styles' import InputAdornment from '@material-ui/core/InputAdornment' import InputLabel from '@material-ui/core/InputLabel/InputLabel' import Input from '@material-ui/core/Input/Input' -import Phone from '@material-ui/icons/Phone' import FormControl from '@material-ui/core/FormControl/FormControl' +import phoneIcon from '../svg/ic_phone.svg' import LoginOptionControlOptions from '../login_option_control_options' const styles = theme => ({}) @@ -24,7 +24,7 @@ const TypeControlPhone = (props) => { readOnly startAdornment={ - + phone icon } endAdornment={ diff --git a/src/components/edit_user/tabs_navigation/login_options/type_controls/type_control_social.js b/src/components/edit_user/tabs_navigation/login_options/type_controls/type_control_social.js index ae1508e..6173bca 100644 --- a/src/components/edit_user/tabs_navigation/login_options/type_controls/type_control_social.js +++ b/src/components/edit_user/tabs_navigation/login_options/type_controls/type_control_social.js @@ -3,26 +3,36 @@ import PropTypes from 'prop-types' import { withStyles } from '@material-ui/core/styles' import InputAdornment from '@material-ui/core/InputAdornment' -import People from '@material-ui/icons/People' import TextField from '@material-ui/core/TextField' import LoginOptionControlOptions from '../login_option_control_options' +import facebookIcon from '../svg/ic_facebook.svg' +import googleIcon from '../svg/ic_google.svg' +import twitterIcon from '../svg/ic_twitter.svg' const styles = theme => ({}) const TypeControlSocial = (props) => { - const { classes, id, handleDeleteContact, info, inputType, LoginOptionLength } = props + const { id, handleDeleteContact, info, inputType, LoginOptionLength } = props + + let iconContactType = null + + inputType === 'FACEBOOK_CONTACT' + ? iconContactType = {inputType} + : inputType === 'GOOGLEPLUS_CONTACT' + ? iconContactType = googleplus icon + : iconContactType = twitter icon return ( - + { iconContactType } ), endAdornment: ( @@ -45,7 +55,6 @@ TypeControlSocial.propTypes = { info: PropTypes.object.isRequired, inputType: PropTypes.string.isRequired, handleDeleteContact: PropTypes.func.isRequired, - classes: PropTypes.object.isRequired, id: PropTypes.string.isRequired, LoginOptionLength: PropTypes.number } diff --git a/src/components/sidebar/index.js b/src/components/sidebar/index.js index 10ec817..792c276 100644 --- a/src/components/sidebar/index.js +++ b/src/components/sidebar/index.js @@ -1,22 +1,20 @@ -import React, { Component } from 'react'; -import Paper from '@material-ui/core/Paper'; +import React, { Component } from 'react' +import Paper from '@material-ui/core/Paper' import { SideNav } from './side_nav' import './css/style.css' class Sidebar extends Component { + render () { + return ( - render(){ - - return ( - -
-
- - - -
- ) - } +
+
+ + + +
+ ) + } } -export default Sidebar; \ No newline at end of file +export default Sidebar diff --git a/src/components/sidebar/side_nav/index.js b/src/components/sidebar/side_nav/index.js index dd2c1b1..23d8fa0 100644 --- a/src/components/sidebar/side_nav/index.js +++ b/src/components/sidebar/side_nav/index.js @@ -1,27 +1,26 @@ -import React, { Fragment } from 'react'; -import { NavLink } from 'react-router-dom'; -import MenuItem from '@material-ui/core/MenuItem'; -import ListItemIcon from '@material-ui/core/ListItemIcon'; -import ListItemText from '@material-ui/core/ListItemText'; -import InboxIcon from '@material-ui/icons/MoveToInbox'; -import logo from './svg/logo.svg'; +import React, { Fragment } from 'react' +import { NavLink } from 'react-router-dom' +import MenuItem from '@material-ui/core/MenuItem' +import ListItemIcon from '@material-ui/core/ListItemIcon' +import ListItemText from '@material-ui/core/ListItemText' +import InboxIcon from '@material-ui/icons/MoveToInbox' +import logo from './svg/logo.svg' export const SideNav = (props) => { - - return ( - -
- logo -
Admin Console
-
- - - - - - - - -
- ) -} \ No newline at end of file + return ( + +
+ logo +
Admin Console
+
+ + + + + + + + +
+ ) +} -- GitLab From a8cf5acacadfc7054152e4c6d8f7c651f3558737 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Fri, 30 Nov 2018 17:30:43 +0200 Subject: [PATCH 240/249] NY-4528 Add Validation for Email to contact info and Login Options --- .../contact_info/modal_content/add_modal.js | 10 ++- .../contact_info/modal_content/edit_modal.js | 7 +- .../edit_user/generic_data/index.css | 12 +++ .../edit_user/tabs_navigation/index.css | 13 ++++ .../edit_user/tabs_navigation/index.js | 74 +++++++++---------- .../login_options/modal_content/add_modal.js | 7 +- src/constants/formats.js | 1 + src/utils/helpers/common.js | 17 +++++ 8 files changed, 97 insertions(+), 44 deletions(-) diff --git a/src/components/edit_user/generic_data/contact_info/modal_content/add_modal.js b/src/components/edit_user/generic_data/contact_info/modal_content/add_modal.js index df424c2..c401475 100644 --- a/src/components/edit_user/generic_data/contact_info/modal_content/add_modal.js +++ b/src/components/edit_user/generic_data/contact_info/modal_content/add_modal.js @@ -5,7 +5,7 @@ import { withStyles } from '@material-ui/core/styles' import Button from '@material-ui/core/Button' import Grid from '@material-ui/core/Grid' import TextField from '@material-ui/core/TextField' -import { formatContactInfo } from 'utils/helpers/common' +import { formatContactInfo, isInputValid } from 'utils/helpers/common' import facebookIcon from '../svg/ic_facebook.svg' import googleIcon from '../svg/ic_google.svg' import twitterIcon from '../svg/ic_twitter.svg' @@ -46,8 +46,10 @@ handleChange = (e) => { render () { const { classes, type, handleModalCancel, onSave } = this.props const { addContactInfo, isUpdated } = this.state + let label = formatContactInfo(type) let iconContactType = null + let isValid = isInputValid(addContactInfo, type) type === 'FACEBOOK_CONTACT' ? iconContactType = {type} @@ -67,13 +69,15 @@ render () { { type === 'EMAIL_CONTACT' ? email icon : iconContactType } - + @@ -82,7 +86,7 @@ render () {
- +
diff --git a/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js b/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js index 41db257..5deb31a 100644 --- a/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js +++ b/src/components/edit_user/generic_data/contact_info/modal_content/edit_modal.js @@ -5,7 +5,7 @@ import { withStyles } from '@material-ui/core/styles' import Button from '@material-ui/core/Button' import Grid from '@material-ui/core/Grid' import TextField from '@material-ui/core/TextField' -import { formatContactInfo } from 'utils/helpers/common' +import { formatContactInfo, isInputValid } from 'utils/helpers/common' import facebookIcon from '../svg/ic_facebook.svg' import googleIcon from '../svg/ic_google.svg' import twitterIcon from '../svg/ic_twitter.svg' @@ -47,6 +47,7 @@ class ContactInfoEditModal extends PureComponent { const { handleModalEditProfileCancel, type, classes, onSave } = this.props const { isUpdated } = this.state + let isValid = isInputValid(this.state.value, type) let label = formatContactInfo(type) let iconContactType = null @@ -70,11 +71,13 @@ class ContactInfoEditModal extends PureComponent { @@ -82,7 +85,7 @@ class ContactInfoEditModal extends PureComponent {
- +
diff --git a/src/components/edit_user/generic_data/index.css b/src/components/edit_user/generic_data/index.css index 0787afb..449a76e 100644 --- a/src/components/edit_user/generic_data/index.css +++ b/src/components/edit_user/generic_data/index.css @@ -247,6 +247,18 @@ .username-wrapper input { color: #000; } +.username-wrapper .invalid label { + color: #c90010; +} +.username-wrapper .invalid input:after { + color: #c90010; + font-weight: 700; + border-bottom-color: #c90010; +} +.username-wrapper .invalid input { + color: #c90010; + font-weight: 700; +} .username-wrapper label { color: #666666; } diff --git a/src/components/edit_user/tabs_navigation/index.css b/src/components/edit_user/tabs_navigation/index.css index c5589f8..050734f 100644 --- a/src/components/edit_user/tabs_navigation/index.css +++ b/src/components/edit_user/tabs_navigation/index.css @@ -7,4 +7,17 @@ text-align: center; font-weight: 700; color: #f50057; +} + +.username-tabnav .invalid label { + color: #c90010; +} +.username-tabnav .invalid input:after { + color: #c90010; + font-weight: 700; + border-bottom-color: #c90010; +} +.username-tabnav .invalid input { + color: #c90010; + font-weight: 700; } \ No newline at end of file diff --git a/src/components/edit_user/tabs_navigation/index.js b/src/components/edit_user/tabs_navigation/index.js index 592b291..9c967aa 100644 --- a/src/components/edit_user/tabs_navigation/index.js +++ b/src/components/edit_user/tabs_navigation/index.js @@ -164,8 +164,8 @@ class TabsNavigation extends Component { } return ( - -
+
+
{ - value === 0 && user.contactTypes - ? - : null + value === 0 && user.contactTypes + ? + : null } {value === 1 &&
active sessions live here
} {value === 2 && manageUser && @@ -200,33 +200,33 @@ class TabsNavigation extends Component { }
- { - modalState.showDeleteModal - ? - - - : null - } - - { - modalState.showAddModal - ? - - - : null - } + { + modalState.showDeleteModal + ? + + + : null + } + + { + modalState.showAddModal + ? + + + : null + } +
- ) } } diff --git a/src/components/edit_user/tabs_navigation/login_options/modal_content/add_modal.js b/src/components/edit_user/tabs_navigation/login_options/modal_content/add_modal.js index 3000e75..0bd47d0 100644 --- a/src/components/edit_user/tabs_navigation/login_options/modal_content/add_modal.js +++ b/src/components/edit_user/tabs_navigation/login_options/modal_content/add_modal.js @@ -5,7 +5,7 @@ import { withStyles } from '@material-ui/core/styles' import Button from '@material-ui/core/Button' import Grid from '@material-ui/core/Grid' import TextField from '@material-ui/core/TextField' -import { formatContactInfo } from 'utils/helpers/common' +import { formatContactInfo, isInputValid } from 'utils/helpers/common' import facebookIcon from '../svg/ic_facebook.svg' import googleIcon from '../svg/ic_google.svg' import twitterIcon from '../svg/ic_twitter.svg' @@ -48,6 +48,7 @@ class LoginOptionsAddModal extends PureComponent { let label = formatContactInfo(type) let iconContactType = null + let isValid = isInputValid(addLoginOptions, type) type === 'FACEBOOK_CONTACT' ? iconContactType = {type} @@ -69,11 +70,13 @@ class LoginOptionsAddModal extends PureComponent { @@ -82,7 +85,7 @@ class LoginOptionsAddModal extends PureComponent {
- +
diff --git a/src/constants/formats.js b/src/constants/formats.js index 03798a0..6db4e4a 100644 --- a/src/constants/formats.js +++ b/src/constants/formats.js @@ -1 +1,2 @@ export const DATE_FORMAT = 'YYYY/MM/DD' +export const isValidEmailExp = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ diff --git a/src/utils/helpers/common.js b/src/utils/helpers/common.js index 3fc3735..688dac8 100644 --- a/src/utils/helpers/common.js +++ b/src/utils/helpers/common.js @@ -1 +1,18 @@ +import { isValidEmailExp } from '../../constants/formats' + export const formatContactInfo = (name) => name.split(/[_]/)[0] + +export const isInputValid = (value, type) => { + let result + + switch (type) { + case 'EMAIL_CONTACT': + result = value.match(isValidEmailExp) !== null + break + default: + result = true + break + } + + return result +} -- GitLab From c62854d2363bddd5120d77cbc3d1743e5d0c4d1a Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Fri, 30 Nov 2018 17:46:57 +0200 Subject: [PATCH 241/249] Minor chnage :: escape regex --- src/constants/formats.js | 4 +++- src/utils/helpers/common.js | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/constants/formats.js b/src/constants/formats.js index 6db4e4a..e10724a 100644 --- a/src/constants/formats.js +++ b/src/constants/formats.js @@ -1,2 +1,4 @@ +/* no-useless-esxape */ + export const DATE_FORMAT = 'YYYY/MM/DD' -export const isValidEmailExp = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ +export const isValidEmailExp = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ diff --git a/src/utils/helpers/common.js b/src/utils/helpers/common.js index 688dac8..2875b6c 100644 --- a/src/utils/helpers/common.js +++ b/src/utils/helpers/common.js @@ -4,10 +4,11 @@ export const formatContactInfo = (name) => name.split(/[_]/)[0] export const isInputValid = (value, type) => { let result + let re = new RegExp(isValidEmailExp) switch (type) { case 'EMAIL_CONTACT': - result = value.match(isValidEmailExp) !== null + result = re.test(value) break default: result = true -- GitLab From 11a328a254abe40c755a1ba8a2c83d672ff08229 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Mon, 3 Dec 2018 15:53:56 +0200 Subject: [PATCH 242/249] re-compiling proto files --- src/utils/grpc_proto/generated/account_pb.js | 51 +- .../generated/account_pb_service.js | 44 +- .../grpc_proto/generated/admin_account_pb.js | 435 ++++++++++++++++-- .../generated/admin_account_pb_service.js | 1 + src/utils/grpc_proto/generated/auth_pb.js | 1 + .../grpc_proto/generated/auth_pb_service.js | 1 + src/utils/services/ag_grid_server_model.js | 2 +- 7 files changed, 454 insertions(+), 81 deletions(-) diff --git a/src/utils/grpc_proto/generated/account_pb.js b/src/utils/grpc_proto/generated/account_pb.js index 1d376b2..6fd4522 100644 --- a/src/utils/grpc_proto/generated/account_pb.js +++ b/src/utils/grpc_proto/generated/account_pb.js @@ -1,4 +1,5 @@ /* eslint-disable */ + /** * @fileoverview * @enhanceable @@ -14,7 +15,6 @@ var global = Function('return this')(); goog.exportSymbol('proto.account.AccessStatus', null, global); goog.exportSymbol('proto.account.AccountByAccountIdRequest', null, global); -goog.exportSymbol('proto.account.AccountByAuthenticationProviderRequest', null, global); goog.exportSymbol('proto.account.AccountDetails', null, global); goog.exportSymbol('proto.account.AccountResponse', null, global); goog.exportSymbol('proto.account.AccountsByProfileIdRequest', null, global); @@ -23,6 +23,7 @@ goog.exportSymbol('proto.account.AccountsResponse', null, global); goog.exportSymbol('proto.account.AddAuthenticationProviderRequest', null, global); goog.exportSymbol('proto.account.AddContactInfoRequest', null, global); goog.exportSymbol('proto.account.AuthProviderDetails', null, global); +goog.exportSymbol('proto.account.AuthenticationProviderRequest', null, global); goog.exportSymbol('proto.account.AuthenticationType', null, global); goog.exportSymbol('proto.account.CompletePendingAccountCreationRequest', null, global); goog.exportSymbol('proto.account.ContactDetails', null, global); @@ -1259,12 +1260,12 @@ proto.account.ProfileByProfileIdRequest.prototype.setProfileid = function(value) * @extends {jspb.Message} * @constructor */ -proto.account.AccountByAuthenticationProviderRequest = function(opt_data) { +proto.account.AuthenticationProviderRequest = function(opt_data) { jspb.Message.initialize(this, opt_data, 0, -1, null, null); }; -goog.inherits(proto.account.AccountByAuthenticationProviderRequest, jspb.Message); +goog.inherits(proto.account.AuthenticationProviderRequest, jspb.Message); if (goog.DEBUG && !COMPILED) { - proto.account.AccountByAuthenticationProviderRequest.displayName = 'proto.account.AccountByAuthenticationProviderRequest'; + proto.account.AuthenticationProviderRequest.displayName = 'proto.account.AuthenticationProviderRequest'; } @@ -1279,8 +1280,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * for transitional soy proto support: http://goto/soy-param-migration * @return {!Object} */ -proto.account.AccountByAuthenticationProviderRequest.prototype.toObject = function(opt_includeInstance) { - return proto.account.AccountByAuthenticationProviderRequest.toObject(opt_includeInstance, this); +proto.account.AuthenticationProviderRequest.prototype.toObject = function(opt_includeInstance) { + return proto.account.AuthenticationProviderRequest.toObject(opt_includeInstance, this); }; @@ -1289,11 +1290,11 @@ proto.account.AccountByAuthenticationProviderRequest.prototype.toObject = functi * @param {boolean|undefined} includeInstance Whether to include the JSPB * instance for transitional soy proto support: * http://goto/soy-param-migration - * @param {!proto.account.AccountByAuthenticationProviderRequest} msg The msg instance to transform. + * @param {!proto.account.AuthenticationProviderRequest} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.account.AccountByAuthenticationProviderRequest.toObject = function(includeInstance, msg) { +proto.account.AuthenticationProviderRequest.toObject = function(includeInstance, msg) { var f, obj = { authenticationtype: jspb.Message.getFieldWithDefault(msg, 1, 0), authenticationidentifier: jspb.Message.getFieldWithDefault(msg, 2, "") @@ -1310,23 +1311,23 @@ proto.account.AccountByAuthenticationProviderRequest.toObject = function(include /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.account.AccountByAuthenticationProviderRequest} + * @return {!proto.account.AuthenticationProviderRequest} */ -proto.account.AccountByAuthenticationProviderRequest.deserializeBinary = function(bytes) { +proto.account.AuthenticationProviderRequest.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.account.AccountByAuthenticationProviderRequest; - return proto.account.AccountByAuthenticationProviderRequest.deserializeBinaryFromReader(msg, reader); + var msg = new proto.account.AuthenticationProviderRequest; + return proto.account.AuthenticationProviderRequest.deserializeBinaryFromReader(msg, reader); }; /** * Deserializes binary data (in protobuf wire format) from the * given reader into the given message object. - * @param {!proto.account.AccountByAuthenticationProviderRequest} msg The message object to deserialize into. + * @param {!proto.account.AuthenticationProviderRequest} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.account.AccountByAuthenticationProviderRequest} + * @return {!proto.account.AuthenticationProviderRequest} */ -proto.account.AccountByAuthenticationProviderRequest.deserializeBinaryFromReader = function(msg, reader) { +proto.account.AuthenticationProviderRequest.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -1354,9 +1355,9 @@ proto.account.AccountByAuthenticationProviderRequest.deserializeBinaryFromReader * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.account.AccountByAuthenticationProviderRequest.prototype.serializeBinary = function() { +proto.account.AuthenticationProviderRequest.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.account.AccountByAuthenticationProviderRequest.serializeBinaryToWriter(this, writer); + proto.account.AuthenticationProviderRequest.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -1364,11 +1365,11 @@ proto.account.AccountByAuthenticationProviderRequest.prototype.serializeBinary = /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.account.AccountByAuthenticationProviderRequest} message + * @param {!proto.account.AuthenticationProviderRequest} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.account.AccountByAuthenticationProviderRequest.serializeBinaryToWriter = function(message, writer) { +proto.account.AuthenticationProviderRequest.serializeBinaryToWriter = function(message, writer) { var f = undefined; f = message.getAuthenticationtype(); if (f !== 0.0) { @@ -1391,13 +1392,13 @@ proto.account.AccountByAuthenticationProviderRequest.serializeBinaryToWriter = f * optional AuthenticationType authenticationType = 1; * @return {!proto.account.AuthenticationType} */ -proto.account.AccountByAuthenticationProviderRequest.prototype.getAuthenticationtype = function() { +proto.account.AuthenticationProviderRequest.prototype.getAuthenticationtype = function() { return /** @type {!proto.account.AuthenticationType} */ (jspb.Message.getFieldWithDefault(this, 1, 0)); }; /** @param {!proto.account.AuthenticationType} value */ -proto.account.AccountByAuthenticationProviderRequest.prototype.setAuthenticationtype = function(value) { +proto.account.AuthenticationProviderRequest.prototype.setAuthenticationtype = function(value) { jspb.Message.setProto3EnumField(this, 1, value); }; @@ -1406,13 +1407,13 @@ proto.account.AccountByAuthenticationProviderRequest.prototype.setAuthentication * optional string authenticationIdentifier = 2; * @return {string} */ -proto.account.AccountByAuthenticationProviderRequest.prototype.getAuthenticationidentifier = function() { +proto.account.AuthenticationProviderRequest.prototype.getAuthenticationidentifier = function() { return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); }; /** @param {string} value */ -proto.account.AccountByAuthenticationProviderRequest.prototype.setAuthenticationidentifier = function(value) { +proto.account.AuthenticationProviderRequest.prototype.setAuthenticationidentifier = function(value) { jspb.Message.setProto3StringField(this, 2, value); }; @@ -7354,7 +7355,6 @@ proto.account.ErrorResponse.Cause = { MISSING_ACCOUNT_ID: 1, INVALID_ACCOUNT_ID: 2, INVALID_ACCOUNT_NAME: 3, - ACCOUNT_ALREADY_CREATED: 4, ACCOUNT_NOT_FOUND: 5, MISSING_PROFILE_ID: 6, INVALID_PROFILE_ID: 7, @@ -7397,7 +7397,8 @@ proto.account.ErrorResponse.Cause = { ERROR_DELETING_AUTH_PROVIDER: 44, ERROR_ADDING_CONTACT_INFO: 45, ERROR_DELETING_CONTACT_INFO: 46, - ERROR_EDITING_CONTACT_INFO: 47 + ERROR_EDITING_CONTACT_INFO: 47, + ERROR_PERMISSION_DENIED: 48 }; /** diff --git a/src/utils/grpc_proto/generated/account_pb_service.js b/src/utils/grpc_proto/generated/account_pb_service.js index 1b65f7d..5b8510e 100644 --- a/src/utils/grpc_proto/generated/account_pb_service.js +++ b/src/utils/grpc_proto/generated/account_pb_service.js @@ -65,12 +65,12 @@ AccountService.getAccountByQrCode = { responseType: account_pb.AccountResponse }; -AccountService.getAccountByAuthenticationProvider = { - methodName: "getAccountByAuthenticationProvider", +AccountService.getAccountByCreationProvider = { + methodName: "getAccountByCreationProvider", service: AccountService, requestStream: false, responseStream: false, - requestType: account_pb.AccountByAuthenticationProviderRequest, + requestType: account_pb.AuthenticationProviderRequest, responseType: account_pb.AccountResponse }; @@ -200,6 +200,15 @@ AccountService.searchByQrCode = { responseType: account_pb.SearchResponse }; +AccountService.getAccountByLoginOption = { + methodName: "getAccountByLoginOption", + service: AccountService, + requestStream: false, + responseStream: false, + requestType: account_pb.AuthenticationProviderRequest, + responseType: account_pb.AccountResponse +}; + exports.AccountService = AccountService; function AccountServiceClient(serviceHost, options) { @@ -357,11 +366,11 @@ AccountServiceClient.prototype.getAccountByQrCode = function getAccountByQrCode( }); }; -AccountServiceClient.prototype.getAccountByAuthenticationProvider = function getAccountByAuthenticationProvider(requestMessage, metadata, callback) { +AccountServiceClient.prototype.getAccountByCreationProvider = function getAccountByCreationProvider(requestMessage, metadata, callback) { if (arguments.length === 2) { callback = arguments[1]; } - grpc.unary(AccountService.getAccountByAuthenticationProvider, { + grpc.unary(AccountService.getAccountByCreationProvider, { request: requestMessage, host: this.serviceHost, metadata: metadata, @@ -732,5 +741,30 @@ AccountServiceClient.prototype.searchByQrCode = function searchByQrCode(requestM }); }; +AccountServiceClient.prototype.getAccountByLoginOption = function getAccountByLoginOption(requestMessage, metadata, callback) { + if (arguments.length === 2) { + callback = arguments[1]; + } + grpc.unary(AccountService.getAccountByLoginOption, { + request: requestMessage, + host: this.serviceHost, + metadata: metadata, + transport: this.options.transport, + debug: this.options.debug, + onEnd: function (response) { + if (callback) { + if (response.status !== grpc.Code.OK) { + var err = new Error(response.statusMessage); + err.code = response.status; + err.metadata = response.trailers; + callback(err, null); + } else { + callback(null, response.message); + } + } + } + }); +}; + exports.AccountServiceClient = AccountServiceClient; diff --git a/src/utils/grpc_proto/generated/admin_account_pb.js b/src/utils/grpc_proto/generated/admin_account_pb.js index 59506e0..687f867 100644 --- a/src/utils/grpc_proto/generated/admin_account_pb.js +++ b/src/utils/grpc_proto/generated/admin_account_pb.js @@ -1,4 +1,5 @@ /* eslint-disable */ + /** * @fileoverview * @enhanceable @@ -22,6 +23,7 @@ goog.exportSymbol('proto.admin.EmptyRequest', null, global); goog.exportSymbol('proto.admin.FilterModel', null, global); goog.exportSymbol('proto.admin.FilterModel.FilterType', null, global); goog.exportSymbol('proto.admin.GetAllAccountsRequest', null, global); +goog.exportSymbol('proto.admin.LoginOptions', null, global); /** * Generated by JsPbCodeGenerator. @@ -72,7 +74,8 @@ proto.admin.FilterModel.toObject = function(includeInstance, msg) { colid: jspb.Message.getFieldWithDefault(msg, 1, ""), filtertype: jspb.Message.getFieldWithDefault(msg, 2, 0), filtervalue: jspb.Message.getFieldWithDefault(msg, 3, ""), - valuetype: jspb.Message.getFieldWithDefault(msg, 4, "") + valuetype: jspb.Message.getFieldWithDefault(msg, 4, ""), + additionalfiltervalue: jspb.Message.getFieldWithDefault(msg, 5, "") }; if (includeInstance) { @@ -125,6 +128,10 @@ proto.admin.FilterModel.deserializeBinaryFromReader = function(msg, reader) { var value = /** @type {string} */ (reader.readString()); msg.setValuetype(value); break; + case 5: + var value = /** @type {string} */ (reader.readString()); + msg.setAdditionalfiltervalue(value); + break; default: reader.skipField(); break; @@ -182,6 +189,13 @@ proto.admin.FilterModel.serializeBinaryToWriter = function(message, writer) { f ); } + f = message.getAdditionalfiltervalue(); + if (f.length > 0) { + writer.writeString( + 5, + f + ); + } }; @@ -195,7 +209,13 @@ proto.admin.FilterModel.FilterType = { EQUALS: 3, NOTEQUAL: 4, STARTSWITH: 5, - ENDSWITH: 6 + ENDSWITH: 6, + BEFORE_OR_EQUAL: 7, + AFTER_OR_EQUAL: 8, + WITHIN_A_DATE_RANGE: 9, + OUTSIDE_A_DATE_RANGE: 10, + WITHIN_A_TIME_RANGE: 11, + OUTSIDE_A_TIME_RANGE: 12 }; /** @@ -258,6 +278,21 @@ proto.admin.FilterModel.prototype.setValuetype = function(value) { }; +/** + * optional string additionalFilterValue = 5; + * @return {string} + */ +proto.admin.FilterModel.prototype.getAdditionalfiltervalue = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); +}; + + +/** @param {string} value */ +proto.admin.FilterModel.prototype.setAdditionalfiltervalue = function(value) { + jspb.Message.setProto3StringField(this, 5, value); +}; + + /** * Generated by JsPbCodeGenerator. @@ -739,6 +774,308 @@ proto.admin.GetAllAccountsRequest.prototype.clearFiltermodelList = function() { +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.admin.LoginOptions = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.admin.LoginOptions.repeatedFields_, null); +}; +goog.inherits(proto.admin.LoginOptions, jspb.Message); +if (goog.DEBUG && !COMPILED) { + proto.admin.LoginOptions.displayName = 'proto.admin.LoginOptions'; +} +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.admin.LoginOptions.repeatedFields_ = [1,2]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto suitable for use in Soy templates. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS. + * @param {boolean=} opt_includeInstance Whether to include the JSPB instance + * for transitional soy proto support: http://goto/soy-param-migration + * @return {!Object} + */ +proto.admin.LoginOptions.prototype.toObject = function(opt_includeInstance) { + return proto.admin.LoginOptions.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Whether to include the JSPB + * instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.admin.LoginOptions} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.admin.LoginOptions.toObject = function(includeInstance, msg) { + var f, obj = { + emailsList: jspb.Message.toObjectList(msg.getEmailsList(), + account_pb.AuthProviderDetails.toObject, includeInstance), + phonesList: jspb.Message.toObjectList(msg.getPhonesList(), + account_pb.AuthProviderDetails.toObject, includeInstance), + google: (f = msg.getGoogle()) && account_pb.AuthProviderDetails.toObject(includeInstance, f), + facebook: (f = msg.getFacebook()) && account_pb.AuthProviderDetails.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.admin.LoginOptions} + */ +proto.admin.LoginOptions.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.admin.LoginOptions; + return proto.admin.LoginOptions.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.admin.LoginOptions} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.admin.LoginOptions} + */ +proto.admin.LoginOptions.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new account_pb.AuthProviderDetails; + reader.readMessage(value,account_pb.AuthProviderDetails.deserializeBinaryFromReader); + msg.addEmails(value); + break; + case 2: + var value = new account_pb.AuthProviderDetails; + reader.readMessage(value,account_pb.AuthProviderDetails.deserializeBinaryFromReader); + msg.addPhones(value); + break; + case 3: + var value = new account_pb.AuthProviderDetails; + reader.readMessage(value,account_pb.AuthProviderDetails.deserializeBinaryFromReader); + msg.setGoogle(value); + break; + case 4: + var value = new account_pb.AuthProviderDetails; + reader.readMessage(value,account_pb.AuthProviderDetails.deserializeBinaryFromReader); + msg.setFacebook(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.admin.LoginOptions.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.admin.LoginOptions.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.admin.LoginOptions} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.admin.LoginOptions.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getEmailsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 1, + f, + account_pb.AuthProviderDetails.serializeBinaryToWriter + ); + } + f = message.getPhonesList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 2, + f, + account_pb.AuthProviderDetails.serializeBinaryToWriter + ); + } + f = message.getGoogle(); + if (f != null) { + writer.writeMessage( + 3, + f, + account_pb.AuthProviderDetails.serializeBinaryToWriter + ); + } + f = message.getFacebook(); + if (f != null) { + writer.writeMessage( + 4, + f, + account_pb.AuthProviderDetails.serializeBinaryToWriter + ); + } +}; + + +/** + * repeated account.AuthProviderDetails emails = 1; + * @return {!Array} + */ +proto.admin.LoginOptions.prototype.getEmailsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, account_pb.AuthProviderDetails, 1)); +}; + + +/** @param {!Array} value */ +proto.admin.LoginOptions.prototype.setEmailsList = function(value) { + jspb.Message.setRepeatedWrapperField(this, 1, value); +}; + + +/** + * @param {!proto.account.AuthProviderDetails=} opt_value + * @param {number=} opt_index + * @return {!proto.account.AuthProviderDetails} + */ +proto.admin.LoginOptions.prototype.addEmails = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.account.AuthProviderDetails, opt_index); +}; + + +proto.admin.LoginOptions.prototype.clearEmailsList = function() { + this.setEmailsList([]); +}; + + +/** + * repeated account.AuthProviderDetails phones = 2; + * @return {!Array} + */ +proto.admin.LoginOptions.prototype.getPhonesList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, account_pb.AuthProviderDetails, 2)); +}; + + +/** @param {!Array} value */ +proto.admin.LoginOptions.prototype.setPhonesList = function(value) { + jspb.Message.setRepeatedWrapperField(this, 2, value); +}; + + +/** + * @param {!proto.account.AuthProviderDetails=} opt_value + * @param {number=} opt_index + * @return {!proto.account.AuthProviderDetails} + */ +proto.admin.LoginOptions.prototype.addPhones = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.account.AuthProviderDetails, opt_index); +}; + + +proto.admin.LoginOptions.prototype.clearPhonesList = function() { + this.setPhonesList([]); +}; + + +/** + * optional account.AuthProviderDetails google = 3; + * @return {?proto.account.AuthProviderDetails} + */ +proto.admin.LoginOptions.prototype.getGoogle = function() { + return /** @type{?proto.account.AuthProviderDetails} */ ( + jspb.Message.getWrapperField(this, account_pb.AuthProviderDetails, 3)); +}; + + +/** @param {?proto.account.AuthProviderDetails|undefined} value */ +proto.admin.LoginOptions.prototype.setGoogle = function(value) { + jspb.Message.setWrapperField(this, 3, value); +}; + + +proto.admin.LoginOptions.prototype.clearGoogle = function() { + this.setGoogle(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {!boolean} + */ +proto.admin.LoginOptions.prototype.hasGoogle = function() { + return jspb.Message.getField(this, 3) != null; +}; + + +/** + * optional account.AuthProviderDetails facebook = 4; + * @return {?proto.account.AuthProviderDetails} + */ +proto.admin.LoginOptions.prototype.getFacebook = function() { + return /** @type{?proto.account.AuthProviderDetails} */ ( + jspb.Message.getWrapperField(this, account_pb.AuthProviderDetails, 4)); +}; + + +/** @param {?proto.account.AuthProviderDetails|undefined} value */ +proto.admin.LoginOptions.prototype.setFacebook = function(value) { + jspb.Message.setWrapperField(this, 4, value); +}; + + +proto.admin.LoginOptions.prototype.clearFacebook = function() { + this.setFacebook(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {!boolean} + */ +proto.admin.LoginOptions.prototype.hasFacebook = function() { + return jspb.Message.getField(this, 4) != null; +}; + + + /** * Generated by JsPbCodeGenerator. * @param {Array=} opt_data Optional initial data array, typically from a @@ -761,7 +1098,7 @@ if (goog.DEBUG && !COMPILED) { * @private {!Array} * @const */ -proto.admin.AccountDetails.repeatedFields_ = [3,11,12]; +proto.admin.AccountDetails.repeatedFields_ = [11,12]; @@ -794,8 +1131,6 @@ proto.admin.AccountDetails.toObject = function(includeInstance, msg) { var f, obj = { accountid: jspb.Message.getFieldWithDefault(msg, 1, ""), profileid: jspb.Message.getFieldWithDefault(msg, 2, ""), - authprovidersList: jspb.Message.toObjectList(msg.getAuthprovidersList(), - account_pb.AuthProviderDetails.toObject, includeInstance), avatar: jspb.Message.getFieldWithDefault(msg, 4, ""), accountmark: jspb.Message.getFieldWithDefault(msg, 5, ""), accountname: jspb.Message.getFieldWithDefault(msg, 6, ""), @@ -809,7 +1144,8 @@ proto.admin.AccountDetails.toObject = function(includeInstance, msg) { accessstatus: jspb.Message.getFieldWithDefault(msg, 13, 0), birthday: (f = msg.getBirthday()) && account_pb.Date.toObject(includeInstance, f), creationtimestamp: jspb.Message.getFieldWithDefault(msg, 15, 0), - lastupdatetimestamp: jspb.Message.getFieldWithDefault(msg, 16, 0) + lastupdatetimestamp: jspb.Message.getFieldWithDefault(msg, 16, 0), + loginoptions: (f = msg.getLoginoptions()) && proto.admin.LoginOptions.toObject(includeInstance, f) }; if (includeInstance) { @@ -854,11 +1190,6 @@ proto.admin.AccountDetails.deserializeBinaryFromReader = function(msg, reader) { var value = /** @type {string} */ (reader.readString()); msg.setProfileid(value); break; - case 3: - var value = new account_pb.AuthProviderDetails; - reader.readMessage(value,account_pb.AuthProviderDetails.deserializeBinaryFromReader); - msg.addAuthproviders(value); - break; case 4: var value = /** @type {string} */ (reader.readString()); msg.setAvatar(value); @@ -913,6 +1244,11 @@ proto.admin.AccountDetails.deserializeBinaryFromReader = function(msg, reader) { var value = /** @type {number} */ (reader.readInt64()); msg.setLastupdatetimestamp(value); break; + case 17: + var value = new proto.admin.LoginOptions; + reader.readMessage(value,proto.admin.LoginOptions.deserializeBinaryFromReader); + msg.setLoginoptions(value); + break; default: reader.skipField(); break; @@ -956,14 +1292,6 @@ proto.admin.AccountDetails.serializeBinaryToWriter = function(message, writer) { f ); } - f = message.getAuthprovidersList(); - if (f.length > 0) { - writer.writeRepeatedMessage( - 3, - f, - account_pb.AuthProviderDetails.serializeBinaryToWriter - ); - } f = message.getAvatar(); if (f.length > 0) { writer.writeString( @@ -1057,6 +1385,14 @@ proto.admin.AccountDetails.serializeBinaryToWriter = function(message, writer) { f ); } + f = message.getLoginoptions(); + if (f != null) { + writer.writeMessage( + 17, + f, + proto.admin.LoginOptions.serializeBinaryToWriter + ); + } }; @@ -1090,37 +1426,6 @@ proto.admin.AccountDetails.prototype.setProfileid = function(value) { }; -/** - * repeated account.AuthProviderDetails authProviders = 3; - * @return {!Array} - */ -proto.admin.AccountDetails.prototype.getAuthprovidersList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, account_pb.AuthProviderDetails, 3)); -}; - - -/** @param {!Array} value */ -proto.admin.AccountDetails.prototype.setAuthprovidersList = function(value) { - jspb.Message.setRepeatedWrapperField(this, 3, value); -}; - - -/** - * @param {!proto.account.AuthProviderDetails=} opt_value - * @param {number=} opt_index - * @return {!proto.account.AuthProviderDetails} - */ -proto.admin.AccountDetails.prototype.addAuthproviders = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.account.AuthProviderDetails, opt_index); -}; - - -proto.admin.AccountDetails.prototype.clearAuthprovidersList = function() { - this.setAuthprovidersList([]); -}; - - /** * optional string avatar = 4; * @return {string} @@ -1361,6 +1666,36 @@ proto.admin.AccountDetails.prototype.setLastupdatetimestamp = function(value) { }; +/** + * optional LoginOptions loginOptions = 17; + * @return {?proto.admin.LoginOptions} + */ +proto.admin.AccountDetails.prototype.getLoginoptions = function() { + return /** @type{?proto.admin.LoginOptions} */ ( + jspb.Message.getWrapperField(this, proto.admin.LoginOptions, 17)); +}; + + +/** @param {?proto.admin.LoginOptions|undefined} value */ +proto.admin.AccountDetails.prototype.setLoginoptions = function(value) { + jspb.Message.setWrapperField(this, 17, value); +}; + + +proto.admin.AccountDetails.prototype.clearLoginoptions = function() { + this.setLoginoptions(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {!boolean} + */ +proto.admin.AccountDetails.prototype.hasLoginoptions = function() { + return jspb.Message.getField(this, 17) != null; +}; + + /** * Generated by JsPbCodeGenerator. diff --git a/src/utils/grpc_proto/generated/admin_account_pb_service.js b/src/utils/grpc_proto/generated/admin_account_pb_service.js index 86cf488..8fbfe9c 100644 --- a/src/utils/grpc_proto/generated/admin_account_pb_service.js +++ b/src/utils/grpc_proto/generated/admin_account_pb_service.js @@ -1,4 +1,5 @@ /* eslint-disable */ + // package: admin // file: admin_account.proto diff --git a/src/utils/grpc_proto/generated/auth_pb.js b/src/utils/grpc_proto/generated/auth_pb.js index 3f2dc6b..0101235 100644 --- a/src/utils/grpc_proto/generated/auth_pb.js +++ b/src/utils/grpc_proto/generated/auth_pb.js @@ -1,4 +1,5 @@ /* eslint-disable */ + /** * @fileoverview * @enhanceable diff --git a/src/utils/grpc_proto/generated/auth_pb_service.js b/src/utils/grpc_proto/generated/auth_pb_service.js index 6a925ef..72847b7 100644 --- a/src/utils/grpc_proto/generated/auth_pb_service.js +++ b/src/utils/grpc_proto/generated/auth_pb_service.js @@ -1,4 +1,5 @@ /* eslint-disable */ + // package: authentication // file: auth.proto diff --git a/src/utils/services/ag_grid_server_model.js b/src/utils/services/ag_grid_server_model.js index 29764f5..7538af9 100644 --- a/src/utils/services/ag_grid_server_model.js +++ b/src/utils/services/ag_grid_server_model.js @@ -63,7 +63,7 @@ ServerSideDatasource.prototype.getRows = function (params) { // todo: rework this so it supports email and social providers // note: for now it stays "hardcoded", due to AG-Grid freezing // when you loop through item.authprovidersList items - item.authPhone = item.authprovidersList[0].authenticationtype === 1 ? item.authprovidersList[0].authenticationprovider : 'N/A' + item.authPhone = 'N/A' item.authEmail = 'N/A' item.authFacebook = 'N/A' item.authGoogle = 'N/A' -- GitLab From 311c4ab55954d0cbf1995daccf9379e4bae746a1 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Mon, 3 Dec 2018 18:13:02 +0200 Subject: [PATCH 243/249] NY-5801 --- package.json | 1 + .../contact_info/modal_content/AuthForms.js | 132 +++++++++++++ .../contact_info/modal_content/add_modal.js | 52 ++--- .../modal_content/add_phone_filed.js | 116 +++++++++++ .../modal_content/add_text_fileds.js | 58 ++++++ .../contact_info/modal_content/testStyle.js | 187 ++++++++++++++++++ .../contact_info/svg/ic_world.svg | 3 + .../edit_user/generic_data/index.css | 27 ++- .../personal_info/personal_info.js | 5 +- .../personal_info/svg/ic_calendar.svg | 3 + 10 files changed, 546 insertions(+), 38 deletions(-) create mode 100644 src/components/edit_user/generic_data/contact_info/modal_content/AuthForms.js create mode 100644 src/components/edit_user/generic_data/contact_info/modal_content/add_phone_filed.js create mode 100644 src/components/edit_user/generic_data/contact_info/modal_content/add_text_fileds.js create mode 100644 src/components/edit_user/generic_data/contact_info/modal_content/testStyle.js create mode 100644 src/components/edit_user/generic_data/contact_info/svg/ic_world.svg create mode 100644 src/components/edit_user/generic_data/personal_info/svg/ic_calendar.svg diff --git a/package.json b/package.json index 1921c17..c35c39c 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "react": "^16.5.2", "react-datetime": "^2.16.2", "react-dom": "^16.5.2", + "react-input-mask": "^2.0.4", "react-redux": "^5.0.7", "react-router-dom": "^4.3.1", "react-router-navigation-prompt": "^1.8.0", diff --git a/src/components/edit_user/generic_data/contact_info/modal_content/AuthForms.js b/src/components/edit_user/generic_data/contact_info/modal_content/AuthForms.js new file mode 100644 index 0000000..108d918 --- /dev/null +++ b/src/components/edit_user/generic_data/contact_info/modal_content/AuthForms.js @@ -0,0 +1,132 @@ +/** + * Abstract Styles for all Authentication forms + */ +export default () => ({ + formTitle: { + fontSize: 20, + marginBottom: 30 + }, + + inputContainer: { + display: 'block', + position: 'relative', + '&:before': { + left: 0, + right: 0, + bottom: 0, + height: 1, + content: '""', + position: 'absolute', + transition: 'background-color 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms', + pointerEvents: 'none', + backgroundColor: 'rgba(255, 255, 255, 0.7)' + }, + '&:hover:before': { + height: 2, + backgroundColor: '#fff' + }, + '&:after': { + left: 0, + right: 0, + bottom: 0, + height: 2, + content: '""', + position: 'absolute', + transform: 'scaleX(0)', + transition: 'transform 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms', + pointerEvents: 'none', + backgroundColor: '#c90010' + }, + '&.is-focused:after': { + transform: 'scaleX(1)' + } + }, + inputStyles: { + display: 'block', + width: '100%', + height: 33, + fontSize: 15, + fontFamily: '"noto_sansregular", Arial, Tahoma, sans-serif', + color: '#ffffff', + border: 'none', + background: 'none' + }, + inputInvalidText: { + fontSize: 12, + textAlign: 'left', + marginTop: 5, + color: 'transparent', + '&.show': { + color: '#c90010' + } + }, + buttonStyles: { + height: 40, + margin: '10px auto', + fontSize: 18, + fontFamily: 'noto_sansregular', + textAlign: 'center', + borderRadius: 27, + lineHeight: '40px', + color: '#ffffff', + background: '#c90010', + boxShadow: '0 3px 8px 0 rgba(0, 0, 0, 0.4)', + transition: 'all 0.3s ease-out', + cursor: 'pointer', + '&.disabled': { + opacity: 0.5, + cursor: 'initial' + } + }, + formSubtext: { + color: '#999', + margin: '20px 0', + textAlign: 'left' + }, + otherLoginTypesContainer: { + marginTop: 65 + }, + otherLoginText: { + color: '#aaa', + fontSize: 13, + marginBottom: 20 + }, + otherTypeLoginButton: { + fontSize: 15, + '& .icon': { + marginRight: 5, + fontSize: 18, + position: 'relative', + top: 2 + } + }, + googleLoginButton: { + fontSize: 15, + backgroundColor: 'white', + color: 'rgba(76, 78, 82, 1)', + '& img': { + display: 'inline-block', + margin: '0 5px', + position: 'relative', + top: 4, + width: 18 + } + }, + facebookLoginButton: { + fontSize: 15, + backgroundColor: 'rgba(59, 89, 152, 1)', + width: '100%', + '& .icon': { + marginRight: 5, + fontSize: 18, + position: 'relative', + top: 2 + } + }, + absoluteLoaderWrap: { + position: 'absolute', + top: '50%', + left: '50%', + margin: '-83px 0 0 -35px' + } +}) diff --git a/src/components/edit_user/generic_data/contact_info/modal_content/add_modal.js b/src/components/edit_user/generic_data/contact_info/modal_content/add_modal.js index c401475..2db0e75 100644 --- a/src/components/edit_user/generic_data/contact_info/modal_content/add_modal.js +++ b/src/components/edit_user/generic_data/contact_info/modal_content/add_modal.js @@ -1,15 +1,14 @@ import React, { PureComponent } from 'react' import PropTypes from 'prop-types' +import { formatContactInfo, isInputValid } from 'utils/helpers/common' import { withStyles } from '@material-ui/core/styles' -import Button from '@material-ui/core/Button' -import Grid from '@material-ui/core/Grid' -import TextField from '@material-ui/core/TextField' -import { formatContactInfo, isInputValid } from 'utils/helpers/common' import facebookIcon from '../svg/ic_facebook.svg' import googleIcon from '../svg/ic_google.svg' import twitterIcon from '../svg/ic_twitter.svg' -import emailIcon from '../svg/ic_email.svg' + +import AddModalControlsTextFields from './add_text_fileds' +import AddModalControlsPhoneField from './add_phone_filed' const styles = {} @@ -64,39 +63,24 @@ render () { type !== 'PHONE_CONTACT' ?
-
- - - { type === 'EMAIL_CONTACT' ? email icon : iconContactType } - - - - - -
- -
- - -
+
: type && type !== '' ?
- PHONE -
- - -
+
: null } diff --git a/src/components/edit_user/generic_data/contact_info/modal_content/add_phone_filed.js b/src/components/edit_user/generic_data/contact_info/modal_content/add_phone_filed.js new file mode 100644 index 0000000..5d1de43 --- /dev/null +++ b/src/components/edit_user/generic_data/contact_info/modal_content/add_phone_filed.js @@ -0,0 +1,116 @@ +import React from 'react' +import PropTypes from 'prop-types' +import InputMask from 'react-input-mask' + +import { withStyles } from '@material-ui/core/styles' +import TextField from '@material-ui/core/TextField' +// import Grid from '@material-ui/core/Grid' +import Button from '@material-ui/core/Button' +import InputLabel from '@material-ui/core/InputLabel' +import MenuItem from '@material-ui/core/MenuItem' +import FormControl from '@material-ui/core/FormControl' +import Select from '@material-ui/core/Select' +import countryPhoneIcon from '../svg/ic_world.svg' +import stylesFunc from './testStyle' + +// const styles = { +// } + +const AddModalControlsTextFields = (props) => { + const { classes, handleModalCancel } = props + + console.log('===================================='); + console.log(classes); + console.log('===================================='); + + return ( + +
+ +
+ + + Label + + + + + + + phone icon + Country + handleChange(e, 'selectPhoneLabel')} inputProps={{ - name: 'phoneLabel', + name: 'selectPhoneLabel', id: 'selectPhone-label' }} > @@ -42,16 +41,22 @@ const AddModalControlsTextFields = (props) => { Add Custom - - - + { + addCustomLabel + ? handleChange(e, 'addCustomLabelValue')} + inputProps={{ + maxLength: 32 + }} + margin="normal" + fullWidth + /> + : null + } phone icon Country @@ -66,33 +71,37 @@ const AddModalControlsTextFields = (props) => { /> -
-
- {/* */} +
+
+ phone icon + handleChange(e, 'phoneCodeValue')} + onFocus={setActiveOnFocus('phoneCodeFocus', true)} + onBlur={setActiveOnFocus('phoneCodeFocus', false)} // placeholder={getInputPlaceholderDashesMask(phoneCodeMask)} maskChar="—" />
-
+
+ handleChange(e, 'phoneNumberValue')} + onFocus={setActiveOnFocus('addPhoneFocus', true)} + onBlur={setActiveOnFocus('addPhoneFocus', false)} // placeholder={getInputPlaceholderDashesMask(phoneNumberMask)} maskChar="—" - autoComplete="off" />
@@ -109,16 +118,17 @@ const AddModalControlsTextFields = (props) => { } AddModalControlsTextFields.propTypes = { - // iconContactType: PropTypes.element.isRequired, - // onSave: PropTypes.func.isRequired, - // handleChange: PropTypes.func.isRequired, + phoneNumberValue: PropTypes.string, + phoneCodeValue: PropTypes.string, + selectPhoneLabel: PropTypes.string, handleModalCancel: PropTypes.func.isRequired, - // addContactInfo: PropTypes.string.isRequired, - // isValid: PropTypes.bool.isRequired, - // isUpdated: PropTypes.bool.isRequired, - // label: PropTypes.string.isRequired, + setActiveOnFocus: PropTypes.func.isRequired, + handleChange: PropTypes.func.isRequired, + phoneCodeFocus: PropTypes.bool.isRequired, + addPhoneFocus: PropTypes.bool.isRequired, + addCustomLabel: PropTypes.bool.isRequired, classes: PropTypes.object.isRequired - // type: PropTypes.string.isRequired + } export default [AddModalControlsTextFields] diff --git a/src/components/edit_user/generic_data/contact_info/modal_content/phone_number.style.js b/src/components/edit_user/generic_data/contact_info/modal_content/phone_number.style.js index 7262d85..108707d 100644 --- a/src/components/edit_user/generic_data/contact_info/modal_content/phone_number.style.js +++ b/src/components/edit_user/generic_data/contact_info/modal_content/phone_number.style.js @@ -1,91 +1,68 @@ const addModalPhoneNumber = () => ({ - phoneNumberInputsContainer: { - position: 'relative' - }, - inputContainer: { + inputWrapper: { display: 'block', position: 'relative', '&:before': { + position: 'absolute', + content: '""', + left: 0, right: 0, bottom: 0, - height: 1, - content: '""', - position: 'absolute', + transition: 'background-color 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms', pointerEvents: 'none', - backgroundColor: 'rgba(255, 255, 255, 0.7)' + borderBottom: 'solid 1px rgba(0, 0, 0, 0.42)' }, '&:hover:before': { - height: 2, - backgroundColor: '#fff' + borderBottom: 'solid 2px #0086f8' }, '&:after': { + position: 'absolute', + content: '""', + left: 0, right: 0, bottom: 0, - height: 2, - content: '""', - position: 'absolute', + transform: 'scaleX(0)', transition: 'transform 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms', pointerEvents: 'none', - backgroundColor: '#c90010' + borderBottom: 'solid 2px #0086f8' }, - '&.is-focused:after': { + '&.active:after': { transform: 'scaleX(1)' } }, - phoneIcon: { - display: 'inline-block', - position: 'absolute', - left: 10, - top: 2, - width: 14, - height: 24, - fontSize: 22, - color: 'rgba(255, 255, 255, 0.7)', - '.is-focused &': { - color: '#c90010' - } - }, - inputStyles: { + inputMaskCode: { display: 'block', + width: '100%', height: 33, - fontSize: 15, - fontFamily: '"noto_sansregular", Arial, Tahoma, sans-serif', - color: '#ffffff', + + fontSize: 16, + fontFamily: '"Roboto", "Helvetica", "Arial", sans-serif', border: 'none', background: 'none' }, - phoneCodeInputContainer: { + phoneCodeInputWrapper: { + position: 'relative', display: 'inline-block', width: 109, + + marginTop: 16, marginRight: 16, - paddingLeft: 40 + paddingLeft: 40, + paddingTop: 20 }, - phoneNumberInputContainer: { - padding: '0 24px', - width: 'calc(100% - 125px)', - display: 'inline-block' - }, - countrySelectContainer: { - position: 'relative' - }, - countryIcon: { + phoneNumberInputWrapper: { + position: 'relative', display: 'inline-block', - position: 'absolute', - fontSize: 22, - top: 4, - left: 4, - width: 24, - height: 24, - color: 'rgba(255, 255, 255, 0.7)', - '.is-focused &': { - color: '#c90010' - } + width: 'calc(100% - 125px)', + + marginTop: 16, + padding: '20px 24px 0' } }) diff --git a/src/components/edit_user/generic_data/contact_info/svg/ic_phone_modal.svg b/src/components/edit_user/generic_data/contact_info/svg/ic_phone_modal.svg new file mode 100644 index 0000000..b638188 --- /dev/null +++ b/src/components/edit_user/generic_data/contact_info/svg/ic_phone_modal.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/edit_user/generic_data/index.css b/src/components/edit_user/generic_data/index.css index 1b5be9f..3a15ec2 100644 --- a/src/components/edit_user/generic_data/index.css +++ b/src/components/edit_user/generic_data/index.css @@ -203,7 +203,6 @@ top: 8px; left: 32px; - max-width: 350px; overflow: hidden; @@ -283,7 +282,8 @@ padding-bottom: 5px; } #menu-phoneLabel, -#menu-countryName { +#menu-countryName, +#menu-selectPhoneLabel { z-index: 10000; } .coutry-phone-wrapper { @@ -295,7 +295,8 @@ .country-phone-label { left: 50px; } -.country-phone-icon { +.country-phone-icon, +.add-phone-icon { position: absolute; top: 6px; left: 12px; @@ -303,6 +304,46 @@ filter: invert(50%); } .custom-label > label, -.select-phone-label { +.select-phone-label, +.addPhone-customLabel-control > label { padding-left: 15px; +} +.phone-number-wrapper { + position: relative; +} +.add-phoneCode-label, +.add-phoneNumber-label { + position: absolute; + + top: 0; + padding: 0; + color: rgba(0, 0, 0, 0.54); + + font-size: 1rem; + font-family: "Roboto", "Helvetica", "Arial", sans-serif; + line-height: 1; + + transform: translate(0, 24px) scale(1); + transform-origin: top left; + + transition: color 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms,transform 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms; +} +.add-phoneCode-label { + left: 42px; +} +.add-phoneNumber-label { + left: 24px; +} + +.add-phoneCode-label.active, +.add-phoneNumber-label.active { + transform: translate(0, 1.5px) scale(0.75); + color: #303f9f; +} +.add-phoneCode-label.clear-label, +.add-phoneNumber-label.clear-label { +} +.select-phoneLabel-wrapper > div, +.addPhone-customLabel-control > div { + padding-left: 10px; } \ No newline at end of file diff --git a/src/components/edit_user/generic_data/index.js b/src/components/edit_user/generic_data/index.js index ccdf7cf..abef155 100644 --- a/src/components/edit_user/generic_data/index.js +++ b/src/components/edit_user/generic_data/index.js @@ -50,7 +50,9 @@ class genericUserData extends Component { value: '', type: '' }, - activeFocusElement: false + phoneCodeFocus: false, + addPhoneFocus: false, + birthDayFocus: false } } @@ -59,6 +61,8 @@ class genericUserData extends Component { avatar: PropTypes.any, classes: PropTypes.object.isRequired, changed: PropTypes.func.isRequired, + push: PropTypes.func.isRequired, + deleteProfileRedirect: PropTypes.bool.isRequired, deleteAccount: PropTypes.func.isRequired } @@ -68,9 +72,7 @@ class genericUserData extends Component { } } - setActive = (state) => { - this.setState({ activeFocusElement: state }) - } + handleInputFocus = (stateProp, value) => () => this.setState({ [stateProp]: value }) detectChange = () => { let { user } = this.props @@ -246,20 +248,9 @@ class genericUserData extends Component { } render () { - /** - * @const {Object} user - * @const {Object} classes - * @const {Func} handleDeleteContactModal - * @const {Func} handleEditContact - * @const {Func} handleDeleteProfile - * @const {Any} avatar - * @const {Object} contactInfo - * @const {String} accessStatus - * @const {Object} personalInfo - */ const { user, classes } = this.props - const { avatar, contactInfo, accessStatus, personalInfo, modalState, activeFocusElement } = this.state + const { avatar, contactInfo, accessStatus, personalInfo, modalState, phoneCodeFocus, addPhoneFocus, birthDayFocus } = this.state return ( @@ -294,9 +285,9 @@ class genericUserData extends Component { username: this.props.user.username, birthday: this.props.user.birthday }} - activeFocusElement={activeFocusElement} + birthDayFocus={birthDayFocus} onChangeInfo={e => this.handleChange(e, 'personalInfo')} - setActive={this.setActive} + setActiveOnFocus={this.handleInputFocus} /> @@ -355,6 +346,9 @@ class genericUserData extends Component { handleModalCancel={this.handleAddContactModal} onSave={this.handleAddModalSave} type={modalState.type} + setActiveOnFocus={this.handleInputFocus} + phoneCodeFocus={phoneCodeFocus} + addPhoneFocus={addPhoneFocus} /> : null diff --git a/src/components/edit_user/generic_data/personal_info/personal_info.js b/src/components/edit_user/generic_data/personal_info/personal_info.js index 7643a9c..7e2c4c8 100644 --- a/src/components/edit_user/generic_data/personal_info/personal_info.js +++ b/src/components/edit_user/generic_data/personal_info/personal_info.js @@ -29,7 +29,7 @@ const PersonalInfo = (props) => { * @const {Func} onChangeInfo */ - const { personalInfo, initialInfo, classes, onChangeInfo, setActive, activeFocusElement } = props + const { personalInfo, initialInfo, classes, onChangeInfo, setActiveOnFocus, birthDayFocus } = props return ( @@ -80,7 +80,7 @@ const PersonalInfo = (props) => {
Edited - +
{/* */} @@ -94,8 +94,8 @@ const PersonalInfo = (props) => { timeFormat={false} value={formatDate(personalInfo.birthday)} onChange={onChangeInfo} - onFocus={() => setActive(true)} - onBlur={() => setActive(false)} + onFocus={setActiveOnFocus('birthDayFocus', true)} + onBlur={setActiveOnFocus('birthDayFocus', false)} />
@@ -110,8 +110,8 @@ PersonalInfo.propTypes = { initialInfo: PropTypes.object.isRequired, classes: PropTypes.object.isRequired, onChangeInfo: PropTypes.func.isRequired, - setActive: PropTypes.func.isRequired, - activeFocusElement: PropTypes.bool.isRequired + setActiveOnFocus: PropTypes.func.isRequired, + birthDayFocus: PropTypes.bool.isRequired } export default withStyles(styles)(PersonalInfo) diff --git a/src/components/edit_user/tabs_navigation/index.js b/src/components/edit_user/tabs_navigation/index.js index 9c967aa..deb9386 100644 --- a/src/components/edit_user/tabs_navigation/index.js +++ b/src/components/edit_user/tabs_navigation/index.js @@ -124,7 +124,7 @@ class TabsNavigation extends Component { key: new Date().getTime() }) - this.setState({ loginOptions: newLoginOptions }) + this.setState({ loginOptions: newLoginOptions }, this.detectChange) this.handleAddLoginOptionsModal() } diff --git a/src/components/edit_user/tabs_navigation/login_options/type_controls/type_control_phone.js b/src/components/edit_user/tabs_navigation/login_options/type_controls/type_control_phone.js index 8ef0441..6871a1a 100644 --- a/src/components/edit_user/tabs_navigation/login_options/type_controls/type_control_phone.js +++ b/src/components/edit_user/tabs_navigation/login_options/type_controls/type_control_phone.js @@ -17,7 +17,6 @@ const TypeControlPhone = (props) => { return ( - {info.label} { - console.log(data); + console.log(data) data[0].accountdetailsList.map((item, index) => { // convert Access Status int to string from protobuf item.accessstatus = item.accessstatus === undefined || item.accessstatus === 0 ? accountStatusVariations[1] : accountStatusVariations[item.accessstatus] @@ -63,8 +63,8 @@ ServerSideDatasource.prototype.getRows = function (params) { // todo: rework this so it supports email and social providers // note: for now it stays "hardcoded", due to AG-Grid freezing // when you loop through item.authprovidersList items - item.authPhone = 'N/A' - item.authEmail = 'N/A' + item.authPhone = item.loginoptions.phonesList.length ? item.loginoptions.phonesList[0].authenticationprovider : 'N/A' + item.authEmail = item.loginoptions.emailsList.length ? item.loginoptions.emailsList[0].authenticationprovider : 'N/A' item.authFacebook = 'N/A' item.authGoogle = 'N/A' -- GitLab From 75a72c51f41ddb50992c4dce4d92695c324ae4bb Mon Sep 17 00:00:00 2001 From: Vasil Nikolov Date: Tue, 4 Dec 2018 18:34:19 +0200 Subject: [PATCH 246/249] first name filter --- src/utils/grpc_proto/admin_account.proto | 31 ++++++++++++++----- .../generated/admin_account_pb_service.js | 1 - src/utils/services/admin_account.js | 18 ++++++++--- src/utils/services/ag_grid_server_model.js | 6 +--- 4 files changed, 38 insertions(+), 18 deletions(-) diff --git a/src/utils/grpc_proto/admin_account.proto b/src/utils/grpc_proto/admin_account.proto index a5434bd..a6a6310 100644 --- a/src/utils/grpc_proto/admin_account.proto +++ b/src/utils/grpc_proto/admin_account.proto @@ -29,11 +29,18 @@ message FilterModel { NOTEQUAL = 4; STARTSWITH = 5; ENDSWITH = 6; + BEFORE_OR_EQUAL = 7; + AFTER_OR_EQUAL = 8; + WITHIN_A_DATE_RANGE = 9; + OUTSIDE_A_DATE_RANGE = 10; + WITHIN_A_TIME_RANGE = 11; + OUTSIDE_A_TIME_RANGE = 12; } - string colId = 1; - FilterType filterType = 2; - string filterValue = 3; + string colId = 1; // column to be searched (username, firstName etc, the same column name as they are received in getAllAccounts) + FilterType filterType = 2; // FilterType value + string filterValue = 3; // the value to be searched by string valueType = 4; // text + string additionalFilterValue = 5; } message AccountsCount { @@ -44,15 +51,22 @@ message EmptyRequest { } message GetAllAccountsRequest { - int32 startRow = 1; - int32 endRow =2; - repeated FilterModel filterModel = 3; + int32 startRow = 1; // ag-grid startRow attribute + int32 endRow =2; // ag-grid endRow attribute + repeated FilterModel filterModel = 3; // FilterModel is used to filter all accounts by specified attributes, allows multiple filterModels to be added +} + +// LoginOptions (AuthProviders) +message LoginOptions { + repeated account.AuthProviderDetails emails = 1; // Email login options + repeated account.AuthProviderDetails phones = 2; // Phone login options + account.AuthProviderDetails google = 3; // Google login option if exists + account.AuthProviderDetails facebook = 4; // Facebook login option if exists } message AccountDetails { string accountId = 1; string profileId = 2; - repeated account.AuthProviderDetails authProviders = 3; string avatar = 4; string accountMark = 5; string accountName = 6; @@ -66,6 +80,7 @@ message AccountDetails { account.Date birthday = 14; int64 creationTimestamp = 15; // Creation timestamp is set when account is created. int64 lastUpdateTimestamp = 16; // Update timestamp is '0' if account is never updated. + LoginOptions loginOptions = 17; // LoginOptions (AuthProviders) - containing emails/phones/social logins } message AccountAdminResponse { @@ -91,4 +106,4 @@ message CreateAccountRequest { repeated account.Role roles = 9; account.AccessStatus accessStatus = 10; string qrCode = 11; -} \ No newline at end of file +} diff --git a/src/utils/grpc_proto/generated/admin_account_pb_service.js b/src/utils/grpc_proto/generated/admin_account_pb_service.js index 8fbfe9c..86cf488 100644 --- a/src/utils/grpc_proto/generated/admin_account_pb_service.js +++ b/src/utils/grpc_proto/generated/admin_account_pb_service.js @@ -1,5 +1,4 @@ /* eslint-disable */ - // package: admin // file: admin_account.proto diff --git a/src/utils/services/admin_account.js b/src/utils/services/admin_account.js index e6de59b..915df68 100644 --- a/src/utils/services/admin_account.js +++ b/src/utils/services/admin_account.js @@ -1,5 +1,5 @@ import { AdminAccountServiceClient } from './../grpc_proto/generated/admin_account_pb_service' -import { GetAllAccountsRequest, EmptyRequest } from './../grpc_proto/generated/admin_account_pb' +import { GetAllAccountsRequest, EmptyRequest, FilterModel } from './../grpc_proto/generated/admin_account_pb' const endpoint = 'https://account.dev-eu.nynja.net:443' @@ -7,17 +7,27 @@ let getAllAccountsRequest = new GetAllAccountsRequest() let adminAccountServiceClient = new AdminAccountServiceClient(endpoint) -export function getAllAccountsGrpcRequest (startRow, endRow) { +export function getAllAccountsGrpcRequest (startRow, endRow, filter) { getAllAccountsRequest.setStartrow(startRow) getAllAccountsRequest.setEndrow(endRow) + if (filter.firstname) { + let filterModel = new FilterModel() + + filterModel.setColid('firstname') + filterModel.setFiltertype(FilterModel.FilterType.EQUALS) + filterModel.setFiltervalue(filter.firstname.filter.charAt(0).toUpperCase() + filter.firstname.filter.slice(1)) + filterModel.setValuetype('text') + + getAllAccountsRequest.addFiltermodel(filterModel) + } return new Promise((resolve, reject) => { - adminAccountServiceClient.getAllAccounts(getAllAccountsRequest, { 'Content-type': 'application/grpc-web+proto' }, (error, response) => { + adminAccountServiceClient.getAllAccounts(getAllAccountsRequest, {'Content-type': 'application/grpc-web+proto'}, (error, response) => { if (response) { if (response.accountsresponse) { resolve(response.accountsresponse) } else { - reject({ errorMessage: 'Unknown error' }) + reject({errorMessage: 'Unknown error'}) } } if (error) { diff --git a/src/utils/services/ag_grid_server_model.js b/src/utils/services/ag_grid_server_model.js index 7538af9..2df350c 100644 --- a/src/utils/services/ag_grid_server_model.js +++ b/src/utils/services/ag_grid_server_model.js @@ -9,11 +9,8 @@ function ServerSideDatasource () {} * this one comes from ag-grid API */ ServerSideDatasource.prototype.getRows = function (params) { - console.log('ServerSideDatasource.getRows: params = ', params) - // the request is passed dynamically from ag-grid let request = params.request - console.log('request', request) let startRow = params.request.startRow === 0 ? 1 : params.request.startRow let endRow = params.request.endRow @@ -29,11 +26,10 @@ ServerSideDatasource.prototype.getRows = function (params) { // this.fakeServer.getUsersData(successCallback, request); // console.log("request", request) - let getUsersDataPromise = getAllAccountsGrpcRequest(startRow, endRow) + let getUsersDataPromise = getAllAccountsGrpcRequest(startRow, endRow, request.filterModel) let getCountOfAllAccountsPromise = getCountOfAllAccountsGrpcRequest() Promise.all([getUsersDataPromise, getCountOfAllAccountsPromise]).then((data) => { - console.log(data); data[0].accountdetailsList.map((item, index) => { // convert Access Status int to string from protobuf item.accessstatus = item.accessstatus === undefined || item.accessstatus === 0 ? accountStatusVariations[1] : accountStatusVariations[item.accessstatus] -- GitLab From 42baf42893212b8f6aefffd04d26eb5516310120 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Wed, 5 Dec 2018 13:21:58 +0200 Subject: [PATCH 247/249] Add Phone Country --- .../contact_info/modal_content/add_modal.js | 121 +- .../modal_content/add_phone_filed.js | 36 +- .../modal_content/add_text_fileds.js | 12 +- .../edit_user/generic_data/index.css | 7 +- .../edit_user/internation_phone_codes.js | 1924 +++++++++++++++++ 5 files changed, 2034 insertions(+), 66 deletions(-) create mode 100644 src/components/edit_user/internation_phone_codes.js diff --git a/src/components/edit_user/generic_data/contact_info/modal_content/add_modal.js b/src/components/edit_user/generic_data/contact_info/modal_content/add_modal.js index c6a596c..1887706 100644 --- a/src/components/edit_user/generic_data/contact_info/modal_content/add_modal.js +++ b/src/components/edit_user/generic_data/contact_info/modal_content/add_modal.js @@ -6,6 +6,7 @@ import { withStyles } from '@material-ui/core/styles' import facebookIcon from '../svg/ic_facebook.svg' import googleIcon from '../svg/ic_google.svg' import twitterIcon from '../svg/ic_twitter.svg' +import internationPhoneCodes from '../../../internation_phone_codes' import AddModalControlsTextFields from './add_text_fileds' import AddModalControlsPhoneField from './add_phone_filed' @@ -17,12 +18,15 @@ class ContactInfoAddModal extends PureComponent { super(props) this.state = { - addContactInfo: '', - isUpdated: false, + addModalTextFields: '', phoneCodeValue: '', phoneNumberValue: '', selectPhoneLabel: '', addCustomLabelValue: '', + maskPhoneCode: '+9999', + maskPhoneNumber: '99999999', + phoneCountryValue: '', + isUpdated: false, addCustomLabel: false } } @@ -37,9 +41,11 @@ class ContactInfoAddModal extends PureComponent { } handleChange = (e, type) => { + let oldValue = '' + switch (type) { case 'phoneCodeValue': - this.setState({ [type]: e.target.value }) + this.setState({ [type]: e.target.value, formatPhoneCode: '+9999' }) break case 'phoneNumberValue': @@ -59,42 +65,49 @@ class ContactInfoAddModal extends PureComponent { this.setState({ [type]: e.target.value }) break - default: + case 'phoneCountryValue': this.setState({ [type]: e.target.value }) break - } - } -handleChangeTextFields = (e) => { - let newCurrentUser = { ...this.state.addContactInfo } - let oldValue = '' + case 'addModalTextFields': + let newCurrentUser = { ...this.state.addModalTextFields } + newCurrentUser[e.target.name] = e.target.value - newCurrentUser[e.target.name] = e.target.value + if (e.target.value !== oldValue) { + this.setState({ [type]: e.target.value, isUpdated: true }) + } else { + this.setState({ [type]: e.target.value, isUpdated: false }) + } + break - if (e.target.value !== oldValue) { - this.setState({ addContactInfo: e.target.value, isUpdated: true }) - } else { - this.setState({ addContactInfo: e.target.value, isUpdated: false }) + default: + this.setState({ [type]: e.target.value }) + break + } } -} -render () { - const { type, handleModalCancel, onSave, setActiveOnFocus, addPhoneFocus, phoneCodeFocus } = this.props - const { addContactInfo, isUpdated, phoneCodeValue, selectPhoneLabel, addCustomLabel, addCustomLabelValue } = this.state + render () { + const { type, handleModalCancel, onSave, setActiveOnFocus, addPhoneFocus, phoneCodeFocus } = this.props + const { addModalTextFields, isUpdated, phoneCodeValue, selectPhoneLabel, addCustomLabel, addCustomLabelValue, + maskPhoneCode, maskPhoneNumber, phoneCountryValue } = this.state - console.log('====================================') - console.log(this.state) - console.log('====================================') + console.log('====================================') + console.log(this.state) + console.log('====================================') - let label = formatContactInfo(type) - let iconContactType = null - let isValid = isInputValid(addContactInfo, type) + let phoneCoutryNames = internationPhoneCodes.map((coutryName) => { + return coutryName.label + }) - type === 'FACEBOOK_CONTACT' - ? iconContactType = {type} - : type === 'GOOGLEPLUS_CONTACT' - ? iconContactType = googleplus icon - : iconContactType = twitter icon + let label = formatContactInfo(type) + let iconContactType = null + let isValid = isInputValid(addModalTextFields, type) + + type === 'FACEBOOK_CONTACT' + ? iconContactType = {type} + : type === 'GOOGLEPLUS_CONTACT' + ? iconContactType = googleplus icon + : iconContactType = twitter icon return (
@@ -103,38 +116,42 @@ render () { type !== 'PHONE_CONTACT' ?
- +
: type && type !== '' ?
- +
: null }
) -} + } } export default withStyles(styles)(ContactInfoAddModal) diff --git a/src/components/edit_user/generic_data/contact_info/modal_content/add_phone_filed.js b/src/components/edit_user/generic_data/contact_info/modal_content/add_phone_filed.js index 782426e..f67e6a8 100644 --- a/src/components/edit_user/generic_data/contact_info/modal_content/add_phone_filed.js +++ b/src/components/edit_user/generic_data/contact_info/modal_content/add_phone_filed.js @@ -14,9 +14,23 @@ import countryPhoneIcon from '../svg/ic_world.svg' import phoneIcon from '../svg/ic_phone_modal.svg' import stylesPhone from './phone_number.style' +const ITEM_HEIGHT = 48 +const ITEM_PADDING_TOP = 8 + +const MenuProps = { + PaperProps: { + style: { + maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP, + width: 250 + } + } +} + +const styles = theme => ({}) + const AddModalControlsTextFields = (props) => { - const { classes, handleChange, handleModalCancel, setActiveOnFocus, phoneCodeFocus, - addPhoneFocus, phoneCodeValue, phoneNumberValue, selectPhoneLabel, addCustomLabel, addCustomLabelValue } = props + const { classes, handleChange, handleModalCancel, setActiveOnFocus, phoneCodeFocus, addPhoneFocus, phoneCodeValue, phoneNumberValue, selectPhoneLabel, + addCustomLabel, addCustomLabelValue, maskPhoneNumber, maskPhoneCode, phoneCoutryNames, phoneCountryValue } = props return ( @@ -62,13 +76,19 @@ const AddModalControlsTextFields = (props) => { Country
@@ -80,7 +100,7 @@ const AddModalControlsTextFields = (props) => { autoComplete="off" className={`${classes.inputMaskCode} ${classes.phoneCodeInput}`} value={phoneCodeValue} - mask='+9999' + mask={maskPhoneCode} onChange={e => handleChange(e, 'phoneCodeValue')} onFocus={setActiveOnFocus('phoneCodeFocus', true)} onBlur={setActiveOnFocus('phoneCodeFocus', false)} @@ -96,7 +116,7 @@ const AddModalControlsTextFields = (props) => { autoComplete="off" className={classes.inputMaskCode} value={phoneNumberValue} - mask='99999999' + mask={maskPhoneNumber} onChange={e => handleChange(e, 'phoneNumberValue')} onFocus={setActiveOnFocus('addPhoneFocus', true)} onBlur={setActiveOnFocus('addPhoneFocus', false)} @@ -118,9 +138,11 @@ const AddModalControlsTextFields = (props) => { } AddModalControlsTextFields.propTypes = { + phoneCoutryNames: PropTypes.array.isRequired, phoneNumberValue: PropTypes.string, phoneCodeValue: PropTypes.string, selectPhoneLabel: PropTypes.string, + addCustomLabelValue: PropTypes.string, handleModalCancel: PropTypes.func.isRequired, setActiveOnFocus: PropTypes.func.isRequired, handleChange: PropTypes.func.isRequired, diff --git a/src/components/edit_user/generic_data/contact_info/modal_content/add_text_fileds.js b/src/components/edit_user/generic_data/contact_info/modal_content/add_text_fileds.js index b274954..41ee1c8 100644 --- a/src/components/edit_user/generic_data/contact_info/modal_content/add_text_fileds.js +++ b/src/components/edit_user/generic_data/contact_info/modal_content/add_text_fileds.js @@ -10,7 +10,7 @@ import emailIcon from '../svg/ic_email.svg' const styles = {} const AddModalControlsTextFields = (props) => { - const { classes, iconContactType, type, isValid, label, addContactInfo, handleChange, handleModalCancel, onSave, isUpdated } = props + const { classes, iconContactType, type, isValid, label, addModalTextFields, handleChange, handleModalCancel, onSave, isUpdated } = props return ( @@ -24,9 +24,9 @@ const AddModalControlsTextFields = (props) => { className={!isValid ? 'invalid' : null} label={label} id="profileAdd-contact" - name="addContactInfo" - value={addContactInfo} - onChange={handleChange} + name="addModalTextFields" + value={addModalTextFields} + onChange={e => handleChange(e, 'addModalTextFields')} error={!isValid} fullWidth /> @@ -35,7 +35,7 @@ const AddModalControlsTextFields = (props) => {
- +
@@ -47,7 +47,7 @@ AddModalControlsTextFields.propTypes = { onSave: PropTypes.func.isRequired, handleChange: PropTypes.func.isRequired, handleModalCancel: PropTypes.func.isRequired, - addContactInfo: PropTypes.string.isRequired, + addModalTextFields: PropTypes.string.isRequired, isValid: PropTypes.bool.isRequired, isUpdated: PropTypes.bool.isRequired, label: PropTypes.string.isRequired, diff --git a/src/components/edit_user/generic_data/index.css b/src/components/edit_user/generic_data/index.css index 3a15ec2..9a540ac 100644 --- a/src/components/edit_user/generic_data/index.css +++ b/src/components/edit_user/generic_data/index.css @@ -34,7 +34,9 @@ .contact-info-controls button { padding: 0; } - +.personal-info { + position: relative; +} .contact-info-controls button:hover { background-color: transparent; } @@ -286,6 +288,9 @@ #menu-selectPhoneLabel { z-index: 10000; } +#menu-countryName > div { + transform: scale(1, 1) translateZ(0px)!important; +} .coutry-phone-wrapper { position: relative; } diff --git a/src/components/edit_user/internation_phone_codes.js b/src/components/edit_user/internation_phone_codes.js new file mode 100644 index 0000000..31f66f4 --- /dev/null +++ b/src/components/edit_user/internation_phone_codes.js @@ -0,0 +1,1924 @@ +const CountryPhoneCodes = [ + { + value: { + code: '93', + mask: '999 999 999' + }, + label: 'AFGHANISTAN (AF)', + countryCode: 'AF' + }, + { + value: { + code: '355', + mask: '99 999 9999' + }, + label: 'ALBANIA (AL)', + countryCode: 'AL' + }, + { + value: { + code: '213', + mask: '999 99 99 99' + }, + label: 'ALGERIA (DZ)', + countryCode: 'DZ' + }, + { + value: { + code: '1684', + mask: '999 9999' + }, + label: 'AMERICAN SAMOA (AS)', + countryCode: 'AS' + }, + { + value: { + code: '376', + mask: '99 99 99' + }, + label: 'ANDORRA (AD)', + countryCode: 'AD' + }, + { + value: { + code: '244', + mask: '999 999 999' + }, + label: 'ANGOLA (AO)', + countryCode: 'AO' + }, + { + value: { + code: '1264', + mask: '999 9999' + }, + label: 'ANGUILLA (AI)', + countryCode: 'AI' + }, + { + value: { + code: '1268', + mask: '999 9999' + }, + label: 'ANTIGUA & BARBUDA (AG)', + countryCode: 'AG' + }, + { + value: { + code: '54', + mask: '99999' + }, + label: 'ARGENTINA (AR)', + countryCode: 'AR' + }, + { + value: { + code: '374', + mask: '99 999 999' + }, + label: 'ARMENIA (AM)', + countryCode: 'AM' + }, + { + value: { + code: '297', + mask: '999 9999' + }, + label: 'ARUBA (AW)', + countryCode: 'AW' + }, + { + value: { + code: '247', + mask: '999 9999' + }, + label: 'ASCENSION ISLAND (AC)', + countryCode: 'AC' + }, + { + value: { + code: '61', + mask: '999 999 999' + }, + label: 'AUSTRALIA (AU)', + countryCode: 'AU' + }, + { + value: { + code: '672', + mask: '999 9999' + }, + label: 'AUSTRALIAN EXTERNAL TERITORIES (AQ)', + countryCode: 'AQ' + }, + { + value: { + code: '43', + mask: '999 999999' + }, + label: 'AUSTRIA (AT)', + countryCode: 'AT' + }, + { + value: { + code: '994', + mask: '99 999 9999' + }, + label: 'AZERBAIJAN (AZ)', + countryCode: 'AZ' + }, + { + value: { + code: '1242', + mask: '999 9999' + }, + label: 'BAHAMAS (BS)', + countryCode: 'BS' + }, + { + value: { + code: '973', + mask: '9999 9999' + }, + label: 'BAHRAIN (BH)', + countryCode: 'BH' + }, + { + value: { + code: '880', + mask: '999 999 999' + }, + label: 'BANGLADESH (BD)', + countryCode: 'BD' + }, + { + value: { + code: '1246', + mask: '999 9999' + }, + label: 'BARBADOS (BB)', + countryCode: 'BB' + }, + { + value: { + code: '375', + mask: '99 999 9999' + }, + label: 'BELARUS (BY)', + countryCode: 'BY' + }, + { + value: { + code: '32', + mask: '999 99 99 99' + }, + label: 'BELGIUM (BE)', + countryCode: 'BE' + }, + { + value: { + code: '501', + mask: '9 999 9999' + }, + label: 'BELIZE (BZ)', + countryCode: 'BZ' + }, + { + value: { + code: '229', + mask: '99 999 999' + }, + label: 'BENIN (BJ)', + countryCode: 'BJ' + }, + { + value: { + code: '1441', + mask: '999 9999' + }, + label: 'BERMUDA (BM)', + countryCode: 'BM' + }, + { + value: { + code: '975', + mask: '99 999 999' + }, + label: 'BHUTAN (BT)', + countryCode: 'BT' + }, + { + value: { + code: '591', + mask: '9 999 9999' + }, + label: 'BOLIVIA (BO)', + countryCode: 'BO' + }, + { + value: { + code: '599', + mask: '7 999 9999' + }, + label: 'BONAIRE (BQ-BO)', + countryCode: 'BQ-BO' + }, + { + value: { + code: '387', + mask: '99 999 999' + }, + label: 'BOSNIA & HERZEGOVINA (BA)', + countryCode: 'BA' + }, + { + value: { + code: '267', + mask: '99 999 999' + }, + label: 'BOTSWANA (BW)', + countryCode: 'BW' + }, + { + value: { + code: '55', + mask: '99 99999 9999' + }, + label: 'BRAZIL (BR)', + countryCode: 'BR' + }, + { + value: { + code: '1284', + mask: '999 9999' + }, + label: 'BRITISH VIRGIN ISLANDS (VG)', + countryCode: 'VG' + }, + { + value: { + code: '673', + mask: '999 9999' + }, + label: 'BRUNEI DARUSSALAM (BN)', + countryCode: 'BN' + }, + { + value: { + code: '359', + mask: '999 999 999' + }, + label: 'BULGARIA (BG)', + countryCode: 'BG' + }, + { + value: { + code: '226', + mask: '99 99 99 99' + }, + label: 'BURKINA FASO (BF)', + countryCode: 'BF' + }, + { + value: { + code: '257', + mask: '99 99 9999' + }, + label: 'BURUNDI (BI)', + countryCode: 'BI' + }, + { + value: { + code: '855', + mask: '99 99 999 999' + }, + label: 'CAMBODIA (KH)', + countryCode: 'KH' + }, + { + value: { + code: '237', + mask: '9999 9999' + }, + label: 'CAMEROON (CM)', + countryCode: 'CM' + }, + { + value: { + code: '1', + mask: '999 999 9999' + }, + label: 'CANADA (CA)', + countryCode: 'CA' + }, + { + value: { + code: '238', + mask: '999 9999' + }, + label: 'CAPE VERDE LC', + countryCode: 'LC' + }, + { + value: { + code: '1345', + mask: '999 9999' + }, + label: 'CAYMAN ISLANDS (KY)', + countryCode: 'KY' + }, + { + value: { + code: '236', + mask: '99 99 99 99' + }, + label: 'CENTRAL AFRICAN REP. (CF)', + countryCode: 'CF' + }, + { + value: { + code: '235', + mask: '99 99 99 99' + }, + label: 'CHAD (TD)', + countryCode: 'TD' + }, + { + value: { + code: '56', + mask: '9 9999 9999' + }, + label: 'CHILE (CL)', + countryCode: 'CL' + }, + { + value: { + code: '86', + mask: '999 9999 9999' + }, + label: 'CHINA (CN)', + countryCode: 'CN' + }, + { + value: { + code: '57', + mask: '999 999 9999' + }, + label: 'COLOMBIA (CO)', + countryCode: 'CO' + }, + { + value: { + code: '269', + mask: '999 9999' + }, + label: 'COMOROS (KM)', + countryCode: 'KM' + }, + { + value: { + code: '243', + mask: '99 999 9999' + }, + label: 'CONGO (DEM. REP.) (CD)', + countryCode: 'CD' + }, + { + value: { + code: '242', + mask: '99 999 9999' + }, + label: 'CONGO (REP.) (CG)', + countryCode: 'CG' + }, + { + value: { + code: '682', + mask: '9 999 9999' + }, + label: 'COOK ISLANDS (CK)', + countryCode: 'CK' + }, + { + value: { + code: '506', + mask: '9999 9999' + }, + label: 'COSTA RICA (CR)', + countryCode: 'CR' + }, + { + value: { + code: '385', + mask: '999 999 9999' + }, + label: 'CROATIA (HR)', + countryCode: 'HR' + }, + { + value: { + code: '53', + mask: '9999 9999' + }, + label: 'CUBA (CU)', + countryCode: 'CU' + }, + { + value: { + code: '599', + mask: '9 999 9999' + }, + label: 'CURAÇAO (CW)', + countryCode: 'CW' + }, + { + value: { + code: '357', + mask: '9999 9999' + }, + label: 'CYPRUS (CY)', + countryCode: 'CY' + }, + { + value: { + code: '420', + mask: '999 999 999' + }, + label: 'CZECH REPUBLIC (CZ)', + countryCode: 'CZ' + }, + { + value: { + code: '225', + mask: '99 999 999' + }, + label: 'CÔTE D`IVOIRE (CI)', + countryCode: 'CI' + }, + { + value: { + code: '45', + mask: '9999 9999' + }, + label: 'DENMARK (DK)', + countryCode: 'DK' + }, + { + value: { + code: '246', + mask: '999 9999' + }, + label: 'DIEGO GARCIA (IO)', + countryCode: 'IO' + }, + { + value: { + code: '253', + mask: '99 99 99 99' + }, + label: 'DJIBOUTI (DJ)', + countryCode: 'DJ' + }, + { + value: { + code: '1767', + mask: '999 9999' + }, + label: 'DOMINICA (DM)', + countBulgariaryCode: 'DM' + }, + { + value: { + code: '1', + mask: '999 999 9999' + }, + label: 'DOMINICAN REP. (DO)', + countryCode: 'DO' + }, + { + value: { + code: '593', + mask: '99 999 9999' + }, + label: 'ECUADOR (EC)', + countryCode: 'EC' + }, + { + value: { + code: '20', + mask: '99 9999 9999' + }, + label: 'EGYPT (EG)', + countryCode: 'EG' + }, + { + value: { + code: '503', + mask: '9999 9999' + }, + label: 'EL SALVADOR (SV)', + countryCode: 'SV' + }, + { + value: { + code: '240', + mask: '999 999 999' + }, + label: 'EQUATORIAL GUINEA (GQ)', + countryCode: 'GQ' + }, + { + value: { + code: '291', + mask: '9 999 999' + }, + label: 'ERITREA (ER)', + countryCode: 'ER' + }, + { + value: { + code: '372', + mask: '9999 9999' + }, + label: 'ESTONIA (EE)', + countryCode: 'EE' + }, + { + value: { + code: '251', + mask: '99 999 9999' + }, + label: 'ETHIOPIA (ET)', + countryCode: 'ET' + }, + { + value: { + code: '500', + mask: '9 999 9999' + }, + label: 'FALKLAND ISLANDS (FK)', + countryCode: 'FK' + }, + { + value: { + code: '298', + mask: '999 999' + }, + label: 'FAROE ISLANDS (FO)', + countryCode: 'FO' + }, + { + value: { + code: '679', + mask: '9 999 9999' + }, + label: 'FIJI (FJ)', + countryCode: 'FJ' + }, + { + value: { + code: '358', + mask: '99 9999999' + }, + label: 'FINLAND (FI)', + countryCode: 'FI' + }, + { + value: { + code: '33', + mask: '9 99 99 99 99' + }, + label: 'FRANCE (FR)', + countryCode: 'FR' + }, + { + value: { + code: '594', + mask: '999 999 999' + }, + label: 'FRENCH GUIANA (GF)', + countryCode: 'GF' + }, + { + value: { + code: '689', + mask: '9 999 9999' + }, + label: 'FRENCH POLYNESIA (PF)', + countryCode: 'PF' + }, + { + value: { + code: '241', + mask: '9 99 99 99' + }, + label: 'GABON (GA)', + countryCode: 'GA' + }, + { + value: { + code: '220', + mask: '999 9999' + }, + label: 'GAMBIA (GM)', + countryCode: 'GM' + }, + { + value: { + code: '995', + mask: '999 999 999' + }, + label: 'GEORGIA (GE)', + countryCode: 'GE' + }, + { + value: { + code: '49', + mask: '9999 9999999' + }, + label: 'GERMANY (DE)', + countryCode: 'DE' + }, + { + value: { + code: '233', + mask: '99 999 999' + }, + label: 'GHANA (GH)', + countryCode: 'GH' + }, + { + value: { + code: '350', + mask: '9999 9999' + }, + label: 'GIBRALTAR (GI)', + countryCode: 'GI' + }, + { + value: { + code: '30', + mask: '999 999 9999' + }, + label: 'GREECE (GR)', + countryCode: 'GR' + }, + { + value: { + code: '299', + mask: '999 999' + }, + label: 'GREENLAND (GL)', + countryCode: 'GL' + }, + { + value: { + code: '1473', + mask: '999 9999' + }, + label: 'GRENADA (GD)', + countryCode: 'GD' + }, + { + value: { + code: '1473', + mask: '999 9999' + }, + label: 'GRENADA (GD)', + countryCode: 'GD' + }, + { + value: { + code: '590', + mask: '999 99 99 99' + }, + label: 'GUADELOUPE (GP)', + countryCode: 'GP' + }, + { + value: { + code: '1671', + mask: '999 9999' + }, + label: 'GUAM (GU)', + countryCode: 'GU' + }, + { + value: { + code: '502', + mask: '9 999 9999' + }, + label: 'GUATEMALA (GT)', + countryCode: 'GT' + }, + { + value: { + code: '224', + mask: '999 999 999' + }, + label: 'GUINEA (GN)', + countryCode: 'GN' + }, + { + value: { + code: '245', + mask: '999 9999' + }, + label: 'GUINEA-BISSAU (GW)', + countryCode: 'GW' + }, + { + value: { + code: '592', + mask: '99 999 9999' + }, + label: 'GUYANA (GY)', + countryCode: 'GY' + }, + { + value: { + code: '509', + mask: '999 99 99 99' + }, + label: 'HAITI (HT)', + countryCode: 'HT' + }, + { + value: { + code: '504', + mask: '9999 9999' + }, + label: 'HONDURAS (HN)', + countryCode: 'HN' + }, + { + value: { + code: '852', + mask: '9 999 9999' + }, + label: 'HONG KONG (HK)', + countryCode: 'HK' + }, + { + value: { + code: '36', + mask: '999 999 999' + }, + label: 'HUNGARY (HU)', + countryCode: 'HU' + }, + { + value: { + code: '354', + mask: '999 9999' + }, + label: 'ICELAND (IS)', + countryCode: 'IS' + }, + { + value: { + code: '91', + mask: '99999 99999' + }, + label: 'INDIA (IN)', + countryCode: 'IN' + }, + { + value: { + code: '62', + mask: '999 999 999' + }, + label: 'INDONESIA (ID)', + countryCode: 'ID' + }, + { + value: { + code: '98', + mask: '999 999 9999' + }, + label: 'IRAN (IR)', + countryCode: 'IR' + }, + { + value: { + code: '964', + mask: '999 999 9999' + }, + label: 'IRAQ (IQ)', + countryCode: 'IQ' + }, + { + value: { + code: '353', + mask: '99 999 9999' + }, + label: 'IRELAND (IE)', + countryCode: 'IE' + }, + { + value: { + code: '972', + mask: '99 999 9999' + }, + label: 'ISRAEL (IL)', + countryCode: 'IL' + }, + { + value: { + code: '39', + mask: '999 999 9999' + }, + label: 'ITALY (IT)', + countryCode: 'IT' + }, + { + value: { + code: '1876', + mask: '999 9999' + }, + label: 'JAMAICA (JM)', + countryCode: 'JM' + }, + { + value: { + code: '81', + mask: '99 9999 9999' + }, + label: 'JAPAN (JP)', + countryCode: 'JP' + }, + { + value: { + code: '962', + mask: '9 9999 9999' + }, + label: 'JORDAN (JO)', + countryCode: 'JO' + }, + { + value: { + code: '7', + mask: '999 999 99 99' + }, + label: 'KAZAKHSTAN (KZ)', + countryCode: 'KZ' + }, + { + value: { + code: '254', + mask: '999 999 999' + }, + label: 'KENYA (KE)', + countryCode: 'KE' + }, + { + value: { + code: '686', + mask: '9 999 9999' + }, + label: 'KIRIBATI (KI)', + countryCode: 'KI' + }, + { + value: { + code: '383', + mask: '999 9999' + }, + label: 'KOSOVO (XK)', + countryCode: 'XK' + }, + { + value: { + code: '965', + mask: '999 99999' + }, + label: 'KUWAIT (KW)', + countryCode: 'KW' + }, + { + value: { + code: '996', + mask: '999 999999' + }, + label: 'KYRGYZSTAN (KG)', + countryCode: 'KG' + }, + { + value: { + code: '856', + mask: '99 99 999 999' + }, + label: 'LAOS (LA)', + countryCode: 'LA' + }, + { + value: { + code: '371', + mask: '999 99999' + }, + label: 'LATVIA (LV)', + countryCode: 'LV' + }, + { + value: { + code: '961', + mask: '9 9999 9999' + }, + label: 'LEBANON (LB)', + countryCode: 'LB' + }, + { + value: { + code: '266', + mask: '99 999 999' + }, + label: 'LESOTHO (LS)', + countryCode: 'LS' + }, + { + value: { + code: '231', + mask: '99 999 9999' + }, + label: 'LIBERIA (LR)', + countryCode: 'LR' + }, + { + value: { + code: '218', + mask: '99 999 9999' + }, + label: 'LIBYA (LY)', + countryCode: 'LY' + }, + { + value: { + code: '423', + mask: '9 999 9999' + }, + label: 'LIECHTENSTEIN (LI)', + countryCode: 'LI' + }, + { + value: { + code: '370', + mask: '999 99999' + }, + label: 'LITHUANIA (LT)', + countryCode: 'LT' + }, + { + value: { + code: '352', + mask: '999 999 999' + }, + label: 'LUXEMBOURG (LU)', + countryCode: 'LU' + }, + { + value: { + code: '853', + mask: '9999 9999' + }, + label: 'MACAUMO', + countryCode: 'MO' + }, + { + value: { + code: '389', + mask: '99 999 999' + }, + label: 'MACEDONIA (MK)', + countryCode: 'MK' + }, + { + value: { + code: '261', + mask: '99 99 999 99' + }, + label: 'MADAGASCAR (MG)', + countryCode: 'MG' + }, + { + value: { + code: '265', + mask: '99 999 9999' + }, + label: 'MALAWI (MW)', + countryCode: 'MW' + }, + { + value: { + code: '60', + mask: '99 999 9999' + }, + label: 'MALAYSIA (MY)', + countryCode: 'MY' + }, + { + value: { + code: '960', + mask: '9 9999 9999' + }, + label: 'MALDIVES (MV)', + countryCode: 'MV' + }, + { + value: { + code: '223', + mask: '9999 9999' + }, + label: 'MALI (ML)', + countryCode: 'ML' + }, + { + value: { + code: '356', + mask: '99 99 99 99' + }, + label: 'MALTA (MT)', + countryCode: 'MT' + }, + { + value: { + code: '692', + mask: '9 999 9999' + }, + label: 'MARSHALL ISLANDS (MH)', + countryCode: 'MH' + }, + { + value: { + code: '596', + mask: '999 9999' + }, + label: 'MARTINIQUE (MQ)', + countryCode: 'MQ' + }, + { + value: { + code: '222', + mask: '9999 9999' + }, + label: 'MAURITANIA (MR)', + countryCode: 'MR' + }, + { + value: { + code: '230', + mask: '9999 9999' + }, + label: 'MAURITIUS (MU)', + countryCode: 'MU' + }, + { + value: { + code: '262', + mask: '999 9999' + }, + label: 'MAYOTTE (YT)', + countryCode: 'YT' + }, + { + value: { + code: '52', + mask: '99 999 999 9999' + }, + label: 'MEXICO (MX)', + countryCode: 'MX' + }, + { + value: { + code: '691', + mask: '9 999 9999' + }, + label: 'MICRONESIA (FM)', + countryCode: 'FM' + }, + { + value: { + code: '373', + mask: '99 999 999' + }, + label: 'MOLDOVA (MD)', + countryCode: 'MD' + }, + { + value: { + code: '377', + mask: '9999 9999' + }, + label: 'MONACO (MC)', + countryCode: 'MC' + }, + { + value: { + code: '976', + mask: '99 99 9999' + }, + label: 'MONGOLIA (MN)', + countryCode: 'MN' + }, + { + value: { + code: '382', + mask: '999 999 999' + }, + label: 'MONTENEGRO (ME)', + countryCode: 'ME' + }, + { + value: { + code: '1664', + mask: '999 9999' + }, + label: 'MONTSERRAT (MS)', + countryCode: 'MS' + }, + { + value: { + code: '212', + mask: '99 999 9999' + }, + label: 'MOROCCO (MA)', + countryCode: 'MA' + }, + { + value: { + code: '258', + mask: '99 999 9999' + }, + label: 'MOZAMBIQUE (MZ)', + countryCode: 'MZ' + }, + { + value: { + code: '95', + mask: '9 999 9999' + }, + label: 'MYANMAR (MM)', + countryCode: 'MM' + }, + { + value: { + code: '264', + mask: '99 999 9999' + }, + label: 'NAMIBIA (NA)', + countryCode: 'NA' + }, + { + value: { + code: '674', + mask: '9 999 9999' + }, + label: 'NAURU (NR)', + countryCode: 'NR' + }, + { + value: { + code: '977', + mask: '99 9999 9999' + }, + label: 'NEPAL (NP)', + countryCode: 'NP' + }, + { + value: { + code: '31', + mask: '9 99 99 99 99' + }, + label: 'NETHERLANDS (NL)', + countryCode: 'NL' + }, + { + value: { + code: '687', + mask: '9 999 9999' + }, + label: 'NEW CALEDONIA (NC)', + countryCode: 'NC' + }, + { + value: { + code: '64', + mask: '99 999 9999' + }, + label: 'NEW ZEALAND (NZ)', + countryCode: 'NZ' + }, + { + value: { + code: '505', + mask: '9999 9999' + }, + label: 'NICARAGUA (NI)', + countryCode: 'NI' + }, + { + value: { + code: '227', + mask: '99 99 99 99' + }, + label: 'NIGER (NE)', + countryCode: 'NE' + }, + { + value: { + code: '234', + mask: '999 999 9999' + }, + label: 'NIGERIA (NG)', + countryCode: 'NG' + }, + { + value: { + code: '683', + mask: '9 999 9999' + }, + label: 'NIUE (NU)', + countryCode: 'NU' + }, + { + value: { + code: '6723', + mask: '9 999 9999' + }, + label: 'NORFOLK ISLAND (NF)', + countryCode: 'NF' + }, + { + value: { + code: '850', + mask: '9 999 9999' + }, + label: 'NORTH KOREA (KP)', + countryCode: 'KP' + }, + { + value: { + code: '1670', + mask: '999 9999' + }, + label: 'NORTHERN MARIANA ISLANDS (MP)', + countryCode: 'MP' + }, + { + value: { + code: '47', + mask: '9999 9999' + }, + label: 'NORWAY (NO)', + countryCode: 'NO' + }, + { + value: { + code: '968', + mask: '9999 9999' + }, + label: 'OMAN (OM)', + countryCode: 'OM' + }, + { + value: { + code: '92', + mask: '999 999 9999' + }, + label: 'PAKISTAN (PK)', + countryCode: 'P' + }, + { + value: { + code: '680', + mask: '9 999 9999' + }, + label: 'PALAU (PW)', + countryCode: 'PW' + }, + { + value: { + code: '970', + mask: '999 99 9999' + }, + label: 'PALESTINE (PS)', + countryCode: 'PS' + }, + { + value: { + code: '507', + mask: '9999 9999' + }, + label: 'PANAMA (PA)', + countryCode: 'PA' + }, + { + value: { + code: '675', + mask: '9 999 9999' + }, + label: 'PAPUA NEW GUINEA (PG)', + countryCode: 'PG' + }, + { + value: { + code: '595', + mask: '999 999 999' + }, + label: 'PARAGUAY (PY)', + countryCode: 'PY' + }, + { + value: { + code: '51', + mask: '999 999 999' + }, + label: 'PERU (PE)', + countryCode: 'PE' + }, + { + value: { + code: '63', + mask: '999 999 9999' + }, + label: 'PHILIPPINES (PH)', + countryCode: 'PH' + }, + { + value: { + code: '48', + mask: '99 999 9999' + }, + label: 'POLAND (PL)', + countryCode: 'PL' + }, + { + value: { + code: '351', + mask: '9 9999 9999' + }, + label: 'PORTUGAL (PT)', + countryCode: 'PT' + }, + { + value: { + code: '1', + mask: '999 999 9999' + }, + label: 'PUERTO RICO (PR)', + countryCode: 'PR' + }, + { + value: { + code: '974', + mask: '99 999 999' + }, + label: 'QATAR (QA)', + countryCode: 'QA' + }, + { + value: { + code: '40', + mask: '999 999 999' + }, + label: 'ROMANIA (RO)', + countryCode: 'RO' + }, + { + value: { + code: '7', + mask: '999 999 9999' + }, + label: 'RUSSIAN FEDERATION (RU)', + countryCode: 'RU' + }, + { + value: { + code: '250', + mask: '999 999 999' + }, + label: 'RWANDA (RW)', + countryCode: 'RW' + }, + { + value: { + code: '262', + mask: '999 999 999' + }, + label: 'RÉUNION (RE)', + countryCode: 'RE' + }, + { + value: { + code: '599', + mask: '4 999 9999' + }, + label: 'SABA (BQ-SA)', + countryCode: 'BQ-SA' + }, + { + value: { + code: '247', + mask: '99999' + }, + label: 'SAINT HELENA (SH)', + countryCode: 'SH' + }, + { + value: { + code: '290', + mask: '99999' + }, + label: 'SAINT HELENA (SH)', + countryCode: 'SH' + }, + { + value: { + code: '1869', + mask: '999 9999' + }, + label: 'SAINT KITTS & NEVIS (KN)', + countryCode: 'KN' + }, + { + value: { + code: '1758', + mask: '999 9999' + }, + label: 'SAINT LUCIA (LC)', + countryCode: 'LC' + }, + { + value: { + code: '508', + mask: '999 99 99 99' + }, + label: 'SAINT PIERRE & MIQUELON (PM),', + countryCode: 'PM' + }, + { + value: { + code: '1784', + mask: '999 9999' + }, + label: 'SAINT VINCENT & THE GRENADINES', + countryCode: '(VC)' + }, + { + value: { + code: '685', + mask: '9 999 9999' + }, + label: 'SAMOA (WS)', + countryCode: 'WS' + }, + { + value: { + code: '378', + mask: '999 999 9999' + }, + label: 'SAN MARINO (SM)', + countryCode: 'SM' + }, + { + value: { + code: '966', + mask: '99 999 9999' + }, + label: 'SAUDI ARABIA (SA)', + countryCode: 'SA' + }, + { + value: { + code: '221', + mask: '99 999 9999' + }, + label: 'SENEGAL (SN)', + countryCode: 'SN' + }, + { + value: { + code: '381', + mask: '99 999 9999' + }, + label: 'SERBIA (RS)', + countryCode: 'RS' + }, + { + value: { + code: '248', + mask: '9 99 99 99' + }, + label: 'SEYCHELLES (SC)', + countryCode: 'SC' + }, + { + value: { + code: '232', + mask: '99 999999' + }, + label: 'SIERRA LEONE (SL)', + countryCode: 'SL' + }, + { + value: { + code: '65', + mask: '9999 9999' + }, + label: 'SINGAPORE (SG)', + countryCode: 'SG' + }, + { + value: { + code: '599', + mask: '3 999 9999' + }, + label: 'SINT EUSTATIUS (BQ-SE)', + countryCode: 'BQ-SE' + }, + { + value: { + code: '1721', + mask: '999 9999' + }, + label: 'SINT MAARTEN (SX)', + countryCode: 'SX' + }, + { + value: { + code: '421', + mask: '999 999 999' + }, + label: 'SLOVAKIA (SK)', + countryCode: 'SK' + }, + { + value: { + code: '386', + mask: '99 999 999' + }, + label: 'SLOVENIA (SI)', + countryCode: 'SI' + }, + { + value: { + code: '677', + mask: '9 999 9999' + }, + label: 'SOLOMON ISLANDS (SB)', + countryCode: 'SB' + }, + { + value: { + code: '252', + mask: '99 999 999' + }, + label: 'SOMALIA (SO)', + countryCode: 'SO' + }, + { + value: { + code: '27', + mask: '99 999 9999' + }, + label: 'SOUTH AFRICA (ZA)', + countryCode: 'ZA' + }, + { + value: { + code: '82', + mask: '99 9999 9999' + }, + label: 'SOUTH KOREA (KR)', + countryCode: 'KR' + }, + { + value: { + code: '99534', + mask: '999 9999' + }, + label: 'SOUTH OSETIA (GE)', + countryCode: 'GE' + }, + { + value: { + code: '299', + mask: '99 999 9999' + }, + label: 'SOUTH SUDAN (SS)', + countryCode: 'SS' + }, + { + value: { + code: '34', + mask: '999 999 999' + }, + label: 'SPAIN (ES)', + countryCode: 'ES' + }, + { + value: { + code: '94', + mask: '99 999 9999' + }, + label: 'SRI LANKA (LK)', + countryCode: 'LK' + }, + { + value: { + code: '249', + mask: '99 999 9999' + }, + label: 'SUDAN (SD)', + countryCode: 'SD' + }, + { + value: { + code: '597', + mask: '999 9999' + }, + label: 'SURINAME (SR)', + countryCode: 'SR' + }, + { + value: { + code: '268', + mask: '9999 9999' + }, + label: 'SWAZILAND (SZ)', + countryCode: 'SZ' + }, + { + value: { + code: '46', + mask: '99 999 9999' + }, + label: 'SWEDEN (SE)', + countryCode: 'SE' + }, + { + value: { + code: '41', + mask: '99 999 9999' + }, + label: 'SWITZERLAND (CH)', + countryCode: 'CH' + }, + { + value: { + code: '963', + mask: '999 9999' + }, + label: 'SYRIA (SY)', + countryCode: 'SY' + }, + { + value: { + code: '239', + mask: '99 99999' + }, + label: 'SÃO TOMÉ & PRÍNCIPE (ST)', + countryCode: 'ST' + }, + { + value: { + code: '886', + mask: '999 999 999' + }, + label: 'TAIWAN (TW)', + countryCode: 'TW' + }, + { + value: { + code: '992', + mask: '99 999 9999' + }, + label: 'TAJIKISTAN (TJ)', + countryCode: 'TJ' + }, + { + value: { + code: '255', + mask: '99 999 9999' + }, + label: 'TANZANIA (TZ)', + countryCode: 'TZ' + }, + { + value: { + code: '66', + mask: '9 9999 9999' + }, + label: 'THAILAND (TH)', + countryCode: 'TH' + }, + { + value: { + code: '670', + mask: '9 999 9999' + }, + label: 'TIMOR-LESTE (TL)', + countryCode: 'TL' + }, + { + value: { + code: '228', + mask: '99 999 999' + }, + label: 'TOGO (TG)', + countryCode: 'TG' + }, + { + value: { + code: '690', + mask: '9 999 9999' + }, + label: 'TOKELAU (TK)', + countryCode: 'TK' + }, + { + value: { + code: '676', + mask: '9 999 9999' + }, + label: 'TONGA (TO)', + countryCode: 'TO' + }, + { + value: { + code: '1868', + mask: '999 9999' + }, + label: 'TRINIDAD & TOBAGO (TT)', + countryCode: 'TT' + }, + { + value: { + code: '216', + mask: '99 999 999' + }, + label: 'TUNISIA (TN)', + countryCode: 'TN' + }, + { + value: { + code: '90', + mask: '999 999 9999' + }, + label: 'TURKEY (TR)', + countryCode: 'TR' + }, + { + value: { + code: '993', + mask: '99 999999' + }, + label: 'TURKMENISTAN (TM)', + countryCode: 'TM' + }, + { + value: { + code: '1649', + mask: '999 9999' + }, + label: 'TURKS & CAICOS ISLANDS (TC)', + countryCode: 'TC' + }, + { + value: { + code: '688', + mask: '9 999 9999' + }, + label: 'TUVALU (TV)', + countryCode: 'TV' + }, + { + value: { + code: '256', + mask: '99 999 9999' + }, + label: 'UGANDA (UG)', + countryCode: 'UG' + }, + { + value: { + code: '380', + mask: '99 999 99 99' + }, + label: 'UKRAINE (UA)', + countryCode: 'UA' + }, + { + value: { + code: '971', + mask: '99 999 9999' + }, + label: 'UNITED ARAB EMIRATES (AE)', + countryCode: 'AE' + }, + { + value: { + code: '44', + mask: '9999 999991' + }, + label: 'UNITED KINGDOM (GB)', + countryCode: 'GB' + }, + { + value: { + code: '598', + mask: '9 999 9999' + }, + label: 'URUGUAY (UY)', + countryCode: 'UY' + }, + { + value: { + code: '1340', + mask: '999 9999' + }, + label: 'US VIRGIN ISLANDS (VI)', + countryCode: 'VI' + }, + { + value: { + code: '1', + mask: '999 999 9999' + }, + label: 'USA (US)', + countryCode: 'US' + }, + { + value: { + code: '998', + mask: '99 9999999' + }, + label: 'UZBEKISTAN (UZ)', + countryCode: 'UZ' + }, + { + value: { + code: '678', + mask: '9 999 9999' + }, + label: 'VANUATU (VU)', + countryCode: 'VU' + }, + { + value: { + code: '58', + mask: '999 999 9999' + }, + label: 'VENEZUELA (VE)', + countryCode: 'VE' + }, + { + value: { + code: '84', + mask: '99 999 99 99' + }, + label: 'VIETNAM (VN)', + countryCode: 'VN' + }, + { + value: { + code: '681', + mask: '9 999 9999' + }, + label: 'WALLIS & FUTUNA (WF)', + countryCode: 'WF' + }, + { + value: { + code: '42', + mask: '99999' + }, + label: 'Y-LAND (YL)', + countryCode: 'YL' + }, + { + value: { + code: '967', + mask: '999 999 999' + }, + label: 'YEMEN (YE)', + countryCode: 'YE' + }, + { + value: { + code: '260', + mask: '99 999 9999' + }, + label: 'ZAMBIA (ZM)', + countryCode: 'ZM' + }, + { + value: { + code: '263', + mask: '99 999 9999' + }, + label: 'ZIMBABWE (ZW)', + countryCode: 'ZW' + } +] + +export default CountryPhoneCodes -- GitLab From 8fc74d74687fb244abf2ab44f16ab95242be8c48 Mon Sep 17 00:00:00 2001 From: Vasil Marchev Date: Wed, 5 Dec 2018 13:28:27 +0200 Subject: [PATCH 248/249] Minor Changes --- .../generic_data/contact_info/modal_content/add_modal.js | 4 ++-- .../modal_content/{add_phone_filed.js => add_phone_field.js} | 2 +- .../modal_content/{add_text_fileds.js => add_text_fields.js} | 0 .../login_options/type_controls/type_control_phone.js | 1 - 4 files changed, 3 insertions(+), 4 deletions(-) rename src/components/edit_user/generic_data/contact_info/modal_content/{add_phone_filed.js => add_phone_field.js} (99%) rename src/components/edit_user/generic_data/contact_info/modal_content/{add_text_fileds.js => add_text_fields.js} (100%) diff --git a/src/components/edit_user/generic_data/contact_info/modal_content/add_modal.js b/src/components/edit_user/generic_data/contact_info/modal_content/add_modal.js index 1887706..a4baf04 100644 --- a/src/components/edit_user/generic_data/contact_info/modal_content/add_modal.js +++ b/src/components/edit_user/generic_data/contact_info/modal_content/add_modal.js @@ -8,8 +8,8 @@ import googleIcon from '../svg/ic_google.svg' import twitterIcon from '../svg/ic_twitter.svg' import internationPhoneCodes from '../../../internation_phone_codes' -import AddModalControlsTextFields from './add_text_fileds' -import AddModalControlsPhoneField from './add_phone_filed' +import AddModalControlsTextFields from './add_text_fields' +import AddModalControlsPhoneField from './add_phone_field' const styles = {} diff --git a/src/components/edit_user/generic_data/contact_info/modal_content/add_phone_filed.js b/src/components/edit_user/generic_data/contact_info/modal_content/add_phone_field.js similarity index 99% rename from src/components/edit_user/generic_data/contact_info/modal_content/add_phone_filed.js rename to src/components/edit_user/generic_data/contact_info/modal_content/add_phone_field.js index f67e6a8..ba31ec0 100644 --- a/src/components/edit_user/generic_data/contact_info/modal_content/add_phone_filed.js +++ b/src/components/edit_user/generic_data/contact_info/modal_content/add_phone_field.js @@ -26,7 +26,7 @@ const MenuProps = { } } -const styles = theme => ({}) +// const styles = theme => ({}) const AddModalControlsTextFields = (props) => { const { classes, handleChange, handleModalCancel, setActiveOnFocus, phoneCodeFocus, addPhoneFocus, phoneCodeValue, phoneNumberValue, selectPhoneLabel, diff --git a/src/components/edit_user/generic_data/contact_info/modal_content/add_text_fileds.js b/src/components/edit_user/generic_data/contact_info/modal_content/add_text_fields.js similarity index 100% rename from src/components/edit_user/generic_data/contact_info/modal_content/add_text_fileds.js rename to src/components/edit_user/generic_data/contact_info/modal_content/add_text_fields.js diff --git a/src/components/edit_user/tabs_navigation/login_options/type_controls/type_control_phone.js b/src/components/edit_user/tabs_navigation/login_options/type_controls/type_control_phone.js index 6871a1a..55741ca 100644 --- a/src/components/edit_user/tabs_navigation/login_options/type_controls/type_control_phone.js +++ b/src/components/edit_user/tabs_navigation/login_options/type_controls/type_control_phone.js @@ -3,7 +3,6 @@ import PropTypes from 'prop-types' import { withStyles } from '@material-ui/core/styles' import InputAdornment from '@material-ui/core/InputAdornment' -import InputLabel from '@material-ui/core/InputLabel/InputLabel' import Input from '@material-ui/core/Input/Input' import FormControl from '@material-ui/core/FormControl/FormControl' import phoneIcon from '../svg/ic_phone.svg' -- GitLab From b0816d2ff5558506a24caf145e93b0cc4198b25f Mon Sep 17 00:00:00 2001 From: Vasil Nikolov Date: Wed, 5 Dec 2018 13:40:35 +0200 Subject: [PATCH 249/249] merge fix and dashboard filters --- .../generic_data/contact_info/modal_content/add_modal.js | 4 ---- src/components/edit_user/generic_data/index.js | 3 --- src/utils/services/admin_account.js | 9 +++++++++ 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/components/edit_user/generic_data/contact_info/modal_content/add_modal.js b/src/components/edit_user/generic_data/contact_info/modal_content/add_modal.js index a4baf04..d7cc9fb 100644 --- a/src/components/edit_user/generic_data/contact_info/modal_content/add_modal.js +++ b/src/components/edit_user/generic_data/contact_info/modal_content/add_modal.js @@ -91,10 +91,6 @@ class ContactInfoAddModal extends PureComponent { const { addModalTextFields, isUpdated, phoneCodeValue, selectPhoneLabel, addCustomLabel, addCustomLabelValue, maskPhoneCode, maskPhoneNumber, phoneCountryValue } = this.state - console.log('====================================') - console.log(this.state) - console.log('====================================') - let phoneCoutryNames = internationPhoneCodes.map((coutryName) => { return coutryName.label }) diff --git a/src/components/edit_user/generic_data/index.js b/src/components/edit_user/generic_data/index.js index abef155..87f23cf 100644 --- a/src/components/edit_user/generic_data/index.js +++ b/src/components/edit_user/generic_data/index.js @@ -206,9 +206,6 @@ class genericUserData extends Component { } deleteAvatar = () => { - console.log('====================================') - console.log('DELETE AVATAR') - console.log('====================================') this.handleDeleteAvatar() } diff --git a/src/utils/services/admin_account.js b/src/utils/services/admin_account.js index 915df68..0579790 100644 --- a/src/utils/services/admin_account.js +++ b/src/utils/services/admin_account.js @@ -18,6 +18,15 @@ export function getAllAccountsGrpcRequest (startRow, endRow, filter) { filterModel.setFiltervalue(filter.firstname.filter.charAt(0).toUpperCase() + filter.firstname.filter.slice(1)) filterModel.setValuetype('text') + getAllAccountsRequest.addFiltermodel(filterModel) + } else if (filter.lastname) { + let filterModel = new FilterModel() + + filterModel.setColid('lastname') + filterModel.setFiltertype(FilterModel.FilterType.EQUALS) + filterModel.setFiltervalue(filter.lastname.filter.charAt(0).toUpperCase() + filter.lastname.filter.slice(1)) + filterModel.setValuetype('text') + getAllAccountsRequest.addFiltermodel(filterModel) } -- GitLab