Method times can now be edited in-memory if some code is uncommented.

This commit is contained in:
Daan Vanden Bosch 2019-06-12 19:53:03 +02:00
parent f169f72002
commit 16ff2645a3
10 changed files with 259 additions and 162 deletions

View File

@ -6,6 +6,7 @@
"@craco/craco": "^5.2.1",
"@types/jest": "24.0.13",
"@types/lodash": "^4.14.132",
"@types/moment": "^2.13.0",
"@types/react": "16.8.18",
"@types/react-dom": "16.8.4",
"@types/react-virtualized": "^9.21.2",
@ -16,6 +17,7 @@
"lodash": "^4.17.11",
"mobx": "^5.9.4",
"mobx-react": "^5.4.4",
"moment": "^2.24.0",
"react": "^16.8.6",
"react-dom": "^16.8.6",
"react-scripts": "3.0.1",

View File

@ -326,32 +326,51 @@ type ItemDrop = {
}
export class EnemyDrop implements ItemDrop {
rate: number;
readonly rate: number;
constructor(
public item: Item,
public anythingRate: number,
public rareRate: number
public readonly item: Item,
public readonly anythingRate: number,
public readonly rareRate: number
) {
this.rate = anythingRate * rareRate;
}
}
export class HuntMethod {
readonly id: string;
readonly name: string;
readonly quest: SimpleQuest;
readonly npcs: Array<SimpleNpc>;
readonly enemies: Array<SimpleNpc>;
readonly enemyCounts: Map<NpcType, number>;
/**
* The time it takes to complete the quest in hours.
*/
readonly defaultTime: number;
/**
* The time it takes to complete the quest in hours as specified by the user.
*/
@observable userTime?: number;
@computed get time(): number {
return this.userTime != null ? this.userTime : this.defaultTime;
}
constructor(
/**
* The time it takes to complete the quest in hours.
*/
public readonly time: number,
public readonly name: string,
public readonly quest: SimpleQuest
id: string,
name: string,
quest: SimpleQuest,
defaultTime: number
) {
if (time <= 0) throw new Error('time must be greater than zero.');
if (!id) throw new Error('id is required.');
if (defaultTime <= 0) throw new Error('defaultTime must be greater than zero.');
if (!name) throw new Error('name is required.');
if (!quest) throw new Error('quest is required.');
this.id = id;
this.name = name;
this.quest = quest;
this.npcs = this.quest.npcs;
this.enemies = this.npcs.filter(npc => npc.type.enemy);
this.enemyCounts = new Map();
@ -359,14 +378,18 @@ export class HuntMethod {
for (const npc of this.enemies) {
this.enemyCounts.set(npc.type, (this.enemyCounts.get(npc.type) || 0) + 1);
}
this.defaultTime = defaultTime;
}
}
export class SimpleQuest {
constructor(
public readonly id: number,
public readonly name: string,
public readonly npcs: SimpleNpc[]
) {
if (!id) throw new Error('id is required.');
if (!name) throw new Error('name is required.');
if (!npcs) throw new Error('npcs is required.');
}

View File

@ -20,7 +20,8 @@ class HuntMethodStore {
return NpcType.byNameAndEpisode(enemy, parseInt(episode, 10))!;
});
return rows.slice(2).map(row => {
return rows.slice(2).map((row, i) => {
const questId = i + 1;
const questName = row[0];
const time = parseFloat(row[1]);
@ -41,12 +42,14 @@ class HuntMethodStore {
});
return new HuntMethod(
time,
`q${questId}`,
questName,
new SimpleQuest(
questId,
questName,
npcs
)
),
time
);
});
}

View File

@ -31,4 +31,5 @@
.ApplicationComponent-main > * {
flex: 1;
overflow: hidden;
}

View File

@ -42,12 +42,6 @@
border-bottom: solid 1px @border-color-base;
border-right: solid 1px darken(@border-color-base, 11%);
& > span {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
&.last-in-row {
border-right: solid 1px @border-color-base;
}
@ -59,6 +53,31 @@
&.footer-cell {
font-weight: bold;
}
&.custom {
padding: 0;
}
& > .DataTable-cell-text {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
& > .ant-time-picker {
/* Cover the default borders. */
margin: -1px;
height: calc(100% + 2px);
/* Make sure the glowing border is entirely visible. */
&:hover {
z-index: 10;
}
& input {
height: 100%;
}
}
}
.DataTable-no-result {

View File

@ -1,14 +1,17 @@
import React from "react";
import { Index, MultiGrid, GridCellRenderer } from "react-virtualized";
import React, { ReactNode } from "react";
import { GridCellRenderer, Index, MultiGrid } from "react-virtualized";
import "./dataTable.less";
export type Column<T> = {
name: string,
width: number,
cellValue: (record: T) => string,
cellRenderer: (record: T) => ReactNode,
tooltip?: (record: T) => string,
footerValue?: string,
footerTooltip?: string,
/**
* "number" and "integrated" have special meaning.
*/
className?: string,
}
@ -20,10 +23,16 @@ export class DataTable<T> extends React.Component<{
width: number,
height: number,
rowCount: number,
overscanRowCount?: number,
columns: Array<Column<T>>,
fixedColumnCount?: number,
overscanColumnCount?: number,
record: (index: Index) => T,
footer?: boolean,
/**
* When this changes, the DataTable will re-render.
*/
updateTrigger?: any
}> {
render() {
return (
@ -34,12 +43,15 @@ export class DataTable<T> extends React.Component<{
rowHeight={26}
rowCount={this.props.rowCount + 1 + (this.props.footer ? 1 : 0)}
fixedRowCount={1}
overscanRowCount={this.props.overscanRowCount}
columnWidth={this.columnWidth}
columnCount={this.props.columns.length}
fixedColumnCount={this.props.fixedColumnCount}
overscanColumnCount={this.props.overscanColumnCount}
cellRenderer={this.cellRenderer}
classNameTopLeftGrid="DataTable-header"
classNameTopRightGrid="DataTable-header"
updateTigger={this.props.updateTrigger}
/>
</div>
);
@ -51,7 +63,7 @@ export class DataTable<T> extends React.Component<{
private cellRenderer: GridCellRenderer = ({ columnIndex, rowIndex, style }) => {
const column = this.props.columns[columnIndex];
let text: string;
let cell: ReactNode;
let title: string | undefined;
const classes = ['DataTable-cell'];
@ -61,7 +73,7 @@ export class DataTable<T> extends React.Component<{
if (rowIndex === 0) {
// Header row
text = title = column.name;
cell = title = column.name;
} else {
// Record or footer row
if (column.className) {
@ -71,13 +83,13 @@ export class DataTable<T> extends React.Component<{
if (this.props.footer && rowIndex === 1 + this.props.rowCount) {
// Footer row
classes.push('footer-cell');
text = column.footerValue == null ? '' : column.footerValue;
cell = column.footerValue == null ? '' : column.footerValue;
title = column.footerTooltip == null ? '' : column.footerTooltip;
} else {
// Record row
const result = this.props.record({ index: rowIndex - 1 });
text = column.cellValue(result);
cell = column.cellRenderer(result);
if (column.tooltip) {
title = column.tooltip(result);
@ -85,6 +97,10 @@ export class DataTable<T> extends React.Component<{
}
}
if (typeof cell !== 'string') {
classes.push('custom');
}
return (
<div
className={classes.join(' ')}
@ -92,7 +108,9 @@ export class DataTable<T> extends React.Component<{
style={style}
title={title}
>
<span>{text}</span>
{typeof cell === 'string' ? (
<span className="DataTable-cell-text">{cell}</span>
) : cell}
</div>
);
}

View File

@ -1,3 +1,7 @@
.ho-MethodsComponent {
flex: 1;
}
.ho-MethodsComponent-timepicker .ant-time-picker-icon {
display: none;
}

View File

@ -1,11 +1,13 @@
import { TimePicker } from "antd";
import { observer } from "mobx-react";
import moment, { Moment } from "moment";
import React from "react";
import { AutoSizer, Index } from "react-virtualized";
import { HuntMethod } from "../../domain";
import { EnemyNpcTypes } from "../../domain/NpcType";
import { huntMethodStore } from "../../stores/HuntMethodStore";
import { Column, DataTable } from "../dataTable";
import "./MethodsComponent.css";
import { DataTable, Column } from "../dataTable";
import { hoursToString } from "../time";
@observer
@ -16,13 +18,15 @@ export class MethodsComponent extends React.Component {
{
name: 'Method',
width: 250,
cellValue: (method) => method.name,
cellRenderer: (method) => method.name,
},
{
name: 'Time',
width: 50,
cellValue: (method) => hoursToString(method.time),
className: 'number',
cellRenderer: (method) => hoursToString(method.time),
// TODO: enable when methods have IDs so edits can be saved.
// cellRenderer: (method) => <TimeComponent method={method} />,
className: 'integrated',
},
];
@ -31,7 +35,7 @@ export class MethodsComponent extends React.Component {
columns.push({
name: enemy.name,
width: 75,
cellValue: (method) => {
cellRenderer: (method) => {
const count = method.enemyCounts.get(enemy);
return count == null ? '' : count.toString();
},
@ -66,4 +70,29 @@ export class MethodsComponent extends React.Component {
private record = ({ index }: Index) => {
return huntMethodStore.methods.current.value[index];
}
}
}
@observer
class TimeComponent extends React.Component<{ method: HuntMethod }> {
render() {
const time = this.props.method.time;
const hour = Math.floor(time);
const minute = Math.round(60 * (time - hour));
return (
<TimePicker
className="ho-MethodsComponent-timepicker"
value={moment({ hour, minute })}
format="HH:mm"
size="small"
allowClear={false}
suffixIcon={<span />}
onChange={this.change}
/>
);
}
private change = (time: Moment) => {
this.props.method.userTime = time.hour() + time.minute() / 60;
}
}

View File

@ -25,30 +25,30 @@ export class OptimizationResultComponent extends React.Component {
{
name: 'Difficulty',
width: 75,
cellValue: (result) => result.difficulty,
cellRenderer: (result) => result.difficulty,
footerValue: 'Totals:',
},
{
name: 'Method',
width: 200,
cellValue: (result) => result.methodName,
cellRenderer: (result) => result.methodName,
tooltip: (result) => result.methodName,
},
{
name: 'Section ID',
width: 80,
cellValue: (result) => result.sectionId,
cellRenderer: (result) => result.sectionId,
},
{
name: 'Time/Run',
width: 80,
cellValue: (result) => hoursToString(result.methodTime),
cellRenderer: (result) => hoursToString(result.methodTime),
className: 'number',
},
{
name: 'Runs',
width: 60,
cellValue: (result) => result.runs.toFixed(1),
cellRenderer: (result) => result.runs.toFixed(1),
tooltip: (result) => result.runs.toString(),
footerValue: totalRuns.toFixed(1),
footerTooltip: totalRuns.toString(),
@ -57,7 +57,7 @@ export class OptimizationResultComponent extends React.Component {
{
name: 'Total Hours',
width: 90,
cellValue: (result) => result.totalTime.toFixed(1),
cellRenderer: (result) => result.totalTime.toFixed(1),
tooltip: (result) => result.totalTime.toString(),
footerValue: totalTime.toFixed(1),
footerTooltip: totalTime.toString(),
@ -83,7 +83,7 @@ export class OptimizationResultComponent extends React.Component {
columns.push({
name: item.name,
width: 80,
cellValue: (result) => {
cellRenderer: (result) => {
const count = result.itemCounts.get(item);
return count ? count.toFixed(2) : '';
},
@ -100,9 +100,13 @@ export class OptimizationResultComponent extends React.Component {
return columns;
}
// Make sure render is called when result changes.
@computed private get updateTrigger() {
return huntOptimizerStore.results.slice(0, 0);
}
render() {
// Make sure render is called when result changes.
huntOptimizerStore.results.slice(0, 0);
this.updateTrigger; // eslint-disable-line
return (
<section className="ho-OptimizationResultComponent">
@ -118,6 +122,7 @@ export class OptimizationResultComponent extends React.Component {
fixedColumnCount={3}
record={this.record}
footer={huntOptimizerStore.results.length > 0}
updateTrigger={this.updateTrigger}
/>
}
</AutoSizer>

231
yarn.lock
View File

@ -17,7 +17,7 @@
gud "^1.0.0"
warning "^4.0.3"
"@ant-design/icons-react@~2.0.0":
"@ant-design/icons-react@~2.0.1":
version "2.0.1"
resolved "https://registry.yarnpkg.com/@ant-design/icons-react/-/icons-react-2.0.1.tgz#17a2513571ab317aca2927e58cea25dd31e536fb"
integrity sha512-r1QfoltMuruJZqdiKcbPim3d8LNsVPB733U0gZEUSxBLuqilwsW28K2rCTWSMTjmFX7Mfpf+v/wdiFe/XCqThw==
@ -1264,9 +1264,9 @@
"@babel/types" "^7.0.0"
"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6":
version "7.0.6"
resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.6.tgz#328dd1a8fc4cfe3c8458be9477b219ea158fd7b2"
integrity sha512-XYVgHF2sQ0YblLRMLNPB3CkFMewzFmlDsH/TneZFHUXDlABQgh88uOxuez7ZcXxayLFrqLwtDH1t+FmlFwNZxw==
version "7.0.7"
resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.7.tgz#2496e9ff56196cc1429c72034e07eab6121b6f3f"
integrity sha512-CeBpmX1J8kWLcDEnI3Cl2Eo6RfbGvzUctA+CjZUhOKDFbLfcr7fc4usEqLNWetrlJd7RhAkyYe2czXop4fICpw==
dependencies:
"@babel/types" "^7.3.0"
@ -1314,10 +1314,17 @@
resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.134.tgz#9032b440122db3a2a56200e91191996161dde5b9"
integrity sha512-2/O0khFUCFeDlbi7sZ7ZFRCcT812fAeOLm7Ev4KbwASkZ575TDrDcY7YyaoHdTOzKcNbfiwLYZqPmoC4wadrsw==
"@types/moment@^2.13.0":
version "2.13.0"
resolved "https://registry.yarnpkg.com/@types/moment/-/moment-2.13.0.tgz#604ebd189bc3bc34a1548689404e61a2a4aac896"
integrity sha1-YE69GJvDvDShVIaJQE5hoqSqyJY=
dependencies:
moment "*"
"@types/node@*", "@types/node@^12.0.3":
version "12.0.7"
resolved "https://registry.yarnpkg.com/@types/node/-/node-12.0.7.tgz#4f2563bad652b2acb1722d7e7aae2b0ff62d192c"
integrity sha512-1YKeT4JitGgE4SOzyB9eMwO0nGVNkNEsm9qlIt1Lqm/tG2QEiSMTD4kS3aO6L+w5SClLVxALmIBESK6Mk5wX0A==
version "12.0.8"
resolved "https://registry.yarnpkg.com/@types/node/-/node-12.0.8.tgz#551466be11b2adc3f3d47156758f610bd9f6b1d8"
integrity sha512-b8bbUOTwzIY3V5vDTY1fIJ+ePKDUBqt2hC2woVGotdQQhG/2Sh62HOKHrT7ab+VerXAcPyAiTEipPu/FsreUtg==
"@types/prop-types@*":
version "15.7.1"
@ -1336,7 +1343,7 @@
dependencies:
"@types/react" "*"
"@types/react-slick@^0.23.3":
"@types/react-slick@^0.23.4":
version "0.23.4"
resolved "https://registry.yarnpkg.com/@types/react-slick/-/react-slick-0.23.4.tgz#c97e2a9e7e3d1933c68593b8e82752fab1e8ce53"
integrity sha512-vXoIy4GUfB7/YgqubR4H7RALo+pRdMYCeLgWwV3MPwl5pggTlEkFBTF19R7u+LJc85uMqC7RfsbkqPLMQ4ab+A==
@ -1723,62 +1730,62 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1:
color-convert "^1.9.0"
antd@^3.19.1:
version "3.19.2"
resolved "https://registry.yarnpkg.com/antd/-/antd-3.19.2.tgz#18829f7bbc6acb3f4b43a77349c2bf2c3e733408"
integrity sha512-s1nFRNXQiNZpUfIpyQN89OBrZg9hz2qgPiBeR5b/GgMacHRNzB4sOAD3XBUYeojmUo2UkOgZOUL9jTdiUOf2ZA==
version "3.19.3"
resolved "https://registry.yarnpkg.com/antd/-/antd-3.19.3.tgz#9d4af091bbfab8bb888cc98f36c994fbaf12e931"
integrity sha512-7pIICKAMLC2EvRu4Wi0bLuIfkco84u3rbghyqibBZetVrCQQHjhWBxKiv3dxSAlr9HdT71fFvZcus+R81KlGSg==
dependencies:
"@ant-design/create-react-context" "^0.2.4"
"@ant-design/icons" "~2.0.0"
"@ant-design/icons-react" "~2.0.0"
"@types/react-slick" "^0.23.3"
"@ant-design/icons-react" "~2.0.1"
"@types/react-slick" "^0.23.4"
array-tree-filter "^2.1.0"
babel-runtime "6.x"
classnames "~2.2.6"
copy-to-clipboard "^3.0.8"
copy-to-clipboard "^3.2.0"
css-animation "^1.5.0"
dom-closest "^0.2.0"
enquire.js "^2.1.6"
lodash "^4.17.11"
moment "^2.24.0"
omit.js "^1.0.0"
prop-types "^15.6.2"
raf "^3.4.0"
rc-animate "^2.5.4"
rc-calendar "~9.14.0"
rc-cascader "~0.17.0"
rc-checkbox "~2.1.5"
rc-collapse "~1.11.1"
omit.js "^1.0.2"
prop-types "^15.7.2"
raf "^3.4.1"
rc-animate "^2.8.3"
rc-calendar "~9.14.5"
rc-cascader "~0.17.4"
rc-checkbox "~2.1.6"
rc-collapse "~1.11.3"
rc-dialog "~7.4.0"
rc-drawer "~1.9.3"
rc-drawer "~1.9.8"
rc-dropdown "~2.4.1"
rc-editor-mention "^1.1.7"
rc-form "^2.4.0"
rc-input-number "~4.4.0"
rc-editor-mention "^1.1.13"
rc-form "^2.4.5"
rc-input-number "~4.4.5"
rc-mentions "~0.3.1"
rc-menu "~7.4.12"
rc-notification "~3.3.0"
rc-menu "~7.4.23"
rc-notification "~3.3.1"
rc-pagination "~1.20.1"
rc-progress "~2.3.0"
rc-rate "~2.5.0"
rc-select "~9.1.0"
rc-slider "~8.6.5"
rc-select "~9.1.4"
rc-slider "~8.6.11"
rc-steps "~3.4.1"
rc-switch "~1.9.0"
rc-table "~6.5.0"
rc-tabs "~9.6.0"
rc-time-picker "~3.6.1"
rc-table "~6.6.0"
rc-tabs "~9.6.4"
rc-time-picker "~3.6.6"
rc-tooltip "~3.7.3"
rc-tree "~2.1.0"
rc-tree-select "~2.9.1"
rc-trigger "^2.6.2"
rc-upload "~2.6.0"
rc-util "^4.5.1"
rc-upload "~2.6.7"
rc-util "^4.6.0"
react-lazy-load "^3.0.13"
react-lifecycles-compat "^3.0.4"
react-slick "~0.24.0"
resize-observer-polyfill "^1.5.0"
resize-observer-polyfill "^1.5.1"
shallowequal "^1.1.0"
warning "~4.0.2"
warning "~4.0.3"
anymatch@^2.0.0:
version "2.0.0"
@ -2939,7 +2946,7 @@ copy-descriptor@^0.1.0:
resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
copy-to-clipboard@^3.0.8:
copy-to-clipboard@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.2.0.tgz#d2724a3ccbfed89706fac8a894872c979ac74467"
integrity sha512-eOZERzvCmxS8HWzugj4Uxl8OJxa7T2k1Gi0X5qavwydHIfuSHq2dTD09LOg/XyGq4Zpb5IsR/2OJ5lbOegz78w==
@ -2980,16 +2987,6 @@ core-util-is@1.0.2, core-util-is@~1.0.0:
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
cosmiconfig@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-4.0.0.tgz#760391549580bbd2df1e562bc177b13c290972dc"
integrity sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ==
dependencies:
is-directory "^0.3.1"
js-yaml "^3.9.0"
parse-json "^4.0.0"
require-from-string "^2.0.1"
cosmiconfig@^5.0.0, cosmiconfig@^5.2.0:
version "5.2.1"
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a"
@ -3709,9 +3706,9 @@ ee-first@1.1.1:
integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
electron-to-chromium@^1.3.122, electron-to-chromium@^1.3.150:
version "1.3.154"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.154.tgz#e5b73beecd4db9f024d807ba1faad93fe1fb98aa"
integrity sha512-r3jVJRWvQIKDdjAbtmvJ7NihBFNUpU4VJKsslAzruv9dnYde3v8U2T7J62Vap3c6l6Ku4J56kxlciIO/E93cQg==
version "1.3.157"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.157.tgz#6211d69e8c4ee18df8c84e74e8644bcafc09486c"
integrity sha512-vxGi3lOGqlupuogZxJOMfu+Q1vaOlG6XbsblWw8XnUZSr/ptbt3D6jhHT5LJPZuFUpKhbEo1u4QipivSory1Kg==
elliptic@^6.0.0:
version "6.4.1"
@ -4238,9 +4235,9 @@ faye-websocket@^0.10.0:
websocket-driver ">=0.5.1"
faye-websocket@~0.11.1:
version "0.11.1"
resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.1.tgz#f0efe18c4f56e4f40afc7e06c719fd5ee6188f38"
integrity sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=
version "0.11.3"
resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e"
integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==
dependencies:
websocket-driver ">=0.5.1"
@ -5959,7 +5956,7 @@ js-tokens@^3.0.2:
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls=
js-yaml@^3.13.0, js-yaml@^3.13.1, js-yaml@^3.9.0:
js-yaml@^3.13.0, js-yaml@^3.13.1:
version "3.13.1"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==
@ -6462,9 +6459,9 @@ lodash.uniq@^4.5.0:
integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==
loglevel@^1.4.1:
version "1.6.2"
resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.2.tgz#668c77948a03dbd22502a3513ace1f62a80cc372"
integrity sha512-Jt2MHrCNdtIe1W6co3tF5KXGRkzF+TYffiQstfXa04mrss9IKXzAAXYWak8LbZseAQY03sH2GzMCMU0ZOUc9bg==
version "1.6.3"
resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.3.tgz#77f2eb64be55a404c9fd04ad16d57c1d6d6b1280"
integrity sha512-LoEDv5pgpvWgPF4kNYuIp0qqSJVWak/dML0RY74xlzMZiT9w77teNAwKYKWBTYjlokMirg+o3jBwp+vlLrcfAA==
loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.0, loose-envify@^1.3.1, loose-envify@^1.4.0:
version "1.4.0"
@ -6778,7 +6775,7 @@ mobx@^5.9.4:
resolved "https://registry.yarnpkg.com/mobx/-/mobx-5.10.1.tgz#eb0e2ff76fe376d0a42c941533260deeae5956d8"
integrity sha512-L+akEGxdkKYssejgW9ayRPx5cZYJfxvTmdBUeR3S9oeumScV7Jj57yPeh9WMEk6NWeG8Wx3H0cWhqs0pftbtmg==
moment@2.x, moment@^2.24.0:
moment@*, moment@2.x, moment@^2.24.0:
version "2.24.0"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b"
integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==
@ -7155,7 +7152,7 @@ obuf@^1.0.0, obuf@^1.1.2:
resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e"
integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==
omit.js@^1.0.0:
omit.js@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/omit.js/-/omit.js-1.0.2.tgz#91a14f0eba84066dfa015bf30e474c47f30bc858"
integrity sha512-/QPc6G2NS+8d4L/cQhbk6Yit1WTB6Us2g84A7A/1+w9d/eRGHyEqC5kkQtHVoHZ5NFWGG7tUGgrhVZwgZanKrQ==
@ -7801,11 +7798,11 @@ postcss-lab-function@^2.0.1:
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"
integrity sha512-V5JBLzw406BB8UIfsAWSK2KSwIJ5yoEIVFb4gVkXci0QdKgA24jLmHZ/ghe/GgX0lJ0/D1uUK1ejhzEY94MChQ==
version "2.1.0"
resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.0.tgz#c84d692b7bb7b41ddced94ee62e8ab31b417b003"
integrity sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q==
dependencies:
cosmiconfig "^4.0.0"
cosmiconfig "^5.0.0"
import-cwd "^2.0.0"
postcss-loader@3.0.0:
@ -8300,7 +8297,7 @@ prompts@^2.0.1:
kleur "^3.0.2"
sisteransi "^1.0.0"
prop-types@15.x, prop-types@^15.5.0, prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.6, prop-types@^15.5.7, prop-types@^15.5.8, prop-types@^15.5.9, prop-types@^15.6.0, prop-types@^15.6.2:
prop-types@15.x, prop-types@^15.5.0, prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.6, prop-types@^15.5.7, prop-types@^15.5.8, prop-types@^15.5.9, prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.7.2:
version "15.7.2"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==
@ -8463,7 +8460,7 @@ rc-align@^2.4.0, rc-align@^2.4.1:
prop-types "^15.5.8"
rc-util "^4.0.4"
rc-animate@2.x, rc-animate@^2.3.0, rc-animate@^2.5.4, rc-animate@^2.6.0, rc-animate@^2.8.2:
rc-animate@2.x, rc-animate@^2.3.0, rc-animate@^2.6.0, rc-animate@^2.8.2, rc-animate@^2.8.3:
version "2.8.3"
resolved "https://registry.yarnpkg.com/rc-animate/-/rc-animate-2.8.3.tgz#80d45402f35d3617276fc14810fb8a635fe90dc0"
integrity sha512-VPSHJF/PW9zrPVCdQ94/YOI2lFfJVlaiAeQveJN2nlPVMivgvXkuFJyfe42GbZqm+qlnRjH9B4WbY9rCZz9miw==
@ -8489,7 +8486,7 @@ rc-animate@^3.0.0-rc.1:
rc-util "^4.5.0"
react-lifecycles-compat "^3.0.4"
rc-calendar@~9.14.0:
rc-calendar@~9.14.5:
version "9.14.5"
resolved "https://registry.yarnpkg.com/rc-calendar/-/rc-calendar-9.14.5.tgz#77c9d6bfec827d2e325adc770f1cef2fa2e4fc0e"
integrity sha512-UCo2O7e3hfOJrV0pkBzpw5vedwyn08YTWvErMTvYbz3nE7rLehXH6i2ABUe1fMCIXoH+YDhQ085SRJgKyA3mZA==
@ -8502,7 +8499,7 @@ rc-calendar@~9.14.0:
rc-util "^4.1.1"
react-lifecycles-compat "^3.0.4"
rc-cascader@~0.17.0:
rc-cascader@~0.17.4:
version "0.17.4"
resolved "https://registry.yarnpkg.com/rc-cascader/-/rc-cascader-0.17.4.tgz#bb38ba3ed0990bfaa5ee547467d85ecc0d152f96"
integrity sha512-CeFQJIMzY7x++uPqlx4Xl/cH8iTs8nRoW522+DLb21kdL5kWqKlK+3iHXExoxcAymjwo5ScIiXi+NY4m8Pgq9w==
@ -8515,7 +8512,7 @@ rc-cascader@~0.17.0:
shallow-equal "^1.0.0"
warning "^4.0.1"
rc-checkbox@~2.1.5:
rc-checkbox@~2.1.6:
version "2.1.7"
resolved "https://registry.yarnpkg.com/rc-checkbox/-/rc-checkbox-2.1.7.tgz#ae6785525cf35fa4c62d706c4a1ff7b2b1fcb821"
integrity sha512-8L+0XuucUOMUM6F/7qH+hnQpEHPZfW1Um02lUHEVdpZNor5mC0Fj4x8GvTtwcM1pAl5tD3I6lHYD8cE1W8RZJw==
@ -8525,7 +8522,7 @@ rc-checkbox@~2.1.5:
prop-types "15.x"
react-lifecycles-compat "^3.0.4"
rc-collapse@~1.11.1:
rc-collapse@~1.11.3:
version "1.11.3"
resolved "https://registry.yarnpkg.com/rc-collapse/-/rc-collapse-1.11.3.tgz#6f0c5ef65e66930c11fe9e7d2483a8a4c362f2d3"
integrity sha512-yECQX2iDPWnKcVi3Wz5bomZuJ2u+wv+kGxuKo2GIRz7Brh9jkGQz5ElghCV1jqDGnzy8GIRxxHHSwlSgdxdUog==
@ -8538,15 +8535,15 @@ rc-collapse@~1.11.1:
shallowequal "^1.1.0"
rc-dialog@~7.4.0:
version "7.4.0"
resolved "https://registry.yarnpkg.com/rc-dialog/-/rc-dialog-7.4.0.tgz#640551235b1f886c7f9a01ce75f87102a70ae1d4"
integrity sha512-X2JdDjphlOHPkqXUmmTAhYvcDAgGeM/VFjF5r/AMqjDYIL2xZkvrrOOq7KNxddRAJ0r1V4Ib/MTgCfhhti/aew==
version "7.4.1"
resolved "https://registry.yarnpkg.com/rc-dialog/-/rc-dialog-7.4.1.tgz#2bb4dee930bbed404b032710fff07732db09ebdd"
integrity sha512-vvVVP7AUjxs2AEGL5GUr6BjfVzaiBV5RoiPYchCDqHmf8n7xTrfsACAhZ2Vezj6mtl2446zhxoGvhxNpyCyX7A==
dependencies:
babel-runtime "6.x"
rc-animate "2.x"
rc-util "^4.4.0"
rc-drawer@~1.9.3:
rc-drawer@~1.9.8:
version "1.9.8"
resolved "https://registry.yarnpkg.com/rc-drawer/-/rc-drawer-1.9.8.tgz#241dae399d6fc3d8ea117e768b27088d97cb5946"
integrity sha512-LUOsMdax6yFhCbHpzpPBpf4GlQaLQ1OoBrpyImREghynfVoCs8WT6WUfE3FWWG1PM0Fs8f+yY4uiR7rMFQxl5A==
@ -8580,7 +8577,7 @@ rc-editor-core@~0.8.3:
prop-types "^15.5.8"
setimmediate "^1.0.5"
rc-editor-mention@^1.1.7:
rc-editor-mention@^1.1.13:
version "1.1.13"
resolved "https://registry.yarnpkg.com/rc-editor-mention/-/rc-editor-mention-1.1.13.tgz#9f1cab1065f86b01523840321790c2ab12ac5e8b"
integrity sha512-3AOmGir91Fi2ogfRRaXLtqlNuIwQpvla7oUnGHS1+3eo7b+fUp5IlKcagqtwUBB5oDNofoySXkLBxzWvSYNp/Q==
@ -8594,7 +8591,7 @@ rc-editor-mention@^1.1.7:
rc-animate "^2.3.0"
rc-editor-core "~0.8.3"
rc-form@^2.4.0:
rc-form@^2.4.5:
version "2.4.5"
resolved "https://registry.yarnpkg.com/rc-form/-/rc-form-2.4.5.tgz#9aa8c844b6fea1da5a03ed5e4f8475bfd0fd6ab7"
integrity sha512-qyltQUDSJDFmK2vavNn5GdbA4+P9Xd10kRzOKGZpl4NNAKirKZ4F6MAuY3n5U/k74LIZ3kme1+SEkxNaHuYyTA==
@ -8616,7 +8613,7 @@ rc-hammerjs@~0.6.0:
hammerjs "^2.0.8"
prop-types "^15.5.9"
rc-input-number@~4.4.0:
rc-input-number@~4.4.5:
version "4.4.5"
resolved "https://registry.yarnpkg.com/rc-input-number/-/rc-input-number-4.4.5.tgz#81473d2885a6b312e486c4f2ba3f441c1ab88520"
integrity sha512-Dt20e8Ylc/N/6oXiPUlwDVdx3fz7W5umUOa4z5pBuWFG7NPlBVXRWkq7+nbnTyaK24UxN67PVpmD3+Omo+QRZQ==
@ -8640,7 +8637,7 @@ rc-mentions@~0.3.1:
rc-util "^4.6.0"
react-lifecycles-compat "^3.0.4"
rc-menu@^7.3.0, rc-menu@^7.4.22, rc-menu@~7.4.12:
rc-menu@^7.3.0, rc-menu@^7.4.22, rc-menu@~7.4.23:
version "7.4.23"
resolved "https://registry.yarnpkg.com/rc-menu/-/rc-menu-7.4.23.tgz#e07d497864274076299d7d8a84d14fc86b6bd30d"
integrity sha512-d0pUMN0Zr3GCFxNpas8p7AUTeX8viItUOQXku4AsyX82ZzUz79HgGul2Nk17BIFTtLzqdB7/NT6WVb5PAOOILw==
@ -8657,7 +8654,7 @@ rc-menu@^7.3.0, rc-menu@^7.4.22, rc-menu@~7.4.12:
rc-util "^4.1.0"
resize-observer-polyfill "^1.5.0"
rc-notification@~3.3.0:
rc-notification@~3.3.1:
version "3.3.1"
resolved "https://registry.yarnpkg.com/rc-notification/-/rc-notification-3.3.1.tgz#0baa3e70f8d40ab015ce8fa78c260c490fc7beb4"
integrity sha512-U5+f4BmBVfMSf3OHSLyRagsJ74yKwlrQAtbbL5ijoA0F2C60BufwnOcHG18tVprd7iaIjzZt1TKMmQSYSvgrig==
@ -8696,7 +8693,7 @@ rc-rate@~2.5.0:
rc-util "^4.3.0"
react-lifecycles-compat "^3.0.4"
rc-select@~9.1.0:
rc-select@~9.1.4:
version "9.1.4"
resolved "https://registry.yarnpkg.com/rc-select/-/rc-select-9.1.4.tgz#de6dc0eb5a3d9573fbd9084930e44f09703dbe69"
integrity sha512-vW6Zsm9MrzxKI4/GRGTJESONn5TqCE7sXEv3uAz1KFby/eImUo5/ngLUn7V8ey8rs4P72UyMvhUfnNzbrcrvOw==
@ -8714,10 +8711,10 @@ rc-select@~9.1.0:
react-lifecycles-compat "^3.0.2"
warning "^4.0.2"
rc-slider@~8.6.5:
version "8.6.12"
resolved "https://registry.yarnpkg.com/rc-slider/-/rc-slider-8.6.12.tgz#40bb0a6e35f13183f08a3e6aa9a2adbd8dabd39d"
integrity sha512-mfYRg7H/smb2MlbqAB+/a34e8PeVqAr7t7hrfSS5+0njuDin4qCwoUHkX1jygGeEwtMAdGJ3buE0wRW988R7Xw==
rc-slider@~8.6.11:
version "8.6.13"
resolved "https://registry.yarnpkg.com/rc-slider/-/rc-slider-8.6.13.tgz#88a8150c2dda6709f3f119135de11fba80af765b"
integrity sha512-fCUe8pPn8n9pq1ARX44nN2nzJoATtna4x/PdskUrxIvZXN8ja7HuceN/hq6kokZjo3FBD2B1yMZvZh6oi68l6Q==
dependencies:
babel-runtime "6.x"
classnames "^2.2.5"
@ -8746,10 +8743,10 @@ rc-switch@~1.9.0:
prop-types "^15.5.6"
react-lifecycles-compat "^3.0.4"
rc-table@~6.5.0:
version "6.5.1"
resolved "https://registry.yarnpkg.com/rc-table/-/rc-table-6.5.1.tgz#b05ef79127e24b353083f8399dedaa9cbfbd16a2"
integrity sha512-Tu6+UQmKV5ZKMs3TB52OUb9oF9epyk/wlSQxGa7eP6fBQfKcjNVEfzVEjayh203IWI39xjHw0cgeMuvTnnRHaQ==
rc-table@~6.6.0:
version "6.6.6"
resolved "https://registry.yarnpkg.com/rc-table/-/rc-table-6.6.6.tgz#22a7160be5c02010261a351cdb1157b7897269e9"
integrity sha512-1/7hE+8BEA5jt6POpb22lw9XzzRbBL+SnMq5QfC3WoCTeSmlhuufOg6alwY886+CvV4K6gQKfInXGaLIWyK23A==
dependencies:
babel-runtime "6.x"
classnames "^2.2.5"
@ -8762,7 +8759,7 @@ rc-table@~6.5.0:
shallowequal "^1.0.2"
warning "^3.0.0"
rc-tabs@~9.6.0:
rc-tabs@~9.6.4:
version "9.6.4"
resolved "https://registry.yarnpkg.com/rc-tabs/-/rc-tabs-9.6.4.tgz#8910f79f0dbfbcb794a3ff879642311fc7c3eff0"
integrity sha512-l4PoDSShNJ6pWGuR1UcUgvee48b3Qu1jgMEaD1hH3Rc+mqysoO7hA9AQ1YywkIy34afGTTejAWDSIFZ0lmg08g==
@ -8778,7 +8775,7 @@ rc-tabs@~9.6.0:
resize-observer-polyfill "^1.5.1"
warning "^3.0.0"
rc-time-picker@~3.6.1:
rc-time-picker@~3.6.6:
version "3.6.6"
resolved "https://registry.yarnpkg.com/rc-time-picker/-/rc-time-picker-3.6.6.tgz#343390ad1a3a06b49848c266d8311b3c572ca0d1"
integrity sha512-NVeJuxWjg9eJ0+jcCCT2dxVY2OBYxOrjsgu8ly0lk9IUJ8lwjS6JU+OibHRPJPew3Smfz88dz7GQRdBE7BcnRA==
@ -8842,9 +8839,9 @@ rc-tree@~2.1.0:
warning "^4.0.3"
rc-trigger@^2.2.0, rc-trigger@^2.2.2, rc-trigger@^2.3.0, rc-trigger@^2.5.1, rc-trigger@^2.5.4, rc-trigger@^2.6.2:
version "2.6.2"
resolved "https://registry.yarnpkg.com/rc-trigger/-/rc-trigger-2.6.2.tgz#a9c09ba5fad63af3b2ec46349c7db6cb46657001"
integrity sha512-op4xCu95/gdHVaysyxxiYxbY+Z+UcIBSUY9nQfLqm1FlitdtnAN+owD5iMPfnnsRXntgcQ5+RdYKNUFQT5DjzA==
version "2.6.3"
resolved "https://registry.yarnpkg.com/rc-trigger/-/rc-trigger-2.6.3.tgz#9d8b1adcb8f438038ee64039571dafbe03864fec"
integrity sha512-wcYFTdWBcHjK+Wu72sLzpKttKBqJpFoIv7Ho6AnAjjsJZlxi+MpHrQs9ozRM3Q9G1M87BSYYrORGSgx5HpGI1w==
dependencies:
babel-runtime "6.x"
classnames "^2.2.6"
@ -8866,7 +8863,7 @@ rc-trigger@^3.0.0-rc.2:
rc-animate "^3.0.0-rc.1"
rc-util "^4.4.0"
rc-upload@~2.6.0:
rc-upload@~2.6.7:
version "2.6.7"
resolved "https://registry.yarnpkg.com/rc-upload/-/rc-upload-2.6.7.tgz#835d8dceae2c7bdfb7c81211d6ddf02348097146"
integrity sha512-i6roYvM31ue50r0w/MbxOdbbkZHqpJLT29JyjQC2W5i/7w0/lZJkWEmj/DG5WRRJCnVfIiKmXp2437oXnUFNuw==
@ -9310,11 +9307,6 @@ require-directory@^2.1.1:
resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
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"
integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
require-main-filename@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
@ -9375,9 +9367,9 @@ resolve@1.10.0:
path-parse "^1.0.6"
resolve@^1.10.0, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1, resolve@^1.9.0:
version "1.11.1"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.1.tgz#ea10d8110376982fef578df8fc30b9ac30a07a3e"
integrity sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==
version "1.11.0"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.0.tgz#4014870ba296176b86343d50b60f3b50609ce232"
integrity sha512-WL2pBDjqT6pGUNSUzMw00o4T7If+z4H2x3Gz893WoUQ5KW8Vr9txp00ykiP16VBaZF5+j/OcXJHZ9+PCvdiDKw==
dependencies:
path-parse "^1.0.6"
@ -9453,7 +9445,7 @@ rxjs@^6.4.0:
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:
safe-buffer@5.1.2, safe-buffer@>=5.1.1, 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"
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
@ -9503,9 +9495,9 @@ sax@^1.2.4, sax@~1.2.4:
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
saxes@^3.1.9:
version "3.1.9"
resolved "https://registry.yarnpkg.com/saxes/-/saxes-3.1.9.tgz#c1c197cd54956d88c09f960254b999e192d7058b"
integrity sha512-FZeKhJglhJHk7eWG5YM0z46VHmI3KJpMBAQm3xa9meDvd+wevB5GuBB0wc0exPInZiBBHqi00DbS8AcvCGCFMw==
version "3.1.10"
resolved "https://registry.yarnpkg.com/saxes/-/saxes-3.1.10.tgz#6028a4d6d65f0b5f5b5d250c0500be6a7950fe13"
integrity sha512-G/mVZCCGhJqgS+I7wT5gBHyTNXLe2SQcu2qmhwl1OKcSHyJEXKQY2CLT+qWIxV+m6uiGMLfSOJGLQQHhklIeEQ==
dependencies:
xmlchars "^1.3.1"
@ -9673,9 +9665,9 @@ shallow-clone@^1.0.0:
mixin-object "^2.0.1"
shallow-equal@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/shallow-equal/-/shallow-equal-1.1.0.tgz#cc022f030dcba0d1c198abf658a3c6c744e171ca"
integrity sha512-0SW1nWo1hnabO62SEeHsl8nmTVVEzguVWZCj5gaQrgWAxz/BaCja4OWdJBWLVPDxdtE/WU7c98uUCCXyPHSCvw==
version "1.2.0"
resolved "https://registry.yarnpkg.com/shallow-equal/-/shallow-equal-1.2.0.tgz#fd828d2029ff4e19569db7e19e535e94e2d1f5cc"
integrity sha512-Z21pVxR4cXsfwpMKMhCEIO1PCi5sp7KEp+CmOpBQ+E8GpHwKOw2sEzk7sgblM3d/j4z4gakoWEoPcjK0VJQogA==
shallowequal@^0.2.2:
version "0.2.2"
@ -10409,9 +10401,9 @@ ts-pnp@1.1.2, ts-pnp@^1.0.0:
integrity sha512-f5Knjh7XCyRIzoC/z1Su1yLLRrPrFCgtUAh/9fCSP6NKbATwpOL1+idQVXQokK9GRFURn/jYPGPfegIctwunoA==
tslib@^1.8.1, tslib@^1.9.0:
version "1.9.3"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286"
integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==
version "1.10.0"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a"
integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==
tsutils@^3.7.0:
version "3.14.0"
@ -10548,9 +10540,9 @@ unique-filename@^1.1.1:
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"
integrity sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg==
version "2.0.2"
resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c"
integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==
dependencies:
imurmurhash "^0.1.4"
@ -10776,7 +10768,7 @@ walker@^1.0.7, walker@~1.0.5:
dependencies:
makeerror "1.0.x"
warning@4.x, warning@^4.0.1, warning@^4.0.2, warning@^4.0.3, warning@~4.0.2:
warning@4.x, warning@^4.0.1, warning@^4.0.2, warning@^4.0.3, warning@~4.0.3:
version "4.0.3"
resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3"
integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==
@ -10925,11 +10917,12 @@ webpack@4.29.6:
webpack-sources "^1.3.0"
websocket-driver@>=0.5.1:
version "0.7.0"
resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.0.tgz#0caf9d2d755d93aee049d4bdd0d3fe2cca2a24eb"
integrity sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=
version "0.7.1"
resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.1.tgz#d58fa3269f51e480f5af051db7f5c5c1a1092d20"
integrity sha512-EC4YX5LEHtiB1XjaCh6++35jGaFmhT7687pySyCfPX9bB8Quw7+Fpx8gSCpkD78tPjalxuoOm8TtTz8K4dAQEg==
dependencies:
http-parser-js ">=0.4.0"
safe-buffer ">=5.1.1"
websocket-extensions ">=0.1.1"
websocket-extensions@>=0.1.1: