diff --git a/.editorconfig b/.editorconfig index d566baa..5fd5daf 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,9 +1,9 @@ [*] -indent_style = tab -indent_size = 4 +indent_style = space +indent_size = 2 trim_trailing_whitespace = true # Some exceptions -[{package.json}] +[{package.json,*.yml}] indent_style = space indent_size = 2 diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..3f3aae3 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,7 @@ +{ + "semi": true, + "singleQuote": true, + "tabWidth": 2, + "jsxBracketSameLine": true, + "useTabs": false +} diff --git a/.yarnrc b/.yarnrc deleted file mode 100644 index 4f14322..0000000 --- a/.yarnrc +++ /dev/null @@ -1 +0,0 @@ ---ignore-engines true diff --git a/demos/demo-standard/index.story.tsx b/demos/demo-standard/index.story.tsx index b8ede55..ef6fb59 100644 --- a/demos/demo-standard/index.story.tsx +++ b/demos/demo-standard/index.story.tsx @@ -1,79 +1,84 @@ -import { CanvasWidget } from "../../src/widgets/CanvasWidget"; -import * as React from "react"; -import { CanvasEngine } from "../../src/CanvasEngine"; -import { CanvasModel } from "../../src/models-canvas/CanvasModel"; -import { CanvasLayerModel } from "../../src/models-canvas/CanvasLayerModel"; -import { RectangleElementModel } from "../../src/primitives/rectangle/RectangleElementModel"; - -import { storiesOf } from "@storybook/react"; -import { button } from "@storybook/addon-knobs"; -import { GridElementModel } from "../../src/primitives/grid/GridElementModel"; -import { PaperElementModel } from "../../src/primitives/paper/PaperElementModel"; - -storiesOf("Simple Usage", module).add("Full example", () => { - //setup canvas engine - let engine = new CanvasEngine(); - engine.enableDebugMode(true); - engine.installDefaults(); - - let model = new CanvasModel(); - model.setOffset(100, 100); - model.setZoomLevel(1); - engine.setModel(model); - - // grid layer - let layer2 = new CanvasLayerModel(); - layer2.setSVG(true); - layer2.setTransformable(false); - model.addLayer(layer2); - - let gridModel = new GridElementModel(); - layer2.addModel(gridModel); - - let gridModel2 = new GridElementModel(); - gridModel2.sizeX = 200; - gridModel2.sizeY = 200; - gridModel2.color = "cyan"; - gridModel2.thickness = 2; - layer2.addModel(gridModel2); - - // paper layer - let paperLayer = new CanvasLayerModel(); - paperLayer.setSVG(false); - paperLayer.setTransformable(true); - let paper = new PaperElementModel(); - paperLayer.addModel(paper); - model.addLayer(paperLayer); - - // add layer - let layer = new CanvasLayerModel(); - layer.setSVG(true); - layer.setTransformable(true); - model.addLayer(layer); - - // squares - let squareModel = new RectangleElementModel(); - squareModel.dimensions.updateDimensions(-100, -100, 100, 100); - - let squareModel2 = new RectangleElementModel(); - squareModel2.dimensions.updateDimensions(300, 300, 50, 70); - - let squareModel3 = new RectangleElementModel(); - squareModel3.dimensions.updateDimensions(420, 420, 50, 70); - - layer.addModels([squareModel, squareModel2, squareModel3]); - - button("Fit Width", () => { - engine.getCanvasWidget().zoomToFit(15); - }); - - button("Undo", () => { - engine.getHistoryBank().goBackward(); - }); - - button("Redo", () => { - engine.getHistoryBank().goForward(); - }); - - return <CanvasWidget className={"demo-canvas"} engine={engine} />; +import * as React from 'react'; +import { CanvasEngine } from '../../src/CanvasEngine'; +import { CanvasModel } from '../../src/primitives-core/canvas/CanvasModel'; +import { LayerModel } from '../../src/primitives-core/layer/LayerModel'; +import { RectangleElementModel } from '../../src/primitives/rectangle/RectangleElementModel'; + +import { storiesOf } from '@storybook/react'; +import { button } from '@storybook/addon-knobs'; +import { GridElementModel } from '../../src/primitives/grid/GridElementModel'; +import { PaperElementModel } from '../../src/primitives/paper/PaperElementModel'; +import { installDebugInteractivity } from '../../src/interactivity/debug-interactivity'; +import { installDefaultInteractivity } from '../../src/interactivity/default-interactivity'; +import { SmartCanvasWidget } from '../../src/primitives-core/canvas/SmartCanvasWidget'; + +storiesOf('Simple Usage', module).add('Full example', () => { + //setup canvas engine + let engine = new CanvasEngine(); + + let model = new CanvasModel(); + model.setOffset(100, 100); + model.setZoomLevel(1); + engine.setModel(model); + + engine.installDefaults(); + installDebugInteractivity(engine); + installDefaultInteractivity(engine); + + // grid layer + let layer2 = new LayerModel(); + layer2.setSVG(true); + layer2.setTransformable(false); + model.addLayer(layer2); + + let gridModel = new GridElementModel(); + layer2.addModel(gridModel); + + let gridModel2 = new GridElementModel(); + gridModel2.sizeX = 200; + gridModel2.sizeY = 200; + gridModel2.color = 'cyan'; + gridModel2.thickness = 2; + layer2.addModel(gridModel2); + + // paper layer + let paperLayer = new LayerModel(); + paperLayer.setSVG(false); + paperLayer.setTransformable(true); + let paper = new PaperElementModel(); + paperLayer.addModel(paper); + model.addLayer(paperLayer); + + // add layer + let layer = new LayerModel(); + layer.setSVG(true); + layer.setTransformable(true); + model.addLayer(layer); + + // squares + let squareModel = new RectangleElementModel(); + squareModel.dimensions.updateDimensions(-100, -100, 100, 100); + + let squareModel2 = new RectangleElementModel(); + squareModel2.dimensions.updateDimensions(300, 300, 50, 70); + + let squareModel3 = new RectangleElementModel(); + squareModel3.dimensions.updateDimensions(420, 420, 50, 70); + squareModel3.dimensions.rotate(33); + + layer.addModels([squareModel, squareModel2, squareModel3]); + + button('Fit Width', () => { + model.zoomToFit(15); + }); + + button('Undo', () => { + engine.getHistoryBank().goBackward(); + }); + + button('Redo', () => { + engine.getHistoryBank().goForward(); + }); + + return <SmartCanvasWidget model={model} className={'demo-canvas'} engine={engine} />; }); diff --git a/demos/index.tsx b/demos/index.tsx index 19aecf4..4f5e6ed 100644 --- a/demos/index.tsx +++ b/demos/index.tsx @@ -1,16 +1,15 @@ -import * as React from "react"; -import { storiesOf, addDecorator } from "@storybook/react"; -import { setOptions } from "@storybook/addon-options"; -import { withKnobs, text, boolean, number } from "@storybook/addon-knobs/react"; -import { configureViewport } from '@storybook/addon-viewport'; +import * as React from 'react'; +import { addDecorator } from '@storybook/react'; +import { setOptions } from '@storybook/addon-options'; +import { withKnobs } from '@storybook/addon-knobs/react'; //include the SCSS for the demo -import "./.helpers/demo.scss"; -import "../src/sass/main.scss"; +import './.helpers/demo.scss'; +import '../src/sass/main.scss'; addDecorator(withKnobs); setOptions({ - name: "STORM React Canvas", - url: "https://github.com/projectstorm/react-canvas", - addonPanelInRight: true + name: 'STORM React Canvas', + url: 'https://github.com/projectstorm/react-canvas', + addonPanelInRight: true }); diff --git a/package.json b/package.json index 86326f2..0f37b3c 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "main": "./dist/main.js", "typings": "./dist/@types/src/main", "scripts": { - "pretty": "prettier --use-tabs --write \"{src,demos,tests}/**/*.{ts,tsx}\" --print-width 120", + "pretty": "prettier --write \"{src,demos,tests}/**/*.{ts,tsx}\" --print-width 120", "storybook": "start-storybook -p 9001 -c .storybook", "storybook:build": "build-storybook -c .storybook -o .out", "storybook:github": "storybook-to-ghpages" @@ -12,37 +12,37 @@ "dependencies": { "@projectstorm/react-core": "^1.2.11", "lodash": "^4.17.11", - "mathjs": "^5.1.2", - "react": "^16.5.1" + "mathjs": "^5.8.0", + "react": "^16.8.4" }, "devDependencies": { "@babel/core": "^7", - "@storybook/addon-actions": "^4.0.0-alpha.21", - "@storybook/addon-knobs": "^4.0.0-alpha.21", - "@storybook/addon-options": "^4.0.0-alpha.21", - "@storybook/addon-storysource": "^4.0.0-alpha.21", - "@storybook/addons": "^4.0.0-alpha.21", - "@storybook/react": "^4.0.0-alpha.21", - "@types/lodash": "^4.14.116", - "@types/mathjs": "^4.4.1", - "@types/react": "^16.4.14", - "@types/react-dom": "^16.0.7", + "@storybook/addon-actions": "^5.0.3", + "@storybook/addon-knobs": "^5.0.3", + "@storybook/addon-options": "^5.0.3", + "@storybook/addon-storysource": "^5.0.3", + "@storybook/addons": "^5.0.3", + "@storybook/react": "^5.0.3", + "@types/lodash": "^4.14.123", + "@types/mathjs": "^5.0.1", + "@types/react": "^16.8.8", + "@types/react-dom": "^16.8.3", "awesome-typescript-loader": "5", - "babel-loader": "^8.0.2", - "css-loader": "^1.0.0", - "file-loader": "^2.0.0", - "moment": "^2.22.2", - "node-sass": "^4.9.3", - "prettier": "^1.14.2", - "react-dom": "^16.5.1", + "babel-loader": "^8.0.5", + "css-loader": "^2.1.1", + "file-loader": "^3.0.1", + "moment": "^2.24.0", + "node-sass": "^4.11.0", + "prettier": "^1.16.4", + "react-dom": "^16.8.4", "sass-loader": "^7.1.0", "source-map-loader": "^0.2.4", - "style-loader": "^0.23.0", - "ts-loader": "^5.1.1", + "style-loader": "^0.23.1", + "ts-loader": "^5.3.3", "tsconfig-paths-webpack-plugin": "^3.2.0", - "typescript": "^3.0.3", - "webpack": "^4.19.0", - "webpack-cli": "^3.1.0", + "typescript": "^3.3.4000", + "webpack": "^4.29.6", + "webpack-cli": "^3.3.0", "webpack-node-externals": "^1.7.2" } } diff --git a/src/AbstractElementFactory.ts b/src/AbstractElementFactory.ts deleted file mode 100644 index 49e56f7..0000000 --- a/src/AbstractElementFactory.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { CanvasEngine } from "./CanvasEngine"; -import { AbstractState } from "./state-machine/AbstractState"; -import { BaseModel } from "./base-models/BaseModel"; - -export abstract class AbstractElementFactory<T extends BaseModel = BaseModel> { - public type: string; - protected directiveProcessors; - protected engine: CanvasEngine; - - constructor(type: string) { - this.type = type; - this.directiveProcessors = []; - } - - setEngine(engine: CanvasEngine) { - this.engine = engine; - } - - getCanvasStates(): AbstractState[] { - return []; - } - - abstract generateModel(): T; - - abstract generateWidget(engine: CanvasEngine, model: T): JSX.Element; -} diff --git a/src/CanvasEngine.ts b/src/CanvasEngine.ts index 06dab6b..4d2fc70 100644 --- a/src/CanvasEngine.ts +++ b/src/CanvasEngine.ts @@ -1,273 +1,189 @@ -import * as _ from "lodash"; -import { AbstractElementFactory } from "./AbstractElementFactory"; -import { RectangleElementFactory } from "./primitives/rectangle/RectangleElementFactory"; -import { CanvasModel } from "./models-canvas/CanvasModel"; -import { CanvasWidget } from "./widgets/CanvasWidget"; -import { SelectionElementFactory } from "./primitives/selection/SelectionElementFactory"; -import { StateMachine } from "./state-machine/StateMachine"; -import { TranslateCanvasState } from "./state-machine/states/TranslateCanvasState"; -import { GridElementFactory } from "./primitives/grid/GridElementFactory"; -import { EllipseElementFactory } from "./primitives/ellipse/EllipseElementFactory"; -import { TranslateElementState } from "./state-machine/states/TranslateElementState"; -import { SelectElementsState } from "./state-machine/states/SelectElementsState"; -import { HistoryBank } from "./history/HistoryBank"; -import { CanvasLayerFactory } from "./CanvasLayerFactory"; -import { EventBus } from "./event-bus/EventBus"; -import { ZoomCanvasAction } from "./event-bus/actions/ZoomCanvasAction"; -import { MouseDownInput } from "./state-machine/input/MouseDownInput"; -import { KeyInput } from "./state-machine/input/KeyInput"; -import { ModelElementInput } from "./state-machine/input/ModelElementInput"; -import { DefaultState } from "./state-machine/states/DefaultState"; -import { Toolkit } from "@projectstorm/react-core"; -import { CanvasLayerModel } from "./models-canvas/CanvasLayerModel"; -import { SelectionElementModel } from "./primitives/selection/SelectionElementModel"; -import { ModelEvent } from "./event-bus/events/ModelEvent"; -import { InlineAction } from "./event-bus/InlineAction"; -import { PaperElementFactory } from "./primitives/paper/PaperElementFactory"; -import { BaseEvent, BaseObject } from "@projectstorm/react-core"; -import { BaseModel, DeserializeEvent } from "./base-models/BaseModel"; -import { EllipseElementModel } from "./primitives/ellipse/EllipseElementModel"; -import { DeselectModelsAction } from "./event-bus/actions/DeselectModelsAction"; +import * as _ from 'lodash'; +import { AbstractElementFactory } from './base-factories/AbstractElementFactory'; +import { RectangleElementFactory } from './primitives/rectangle/RectangleElementFactory'; +import { CanvasModel } from './primitives-core/canvas/CanvasModel'; +import { SelectionElementFactory } from './primitives/selection/SelectionElementFactory'; +import { StateMachine } from './state-machine/StateMachine'; +import { TranslateCanvasState } from './state-machine/states/TranslateCanvasState'; +import { GridElementFactory } from './primitives/grid/GridElementFactory'; +import { EllipseElementFactory } from './primitives/ellipse/EllipseElementFactory'; +import { TranslateElementState } from './state-machine/states/TranslateElementState'; +import { SelectElementsState } from './state-machine/states/SelectElementsState'; +import { HistoryBank } from './history/HistoryBank'; +import { LayerFactory } from './primitives-core/layer/LayerFactory'; +import { EventBus } from './event-bus/EventBus'; +import { ZoomCanvasAction } from './event-bus/actions/ZoomCanvasAction'; +import { MouseDownInput } from './state-machine/input/MouseDownInput'; +import { KeyInput } from './state-machine/input/KeyInput'; +import { ModelElementInput } from './state-machine/input/ModelElementInput'; +import { DefaultState } from './state-machine/states/DefaultState'; +import { Toolkit } from '@projectstorm/react-core'; +import { ModelEvent } from './event-bus/events/ModelEvent'; +import { PaperElementFactory } from './primitives/paper/PaperElementFactory'; +import { BaseEvent, BaseObject } from '@projectstorm/react-core'; +import { BaseModel, DeserializeEvent } from './base-models/BaseModel'; +import { DeselectModelsAction } from './event-bus/actions/DeselectModelsAction'; +import { CanvasFactory } from './primitives-core/canvas/CanvasFactory'; export class CanvasEngineError extends Error {} export interface CanvasEngineListener<T> { - modelChanged?: (event: BaseEvent & { model: T; oldModel: T }) => any; + modelChanged?: (event: BaseEvent & { model: T; oldModel: T }) => any; + repaint?: () => any; } export class CanvasEngine<T extends CanvasModel = CanvasModel> extends BaseObject<CanvasEngineListener<T>> { - protected elementFactories: { [type: string]: AbstractElementFactory }; - protected model: T; - protected stateMachine: StateMachine; - protected canvasWidget; - protected historyBank: HistoryBank; - protected eventBus: EventBus; - protected debugMode: boolean; - - private modelListener: string; - debugLayer: CanvasLayerModel; - - constructor() { - super(); - this.elementFactories = {}; - this.model = null; - this.canvasWidget = null; - this.stateMachine = new StateMachine(); - this.historyBank = new HistoryBank(); - this.eventBus = new EventBus(); - this.modelListener = null; - this.debugMode = false; - - if (Toolkit.TESTING) { - Toolkit.TESTING_UID = 0; - } - } - - enableDebugMode(debug: boolean) { - this.debugMode = debug; - if (debug) { - // debug layer - this.debugLayer = new CanvasLayerModel(); - this.debugLayer.setSVG(true); - this.debugLayer.setTransformable(true); - } - } - - getEventBus(): EventBus { - return this.eventBus; - } - - getHistoryBank(): HistoryBank { - return this.historyBank; - } - - getStateMachine(): StateMachine { - return this.stateMachine; - } - - setModel(model: T) { - // uninstall the old model - if (this.modelListener) { - this.model.removeListener(this.modelListener); - } - let oldModel = this.model; - this.model = model; - this.iterateListeners("Model changed", (listener, event) => { - if (listener.modelChanged) { - listener.modelChanged({ ...event, model: model, oldModel: oldModel }); - } - }); - - // install the new model - if (model) { - this.modelListener = model.addListener({ - delegateEvent: event => { - this.eventBus.fireEvent(new ModelEvent(event)); - } - }); - } else { - this.modelListener = null; - } - } - - getModel(): T { - return this.model; - } - - generateEntityFor(type: string): BaseModel { - return this.elementFactories[type].generateModel(); - } - - deserialize(data: any) { - let event = new DeserializeEvent(data, this); - this.model.deSerialize(event); - this.canvasWidget.forceUpdate(); - } - - installHistoryBank() { - this.stateMachine.addListener({ - stateChanged: event => { - if (this.model) { - this.historyBank.pushState(this.model.serialize()); - } - } - }); - this.historyBank.addListener({ - forward: event => { - this.deserialize(event.state); - }, - backward: event => { - this.deserialize(event.state); - } - }); - } - - repaint() { - if (this.canvasWidget) { - if (this.debugMode) { - this.model.layers.moveModelToFront(this.debugLayer); - this.debugLayer.clearEntities(); - _.forEach(this.model.getElements(), element => { - let dimensions = element.getDimensions(); - if (dimensions) { - this.debugLayer.addModels( - _.map( - EllipseElementModel.createPointCloudFrom(dimensions, 3 / this.model.getZoomLevel()), - point => { - point.background = "mediumpurple"; - return point; - } - ) - ); - } - }); - } - - this.canvasWidget.forceUpdate(); - } - } - - installDefaultInteractivity() { - // selection layer - let selectionLayer = new CanvasLayerModel(); - selectionLayer.setSVG(false); - selectionLayer.setTransformable(false); - - // listen for a new model - this.addListener({ - modelChanged: event => { - if (event.oldModel) { - event.oldModel.removeLayer(selectionLayer); - if (this.debugLayer) { - event.oldModel.removeLayer(this.debugLayer); - } - } - if (event.model) { - event.model.addLayer(selectionLayer); - if (this.debugLayer) { - event.model.addLayer(this.debugLayer); - } - } - } - }); - - this.eventBus.registerAction( - new InlineAction(ModelEvent.NAME, (event: ModelEvent) => { - // setup a combo box for when there are models - if (event.modelEvent.name === "selection changed") { - selectionLayer.clearEntities(); - this.model.layers.moveModelToFront(selectionLayer); - let selected = _.filter(this.model.getElements(), element => { - return element.isSelected(); - }); - if (selected.length > 0) { - let model = new SelectionElementModel(); - model.setModels(selected); - selectionLayer.addModel(model); - this.canvasWidget.forceUpdate(); - } - } - }) - ); - } - - registerElementFactory(factory: AbstractElementFactory) { - this.elementFactories[factory.type] = factory; - factory.setEngine(this); - _.forEach(factory.getCanvasStates(), state => { - this.stateMachine.addState(state); - }); - } - - installDefaults() { - // element factories - this.registerElementFactory(new CanvasLayerFactory()); - this.registerElementFactory(new RectangleElementFactory()); - this.registerElementFactory(new SelectionElementFactory()); - this.registerElementFactory(new GridElementFactory()); - this.registerElementFactory(new EllipseElementFactory()); - this.registerElementFactory(new PaperElementFactory()); - - // install actions - KeyInput.installActions(this.stateMachine, this.eventBus); - MouseDownInput.installActions(this.stateMachine, this.eventBus); - ModelElementInput.installActions(this.stateMachine, this.eventBus); - this.eventBus.registerAction(new ZoomCanvasAction(this)); - this.eventBus.registerAction(new DeselectModelsAction(this)); - - // possible states - this.stateMachine.addState(new SelectElementsState(this)); - this.stateMachine.addState(new TranslateElementState(this)); - this.stateMachine.addState(new TranslateCanvasState(this)); - this.stateMachine.addState(new DefaultState(this)); - - // default wiring - this.installHistoryBank(); - this.installDefaultInteractivity(); - - // process to set the initial state - this.stateMachine.process(); - } - - getCanvasWidget(): CanvasWidget { - return this.canvasWidget; - } - - setCanvasWidget(widget: CanvasWidget) { - this.canvasWidget = widget; - if (widget) { - this.historyBank.pushState(this.model.serialize()); - } - } - - getFactory(type: string): AbstractElementFactory { - if (!this.elementFactories[type]) { - throw new CanvasEngineError("Cannot find Element factory with type: " + type); - } - return this.elementFactories[type]; - } - - getFactoryForElement(element: BaseModel): AbstractElementFactory { - return this.getFactory(element.getType()); - } + protected elementFactories: { [type: string]: AbstractElementFactory }; + protected model: T; + protected stateMachine: StateMachine; + protected historyBank: HistoryBank; + protected eventBus: EventBus; + protected debugMode: boolean; + + private modelListener: string; + + constructor() { + super(); + this.elementFactories = {}; + this.model = null; + this.stateMachine = new StateMachine(); + this.historyBank = new HistoryBank(); + this.eventBus = new EventBus(); + this.modelListener = null; + this.debugMode = false; + + if (Toolkit.TESTING) { + Toolkit.TESTING_UID = 0; + } + } + + getEventBus(): EventBus { + return this.eventBus; + } + + getHistoryBank(): HistoryBank { + return this.historyBank; + } + + getStateMachine(): StateMachine { + return this.stateMachine; + } + + setModel(model: T) { + // uninstall the old model + if (this.modelListener) { + this.model.removeListener(this.modelListener); + } + let oldModel = this.model; + this.model = model; + this.iterateListeners('Model changed', (listener, event) => { + if (listener.modelChanged) { + listener.modelChanged({ ...event, model: model, oldModel: oldModel }); + } + }); + + // install the new model + if (model) { + this.modelListener = model.addListener({ + delegateEvent: event => { + this.eventBus.fireEvent(new ModelEvent(event)); + } + }); + } else { + this.modelListener = null; + } + } + + getModel(): T { + return this.model; + } + + generateEntityFor(type: string): BaseModel { + return this.elementFactories[type].generateModel(); + } + + deserialize(data: any) { + let event = new DeserializeEvent(data, this); + this.model.deSerialize(event); + this.repaint(); + } + + installHistoryBank() { + this.stateMachine.addListener({ + stateChanged: event => { + if (this.model) { + this.historyBank.pushState(this.model.serialize()); + } + } + }); + this.historyBank.addListener({ + forward: event => { + this.deserialize(event.state); + }, + backward: event => { + this.deserialize(event.state); + } + }); + } + + repaint() { + this.iterateListeners('repaint', listener => { + if (listener.repaint) { + listener.repaint(); + } + }); + } + + registerElementFactory(factory: AbstractElementFactory) { + this.elementFactories[factory.type] = factory; + factory.setEngine(this); + _.forEach(factory.getCanvasStates(), state => { + this.stateMachine.addState(state); + }); + } + + installDefaults() { + // core factories + this.registerElementFactory(new LayerFactory()); + this.registerElementFactory(new CanvasFactory()); + + // element factories + this.registerElementFactory(new RectangleElementFactory()); + this.registerElementFactory(new SelectionElementFactory()); + this.registerElementFactory(new GridElementFactory()); + this.registerElementFactory(new EllipseElementFactory()); + this.registerElementFactory(new PaperElementFactory()); + + // install actions + KeyInput.installActions(this.stateMachine, this.eventBus); + MouseDownInput.installActions(this.stateMachine, this.eventBus); + ModelElementInput.installActions(this.stateMachine, this.eventBus); + + // standard actions + this.eventBus.registerAction(new ZoomCanvasAction(this)); + this.eventBus.registerAction(new DeselectModelsAction(this)); + + // possible states + this.stateMachine.addState(new SelectElementsState(this)); + this.stateMachine.addState(new TranslateElementState(this)); + this.stateMachine.addState(new TranslateCanvasState(this)); + this.stateMachine.addState(new DefaultState(this)); + + // default wiring + this.installHistoryBank(); + + // process to set the initial state + this.stateMachine.process(); + } + + getFactory(type: string): AbstractElementFactory { + if (!this.elementFactories[type]) { + throw new CanvasEngineError('Cannot find Element factory with type: ' + type); + } + return this.elementFactories[type]; + } + + getFactoryForElement(element: BaseModel): AbstractElementFactory { + return this.getFactory(element.getType()); + } } diff --git a/src/CanvasLayerFactory.tsx b/src/CanvasLayerFactory.tsx deleted file mode 100644 index a0f627e..0000000 --- a/src/CanvasLayerFactory.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import * as React from "react"; -import { AbstractElementFactory } from "./AbstractElementFactory"; -import { CanvasLayerModel } from "./models-canvas/CanvasLayerModel"; -import { CanvasEngine } from "./CanvasEngine"; -import { CanvasLayerWidget } from "./widgets/CanvasLayerWidget"; - -export class CanvasLayerFactory extends AbstractElementFactory<CanvasLayerModel> { - constructor() { - super("layer"); - } - - generateModel(): CanvasLayerModel { - return new CanvasLayerModel(); - } - - generateWidget(engine: CanvasEngine, model: CanvasLayerModel): JSX.Element { - return <CanvasLayerWidget engine={engine} layer={model} />; - } -} diff --git a/src/base-factories/AbstractElementFactory.ts b/src/base-factories/AbstractElementFactory.ts new file mode 100644 index 0000000..590f3ed --- /dev/null +++ b/src/base-factories/AbstractElementFactory.ts @@ -0,0 +1,26 @@ +import { CanvasEngine } from '../CanvasEngine'; +import { AbstractState } from '../state-machine/AbstractState'; +import { BaseModel } from '../base-models/BaseModel'; + +export abstract class AbstractElementFactory<T extends BaseModel = BaseModel> { + public type: string; + protected directiveProcessors; + protected engine: CanvasEngine; + + constructor(type: string) { + this.type = type; + this.directiveProcessors = []; + } + + setEngine(engine: CanvasEngine) { + this.engine = engine; + } + + getCanvasStates(): AbstractState[] { + return []; + } + + abstract generateModel(): T; + + abstract generateWidget(engine: CanvasEngine, model: T): JSX.Element; +} diff --git a/src/base-models/BaseModel.ts b/src/base-models/BaseModel.ts index 055b4e6..b7ea22c 100644 --- a/src/base-models/BaseModel.ts +++ b/src/base-models/BaseModel.ts @@ -1,121 +1,121 @@ -import { BaseEvent, BaseListener, BaseObject, Toolkit } from "@projectstorm/react-core"; -import { CanvasEngine } from "../CanvasEngine"; +import { BaseEvent, BaseListener, BaseObject, Toolkit } from '@projectstorm/react-core'; +import { CanvasEngine } from '../CanvasEngine'; export interface Serializable { - _type: string; - id: string; + _type: string; + id: string; } export interface BaseModelListener<T extends BaseModel = BaseModel> extends BaseListener<T> { - lockChanged?(event: BaseEvent<T> & { locked: boolean }); - delegateEvent?(event: BaseEvent<T>); + lockChanged?(event: BaseEvent<T> & { locked: boolean }); + delegateEvent?(event: BaseEvent<T>); } export class DeserializeEvent { - data: { [p: string]: any }; - engine: CanvasEngine; - cache: { [id: string]: BaseModel }; - - constructor(data: any, engine: CanvasEngine) { - this.cache = {}; - this.data = data; - this.engine = engine; - } - - subset(key: string): DeserializeEvent { - let event = new DeserializeEvent(this.data[key], this.engine); - event.cache = this.cache; - return event; - } + data: { [p: string]: any }; + engine: CanvasEngine; + cache: { [id: string]: BaseModel }; + + constructor(data: any, engine: CanvasEngine) { + this.cache = {}; + this.data = data; + this.engine = engine; + } + + subset(key: string): DeserializeEvent { + let event = new DeserializeEvent(this.data[key], this.engine); + event.cache = this.cache; + return event; + } } export class BaseModel< - PARENT extends BaseModel<any, BaseModelListener> = any, - LISTENER extends BaseModelListener = BaseListener + PARENT extends BaseModel<any, BaseModelListener> = any, + LISTENER extends BaseModelListener = BaseListener > extends BaseObject<LISTENER> { - protected parent: PARENT; - protected id: string; - protected type: string; - protected locked: boolean; - private parentListener: string; - - constructor(type: string) { - super(); - this.id = Toolkit.UID(); - this.type = type; - this.parentListener = null; - } - - isLocked(): boolean { - return this.locked || (this.parent && this.parent.isLocked()); - } - - setParent(parent: PARENT) { - if (this.parentListener) { - this.parent.removeListener(this.parentListener); - } - this.parent = parent; - if (parent) { - this.parentListener = parent.addListener({ - delegateEvent: event => { - if (parent.parent) { - parent.parent.iterateListeners("delegating event", listener => { - if (listener.delegateEvent) { - listener.delegateEvent(event); - } - }); - } - } - }); - } - } - - getType(): string { - return this.type; - } - - getParent(): PARENT { - return this.parent; - } - - public clearListeners() { - this.listeners = {}; - } - - iterateListeners(name: string, cb: (t: LISTENER, event: BaseEvent) => any) { - // optionally delegate the event up the stack so the event bus can grab it - if (this.parent) { - this.parent.iterateListeners(name, (listener, event) => { - if (listener.delegateEvent) { - listener.delegateEvent(event); - } - }); - } - return super.iterateListeners(name, cb); - } - - public deSerialize(event: DeserializeEvent) { - this.id = event.data.id; - this.locked = !!event.data.locked; - if (event.data["parent"]) { - if (!event.cache[event.data["parent"]]) { - throw "Cannot deserialize, because of missing parent"; - } - this.setParent(event.cache[event.data["parent"]] as any); - } - event.cache[this.id] = this; - } - - public serialize(): Serializable & any { - return { - _type: this.type, - id: this.id, - parent: this.parent && this.parent.id, - locked: this.locked - }; - } - - public getID() { - return this.id; - } + protected parent: PARENT; + protected id: string; + protected type: string; + protected locked: boolean; + private parentListener: string; + + constructor(type: string) { + super(); + this.id = Toolkit.UID(); + this.type = type; + this.parentListener = null; + } + + isLocked(): boolean { + return this.locked || (this.parent && this.parent.isLocked()); + } + + setParent(parent: PARENT) { + if (this.parentListener) { + this.parent.removeListener(this.parentListener); + } + this.parent = parent; + if (parent) { + this.parentListener = parent.addListener({ + delegateEvent: event => { + if (parent.parent) { + parent.parent.iterateListeners('delegating event', listener => { + if (listener.delegateEvent) { + listener.delegateEvent(event); + } + }); + } + } + }); + } + } + + getType(): string { + return this.type; + } + + getParent(): PARENT { + return this.parent; + } + + public clearListeners() { + this.listeners = {}; + } + + iterateListeners(name: string, cb: (t: LISTENER, event: BaseEvent) => any) { + // optionally delegate the event up the stack so the event bus can grab it + if (this.parent) { + this.parent.iterateListeners(name, (listener, event) => { + if (listener.delegateEvent) { + listener.delegateEvent(event); + } + }); + } + return super.iterateListeners(name, cb); + } + + public deSerialize(event: DeserializeEvent) { + this.id = event.data.id; + this.locked = !!event.data.locked; + if (event.data['parent']) { + if (!event.cache[event.data['parent']]) { + throw 'Cannot deserialize, because of missing parent'; + } + this.setParent(event.cache[event.data['parent']] as any); + } + event.cache[this.id] = this; + } + + public serialize(): Serializable & any { + return { + _type: this.type, + id: this.id, + parent: this.parent && this.parent.id, + locked: this.locked + }; + } + + public getID() { + return this.id; + } } diff --git a/src/base-models/GraphModel.ts b/src/base-models/GraphModel.ts index 4af48cc..4f98625 100644 --- a/src/base-models/GraphModel.ts +++ b/src/base-models/GraphModel.ts @@ -1,112 +1,112 @@ -import { BaseModel, BaseModelListener, DeserializeEvent, Serializable } from "./BaseModel"; -import * as _ from "lodash"; -import { BaseEvent } from "@projectstorm/react-core"; +import { BaseModel, BaseModelListener, DeserializeEvent, Serializable } from './BaseModel'; +import * as _ from 'lodash'; +import { BaseEvent } from '@projectstorm/react-core'; export interface GraphModelListener<CHILD = BaseModel> extends BaseModelListener { - modelsAdded?: (event: BaseEvent & { models: CHILD[] }) => any; + modelsAdded?: (event: BaseEvent & { models: CHILD[] }) => any; - modelsRemoved?: (event: BaseEvent & { models: CHILD[] }) => any; + modelsRemoved?: (event: BaseEvent & { models: CHILD[] }) => any; } /** * Model that supports graph traversal */ export class GraphModel< - CHILD extends BaseModel = BaseModel, - PARENT extends BaseModel = BaseModel, - LISTENER extends GraphModelListener<CHILD> = GraphModelListener + CHILD extends BaseModel = BaseModel, + PARENT extends BaseModel = BaseModel, + LISTENER extends GraphModelListener<CHILD> = GraphModelListener > extends BaseModel<PARENT, LISTENER> { - protected children: { [id: string]: CHILD }; - protected parentDelegate: BaseModel; - - constructor(type: string = "graph") { - super(type); - this.children = {}; - this.parentDelegate = this; - } - - setParentDelegate(parent: BaseModel) { - this.parentDelegate = parent; - } - - count(): number { - return _.values(this.children).length; - } - - addModels(entities: CHILD[]) { - _.forEach(entities, entity => { - this.children[entity.getID()] = entity; - entity.setParent(this.parentDelegate); - }); - this.iterateListeners("children added", (listener, event) => { - if (listener.modelsAdded) { - listener.modelsAdded({ ...event, models: entities }); - } - }); - } - - addModel(entity: CHILD) { - this.addModels([entity]); - } - - removeModels(entities: CHILD[]) { - _.forEach(entities, entity => { - delete this.children[entity.getID()]; - entity.setParent(null); - }); - - this.iterateListeners("children removed", (listener, event) => { - if (listener.modelsRemoved) { - listener.modelsRemoved({ ...event, models: entities }); - } - }); - } - - removeModel(entity: CHILD | string) { - if (typeof entity === "string") { - entity = this.getModel(entity); - } - this.removeModels([entity]); - } - - getModel(id: string): CHILD { - return this.children[id]; - } - - serialize(): Serializable { - return { - ...super.serialize(), - entities: _.mapValues(this.children, value => { - return value.serialize(); - }) - }; - } - - deSerialize(event: DeserializeEvent): void { - super.deSerialize(event); - let entities = event.subset("entities"); - this.children = _.mapValues(entities.data, (entity: any, index) => { - let entityOb = event.engine.generateEntityFor(entity._type); - entityOb.deSerialize(entities.subset(index)); - return entityOb; - }) as any; - } - - getEntities(): { [id: string]: CHILD } { - return this.children; - } - - clearEntities() { - this.removeModels(_.values(this.children)); - } - - getAllEntities(): CHILD[] { - return _.flatMap(this.children, entity => { - let arr = [entity]; - if (entity instanceof GraphModel) { - arr = arr.concat(entity.getAllEntities()); - } - return arr; - }); - } + protected children: { [id: string]: CHILD }; + protected parentDelegate: BaseModel; + + constructor(type: string = 'graph') { + super(type); + this.children = {}; + this.parentDelegate = this; + } + + setParentDelegate(parent: BaseModel) { + this.parentDelegate = parent; + } + + count(): number { + return _.values(this.children).length; + } + + addModels(entities: CHILD[]) { + _.forEach(entities, entity => { + this.children[entity.getID()] = entity; + entity.setParent(this.parentDelegate); + }); + this.iterateListeners('children added', (listener, event) => { + if (listener.modelsAdded) { + listener.modelsAdded({ ...event, models: entities }); + } + }); + } + + addModel(entity: CHILD) { + this.addModels([entity]); + } + + removeModels(entities: CHILD[]) { + _.forEach(entities, entity => { + delete this.children[entity.getID()]; + entity.setParent(null); + }); + + this.iterateListeners('children removed', (listener, event) => { + if (listener.modelsRemoved) { + listener.modelsRemoved({ ...event, models: entities }); + } + }); + } + + removeModel(entity: CHILD | string) { + if (typeof entity === 'string') { + entity = this.getModel(entity); + } + this.removeModels([entity]); + } + + getModel(id: string): CHILD { + return this.children[id]; + } + + serialize(): Serializable { + return { + ...super.serialize(), + entities: _.mapValues(this.children, value => { + return value.serialize(); + }) + }; + } + + deSerialize(event: DeserializeEvent): void { + super.deSerialize(event); + let entities = event.subset('entities'); + this.children = _.mapValues(entities.data, (entity: any, index) => { + let entityOb = event.engine.generateEntityFor(entity._type); + entityOb.deSerialize(entities.subset(index)); + return entityOb; + }) as any; + } + + getEntities(): { [id: string]: CHILD } { + return this.children; + } + + clearEntities() { + this.removeModels(_.values(this.children)); + } + + getAllEntities(): CHILD[] { + return _.flatMap(this.children, entity => { + let arr = [entity]; + if (entity instanceof GraphModel) { + arr = arr.concat(entity.getAllEntities()); + } + return arr; + }); + } } diff --git a/src/base-models/GraphModelOrdered.ts b/src/base-models/GraphModelOrdered.ts index ba28c8b..3b7e8aa 100644 --- a/src/base-models/GraphModelOrdered.ts +++ b/src/base-models/GraphModelOrdered.ts @@ -1,85 +1,85 @@ -import { GraphModel, GraphModelListener } from "./GraphModel"; -import { BaseModel, DeserializeEvent } from "./BaseModel"; -import * as _ from "lodash"; +import { GraphModel, GraphModelListener } from './GraphModel'; +import { BaseModel, DeserializeEvent } from './BaseModel'; +import * as _ from 'lodash'; export class GraphModelOrdered< - CHILD extends BaseModel, - PARENT extends BaseModel, - LISTENER extends GraphModelListener<CHILD> = any + CHILD extends BaseModel, + PARENT extends BaseModel, + LISTENER extends GraphModelListener<CHILD> = any > extends GraphModel<CHILD, PARENT, LISTENER> { - protected entitiesOrdered: CHILD[]; + protected entitiesOrdered: CHILD[]; - constructor(type: string = "graph") { - super(type); - this.entitiesOrdered = []; - } + constructor(type: string = 'graph') { + super(type); + this.entitiesOrdered = []; + } - getArray(): CHILD[] { - return this.entitiesOrdered; - } + getArray(): CHILD[] { + return this.entitiesOrdered; + } - serialize() { - return { - ...super.serialize(), - entitiesOrdered: _.map(this.entitiesOrdered, entity => { - return entity.getID(); - }) - }; - } + serialize() { + return { + ...super.serialize(), + entitiesOrdered: _.map(this.entitiesOrdered, entity => { + return entity.getID(); + }) + }; + } - deSerialize(event: DeserializeEvent): void { - super.deSerialize(event); - this.entitiesOrdered = _.map(event.data["entitiesOrdered"], entityID => { - return this.children[entityID]; - }); - } + deSerialize(event: DeserializeEvent): void { + super.deSerialize(event); + this.entitiesOrdered = _.map(event.data['entitiesOrdered'], entityID => { + return this.children[entityID]; + }); + } - addModels(entities: CHILD[], position?: number) { - super.addModels(entities); - if (position == null) { - this.entitiesOrdered = this.entitiesOrdered.concat(entities); - } else { - this.entitiesOrdered.splice(position, 0, ...entities); - } - } + addModels(entities: CHILD[], position?: number) { + super.addModels(entities); + if (position == null) { + this.entitiesOrdered = this.entitiesOrdered.concat(entities); + } else { + this.entitiesOrdered.splice(position, 0, ...entities); + } + } - addModel(entity: CHILD, position?: number) { - this.addModels([entity], position); - } + addModel(entity: CHILD, position?: number) { + this.addModels([entity], position); + } - removeModels(entities: CHILD[]) { - for (let i = this.entitiesOrdered.length; i >= 0; i--) { - let index = this.entitiesOrdered.indexOf(this.entitiesOrdered[i]); - if (index !== -1) { - this.entitiesOrdered.splice(index, 1); - } - } - super.removeModels(entities); - } + removeModels(entities: CHILD[]) { + for (let i = this.entitiesOrdered.length; i >= 0; i--) { + let index = this.entitiesOrdered.indexOf(this.entitiesOrdered[i]); + if (index !== -1) { + this.entitiesOrdered.splice(index, 1); + } + } + super.removeModels(entities); + } - moveModelToBack(element: CHILD) { - let index = this.entitiesOrdered.indexOf(element); - if (index === -1) { - return; - } - this.entitiesOrdered.splice(0, 0, element); - } + moveModelToBack(element: CHILD) { + let index = this.entitiesOrdered.indexOf(element); + if (index === -1) { + return; + } + this.entitiesOrdered.splice(0, 0, element); + } - moveModelToFront(element: CHILD) { - let index = this.entitiesOrdered.indexOf(element); - if (index === -1) { - return; - } - this.entitiesOrdered.splice(index, 1); - this.entitiesOrdered.push(element); - } + moveModelToFront(element: CHILD) { + let index = this.entitiesOrdered.indexOf(element); + if (index === -1) { + return; + } + this.entitiesOrdered.splice(index, 1); + this.entitiesOrdered.push(element); + } - moveModel(element: CHILD, newIndex: number) { - let index = this.entitiesOrdered.indexOf(element); - if (index === -1) { - return; - } - this.entitiesOrdered.splice(index, 1); - this.entitiesOrdered.splice(newIndex, 0, element); - } + moveModel(element: CHILD, newIndex: number) { + let index = this.entitiesOrdered.indexOf(element); + if (index === -1) { + return; + } + this.entitiesOrdered.splice(index, 1); + this.entitiesOrdered.splice(newIndex, 0, element); + } } diff --git a/src/event-bus/Action.ts b/src/event-bus/Action.ts index 64b6f3e..0dbcfc5 100644 --- a/src/event-bus/Action.ts +++ b/src/event-bus/Action.ts @@ -1,14 +1,14 @@ -import { Event } from "./Event"; -import { Toolkit } from "@projectstorm/react-core"; +import { Event } from './Event'; +import { Toolkit } from '@projectstorm/react-core'; export abstract class Action<T extends Event = Event> { - targetEvent: string; - id: string; + targetEvent: string; + id: string; - constructor(targetEvent: string) { - this.targetEvent = targetEvent; - this.id = Toolkit.UID(); - } + constructor(targetEvent: string) { + this.targetEvent = targetEvent; + this.id = Toolkit.UID(); + } - abstract doAction(event: T); + abstract doAction(event: T); } diff --git a/src/event-bus/Event.ts b/src/event-bus/Event.ts index f3c70a0..ba23460 100644 --- a/src/event-bus/Event.ts +++ b/src/event-bus/Event.ts @@ -1,24 +1,24 @@ -import { Action } from "./Action"; +import { Action } from './Action'; export class Event { - stopped: boolean; - source: any; - name: string; - actionsFired: Action[]; + stopped: boolean; + source: any; + name: string; + actionsFired: Action[]; - constructor(name: string, source: any) { - this.name = name; - this.source = source; - this.stopped = false; - this.actionsFired = []; - } + constructor(name: string, source: any) { + this.name = name; + this.source = source; + this.stopped = false; + this.actionsFired = []; + } - fire(action: Action) { - action.doAction(this); - this.actionsFired.push(action); - } + fire(action: Action) { + action.doAction(this); + this.actionsFired.push(action); + } - stopPropagation() { - this.stopped = true; - } + stopPropagation() { + this.stopped = true; + } } diff --git a/src/event-bus/EventBus.ts b/src/event-bus/EventBus.ts index 0e24037..fa42d2a 100644 --- a/src/event-bus/EventBus.ts +++ b/src/event-bus/EventBus.ts @@ -1,84 +1,84 @@ -import { Action } from "./Action"; -import { Event } from "./Event"; -import * as _ from "lodash"; -import { BaseEvent, BaseListener, BaseObject } from "@projectstorm/react-core"; +import { Action } from './Action'; +import { Event } from './Event'; +import * as _ from 'lodash'; +import { BaseEvent, BaseListener, BaseObject } from '@projectstorm/react-core'; export interface EventBusListener extends BaseListener { - eventWillFire?: (event: BaseEvent & { event: Event }) => any; - eventDidFire?: (event: BaseEvent & { event: Event }) => any; + eventWillFire?: (event: BaseEvent & { event: Event }) => any; + eventDidFire?: (event: BaseEvent & { event: Event }) => any; } export class EventBus extends BaseObject<EventBusListener> { - actions: { - [targetEvent: string]: { - [id: string]: Action; - }; - }; + actions: { + [targetEvent: string]: { + [id: string]: Action; + }; + }; - constructor() { - super(); - this.actions = {}; - } + constructor() { + super(); + this.actions = {}; + } - unRegisterAction(action: Action) { - if (!this.actions[action.targetEvent]) { - return; - } + unRegisterAction(action: Action) { + if (!this.actions[action.targetEvent]) { + return; + } - if (!this.actions[action.targetEvent][action.id]) { - return; - } + if (!this.actions[action.targetEvent][action.id]) { + return; + } - delete this.actions[action.targetEvent][action.id]; + delete this.actions[action.targetEvent][action.id]; - if (_.keys(this.actions[action.targetEvent]).length === 0) { - delete this.actions[action.targetEvent]; - } - } + if (_.keys(this.actions[action.targetEvent]).length === 0) { + delete this.actions[action.targetEvent]; + } + } - registerAction(action: Action): Action { - if (!this.actions[action.targetEvent]) { - this.actions[action.targetEvent] = {}; - } - this.actions[action.targetEvent][action.id] = action; - return action; - } + registerAction(action: Action): Action { + if (!this.actions[action.targetEvent]) { + this.actions[action.targetEvent] = {}; + } + this.actions[action.targetEvent][action.id] = action; + return action; + } - fireEvent(event: Event) { - if (!this.actions[event.name]) { - return; - } + fireEvent(event: Event) { + if (!this.actions[event.name]) { + return; + } - // before the event fires - this.iterateListeners("event will fire", (listener, baseEvent) => { - if (listener.eventWillFire) { - listener.eventWillFire({ - ...baseEvent, - event: event - }); - } - }); + // before the event fires + this.iterateListeners('event will fire', (listener, baseEvent) => { + if (listener.eventWillFire) { + listener.eventWillFire({ + ...baseEvent, + event: event + }); + } + }); - let processedActions = {}; - do { - _.some(this.actions[event.name], action => { - if (event.stopped) { - return true; - } - processedActions[action.id] = action; - event.fire(action); - }); - } while (!event.stopped && _.keys(this.actions[event.name]).length !== _.keys(processedActions).length); + let processedActions = {}; + do { + _.some(this.actions[event.name], action => { + if (event.stopped) { + return true; + } + processedActions[action.id] = action; + event.fire(action); + }); + } while (!event.stopped && _.keys(this.actions[event.name]).length !== _.keys(processedActions).length); - if (event.actionsFired.length > 0) { - this.iterateListeners("event did fire", (listener, baseEvent) => { - if (listener.eventDidFire) { - listener.eventDidFire({ - ...baseEvent, - event: event - }); - } - }); - } - } + if (event.actionsFired.length > 0) { + this.iterateListeners('event did fire', (listener, baseEvent) => { + if (listener.eventDidFire) { + listener.eventDidFire({ + ...baseEvent, + event: event + }); + } + }); + } + } } diff --git a/src/event-bus/InlineAction.ts b/src/event-bus/InlineAction.ts index af35e31..113c320 100644 --- a/src/event-bus/InlineAction.ts +++ b/src/event-bus/InlineAction.ts @@ -1,15 +1,15 @@ -import { Action } from "./Action"; -import { Event } from "./Event"; +import { Action } from './Action'; +import { Event } from './Event'; export class InlineAction<T extends Event> extends Action<T> { - cb: (event: T) => any; + cb: (event: T) => any; - constructor(name: string, callback: (event: T) => any) { - super(name); - this.cb = callback; - } + constructor(name: string, callback: (event: T) => any) { + super(name); + this.cb = callback; + } - doAction(event: T) { - return this.cb(event); - } + doAction(event: T) { + return this.cb(event); + } } diff --git a/src/event-bus/actions/DeselectModelsAction.ts b/src/event-bus/actions/DeselectModelsAction.ts index 2f95652..8b07470 100644 --- a/src/event-bus/actions/DeselectModelsAction.ts +++ b/src/event-bus/actions/DeselectModelsAction.ts @@ -1,23 +1,23 @@ -import { Action } from "../Action"; -import { KeyDownEvent } from "../events/key"; -import { CanvasEngine } from "../../CanvasEngine"; -import * as _ from "lodash"; +import { Action } from '../Action'; +import { KeyDownEvent } from '../events/key'; +import { CanvasEngine } from '../../CanvasEngine'; +import * as _ from 'lodash'; export class DeselectModelsAction extends Action<KeyDownEvent> { - engine: CanvasEngine; + engine: CanvasEngine; - constructor(engine: CanvasEngine) { - super(KeyDownEvent.NAME); - this.engine = engine; - } + constructor(engine: CanvasEngine) { + super(KeyDownEvent.NAME); + this.engine = engine; + } - doAction(event: KeyDownEvent) { - if (event.key === "Escape") { - let entities = this.engine.getModel().getSelectedEntities(); - _.forEach(entities, entity => { - entity.setSelected(false); - }); - this.engine.repaint(); - } - } + doAction(event: KeyDownEvent) { + if (event.key === 'Escape') { + let entities = this.engine.getModel().getSelectedEntities(); + _.forEach(entities, entity => { + entity.setSelected(false); + }); + this.engine.repaint(); + } + } } diff --git a/src/event-bus/actions/SelectCanvasAction.ts b/src/event-bus/actions/SelectCanvasAction.ts index 36d3dce..0f079ef 100644 --- a/src/event-bus/actions/SelectCanvasAction.ts +++ b/src/event-bus/actions/SelectCanvasAction.ts @@ -1,22 +1,22 @@ -import { Action } from "../Action"; -import { MouseDownEvent } from "../events/mouse"; -import * as _ from "lodash"; -import { CanvasEngine } from "../../CanvasEngine"; +import { Action } from '../Action'; +import { MouseDownEvent } from '../events/mouse'; +import * as _ from 'lodash'; +import { CanvasEngine } from '../../CanvasEngine'; export class SelectCanvasAction extends Action<MouseDownEvent> { - engine: CanvasEngine; + engine: CanvasEngine; - constructor(engine: CanvasEngine) { - super(MouseDownEvent.NAME); - this.engine = engine; - } + constructor(engine: CanvasEngine) { + super(MouseDownEvent.NAME); + this.engine = engine; + } - doAction(event: MouseDownEvent) { - event.stopPropagation(); - let entities = this.engine.getModel().getSelectedEntities(); - _.forEach(entities, entity => { - entity.setSelected(false); - }); - this.engine.repaint(); - } + doAction(event: MouseDownEvent) { + event.stopPropagation(); + let entities = this.engine.getModel().getSelectedEntities(); + _.forEach(entities, entity => { + entity.setSelected(false); + }); + this.engine.repaint(); + } } diff --git a/src/event-bus/actions/SelectElementAction.ts b/src/event-bus/actions/SelectElementAction.ts index 8d98590..b127485 100644 --- a/src/event-bus/actions/SelectElementAction.ts +++ b/src/event-bus/actions/SelectElementAction.ts @@ -1,28 +1,28 @@ -import { Action } from "../Action"; -import { PressElementEvent } from "../events/elements"; -import * as _ from "lodash"; -import { CanvasEngine } from "../../CanvasEngine"; +import { Action } from '../Action'; +import { PressElementEvent } from '../events/elements'; +import * as _ from 'lodash'; +import { CanvasEngine } from '../../CanvasEngine'; export class SelectElementAction extends Action<PressElementEvent> { - engine: CanvasEngine; - selectMultiple: boolean; + engine: CanvasEngine; + selectMultiple: boolean; - constructor(engine: CanvasEngine, selectMultiple: boolean = false) { - super(PressElementEvent.NAME); - this.engine = engine; - this.selectMultiple = selectMultiple; - } + constructor(engine: CanvasEngine, selectMultiple: boolean = false) { + super(PressElementEvent.NAME); + this.engine = engine; + this.selectMultiple = selectMultiple; + } - doAction(event: PressElementEvent) { - event.stopPropagation(); - if (!event.element.isSelected()) { - if (!this.selectMultiple) { - _.forEach(this.engine.getModel().getSelectedEntities(), entity => { - entity.setSelected(false); - }); - } - event.element.setSelected(true); - this.engine.repaint(); - } - } + doAction(event: PressElementEvent) { + event.stopPropagation(); + if (!event.element.isSelected()) { + if (!this.selectMultiple) { + _.forEach(this.engine.getModel().getSelectedEntities(), entity => { + entity.setSelected(false); + }); + } + event.element.setSelected(true); + this.engine.repaint(); + } + } } diff --git a/src/event-bus/actions/ZoomCanvasAction.ts b/src/event-bus/actions/ZoomCanvasAction.ts index 4371b06..189647e 100644 --- a/src/event-bus/actions/ZoomCanvasAction.ts +++ b/src/event-bus/actions/ZoomCanvasAction.ts @@ -1,44 +1,42 @@ -import { Action } from "../Action"; -import { MouseWheelEvent } from "../events/mouse"; -import { CanvasEngine } from "../../CanvasEngine"; +import { Action } from '../Action'; +import { MouseWheelEvent } from '../events/mouse'; +import { CanvasEngine } from '../../CanvasEngine'; export class ZoomCanvasAction extends Action<MouseWheelEvent> { - engine: CanvasEngine; + engine: CanvasEngine; - constructor(engine: CanvasEngine) { - super(MouseWheelEvent.NAME); - this.engine = engine; - } + constructor(engine: CanvasEngine) { + super(MouseWheelEvent.NAME); + this.engine = engine; + } - doAction(event: MouseWheelEvent) { - const model = this.engine.getModel(); - const canvas = this.engine.getCanvasWidget(); + doAction(event: MouseWheelEvent) { + const model = this.engine.getModel(); - let newZoomFactor = model.getZoomLevel() + event.amount / 100.0; - if (newZoomFactor <= 0.1) { - return; - } + let newZoomFactor = model.getZoomLevel() + event.amount / 100.0; + if (newZoomFactor <= 0.1) { + return; + } - const oldZoomFactor = model.getZoomLevel(); + const oldZoomFactor = model.getZoomLevel(); - const boundingRect = canvas.dimension.realDimensions; - const clientWidth = boundingRect.getWidth(); - const clientHeight = boundingRect.getHeight(); + const clientWidth = model.viewport.getWidth(); + const clientHeight = model.viewport.getHeight(); - // compute difference between rect before and after scroll - const widthDiff = clientWidth * newZoomFactor - clientWidth * oldZoomFactor; - const heightDiff = clientHeight * newZoomFactor - clientHeight * oldZoomFactor; + // compute difference between rect before and after scroll + const widthDiff = clientWidth * newZoomFactor - clientWidth * oldZoomFactor; + const heightDiff = clientHeight * newZoomFactor - clientHeight * oldZoomFactor; - // compute mouse coords relative to canvas - const clientX = event.mouseX - boundingRect.getTopLeft().x; - const clientY = event.mouseY - boundingRect.getTopLeft().y; + // compute mouse coords relative to canvas + const clientX = event.mouseX - model.viewport.getTopLeft().x; + const clientY = event.mouseY - model.viewport.getTopLeft().y; - // compute width and height increment factor - const xFactor = (clientX - model.getOffsetX()) / oldZoomFactor / clientWidth; - const yFactor = (clientY - model.getOffsetY()) / oldZoomFactor / clientHeight; + // compute width and height increment factor + const xFactor = (clientX - model.getOffsetX()) / oldZoomFactor / clientWidth; + const yFactor = (clientY - model.getOffsetY()) / oldZoomFactor / clientHeight; - model.setZoomLevel(newZoomFactor); - model.setOffset(model.getOffsetX() - widthDiff * xFactor, model.getOffsetY() - heightDiff * yFactor); - this.engine.repaint(); - } + model.setZoomLevel(newZoomFactor); + model.setOffset(model.getOffsetX() - widthDiff * xFactor, model.getOffsetY() - heightDiff * yFactor); + this.engine.repaint(); + } } diff --git a/src/event-bus/events/ModelEvent.ts b/src/event-bus/events/ModelEvent.ts index 5d96b32..24024b5 100644 --- a/src/event-bus/events/ModelEvent.ts +++ b/src/event-bus/events/ModelEvent.ts @@ -1,13 +1,13 @@ -import { Event } from "../Event"; -import { BaseEvent } from "@projectstorm/react-core"; +import { Event } from '../Event'; +import { BaseEvent } from '@projectstorm/react-core'; export class ModelEvent extends Event { - modelEvent: BaseEvent; + modelEvent: BaseEvent; - static NAME = "model-delegate-event"; + static NAME = 'model-delegate-event'; - constructor(modelEvent: BaseEvent) { - super(ModelEvent.NAME, modelEvent.source); - this.modelEvent = modelEvent; - } + constructor(modelEvent: BaseEvent) { + super(ModelEvent.NAME, modelEvent.source); + this.modelEvent = modelEvent; + } } diff --git a/src/event-bus/events/elements.ts b/src/event-bus/events/elements.ts index 1fe1ace..af4d734 100644 --- a/src/event-bus/events/elements.ts +++ b/src/event-bus/events/elements.ts @@ -1,27 +1,27 @@ -import { Event } from "../Event"; -import { CanvasElementModel } from "../../models-canvas/CanvasElementModel"; +import { Event } from '../Event'; +import { CanvasElementModel } from '../../models-canvas/CanvasElementModel'; export class ElementEvent extends Event { - element: CanvasElementModel; + element: CanvasElementModel; - constructor(name: string, source: any, element: CanvasElementModel) { - super(name, source); - this.element = element; - } + constructor(name: string, source: any, element: CanvasElementModel) { + super(name, source); + this.element = element; + } } export class PressElementEvent extends ElementEvent { - static NAME = "press-element"; + static NAME = 'press-element'; - constructor(source: any, element: CanvasElementModel) { - super(PressElementEvent.NAME, source, element); - } + constructor(source: any, element: CanvasElementModel) { + super(PressElementEvent.NAME, source, element); + } } export class UnPressElementEvent extends ElementEvent { - static NAME = "unpress-element"; + static NAME = 'unpress-element'; - constructor(source: any, element: CanvasElementModel) { - super(UnPressElementEvent.NAME, source, element); - } + constructor(source: any, element: CanvasElementModel) { + super(UnPressElementEvent.NAME, source, element); + } } diff --git a/src/event-bus/events/key.ts b/src/event-bus/events/key.ts index 322a1b8..baf4eb6 100644 --- a/src/event-bus/events/key.ts +++ b/src/event-bus/events/key.ts @@ -1,26 +1,26 @@ -import { Event } from "../Event"; +import { Event } from '../Event'; export abstract class KeyEvent extends Event { - key: string; + key: string; - constructor(name: string, source: any, key: string) { - super(name, source); - this.key = key; - } + constructor(name: string, source: any, key: string) { + super(name, source); + this.key = key; + } } export class KeyDownEvent extends KeyEvent { - static NAME = "key-down"; + static NAME = 'key-down'; - constructor(source: any, key: string) { - super(KeyDownEvent.NAME, source, key); - } + constructor(source: any, key: string) { + super(KeyDownEvent.NAME, source, key); + } } export class KeyUpEvent extends KeyEvent { - static NAME = "key-up"; + static NAME = 'key-up'; - constructor(source: any, key: string) { - super(KeyUpEvent.NAME, source, key); - } + constructor(source: any, key: string) { + super(KeyUpEvent.NAME, source, key); + } } diff --git a/src/event-bus/events/mouse.ts b/src/event-bus/events/mouse.ts index bded841..10330f5 100644 --- a/src/event-bus/events/mouse.ts +++ b/src/event-bus/events/mouse.ts @@ -1,60 +1,60 @@ -import { Event } from "../Event"; -import { Point } from "../../geometry/Point"; -import * as _ from "lodash"; -import { CanvasEngine } from "../../CanvasEngine"; +import { Event } from '../Event'; +import { Point } from '../../geometry/Point'; +import * as _ from 'lodash'; +import { CanvasEngine } from '../../CanvasEngine'; export abstract class MouseEvent extends Event { - mouseX: number; - mouseY: number; - - constructor(name: string, source: any, mouseX: number, mouseY: number) { - super(name, source); - this.mouseX = mouseX; - this.mouseY = mouseY; - } - - getCanvasCoordinates(engine: CanvasEngine): { x: number; y: number } { - let model = engine.getModel(); - let canDimensions = engine.getCanvasWidget().dimension.realDimensions; - - return { - x: (this.mouseX - canDimensions.getTopLeft().x - model.getOffsetX()) / model.getZoomLevel(), - y: (this.mouseY - canDimensions.getTopLeft().y - model.getOffsetY()) / model.getZoomLevel() - }; - } + mouseX: number; + mouseY: number; + + constructor(name: string, source: any, mouseX: number, mouseY: number) { + super(name, source); + this.mouseX = mouseX; + this.mouseY = mouseY; + } + + getCanvasCoordinates(engine: CanvasEngine): { x: number; y: number } { + let model = engine.getModel(); + let canDimensions = engine.getCanvasWidget().dimension.realDimensions; + + return { + x: (this.mouseX - canDimensions.getTopLeft().x - model.getOffsetX()) / model.getZoomLevel(), + y: (this.mouseY - canDimensions.getTopLeft().y - model.getOffsetY()) / model.getZoomLevel() + }; + } } export class MouseDownEvent extends MouseEvent { - static NAME = "mouse-down"; + static NAME = 'mouse-down'; - constructor(source: any, mouseX: number, mouseY: number) { - super(MouseDownEvent.NAME, source, mouseX, mouseY); - } + constructor(source: any, mouseX: number, mouseY: number) { + super(MouseDownEvent.NAME, source, mouseX, mouseY); + } } export class MouseUpEvent extends MouseEvent { - static NAME = "mouse-up"; + static NAME = 'mouse-up'; - constructor(source: any, mouseX: number, mouseY: number) { - super(MouseUpEvent.NAME, source, mouseX, mouseY); - } + constructor(source: any, mouseX: number, mouseY: number) { + super(MouseUpEvent.NAME, source, mouseX, mouseY); + } } export class MouseMoveEvent extends MouseEvent { - static NAME = "mouse-move"; + static NAME = 'mouse-move'; - constructor(source: any, mouseX: number, mouseY: number) { - super(MouseMoveEvent.NAME, source, mouseX, mouseY); - } + constructor(source: any, mouseX: number, mouseY: number) { + super(MouseMoveEvent.NAME, source, mouseX, mouseY); + } } export class MouseWheelEvent extends MouseEvent { - amount: number; + amount: number; - static NAME = "mouse-wheel"; + static NAME = 'mouse-wheel'; - constructor(source: any, mouseX: number, mouseY: number, amount: number) { - super(MouseWheelEvent.NAME, source, mouseX, mouseY); - this.amount = amount; - } + constructor(source: any, mouseX: number, mouseY: number, amount: number) { + super(MouseWheelEvent.NAME, source, mouseX, mouseY); + this.amount = amount; + } } diff --git a/src/geometry/Point.ts b/src/geometry/Point.ts index c426783..5faa926 100644 --- a/src/geometry/Point.ts +++ b/src/geometry/Point.ts @@ -1,71 +1,71 @@ -import * as mathjs from "mathjs"; +import * as mathjs from 'mathjs'; import Matrix = mathjs.Matrix; export class Point { - x: number; - y: number; + x: number; + y: number; - constructor(x: number, y: number) { - this.x = x; - this.y = y; - } + constructor(x: number, y: number) { + this.x = x; + this.y = y; + } - translate(x: number, y: number) { - this.x += x; - this.y += y; - } + translate(x: number, y: number) { + this.x += x; + this.y += y; + } - clone() { - return new Point(this.x, this.y); - } + clone() { + return new Point(this.x, this.y); + } - public asMatrix() { - return mathjs.matrix([[this.x], [this.y], [1]]); - } + public asMatrix() { + return mathjs.matrix([[this.x], [this.y], [1]]); + } - transform(matrix: Matrix) { - let final = mathjs.multiply(matrix, this.asMatrix()); - this.x = final.get([0, 0]); - this.y = final.get([1, 0]); - } + transform(matrix: Matrix) { + let final = mathjs.multiply(matrix, this.asMatrix()); + this.x = final.get([0, 0]); + this.y = final.get([1, 0]); + } - public static middlePoint(pointA: Point, pointB: Point): Point { - return new Point((pointB.x + pointA.x) / 2, (pointB.y + pointA.y) / 2); - } + public static middlePoint(pointA: Point, pointB: Point): Point { + return new Point((pointB.x + pointA.x) / 2, (pointB.y + pointA.y) / 2); + } - public static multiply(...matrices: Matrix[]): Matrix { - let m: Matrix = matrices[0]; - for (let i = 1; i < matrices.length; i++) { - m = mathjs.multiply(m, matrices[i]); - } - return m; - } + public static multiply(...matrices: Matrix[]): Matrix { + let m: Matrix = matrices[0]; + for (let i = 1; i < matrices.length; i++) { + m = mathjs.multiply(m, matrices[i]); + } + return m; + } - public static scaleMatrix(x: number, y: number): Matrix { - return mathjs.matrix([[x, 0, 0], [0, y, 0], [0, 0, 1]]); - } + public static scaleMatrix(x: number, y: number): Matrix { + return mathjs.matrix([[x, 0, 0], [0, y, 0], [0, 0, 1]]); + } - public static translateMatrix(x: number, y: number): Matrix { - return mathjs.matrix([[1, 0, x], [0, 1, y], [0, 0, 1]]); - } + public static translateMatrix(x: number, y: number): Matrix { + return mathjs.matrix([[1, 0, x], [0, 1, y], [0, 0, 1]]); + } - public static rotateMatrix(deg: number): Matrix { - return mathjs.matrix([[Math.cos(deg), -1 * Math.sin(deg), 0], [Math.sin(deg), Math.cos(deg), 0], [0, 0, 1]]); - } + public static rotateMatrix(deg: number): Matrix { + return mathjs.matrix([[Math.cos(deg), -1 * Math.sin(deg), 0], [Math.sin(deg), Math.cos(deg), 0], [0, 0, 1]]); + } - static createScaleMatrix(x, y, origin: Point): Matrix { - return this.multiply( - Point.translateMatrix(origin.x, origin.y), - Point.scaleMatrix(x, y), - Point.translateMatrix(-origin.x, -origin.y) - ); - } + static createScaleMatrix(x, y, origin: Point): Matrix { + return this.multiply( + Point.translateMatrix(origin.x, origin.y), + Point.scaleMatrix(x, y), + Point.translateMatrix(-origin.x, -origin.y) + ); + } - static createRotateMatrix(deg: number, origin: Point): Matrix { - return this.multiply( - Point.translateMatrix(origin.x, origin.y), - Point.rotateMatrix(deg), - Point.translateMatrix(-origin.x, -origin.y) - ); - } + static createRotateMatrix(deg: number, origin: Point): Matrix { + return this.multiply( + Point.translateMatrix(origin.x, origin.y), + Point.rotateMatrix(deg), + Point.translateMatrix(-origin.x, -origin.y) + ); + } } diff --git a/src/geometry/Polygon.ts b/src/geometry/Polygon.ts index 1edc381..45500ab 100644 --- a/src/geometry/Polygon.ts +++ b/src/geometry/Polygon.ts @@ -1,153 +1,145 @@ -import { Point } from "./Point"; -import { Rectangle } from "./Rectangle"; -import * as _ from "lodash"; -import { CanvasModel } from "../models-canvas/CanvasModel"; -import { Matrix } from "mathjs"; +import { Point } from './Point'; +import { Rectangle } from './Rectangle'; +import * as _ from 'lodash'; +import { CanvasModel } from '../primitives-core/canvas/CanvasModel'; +import { Matrix } from 'mathjs'; export class Polygon { - protected points: Point[]; - - constructor(points: Point[] = []) { - this.points = points; - } - - getSVGPoints(): string { - return _ - .map(this.points, point => { - return point.x + "," + point.y; - }) - .join(" "); - } - - serialize() { - return _.map(this.points, point => { - return [point.x, point.y]; - }); - } - - deserialize(data: any) { - this.points = _.map(data, point => { - return new Point(point[0], point[1]); - }); - } - - scale(x, y, origin: Point) { - let matrix = Point.createScaleMatrix(x, y, origin); - _.forEach(this.points, point => { - point.transform(matrix); - }); - } - - transform(matrix: Matrix) { - _.forEach(this.points, point => { - point.transform(matrix); - }); - } - - setPoints(points: Point[]) { - this.points = points; - } - - getPoints(): Point[] { - return this.points; - } - - translate(offsetX: number, offsetY: number) { - _.forEach(this.points, point => { - point.translate(offsetX, offsetY); - }); - } - - doClone(ob: this) { - this.points = _.map(ob.points, point => { - return point.clone(); - }); - } - - clone(): this { - let ob = Object.create(this); - ob.doClone(this); - return ob; - } - - toRealDimensions(model: CanvasModel): this { - let dim = this.clone(); - dim.scale(model.getZoomLevel(), model.getZoomLevel(), new Point(0, 0)); - dim.translate(model.offsetX, model.offsetY); - return dim; - } - - getOrigin(): Point { - if (this.points.length === 0) { - return null; - } - let dimensions = this.getBoundingBox(); - return Point.middlePoint(dimensions.getTopLeft(), dimensions.getBottomRight()); - } - - static boundingBoxFromPolygons(polygons: Polygon[]): Rectangle { - return Polygon.boundingBoxFromPoints( - _.flatMap(polygons, polygon => { - return polygon.getPoints(); - }) - ); - } - - static boundingBoxFromPoints(points: Point[]): Rectangle { - let minX = points[0].x; - let maxX = points[0].x; - let minY = points[0].y; - let maxY = points[0].y; - - for (let i = 1; i < points.length; i++) { - if (points[i].x < minX) { - minX = points[i].x; - } - if (points[i].x > maxX) { - maxX = points[i].x; - } - if (points[i].y < minY) { - minY = points[i].y; - } - if (points[i].y > maxY) { - maxY = points[i].y; - } - } - - return new Rectangle( - new Point(minX, minY), - new Point(maxX, minY), - new Point(maxX, maxY), - new Point(minX, maxY) - ); - } - - getBoundingBox(): Rectangle { - let minX = this.points[0].x; - let maxX = this.points[0].x; - let minY = this.points[0].y; - let maxY = this.points[0].y; - - for (let i = 1; i < this.points.length; i++) { - if (this.points[i].x < minX) { - minX = this.points[i].x; - } - if (this.points[i].x > maxX) { - maxX = this.points[i].x; - } - if (this.points[i].y < minY) { - minY = this.points[i].y; - } - if (this.points[i].y > maxY) { - maxY = this.points[i].y; - } - } - - return new Rectangle( - new Point(minX, minY), - new Point(maxX, minY), - new Point(maxX, maxY), - new Point(minX, maxY) - ); - } + protected points: Point[]; + + constructor(points: Point[] = []) { + this.points = points; + } + + getSVGPoints(): string { + return _.map(this.points, point => { + return point.x + ',' + point.y; + }).join(' '); + } + + serialize() { + return _.map(this.points, point => { + return [point.x, point.y]; + }); + } + + deserialize(data: any) { + this.points = _.map(data, point => { + return new Point(point[0], point[1]); + }); + } + + scale(x, y, origin: Point) { + let matrix = Point.createScaleMatrix(x, y, origin); + _.forEach(this.points, point => { + point.transform(matrix); + }); + } + + transform(matrix: Matrix) { + _.forEach(this.points, point => { + point.transform(matrix); + }); + } + + setPoints(points: Point[]) { + this.points = points; + } + + getPoints(): Point[] { + return this.points; + } + + rotate(degrees: number) { + this.transform(Point.createRotateMatrix(degrees / (180 / Math.PI), this.getOrigin())); + } + + translate(offsetX: number, offsetY: number) { + _.forEach(this.points, point => { + point.translate(offsetX, offsetY); + }); + } + + doClone(ob: this) { + this.points = _.map(ob.points, point => { + return point.clone(); + }); + } + + clone(): this { + let ob = Object.create(this); + ob.doClone(this); + return ob; + } + + toRealDimensions(model: CanvasModel): this { + let dim = this.clone(); + dim.scale(model.getZoomLevel(), model.getZoomLevel(), new Point(0, 0)); + dim.translate(model.offsetX, model.offsetY); + return dim; + } + + getOrigin(): Point { + if (this.points.length === 0) { + return null; + } + let dimensions = this.getBoundingBox(); + return Point.middlePoint(dimensions.getTopLeft(), dimensions.getBottomRight()); + } + + static boundingBoxFromPolygons(polygons: Polygon[]): Rectangle { + return Polygon.boundingBoxFromPoints( + _.flatMap(polygons, polygon => { + return polygon.getPoints(); + }) + ); + } + + static boundingBoxFromPoints(points: Point[]): Rectangle { + let minX = points[0].x; + let maxX = points[0].x; + let minY = points[0].y; + let maxY = points[0].y; + + for (let i = 1; i < points.length; i++) { + if (points[i].x < minX) { + minX = points[i].x; + } + if (points[i].x > maxX) { + maxX = points[i].x; + } + if (points[i].y < minY) { + minY = points[i].y; + } + if (points[i].y > maxY) { + maxY = points[i].y; + } + } + + return new Rectangle(new Point(minX, minY), new Point(maxX, minY), new Point(maxX, maxY), new Point(minX, maxY)); + } + + getBoundingBox(): Rectangle { + let minX = this.points[0].x; + let maxX = this.points[0].x; + let minY = this.points[0].y; + let maxY = this.points[0].y; + + for (let i = 1; i < this.points.length; i++) { + if (this.points[i].x < minX) { + minX = this.points[i].x; + } + if (this.points[i].x > maxX) { + maxX = this.points[i].x; + } + if (this.points[i].y < minY) { + minY = this.points[i].y; + } + if (this.points[i].y > maxY) { + maxY = this.points[i].y; + } + } + + return new Rectangle(new Point(minX, minY), new Point(maxX, minY), new Point(maxX, maxY), new Point(minX, maxY)); + } } diff --git a/src/geometry/Rectangle.ts b/src/geometry/Rectangle.ts index a12bb3d..bd8b36e 100644 --- a/src/geometry/Rectangle.ts +++ b/src/geometry/Rectangle.ts @@ -1,79 +1,78 @@ -import { Polygon } from "./Polygon"; -import { Point } from "./Point"; +import { Polygon } from './Polygon'; +import { Point } from './Point'; export class Rectangle extends Polygon { - constructor(tl: Point, tr: Point, br: Point, bl: Point); - constructor(position: Point, width: number, height: number); - constructor(x?: number, y?: number, width?: number, height?: number); + constructor(tl: Point, tr: Point, br: Point, bl: Point); + constructor(position: Point, width: number, height: number); + constructor(x?: number, y?: number, width?: number, height?: number); - constructor(a: any = 0, b: any = 0, c: any = 0, d: any = 0) { - if (a instanceof Point && b instanceof Point && c instanceof Point && d instanceof Point) { - super([a, b, c, d]); - } else if (a instanceof Point) { - super([a, new Point(a.x + b, a.y), new Point(a.x + b, a.y + c), new Point(a.x, a.y + c)]); - } else { - super(Rectangle.pointsFromBounds(a, b, c, d)); - } - } + constructor(a: any = 0, b: any = 0, c: any = 0, d: any = 0) { + if (a instanceof Point && b instanceof Point && c instanceof Point && d instanceof Point) { + super([a, b, c, d]); + } else if (a instanceof Point) { + super([a, new Point(a.x + b, a.y), new Point(a.x + b, a.y + c), new Point(a.x, a.y + c)]); + } else { + super(Rectangle.pointsFromBounds(a, b, c, d)); + } + } - static pointsFromBounds(x: number, y: number, width: number, height: number): Point[] { - return [new Point(x, y), new Point(x + width, y), new Point(x + width, y + height), new Point(x, y + height)]; - } + static pointsFromBounds(x: number, y: number, width: number, height: number): Point[] { + return [new Point(x, y), new Point(x + width, y), new Point(x + width, y + height), new Point(x, y + height)]; + } - updateDimensions(x: number, y: number, width: number, height: number) { - this.points = Rectangle.pointsFromBounds(x, y, width, height); - } + updateDimensions(x: number, y: number, width: number, height: number) { + this.points = Rectangle.pointsFromBounds(x, y, width, height); + } - setPoints(points: Point[]) { - if (points.length !== 4) { - throw "Rectangles must always have 4 points"; - } - super.setPoints(points); - } + setPoints(points: Point[]) { + if (points.length !== 4) { + throw 'Rectangles must always have 4 points'; + } + super.setPoints(points); + } - getWidth(): number { - return Math.sqrt( - Math.pow(this.getTopLeft().x - this.getTopRight().x, 2) + - Math.pow(this.getTopLeft().y - this.getTopRight().y, 2) - ); - } + getWidth(): number { + return Math.sqrt( + Math.pow(this.getTopLeft().x - this.getTopRight().x, 2) + Math.pow(this.getTopLeft().y - this.getTopRight().y, 2) + ); + } - getHeight(): number { - return Math.sqrt( - Math.pow(this.getBottomLeft().x - this.getTopLeft().x, 2) + - Math.pow(this.getBottomLeft().y - this.getTopLeft().y, 2) - ); - } + getHeight(): number { + return Math.sqrt( + Math.pow(this.getBottomLeft().x - this.getTopLeft().x, 2) + + Math.pow(this.getBottomLeft().y - this.getTopLeft().y, 2) + ); + } - getTopMiddle(): Point { - return Point.middlePoint(this.getTopLeft(), this.getTopRight()); - } + getTopMiddle(): Point { + return Point.middlePoint(this.getTopLeft(), this.getTopRight()); + } - getBottomMiddle(): Point { - return Point.middlePoint(this.getBottomLeft(), this.getBottomRight()); - } + getBottomMiddle(): Point { + return Point.middlePoint(this.getBottomLeft(), this.getBottomRight()); + } - getLeftMiddle(): Point { - return Point.middlePoint(this.getBottomLeft(), this.getTopLeft()); - } + getLeftMiddle(): Point { + return Point.middlePoint(this.getBottomLeft(), this.getTopLeft()); + } - getRightMiddle(): Point { - return Point.middlePoint(this.getBottomRight(), this.getTopRight()); - } + getRightMiddle(): Point { + return Point.middlePoint(this.getBottomRight(), this.getTopRight()); + } - getTopLeft(): Point { - return this.points[0]; - } + getTopLeft(): Point { + return this.points[0]; + } - getTopRight(): Point { - return this.points[1]; - } + getTopRight(): Point { + return this.points[1]; + } - getBottomRight(): Point { - return this.points[2]; - } + getBottomRight(): Point { + return this.points[2]; + } - getBottomLeft(): Point { - return this.points[3]; - } + getBottomLeft(): Point { + return this.points[3]; + } } diff --git a/src/history/HistoryBank.ts b/src/history/HistoryBank.ts index b928503..5da2185 100644 --- a/src/history/HistoryBank.ts +++ b/src/history/HistoryBank.ts @@ -1,57 +1,57 @@ -import * as _ from "lodash"; -import { BaseEvent, BaseListener, BaseObject } from "@projectstorm/react-core"; -import { HistoryState } from "./HistoryState"; +import * as _ from 'lodash'; +import { BaseEvent, BaseListener, BaseObject } from '@projectstorm/react-core'; +import { HistoryState } from './HistoryState'; export interface HistoryBankListener extends BaseListener<HistoryBank> { - forward?(event: BaseEvent<HistoryBank> & { state: HistoryState }); + forward?(event: BaseEvent<HistoryBank> & { state: HistoryState }); - backward?(event: BaseEvent<HistoryBank> & { state: HistoryState }); + backward?(event: BaseEvent<HistoryBank> & { state: HistoryState }); } export class HistoryBank extends BaseObject<HistoryBankListener> { - history: HistoryState[]; - pointer: number; - - constructor() { - super(); - this.history = []; - this.pointer = 0; - } - - pushState(state: HistoryState) { - // state is equal, ignore pushing it - if (_.isEqual(this.history[this.pointer], state)) { - return; - } - - this.pointer++; - this.history.splice(this.pointer); - this.history.push(state); - } - - goForward() { - // cant go anymore forward - if (this.pointer === this.history.length - 1) { - return; - } - this.pointer++; - this.iterateListeners("history moved forward", (listener, event) => { - if (listener.forward) { - listener.forward({ ...event, state: this.history[this.pointer] }); - } - }); - } - - goBackward() { - // cant go anymore backward - if (this.pointer <= 0) { - return; - } - this.pointer--; - this.iterateListeners("history moved backward", (listener, event) => { - if (listener.backward) { - listener.backward({ ...event, state: this.history[this.pointer] }); - } - }); - } + history: HistoryState[]; + pointer: number; + + constructor() { + super(); + this.history = []; + this.pointer = 0; + } + + pushState(state: HistoryState) { + // state is equal, ignore pushing it + if (_.isEqual(this.history[this.pointer], state)) { + return; + } + + this.pointer++; + this.history.splice(this.pointer); + this.history.push(state); + } + + goForward() { + // cant go anymore forward + if (this.pointer === this.history.length - 1) { + return; + } + this.pointer++; + this.iterateListeners('history moved forward', (listener, event) => { + if (listener.forward) { + listener.forward({ ...event, state: this.history[this.pointer] }); + } + }); + } + + goBackward() { + // cant go anymore backward + if (this.pointer <= 0) { + return; + } + this.pointer--; + this.iterateListeners('history moved backward', (listener, event) => { + if (listener.backward) { + listener.backward({ ...event, state: this.history[this.pointer] }); + } + }); + } } diff --git a/src/history/HistoryState.ts b/src/history/HistoryState.ts index c84816e..f5d2df0 100644 --- a/src/history/HistoryState.ts +++ b/src/history/HistoryState.ts @@ -1,4 +1,4 @@ export interface HistoryState { - name: string; - state: any; + name: string; + state: any; } diff --git a/src/interactivity/debug-interactivity.ts b/src/interactivity/debug-interactivity.ts new file mode 100644 index 0000000..dce8a11 --- /dev/null +++ b/src/interactivity/debug-interactivity.ts @@ -0,0 +1,37 @@ +import { LayerModel } from '../primitives-core/layer/LayerModel'; +import { CanvasEngine } from '../CanvasEngine'; +import * as _ from 'lodash'; +import { EllipseElementModel } from '../primitives/ellipse/EllipseElementModel'; + +export const installDebugInteractivity = (engine: CanvasEngine) => { + // debug layer + const debugLayer = new LayerModel(); + debugLayer.setSVG(true); + debugLayer.setTransformable(true); + + engine.addListener({ + modelChanged: event => { + if (event.oldModel) { + event.oldModel.removeLayer(debugLayer); + } + if (event.model) { + event.model.addLayer(debugLayer); + } + }, + repaint: () => { + engine.getModel().layers.moveModelToFront(debugLayer); + debugLayer.clearEntities(); + _.forEach(engine.getModel().getElements(), element => { + let dimensions = element.getDimensions(); + if (dimensions) { + debugLayer.addModels( + _.map(EllipseElementModel.createPointCloudFrom(dimensions, 3 / engine.getModel().getZoomLevel()), point => { + point.background = 'mediumpurple'; + return point; + }) + ); + } + }); + } + }); +}; diff --git a/src/interactivity/default-interactivity.ts b/src/interactivity/default-interactivity.ts new file mode 100644 index 0000000..84fc4e9 --- /dev/null +++ b/src/interactivity/default-interactivity.ts @@ -0,0 +1,44 @@ +import { LayerModel } from '../primitives-core/layer/LayerModel'; +import { InlineAction } from '../event-bus/InlineAction'; +import { ModelEvent } from '../event-bus/events/ModelEvent'; +import * as _ from 'lodash'; +import { SelectionElementModel } from '../primitives/selection/SelectionElementModel'; +import { CanvasEngine } from '../CanvasEngine'; + +export const installDefaultInteractivity = (engine: CanvasEngine) => { + // selection layer + let selectionLayer = new LayerModel(); + selectionLayer.setSVG(false); + selectionLayer.setTransformable(false); + + // listen for a new model + engine.addListener({ + modelChanged: event => { + if (event.oldModel) { + event.oldModel.removeLayer(selectionLayer); + } + if (event.model) { + event.model.addLayer(selectionLayer); + } + } + }); + + engine.getEventBus().registerAction( + new InlineAction(ModelEvent.NAME, (event: ModelEvent) => { + // setup a combo box for when there are models + if (event.modelEvent.name === 'selection changed') { + selectionLayer.clearEntities(); + engine.getModel().layers.moveModelToFront(selectionLayer); + let selected = _.filter(engine.getModel().getElements(), element => { + return element.isSelected(); + }); + if (selected.length > 0) { + let model = new SelectionElementModel(); + model.setModels(selected); + selectionLayer.addModel(model); + engine.repaint(); + } + } + }) + ); +}; diff --git a/src/main.ts b/src/main.ts index 127a5b8..668cda9 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,26 +1,26 @@ -export * from "./CanvasEngine"; -export * from "./AbstractElementFactory"; -export * from "./CanvasLayerFactory"; +export * from './CanvasEngine'; +export * from './base-factories/AbstractElementFactory'; +export * from './primitives-core/layer/LayerFactory'; -export * from "./widgets/CanvasLayerWidget"; -export * from "./widgets/AnchorWidget"; -export * from "./primitives/selection/SelectionGroupWidget"; +export * from './widgets/CanvasLayerWidget'; +export * from './primitives-core/anchor/AnchorWidget'; +export * from './primitives/selection/SelectionGroupWidget'; -export * from "./geometry/Point"; -export * from "./geometry/Polygon"; -export * from "./geometry/Rectangle"; +export * from './geometry/Point'; +export * from './geometry/Polygon'; +export * from './geometry/Rectangle'; -export * from "./base-models/BaseModel"; -export * from "./base-models/GraphModel"; -export * from "./base-models/GraphModelOrdered"; +export * from './base-models/BaseModel'; +export * from './base-models/GraphModel'; +export * from './base-models/GraphModelOrdered'; -export * from "./models-canvas/CanvasElementModel"; -export * from "./models-canvas/CanvasLayerModel"; -export * from "./models-canvas/CanvasModel"; +export * from './models-canvas/CanvasElementModel'; +export * from './primitives-core/layer/LayerModel'; +export * from './primitives-core/canvas/CanvasModel'; -export * from "./history/HistoryBank"; +export * from './history/HistoryBank'; -export * from "./event-bus/Action"; -export * from "./event-bus/InlineAction"; -export * from "./event-bus/Event"; -export * from "./event-bus/EventBus"; +export * from './event-bus/Action'; +export * from './event-bus/InlineAction'; +export * from './event-bus/Event'; +export * from './event-bus/EventBus'; diff --git a/src/models-canvas/CanvasElementModel.ts b/src/models-canvas/CanvasElementModel.ts index d740a7b..1dc7a78 100644 --- a/src/models-canvas/CanvasElementModel.ts +++ b/src/models-canvas/CanvasElementModel.ts @@ -1,89 +1,89 @@ -import { CanvasLayerModel } from "./CanvasLayerModel"; -import { Rectangle } from "../geometry/Rectangle"; -import { BaseEvent } from "../base-models/BaseObject"; -import { BaseModel, BaseModelListener, DeserializeEvent } from "../base-models/BaseModel"; +import { LayerModel } from '../primitives-core/layer/LayerModel'; +import { Rectangle } from '../geometry/Rectangle'; +import { BaseModel, BaseModelListener, DeserializeEvent } from '../base-models/BaseModel'; +import { BaseEvent } from '@projectstorm/react-core'; export interface CanvasElementModelListener<T extends CanvasElementModel = any> extends BaseModelListener<T> { - selectionChanged?(event: BaseEvent<CanvasElementModel> & { selected: boolean }); + selectionChanged?(event: BaseEvent<CanvasElementModel> & { selected: boolean }); - lockChanged?(event: BaseEvent<CanvasElementModel> & { locked: boolean }); + lockChanged?(event: BaseEvent<CanvasElementModel> & { locked: boolean }); } export abstract class CanvasElementModel< - T extends CanvasElementModelListener = CanvasElementModelListener -> extends BaseModel<CanvasLayerModel, CanvasElementModelListener> { - protected selected: boolean; - protected locked: boolean; - - constructor(type: string) { - super(type); - this.type = type; - this.selected = false; - this.locked = false; - } - - serialize() { - return { - ...super.serialize(), - selected: this.selected, - locked: this.locked - }; - } - - deSerialize(event: DeserializeEvent): void { - super.deSerialize(event); - this.selected = !!event.data["selected"]; - this.locked = !!event.data["locked"]; - } - - setSelected(selected: boolean) { - this.selected = selected; - this.iterateListeners("selection changed", (listener, event: any) => { - if (listener.selectionChanged) { - event.selected = selected; - listener.selectionChanged(event); - } - }); - } - - setLocked(locked: boolean) { - this.locked = locked; - this.iterateListeners("lock changed", (listener, event: any) => { - if (listener.lockChanged) { - event.locked = locked; - listener.lockChanged(event); - } - }); - } - - isSelected(): boolean { - return this.selected; - } - - isLocked(): boolean { - return this.getParent().isLocked(); - } - - abstract getDimensions(): Rectangle; - - abstract setDimensions(dimensions: Rectangle); - - moveToLayer(layer: CanvasLayerModel) { - if (this.parent) { - this.parent.removeModel(this); - } - layer.addModel(this); - } - - moveToFront() { - this.parent.moveModelToFront(this); - } - - moveToBack() { - this.parent.moveModelToBack(this); - } - - moveTo(index: number) { - this.parent.moveModel(this, index); - } + T extends CanvasElementModelListener = CanvasElementModelListener +> extends BaseModel<LayerModel, CanvasElementModelListener> { + protected selected: boolean; + protected locked: boolean; + + constructor(type: string) { + super(type); + this.type = type; + this.selected = false; + this.locked = false; + } + + serialize() { + return { + ...super.serialize(), + selected: this.selected, + locked: this.locked + }; + } + + deSerialize(event: DeserializeEvent): void { + super.deSerialize(event); + this.selected = !!event.data['selected']; + this.locked = !!event.data['locked']; + } + + setSelected(selected: boolean) { + this.selected = selected; + this.iterateListeners('selection changed', (listener, event: any) => { + if (listener.selectionChanged) { + event.selected = selected; + listener.selectionChanged(event); + } + }); + } + + setLocked(locked: boolean) { + this.locked = locked; + this.iterateListeners('lock changed', (listener, event: any) => { + if (listener.lockChanged) { + event.locked = locked; + listener.lockChanged(event); + } + }); + } + + isSelected(): boolean { + return this.selected; + } + + isLocked(): boolean { + return this.getParent().isLocked(); + } + + abstract getDimensions(): Rectangle; + + abstract setDimensions(dimensions: Rectangle); + + moveToLayer(layer: LayerModel) { + if (this.parent) { + this.parent.removeModel(this); + } + layer.addModel(this); + } + + moveToFront() { + this.parent.moveModelToFront(this); + } + + moveToBack() { + this.parent.moveModelToBack(this); + } + + moveTo(index: number) { + this.parent.moveModel(this, index); + } } diff --git a/src/models-canvas/CanvasGroupModel.ts b/src/models-canvas/CanvasGroupModel.ts index 807d968..10f9365 100644 --- a/src/models-canvas/CanvasGroupModel.ts +++ b/src/models-canvas/CanvasGroupModel.ts @@ -1,10 +1,10 @@ -import { CanvasElementModel } from "./CanvasElementModel"; -import { Rectangle } from "../geometry/Rectangle"; +import { CanvasElementModel } from './CanvasElementModel'; +import { Rectangle } from '../geometry/Rectangle'; export class CanvasGroupModel extends CanvasElementModel { - getDimensions(): Rectangle { - return undefined; - } + getDimensions(): Rectangle { + return undefined; + } - setDimensions(dimensions: Rectangle) {} + setDimensions(dimensions: Rectangle) {} } diff --git a/src/models-canvas/CanvasLayerModel.ts b/src/models-canvas/CanvasLayerModel.ts deleted file mode 100644 index c926589..0000000 --- a/src/models-canvas/CanvasLayerModel.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { CanvasElementModel } from "./CanvasElementModel"; -import { CanvasModel } from "./CanvasModel"; -import { DeserializeEvent, Serializable } from "../base-models/BaseModel"; -import { GraphModelOrdered } from "../base-models/GraphModelOrdered"; - -export class CanvasLayerModel<T extends CanvasElementModel = CanvasElementModel> extends GraphModelOrdered< - T, - CanvasModel -> { - protected name: string; - protected svg: boolean; - protected transform: boolean; - - constructor(name: string = "Layer") { - super("layer"); - this.name = name; - this.svg = false; - this.transform = true; - } - - deSerialize(event: DeserializeEvent): void { - super.deSerialize(event); - this.name = event.data["name"]; - this.svg = event.data["svg"]; - this.transform = event.data["transform"]; - } - - serialize(): Serializable & any { - return { - ...super.serialize(), - name: this.name, - svg: this.svg, - transform: this.transform - }; - } - - setTransformable(transform: boolean) { - this.transform = transform; - } - - setName(name: string) { - this.name = name; - } - - setSVG(svg: boolean) { - this.svg = svg; - } - - getName() { - return this.name; - } - - isSVG() { - return this.svg; - } - - isTransformable() { - return this.transform; - } -} diff --git a/src/models-canvas/CanvasModel.ts b/src/models-canvas/CanvasModel.ts deleted file mode 100644 index abb89fa..0000000 --- a/src/models-canvas/CanvasModel.ts +++ /dev/null @@ -1,107 +0,0 @@ -import { CanvasLayerModel } from "./CanvasLayerModel"; -import * as _ from "lodash"; -import { CanvasElementModel } from "./CanvasElementModel"; -import { CanvasEngine } from "../CanvasEngine"; -import { BaseModel, BaseModelListener, DeserializeEvent } from "../base-models/BaseModel"; -import { BaseEvent } from "../base-models/BaseObject"; -import { GraphModelOrdered } from "../base-models/GraphModelOrdered"; - -export interface CanvasModelListener<T extends CanvasModel = any> extends BaseModelListener<T> { - offsetUpdated?(event: BaseEvent<T> & { offsetX: number; offsetY: number }): void; - - zoomUpdated?(event: BaseEvent<T> & { zoom: number }): void; -} - -export class CanvasModel<T extends CanvasModelListener = CanvasModelListener> extends BaseModel<null, T> { - selectedLayer: CanvasLayerModel; - layers: GraphModelOrdered<CanvasLayerModel, CanvasModel>; - - //control variables - offsetX: number; - offsetY: number; - zoom: number; - - constructor() { - super("canvas"); - this.selectedLayer = null; - this.layers = new GraphModelOrdered("layers"); - this.layers.setParentDelegate(this); - this.offsetX = 0; - this.offsetY = 0; - this.zoom = 1; - } - - serialize(): any { - return { - ...super.serialize(), - layers: this.layers.serialize(), - offsetX: this.offsetX, - offsetY: this.offsetY, - zoom: this.zoom - }; - } - - deSerialize(event: DeserializeEvent): void { - super.deSerialize(event); - this.layers.deSerialize(event.subset("layers")); - this.offsetX = event.data["offsetX"]; - this.offsetY = event.data["offsetY"]; - this.zoom = event.data["zoom"]; - } - - getOffsetY() { - return this.offsetY; - } - - getOffsetX() { - return this.offsetX; - } - - getZoomLevel() { - return this.zoom; - } - - setZoomLevel(zoom: number) { - this.zoom = zoom; - this.iterateListeners("zoom changed", (listener: CanvasModelListener, event) => { - if (listener.zoomUpdated) { - listener.zoomUpdated({ ...event, zoom: zoom }); - } - }); - } - - setZoomPercent(percent: number) { - this.setZoomLevel(percent / 100.0); - } - - setOffset(offsetX: number, offsetY: number) { - this.offsetX = offsetX; - this.offsetY = offsetY; - this.iterateListeners("offset changed", (listener: CanvasModelListener, event) => { - if (listener.offsetUpdated) { - listener.offsetUpdated({ ...event, offsetX: offsetX, offsetY: offsetY }); - } - }); - } - - removeLayer(layer: CanvasLayerModel) { - this.layers.removeModel(layer); - } - - addLayer(layer: CanvasLayerModel) { - this.layers.addModel(layer); - this.selectedLayer = layer; - } - - getElements(): CanvasElementModel[] { - return _.flatMap(this.layers.getEntities(), layer => { - return _.values(layer.getEntities()); - }); - } - - getSelectedEntities(): CanvasElementModel[] { - return _.filter(this.getElements(), element => { - return element.isSelected(); - }); - } -} diff --git a/src/primitives-core/anchor/AnchorWidget.tsx b/src/primitives-core/anchor/AnchorWidget.tsx new file mode 100644 index 0000000..e1e51d7 --- /dev/null +++ b/src/primitives-core/anchor/AnchorWidget.tsx @@ -0,0 +1,35 @@ +import { BaseWidget, BaseWidgetProps, MouseWidget } from '@projectstorm/react-core'; +import * as React from 'react'; + +export interface AnchorWidgetProps extends BaseWidgetProps { + selected: boolean; + events: { + mouseUp: () => any; + mouseDown: () => any; + }; +} + +export class AnchorWidget extends BaseWidget<AnchorWidgetProps> { + constructor(props) { + super('src-anchor', props); + } + + render() { + return ( + <MouseWidget + element={'div'} + mouseDownEvent={() => { + this.props.events.mouseDown(); + }} + mouseUpEvent={() => { + this.props.events.mouseUp(); + }} + extraProps={{ + ...this.getProps({ + '--selected': this.props.selected + }) + }} + /> + ); + } +} diff --git a/src/primitives-core/anchor/SmartAnchorWidget.tsx b/src/primitives-core/anchor/SmartAnchorWidget.tsx new file mode 100644 index 0000000..87a0b5d --- /dev/null +++ b/src/primitives-core/anchor/SmartAnchorWidget.tsx @@ -0,0 +1,55 @@ +import { BaseWidget, BaseWidgetProps, MouseWidget } from '@projectstorm/react-core'; +import * as React from 'react'; +import { CanvasEngine } from '../../CanvasEngine'; +import { SelectionElementModel } from '../../primitives/selection/SelectionElementModel'; +import { ModelAnchorInput, ModelAnchorInputPosition } from '../../state-machine/input/ModelAnchorInput'; +import { AnchorWidget } from './AnchorWidget'; +import { bool } from 'prop-types'; + +export interface SmartAnchorWidgetProps extends BaseWidgetProps { + engine: CanvasEngine; + selectionModel: SelectionElementModel; + pos: ModelAnchorInputPosition; +} + +export interface SmartAnchorWidgetState { + selected: boolean; +} + +export class SmartAnchorWidget extends BaseWidget<SmartAnchorWidgetProps, SmartAnchorWidgetState> { + constructor(props) { + super('src-anchor', props); + this.state = { + selected: false + }; + } + + componentWillUnmount() { + this.props.engine.getStateMachine().removeInput(ModelAnchorInput.NAME); + } + + render() { + return ( + <AnchorWidget + {...this.props} + selected={this.state.selected} + events={{ + mouseUp: () => { + this.props.engine.getStateMachine().removeInput(ModelAnchorInput.NAME); + this.setState({ + selected: false + }); + }, + mouseDown: () => { + this.props.engine + .getStateMachine() + .addInput(new ModelAnchorInput(this.props.selectionModel, this.props.pos)); + this.setState({ + selected: true + }); + } + }} + /> + ); + } +} diff --git a/src/sass/_AnchorWidget.scss b/src/primitives-core/anchor/_AnchorWidget.scss similarity index 91% rename from src/sass/_AnchorWidget.scss rename to src/primitives-core/anchor/_AnchorWidget.scss index 7663e4b..e822e33 100644 --- a/src/sass/_AnchorWidget.scss +++ b/src/primitives-core/anchor/_AnchorWidget.scss @@ -8,7 +8,7 @@ cursor: move; pointer-events: all; - &:hover { + &:hover, &--selected { border: 1px blue solid; background: cyan; min-width: 12px; diff --git a/src/primitives-core/canvas/CanvasEventWrapperWidget.tsx b/src/primitives-core/canvas/CanvasEventWrapperWidget.tsx new file mode 100644 index 0000000..ace466f --- /dev/null +++ b/src/primitives-core/canvas/CanvasEventWrapperWidget.tsx @@ -0,0 +1,90 @@ +import * as React from 'react'; +import { CanvasEngine } from '../../CanvasEngine'; +import { KeyDownEvent, KeyUpEvent } from '../../event-bus/events/key'; +import { MouseDownEvent, MouseMoveEvent, MouseUpEvent, MouseWheelEvent } from '../../event-bus/events/mouse'; + +export interface CanvasEventWrapperWidgetProps { + engine: CanvasEngine; + inverseZoom?: boolean; + refObject: React.RefObject<HTMLElement>; +} + +export class CanvasEventWrapperWidget extends React.Component<CanvasEventWrapperWidgetProps> { + // handles + onKeyDownHandle: (event: any) => any; + onKeyUpHandle: (event: any) => any; + onMouseMoveHandle: (event: any) => any; + onMouseDownHandle: (event: any) => any; + onMouseUpHandle: (event: any) => any; + onMouseWheelHandle: (event: any) => any; + + constructor(props: CanvasEventWrapperWidgetProps) { + super(props); + + this.onKeyDownHandle = (event: any) => { + this.props.engine.getEventBus().fireEvent(new KeyDownEvent(this, event.key)); + }; + + this.onKeyUpHandle = (event: any) => { + this.props.engine.getEventBus().fireEvent(new KeyUpEvent(this, event.key)); + }; + + this.onMouseMoveHandle = (event: MouseEvent) => { + this.props.engine.getEventBus().fireEvent(new MouseMoveEvent(this, event.clientX, event.clientY)); + }; + + this.onMouseDownHandle = (event: MouseEvent) => { + this.props.engine.getEventBus().fireEvent(new MouseDownEvent(this, event.clientX, event.clientY)); + }; + + this.onMouseUpHandle = (event: MouseEvent) => { + this.props.engine.getEventBus().fireEvent(new MouseUpEvent(this, event.clientX, event.clientY)); + }; + + this.onMouseWheelHandle = event => { + this.props.engine + .getEventBus() + .fireEvent( + new MouseWheelEvent(this, event.clientX, event.clientY, CanvasEventWrapperWidget.normalizeScrollWheel(event)) + ); + event.stopPropagation(); + event.preventDefault(); + }; + } + + static normalizeScrollWheel(event: WheelEvent) { + let scrollDelta = event.deltaY; + // check if it is pinch gesture + if (event.ctrlKey && scrollDelta % 1 !== 0) { + /* + Chrome and Firefox sends wheel event with deltaY that + have fractional part, also `ctrlKey` prop of the event is true + though ctrl isn't pressed + */ + return (scrollDelta /= 3); + } + return (scrollDelta /= 60); + } + + componentDidMount() { + document.addEventListener('mousemove', this.onMouseMoveHandle); + document.addEventListener('keydown', this.onKeyDownHandle); + document.addEventListener('keyup', this.onKeyUpHandle); + this.props.refObject.current.addEventListener('mousedown', this.onMouseDownHandle); + this.props.refObject.current.addEventListener('mouseup', this.onMouseUpHandle); + this.props.refObject.current.addEventListener('wheel', this.onMouseWheelHandle); + } + + componentWillUnmount() { + document.removeEventListener('mousemove', this.onMouseMoveHandle); + document.removeEventListener('keyup', this.onKeyUpHandle); + document.removeEventListener('keydown', this.onKeyDownHandle); + this.props.refObject.current.removeEventListener('mousedown', this.onMouseDownHandle); + this.props.refObject.current.removeEventListener('mouseup', this.onMouseUpHandle); + this.props.refObject.current.removeEventListener('wheel', this.onMouseWheelHandle); + } + + render() { + return this.props.children; + } +} diff --git a/src/primitives-core/canvas/CanvasFactory.tsx b/src/primitives-core/canvas/CanvasFactory.tsx new file mode 100644 index 0000000..8450480 --- /dev/null +++ b/src/primitives-core/canvas/CanvasFactory.tsx @@ -0,0 +1,20 @@ +import * as React from 'react'; +import { AbstractElementFactory } from '../../base-factories/AbstractElementFactory'; +import { CanvasEngine } from '../../CanvasEngine'; +import './_SimpleCanvasWidget.scss'; +import { CanvasModel } from './CanvasModel'; +import { SmartCanvasWidget } from './SmartCanvasWidget'; + +export class CanvasFactory extends AbstractElementFactory<CanvasModel> { + constructor() { + super('canvas'); + } + + generateModel(): CanvasModel { + return new CanvasModel(); + } + + generateWidget(engine: CanvasEngine, model: CanvasModel): JSX.Element { + return <SmartCanvasWidget model={model} engine={engine} layer={model} canvasModel={model} />; + } +} diff --git a/src/primitives-core/canvas/CanvasModel.ts b/src/primitives-core/canvas/CanvasModel.ts new file mode 100644 index 0000000..3c5591c --- /dev/null +++ b/src/primitives-core/canvas/CanvasModel.ts @@ -0,0 +1,148 @@ +import { LayerModel } from '../layer/LayerModel'; +import * as _ from 'lodash'; +import { CanvasElementModel } from '../../models-canvas/CanvasElementModel'; +import { BaseModel, BaseModelListener, DeserializeEvent } from '../../base-models/BaseModel'; +import { GraphModelOrdered } from '../../base-models/GraphModelOrdered'; +import { BaseEvent } from '@projectstorm/react-core'; +import { Rectangle } from '../../geometry/Rectangle'; + +export interface CanvasModelListener<T extends CanvasModel = any> extends BaseModelListener<T> { + offsetUpdated?(event: BaseEvent<T> & { offsetX: number; offsetY: number }): void; + + zoomUpdated?(event: BaseEvent<T> & { zoom: number }): void; + + viewportChanged?(event: BaseEvent<T> & { viewport: Rectangle }); +} + +export class CanvasModel<T extends CanvasModelListener = CanvasModelListener> extends BaseModel<null, T> { + selectedLayer: LayerModel; + layers: GraphModelOrdered<LayerModel, CanvasModel>; + + //control variables + offsetX: number; + offsetY: number; + viewport: Rectangle; + zoom: number; + + constructor() { + super('canvas'); + this.selectedLayer = null; + this.layers = new GraphModelOrdered('layers'); + this.layers.setParentDelegate(this); + this.offsetX = 0; + this.offsetY = 0; + this.viewport = new Rectangle(); + this.zoom = 1; + } + + serialize(): any { + return { + ...super.serialize(), + layers: this.layers.serialize(), + offsetX: this.offsetX, + offsetY: this.offsetY, + zoom: this.zoom + }; + } + + deSerialize(event: DeserializeEvent): void { + super.deSerialize(event); + this.layers.deSerialize(event.subset('layers')); + this.offsetX = event.data['offsetX']; + this.offsetY = event.data['offsetY']; + this.zoom = event.data['zoom']; + } + + getOffsetY() { + return this.offsetY; + } + + getOffsetX() { + return this.offsetX; + } + + getZoomLevel() { + return this.zoom; + } + + setViewport(rect: Rectangle) { + this.viewport = rect; + this.iterateListeners('viewport changed', (listener: CanvasModelListener, event) => { + if (listener.viewportChanged) { + listener.viewportChanged({ ...event, viewport: rect }); + } + }); + } + + setZoomLevel(zoom: number) { + if (zoom < 0) { + throw new Error('Zoom cannot be below zero'); + } + this.zoom = zoom; + this.iterateListeners('zoom changed', (listener: CanvasModelListener, event) => { + if (listener.zoomUpdated) { + listener.zoomUpdated({ ...event, zoom: zoom }); + } + }); + } + + setZoomPercent(percent: number | string) { + // also accept string like '100%' + if (typeof percent === 'string') { + percent = _.parseInt(_.trimEnd(percent, ' %')); + } + this.setZoomLevel(percent / 100.0); + } + + setOffset(offsetX: number, offsetY: number) { + this.offsetX = offsetX; + this.offsetY = offsetY; + this.iterateListeners('offset changed', (listener: CanvasModelListener, event) => { + if (listener.offsetUpdated) { + listener.offsetUpdated({ ...event, offsetX: offsetX, offsetY: offsetY }); + } + }); + } + + removeLayer(layer: LayerModel) { + this.layers.removeModel(layer); + } + + addLayer(layer: LayerModel) { + this.layers.addModel(layer); + this.selectedLayer = layer; + } + + getElements(): CanvasElementModel[] { + return _.flatMap(this.layers.getEntities(), layer => { + return _.values(layer.getEntities()); + }); + } + + getSelectedEntities(): CanvasElementModel[] { + return _.filter(this.getElements(), element => { + return element.isSelected(); + }); + } + + zoomToFit(margin: number = 0) { + let bounds = Rectangle.boundingBoxFromPolygons( + _.filter( + _.map(this.getElements(), element => { + return element.getDimensions(); + }), + el => { + return !!el; + } + ) + ); + + let zoomFactor = Math.min( + (this.viewport.getWidth() - margin - margin) / bounds.getWidth(), + (this.viewport.getHeight() - margin - margin) / bounds.getHeight() + ); + + this.setZoomLevel(zoomFactor); + this.setOffset(margin + -1 * bounds.getTopLeft().x * this.zoom, margin + -1 * bounds.getTopLeft().y * this.zoom); + } +} diff --git a/src/primitives-core/canvas/SimpleCanvasWidget.tsx b/src/primitives-core/canvas/SimpleCanvasWidget.tsx new file mode 100644 index 0000000..e63f36f --- /dev/null +++ b/src/primitives-core/canvas/SimpleCanvasWidget.tsx @@ -0,0 +1,25 @@ +import * as React from 'react'; +import { BaseWidget, BaseWidgetProps } from '@projectstorm/react-core'; +import { DimensionTrackerWidget } from '../../tracking/DimensionTrackerWidget'; +import { DimensionTracker } from '../../tracking/DimensionTracker'; + +export interface CanvasWidgetProps extends BaseWidgetProps { + forwardRef: React.RefObject<HTMLElement>; + dimension: DimensionTracker; +} + +export class SimpleCanvasWidget extends BaseWidget<CanvasWidgetProps> { + constructor(props: CanvasWidgetProps) { + super('src-canvas', props); + } + + render() { + return ( + <DimensionTrackerWidget reference={this.props.forwardRef} dimensionTracker={this.props.dimension}> + <div {...this.getProps()} ref={this.props.forwardRef}> + {this.props.children} + </div> + </DimensionTrackerWidget> + ); + } +} diff --git a/src/primitives-core/canvas/SmartCanvasWidget.tsx b/src/primitives-core/canvas/SmartCanvasWidget.tsx new file mode 100644 index 0000000..d8bd209 --- /dev/null +++ b/src/primitives-core/canvas/SmartCanvasWidget.tsx @@ -0,0 +1,65 @@ +import * as React from 'react'; +import { BaseEvent, BaseWidget, BaseWidgetProps } from '@projectstorm/react-core'; +import * as _ from 'lodash'; +import { SimpleCanvasWidget } from './SimpleCanvasWidget'; +import { CanvasEngine } from '../../CanvasEngine'; +import { CanvasEventWrapperWidget } from './CanvasEventWrapperWidget'; +import { DimensionTracker } from '../../tracking/DimensionTracker'; +import { CanvasModel } from './CanvasModel'; + +export interface CanvasWidgetProps extends BaseWidgetProps { + model: CanvasModel; + engine: CanvasEngine; + inverseZoom?: boolean; +} + +export interface CanvasWidgetState {} + +export class SmartCanvasWidget extends BaseWidget<CanvasWidgetProps, CanvasWidgetState> { + ref: React.RefObject<HTMLElement>; + dimension: DimensionTracker; + dimensionListener: any; + engineListener: any; + + constructor(props: CanvasWidgetProps) { + super('src-canvas', props); + this.state = {}; + this.ref = React.createRef(); + this.dimension = new DimensionTracker(); + } + + componentDidMount(): void { + this.dimensionListener = this.dimension.addListener({ + updated: (event: BaseEvent<any>) => { + this.props.model.setViewport(this.dimension.realDimensions); + } + }); + this.engineListener = this.props.engine.addListener({ + repaint: () => { + this.forceUpdate(); + } + }); + } + + componentWillUnmount(): void { + this.dimension.removeListener(this.dimensionListener); + this.props.engine.removeListener(this.engineListener); + } + + render() { + return ( + <CanvasEventWrapperWidget refObject={this.ref} engine={this.props.engine}> + <SimpleCanvasWidget forwardRef={this.ref} dimension={this.dimension}> + {_.map(this.props.engine.getModel().layers.getArray(), layer => { + return React.cloneElement( + this.props.engine.getFactoryForElement(layer).generateWidget(this.props.engine, layer), + { + key: layer.getID() + } + ); + })} + </SimpleCanvasWidget> + </CanvasEventWrapperWidget> + ); + } +} diff --git a/src/sass/_CanvasWidget.scss b/src/primitives-core/canvas/_SimpleCanvasWidget.scss similarity index 100% rename from src/sass/_CanvasWidget.scss rename to src/primitives-core/canvas/_SimpleCanvasWidget.scss diff --git a/src/primitives-core/layer/LayerFactory.tsx b/src/primitives-core/layer/LayerFactory.tsx new file mode 100644 index 0000000..63d4ac3 --- /dev/null +++ b/src/primitives-core/layer/LayerFactory.tsx @@ -0,0 +1,20 @@ +import * as React from 'react'; +import { AbstractElementFactory } from '../../base-factories/AbstractElementFactory'; +import { LayerModel } from './LayerModel'; +import { CanvasEngine } from '../../CanvasEngine'; +import { SmartLayerWidget } from './SmartLayerWidget'; +import './_SimpleLayerWidget.scss'; + +export class LayerFactory extends AbstractElementFactory<LayerModel> { + constructor() { + super('layer'); + } + + generateModel(): LayerModel { + return new LayerModel(); + } + + generateWidget(engine: CanvasEngine, model: LayerModel): JSX.Element { + return <SmartLayerWidget engine={engine} layer={model} canvasModel={engine.getModel()} />; + } +} diff --git a/src/primitives-core/layer/LayerModel.ts b/src/primitives-core/layer/LayerModel.ts new file mode 100644 index 0000000..d741e86 --- /dev/null +++ b/src/primitives-core/layer/LayerModel.ts @@ -0,0 +1,57 @@ +import { CanvasElementModel } from '../../models-canvas/CanvasElementModel'; +import { CanvasModel } from '../canvas/CanvasModel'; +import { DeserializeEvent, Serializable } from '../../base-models/BaseModel'; +import { GraphModelOrdered } from '../../base-models/GraphModelOrdered'; + +export class LayerModel<T extends CanvasElementModel = CanvasElementModel> extends GraphModelOrdered<T, CanvasModel> { + protected name: string; + protected svg: boolean; + protected transform: boolean; + + constructor(name: string = 'Layer') { + super('layer'); + this.name = name; + this.svg = false; + this.transform = true; + } + + deSerialize(event: DeserializeEvent): void { + super.deSerialize(event); + this.name = event.data['name']; + this.svg = event.data['svg']; + this.transform = event.data['transform']; + } + + serialize(): Serializable & any { + return { + ...super.serialize(), + name: this.name, + svg: this.svg, + transform: this.transform + }; + } + + setTransformable(transform: boolean) { + this.transform = transform; + } + + setName(name: string) { + this.name = name; + } + + setSVG(svg: boolean) { + this.svg = svg; + } + + getName() { + return this.name; + } + + isSVG() { + return this.svg; + } + + isTransformable() { + return this.transform; + } +} diff --git a/src/primitives-core/layer/SimpleLayerWidget.tsx b/src/primitives-core/layer/SimpleLayerWidget.tsx new file mode 100644 index 0000000..971ad19 --- /dev/null +++ b/src/primitives-core/layer/SimpleLayerWidget.tsx @@ -0,0 +1,44 @@ +import * as React from 'react'; +import { BaseWidget, BaseWidgetProps } from '@projectstorm/react-core'; + +export interface SimpleLayerWidgetProps extends BaseWidgetProps { + offsetX?: number; + offsetY?: number; + zoom?: number; + svg: boolean; +} + +export class SimpleLayerWidget extends BaseWidget<SimpleLayerWidgetProps> { + constructor(props: SimpleLayerWidgetProps) { + super('src-layer', props); + this.state = {}; + } + + getProps() { + let props = super.getProps(); + + if (this.props.offsetY || this.props.offsetY || this.props.zoom) { + // do we apply + props['style'] = { + ...props['style'], + transform: + 'translate(' + + (this.props.offsetX || 0) + + 'px,' + + (this.props.offsetY || 0) + + 'px) scale(' + + (this.props.zoom || 0) + + ')' + }; + } + return props; + } + + render() { + // it might be an SVG layer + if (this.props.svg) { + return <svg {...this.getProps()}>{this.props.children}</svg>; + } + return <div {...this.getProps()}>{this.props.children}</div>; + } +} diff --git a/src/primitives-core/layer/SmartLayerWidget.tsx b/src/primitives-core/layer/SmartLayerWidget.tsx new file mode 100644 index 0000000..200dfcf --- /dev/null +++ b/src/primitives-core/layer/SmartLayerWidget.tsx @@ -0,0 +1,41 @@ +import * as React from 'react'; +import * as _ from 'lodash'; +import { CanvasEngine } from '../../CanvasEngine'; +import { LayerModel } from './LayerModel'; +import { SimpleLayerWidget } from './SimpleLayerWidget'; +import { CanvasModel } from '../canvas/CanvasModel'; + +export interface SmartLayerWidgetProps { + engine: CanvasEngine; + layer: LayerModel; + canvasModel: CanvasModel; +} + +export class SmartLayerWidget extends React.Component<SmartLayerWidgetProps> { + constructor(props: SmartLayerWidgetProps) { + super(props); + this.state = {}; + } + + getChildren() { + return _.map(this.props.layer.getAllEntities(), element => { + return React.cloneElement( + this.props.engine.getFactoryForElement(element).generateWidget(this.props.engine, element), + { key: element.getID() } + ); + }); + } + + render() { + return ( + <SimpleLayerWidget + svg={this.props.layer.isSVG()} + engine={this.props.engine} + offsetX={this.props.canvasModel.getOffsetX()} + offsetY={this.props.canvasModel.getOffsetY()} + zoom={this.props.canvasModel.getZoomLevel()}> + {this.getChildren()} + </SimpleLayerWidget> + ); + } +} diff --git a/src/sass/_CanvasLayerWidget.scss b/src/primitives-core/layer/_SimpleLayerWidget.scss similarity index 92% rename from src/sass/_CanvasLayerWidget.scss rename to src/primitives-core/layer/_SimpleLayerWidget.scss index 191fb28..402a4b2 100644 --- a/src/sass/_CanvasLayerWidget.scss +++ b/src/primitives-core/layer/_SimpleLayerWidget.scss @@ -1,4 +1,4 @@ -.src-canvas-layer { +.src-layer { position: absolute; height: 100%; width: 100%; diff --git a/src/primitives/ellipse/EllipseElementFactory.tsx b/src/primitives/ellipse/EllipseElementFactory.tsx index 000e8ba..ef88271 100644 --- a/src/primitives/ellipse/EllipseElementFactory.tsx +++ b/src/primitives/ellipse/EllipseElementFactory.tsx @@ -1,21 +1,21 @@ -import { AbstractElementFactory } from "../../AbstractElementFactory"; -import { EllipseElementModel } from "./EllipseElementModel"; -import { CanvasEngine } from "../../CanvasEngine"; -import { EllipseElementWidget } from "./EllipseElementWidget"; -import * as React from "react"; +import { AbstractElementFactory } from '../../base-factories/AbstractElementFactory'; +import { EllipseElementModel } from './EllipseElementModel'; +import { CanvasEngine } from '../../CanvasEngine'; +import { EllipseElementWidget } from './EllipseElementWidget'; +import * as React from 'react'; export class EllipseElementFactory extends AbstractElementFactory<EllipseElementModel> { - static NAME = "primitive-circle"; + static NAME = 'primitive-circle'; - constructor() { - super(EllipseElementFactory.NAME); - } + constructor() { + super(EllipseElementFactory.NAME); + } - generateModel(): EllipseElementModel { - return new EllipseElementModel(); - } + generateModel(): EllipseElementModel { + return new EllipseElementModel(); + } - generateWidget(engine: CanvasEngine, model: EllipseElementModel): JSX.Element { - return <EllipseElementWidget model={model} />; - } + generateWidget(engine: CanvasEngine, model: EllipseElementModel): JSX.Element { + return <EllipseElementWidget model={model} />; + } } diff --git a/src/primitives/ellipse/EllipseElementModel.tsx b/src/primitives/ellipse/EllipseElementModel.tsx index 87ca939..0a0f6fd 100644 --- a/src/primitives/ellipse/EllipseElementModel.tsx +++ b/src/primitives/ellipse/EllipseElementModel.tsx @@ -1,65 +1,65 @@ -import { CanvasElementModel } from "../../models-canvas/CanvasElementModel"; -import { Rectangle } from "../../geometry/Rectangle"; -import { Point } from "../../geometry/Point"; -import * as _ from "lodash"; -import { Polygon } from "../../geometry/Polygon"; -import { DeserializeEvent } from "../../base-models/BaseModel"; -import { EllipseElementFactory } from "./EllipseElementFactory"; +import { CanvasElementModel } from '../../models-canvas/CanvasElementModel'; +import { Rectangle } from '../../geometry/Rectangle'; +import { Point } from '../../geometry/Point'; +import * as _ from 'lodash'; +import { Polygon } from '../../geometry/Polygon'; +import { DeserializeEvent } from '../../base-models/BaseModel'; +import { EllipseElementFactory } from './EllipseElementFactory'; export class EllipseElementModel extends CanvasElementModel { - radiusX: number; - radiusY: number; - center: Point; - background: string; + radiusX: number; + radiusY: number; + center: Point; + background: string; - constructor() { - super(EllipseElementFactory.NAME); - this.radiusX = 5; - this.radiusY = 5; - this.center = new Point(0, 0); - this.background = "rgb(0,192,255)"; - } + constructor() { + super(EllipseElementFactory.NAME); + this.radiusX = 5; + this.radiusY = 5; + this.center = new Point(0, 0); + this.background = 'rgb(0,192,255)'; + } - static createPointCloud(points: Point[], radius: number = 5) { - return _.map(points, point => { - let model = new EllipseElementModel(); - model.radiusX = radius; - model.radiusY = radius; - model.center = point.clone(); - return model; - }); - } + static createPointCloud(points: Point[], radius: number = 5) { + return _.map(points, point => { + let model = new EllipseElementModel(); + model.radiusX = radius; + model.radiusY = radius; + model.center = point.clone(); + return model; + }); + } - static createPointCloudFrom(rectangle: Polygon, radius: number = 5): EllipseElementModel[] { - return EllipseElementModel.createPointCloud(rectangle.getPoints().concat(rectangle.getOrigin()), radius); - } + static createPointCloudFrom(rectangle: Polygon, radius: number = 5): EllipseElementModel[] { + return EllipseElementModel.createPointCloud(rectangle.getPoints().concat(rectangle.getOrigin()), radius); + } - getDimensions(): Rectangle { - return new Rectangle( - this.center.x - this.radiusX, - this.center.y - this.radiusY, - this.radiusX * 2, - this.radiusY * 2 - ); - } + getDimensions(): Rectangle { + return new Rectangle( + this.center.x - this.radiusX, + this.center.y - this.radiusY, + this.radiusX * 2, + this.radiusY * 2 + ); + } - deSerialize(event: DeserializeEvent): void { - super.deSerialize(event); - this.radiusX = event.data["radiusX"]; - this.radiusY = event.data["radiusY"]; - this.background = event.data["background"]; - this.center = new Point(event.data["centerX"], event.data["centerY"]); - } + deSerialize(event: DeserializeEvent): void { + super.deSerialize(event); + this.radiusX = event.data['radiusX']; + this.radiusY = event.data['radiusY']; + this.background = event.data['background']; + this.center = new Point(event.data['centerX'], event.data['centerY']); + } - serialize() { - return { - ...super.serialize(), - radiusX: this.radiusX, - radiusY: this.radiusY, - centerX: this.center.x, - centerY: this.center.y - }; - } + serialize() { + return { + ...super.serialize(), + radiusX: this.radiusX, + radiusY: this.radiusY, + centerX: this.center.x, + centerY: this.center.y + }; + } - setDimensions(dimensions: Rectangle) {} + setDimensions(dimensions: Rectangle) {} } diff --git a/src/primitives/ellipse/EllipseElementWidget.tsx b/src/primitives/ellipse/EllipseElementWidget.tsx index d13f404..a8a8a41 100644 --- a/src/primitives/ellipse/EllipseElementWidget.tsx +++ b/src/primitives/ellipse/EllipseElementWidget.tsx @@ -1,29 +1,29 @@ -import * as React from "react"; -import { EllipseElementModel } from "./EllipseElementModel"; -import { BaseWidget, BaseWidgetProps } from "@projectstorm/react-core"; +import * as React from 'react'; +import { EllipseElementModel } from './EllipseElementModel'; +import { BaseWidget, BaseWidgetProps } from '@projectstorm/react-core'; export interface EllipseElementWidgetProps extends BaseWidgetProps { - model: EllipseElementModel; + model: EllipseElementModel; } export interface EllipseElementWidgetState {} export class EllipseElementWidget extends BaseWidget<EllipseElementWidgetProps, EllipseElementWidgetState> { - constructor(props: EllipseElementWidgetProps) { - super("src-ellipsse-element", props); - this.state = {}; - } + constructor(props: EllipseElementWidgetProps) { + super('src-ellipsse-element', props); + this.state = {}; + } - render() { - return ( - <ellipse - {...this.getProps()} - cx={this.props.model.center.x} - cy={this.props.model.center.y} - rx={this.props.model.radiusX} - ry={this.props.model.radiusX} - fill={this.props.model.background} - /> - ); - } + render() { + return ( + <ellipse + {...this.getProps()} + cx={this.props.model.center.x} + cy={this.props.model.center.y} + rx={this.props.model.radiusX} + ry={this.props.model.radiusX} + fill={this.props.model.background} + /> + ); + } } diff --git a/src/primitives/grid/GridElementFactory.tsx b/src/primitives/grid/GridElementFactory.tsx index 1f09587..b12b53f 100644 --- a/src/primitives/grid/GridElementFactory.tsx +++ b/src/primitives/grid/GridElementFactory.tsx @@ -1,21 +1,21 @@ -import { AbstractElementFactory } from "../../AbstractElementFactory"; -import { GridElementModel } from "./GridElementModel"; -import { CanvasEngine } from "../../CanvasEngine"; -import { GridElementWidget } from "./GridElementWidget"; -import * as React from "react"; +import { AbstractElementFactory } from '../../base-factories/AbstractElementFactory'; +import { GridElementModel } from './GridElementModel'; +import { CanvasEngine } from '../../CanvasEngine'; +import { GridElementWidget } from './GridElementWidget'; +import * as React from 'react'; export class GridElementFactory extends AbstractElementFactory<GridElementModel> { - static NAME = "primitive-grid"; + static NAME = 'primitive-grid'; - constructor() { - super(GridElementFactory.NAME); - } + constructor() { + super(GridElementFactory.NAME); + } - generateModel(): GridElementModel { - return new GridElementModel(); - } + generateModel(): GridElementModel { + return new GridElementModel(); + } - generateWidget(engine: CanvasEngine, model: GridElementModel): JSX.Element { - return <GridElementWidget engine={engine} model={model} />; - } + generateWidget(engine: CanvasEngine, model: GridElementModel): JSX.Element { + return <GridElementWidget engine={engine} model={model} />; + } } diff --git a/src/primitives/grid/GridElementModel.ts b/src/primitives/grid/GridElementModel.ts index f429af9..9364126 100644 --- a/src/primitives/grid/GridElementModel.ts +++ b/src/primitives/grid/GridElementModel.ts @@ -1,43 +1,43 @@ -import { CanvasElementModel } from "../../models-canvas/CanvasElementModel"; -import { Rectangle } from "../../geometry/Rectangle"; -import { DeserializeEvent } from "../../base-models/BaseModel"; -import { GridElementFactory } from "./GridElementFactory"; +import { CanvasElementModel } from '../../models-canvas/CanvasElementModel'; +import { Rectangle } from '../../geometry/Rectangle'; +import { DeserializeEvent } from '../../base-models/BaseModel'; +import { GridElementFactory } from './GridElementFactory'; export class GridElementModel extends CanvasElementModel { - sizeX: number; - sizeY: number; - color: string; - thickness: number; + sizeX: number; + sizeY: number; + color: string; + thickness: number; - constructor() { - super(GridElementFactory.NAME); - this.sizeX = 50; - this.sizeY = 50; - this.color = "rgba(0,0,0,0.1)"; - this.thickness = 1; - } + constructor() { + super(GridElementFactory.NAME); + this.sizeX = 50; + this.sizeY = 50; + this.color = 'rgba(0,0,0,0.1)'; + this.thickness = 1; + } - getDimensions(): Rectangle { - return undefined; - } + getDimensions(): Rectangle { + return undefined; + } - setDimensions(dimensions: Rectangle) {} + setDimensions(dimensions: Rectangle) {} - deSerialize(event: DeserializeEvent): void { - super.deSerialize(event); - this.sizeX = event.data["sizeX"]; - this.sizeY = event.data["sizeY"]; - this.color = event.data["color"]; - this.thickness = event.data["thickness"]; - } + deSerialize(event: DeserializeEvent): void { + super.deSerialize(event); + this.sizeX = event.data['sizeX']; + this.sizeY = event.data['sizeY']; + this.color = event.data['color']; + this.thickness = event.data['thickness']; + } - serialize(): { selected: boolean } { - return { - ...super.serialize(), - sizeX: this.sizeX, - sizeY: this.sizeY, - color: this.color, - thickness: this.thickness - }; - } + serialize(): { selected: boolean } { + return { + ...super.serialize(), + sizeX: this.sizeX, + sizeY: this.sizeY, + color: this.color, + thickness: this.thickness + }; + } } diff --git a/src/primitives/grid/GridElementWidget.tsx b/src/primitives/grid/GridElementWidget.tsx index 92f7dba..4a1b8ec 100644 --- a/src/primitives/grid/GridElementWidget.tsx +++ b/src/primitives/grid/GridElementWidget.tsx @@ -1,69 +1,67 @@ -import * as React from "react"; -import { CanvasEngine } from "../../CanvasEngine"; -import { GridElementModel } from "./GridElementModel"; -import { BaseWidget, BaseWidgetProps } from "@projectstorm/react-core"; +import * as React from 'react'; +import { CanvasEngine } from '../../CanvasEngine'; +import { GridElementModel } from './GridElementModel'; +import { BaseWidget, BaseWidgetProps } from '@projectstorm/react-core'; export interface GridElementWidgetProps extends BaseWidgetProps { - engine: CanvasEngine; - model: GridElementModel; + engine: CanvasEngine; + model: GridElementModel; } export interface GridElementWidgetState {} export class GridElementWidget extends BaseWidget<GridElementWidgetProps, GridElementWidgetState> { - constructor(props: GridElementWidgetProps) { - super("src-grid-element", props); - this.state = {}; - } + constructor(props: GridElementWidgetProps) { + super('src-grid-element', props); + this.state = {}; + } - render() { - let childrenX = []; - let offsetX = - this.props.engine.getModel().offsetX % - (this.props.model.sizeX * this.props.engine.getModel().getZoomLevel()); - let spacingX = this.props.model.sizeX * this.props.engine.getModel().getZoomLevel(); - let totalChildrenX = this.props.engine.getCanvasWidget().dimension.realDimensions.getWidth() / spacingX; - for (let i = 0; i < totalChildrenX; i++) { - let x = offsetX + spacingX * i; - childrenX.push( - <line - key={"x-" + i} - stroke={this.props.model.color} - strokeWidth={this.props.model.thickness} - y1={0} - y2={this.props.engine.getCanvasWidget().dimension.realDimensions.getHeight()} - x1={x} - x2={x} - /> - ); - } + render() { + let childrenX = []; + let offsetX = + this.props.engine.getModel().offsetX % (this.props.model.sizeX * this.props.engine.getModel().getZoomLevel()); + let spacingX = this.props.model.sizeX * this.props.engine.getModel().getZoomLevel(); + let totalChildrenX = this.props.engine.getModel().width / spacingX; + for (let i = 0; i < totalChildrenX; i++) { + let x = offsetX + spacingX * i; + childrenX.push( + <line + key={'x-' + i} + stroke={this.props.model.color} + strokeWidth={this.props.model.thickness} + y1={0} + y2={this.props.engine.getModel().height} + x1={x} + x2={x} + /> + ); + } - let childrenY = []; - let offsetY = - this.props.engine.getModel().offsetY % - (this.props.model.sizeY * this.props.engine.getModel().getZoomLevel()); - let spacingY = this.props.model.sizeY * this.props.engine.getModel().getZoomLevel(); - let totalChildrenY = this.props.engine.getCanvasWidget().dimension.realDimensions.getHeight() / spacingY; - for (let i = 0; i < totalChildrenY; i++) { - let y = offsetY + spacingY * i; - childrenY.push( - <line - key={"y-" + i} - stroke={this.props.model.color} - strokeWidth={this.props.model.thickness} - x1={0} - x2={this.props.engine.getCanvasWidget().dimension.realDimensions.getWidth()} - y1={y} - y2={y} - /> - ); - } + let childrenY = []; + let offsetY = + this.props.engine.getModel().offsetY % (this.props.model.sizeY * this.props.engine.getModel().getZoomLevel()); + let spacingY = this.props.model.sizeY * this.props.engine.getModel().getZoomLevel(); + let totalChildrenY = this.props.engine.getModel().height / spacingY; + for (let i = 0; i < totalChildrenY; i++) { + let y = offsetY + spacingY * i; + childrenY.push( + <line + key={'y-' + i} + stroke={this.props.model.color} + strokeWidth={this.props.model.thickness} + x1={0} + x2={this.props.engine.getModel().width} + y1={y} + y2={y} + /> + ); + } - return ( - <g {...this.getProps()}> - {childrenX} - {childrenY} - </g> - ); - } + return ( + <g {...this.getProps()}> + {childrenX} + {childrenY} + </g> + ); + } } diff --git a/src/primitives/paper/PaperElementFactory.tsx b/src/primitives/paper/PaperElementFactory.tsx index e8be6ba..499e6aa 100644 --- a/src/primitives/paper/PaperElementFactory.tsx +++ b/src/primitives/paper/PaperElementFactory.tsx @@ -1,21 +1,21 @@ -import { AbstractElementFactory } from "../../AbstractElementFactory"; -import { PaperElementModel } from "./PaperElementModel"; -import { CanvasEngine } from "../../CanvasEngine"; -import { PaperElementWidget } from "./PaperElementWidget"; -import * as React from "react"; +import { AbstractElementFactory } from '../../base-factories/AbstractElementFactory'; +import { PaperElementModel } from './PaperElementModel'; +import { CanvasEngine } from '../../CanvasEngine'; +import { PaperElementWidget } from './PaperElementWidget'; +import * as React from 'react'; export class PaperElementFactory extends AbstractElementFactory<PaperElementModel> { - static NAME = "primitive-paper"; + static NAME = 'primitive-paper'; - constructor() { - super(PaperElementFactory.NAME); - } + constructor() { + super(PaperElementFactory.NAME); + } - generateModel(): PaperElementModel { - return new PaperElementModel(); - } + generateModel(): PaperElementModel { + return new PaperElementModel(); + } - generateWidget(engine: CanvasEngine, model: PaperElementModel): JSX.Element { - return <PaperElementWidget model={model} />; - } + generateWidget(engine: CanvasEngine, model: PaperElementModel): JSX.Element { + return <PaperElementWidget model={model} />; + } } diff --git a/src/primitives/paper/PaperElementModel.ts b/src/primitives/paper/PaperElementModel.ts index 7498896..dcfe5e4 100644 --- a/src/primitives/paper/PaperElementModel.ts +++ b/src/primitives/paper/PaperElementModel.ts @@ -1,45 +1,45 @@ -import { CanvasElementModel } from "../../models-canvas/CanvasElementModel"; -import { Rectangle } from "../../geometry/Rectangle"; -import { PaperElementFactory } from "./PaperElementFactory"; +import { CanvasElementModel } from '../../models-canvas/CanvasElementModel'; +import { Rectangle } from '../../geometry/Rectangle'; +import { PaperElementFactory } from './PaperElementFactory'; export class PaperElementModel extends CanvasElementModel { - dimensions: Rectangle; - - protected width: number; - protected height: number; - protected dpi: number; - - static INCH = 25.4; //mm - - constructor() { - super(PaperElementFactory.NAME); - this.dimensions = new Rectangle(); - this.setA4(); - } - - setA4() { - this.updateDimensions(210, 297, 300); - } - - updateDimensions(width: number, height: number, dpi: number) { - this.width = width; - this.height = height; - this.dpi = dpi; - this.recomputeDimensions(); - } - - recomputeDimensions() { - this.dimensions = new Rectangle( - 0, - 0, - (this.width * this.dpi) / PaperElementModel.INCH, - (this.height * this.dpi) / PaperElementModel.INCH - ); - } - - getDimensions(): Rectangle { - return this.dimensions; - } - - setDimensions(dimensions: Rectangle) {} + dimensions: Rectangle; + + protected width: number; + protected height: number; + protected dpi: number; + + static INCH = 25.4; //mm + + constructor() { + super(PaperElementFactory.NAME); + this.dimensions = new Rectangle(); + this.setA4(); + } + + setA4() { + this.updateDimensions(210, 297, 300); + } + + updateDimensions(width: number, height: number, dpi: number) { + this.width = width; + this.height = height; + this.dpi = dpi; + this.recomputeDimensions(); + } + + recomputeDimensions() { + this.dimensions = new Rectangle( + 0, + 0, + (this.width * this.dpi) / PaperElementModel.INCH, + (this.height * this.dpi) / PaperElementModel.INCH + ); + } + + getDimensions(): Rectangle { + return this.dimensions; + } + + setDimensions(dimensions: Rectangle) {} } diff --git a/src/primitives/paper/PaperElementWidget.tsx b/src/primitives/paper/PaperElementWidget.tsx index f8182a1..de34637 100644 --- a/src/primitives/paper/PaperElementWidget.tsx +++ b/src/primitives/paper/PaperElementWidget.tsx @@ -1,28 +1,28 @@ -import * as React from "react"; -import { BaseWidget, BaseWidgetProps } from "@projectstorm/react-core"; -import { PaperElementModel } from "./PaperElementModel"; +import * as React from 'react'; +import { BaseWidget, BaseWidgetProps } from '@projectstorm/react-core'; +import { PaperElementModel } from './PaperElementModel'; export interface PaperElementWidgetProps extends BaseWidgetProps { - model: PaperElementModel; + model: PaperElementModel; } export class PaperElementWidget extends BaseWidget<PaperElementWidgetProps> { - constructor(props) { - super("src-paper", props); - } + constructor(props) { + super('src-paper', props); + } - render() { - const dim = this.props.model.getDimensions(); - return ( - <div - {...this.getProps()} - style={{ - top: 0, - left: 0, - width: dim.getWidth(), - height: dim.getHeight() - }} - /> - ); - } + render() { + const dim = this.props.model.getDimensions(); + return ( + <div + {...this.getProps()} + style={{ + top: 0, + left: 0, + width: dim.getWidth(), + height: dim.getHeight() + }} + /> + ); + } } diff --git a/src/primitives/rectangle/RectangleElementFactory.tsx b/src/primitives/rectangle/RectangleElementFactory.tsx index 0e3a91a..52a8128 100644 --- a/src/primitives/rectangle/RectangleElementFactory.tsx +++ b/src/primitives/rectangle/RectangleElementFactory.tsx @@ -1,21 +1,21 @@ -import { AbstractElementFactory } from "../../AbstractElementFactory"; -import { RectangleElementModel } from "./RectangleElementModel"; -import { RectangleElementWidget } from "./RectangleElementWidget"; -import * as React from "react"; -import { CanvasEngine } from "../../CanvasEngine"; +import { AbstractElementFactory } from '../../base-factories/AbstractElementFactory'; +import { RectangleElementModel } from './RectangleElementModel'; +import { RectangleElementWidget } from './RectangleElementWidget'; +import * as React from 'react'; +import { CanvasEngine } from '../../CanvasEngine'; export class RectangleElementFactory extends AbstractElementFactory<RectangleElementModel> { - static NAME = "primitive-rectangle"; + static NAME = 'primitive-rectangle'; - constructor() { - super(RectangleElementFactory.NAME); - } + constructor() { + super(RectangleElementFactory.NAME); + } - generateModel(): RectangleElementModel { - return new RectangleElementModel(); - } + generateModel(): RectangleElementModel { + return new RectangleElementModel(); + } - generateWidget(engine: CanvasEngine, model: RectangleElementModel): JSX.Element { - return <RectangleElementWidget engine={engine} model={model} />; - } + generateWidget(engine: CanvasEngine, model: RectangleElementModel): JSX.Element { + return <RectangleElementWidget engine={engine} model={model} />; + } } diff --git a/src/primitives/rectangle/RectangleElementModel.ts b/src/primitives/rectangle/RectangleElementModel.ts index 1574e06..283c55e 100644 --- a/src/primitives/rectangle/RectangleElementModel.ts +++ b/src/primitives/rectangle/RectangleElementModel.ts @@ -1,40 +1,40 @@ -import { CanvasElementModel } from "../../models-canvas/CanvasElementModel"; -import { Rectangle } from "../../geometry/Rectangle"; -import { DeserializeEvent } from "../../base-models/BaseModel"; -import { RectangleElementFactory } from "./RectangleElementFactory"; +import { CanvasElementModel } from '../../models-canvas/CanvasElementModel'; +import { Rectangle } from '../../geometry/Rectangle'; +import { DeserializeEvent } from '../../base-models/BaseModel'; +import { RectangleElementFactory } from './RectangleElementFactory'; export class RectangleElementModel extends CanvasElementModel { - border: number; - borderColor: string; - background: string; - dimensions: Rectangle; + border: number; + borderColor: string; + background: string; + dimensions: Rectangle; - constructor() { - super(RectangleElementFactory.NAME); - this.border = 2; - this.borderColor = "black"; - this.background = "rgb(0,192,255)"; - this.dimensions = new Rectangle(0, 0, 100, 100); - this.selected = false; - } + constructor() { + super(RectangleElementFactory.NAME); + this.border = 2; + this.borderColor = 'black'; + this.background = 'rgb(0,192,255)'; + this.dimensions = new Rectangle(0, 0, 100, 100); + this.selected = false; + } - serialize() { - return { - ...super.serialize(), - dimensions: this.dimensions.serialize() - }; - } + serialize() { + return { + ...super.serialize(), + dimensions: this.dimensions.serialize() + }; + } - deSerialize(event: DeserializeEvent): void { - super.deSerialize(event); - this.dimensions.deserialize(event.data["dimensions"]); - } + deSerialize(event: DeserializeEvent): void { + super.deSerialize(event); + this.dimensions.deserialize(event.data['dimensions']); + } - getDimensions(): Rectangle { - return this.dimensions; - } + getDimensions(): Rectangle { + return this.dimensions; + } - setDimensions(dimensions: Rectangle) { - this.dimensions = dimensions; - } + setDimensions(dimensions: Rectangle) { + this.dimensions = dimensions; + } } diff --git a/src/primitives/rectangle/RectangleElementWidget.tsx b/src/primitives/rectangle/RectangleElementWidget.tsx index 9492c45..bac36e9 100644 --- a/src/primitives/rectangle/RectangleElementWidget.tsx +++ b/src/primitives/rectangle/RectangleElementWidget.tsx @@ -1,35 +1,35 @@ -import * as React from "react"; -import { BaseWidget, BaseWidgetProps } from "@projectstorm/react-core"; -import { RectangleElementModel } from "./RectangleElementModel"; -import { CanvasEngine } from "../../CanvasEngine"; -import { PressElementEvent, UnPressElementEvent } from "../../event-bus/events/elements"; +import * as React from 'react'; +import { BaseWidget, BaseWidgetProps } from '@projectstorm/react-core'; +import { RectangleElementModel } from './RectangleElementModel'; +import { CanvasEngine } from '../../CanvasEngine'; +import { PressElementEvent, UnPressElementEvent } from '../../event-bus/events/elements'; export interface SquareElementWidgetProps extends BaseWidgetProps { - model: RectangleElementModel; - engine: CanvasEngine; + model: RectangleElementModel; + engine: CanvasEngine; } export interface SquareElementWidgetState {} export class RectangleElementWidget extends BaseWidget<SquareElementWidgetProps, SquareElementWidgetState> { - constructor(props: SquareElementWidgetProps) { - super("src-primitive-rectangle", props); - this.state = {}; - } + constructor(props: SquareElementWidgetProps) { + super('src-primitive-rectangle', props); + this.state = {}; + } - render() { - let dimensions = this.props.model.dimensions; - return ( - <polygon - {...this.getProps()} - points={dimensions.getSVGPoints()} - onMouseDown={event => { - this.props.engine.getEventBus().fireEvent(new PressElementEvent(this, this.props.model)); - }} - onMouseUp={event => { - this.props.engine.getEventBus().fireEvent(new UnPressElementEvent(this, this.props.model)); - }} - /> - ); - } + render() { + let dimensions = this.props.model.dimensions; + return ( + <polygon + {...this.getProps()} + points={dimensions.getSVGPoints()} + onMouseDown={event => { + this.props.engine.getEventBus().fireEvent(new PressElementEvent(this, this.props.model)); + }} + onMouseUp={event => { + this.props.engine.getEventBus().fireEvent(new UnPressElementEvent(this, this.props.model)); + }} + /> + ); + } } diff --git a/src/primitives/selection/SelectionElementFactory.tsx b/src/primitives/selection/SelectionElementFactory.tsx index c3f2bf7..bf04355 100644 --- a/src/primitives/selection/SelectionElementFactory.tsx +++ b/src/primitives/selection/SelectionElementFactory.tsx @@ -1,30 +1,30 @@ -import { AbstractElementFactory } from "../../AbstractElementFactory"; -import { SelectionElementModel } from "./SelectionElementModel"; -import { CanvasEngine } from "../../CanvasEngine"; -import { SelectionElementWidget } from "./SelectionElementWidget"; -import * as React from "react"; -import { ResizeDimensionsState } from "../../state-machine/states/ResizeDimensionsState"; -import { ResizeOriginDimensionsState } from "../../state-machine/states/ResizeOriginDimensionState"; -import { RotateElementsState } from "../../state-machine/states/RotateElementsState"; +import { AbstractElementFactory } from '../../base-factories/AbstractElementFactory'; +import { SelectionElementModel } from './SelectionElementModel'; +import { CanvasEngine } from '../../CanvasEngine'; +import { SelectionElementWidget } from './SelectionElementWidget'; +import * as React from 'react'; +import { ResizeDimensionsState } from '../../state-machine/states/ResizeDimensionsState'; +import { ResizeOriginDimensionsState } from '../../state-machine/states/ResizeOriginDimensionState'; +import { RotateElementsState } from '../../state-machine/states/RotateElementsState'; export class SelectionElementFactory extends AbstractElementFactory<SelectionElementModel> { - constructor() { - super("selection"); - } + constructor() { + super('selection'); + } - generateModel(): SelectionElementModel { - return new SelectionElementModel(); - } + generateModel(): SelectionElementModel { + return new SelectionElementModel(); + } - getCanvasStates() { - return [ - new ResizeOriginDimensionsState(this.engine), - new ResizeDimensionsState(this.engine), - new RotateElementsState(this.engine) - ]; - } + getCanvasStates() { + return [ + new ResizeOriginDimensionsState(this.engine), + new ResizeDimensionsState(this.engine), + new RotateElementsState(this.engine) + ]; + } - generateWidget(engine: CanvasEngine, model: SelectionElementModel): JSX.Element { - return <SelectionElementWidget engine={engine} model={model} />; - } + generateWidget(engine: CanvasEngine, model: SelectionElementModel): JSX.Element { + return <SelectionElementWidget engine={engine} model={model} />; + } } diff --git a/src/primitives/selection/SelectionElementModel.ts b/src/primitives/selection/SelectionElementModel.ts index 46f9181..82093ea 100644 --- a/src/primitives/selection/SelectionElementModel.ts +++ b/src/primitives/selection/SelectionElementModel.ts @@ -1,47 +1,47 @@ -import { CanvasElementModel } from "../../models-canvas/CanvasElementModel"; -import * as _ from "lodash"; -import { Rectangle } from "../../geometry/Rectangle"; -import { DeserializeEvent } from "../../base-models/BaseModel"; +import { CanvasElementModel } from '../../models-canvas/CanvasElementModel'; +import * as _ from 'lodash'; +import { Rectangle } from '../../geometry/Rectangle'; +import { DeserializeEvent } from '../../base-models/BaseModel'; export class SelectionElementModel extends CanvasElementModel { - models: CanvasElementModel[]; - - constructor() { - super("selection"); - this.models = []; - } - - setModels(models: CanvasElementModel[]) { - this.models = models; - } - - getModels(): CanvasElementModel[] { - return this.models; - } - - getDimensions(): Rectangle { - return Rectangle.boundingBoxFromPolygons( - _.map(this.models, model => { - return model.getDimensions(); - }) - ); - } - - setDimensions(dimensions: Rectangle) {} - - deSerialize(event: DeserializeEvent): void { - super.deSerialize(event); - this.models = _.map(event.data["models"], modelID => { - return event.cache[modelID]; - }) as any; - } - - serialize() { - return { - ...super.serialize(), - models: _.map(this.models, model => { - return model.getID(); - }) - }; - } + models: CanvasElementModel[]; + + constructor() { + super('selection'); + this.models = []; + } + + setModels(models: CanvasElementModel[]) { + this.models = models; + } + + getModels(): CanvasElementModel[] { + return this.models; + } + + getDimensions(): Rectangle { + return Rectangle.boundingBoxFromPolygons( + _.map(this.models, model => { + return model.getDimensions(); + }) + ); + } + + setDimensions(dimensions: Rectangle) {} + + deSerialize(event: DeserializeEvent): void { + super.deSerialize(event); + this.models = _.map(event.data['models'], modelID => { + return event.cache[modelID]; + }) as any; + } + + serialize() { + return { + ...super.serialize(), + models: _.map(this.models, model => { + return model.getID(); + }) + }; + } } diff --git a/src/primitives/selection/SelectionElementWidget.tsx b/src/primitives/selection/SelectionElementWidget.tsx index 1681eb4..76dc212 100644 --- a/src/primitives/selection/SelectionElementWidget.tsx +++ b/src/primitives/selection/SelectionElementWidget.tsx @@ -1,23 +1,23 @@ -import * as React from "react"; -import { BaseWidget, BaseWidgetProps } from "@projectstorm/react-core"; -import { SelectionGroupWidget } from "./SelectionGroupWidget"; -import { CanvasEngine } from "../../CanvasEngine"; -import { SelectionElementModel } from "./SelectionElementModel"; +import * as React from 'react'; +import { BaseWidget, BaseWidgetProps } from '@projectstorm/react-core'; +import { SelectionGroupWidget } from './SelectionGroupWidget'; +import { CanvasEngine } from '../../CanvasEngine'; +import { SelectionElementModel } from './SelectionElementModel'; export interface SelectionElementWidgetProps extends BaseWidgetProps { - engine: CanvasEngine; - model: SelectionElementModel; + engine: CanvasEngine; + model: SelectionElementModel; } export interface SelectionElementWidgetState {} export class SelectionElementWidget extends BaseWidget<SelectionElementWidgetProps, SelectionElementWidgetState> { - constructor(props: SelectionElementWidgetProps) { - super("src-selection-group", props); - this.state = {}; - } + constructor(props: SelectionElementWidgetProps) { + super('src-selection-group', props); + this.state = {}; + } - render() { - return <SelectionGroupWidget model={this.props.model} engine={this.props.engine} />; - } + render() { + return <SelectionGroupWidget model={this.props.model} engine={this.props.engine} />; + } } diff --git a/src/primitives/selection/SelectionGroupWidget.tsx b/src/primitives/selection/SelectionGroupWidget.tsx index 1474952..6854c31 100644 --- a/src/primitives/selection/SelectionGroupWidget.tsx +++ b/src/primitives/selection/SelectionGroupWidget.tsx @@ -1,97 +1,97 @@ -import * as React from "react"; -import { BaseWidget, BaseWidgetProps, MouseWidget } from "@projectstorm/react-core"; -import { AnchorWidget } from "../../widgets/AnchorWidget"; -import { CanvasEngine } from "../../CanvasEngine"; -import { SelectionElementModel } from "./SelectionElementModel"; -import { ModelAnchorInputPosition } from "../../state-machine/input/ModelAnchorInput"; -import { ModelRotateInput } from "../../state-machine/input/ModelRotateInput"; +import * as React from 'react'; +import { BaseWidget, BaseWidgetProps, MouseWidget } from '@projectstorm/react-core'; +import { AnchorWidget } from '../../primitives-core/anchor/AnchorWidget'; +import { CanvasEngine } from '../../CanvasEngine'; +import { SelectionElementModel } from './SelectionElementModel'; +import { ModelAnchorInputPosition } from '../../state-machine/input/ModelAnchorInput'; +import { ModelRotateInput } from '../../state-machine/input/ModelRotateInput'; +import { SmartAnchorWidget } from '../../primitives-core/anchor/SmartAnchorWidget'; export interface SelectionGroupWidgetProps extends BaseWidgetProps { - model: SelectionElementModel; - engine: CanvasEngine; + model: SelectionElementModel; + engine: CanvasEngine; } export interface SelectionGroupWidgetState {} export class SelectionGroupWidget extends BaseWidget<SelectionGroupWidgetProps, SelectionGroupWidgetState> { - constructor(props: SelectionGroupWidgetProps) { - super("src-selection-group", props); - this.state = {}; - } + constructor(props: SelectionGroupWidgetProps) { + super('src-selection-group', props); + this.state = {}; + } - render() { - let dimension = this.props.model.getDimensions().toRealDimensions(this.props.engine.getModel()); - return ( - <div - style={{ - left: dimension.getTopLeft().x, - top: dimension.getTopLeft().y, - width: dimension.getWidth(), - height: dimension.getHeight() - }} - {...this.getProps()} - > - <MouseWidget - element="div" - extraProps={{ - className: this.bem("__rotate") - }} - mouseDownEvent={() => { - this.props.engine.getStateMachine().addInput(new ModelRotateInput(this.props.model)); - }} - mouseUpEvent={() => { - this.props.engine.getStateMachine().removeInput(ModelRotateInput.NAME); - }} - /> - <AnchorWidget - pos={ModelAnchorInputPosition.TOP_LEFT} - selectionModel={this.props.model} - engine={this.props.engine} - className={this.bem("__top-left")} - /> - <AnchorWidget - pos={ModelAnchorInputPosition.TOP} - selectionModel={this.props.model} - engine={this.props.engine} - className={this.bem("__top")} - /> - <AnchorWidget - pos={ModelAnchorInputPosition.TOP_RIGHT} - selectionModel={this.props.model} - engine={this.props.engine} - className={this.bem("__top-right")} - /> - <AnchorWidget - pos={ModelAnchorInputPosition.LEFT} - selectionModel={this.props.model} - engine={this.props.engine} - className={this.bem("__left")} - /> - <AnchorWidget - pos={ModelAnchorInputPosition.RIGHT} - selectionModel={this.props.model} - engine={this.props.engine} - className={this.bem("__right")} - /> - <AnchorWidget - pos={ModelAnchorInputPosition.BOT_LEFT} - selectionModel={this.props.model} - engine={this.props.engine} - className={this.bem("__bot-left")} - /> - <AnchorWidget - pos={ModelAnchorInputPosition.BOT} - selectionModel={this.props.model} - engine={this.props.engine} - className={this.bem("__bot")} - /> - <AnchorWidget - pos={ModelAnchorInputPosition.BOT_RIGHT} - selectionModel={this.props.model} - engine={this.props.engine} - className={this.bem("__bot-right")} - /> - </div> - ); - } + render() { + let dimension = this.props.model.getDimensions().toRealDimensions(this.props.engine.getModel()); + return ( + <div + style={{ + left: dimension.getTopLeft().x, + top: dimension.getTopLeft().y, + width: dimension.getWidth(), + height: dimension.getHeight() + }} + {...this.getProps()}> + <MouseWidget + element="div" + extraProps={{ + className: this.bem('__rotate') + }} + mouseDownEvent={() => { + this.props.engine.getStateMachine().addInput(new ModelRotateInput(this.props.model)); + }} + mouseUpEvent={() => { + this.props.engine.getStateMachine().removeInput(ModelRotateInput.NAME); + }} + /> + <SmartAnchorWidget + pos={ModelAnchorInputPosition.TOP_LEFT} + selectionModel={this.props.model} + engine={this.props.engine} + className={this.bem('__top-left')} + /> + <SmartAnchorWidget + pos={ModelAnchorInputPosition.TOP} + selectionModel={this.props.model} + engine={this.props.engine} + className={this.bem('__top')} + /> + <SmartAnchorWidget + pos={ModelAnchorInputPosition.TOP_RIGHT} + selectionModel={this.props.model} + engine={this.props.engine} + className={this.bem('__top-right')} + /> + <SmartAnchorWidget + pos={ModelAnchorInputPosition.LEFT} + selectionModel={this.props.model} + engine={this.props.engine} + className={this.bem('__left')} + /> + <SmartAnchorWidget + pos={ModelAnchorInputPosition.RIGHT} + selectionModel={this.props.model} + engine={this.props.engine} + className={this.bem('__right')} + /> + <SmartAnchorWidget + pos={ModelAnchorInputPosition.BOT_LEFT} + selectionModel={this.props.model} + engine={this.props.engine} + className={this.bem('__bot-left')} + /> + <SmartAnchorWidget + pos={ModelAnchorInputPosition.BOT} + selectionModel={this.props.model} + engine={this.props.engine} + className={this.bem('__bot')} + /> + <SmartAnchorWidget + pos={ModelAnchorInputPosition.BOT_RIGHT} + selectionModel={this.props.model} + engine={this.props.engine} + className={this.bem('__bot-right')} + /> + </div> + ); + } } diff --git a/src/sass/main.scss b/src/sass/main.scss index 8ab8fd1..4bb1d50 100644 --- a/src/sass/main.scss +++ b/src/sass/main.scss @@ -1,5 +1,3 @@ -@import "CanvasWidget"; -@import "CanvasLayerWidget"; +@import "../primitives-core/canvas/SimpleCanvasWidget"; @import "SelectionGroupWidget"; -@import "AnchorWidget"; @import "PaperElementWidget"; diff --git a/src/state-machine/AbstractDisplacementState.ts b/src/state-machine/AbstractDisplacementState.ts index 0b3d86c..c687254 100644 --- a/src/state-machine/AbstractDisplacementState.ts +++ b/src/state-machine/AbstractDisplacementState.ts @@ -1,37 +1,34 @@ -import { AbstractState } from "./AbstractState"; -import { StateMachine } from "./StateMachine"; -import { CanvasEngine } from "../CanvasEngine"; -import { MouseDownInput } from "./input/MouseDownInput"; -import { InlineAction } from "../event-bus/InlineAction"; -import { MouseMoveEvent } from "../event-bus/events/mouse"; +import { AbstractState } from './AbstractState'; +import { StateMachine } from './StateMachine'; +import { CanvasEngine } from '../CanvasEngine'; +import { MouseDownInput } from './input/MouseDownInput'; +import { InlineAction } from '../event-bus/InlineAction'; +import { MouseMoveEvent } from '../event-bus/events/mouse'; export abstract class AbstractDisplacementState extends AbstractState { - initialMouse: MouseDownInput; + initialMouse: MouseDownInput; - constructor(name: string, engine: CanvasEngine) { - super(name, engine); - this.requireInput(MouseDownInput.NAME); - this.registerAction( - new InlineAction<MouseMoveEvent>(MouseMoveEvent.NAME, event => { - if (this.initialMouse) { - this.processDisplacement( - event.mouseX - this.initialMouse.mouseX, - event.mouseY - this.initialMouse.mouseY - ); - } - }) - ); - } + constructor(name: string, engine: CanvasEngine) { + super(name, engine); + this.requireInput(MouseDownInput.NAME); + this.registerAction( + new InlineAction<MouseMoveEvent>(MouseMoveEvent.NAME, event => { + if (this.initialMouse) { + this.processDisplacement(event.mouseX - this.initialMouse.mouseX, event.mouseY - this.initialMouse.mouseY); + } + }) + ); + } - abstract processDisplacement(displacementX, displacementY); + abstract processDisplacement(displacementX, displacementY); - activated(machine: StateMachine) { - super.activated(machine); - this.initialMouse = machine.getInput(MouseDownInput.NAME) as MouseDownInput; - } + activated(machine: StateMachine) { + super.activated(machine); + this.initialMouse = machine.getInput(MouseDownInput.NAME) as MouseDownInput; + } - deactivated(machine: StateMachine) { - super.deactivated(machine); - this.initialMouse = null; - } + deactivated(machine: StateMachine) { + super.deactivated(machine); + this.initialMouse = null; + } } diff --git a/src/state-machine/AbstractState.ts b/src/state-machine/AbstractState.ts index e39569e..aca5674 100644 --- a/src/state-machine/AbstractState.ts +++ b/src/state-machine/AbstractState.ts @@ -1,51 +1,51 @@ -import { StateMachine } from "./StateMachine"; -import { Action } from "../event-bus/Action"; -import { CanvasEngine } from "../CanvasEngine"; -import * as _ from "lodash"; +import { StateMachine } from './StateMachine'; +import { Action } from '../event-bus/Action'; +import { CanvasEngine } from '../CanvasEngine'; +import * as _ from 'lodash'; export abstract class AbstractState { - engine: CanvasEngine; - name: string; - requiredInputs: string[]; - actions: Action[]; - - constructor(name: string, engine: CanvasEngine) { - this.engine = engine; - this.name = name; - this.requiredInputs = []; - this.actions = []; - } - - registerAction(action: Action) { - this.actions.push(action); - } - - requireInput(input: string) { - this.requiredInputs.push(input); - } - - getName() { - return this.name; - } - - shouldStateActivate(machine: StateMachine): boolean { - let keys = _.keys(machine.inputs); - if (_.intersection(keys, this.requiredInputs).length === this.requiredInputs.length) { - return true; - } - - return false; - } - - activated(machine: StateMachine) { - _.forEach(this.actions, action => { - this.engine.getEventBus().registerAction(action); - }); - } - - deactivated(machine: StateMachine) { - _.forEach(this.actions, action => { - this.engine.getEventBus().unRegisterAction(action); - }); - } + engine: CanvasEngine; + name: string; + requiredInputs: string[]; + actions: Action[]; + + constructor(name: string, engine: CanvasEngine) { + this.engine = engine; + this.name = name; + this.requiredInputs = []; + this.actions = []; + } + + registerAction(action: Action) { + this.actions.push(action); + } + + requireInput(input: string) { + this.requiredInputs.push(input); + } + + getName() { + return this.name; + } + + shouldStateActivate(machine: StateMachine): boolean { + let keys = _.keys(machine.inputs); + if (_.intersection(keys, this.requiredInputs).length === this.requiredInputs.length) { + return true; + } + + return false; + } + + activated(machine: StateMachine) { + _.forEach(this.actions, action => { + this.engine.getEventBus().registerAction(action); + }); + } + + deactivated(machine: StateMachine) { + _.forEach(this.actions, action => { + this.engine.getEventBus().unRegisterAction(action); + }); + } } diff --git a/src/state-machine/AbstractStateMachineInput.ts b/src/state-machine/AbstractStateMachineInput.ts index ede342b..85b0574 100644 --- a/src/state-machine/AbstractStateMachineInput.ts +++ b/src/state-machine/AbstractStateMachineInput.ts @@ -1,7 +1,7 @@ export class AbstractStateMachineInput { - name: string; + name: string; - constructor(name: string) { - this.name = name; - } + constructor(name: string) { + this.name = name; + } } diff --git a/src/state-machine/StateMachine.ts b/src/state-machine/StateMachine.ts index eceac08..75ea0d5 100644 --- a/src/state-machine/StateMachine.ts +++ b/src/state-machine/StateMachine.ts @@ -1,104 +1,104 @@ -import { AbstractState } from "./AbstractState"; -import * as _ from "lodash"; -import { AbstractStateMachineInput } from "./AbstractStateMachineInput"; -import { BaseEvent, BaseListener, BaseObject } from "@projectstorm/react-core"; +import { AbstractState } from './AbstractState'; +import * as _ from 'lodash'; +import { AbstractStateMachineInput } from './AbstractStateMachineInput'; +import { BaseEvent, BaseListener, BaseObject } from '@projectstorm/react-core'; export interface StateMachineListener extends BaseListener<StateMachine> { - stateChanged(event: BaseEvent<StateMachine> & { state: AbstractState }); + stateChanged(event: BaseEvent<StateMachine> & { state: AbstractState }); } export class StateMachine extends BaseObject<StateMachineListener> { - inputs: { [name: string]: AbstractStateMachineInput }; - states: { [name: string]: AbstractState }; - state: AbstractState; + inputs: { [name: string]: AbstractStateMachineInput }; + states: { [name: string]: AbstractState }; + state: AbstractState; - constructor() { - super(); - this.inputs = {}; - this.states = {}; - this.state = null; - } + constructor() { + super(); + this.inputs = {}; + this.states = {}; + this.state = null; + } - addState(state: AbstractState) { - if (this.states[state.getName()]) { - throw "A state with name: " + state.getName() + " is already registered"; - } - this.states[state.getName()] = state; - } + addState(state: AbstractState) { + if (this.states[state.getName()]) { + throw 'A state with name: ' + state.getName() + ' is already registered'; + } + this.states[state.getName()] = state; + } - removeInput(type: string, fire: boolean = true) { - if (!this.inputs[type]) { - return; - } + removeInput(type: string, fire: boolean = true) { + if (!this.inputs[type]) { + return; + } - delete this.inputs[type]; - if (fire) { - this.process(); - } - } + delete this.inputs[type]; + if (fire) { + this.process(); + } + } - addInput(input: AbstractStateMachineInput, fire: boolean = true): AbstractStateMachineInput { - this.inputs[input.name] = input; - if (fire) { - this.process(); - } - return input; - } + addInput(input: AbstractStateMachineInput, fire: boolean = true): AbstractStateMachineInput { + this.inputs[input.name] = input; + if (fire) { + this.process(); + } + return input; + } - getInput(name: string): AbstractStateMachineInput { - return _.find(this.inputs, { name: name }); - } + getInput(name: string): AbstractStateMachineInput { + return _.find(this.inputs, { name: name }); + } - clearState() { - if (this.state) { - this.state.deactivated(this); - } else { - return; - } - this.state = null; - this.fireStateChanged(); - } + clearState() { + if (this.state) { + this.state.deactivated(this); + } else { + return; + } + this.state = null; + this.fireStateChanged(); + } - fireStateChanged() { - this.iterateListeners("state changed", (listener, event) => { - if (listener.stateChanged) { - listener.stateChanged({ ...event, state: this.state }); - } - }); - } + fireStateChanged() { + this.iterateListeners('state changed', (listener, event) => { + if (listener.stateChanged) { + listener.stateChanged({ ...event, state: this.state }); + } + }); + } - setState(state: AbstractState) { - // deactivate previous state - if (this.state && state) { - if (this.state.name !== state.name) { - this.state.deactivated(this); - this.state = state; - state.activated(this); - this.fireStateChanged(); - } - } else { - // there never was a state - this.state = state; - state.activated(this); - this.fireStateChanged(); - } - } + setState(state: AbstractState) { + // deactivate previous state + if (this.state && state) { + if (this.state.name !== state.name) { + this.state.deactivated(this); + this.state = state; + state.activated(this); + this.fireStateChanged(); + } + } else { + // there never was a state + this.state = state; + state.activated(this); + this.fireStateChanged(); + } + } - process() { - // check for possible reactions to current inputs - let possibleReactions = _.map( - _.filter(this.states, state => { - return state.shouldStateActivate(this); - }), - state => { - return state.getName(); - } - ); + process() { + // check for possible reactions to current inputs + let possibleReactions = _.map( + _.filter(this.states, state => { + return state.shouldStateActivate(this); + }), + state => { + return state.getName(); + } + ); - if (possibleReactions.length === 0) { - this.clearState(); - } else if (possibleReactions.length > 0) { - this.setState(this.states[possibleReactions[0]]); - } - } + if (possibleReactions.length === 0) { + this.clearState(); + } else if (possibleReactions.length > 0) { + this.setState(this.states[possibleReactions[0]]); + } + } } diff --git a/src/state-machine/input/KeyInput.ts b/src/state-machine/input/KeyInput.ts index f1f2a99..ccf9b01 100644 --- a/src/state-machine/input/KeyInput.ts +++ b/src/state-machine/input/KeyInput.ts @@ -1,40 +1,40 @@ -import { AbstractStateMachineInput } from "../AbstractStateMachineInput"; -import { EventBus } from "../../event-bus/EventBus"; -import { InlineAction } from "../../event-bus/InlineAction"; -import { KeyDownEvent, KeyUpEvent } from "../../event-bus/events/key"; -import { StateMachine } from "../StateMachine"; +import { AbstractStateMachineInput } from '../AbstractStateMachineInput'; +import { EventBus } from '../../event-bus/EventBus'; +import { InlineAction } from '../../event-bus/InlineAction'; +import { KeyDownEvent, KeyUpEvent } from '../../event-bus/events/key'; +import { StateMachine } from '../StateMachine'; export enum KeyCode { - SHIFT = "Shift", - CONTROL = "Control" + SHIFT = 'Shift', + CONTROL = 'Control' } export class KeyInput extends AbstractStateMachineInput { - key: any; + key: any; - static identifier(key: string) { - return "key-" + key; - } + static identifier(key: string) { + return 'key-' + key; + } - constructor(key: string) { - super(KeyInput.identifier(key)); - this.key = key; - } + constructor(key: string) { + super(KeyInput.identifier(key)); + this.key = key; + } - static installActions(machine: StateMachine, eventBus: EventBus) { - eventBus.registerAction( - new InlineAction<KeyDownEvent>(KeyDownEvent.NAME, event => { - machine.addInput(new KeyInput(event.key)); - }) - ); - eventBus.registerAction( - new InlineAction<KeyUpEvent>(KeyUpEvent.NAME, event => { - machine.removeInput(KeyInput.identifier(event.key)); - }) - ); - } + static installActions(machine: StateMachine, eventBus: EventBus) { + eventBus.registerAction( + new InlineAction<KeyDownEvent>(KeyDownEvent.NAME, event => { + machine.addInput(new KeyInput(event.key)); + }) + ); + eventBus.registerAction( + new InlineAction<KeyUpEvent>(KeyUpEvent.NAME, event => { + machine.removeInput(KeyInput.identifier(event.key)); + }) + ); + } - isShift(): boolean { - return this.key === KeyCode.SHIFT; - } + isShift(): boolean { + return this.key === KeyCode.SHIFT; + } } diff --git a/src/state-machine/input/ModelAnchorInput.ts b/src/state-machine/input/ModelAnchorInput.ts index 3bad7f0..5a2484c 100644 --- a/src/state-machine/input/ModelAnchorInput.ts +++ b/src/state-machine/input/ModelAnchorInput.ts @@ -1,26 +1,26 @@ -import { SelectionElementModel } from "../../primitives/selection/SelectionElementModel"; -import { AbstractStateMachineInput } from "../AbstractStateMachineInput"; +import { SelectionElementModel } from '../../primitives/selection/SelectionElementModel'; +import { AbstractStateMachineInput } from '../AbstractStateMachineInput'; export enum ModelAnchorInputPosition { - TOP, - TOP_LEFT, - TOP_RIGHT, - LEFT, - RIGHT, - BOT, - BOT_LEFT, - BOT_RIGHT + TOP, + TOP_LEFT, + TOP_RIGHT, + LEFT, + RIGHT, + BOT, + BOT_LEFT, + BOT_RIGHT } export class ModelAnchorInput extends AbstractStateMachineInput { - selectionModel: SelectionElementModel; - anchor: ModelAnchorInputPosition; + selectionModel: SelectionElementModel; + anchor: ModelAnchorInputPosition; - static NAME = "model-anchor"; + static NAME = 'model-anchor'; - constructor(model: SelectionElementModel, anchor: ModelAnchorInputPosition) { - super(ModelAnchorInput.NAME); - this.selectionModel = model; - this.anchor = anchor; - } + constructor(model: SelectionElementModel, anchor: ModelAnchorInputPosition) { + super(ModelAnchorInput.NAME); + this.selectionModel = model; + this.anchor = anchor; + } } diff --git a/src/state-machine/input/ModelElementInput.ts b/src/state-machine/input/ModelElementInput.ts index 327b99a..7f903ef 100644 --- a/src/state-machine/input/ModelElementInput.ts +++ b/src/state-machine/input/ModelElementInput.ts @@ -1,30 +1,30 @@ -import { CanvasElementModel } from "../../models-canvas/CanvasElementModel"; -import { AbstractStateMachineInput } from "../AbstractStateMachineInput"; -import { EventBus } from "../../event-bus/EventBus"; -import { InlineAction } from "../../event-bus/InlineAction"; -import { StateMachine } from "../StateMachine"; -import { PressElementEvent, UnPressElementEvent } from "../../event-bus/events/elements"; +import { CanvasElementModel } from '../../models-canvas/CanvasElementModel'; +import { AbstractStateMachineInput } from '../AbstractStateMachineInput'; +import { EventBus } from '../../event-bus/EventBus'; +import { InlineAction } from '../../event-bus/InlineAction'; +import { StateMachine } from '../StateMachine'; +import { PressElementEvent, UnPressElementEvent } from '../../event-bus/events/elements'; export class ModelElementInput extends AbstractStateMachineInput { - element: CanvasElementModel; + element: CanvasElementModel; - static NAME = "model-element"; + static NAME = 'model-element'; - constructor(element: CanvasElementModel) { - super(ModelElementInput.NAME); - this.element = element; - } + constructor(element: CanvasElementModel) { + super(ModelElementInput.NAME); + this.element = element; + } - static installActions(machine: StateMachine, eventBus: EventBus) { - eventBus.registerAction( - new InlineAction<PressElementEvent>(PressElementEvent.NAME, event => { - machine.addInput(new ModelElementInput(event.element)); - }) - ); - eventBus.registerAction( - new InlineAction<UnPressElementEvent>(UnPressElementEvent.NAME, event => { - machine.removeInput(ModelElementInput.NAME); - }) - ); - } + static installActions(machine: StateMachine, eventBus: EventBus) { + eventBus.registerAction( + new InlineAction<PressElementEvent>(PressElementEvent.NAME, event => { + machine.addInput(new ModelElementInput(event.element)); + }) + ); + eventBus.registerAction( + new InlineAction<UnPressElementEvent>(UnPressElementEvent.NAME, event => { + machine.removeInput(ModelElementInput.NAME); + }) + ); + } } diff --git a/src/state-machine/input/ModelRotateInput.ts b/src/state-machine/input/ModelRotateInput.ts index bca7417..6723b92 100644 --- a/src/state-machine/input/ModelRotateInput.ts +++ b/src/state-machine/input/ModelRotateInput.ts @@ -1,13 +1,13 @@ -import { SelectionElementModel } from "../../primitives/selection/SelectionElementModel"; -import { AbstractStateMachineInput } from "../AbstractStateMachineInput"; +import { SelectionElementModel } from '../../primitives/selection/SelectionElementModel'; +import { AbstractStateMachineInput } from '../AbstractStateMachineInput'; export class ModelRotateInput extends AbstractStateMachineInput { - selectionModel: SelectionElementModel; + selectionModel: SelectionElementModel; - static NAME = "model-rotate"; + static NAME = 'model-rotate'; - constructor(model: SelectionElementModel) { - super(ModelRotateInput.NAME); - this.selectionModel = model; - } + constructor(model: SelectionElementModel) { + super(ModelRotateInput.NAME); + this.selectionModel = model; + } } diff --git a/src/state-machine/input/MouseDownInput.ts b/src/state-machine/input/MouseDownInput.ts index 6316074..4c26b48 100644 --- a/src/state-machine/input/MouseDownInput.ts +++ b/src/state-machine/input/MouseDownInput.ts @@ -1,33 +1,33 @@ -import { AbstractStateMachineInput } from "../AbstractStateMachineInput"; -import { EventBus } from "../../event-bus/EventBus"; -import { InlineAction } from "../../event-bus/InlineAction"; -import { StateMachine } from "../StateMachine"; -import { MouseDownEvent, MouseUpEvent } from "../../event-bus/events/mouse"; +import { AbstractStateMachineInput } from '../AbstractStateMachineInput'; +import { EventBus } from '../../event-bus/EventBus'; +import { InlineAction } from '../../event-bus/InlineAction'; +import { StateMachine } from '../StateMachine'; +import { MouseDownEvent, MouseUpEvent } from '../../event-bus/events/mouse'; export class MouseDownInput extends AbstractStateMachineInput { - mouseX: number; - mouseY: number; - originalEvent: MouseDownEvent; + mouseX: number; + mouseY: number; + originalEvent: MouseDownEvent; - static NAME = "mouse-down"; + static NAME = 'mouse-down'; - constructor(event: MouseDownEvent) { - super(MouseDownInput.NAME); - this.mouseX = event.mouseX; - this.mouseY = event.mouseY; - this.originalEvent = event; - } + constructor(event: MouseDownEvent) { + super(MouseDownInput.NAME); + this.mouseX = event.mouseX; + this.mouseY = event.mouseY; + this.originalEvent = event; + } - static installActions(machine: StateMachine, eventBus: EventBus) { - eventBus.registerAction( - new InlineAction<MouseDownEvent>(MouseDownEvent.NAME, event => { - machine.addInput(new MouseDownInput(event)); - }) - ); - eventBus.registerAction( - new InlineAction<MouseUpEvent>(MouseUpEvent.NAME, event => { - machine.removeInput(MouseDownInput.NAME); - }) - ); - } + static installActions(machine: StateMachine, eventBus: EventBus) { + eventBus.registerAction( + new InlineAction<MouseDownEvent>(MouseDownEvent.NAME, event => { + machine.addInput(new MouseDownInput(event)); + }) + ); + eventBus.registerAction( + new InlineAction<MouseUpEvent>(MouseUpEvent.NAME, event => { + machine.removeInput(MouseDownInput.NAME); + }) + ); + } } diff --git a/src/state-machine/states/DefaultState.ts b/src/state-machine/states/DefaultState.ts index fea97e6..7b5e6f9 100644 --- a/src/state-machine/states/DefaultState.ts +++ b/src/state-machine/states/DefaultState.ts @@ -1,10 +1,10 @@ -import { AbstractState } from "../AbstractState"; -import { CanvasEngine } from "../../CanvasEngine"; -import { SelectElementAction } from "../../event-bus/actions/SelectElementAction"; +import { AbstractState } from '../AbstractState'; +import { CanvasEngine } from '../../CanvasEngine'; +import { SelectElementAction } from '../../event-bus/actions/SelectElementAction'; export class DefaultState extends AbstractState { - constructor(engine: CanvasEngine) { - super("default-state", engine); - this.registerAction(new SelectElementAction(engine, false)); - } + constructor(engine: CanvasEngine) { + super('default-state', engine); + this.registerAction(new SelectElementAction(engine, false)); + } } diff --git a/src/state-machine/states/ResizeDimensionsState.ts b/src/state-machine/states/ResizeDimensionsState.ts index 54b4609..3e90046 100644 --- a/src/state-machine/states/ResizeDimensionsState.ts +++ b/src/state-machine/states/ResizeDimensionsState.ts @@ -1,74 +1,74 @@ -import { StateMachine } from "../StateMachine"; -import * as _ from "lodash"; -import { CanvasEngine } from "../../CanvasEngine"; -import { Rectangle } from "../../geometry/Rectangle"; -import { Point } from "../../geometry/Point"; -import { AbstractDisplacementState } from "../AbstractDisplacementState"; -import { Matrix } from "mathjs"; -import { ModelAnchorInput, ModelAnchorInputPosition } from "../input/ModelAnchorInput"; +import { StateMachine } from '../StateMachine'; +import * as _ from 'lodash'; +import { CanvasEngine } from '../../CanvasEngine'; +import { Rectangle } from '../../geometry/Rectangle'; +import { Point } from '../../geometry/Point'; +import { AbstractDisplacementState } from '../AbstractDisplacementState'; +import { Matrix } from 'mathjs'; +import { ModelAnchorInput, ModelAnchorInputPosition } from '../input/ModelAnchorInput'; export class ResizeDimensionsState extends AbstractDisplacementState { - anchorInput: ModelAnchorInput; - initialDimensions: Rectangle[]; - initialDimension: Rectangle; + anchorInput: ModelAnchorInput; + initialDimensions: Rectangle[]; + initialDimension: Rectangle; - constructor(engine: CanvasEngine) { - super("resize-dimension", engine); - this.requireInput(ModelAnchorInput.NAME); - this.engine = engine; - } + constructor(engine: CanvasEngine) { + super('resize-dimension', engine); + this.requireInput(ModelAnchorInput.NAME); + this.engine = engine; + } - activated(machine: StateMachine) { - super.activated(machine); - // get the input handles - this.anchorInput = machine.getInput(ModelAnchorInput.NAME) as ModelAnchorInput; + activated(machine: StateMachine) { + super.activated(machine); + // get the input handles + this.anchorInput = machine.getInput(ModelAnchorInput.NAME) as ModelAnchorInput; - // store the initial dimensions - this.initialDimension = this.anchorInput.selectionModel.getDimensions().clone(); - this.initialDimensions = _.map(this.anchorInput.selectionModel.getModels(), model => { - return model.getDimensions(); - }); - } + // store the initial dimensions + this.initialDimension = this.anchorInput.selectionModel.getDimensions().clone(); + this.initialDimensions = _.map(this.anchorInput.selectionModel.getModels(), model => { + return model.getDimensions(); + }); + } - processDisplacement(displacementX, displacementY) { - const zoom = this.engine.getModel().getZoomLevel(); + processDisplacement(displacementX, displacementY) { + const zoom = this.engine.getModel().getZoomLevel(); - // work out the distance difference - const distanceX = displacementX / zoom; - const distanceY = displacementY / zoom; + // work out the distance difference + const distanceX = displacementX / zoom; + const distanceY = displacementY / zoom; - // work out the scaling factors for both positive and negative cases - const scaleX = (this.initialDimension.getWidth() + distanceX) / this.initialDimension.getWidth(); - const scaleY = (this.initialDimension.getHeight() + distanceY) / this.initialDimension.getHeight(); - const scaleX2 = (this.initialDimension.getWidth() - distanceX) / this.initialDimension.getWidth(); - const scaleY2 = (this.initialDimension.getHeight() - distanceY) / this.initialDimension.getHeight(); + // work out the scaling factors for both positive and negative cases + const scaleX = (this.initialDimension.getWidth() + distanceX) / this.initialDimension.getWidth(); + const scaleY = (this.initialDimension.getHeight() + distanceY) / this.initialDimension.getHeight(); + const scaleX2 = (this.initialDimension.getWidth() - distanceX) / this.initialDimension.getWidth(); + const scaleY2 = (this.initialDimension.getHeight() - distanceY) / this.initialDimension.getHeight(); - // construct the correct transform matrix - let transform: Matrix = null; - if (this.anchorInput.anchor === ModelAnchorInputPosition.TOP_LEFT) { - transform = Point.createScaleMatrix(scaleX2, scaleY2, this.initialDimension.getBottomRight()); - } else if (this.anchorInput.anchor === ModelAnchorInputPosition.TOP) { - transform = Point.createScaleMatrix(1, scaleY2, this.initialDimension.getBottomMiddle()); - } else if (this.anchorInput.anchor === ModelAnchorInputPosition.TOP_RIGHT) { - transform = Point.createScaleMatrix(scaleX, scaleY2, this.initialDimension.getBottomLeft()); - } else if (this.anchorInput.anchor === ModelAnchorInputPosition.RIGHT) { - transform = Point.createScaleMatrix(scaleX, 1, this.initialDimension.getLeftMiddle()); - } else if (this.anchorInput.anchor === ModelAnchorInputPosition.BOT_RIGHT) { - transform = Point.createScaleMatrix(scaleX, scaleY, this.initialDimension.getTopLeft()); - } else if (this.anchorInput.anchor === ModelAnchorInputPosition.BOT) { - transform = Point.createScaleMatrix(1, scaleY, this.initialDimension.getTopMiddle()); - } else if (this.anchorInput.anchor === ModelAnchorInputPosition.BOT_LEFT) { - transform = Point.createScaleMatrix(scaleX2, scaleY, this.initialDimension.getTopRight()); - } else if (this.anchorInput.anchor === ModelAnchorInputPosition.LEFT) { - transform = Point.createScaleMatrix(scaleX2, 1, this.initialDimension.getRightMiddle()); - } + // construct the correct transform matrix + let transform: Matrix = null; + if (this.anchorInput.anchor === ModelAnchorInputPosition.TOP_LEFT) { + transform = Point.createScaleMatrix(scaleX2, scaleY2, this.initialDimension.getBottomRight()); + } else if (this.anchorInput.anchor === ModelAnchorInputPosition.TOP) { + transform = Point.createScaleMatrix(1, scaleY2, this.initialDimension.getBottomMiddle()); + } else if (this.anchorInput.anchor === ModelAnchorInputPosition.TOP_RIGHT) { + transform = Point.createScaleMatrix(scaleX, scaleY2, this.initialDimension.getBottomLeft()); + } else if (this.anchorInput.anchor === ModelAnchorInputPosition.RIGHT) { + transform = Point.createScaleMatrix(scaleX, 1, this.initialDimension.getLeftMiddle()); + } else if (this.anchorInput.anchor === ModelAnchorInputPosition.BOT_RIGHT) { + transform = Point.createScaleMatrix(scaleX, scaleY, this.initialDimension.getTopLeft()); + } else if (this.anchorInput.anchor === ModelAnchorInputPosition.BOT) { + transform = Point.createScaleMatrix(1, scaleY, this.initialDimension.getTopMiddle()); + } else if (this.anchorInput.anchor === ModelAnchorInputPosition.BOT_LEFT) { + transform = Point.createScaleMatrix(scaleX2, scaleY, this.initialDimension.getTopRight()); + } else if (this.anchorInput.anchor === ModelAnchorInputPosition.LEFT) { + transform = Point.createScaleMatrix(scaleX2, 1, this.initialDimension.getRightMiddle()); + } - _.forEach(this.anchorInput.selectionModel.getModels(), (model, index) => { - let dimensions = this.initialDimensions[index].clone(); - dimensions.transform(transform); - model.setDimensions(dimensions); - }); + _.forEach(this.anchorInput.selectionModel.getModels(), (model, index) => { + let dimensions = this.initialDimensions[index].clone(); + dimensions.transform(transform); + model.setDimensions(dimensions); + }); - this.engine.repaint(); - } + this.engine.repaint(); + } } diff --git a/src/state-machine/states/ResizeOriginDimensionState.ts b/src/state-machine/states/ResizeOriginDimensionState.ts index 628246e..ec784fd 100644 --- a/src/state-machine/states/ResizeOriginDimensionState.ts +++ b/src/state-machine/states/ResizeOriginDimensionState.ts @@ -1,76 +1,76 @@ -import { StateMachine } from "../StateMachine"; -import * as _ from "lodash"; -import { CanvasEngine } from "../../CanvasEngine"; -import { Rectangle } from "../../geometry/Rectangle"; -import { Point } from "../../geometry/Point"; -import { AbstractDisplacementState } from "../AbstractDisplacementState"; -import { Matrix } from "mathjs"; -import { ModelAnchorInput, ModelAnchorInputPosition } from "../input/ModelAnchorInput"; -import { KeyCode, KeyInput } from "../input/KeyInput"; +import { StateMachine } from '../StateMachine'; +import * as _ from 'lodash'; +import { CanvasEngine } from '../../CanvasEngine'; +import { Rectangle } from '../../geometry/Rectangle'; +import { Point } from '../../geometry/Point'; +import { AbstractDisplacementState } from '../AbstractDisplacementState'; +import { Matrix } from 'mathjs'; +import { ModelAnchorInput, ModelAnchorInputPosition } from '../input/ModelAnchorInput'; +import { KeyCode, KeyInput } from '../input/KeyInput'; export class ResizeOriginDimensionsState extends AbstractDisplacementState { - anchorInput: ModelAnchorInput; - initialDimensions: Rectangle[]; - initialDimension: Rectangle; + anchorInput: ModelAnchorInput; + initialDimensions: Rectangle[]; + initialDimension: Rectangle; - constructor(engine: CanvasEngine) { - super("resize-origin-dimension", engine); - this.requireInput(ModelAnchorInput.NAME); - this.requireInput(KeyInput.identifier(KeyCode.SHIFT)); - this.engine = engine; - } + constructor(engine: CanvasEngine) { + super('resize-origin-dimension', engine); + this.requireInput(ModelAnchorInput.NAME); + this.requireInput(KeyInput.identifier(KeyCode.SHIFT)); + this.engine = engine; + } - activated(machine: StateMachine) { - super.activated(machine); - // get the input handles - this.anchorInput = machine.getInput(ModelAnchorInput.NAME) as ModelAnchorInput; + activated(machine: StateMachine) { + super.activated(machine); + // get the input handles + this.anchorInput = machine.getInput(ModelAnchorInput.NAME) as ModelAnchorInput; - // store the initial dimensions - this.initialDimension = this.anchorInput.selectionModel.getDimensions().clone(); - this.initialDimensions = _.map(this.anchorInput.selectionModel.getModels(), model => { - return model.getDimensions(); - }); - } + // store the initial dimensions + this.initialDimension = this.anchorInput.selectionModel.getDimensions().clone(); + this.initialDimensions = _.map(this.anchorInput.selectionModel.getModels(), model => { + return model.getDimensions(); + }); + } - processDisplacement(displacementX, displacementY) { - const zoom = this.engine.getModel().getZoomLevel(); + processDisplacement(displacementX, displacementY) { + const zoom = this.engine.getModel().getZoomLevel(); - // work out the distance difference - const distanceX = displacementX / zoom; - const distanceY = displacementY / zoom; + // work out the distance difference + const distanceX = displacementX / zoom; + const distanceY = displacementY / zoom; - // work out the scaling factors for both positive and negative cases - const scaleX = ((this.initialDimension.getWidth() + distanceX) * 2) / this.initialDimension.getWidth(); - const scaleY = ((this.initialDimension.getHeight() + distanceY) * 2) / this.initialDimension.getHeight(); - const scaleX2 = ((this.initialDimension.getWidth() - distanceX) * 2) / this.initialDimension.getWidth(); - const scaleY2 = ((this.initialDimension.getHeight() - distanceY) * 2) / this.initialDimension.getHeight(); + // work out the scaling factors for both positive and negative cases + const scaleX = ((this.initialDimension.getWidth() + distanceX) * 2) / this.initialDimension.getWidth(); + const scaleY = ((this.initialDimension.getHeight() + distanceY) * 2) / this.initialDimension.getHeight(); + const scaleX2 = ((this.initialDimension.getWidth() - distanceX) * 2) / this.initialDimension.getWidth(); + const scaleY2 = ((this.initialDimension.getHeight() - distanceY) * 2) / this.initialDimension.getHeight(); - // construct the correct transform matrix - let transform: Matrix = null; - if (this.anchorInput.anchor === ModelAnchorInputPosition.TOP_LEFT) { - transform = Point.createScaleMatrix(scaleX2, scaleY2, this.initialDimension.getOrigin()); - } else if (this.anchorInput.anchor === ModelAnchorInputPosition.TOP) { - transform = Point.createScaleMatrix(1, scaleY2, this.initialDimension.getOrigin()); - } else if (this.anchorInput.anchor === ModelAnchorInputPosition.TOP_RIGHT) { - transform = Point.createScaleMatrix(scaleX, scaleY2, this.initialDimension.getOrigin()); - } else if (this.anchorInput.anchor === ModelAnchorInputPosition.RIGHT) { - transform = Point.createScaleMatrix(scaleX, 1, this.initialDimension.getOrigin()); - } else if (this.anchorInput.anchor === ModelAnchorInputPosition.BOT_RIGHT) { - transform = Point.createScaleMatrix(scaleX, scaleY, this.initialDimension.getOrigin()); - } else if (this.anchorInput.anchor === ModelAnchorInputPosition.BOT) { - transform = Point.createScaleMatrix(1, scaleY, this.initialDimension.getOrigin()); - } else if (this.anchorInput.anchor === ModelAnchorInputPosition.BOT_LEFT) { - transform = Point.createScaleMatrix(scaleX2, scaleY, this.initialDimension.getOrigin()); - } else if (this.anchorInput.anchor === ModelAnchorInputPosition.LEFT) { - transform = Point.createScaleMatrix(scaleX2, 1, this.initialDimension.getOrigin()); - } + // construct the correct transform matrix + let transform: Matrix = null; + if (this.anchorInput.anchor === ModelAnchorInputPosition.TOP_LEFT) { + transform = Point.createScaleMatrix(scaleX2, scaleY2, this.initialDimension.getOrigin()); + } else if (this.anchorInput.anchor === ModelAnchorInputPosition.TOP) { + transform = Point.createScaleMatrix(1, scaleY2, this.initialDimension.getOrigin()); + } else if (this.anchorInput.anchor === ModelAnchorInputPosition.TOP_RIGHT) { + transform = Point.createScaleMatrix(scaleX, scaleY2, this.initialDimension.getOrigin()); + } else if (this.anchorInput.anchor === ModelAnchorInputPosition.RIGHT) { + transform = Point.createScaleMatrix(scaleX, 1, this.initialDimension.getOrigin()); + } else if (this.anchorInput.anchor === ModelAnchorInputPosition.BOT_RIGHT) { + transform = Point.createScaleMatrix(scaleX, scaleY, this.initialDimension.getOrigin()); + } else if (this.anchorInput.anchor === ModelAnchorInputPosition.BOT) { + transform = Point.createScaleMatrix(1, scaleY, this.initialDimension.getOrigin()); + } else if (this.anchorInput.anchor === ModelAnchorInputPosition.BOT_LEFT) { + transform = Point.createScaleMatrix(scaleX2, scaleY, this.initialDimension.getOrigin()); + } else if (this.anchorInput.anchor === ModelAnchorInputPosition.LEFT) { + transform = Point.createScaleMatrix(scaleX2, 1, this.initialDimension.getOrigin()); + } - _.forEach(this.anchorInput.selectionModel.getModels(), (model, index) => { - let dimensions = this.initialDimensions[index].clone(); - dimensions.transform(transform); - model.setDimensions(dimensions); - }); + _.forEach(this.anchorInput.selectionModel.getModels(), (model, index) => { + let dimensions = this.initialDimensions[index].clone(); + dimensions.transform(transform); + model.setDimensions(dimensions); + }); - this.engine.repaint(); - } + this.engine.repaint(); + } } diff --git a/src/state-machine/states/RotateElementsState.ts b/src/state-machine/states/RotateElementsState.ts index 61007a4..10e2ee4 100644 --- a/src/state-machine/states/RotateElementsState.ts +++ b/src/state-machine/states/RotateElementsState.ts @@ -1,70 +1,70 @@ -import { AbstractState } from "../AbstractState"; -import { CanvasEngine } from "../../CanvasEngine"; -import { InlineAction } from "../../event-bus/InlineAction"; -import { StateMachine } from "../StateMachine"; -import { MouseDownInput } from "../input/MouseDownInput"; -import { MouseMoveEvent } from "../../event-bus/events/mouse"; -import { ModelRotateInput } from "../input/ModelRotateInput"; -import { Point } from "../../geometry/Point"; -import * as _ from "lodash"; -import { Rectangle } from "../../geometry/Rectangle"; +import { AbstractState } from '../AbstractState'; +import { CanvasEngine } from '../../CanvasEngine'; +import { InlineAction } from '../../event-bus/InlineAction'; +import { StateMachine } from '../StateMachine'; +import { MouseDownInput } from '../input/MouseDownInput'; +import { MouseMoveEvent } from '../../event-bus/events/mouse'; +import { ModelRotateInput } from '../input/ModelRotateInput'; +import { Point } from '../../geometry/Point'; +import * as _ from 'lodash'; +import { Rectangle } from '../../geometry/Rectangle'; export class RotateElementsState extends AbstractState { - initialMouse: MouseDownInput; - modelRotateInput: ModelRotateInput; - initialOrigin: Point; - initialDimensions: Rectangle[]; + initialMouse: MouseDownInput; + modelRotateInput: ModelRotateInput; + initialOrigin: Point; + initialDimensions: Rectangle[]; - constructor(engine: CanvasEngine) { - super("rotate-elements", engine); - this.requireInput(ModelRotateInput.NAME); - this.requireInput(MouseDownInput.NAME); - this.registerAction( - new InlineAction<MouseMoveEvent>(MouseMoveEvent.NAME, event => { - if (this.initialMouse) { - let degrees = - Math.atan2( - event.getCanvasCoordinates(this.engine).x - - this.initialMouse.originalEvent.getCanvasCoordinates(this.engine).x, - this.initialOrigin.y - event.getCanvasCoordinates(this.engine).y - ) * - (180 / Math.PI); + constructor(engine: CanvasEngine) { + super('rotate-elements', engine); + this.requireInput(ModelRotateInput.NAME); + this.requireInput(MouseDownInput.NAME); + this.registerAction( + new InlineAction<MouseMoveEvent>(MouseMoveEvent.NAME, event => { + if (this.initialMouse) { + let degrees = + Math.atan2( + event.getCanvasCoordinates(this.engine).x - + this.initialMouse.originalEvent.getCanvasCoordinates(this.engine).x, + this.initialOrigin.y - event.getCanvasCoordinates(this.engine).y + ) * + (180 / Math.PI); - if (degrees < 0) { - degrees = 360.0 + degrees; - } + if (degrees < 0) { + degrees = 360.0 + degrees; + } - let transform = Point.createRotateMatrix(degrees / (180 / Math.PI), this.initialOrigin); + let transform = Point.createRotateMatrix(degrees / (180 / Math.PI), this.initialOrigin); - _.forEach(this.modelRotateInput.selectionModel.getModels(), (model, index) => { - let dimensions = this.initialDimensions[index].clone(); - dimensions.transform(transform); - model.setDimensions(dimensions); - }); + _.forEach(this.modelRotateInput.selectionModel.getModels(), (model, index) => { + let dimensions = this.initialDimensions[index].clone(); + dimensions.transform(transform); + model.setDimensions(dimensions); + }); - this.engine.repaint(); - } - }) - ); - } + this.engine.repaint(); + } + }) + ); + } - activated(machine: StateMachine) { - super.activated(machine); + activated(machine: StateMachine) { + super.activated(machine); - this.initialMouse = machine.getInput(MouseDownInput.NAME) as MouseDownInput; - this.modelRotateInput = machine.getInput(ModelRotateInput.NAME) as ModelRotateInput; - this.initialOrigin = this.modelRotateInput.selectionModel - .getDimensions() - .getOrigin() - .clone(); - this.initialDimensions = _.map(this.modelRotateInput.selectionModel.getModels(), model => { - return model.getDimensions(); - }); - } + this.initialMouse = machine.getInput(MouseDownInput.NAME) as MouseDownInput; + this.modelRotateInput = machine.getInput(ModelRotateInput.NAME) as ModelRotateInput; + this.initialOrigin = this.modelRotateInput.selectionModel + .getDimensions() + .getOrigin() + .clone(); + this.initialDimensions = _.map(this.modelRotateInput.selectionModel.getModels(), model => { + return model.getDimensions(); + }); + } - deactivated(machine: StateMachine) { - super.deactivated(machine); - this.initialMouse = null; - this.modelRotateInput = null; - } + deactivated(machine: StateMachine) { + super.deactivated(machine); + this.initialMouse = null; + this.modelRotateInput = null; + } } diff --git a/src/state-machine/states/SelectElementsState.ts b/src/state-machine/states/SelectElementsState.ts index e6052f2..1fae8a0 100644 --- a/src/state-machine/states/SelectElementsState.ts +++ b/src/state-machine/states/SelectElementsState.ts @@ -1,12 +1,12 @@ -import { AbstractState } from "../AbstractState"; -import { CanvasEngine } from "../../CanvasEngine"; -import { KeyCode, KeyInput } from "../input/KeyInput"; -import { SelectElementAction } from "../../event-bus/actions/SelectElementAction"; +import { AbstractState } from '../AbstractState'; +import { CanvasEngine } from '../../CanvasEngine'; +import { KeyCode, KeyInput } from '../input/KeyInput'; +import { SelectElementAction } from '../../event-bus/actions/SelectElementAction'; export class SelectElementsState extends AbstractState { - constructor(engine: CanvasEngine) { - super("select-elements", engine); - this.requireInput(KeyInput.identifier(KeyCode.SHIFT)); - this.registerAction(new SelectElementAction(engine, true)); - } + constructor(engine: CanvasEngine) { + super('select-elements', engine); + this.requireInput(KeyInput.identifier(KeyCode.SHIFT)); + this.registerAction(new SelectElementAction(engine, true)); + } } diff --git a/src/state-machine/states/TranslateCanvasState.ts b/src/state-machine/states/TranslateCanvasState.ts index 38481c6..9a1d9a7 100644 --- a/src/state-machine/states/TranslateCanvasState.ts +++ b/src/state-machine/states/TranslateCanvasState.ts @@ -1,25 +1,25 @@ -import { StateMachine } from "../StateMachine"; -import { CanvasEngine } from "../../CanvasEngine"; -import { AbstractDisplacementState } from "../AbstractDisplacementState"; -import { SelectCanvasAction } from "../../event-bus/actions/SelectCanvasAction"; +import { StateMachine } from '../StateMachine'; +import { CanvasEngine } from '../../CanvasEngine'; +import { AbstractDisplacementState } from '../AbstractDisplacementState'; +import { SelectCanvasAction } from '../../event-bus/actions/SelectCanvasAction'; export class TranslateCanvasState extends AbstractDisplacementState { - initialOffsetX: number; - initialOffsetY: number; + initialOffsetX: number; + initialOffsetY: number; - constructor(engine: CanvasEngine) { - super("translate-canvas", engine); - this.registerAction(new SelectCanvasAction(engine)); - } + constructor(engine: CanvasEngine) { + super('translate-canvas', engine); + this.registerAction(new SelectCanvasAction(engine)); + } - activated(machine: StateMachine) { - super.activated(machine); - this.initialOffsetX = this.engine.getModel().getOffsetX(); - this.initialOffsetY = this.engine.getModel().getOffsetY(); - } + activated(machine: StateMachine) { + super.activated(machine); + this.initialOffsetX = this.engine.getModel().getOffsetX(); + this.initialOffsetY = this.engine.getModel().getOffsetY(); + } - processDisplacement(displacementX, displacementY) { - this.engine.getModel().setOffset(this.initialOffsetX + displacementX, this.initialOffsetY + displacementY); - this.engine.repaint(); - } + processDisplacement(displacementX, displacementY) { + this.engine.getModel().setOffset(this.initialOffsetX + displacementX, this.initialOffsetY + displacementY); + this.engine.repaint(); + } } diff --git a/src/state-machine/states/TranslateElementState.ts b/src/state-machine/states/TranslateElementState.ts index 60ef47b..c04c4c4 100644 --- a/src/state-machine/states/TranslateElementState.ts +++ b/src/state-machine/states/TranslateElementState.ts @@ -1,44 +1,43 @@ -import * as _ from "lodash"; -import { AbstractDisplacementState } from "../AbstractDisplacementState"; -import { StateMachine } from "../StateMachine"; -import { CanvasEngine } from "../../CanvasEngine"; -import { Rectangle } from "../../geometry/Rectangle"; -import { ModelElementInput } from "../input/ModelElementInput"; -import { CanvasElementModel } from "../../models-canvas/CanvasElementModel"; +import * as _ from 'lodash'; +import { AbstractDisplacementState } from '../AbstractDisplacementState'; +import { StateMachine } from '../StateMachine'; +import { CanvasEngine } from '../../CanvasEngine'; +import { Rectangle } from '../../geometry/Rectangle'; +import { ModelElementInput } from '../input/ModelElementInput'; +import { CanvasElementModel } from '../../models-canvas/CanvasElementModel'; export class TranslateElementState extends AbstractDisplacementState { - initialPosition: { [id: string]: Rectangle }; - initialEntities: { [id: string]: CanvasElementModel }; + initialPosition: { [id: string]: Rectangle }; + initialEntities: { [id: string]: CanvasElementModel }; - constructor(engine: CanvasEngine) { - super("translate-element", engine); - this.requireInput(ModelElementInput.NAME); - } + constructor(engine: CanvasEngine) { + super('translate-element', engine); + this.requireInput(ModelElementInput.NAME); + } - activated(machine: StateMachine) { - super.activated(machine); - this.initialPosition = {}; - this.initialEntities = {}; - let selected = this.engine.getModel().getSelectedEntities(); - _.forEach(selected, selected => { - this.initialEntities[selected.getID()] = selected; - this.initialPosition[selected.getID()] = selected.getDimensions().clone(); - }); - } + activated(machine: StateMachine) { + super.activated(machine); + this.initialPosition = {}; + this.initialEntities = {}; + let selected = this.engine.getModel().getSelectedEntities(); + _.forEach(selected, selected => { + this.initialEntities[selected.getID()] = selected; + this.initialPosition[selected.getID()] = selected.getDimensions().clone(); + }); + } - processDisplacement(displacementX, displacementY) { + processDisplacement(displacementX, displacementY) { + const zoom = this.engine.getModel().getZoomLevel(); - const zoom = this.engine.getModel().getZoomLevel(); + // work out the distance difference + const distanceX = displacementX / zoom; + const distanceY = displacementY / zoom; - // work out the distance difference - const distanceX = displacementX / zoom; - const distanceY = displacementY / zoom; - - _.forEach(this.initialPosition, (initialPosition, index) => { - const dim = initialPosition.clone(); - dim.translate(distanceX, distanceY); - this.initialEntities[index].setDimensions(dim); - }); - this.engine.repaint(); - } + _.forEach(this.initialPosition, (initialPosition, index) => { + const dim = initialPosition.clone(); + dim.translate(distanceX, distanceY); + this.initialEntities[index].setDimensions(dim); + }); + this.engine.repaint(); + } } diff --git a/src/tracking/DimensionTracker.ts b/src/tracking/DimensionTracker.ts index d5a2e32..d566307 100644 --- a/src/tracking/DimensionTracker.ts +++ b/src/tracking/DimensionTracker.ts @@ -1,38 +1,37 @@ -import { CanvasEngine } from "../CanvasEngine"; -import { Rectangle } from "../geometry/Rectangle"; -import { BaseEvent, BaseListener, BaseObject } from "@projectstorm/react-core"; +import { Rectangle } from '../geometry/Rectangle'; +import { BaseEvent, BaseListener, BaseObject } from '@projectstorm/react-core'; export interface DimensionTrackerListener extends BaseListener<DimensionTracker> { - updated(event: BaseEvent); + updated(event: BaseEvent); } export class DimensionTracker extends BaseObject<DimensionTrackerListener> { - realDimensions: Rectangle; - enableTracking: boolean; + realDimensions: Rectangle; + enableTracking: boolean; - constructor() { - super(); - this.enableTracking = true; - this.realDimensions = new Rectangle(); - } + constructor() { + super(); + this.enableTracking = true; + this.realDimensions = new Rectangle(); + } - recompute(canvasEngine: CanvasEngine, clientRect: ClientRect) { - this.realDimensions.updateDimensions(clientRect.left, clientRect.top, clientRect.width, clientRect.height); - } + recompute(clientRect: ClientRect) { + this.realDimensions.updateDimensions(clientRect.left, clientRect.top, clientRect.width, clientRect.height); + } - updateDimensions(canvasEngine: CanvasEngine, ClientRect: ClientRect) { - if (!this.enableTracking) { - return false; - } + updateDimensions(ClientRect: ClientRect) { + if (!this.enableTracking) { + return false; + } - // store the real dimensions - this.recompute(canvasEngine, ClientRect); + // store the real dimensions + this.recompute(ClientRect); - // fire the update event - this.iterateListeners("dimensions updated", (listener, event) => { - if (listener.updated) { - listener.updated(event); - } - }); - } + // fire the update event + this.iterateListeners('dimensions updated', (listener, event) => { + if (listener.updated) { + listener.updated(event); + } + }); + } } diff --git a/src/tracking/DimensionTrackerWidget.tsx b/src/tracking/DimensionTrackerWidget.tsx index be079da..b484320 100644 --- a/src/tracking/DimensionTrackerWidget.tsx +++ b/src/tracking/DimensionTrackerWidget.tsx @@ -1,51 +1,46 @@ -import * as React from "react"; -import { BaseWidget, BaseWidgetProps } from "@projectstorm/react-core"; -import { DimensionTracker } from "./DimensionTracker"; -import { CanvasEngine } from "../CanvasEngine"; +import * as React from 'react'; +import { BaseWidget, BaseWidgetProps } from '@projectstorm/react-core'; +import { DimensionTracker } from './DimensionTracker'; export interface DimensionTrackerWidgetProps extends BaseWidgetProps { - dimensionTracker: DimensionTracker; - engine: CanvasEngine; - reference: { current: HTMLElement }; + dimensionTracker: DimensionTracker; + reference: { current: HTMLElement }; } export interface DimensionTrackerWidgetState {} export class DimensionTrackerWidget extends BaseWidget<DimensionTrackerWidgetProps, DimensionTrackerWidgetState> { - observer: any; - - constructor(props: DimensionTrackerWidgetProps) { - super("src-dimension-tracker", props); - this.state = {}; - } - - updateDimensions() { - if (this.props.reference.current) { - this.props.dimensionTracker.updateDimensions( - this.props.engine, - this.props.reference.current.getBoundingClientRect() - ); - } - } - - componentDidMount() { - //if resize observer is present, rather use that - if (window["ResizeObserver"]) { - this.observer = new window["ResizeObserver"](entries => { - this.updateDimensions(); - }); - this.observer.observe(this.props.reference.current); - } - this.updateDimensions(); - } - - componentDidUpdate() { - if (!this.observer) { - this.updateDimensions(); - } - } - - render() { - return this.props.children; - } + observer: any; + + constructor(props: DimensionTrackerWidgetProps) { + super('src-dimension-tracker', props); + this.state = {}; + } + + updateDimensions() { + if (this.props.reference.current) { + this.props.dimensionTracker.updateDimensions(this.props.reference.current.getBoundingClientRect()); + } + } + + componentDidMount() { + //if resize observer is present, rather use that + if (window['ResizeObserver']) { + this.observer = new window['ResizeObserver'](entries => { + this.updateDimensions(); + }); + this.observer.observe(this.props.reference.current); + } + this.updateDimensions(); + } + + componentDidUpdate() { + if (!this.observer) { + this.updateDimensions(); + } + } + + render() { + return this.props.children; + } } diff --git a/src/tracking/VirtualDimensionTracker.ts b/src/tracking/VirtualDimensionTracker.ts index 52fce69..647c115 100644 --- a/src/tracking/VirtualDimensionTracker.ts +++ b/src/tracking/VirtualDimensionTracker.ts @@ -1,27 +1,27 @@ -import { DimensionTracker } from "./DimensionTracker"; -import { CanvasEngine } from "../CanvasEngine"; -import { Rectangle } from "../geometry/Rectangle"; +import { DimensionTracker } from './DimensionTracker'; +import { CanvasEngine } from '../CanvasEngine'; +import { Rectangle } from '../geometry/Rectangle'; export class VirtualDimensionTracker extends DimensionTracker { - virtualDimensions: Rectangle; + virtualDimensions: Rectangle; - constructor() { - super(); - this.virtualDimensions = new Rectangle(); - } + constructor() { + super(); + this.virtualDimensions = new Rectangle(); + } - recompute(engine: CanvasEngine, clientRect: ClientRect) { - super.recompute(engine, clientRect); + recompute(engine: CanvasEngine, clientRect: ClientRect) { + super.recompute(engine, clientRect); - let model = engine.getModel(); - let canDimensions = engine.getCanvasWidget().dimension.realDimensions; - // store the virtual dimensions - let zoomLevel = model.getZoomLevel(); - this.virtualDimensions.updateDimensions( - (clientRect.left - canDimensions.getTopLeft().x - model.getOffsetX()) / zoomLevel, - (clientRect.top - canDimensions.getTopLeft().y - model.getOffsetY()) / zoomLevel, - clientRect.width / zoomLevel, - clientRect.height / zoomLevel - ); - } + let model = engine.getModel(); + let canDimensions = engine.getCanvasWidget().dimension.realDimensions; + // store the virtual dimensions + let zoomLevel = model.getZoomLevel(); + this.virtualDimensions.updateDimensions( + (clientRect.left - canDimensions.getTopLeft().x - model.getOffsetX()) / zoomLevel, + (clientRect.top - canDimensions.getTopLeft().y - model.getOffsetY()) / zoomLevel, + clientRect.width / zoomLevel, + clientRect.height / zoomLevel + ); + } } diff --git a/src/widgets/AnchorWidget.tsx b/src/widgets/AnchorWidget.tsx deleted file mode 100644 index 87cf2f7..0000000 --- a/src/widgets/AnchorWidget.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import { BaseWidget, BaseWidgetProps, MouseWidget } from "@projectstorm/react-core"; -import * as React from "react"; -import { CanvasEngine } from "../CanvasEngine"; -import { SelectionElementModel } from "../primitives/selection/SelectionElementModel"; -import { ModelAnchorInput, ModelAnchorInputPosition } from "../state-machine/input/ModelAnchorInput"; - -export interface AnchorWidgetProps extends BaseWidgetProps { - engine: CanvasEngine; - selectionModel: SelectionElementModel; - pos: ModelAnchorInputPosition; -} - -export class AnchorWidget extends BaseWidget<AnchorWidgetProps> { - constructor(props) { - super("src-anchor", props); - } - - componentWillUnmount() { - this.props.engine.getStateMachine().removeInput(ModelAnchorInput.NAME); - } - - render() { - return ( - <MouseWidget - element={"div"} - mouseDownEvent={() => { - this.props.engine - .getStateMachine() - .addInput(new ModelAnchorInput(this.props.selectionModel, this.props.pos)); - }} - mouseUpEvent={() => { - this.props.engine.getStateMachine().removeInput(ModelAnchorInput.NAME); - }} - extraProps={{ ...this.getProps() }} - /> - ); - } -} diff --git a/src/widgets/CanvasLayerWidget.tsx b/src/widgets/CanvasLayerWidget.tsx deleted file mode 100644 index 2bbadd3..0000000 --- a/src/widgets/CanvasLayerWidget.tsx +++ /dev/null @@ -1,58 +0,0 @@ -import * as React from "react"; -import { CanvasEngine } from "../CanvasEngine"; -import { CanvasLayerModel } from "../models-canvas/CanvasLayerModel"; -import * as _ from "lodash"; -import { BaseWidget, BaseWidgetProps } from "@projectstorm/react-core"; - -export interface CanvasLayerWidgetProps extends BaseWidgetProps { - engine: CanvasEngine; - layer: CanvasLayerModel; -} - -export interface CanvasLayerWidgetState {} - -export class CanvasLayerWidget extends BaseWidget<CanvasLayerWidgetProps, CanvasLayerWidgetState> { - constructor(props: CanvasLayerWidgetProps) { - super("src-canvas-layer", props); - this.state = {}; - } - - getProps() { - let canvas = this.props.engine.getModel(); - let props = super.getProps(); - - // do we apply - if (this.props.layer.isTransformable()) { - props["style"] = { - ...props["style"], - transform: - "translate(" + - canvas.getOffsetX() + - "px," + - canvas.getOffsetY() + - "px) scale(" + - canvas.getZoomLevel() + - ")" - }; - } - - return props; - } - - getChildren() { - return _.map(this.props.layer.getAllEntities(), element => { - return React.cloneElement( - this.props.engine.getFactoryForElement(element).generateWidget(this.props.engine, element), - { key: element.getID() } - ); - }); - } - - render() { - // it might be an SVG layer - if (this.props.layer.isSVG()) { - return <svg {...this.getProps()}>{this.getChildren()}</svg>; - } - return <div {...this.getProps()}>{this.getChildren()}</div>; - } -} diff --git a/src/widgets/CanvasWidget.tsx b/src/widgets/CanvasWidget.tsx deleted file mode 100644 index af32f22..0000000 --- a/src/widgets/CanvasWidget.tsx +++ /dev/null @@ -1,157 +0,0 @@ -import * as React from "react"; -import { BaseWidget, BaseWidgetProps } from "@projectstorm/react-core"; -import { CanvasEngine } from "../CanvasEngine"; -import * as _ from "lodash"; -import { DimensionTrackerWidget } from "../tracking/DimensionTrackerWidget"; -import { DimensionTracker } from "../tracking/DimensionTracker"; -import { Rectangle } from "../geometry/Rectangle"; -import { KeyDownEvent, KeyUpEvent } from "../event-bus/events/key"; -import { MouseDownEvent, MouseMoveEvent, MouseUpEvent, MouseWheelEvent } from "../event-bus/events/mouse"; - -export interface CanvasWidgetProps extends BaseWidgetProps { - engine: CanvasEngine; - inverseZoom?: boolean; -} - -export interface CanvasWidgetState {} - -export class CanvasWidget extends BaseWidget<CanvasWidgetProps, CanvasWidgetState> { - dimension: DimensionTracker; - ref: { current: HTMLElement }; - - // handles - onKeyDownHandle: (event: any) => any; - onKeyUpHandle: (event: any) => any; - onMouseMoveHandle: (event: any) => any; - onMouseDownHandle: (event: any) => any; - onMouseUpHandle: (event: any) => any; - onMouseWheelHandle: (event: WheelEvent) => any; - - constructor(props: CanvasWidgetProps) { - super("src-canvas", props); - this.state = {}; - this.dimension = new DimensionTracker(); - - this.ref = (React as any).createRef(); - - this.onKeyDownHandle = (event: any) => { - this.props.engine.getEventBus().fireEvent(new KeyDownEvent(this, event.key)); - }; - - this.onKeyUpHandle = (event: any) => { - this.props.engine.getEventBus().fireEvent(new KeyUpEvent(this, event.key)); - }; - - this.onMouseMoveHandle = (event: MouseEvent) => { - this.props.engine.getEventBus().fireEvent(new MouseMoveEvent(this, event.clientX, event.clientY)); - }; - - this.onMouseDownHandle = (event: MouseEvent) => { - this.props.engine.getEventBus().fireEvent(new MouseDownEvent(this, event.clientX, event.clientY)); - }; - - this.onMouseUpHandle = (event: MouseEvent) => { - this.props.engine.getEventBus().fireEvent(new MouseUpEvent(this, event.clientX, event.clientY)); - }; - - this.onMouseWheelHandle = event => { - this.props.engine - .getEventBus() - .fireEvent( - new MouseWheelEvent(this, event.clientX, event.clientY, CanvasWidget.normalizeScrollWheel(event)) - ); - event.stopPropagation(); - event.preventDefault(); - }; - } - - static normalizeScrollWheel(event: WheelEvent) { - let scrollDelta = event.deltaY; - // check if it is pinch gesture - if (event.ctrlKey && scrollDelta % 1 !== 0) { - /* - Chrome and Firefox sends wheel event with deltaY that - have fractional part, also `ctrlKey` prop of the event is true - though ctrl isn't pressed - */ - return (scrollDelta /= 3); - } - return (scrollDelta /= 60); - } - - componentWillMount() { - this.props.engine.setCanvasWidget(this); - } - - componentDidMount() { - document.addEventListener("mousemove", this.onMouseMoveHandle); - document.addEventListener("keydown", this.onKeyDownHandle); - document.addEventListener("keyup", this.onKeyUpHandle); - } - - componentWillUnmount() { - document.removeEventListener("mousemove", this.onMouseMoveHandle); - document.removeEventListener("keyup", this.onKeyUpHandle); - document.removeEventListener("keydown", this.onKeyDownHandle); - this.props.engine.setCanvasWidget(null); - } - - getViewPort(): Rectangle { - let model = this.props.engine.getModel(); - return new Rectangle( - -model.getOffsetX() / model.getZoomLevel(), - -model.getOffsetY() / model.getZoomLevel(), - this.dimension.realDimensions.getWidth() / model.getZoomLevel(), - this.dimension.realDimensions.getHeight() / model.getZoomLevel() - ); - } - - zoomToFit(margin: number = 0) { - let model = this.props.engine.getModel(); - let bounds = Rectangle.boundingBoxFromPolygons( - _.filter( - _.map(model.getElements(), element => { - return element.getDimensions(); - }), - el => { - return !!el; - } - ) - ); - - let zoomFactor = Math.min( - (this.dimension.realDimensions.getWidth() - margin - margin) / bounds.getWidth(), - (this.dimension.realDimensions.getHeight() - margin - margin) / bounds.getHeight() - ); - - model.setZoomLevel(zoomFactor); - model.setOffset( - margin + -1 * bounds.getTopLeft().x * model.getZoomLevel(), - margin + -1 * bounds.getTopLeft().y * model.getZoomLevel() - ); - this.forceUpdate(); - } - - render() { - return ( - <DimensionTrackerWidget reference={this.ref} engine={this.props.engine} dimensionTracker={this.dimension}> - <div - {...this.getProps()} - ref={this.ref} - onWheel={this.onMouseWheelHandle} - onMouseDown={this.onMouseDownHandle} - onMouseUp={this.onMouseUpHandle} - > - {_.map(this.props.engine.getModel().layers.getArray(), layer => { - return React.cloneElement( - this.props.engine.getFactoryForElement(layer).generateWidget(this.props.engine, layer), - { - key: layer.getID() - } - ); - })} - </div> - </DimensionTrackerWidget> - ); - } -} diff --git a/yarn.lock b/yarn.lock index cd3bd32..b575686 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,18 +2,32 @@ # yarn lockfile v1 -"@babel/code-frame@7.0.0-beta.46": - version "7.0.0-beta.46" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.46.tgz#e0d002100805daab1461c0fcb32a07e304f3a4f4" - dependencies: - "@babel/highlight" "7.0.0-beta.46" - -"@babel/code-frame@^7.0.0": +"@babel/code-frame@7.0.0", "@babel/code-frame@^7.0.0": 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.2.2": + version "7.2.2" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.2.2.tgz#07adba6dde27bb5ad8d8672f15fde3e08184a687" + integrity sha512-59vB0RWt09cAct5EIe58+NzGP4TFSD3Bz//2/ELy3ZeTeKF6VTD1AXlH8BGGbCX0PuobZBsIzO7IAI9PH67eKw== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/generator" "^7.2.2" + "@babel/helpers" "^7.2.0" + "@babel/parser" "^7.2.2" + "@babel/template" "^7.2.2" + "@babel/traverse" "^7.2.2" + "@babel/types" "^7.2.2" + convert-source-map "^1.1.0" + debug "^4.1.0" + json5 "^2.1.0" + lodash "^4.17.10" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + "@babel/core@^7": version "7.0.1" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.0.1.tgz#406658caed0e9686fa4feb5c2f3cefb6161c0f41" @@ -33,6 +47,26 @@ semver "^5.4.1" source-map "^0.5.0" +"@babel/core@^7.1.6": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.4.0.tgz#248fd6874b7d755010bfe61f557461d4f446d9e9" + integrity sha512-Dzl7U0/T69DFOTwqz/FJdnOSWS57NpjNfCwMKHABr589Lg8uX1RrlBIJ7L5Dubt/xkLsx0xH5EBFzlBVes1ayA== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/generator" "^7.4.0" + "@babel/helpers" "^7.4.0" + "@babel/parser" "^7.4.0" + "@babel/template" "^7.4.0" + "@babel/traverse" "^7.4.0" + "@babel/types" "^7.4.0" + convert-source-map "^1.1.0" + debug "^4.1.0" + json5 "^2.1.0" + lodash "^4.17.11" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + "@babel/generator@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0.tgz#1efd58bffa951dc846449e58ce3a1d7f02d393aa" @@ -43,17 +77,29 @@ source-map "^0.5.0" trim-right "^1.0.1" +"@babel/generator@^7.2.2", "@babel/generator@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.4.0.tgz#c230e79589ae7a729fd4631b9ded4dc220418196" + integrity sha512-/v5I+a1jhGSKLgZDcmAUZ4K/VePi43eRkUs3yePW1HB1iANOD5tqJXwGSG4BZhSksP8J9ejSlwGeTiiOFZOrXQ== + dependencies: + "@babel/types" "^7.4.0" + jsesc "^2.5.1" + lodash "^4.17.11" + 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.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.0.0.tgz#ba26336beb2abb547d58b6eba5b84d77975a39eb" +"@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" + integrity sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w== dependencies: - "@babel/helper-explode-assignable-expression" "^7.0.0" + "@babel/helper-explode-assignable-expression" "^7.1.0" "@babel/types" "^7.0.0" "@babel/helper-builder-react-jsx@^7.0.0": @@ -63,27 +109,42 @@ "@babel/types" "^7.0.0" esutils "^2.0.0" -"@babel/helper-call-delegate@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.0.0.tgz#e036956bb33d76e59c07a04a1fff144e9f62ab78" +"@babel/helper-call-delegate@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.4.0.tgz#f308eabe0d44f451217853aedf4dea5f6fe3294f" + integrity sha512-SdqDfbVdNQCBp3WhK2mNdDvHd3BD6qbmIc43CAyjnsfCmgHMeqgDcM3BzY2lchi7HBJGJ2CVdynLWbezaE4mmQ== dependencies: - "@babel/helper-hoist-variables" "^7.0.0" - "@babel/traverse" "^7.0.0" - "@babel/types" "^7.0.0" + "@babel/helper-hoist-variables" "^7.4.0" + "@babel/traverse" "^7.4.0" + "@babel/types" "^7.4.0" -"@babel/helper-define-map@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.0.0.tgz#a5684dd2adf30f0137cf9b0bde436f8c2db17225" +"@babel/helper-create-class-features-plugin@^7.3.0", "@babel/helper-create-class-features-plugin@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.4.0.tgz#30fd090e059d021995c1762a5b76798fa0b51d82" + integrity sha512-2K8NohdOT7P6Vyp23QH4w2IleP8yG3UJsbRKwA4YP6H8fErcLkFuuEEqbF2/BYBKSNci/FWJiqm6R3VhM/QHgw== dependencies: - "@babel/helper-function-name" "^7.0.0" - "@babel/types" "^7.0.0" - lodash "^4.17.10" + "@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.4.0" + "@babel/helper-split-export-declaration" "^7.4.0" -"@babel/helper-explode-assignable-expression@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.0.0.tgz#fdfa4c88603ae3e954d0fc3244d5ca82fb468497" +"@babel/helper-define-map@^7.1.0", "@babel/helper-define-map@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.4.0.tgz#cbfd8c1b2f12708e262c26f600cd16ed6a3bc6c9" + integrity sha512-wAhQ9HdnLIywERVcSvX40CEJwKdAa1ID4neI9NXQPDOHwwA+57DqwLiPEVy2AIyWzAk0CQ8qx4awO0VUURwLtA== dependencies: - "@babel/traverse" "^7.0.0" + "@babel/helper-function-name" "^7.1.0" + "@babel/types" "^7.4.0" + lodash "^4.17.11" + +"@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" + integrity sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA== + dependencies: + "@babel/traverse" "^7.1.0" "@babel/types" "^7.0.0" "@babel/helper-function-name@^7.0.0": @@ -94,17 +155,27 @@ "@babel/template" "^7.0.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" + integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw== + 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" +"@babel/helper-hoist-variables@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.0.tgz#25b621399ae229869329730a62015bbeb0a6fbd6" + integrity sha512-/NErCuoe/et17IlAQFKWM24qtyYYie7sFIrW/tIQXpck6vAu2hhtYYsKLBWQV+BQZMbcIYPU/QMYuTufrY4aQw== dependencies: - "@babel/types" "^7.0.0" + "@babel/types" "^7.4.0" "@babel/helper-member-expression-to-functions@^7.0.0": version "7.0.0" @@ -112,28 +183,22 @@ dependencies: "@babel/types" "^7.0.0" -"@babel/helper-module-imports@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0-beta.51.tgz#ce00428045fbb7d5ebc0ea7bf835789f15366ab2" - dependencies: - "@babel/types" "7.0.0-beta.51" - lodash "^4.17.5" - "@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.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.0.0.tgz#b01ee7d543e81e8c3fc404b19c9f26acb6e4cf4c" +"@babel/helper-module-transforms@^7.1.0": + version "7.2.2" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.2.2.tgz#ab2f8e8d231409f8370c883d20c335190284b963" + integrity sha512-YRD7I6Wsv+IHuTPkAmAS4HhY0dkPobgLftHp0cRGZSdrRvmZY8rFvae/GVu3bD00qscuvK3WPHB3YdNpBXUqrA== dependencies: "@babel/helper-module-imports" "^7.0.0" - "@babel/helper-simple-access" "^7.0.0" + "@babel/helper-simple-access" "^7.1.0" "@babel/helper-split-export-declaration" "^7.0.0" - "@babel/template" "^7.0.0" - "@babel/types" "^7.0.0" + "@babel/template" "^7.2.2" + "@babel/types" "^7.2.2" lodash "^4.17.10" "@babel/helper-optimise-call-expression@^7.0.0": @@ -152,30 +217,33 @@ dependencies: lodash "^4.17.10" -"@babel/helper-remap-async-to-generator@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.0.0.tgz#6512273c2feb91587822335cf913fdf680c26901" +"@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" + integrity sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg== dependencies: "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-wrap-function" "^7.0.0" - "@babel/template" "^7.0.0" - "@babel/traverse" "^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.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.0.0.tgz#b6f21237280e0be54f591f63a464b66627ced707" +"@babel/helper-replace-supers@^7.1.0", "@babel/helper-replace-supers@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.4.0.tgz#4f56adb6aedcd449d2da9399c2dcf0545463b64c" + integrity sha512-PVwCVnWWAgnal+kJ+ZSAphzyl58XrFeSKSAJRiqg5QToTsjL+Xu1f9+RJ+d+Q0aPhPfBGaYfkox66k86thxNSg== dependencies: "@babel/helper-member-expression-to-functions" "^7.0.0" "@babel/helper-optimise-call-expression" "^7.0.0" - "@babel/traverse" "^7.0.0" - "@babel/types" "^7.0.0" + "@babel/traverse" "^7.4.0" + "@babel/types" "^7.4.0" -"@babel/helper-simple-access@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.0.0.tgz#ff36a27983ae4c27122da2f7f294dced80ecbd08" +"@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" + integrity sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w== dependencies: - "@babel/template" "^7.0.0" + "@babel/template" "^7.1.0" "@babel/types" "^7.0.0" "@babel/helper-split-export-declaration@^7.0.0": @@ -184,14 +252,22 @@ dependencies: "@babel/types" "^7.0.0" -"@babel/helper-wrap-function@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.0.0.tgz#1c8e42a2cfb0808e3140189dfe9490782a6fa740" +"@babel/helper-split-export-declaration@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.0.tgz#571bfd52701f492920d63b7f735030e9a3e10b55" + integrity sha512-7Cuc6JZiYShaZnybDmfwhY4UYHzI6rlqhWjaIqbsJGsIqPimEYy5uh3akSRLMg65LSdSEnJ8a8/bWQN6u2oMGw== dependencies: - "@babel/helper-function-name" "^7.0.0" - "@babel/template" "^7.0.0" - "@babel/traverse" "^7.0.0" - "@babel/types" "^7.0.0" + "@babel/types" "^7.4.0" + +"@babel/helper-wrap-function@^7.1.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz#c4e0012445769e2815b55296ead43a958549f6fa" + integrity sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ== + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/template" "^7.1.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.2.0" "@babel/helpers@^7.0.0": version "7.0.0" @@ -201,13 +277,14 @@ "@babel/traverse" "^7.0.0" "@babel/types" "^7.0.0" -"@babel/highlight@7.0.0-beta.46": - version "7.0.0-beta.46" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.46.tgz#c553c51e65f572bdedd6eff66fc0bb563016645e" +"@babel/helpers@^7.2.0", "@babel/helpers@^7.4.0": + version "7.4.2" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.4.2.tgz#3bdfa46a552ca77ef5a0f8551be5f0845ae989be" + integrity sha512-gQR1eQeroDzFBikhrCccm5Gs2xBjZ57DNjGbqTaHo911IpmSxflOQWMAHPw/TXk8L3isv7s9lYzUkexOeTQUYg== dependencies: - chalk "^2.0.0" - esutils "^2.0.2" - js-tokens "^3.0.0" + "@babel/template" "^7.4.0" + "@babel/traverse" "^7.4.0" + "@babel/types" "^7.4.0" "@babel/highlight@^7.0.0": version "7.0.0" @@ -217,71 +294,108 @@ esutils "^2.0.2" js-tokens "^4.0.0" -"@babel/parser@7.0.0-beta.53": - version "7.0.0-beta.53" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.0.0-beta.53.tgz#1f45eb617bf9463d482b2c04d349d9e4edbf4892" - "@babel/parser@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.0.0.tgz#697655183394facffb063437ddf52c0277698775" -"@babel/plugin-proposal-async-generator-functions@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.0.0.tgz#5d1eb6b44fd388b97f964350007ab9da090b1d70" +"@babel/parser@^7.1.3", "@babel/parser@^7.2.2", "@babel/parser@^7.4.0": + version "7.4.2" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.4.2.tgz#b4521a400cb5a871eab3890787b4bc1326d38d91" + integrity sha512-9fJTDipQFvlfSVdD/JBtkiY0br9BtfvW2R8wo6CX/Ej2eMuV0gWPk1M67Mt3eggQvBqYW1FCEk8BN7WvGm/g5g== + +"@babel/plugin-proposal-async-generator-functions@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz#b289b306669dce4ad20b0252889a15768c9d417e" + integrity sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-remap-async-to-generator" "^7.0.0" - "@babel/plugin-syntax-async-generators" "^7.0.0" + "@babel/helper-remap-async-to-generator" "^7.1.0" + "@babel/plugin-syntax-async-generators" "^7.2.0" -"@babel/plugin-proposal-class-properties@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.0.0.tgz#a16b5c076ba6c3d87df64d2480a380e979543731" +"@babel/plugin-proposal-class-properties@7.3.0": + version "7.3.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.3.0.tgz#272636bc0fa19a0bc46e601ec78136a173ea36cd" + integrity sha512-wNHxLkEKTQ2ay0tnsam2z7fGZUi+05ziDJflEt3AZTP3oXLKHJp9HqhfroB/vdMvt3sda9fAbq7FsG8QPDrZBg== dependencies: - "@babel/helper-function-name" "^7.0.0" - "@babel/helper-member-expression-to-functions" "^7.0.0" - "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/helper-create-class-features-plugin" "^7.3.0" "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.0.0" - "@babel/plugin-syntax-class-properties" "^7.0.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" +"@babel/plugin-proposal-class-properties@^7.3.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.4.0.tgz#d70db61a2f1fd79de927eea91f6411c964e084b8" + integrity sha512-t2ECPNOXsIeK1JxJNKmgbzQtoG27KIlVE61vTqX0DKR9E9sZlVVxWUtEW9D5FlZ8b8j7SBNCHY47GgPKCKlpPg== dependencies: + "@babel/helper-create-class-features-plugin" "^7.4.0" "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-json-strings" "^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" +"@babel/plugin-proposal-decorators@7.3.0": + version "7.3.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.3.0.tgz#637ba075fa780b1f75d08186e8fb4357d03a72a7" + integrity sha512-3W/oCUmsO43FmZIqermmq6TKaRSYhmh/vybPfVFwQWdSb8xwki38uAIvknCRzuyHRuYfCYmJzL9or1v0AffPjg== dependencies: + "@babel/helper-create-class-features-plugin" "^7.3.0" "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-object-rest-spread" "^7.0.0" + "@babel/plugin-syntax-decorators" "^7.2.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" +"@babel/plugin-proposal-json-strings@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz#568ecc446c6148ae6b267f02551130891e29f317" + integrity sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.0.0" + "@babel/plugin-syntax-json-strings" "^7.2.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" +"@babel/plugin-proposal-object-rest-spread@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.3.2.tgz#6d1859882d4d778578e41f82cc5d7bf3d5daf6c1" + integrity sha512-DjeMS+J2+lpANkYLLO+m6GjoTMygYglKmRe6cDTbFv3L9i6mmiE8fe6B8MtCSLZpVXscD5kn7s6SgtHrDoBWoA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-object-rest-spread" "^7.2.0" + +"@babel/plugin-proposal-object-rest-spread@^7.3.1", "@babel/plugin-proposal-object-rest-spread@^7.3.2", "@babel/plugin-proposal-object-rest-spread@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.4.0.tgz#e4960575205eadf2a1ab4e0c79f9504d5b82a97f" + integrity sha512-uTNi8pPYyUH2eWHyYWWSYJKwKg34hhgl4/dbejEjL+64OhbHjTX7wEVWMQl82tEmdDsGeu77+s8HHLS627h6OQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-object-rest-spread" "^7.2.0" + +"@babel/plugin-proposal-optional-catch-binding@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz#135d81edb68a081e55e56ec48541ece8065c38f5" + integrity sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" + +"@babel/plugin-proposal-unicode-property-regex@^7.2.0", "@babel/plugin-proposal-unicode-property-regex@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.0.tgz#202d91ee977d760ef83f4f416b280d568be84623" + integrity sha512-h/KjEZ3nK9wv1P1FSNb9G079jXrNYR0Ko+7XkOx85+gM24iZbPn0rh4vCftk+5QKY7y1uByFataBTmX7irEF1w== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-regex" "^7.0.0" - regexpu-core "^4.2.0" + regexpu-core "^4.5.4" -"@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" +"@babel/plugin-syntax-async-generators@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz#69e1f0db34c6f5a0cf7e2b3323bf159a76c8cb7f" + integrity sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg== 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" +"@babel/plugin-syntax-decorators@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.2.0.tgz#c50b1b957dcc69e4b1127b65e1c33eef61570c1b" + integrity sha512-38QdqVoXdHUQfTpZo3rQwqQdWtCn5tMv4uV6r2RMfTqNBuv4ZBhz79SfaQWKTVmxHjeFv/DnXVC/+agHCklYWA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-dynamic-import@7.2.0", "@babel/plugin-syntax-dynamic-import@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz#69c159ffaf4998122161ad8ebc5e6d1f55df8612" + integrity sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w== dependencies: "@babel/helper-plugin-utils" "^7.0.0" @@ -291,9 +405,17 @@ 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" +"@babel/plugin-syntax-flow@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.2.0.tgz#a765f061f803bc48f240c26f8747faf97c26bf7c" + integrity sha512-r6YMuZDWLtLlu0kqIim5o/3TNRAlWb073HwT3e2nKf9I8IIvOggPrnILYPsrrKilmn/mYEMCf/Z07w3yQJF6dg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-json-strings@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz#72bd13f6ffe1d25938129d2a186b11fd62951470" + integrity sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" @@ -303,91 +425,139 @@ 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" +"@babel/plugin-syntax-object-rest-spread@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e" + integrity sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA== 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" +"@babel/plugin-syntax-optional-catch-binding@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz#a94013d6eda8908dfe6a477e7f9eda85656ecf5c" + integrity sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w== 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" +"@babel/plugin-syntax-typescript@^7.2.0": + version "7.3.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.3.3.tgz#a7cc3f66119a9f7ebe2de5383cce193473d65991" + integrity sha512-dGwbSMA1YhVS8+31CnPR7LB4pcbrzcV99wQzby4uAfrkZPYZlQ7ImwdpzLqi6Z6IL02b8IAL379CaMwo0x5Lag== dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-async-to-generator@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.0.0.tgz#feaf18f4bfeaf2236eea4b2d4879da83006cc8f5" +"@babel/plugin-transform-arrow-functions@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz#9aeafbe4d6ffc6563bf8f8372091628f00779550" + integrity sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-async-to-generator@^7.2.0", "@babel/plugin-transform-async-to-generator@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.4.0.tgz#234fe3e458dce95865c0d152d256119b237834b0" + integrity sha512-EeaFdCeUULM+GPFEsf7pFcNSxM7hYjoj5fiYbyuiXobW4JhFnjAv9OWzNwHyHcKoPNpAfeRDuW6VyaXEDUBa7g== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-remap-async-to-generator" "^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" +"@babel/plugin-transform-block-scoped-functions@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz#5d3cc11e8d5ddd752aa64c9148d0db6cb79fd190" + integrity sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w== 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" +"@babel/plugin-transform-block-scoping@^7.2.0", "@babel/plugin-transform-block-scoping@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.4.0.tgz#164df3bb41e3deb954c4ca32ffa9fcaa56d30bcb" + integrity sha512-AWyt3k+fBXQqt2qb9r97tn3iBwFpiv9xdAiG+Gr2HpAZpuayvbL55yWrsV3MyHvXk/4vmSiedhDRl1YI2Iy5nQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - lodash "^4.17.10" + lodash "^4.17.11" -"@babel/plugin-transform-classes@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.0.0.tgz#9e65ca401747dde99e344baea90ab50dccb4c468" +"@babel/plugin-transform-classes@7.2.2": + version "7.2.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.2.2.tgz#6c90542f210ee975aa2aa8c8b5af7fa73a126953" + integrity sha512-gEZvgTy1VtcDOaQty1l10T3jQmJKlNVxLDCs+3rCVPr6nMkODLELxViq5X9l+rfxbie3XrfrMCYYY6eX3aOcOQ== dependencies: "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-define-map" "^7.0.0" - "@babel/helper-function-name" "^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.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" +"@babel/plugin-transform-classes@^7.2.0", "@babel/plugin-transform-classes@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.4.0.tgz#e3428d3c8a3d01f33b10c529b998ba1707043d4d" + integrity sha512-XGg1Mhbw4LDmrO9rSTNe+uI79tQPdGs0YASlxgweYRLZqo/EQktjaOV4tchL/UZbM0F+/94uOipmdNGoaGOEYg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-define-map" "^7.4.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.4.0" + "@babel/helper-split-export-declaration" "^7.4.0" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz#83a7df6a658865b1c8f641d510c6f3af220216da" + integrity sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA== 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" +"@babel/plugin-transform-destructuring@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.3.2.tgz#f2f5520be055ba1c38c41c0e094d8a461dd78f2d" + integrity sha512-Lrj/u53Ufqxl/sGxyjsJ2XNtNuEjDyjpqdhMNh5aZ+XFOdThL46KBj27Uem4ggoezSYBxKWAil6Hu8HtwqesYw== 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" +"@babel/plugin-transform-destructuring@^7.2.0", "@babel/plugin-transform-destructuring@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.4.0.tgz#acbb9b2418d290107db333f4d6cd8aa6aea00343" + integrity sha512-HySkoatyYTY3ZwLI8GGvkRWCFrjAGXUHur5sMecmCIdIharnlcWWivOqDJI76vvmVZfzwb6G08NREsrY96RhGQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-dotall-regex@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.2.0.tgz#f0aabb93d120a8ac61e925ea0ba440812dbe0e49" + integrity sha512-sKxnyHfizweTgKZf7XsXu/CNupKhzijptfTM+bozonIuyVrLWVUvYjE2bhuSBML8VQeMxq4Mm63Q9qvcvUcciQ== 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" +"@babel/plugin-transform-duplicate-keys@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.2.0.tgz#d952c4930f312a4dbfff18f0b2914e60c35530b3" + integrity sha512-q+yuxW4DsTjNceUiTzK0L+AfQ0zD9rWaTLiUqHA8p0gxx7lu1EylenfzjeIWNkPy6e/0VG/Wjw9uf9LueQwLOw== dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-exponentiation-operator@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.0.0.tgz#c51b45e090a01876f64d32b5b46c0799c85ea56c" +"@babel/plugin-transform-exponentiation-operator@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz#a63868289e5b4007f7054d46491af51435766008" + integrity sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.0.0" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" +"@babel/plugin-transform-flow-strip-types@7.2.3": + version "7.2.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.2.3.tgz#e3ac2a594948454e7431c7db33e1d02d51b5cd69" + integrity sha512-xnt7UIk9GYZRitqCnsVMjQK1O2eKZwFB3CvvHjf5SGx6K6vr/MScCKQDnf1DxRaj501e3pXjti+inbSXX2ZUoQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-flow" "^7.2.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" @@ -395,75 +565,113 @@ "@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" +"@babel/plugin-transform-for-of@^7.2.0", "@babel/plugin-transform-for-of@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.0.tgz#56c8c36677f5d4a16b80b12f7b768de064aaeb5f" + integrity sha512-vWdfCEYLlYSxbsKj5lGtzA49K3KANtb8qCPQ1em07txJzsBwY+cKJzBHizj5fl3CCx7vt+WPdgDLTHmydkbQSQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-function-name@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.0.0.tgz#eeda18dc22584e13c3581a68f6be4822bb1d1d81" +"@babel/plugin-transform-function-name@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.2.0.tgz#f7930362829ff99a3174c39f0afcc024ef59731a" + integrity sha512-kWgksow9lHdvBC2Z4mxTsvc7YdY7w/V6B2vy9cTIPtLEE9NhwoWivaxdNM/S37elu5bqlLP/qOY906LukO9lkQ== dependencies: - "@babel/helper-function-name" "^7.0.0" + "@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" +"@babel/plugin-transform-literals@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz#690353e81f9267dad4fd8cfd77eafa86aba53ea1" + integrity sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-modules-amd@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.0.0.tgz#2430ab73db9960c4ca89966f425b803f5d0d0468" +"@babel/plugin-transform-modules-amd@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.2.0.tgz#82a9bce45b95441f617a24011dc89d12da7f4ee6" + integrity sha512-mK2A8ucqz1qhrdqjS9VMIDfIvvT2thrEsIQzbaTdc5QFzhDjQv2CkJJ5f6BXIkgbmaoax3zBr2RyvV/8zeoUZw== dependencies: - "@babel/helper-module-transforms" "^7.0.0" + "@babel/helper-module-transforms" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-modules-commonjs@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.0.0.tgz#20b906e5ab130dd8e456b694a94d9575da0fd41f" +"@babel/plugin-transform-modules-commonjs@^7.2.0", "@babel/plugin-transform-modules-commonjs@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.4.0.tgz#3b8ec61714d3b75d20c5ccfa157f2c2e087fd4ca" + integrity sha512-iWKAooAkipG7g1IY0eah7SumzfnIT3WNhT4uYB2kIsvHnNSB6MDYVa5qyICSwaTBDBY2c4SnJ3JtEa6ltJd6Jw== dependencies: - "@babel/helper-module-transforms" "^7.0.0" + "@babel/helper-module-transforms" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-simple-access" "^7.0.0" + "@babel/helper-simple-access" "^7.1.0" -"@babel/plugin-transform-modules-systemjs@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.0.0.tgz#8873d876d4fee23209decc4d1feab8f198cf2df4" +"@babel/plugin-transform-modules-systemjs@^7.2.0", "@babel/plugin-transform-modules-systemjs@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.4.0.tgz#c2495e55528135797bc816f5d50f851698c586a1" + integrity sha512-gjPdHmqiNhVoBqus5qK60mWPp1CmYWp/tkh11mvb0rrys01HycEGD7NvvSoKXlWEfSM9TcL36CpsK8ElsADptQ== dependencies: - "@babel/helper-hoist-variables" "^7.0.0" + "@babel/helper-hoist-variables" "^7.4.0" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-modules-umd@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.0.0.tgz#e7bb4f2a6cd199668964241951a25013450349be" +"@babel/plugin-transform-modules-umd@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz#7678ce75169f0877b8eb2235538c074268dd01ae" + integrity sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw== dependencies: - "@babel/helper-module-transforms" "^7.0.0" + "@babel/helper-module-transforms" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" +"@babel/plugin-transform-named-capturing-groups-regex@^7.3.0", "@babel/plugin-transform-named-capturing-groups-regex@^7.4.2": + version "7.4.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.4.2.tgz#800391136d6cbcc80728dbdba3c1c6e46f86c12e" + integrity sha512-NsAuliSwkL3WO2dzWTOL1oZJHm0TM8ZY8ZSxk2ANyKkt5SQlToGA4pzctmq1BEjoacurdwZ3xp2dCQWJkME0gQ== + dependencies: + regexp-tree "^0.1.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.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.0.0.tgz#b8587d511309b3a0e96e9e38169908b3e392041e" +"@babel/plugin-transform-new-target@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.0.tgz#67658a1d944edb53c8d4fa3004473a0dd7838150" + integrity sha512-6ZKNgMQmQmrEX/ncuCwnnw1yVGoaOW5KpxNhoWI7pCQdA0uZ0HqHGqenCUIENAnxRjy2WwNQ30gfGdIgqJXXqw== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.0.0" -"@babel/plugin-transform-parameters@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.0.0.tgz#da864efa111816a6df161d492f33de10e74b1949" +"@babel/plugin-transform-object-super@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz#b35d4c10f56bab5d650047dad0f1d8e8814b6598" + integrity sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg== dependencies: - "@babel/helper-call-delegate" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.1.0" + +"@babel/plugin-transform-parameters@^7.2.0", "@babel/plugin-transform-parameters@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.0.tgz#a1309426fac4eecd2a9439a4c8c35124a11a48a9" + integrity sha512-Xqv6d1X+doyiuCGDoVJFtlZx0onAX0tnc3dY8w71pv/O0dODAbusVv2Ale3cGOwfiyi895ivOBhYa9DhAM8dUA== + dependencies: + "@babel/helper-call-delegate" "^7.4.0" "@babel/helper-get-function-arity" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" +"@babel/plugin-transform-react-constant-elements@7.2.0", "@babel/plugin-transform-react-constant-elements@^7.0.0", "@babel/plugin-transform-react-constant-elements@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.2.0.tgz#ed602dc2d8bff2f0cb1a5ce29263dbdec40779f7" + integrity sha512-YYQFg6giRFMsZPKUM9v+VcHOdfSQdz9jHCx3akAi3UYgyjndmdYGSXylQ/V+HswQt4fL8IklchD9HTsaOCrWQQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-react-display-name@7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.2.0.tgz#ebfaed87834ce8dc4279609a4f0c324c156e3eb0" + integrity sha512-Htf/tPa5haZvRMiNSQSFifK12gtr/8vwfr+A9y69uF0QcU77AVu4K7MiHEkTxF7lQoHOL0F9ErqgfNEAKgXj7A== + dependencies: + "@babel/helper-plugin-utils" "^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" @@ -498,96 +706,173 @@ dependencies: regenerator-transform "^0.13.3" -"@babel/plugin-transform-runtime@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.0.0.tgz#0f1443c07bac16dba8efa939e0c61d6922740062" +"@babel/plugin-transform-regenerator@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.0.tgz#0780e27ee458cc3fdbad18294d703e972ae1f6d1" + integrity sha512-SZ+CgL4F0wm4npojPU6swo/cK4FcbLgxLd4cWpHaNXY/NJ2dpahODCqBbAwb2rDmVszVb3SSjnk9/vik3AYdBw== + dependencies: + regenerator-transform "^0.13.4" + +"@babel/plugin-transform-runtime@7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.2.0.tgz#566bc43f7d0aedc880eaddbd29168d0f248966ea" + integrity sha512-jIgkljDdq4RYDnJyQsiWbdvGeei/0MOTtSHKO/rfbd/mXBxNpdlulMx49L0HQ4pug1fXannxoqCI+fYSle9eSw== 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" +"@babel/plugin-transform-shorthand-properties@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz#6333aee2f8d6ee7e28615457298934a3b46198f0" + integrity sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg== 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" +"@babel/plugin-transform-spread@^7.2.0": + version "7.2.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz#3103a9abe22f742b6d406ecd3cd49b774919b406" + integrity sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w== 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" +"@babel/plugin-transform-sticky-regex@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz#a1e454b5995560a9c1e0d537dfc15061fd2687e1" + integrity sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw== 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" +"@babel/plugin-transform-template-literals@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.2.0.tgz#d87ed01b8eaac7a92473f608c97c089de2ba1e5b" + integrity sha512-FkPix00J9A/XWXv4VoKJBMeSkyY9x/TqIh76wzcdfl57RJJcf8CehQ08uwfhCDNtRQYtHQKBTwKZDEyjE13Lwg== 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" +"@babel/plugin-transform-typeof-symbol@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz#117d2bcec2fbf64b4b59d1f9819894682d29f2b2" + integrity sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw== dependencies: "@babel/helper-plugin-utils" "^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" +"@babel/plugin-transform-typescript@^7.1.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.4.0.tgz#0389ec53a34e80f99f708c4ca311181449a68eb1" + integrity sha512-U7/+zKnRZg04ggM/Bm+xmu2B/PrwyDQTT/V89FXWYWNMxBDwSx56u6jtk9SEbfLFbZaEI72L+5LPvQjeZgFCrQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-typescript" "^7.2.0" + +"@babel/plugin-transform-unicode-regex@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.2.0.tgz#4eb8db16f972f8abb5062c161b8b115546ade08b" + integrity sha512-m48Y0lMhrbXEJnVUaYly29jRXbQ3ksxPrS1Tg8t+MHqzXhtBYAvI51euOBaoAlZLPHsieY9XPVMf80a5x0cPcA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-regex" "^7.0.0" regexpu-core "^4.1.3" -"@babel/preset-env@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.0.0.tgz#f450f200c14e713f98cb14d113bf0c2cfbb89ca9" +"@babel/preset-env@7.3.1": + version "7.3.1" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.3.1.tgz#389e8ca6b17ae67aaf9a2111665030be923515db" + integrity sha512-FHKrD6Dxf30e8xgHQO0zJZpUPfVZg+Xwgz5/RdSWCbza9QLNk4Qbp40ctRoqDxml3O8RMzB1DU55SXeDG6PqHQ== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-async-generator-functions" "^7.0.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.0.0" - "@babel/plugin-transform-block-scoped-functions" "^7.0.0" - "@babel/plugin-transform-block-scoping" "^7.0.0" - "@babel/plugin-transform-classes" "^7.0.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.0.0" - "@babel/plugin-transform-for-of" "^7.0.0" - "@babel/plugin-transform-function-name" "^7.0.0" - "@babel/plugin-transform-literals" "^7.0.0" - "@babel/plugin-transform-modules-amd" "^7.0.0" - "@babel/plugin-transform-modules-commonjs" "^7.0.0" - "@babel/plugin-transform-modules-systemjs" "^7.0.0" - "@babel/plugin-transform-modules-umd" "^7.0.0" + "@babel/plugin-proposal-async-generator-functions" "^7.2.0" + "@babel/plugin-proposal-json-strings" "^7.2.0" + "@babel/plugin-proposal-object-rest-spread" "^7.3.1" + "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.2.0" + "@babel/plugin-syntax-async-generators" "^7.2.0" + "@babel/plugin-syntax-json-strings" "^7.2.0" + "@babel/plugin-syntax-object-rest-spread" "^7.2.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" + "@babel/plugin-transform-arrow-functions" "^7.2.0" + "@babel/plugin-transform-async-to-generator" "^7.2.0" + "@babel/plugin-transform-block-scoped-functions" "^7.2.0" + "@babel/plugin-transform-block-scoping" "^7.2.0" + "@babel/plugin-transform-classes" "^7.2.0" + "@babel/plugin-transform-computed-properties" "^7.2.0" + "@babel/plugin-transform-destructuring" "^7.2.0" + "@babel/plugin-transform-dotall-regex" "^7.2.0" + "@babel/plugin-transform-duplicate-keys" "^7.2.0" + "@babel/plugin-transform-exponentiation-operator" "^7.2.0" + "@babel/plugin-transform-for-of" "^7.2.0" + "@babel/plugin-transform-function-name" "^7.2.0" + "@babel/plugin-transform-literals" "^7.2.0" + "@babel/plugin-transform-modules-amd" "^7.2.0" + "@babel/plugin-transform-modules-commonjs" "^7.2.0" + "@babel/plugin-transform-modules-systemjs" "^7.2.0" + "@babel/plugin-transform-modules-umd" "^7.2.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.3.0" "@babel/plugin-transform-new-target" "^7.0.0" - "@babel/plugin-transform-object-super" "^7.0.0" - "@babel/plugin-transform-parameters" "^7.0.0" + "@babel/plugin-transform-object-super" "^7.2.0" + "@babel/plugin-transform-parameters" "^7.2.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" + "@babel/plugin-transform-shorthand-properties" "^7.2.0" + "@babel/plugin-transform-spread" "^7.2.0" + "@babel/plugin-transform-sticky-regex" "^7.2.0" + "@babel/plugin-transform-template-literals" "^7.2.0" + "@babel/plugin-transform-typeof-symbol" "^7.2.0" + "@babel/plugin-transform-unicode-regex" "^7.2.0" + browserslist "^4.3.4" + invariant "^2.2.2" + js-levenshtein "^1.1.3" + semver "^5.3.0" + +"@babel/preset-env@^7.1.6", "@babel/preset-env@^7.3.1": + version "7.4.2" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.4.2.tgz#2f5ba1de2daefa9dcca653848f96c7ce2e406676" + integrity sha512-OEz6VOZaI9LW08CWVS3d9g/0jZA6YCn1gsKIy/fut7yZCJti5Lm1/Hi+uo/U+ODm7g4I6gULrCP+/+laT8xAsA== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-async-generator-functions" "^7.2.0" + "@babel/plugin-proposal-json-strings" "^7.2.0" + "@babel/plugin-proposal-object-rest-spread" "^7.4.0" + "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.0" + "@babel/plugin-syntax-async-generators" "^7.2.0" + "@babel/plugin-syntax-json-strings" "^7.2.0" + "@babel/plugin-syntax-object-rest-spread" "^7.2.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" + "@babel/plugin-transform-arrow-functions" "^7.2.0" + "@babel/plugin-transform-async-to-generator" "^7.4.0" + "@babel/plugin-transform-block-scoped-functions" "^7.2.0" + "@babel/plugin-transform-block-scoping" "^7.4.0" + "@babel/plugin-transform-classes" "^7.4.0" + "@babel/plugin-transform-computed-properties" "^7.2.0" + "@babel/plugin-transform-destructuring" "^7.4.0" + "@babel/plugin-transform-dotall-regex" "^7.2.0" + "@babel/plugin-transform-duplicate-keys" "^7.2.0" + "@babel/plugin-transform-exponentiation-operator" "^7.2.0" + "@babel/plugin-transform-for-of" "^7.4.0" + "@babel/plugin-transform-function-name" "^7.2.0" + "@babel/plugin-transform-literals" "^7.2.0" + "@babel/plugin-transform-modules-amd" "^7.2.0" + "@babel/plugin-transform-modules-commonjs" "^7.4.0" + "@babel/plugin-transform-modules-systemjs" "^7.4.0" + "@babel/plugin-transform-modules-umd" "^7.2.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.4.2" + "@babel/plugin-transform-new-target" "^7.4.0" + "@babel/plugin-transform-object-super" "^7.2.0" + "@babel/plugin-transform-parameters" "^7.4.0" + "@babel/plugin-transform-regenerator" "^7.4.0" + "@babel/plugin-transform-shorthand-properties" "^7.2.0" + "@babel/plugin-transform-spread" "^7.2.0" + "@babel/plugin-transform-sticky-regex" "^7.2.0" + "@babel/plugin-transform-template-literals" "^7.2.0" + "@babel/plugin-transform-typeof-symbol" "^7.2.0" + "@babel/plugin-transform-unicode-regex" "^7.2.0" + "@babel/types" "^7.4.0" + browserslist "^4.4.2" + core-js-compat "^3.0.0" invariant "^2.2.2" js-levenshtein "^1.1.3" semver "^5.3.0" @@ -599,7 +884,7 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-flow-strip-types" "^7.0.0" -"@babel/preset-react@^7.0.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: @@ -609,12 +894,34 @@ "@babel/plugin-transform-react-jsx-self" "^7.0.0" "@babel/plugin-transform-react-jsx-source" "^7.0.0" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.0.0-rc.1": +"@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" + integrity sha512-LYveByuF9AOM8WrsNne5+N79k1YxjNB6gmpCQsnuSBAcV8QUeB+ZUxQzL7Rz7HksPbahymKkq2qBR+o36ggFZA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-transform-typescript" "^7.1.0" + +"@babel/runtime@7.3.1": + version "7.3.1" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.3.1.tgz#574b03e8e8a9898eaf4a872a92ea20b7846f6f2a" + integrity sha512-7jGW8ppV0ant637pIqAcFfQDDH1orEPGJb8aXfUozuCU3QqX7rX4DA8iwrbPrR1hcH0FTTHz47yQnk+bl5xHQA== + dependencies: + regenerator-runtime "^0.12.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.1.2", "@babel/runtime@^7.2.0", "@babel/runtime@^7.3.4": + version "7.4.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.4.2.tgz#f5ab6897320f16decd855eed70b705908a313fe8" + integrity sha512-7Bl2rALb7HpvXFL7TETNzKSAeBVCPHELzc0C//9FCxN8nsiueWSJBqaF+2oIJScyILStASR/Cx5WMkXGYTiJFA== + dependencies: + regenerator-runtime "^0.13.2" + "@babel/template@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0.tgz#c2bc9870405959c89a9c814376a2ecb247838c80" @@ -623,6 +930,15 @@ "@babel/parser" "^7.0.0" "@babel/types" "^7.0.0" +"@babel/template@^7.1.0", "@babel/template@^7.2.2", "@babel/template@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.0.tgz#12474e9c077bae585c5d835a95c0b0b790c25c8b" + integrity sha512-SOWwxxClTTh5NdbbYZ0BmaBVzxzTh2tO/TeLTbF6MO6EzVhHTnff8CdBXx3mEtazFBoysmEM6GU/wF+SuSx4Fw== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.4.0" + "@babel/types" "^7.4.0" + "@babel/traverse@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0.tgz#b1fe9b6567fdf3ab542cfad6f3b31f854d799a61" @@ -637,13 +953,20 @@ globals "^11.1.0" lodash "^4.17.10" -"@babel/types@7.0.0-beta.51": - version "7.0.0-beta.51" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.51.tgz#d802b7b543b5836c778aa691797abf00f3d97ea9" +"@babel/traverse@^7.1.0", "@babel/traverse@^7.2.2", "@babel/traverse@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.4.0.tgz#14006967dd1d2b3494cdd650c686db9daf0ddada" + integrity sha512-/DtIHKfyg2bBKnIN+BItaIlEg5pjAnzHOIQe5w+rHAw/rg9g0V7T4rqPX8BJPfW11kt3koyjAnTNwCzb28Y1PA== dependencies: - esutils "^2.0.2" - lodash "^4.17.5" - to-fast-properties "^2.0.0" + "@babel/code-frame" "^7.0.0" + "@babel/generator" "^7.4.0" + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-split-export-declaration" "^7.4.0" + "@babel/parser" "^7.4.0" + "@babel/types" "^7.4.0" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.11" "@babel/types@^7.0.0": version "7.0.0" @@ -653,6 +976,15 @@ lodash "^4.17.10" to-fast-properties "^2.0.0" +"@babel/types@^7.1.6", "@babel/types@^7.2.0", "@babel/types@^7.2.2", "@babel/types@^7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.4.0.tgz#670724f77d24cce6cc7d8cf64599d511d164894c" + integrity sha512-aPvkXyU2SPOnztlgo8n9cEiXW755mgyvueUPcpStqdzoSPm0fjO0vQBjLkt3JKJW7ufikfcnMTTPsN1xaTsBPA== + dependencies: + esutils "^2.0.2" + lodash "^4.17.11" + to-fast-properties "^2.0.0" + "@emotion/babel-utils@^0.6.4": version "0.6.9" resolved "https://registry.yarnpkg.com/@emotion/babel-utils/-/babel-utils-0.6.9.tgz#bb074fadad65c443a575d3379488415fd194fc75" @@ -664,51 +996,71 @@ find-root "^1.1.0" source-map "^0.7.2" -"@emotion/cache@^0.8.7": - version "0.8.7" - resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-0.8.7.tgz#79d34ebd6e87562286bf2f059ef7b36ea8b59d4b" - dependencies: - "@emotion/sheet" "^0.8.0" - "@emotion/stylis" "^0.7.0" - "@emotion/utils" "^0.8.1" - -"@emotion/core@0.13.0", "@emotion/core@^0.13.0", "@emotion/core@~0.13.0": - version "0.13.0" - resolved "https://registry.yarnpkg.com/@emotion/core/-/core-0.13.0.tgz#199b08ed25b8e72fbaa46f2de4fc58d1ab4c0f3b" - dependencies: - "@emotion/cache" "^0.8.7" - "@emotion/css" "^0.9.7" - "@emotion/serialize" "^0.9.0" - "@emotion/sheet" "^0.8.0" - "@emotion/utils" "^0.8.1" - -"@emotion/css@^0.9.7": - version "0.9.7" - resolved "https://registry.yarnpkg.com/@emotion/css/-/css-0.9.7.tgz#e5719973111299dcd197b12470e14fec7bcdab91" - dependencies: - "@emotion/serialize" "^0.9.0" - "@emotion/utils" "^0.8.1" +"@emotion/cache@^10.0.9": + version "10.0.9" + resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-10.0.9.tgz#e0c7b7a289f7530edcfad4dcf3858bd2e5700a6f" + integrity sha512-f7MblpE2xoimC4fCMZ9pivmsIn7hyWRIvY75owMDi8pdOSeh+w5tH3r4hBJv/LLrwiMM7cTQURqTPcYoL5pWnw== + dependencies: + "@emotion/sheet" "0.9.2" + "@emotion/stylis" "0.8.3" + "@emotion/utils" "0.11.1" + "@emotion/weak-memoize" "0.2.2" + +"@emotion/core@^10.0.7": + version "10.0.9" + resolved "https://registry.yarnpkg.com/@emotion/core/-/core-10.0.9.tgz#f8afbccb0011100680f5dc94657b410c6aa1350e" + integrity sha512-v5a77dV+uWGoy9w6R3MXZG01lqHcXgoy/jGmJqPDGhPjmpWg26LWXAphYZxpZffFUwDUlDdYDiX5HtaKphvJnQ== + dependencies: + "@emotion/cache" "^10.0.9" + "@emotion/css" "^10.0.9" + "@emotion/serialize" "^0.11.6" + "@emotion/sheet" "0.9.2" + "@emotion/utils" "0.11.1" + +"@emotion/css@^10.0.9": + version "10.0.9" + resolved "https://registry.yarnpkg.com/@emotion/css/-/css-10.0.9.tgz#ea0df431965a308f6cb1d61386df8ad61e5befb5" + integrity sha512-jtHhUSWw+L7yxYgNtC+KJ3Ory90/jiAtpG1qT+gTQQ/RR5AMiigs9/lDHu/vnwljaq2S48FoKb/FZZMlJcC4bw== + dependencies: + "@emotion/serialize" "^0.11.6" + "@emotion/utils" "0.11.1" + babel-plugin-emotion "^10.0.9" + +"@emotion/hash@0.7.1": + version "0.7.1" + resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.7.1.tgz#9833722341379fb7d67f06a4b00ab3c37913da53" + integrity sha512-OYpa/Sg+2GDX+jibUfpZVn1YqSVRpYmTLF2eyAfrFTIJSbwyIrc+YscayoykvaOME/wV4BV0Sa0yqdMrgse6mA== "@emotion/hash@^0.6.2", "@emotion/hash@^0.6.5": version "0.6.5" resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.6.5.tgz#097729b84a5164f71f9acd2570ecfd1354d7b360" -"@emotion/is-prop-valid@^0.6.7": - version "0.6.7" - resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.6.7.tgz#1767d39c29ba786b7afc3d8d727a2896995f01eb" +"@emotion/is-prop-valid@0.7.3": + version "0.7.3" + resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.7.3.tgz#a6bf4fa5387cbba59d44e698a4680f481a8da6cc" + integrity sha512-uxJqm/sqwXw3YPA5GXX365OBcJGFtxUVkB6WyezqFHlNe9jqUWH5ur2O2M8dGBz61kn1g3ZBlzUunFQXQIClhA== dependencies: - "@emotion/memoize" "^0.6.5" + "@emotion/memoize" "0.7.1" + +"@emotion/memoize@0.7.1": + version "0.7.1" + resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.1.tgz#e93c13942592cf5ef01aa8297444dc192beee52f" + integrity sha512-Qv4LTqO11jepd5Qmlp3M1YEjBumoTHcHFdgPTQ+sFlIL5myi/7xu/POwP7IRu6odBdmLXdtIs1D6TuW6kbwbbg== "@emotion/memoize@^0.6.1", "@emotion/memoize@^0.6.5": version "0.6.5" resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.6.5.tgz#f868c314b889e7c3d84868a1d1cc323fbb40ca86" -"@emotion/provider@0.11.1": - version "0.11.1" - resolved "https://registry.yarnpkg.com/@emotion/provider/-/provider-0.11.1.tgz#65267dea4a67a4488ba46316420f6238f0d1c644" +"@emotion/serialize@^0.11.6": + version "0.11.6" + resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-0.11.6.tgz#78be8b9ee9ff49e0196233ba6ec1c1768ba1e1fc" + integrity sha512-n4zVv2qGLmspF99jaEUwnMV0fnEGsyUMsC/8KZKUSUTZMYljHE+j+B6rSD8PIFtaUIhHaxCG2JawN6L+OgLN0Q== dependencies: - "@emotion/cache" "^0.8.7" - "@emotion/weak-memoize" "^0.1.2" + "@emotion/hash" "0.7.1" + "@emotion/memoize" "0.7.1" + "@emotion/unitless" "0.7.3" + "@emotion/utils" "0.11.1" + csstype "^2.5.7" "@emotion/serialize@^0.9.0": version "0.9.0" @@ -719,43 +1071,65 @@ "@emotion/unitless" "^0.6.6" "@emotion/utils" "^0.8.1" -"@emotion/sheet@^0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-0.8.0.tgz#278e3e95e5006515958382369104ae0fabc65b52" +"@emotion/sheet@0.9.2": + version "0.9.2" + resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-0.9.2.tgz#74e5c6b5e489a1ba30ab246ab5eedd96916487c4" + integrity sha512-pVBLzIbC/QCHDKJF2E82V2H/W/B004mDFQZiyo/MSR+VC4pV5JLG0TF/zgQDFvP3fZL/5RTPGEmXlYJBMUuJ+A== -"@emotion/styled-base@^0.10.5": - version "0.10.5" - resolved "https://registry.yarnpkg.com/@emotion/styled-base/-/styled-base-0.10.5.tgz#7f8afca216b2440367c6747de0cb1459468624b1" +"@emotion/styled-base@^10.0.9": + version "10.0.9" + resolved "https://registry.yarnpkg.com/@emotion/styled-base/-/styled-base-10.0.9.tgz#634b43d1f0309c35c5b342c775b01610517d2529" + integrity sha512-uXOPP2V7g8lYWsqBfYGmEOXHMUPleOujFWusQyXezxe1VGlZjGJIQj+YmzkwzGBmFx2nAun0OKMYCBJMeGKojw== dependencies: - "@emotion/is-prop-valid" "^0.6.7" - "@emotion/serialize" "^0.9.0" - "@emotion/utils" "^0.8.1" + "@emotion/is-prop-valid" "0.7.3" + "@emotion/serialize" "^0.11.6" + "@emotion/utils" "0.11.1" + object-assign "^4.1.1" -"@emotion/styled@0.10.5", "@emotion/styled@~0.10.5": - version "0.10.5" - resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-0.10.5.tgz#4a0d3e5c80f8e80112af6d398ca06098e5b82775" +"@emotion/styled@^10.0.7": + version "10.0.9" + resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-10.0.9.tgz#3d940ec8b989853fd422dab6278a2803e1c4a608" + integrity sha512-V+BT+KE4NKCANS18TL0yGueIyVbL5qXbgKarLcIhxmz0/dEk2k6kA18sKguJpHYa0RpgkggdhUPWWohTu3DRPw== dependencies: - "@emotion/styled-base" "^0.10.5" + "@emotion/styled-base" "^10.0.9" + babel-plugin-emotion "^10.0.9" -"@emotion/stylis@^0.6.10": - version "0.6.12" - resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.6.12.tgz#3fb58220e0fc9e380bcabbb3edde396ddc1dfe6e" +"@emotion/stylis@0.8.3": + version "0.8.3" + resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.8.3.tgz#3ca7e9bcb31b3cb4afbaeb66156d86ee85e23246" + integrity sha512-M3nMfJ6ndJMYloSIbYEBq6G3eqoYD41BpDOxreE8j0cb4fzz/5qvmqU9Mb2hzsXcCnIlGlWhS03PCzVGvTAe0Q== "@emotion/stylis@^0.7.0": version "0.7.0" resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.7.0.tgz#4c30e6fccc9555e42fa6fef98b3bd0788b954684" +"@emotion/unitless@0.7.3": + version "0.7.3" + resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.3.tgz#6310a047f12d21a1036fb031317219892440416f" + integrity sha512-4zAPlpDEh2VwXswwr/t8xGNDGg8RQiPxtxZ3qQEXyQsBV39ptTdESCjuBvGze1nLMVrxmTIKmnO/nAV8Tqjjzg== + "@emotion/unitless@^0.6.2", "@emotion/unitless@^0.6.6": version "0.6.6" resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.6.6.tgz#988957ecd0a9be00ee9de27172f8c56d41595a93" +"@emotion/utils@0.11.1": + version "0.11.1" + resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-0.11.1.tgz#8529b7412a6eb4b48bdf6e720cc1b8e6e1e17628" + integrity sha512-8M3VN0hetwhsJ8dH8VkVy7xo5/1VoBsDOk/T4SJOeXwTO1c4uIqVNx2qyecLFnnUWD5vvUqHQ1gASSeUN6zcTg== + "@emotion/utils@^0.8.1": version "0.8.1" resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-0.8.1.tgz#f3a81587ad8d0ef33cdad6f3b4310774fcc1053e" -"@emotion/weak-memoize@^0.1.2": - version "0.1.2" - resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.1.2.tgz#4e4afffc61fb82fd0e55a4ed3c3041fd0a765a5a" +"@emotion/weak-memoize@0.2.2": + version "0.2.2" + resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.2.tgz#63985d3d8b02530e0869962f4da09142ee8e200e" + integrity sha512-n/VQ4mbfr81aqkx/XmVicOLjviMuy02eenSdJY33SVA7S2J42EU0P1H0mOogfYedb3wXA0d/LVtBrgTSm04WEA== + +"@icons/material@^0.2.4": + version "0.2.4" + resolved "https://registry.yarnpkg.com/@icons/material/-/material-0.2.4.tgz#e90c9f71768b3736e76d7dd6783fc6c2afa88bc8" + integrity sha512-QPcGmICAPbGLGb6F/yNf/KzKqvFx8z5qx3D1yFqVAjoFmXK35EgyW+cJ57Te3CNsmzblwtzakLGFqHPqrfb4Tw== "@mrmlnc/readdir-enhanced@^2.2.1": version "2.2.1" @@ -764,18 +1138,6 @@ call-me-maybe "^1.0.1" glob-to-regexp "^0.3.0" -"@ndelangen/react-treebeard@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@ndelangen/react-treebeard/-/react-treebeard-3.0.1.tgz#644f959a7fff26f2f3e4753c6804be36ab1e6921" - dependencies: - "@emotion/core" "~0.13.0" - "@emotion/styled" "~0.10.5" - babel-runtime "^6.23.0" - deep-equal "^1.0.1" - prop-types "^15.6.2" - shallowequal "^1.1.0" - velocity-react "^1.3.1" - "@nodelib/fs.stat@^1.0.1": version "1.1.2" resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.2.tgz#54c5a964462be3d4d78af631363c18d6fa91ac26" @@ -787,268 +1149,480 @@ lodash "^4.17.10" react "^16.4.0" -"@storybook/addon-actions@^4.0.0-alpha.21": - version "4.0.0-alpha.21" - resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-4.0.0-alpha.21.tgz#08de5c5b357f1ad5af30cd8b7a1deaf1ed7828c7" - dependencies: - "@emotion/core" "^0.13.0" - "@emotion/provider" "0.11.1" - "@emotion/styled" "0.10.5" - "@storybook/addons" "4.0.0-alpha.21" - "@storybook/components" "4.0.0-alpha.21" - "@storybook/core-events" "4.0.0-alpha.21" - deep-equal "^1.0.1" +"@reach/router@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@reach/router/-/router-1.2.1.tgz#34ae3541a5ac44fa7796e5506a5d7274a162be4e" + integrity sha512-kTaX08X4g27tzIFQGRukaHmNbtMYDS3LEWIS8+l6OayGIw6Oyo1HIF/JzeuR2FoF9z6oV+x/wJSVSq4v8tcUGQ== + dependencies: + create-react-context "^0.2.1" + invariant "^2.2.3" + prop-types "^15.6.1" + react-lifecycles-compat "^3.0.4" + warning "^3.0.0" + +"@storybook/addon-actions@^5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-5.0.3.tgz#bf8bafeebc7b325f33a62d023e8ce9280ac66349" + integrity sha512-uyZV1TacrSb0A+bTGWCwaa0KiXUfeTs0+RBa1V5GPh5hZfZel8EAxlujsQWz/e3UZlvFPunW0NJWU0avpWYHCQ== + dependencies: + "@storybook/addons" "5.0.3" + "@storybook/components" "5.0.3" + "@storybook/core-events" "5.0.3" + "@storybook/theming" "5.0.3" + core-js "^2.6.5" + fast-deep-equal "^2.0.1" global "^4.3.2" - lodash.isequal "^4.5.0" + lodash "^4.17.11" make-error "^1.3.5" + polished "^2.3.3" prop-types "^15.6.2" + react "^16.8.1" react-inspector "^2.3.0" uuid "^3.3.2" -"@storybook/addon-knobs@^4.0.0-alpha.21": - version "4.0.0-alpha.21" - resolved "https://registry.yarnpkg.com/@storybook/addon-knobs/-/addon-knobs-4.0.0-alpha.21.tgz#720cd182f8b1fa986c1d664407cc55131d6b6168" +"@storybook/addon-knobs@^5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@storybook/addon-knobs/-/addon-knobs-5.0.3.tgz#0d5877189dfe773493f4daeb1c39fa19c6927bd3" + integrity sha512-FX1dhdmqr0H2h3oMK3cIWfeQtVbLnTrDNYD6ommRWZYSYA9hU7Acj1u+9/IDK609EIgS10pBQYVeWwn0SRCnOA== dependencies: - "@emotion/styled" "0.10.5" - "@storybook/addons" "4.0.0-alpha.21" - "@storybook/components" "4.0.0-alpha.21" - "@storybook/core-events" "4.0.0-alpha.21" + "@storybook/addons" "5.0.3" + "@storybook/components" "5.0.3" + "@storybook/core-events" "5.0.3" + "@storybook/theming" "5.0.3" copy-to-clipboard "^3.0.8" + core-js "^2.6.5" escape-html "^1.0.3" fast-deep-equal "^2.0.1" global "^4.3.2" + lodash.debounce "^4.0.8" prop-types "^15.6.2" qs "^6.5.2" - react-color "^2.14.1" - react-datetime "^2.15.0" + react-color "^2.17.0" react-lifecycles-compat "^3.0.4" + react-select "^2.3.0" util-deprecate "^1.0.2" -"@storybook/addon-options@^4.0.0-alpha.21": - version "4.0.0-alpha.21" - resolved "https://registry.yarnpkg.com/@storybook/addon-options/-/addon-options-4.0.0-alpha.21.tgz#035af96d2130a4bd202d5dedee8dd11e4a1ae06d" +"@storybook/addon-options@^5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@storybook/addon-options/-/addon-options-5.0.3.tgz#0321f05504b6e0c23d064584706ed6f529bb7c59" + integrity sha512-hOas4I8zjuH0py/gkhQy3xAADLdXatn3Q2w9eMxKAYD7iDqfcopDW9fugdgX+5ROffSGhEA52ZwGGuYHGPy0Sw== dependencies: - "@storybook/addons" "4.0.0-alpha.21" + "@storybook/addons" "5.0.3" + core-js "^2.6.5" + util-deprecate "^1.0.2" -"@storybook/addon-storysource@^4.0.0-alpha.21": - version "4.0.0-alpha.21" - resolved "https://registry.yarnpkg.com/@storybook/addon-storysource/-/addon-storysource-4.0.0-alpha.21.tgz#1c5ce5626e22c533412655a2377dedf3095d400a" - dependencies: - "@babel/runtime" "^7.0.0" - "@storybook/addons" "4.0.0-alpha.21" - "@storybook/components" "4.0.0-alpha.21" +"@storybook/addon-storysource@^5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@storybook/addon-storysource/-/addon-storysource-5.0.3.tgz#f2362e9d0398a2e16e3ed50c05557b8fb0f8eccc" + integrity sha512-C3aV6X+OwiBYGf/i7WrEIhEL/GqVl3FppMR/QR6W/Bft5pWOcedktXrJsVHHskVOBg3sxcCJScce/BTy1+3zeQ== + dependencies: + "@storybook/addons" "5.0.3" + "@storybook/components" "5.0.3" + "@storybook/router" "5.0.3" + "@storybook/theming" "5.0.3" + core-js "^2.6.5" estraverse "^4.2.0" - loader-utils "^1.1.0" - prettier "^1.14.0" + loader-utils "^1.2.1" + prettier "^1.16.4" prop-types "^15.6.2" react-syntax-highlighter "^8.0.1" + regenerator-runtime "^0.12.1" -"@storybook/addons@4.0.0-alpha.21", "@storybook/addons@^4.0.0-alpha.21": - version "4.0.0-alpha.21" - resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-4.0.0-alpha.21.tgz#4d5b9f4ce2b75ca03b68847ca31cf78e148d3ad7" +"@storybook/addons@5.0.3", "@storybook/addons@^5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-5.0.3.tgz#073352021d97ebbd3b8499e1dbe7fe32eafaaa28" + integrity sha512-jrhj2JQ05qErCMQQGwAMd/Diq14070aGof62RCUGqrEnfiYgeTM74k3C8sK7G/WFOAowI7hmQvWN9002HMXpVg== dependencies: - "@storybook/channels" "4.0.0-alpha.21" - "@storybook/components" "4.0.0-alpha.21" + "@storybook/channels" "5.0.3" + "@storybook/client-logger" "5.0.3" + core-js "^2.6.5" global "^4.3.2" util-deprecate "^1.0.2" -"@storybook/channel-postmessage@4.0.0-alpha.21": - version "4.0.0-alpha.21" - resolved "https://registry.yarnpkg.com/@storybook/channel-postmessage/-/channel-postmessage-4.0.0-alpha.21.tgz#8456696644f6a3d50faa5d41d50012c78297f72e" +"@storybook/channel-postmessage@5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@storybook/channel-postmessage/-/channel-postmessage-5.0.3.tgz#3531a78b7e4e0cb04349c5135ff87963457669da" + integrity sha512-qi4RjwWzgVvIHgfdQtSk6DLvh9iUiAPYt8OwmJ+ymBgCtUFK2NLNnvK4EPm92WgZgH4cZJ5z1nl9lD2l/de5sQ== dependencies: - "@storybook/channels" "4.0.0-alpha.21" + "@storybook/channels" "5.0.3" + "@storybook/client-logger" "5.0.3" + core-js "^2.6.5" global "^4.3.2" - json-stringify-safe "^5.0.1" + telejson "^2.1.0" -"@storybook/channels@4.0.0-alpha.21": - version "4.0.0-alpha.21" - resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-4.0.0-alpha.21.tgz#5fc63c5331db26e2a1678038dbe1212badcc095c" +"@storybook/channels@5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-5.0.3.tgz#ab1623b2dc6ab9202f7938bf2210b00259794784" + integrity sha512-trqHZPOmv3yTgT4EHQn74UhqIPOuFHZzHURKi3JWxDvDntZ+itIDgX8u3jiME0EIEVWwru5QM88j87GfqfzRmA== + dependencies: + core-js "^2.6.5" -"@storybook/client-logger@4.0.0-alpha.21": - version "4.0.0-alpha.21" - resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-4.0.0-alpha.21.tgz#018c394c549e8eaccb87b2dd892d2c9753287df5" +"@storybook/client-api@5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@storybook/client-api/-/client-api-5.0.3.tgz#d235eac1637ec213e651286c3ca37c1a56f785a0" + integrity sha512-dZRyhmvPv6MZjlVN1F0v9rQtmm1dQkk+4NYffk2lM14BIfSiUnDmF4VRzDpHAKWy6gCHvlPBPuzS0DkfikAgsA== + dependencies: + "@storybook/addons" "5.0.3" + "@storybook/client-logger" "5.0.3" + "@storybook/core-events" "5.0.3" + "@storybook/router" "5.0.3" + common-tags "^1.8.0" + eventemitter3 "^3.1.0" + global "^4.3.2" + is-plain-object "^2.0.4" + lodash.debounce "^4.0.8" + lodash.isequal "^4.5.0" + lodash.mergewith "^4.6.1" + memoizerific "^1.11.3" + qs "^6.5.2" -"@storybook/components@4.0.0-alpha.21": - version "4.0.0-alpha.21" - resolved "https://registry.yarnpkg.com/@storybook/components/-/components-4.0.0-alpha.21.tgz#c86594f2bf2c057294a88d214fe0f2acf7bde091" +"@storybook/client-logger@5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-5.0.3.tgz#5ec45b3173313aa7912ac95ac1ec530598a9d20e" + integrity sha512-1izIxCV1QsYfz5c93sUlHI6IlkVF3Rslje0QQeGOQPHZ4Pe73JzUjIlMKww9BAYS7rYbq7asNNplEp4GIgIdYQ== dependencies: - "@emotion/core" "0.13.0" - "@emotion/provider" "0.11.1" - "@emotion/styled" "0.10.5" + core-js "^2.6.5" + +"@storybook/components@5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@storybook/components/-/components-5.0.3.tgz#99df80256ce19d5d6d307b4f2a8d2f2a03c68b5a" + integrity sha512-xJX5poCjIae2Qv0bq5Ef87kcLn90IhlEOPg8nBCcUt2y8T6JQhEk+Zk6WpzA+TxV1Q/P1Oqozv8sr2vuQR2EFA== + dependencies: + "@storybook/addons" "5.0.3" + "@storybook/client-logger" "5.0.3" + "@storybook/core-events" "5.0.3" + "@storybook/router" "5.0.3" + "@storybook/theming" "5.0.3" + core-js "^2.6.5" global "^4.3.2" + immer "^1.12.0" + js-beautify "^1.8.9" lodash.pick "^4.4.0" lodash.throttle "^4.1.1" + memoizerific "^1.11.3" + polished "^2.3.3" prop-types "^15.6.2" + react "^16.8.1" + react-dom "^16.8.1" + react-focus-lock "^1.17.7" + react-helmet-async "^0.2.0" react-inspector "^2.3.0" - react-split-pane "^0.1.82" + react-popper-tooltip "^2.8.0" + react-syntax-highlighter "^8.0.1" react-textarea-autosize "^7.0.4" + reactjs-popup "^1.3.2" + recompose "^0.30.0" render-fragment "^0.1.1" -"@storybook/core-events@4.0.0-alpha.21": - version "4.0.0-alpha.21" - resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-4.0.0-alpha.21.tgz#46fd682afc0cede8dfb6058b4358c08fbb832236" - -"@storybook/core@4.0.0-alpha.21": - version "4.0.0-alpha.21" - resolved "https://registry.yarnpkg.com/@storybook/core/-/core-4.0.0-alpha.21.tgz#744d5af9c167d3f8d2623b1491890bc4e8f5e2ba" +"@storybook/core-events@5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-5.0.3.tgz#1b9d6265f7a2b16a0ddee274975e104d7a02c9f6" + integrity sha512-a+GbuuhGcfL6ovFlzfYi1oEu2gVa5m2tY5sHEYA03lWdKR2aa4R5Q8haVujox6yxQ6L8gNh1RZff0s1kx64Drw== dependencies: - "@babel/plugin-proposal-class-properties" "^7.0.0" - "@babel/plugin-transform-regenerator" "^7.0.0" - "@babel/plugin-transform-runtime" "^7.0.0" - "@babel/preset-env" "^7.0.0" - "@babel/runtime" "^7.0.0" - "@emotion/core" "0.13.0" - "@emotion/provider" "0.11.1" - "@emotion/styled" "0.10.5" - "@storybook/addons" "4.0.0-alpha.21" - "@storybook/channel-postmessage" "4.0.0-alpha.21" - "@storybook/client-logger" "4.0.0-alpha.21" - "@storybook/core-events" "4.0.0-alpha.21" - "@storybook/node-logger" "4.0.0-alpha.21" - "@storybook/ui" "4.0.0-alpha.21" - airbnb-js-shims "^2.1.0" - autoprefixer "^9.1.3" - babel-plugin-macros "^2.2.2" - babel-preset-minify canary - case-sensitive-paths-webpack-plugin "^2.1.2" - chalk "^2.4.1" - commander "^2.17.0" - core-js "^2.5.7" - css-loader "^1.0.0" - deepmerge "^2.1.1" - dotenv-webpack "^1.5.7" + core-js "^2.6.5" + +"@storybook/core@5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@storybook/core/-/core-5.0.3.tgz#9e797a3b2f5b62dc3e43c19f04888c5ac7a3bacd" + integrity sha512-3pfHsao/My0PTfHWQ6sQFuq1KSl/6uXi+NupYiExryYhe79fhwh0wO9JQ1JkiA9sUhD6Y+ZaxBZlcNtQgntAmg== + dependencies: + "@babel/plugin-proposal-class-properties" "^7.3.0" + "@babel/plugin-proposal-object-rest-spread" "^7.3.2" + "@babel/plugin-syntax-dynamic-import" "^7.2.0" + "@babel/plugin-transform-react-constant-elements" "^7.2.0" + "@babel/preset-env" "^7.3.1" + "@storybook/addons" "5.0.3" + "@storybook/channel-postmessage" "5.0.3" + "@storybook/client-api" "5.0.3" + "@storybook/client-logger" "5.0.3" + "@storybook/core-events" "5.0.3" + "@storybook/node-logger" "5.0.3" + "@storybook/router" "5.0.3" + "@storybook/theming" "5.0.3" + "@storybook/ui" "5.0.3" + airbnb-js-shims "^1 || ^2" + autoprefixer "^9.4.7" + babel-plugin-add-react-displayname "^0.0.5" + babel-plugin-emotion "^10.0.7" + babel-plugin-macros "^2.4.5" + babel-preset-minify "^0.5.0 || 0.6.0-alpha.5" + boxen "^2.1.0" + case-sensitive-paths-webpack-plugin "^2.2.0" + chalk "^2.4.2" + child-process-promise "^2.2.1" + cli-table3 "0.5.1" + commander "^2.19.0" + common-tags "^1.8.0" + core-js "^2.6.5" + css-loader "^2.1.0" + detect-port "^1.2.3" + dotenv-webpack "^1.7.0" ejs "^2.6.1" express "^4.16.3" - file-loader "^2.0.0" + file-loader "^3.0.1" + file-system-cache "^1.0.5" find-cache-dir "^2.0.0" - generate-page-webpack-plugin "^1.0.0" + fs-extra "^7.0.1" global "^4.3.2" - interpret "^1.1.0" - json5 "^2.0.1" + html-webpack-plugin "^4.0.0-beta.2" + inquirer "^6.2.0" + interpret "^1.2.0" + ip "^1.1.5" + json5 "^2.1.0" + lazy-universal-dotenv "^2.0.0" + node-fetch "^2.2.0" object.omit "^3.0.0" + opn "^5.4.0" postcss-flexbugs-fixes "^4.1.0" postcss-loader "^3.0.0" + pretty-hrtime "^1.0.3" prop-types "^15.6.2" - qs "^6.5.2" - raw-loader "^0.5.1" - react-dev-utils "6.0.0-next.3e165448" - redux "^4.0.0" - resolve "^1.8.1" - semver "^5.5.1" + raw-loader "^1.0.0" + react-dev-utils "^7.0.0" + regenerator-runtime "^0.12.1" + resolve "^1.10.0" + resolve-from "^4.0.0" + semver "^5.6.0" serve-favicon "^2.5.0" shelljs "^0.8.2" - style-loader "^0.23.0" + spawn-promise "^0.1.8" + style-loader "^0.23.1" svg-url-loader "^2.3.2" - universal-dotenv "^1.9.0" - url-loader "^1.1.1" - webpack "^4.17.1" - webpack-dev-middleware "^3.2.0" - webpack-hot-middleware "^2.22.3" - -"@storybook/mantra-core@^1.7.2": - version "1.7.2" - resolved "https://registry.yarnpkg.com/@storybook/mantra-core/-/mantra-core-1.7.2.tgz#e10c7faca29769e97131e0e0308ef7cfb655b70c" - dependencies: - "@storybook/react-komposer" "^2.0.1" - "@storybook/react-simple-di" "^1.2.1" - babel-runtime "6.x.x" - -"@storybook/node-logger@4.0.0-alpha.21": - version "4.0.0-alpha.21" - resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-4.0.0-alpha.21.tgz#37ea48f407c28d94d600ed97b1d742ce2d89681d" - dependencies: - "@babel/runtime" "^7.0.0" - npmlog "^4.1.2" - -"@storybook/podda@^1.2.3": - version "1.2.3" - resolved "http://registry.npmjs.org/@storybook/podda/-/podda-1.2.3.tgz#53c4a1a3f8c7bbd5755dff5c34576fd1af9d38ba" - dependencies: - babel-runtime "^6.11.6" - immutable "^3.8.1" + terser-webpack-plugin "^1.2.1" + url-loader "^1.1.2" + util-deprecate "^1.0.2" + webpack "^4.29.0" + webpack-dev-middleware "^3.5.1" + webpack-hot-middleware "^2.24.3" -"@storybook/react-komposer@^2.0.1", "@storybook/react-komposer@^2.0.4": - version "2.0.4" - resolved "http://registry.npmjs.org/@storybook/react-komposer/-/react-komposer-2.0.4.tgz#c2c0d4a75d9b4a9c0c6b46f14ab050f458ad4bb0" +"@storybook/node-logger@5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-5.0.3.tgz#616992e02ac58318250d6bb3d212d6bb79ed9b87" + integrity sha512-sVOOXO5Ae9xu1uTiBkVItDYZpsncA83tZ5xUNjxQmmQaaDDev+SO2d6b8A5drFLZQxbIXCdHn57CjZXUP1ChlA== dependencies: - "@storybook/react-stubber" "^1.0.0" - babel-runtime "^6.11.6" - hoist-non-react-statics "^1.2.0" - lodash.pick "^4.4.0" - shallowequal "^0.2.2" + chalk "^2.4.2" + core-js "^2.6.5" + npmlog "^4.1.2" + pretty-hrtime "^1.0.3" + regenerator-runtime "^0.12.1" -"@storybook/react-simple-di@^1.2.1": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@storybook/react-simple-di/-/react-simple-di-1.3.0.tgz#13116d89a2f42898716a7f8c4095b47415526371" +"@storybook/react@^5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@storybook/react/-/react-5.0.3.tgz#6154b5449a0c888ad6ee486ed747a37821230d0b" + integrity sha512-CUIid9zujWlwPuWYMFEVBQMcN2MmNk4Mwu+L3dQnqr9q4yqIOeMB+i9d1CpaFaxSaN6XtFdXkE7puzIS3lAQgg== dependencies: - babel-runtime "6.x.x" - create-react-class "^15.6.2" - hoist-non-react-statics "1.x.x" - prop-types "^15.6.0" + "@babel/plugin-transform-react-constant-elements" "^7.2.0" + "@babel/preset-flow" "^7.0.0" + "@babel/preset-react" "^7.0.0" + "@storybook/core" "5.0.3" + "@storybook/node-logger" "5.0.3" + "@storybook/theming" "5.0.3" + "@svgr/webpack" "^4.0.3" + babel-plugin-named-asset-import "^0.3.0" + babel-plugin-react-docgen "^2.0.2" + babel-preset-react-app "^7.0.0" + common-tags "^1.8.0" + core-js "^2.6.5" + global "^4.3.2" + lodash "^4.17.11" + mini-css-extract-plugin "^0.5.0" + prop-types "^15.6.2" + react-dev-utils "^7.0.1" + regenerator-runtime "^0.12.1" + semver "^5.6.0" + webpack "^4.29.0" -"@storybook/react-stubber@^1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@storybook/react-stubber/-/react-stubber-1.0.1.tgz#8c312c2658b9eeafce470e1c39e4193f0b5bf9b1" +"@storybook/router@5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@storybook/router/-/router-5.0.3.tgz#8af21da49c2801931b54810b74118f144b0a863e" + integrity sha512-HgDBhvJ9HzaKrpo22IOlNAWET6rPM7peVmnoUvBtjnbQnmBAd38+rT7geX1inVfIJp+CQw1jw2MB18AHgH36Og== dependencies: - babel-runtime "^6.5.0" + "@reach/router" "^1.2.1" + "@storybook/theming" "5.0.3" + core-js "^2.6.5" + global "^4.3.2" + memoizerific "^1.11.3" + qs "^6.5.2" -"@storybook/react@^4.0.0-alpha.21": - version "4.0.0-alpha.21" - resolved "https://registry.yarnpkg.com/@storybook/react/-/react-4.0.0-alpha.21.tgz#219ae837d935e83cf7cc3aa558a9902fc58df4d4" +"@storybook/theming@5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-5.0.3.tgz#d4dbf8016bc03b8581edaa5e3ace145d5e9dd504" + integrity sha512-S1KBbhy8mFBEIkzpsC7bW1yHBgvvGlp5y0uP0B/c4ObQvjAxNCMWZlRGiELn6vIpeQF1ywyFpEnq9jKKbY83Qw== dependencies: - "@babel/preset-flow" "^7.0.0" - "@babel/preset-react" "^7.0.0" - "@babel/runtime" "^7.0.0" - "@emotion/styled" "0.10.5" - "@storybook/core" "4.0.0-alpha.21" - babel-plugin-react-docgen "^2.0.0-babel7.0" + "@emotion/core" "^10.0.7" + "@emotion/styled" "^10.0.7" + "@storybook/client-logger" "5.0.3" common-tags "^1.8.0" - emotion "^9.2.6" + core-js "^2.6.5" + deep-object-diff "^1.1.0" + emotion-theming "^10.0.7" global "^4.3.2" - lodash.flattendeep "^4.4.0" + lodash.isequal "^4.5.0" + lodash.mergewith "^4.6.1" + memoizerific "^1.11.3" + polished "^2.3.3" prop-types "^15.6.2" - react-dev-utils "6.0.0-next.3e165448" - -"@storybook/ui@4.0.0-alpha.21": - version "4.0.0-alpha.21" - resolved "https://registry.yarnpkg.com/@storybook/ui/-/ui-4.0.0-alpha.21.tgz#f1b3e97b0a2e93d30f6e63eb97cd77fe068d0b23" - dependencies: - "@emotion/core" "0.13.0" - "@emotion/provider" "0.11.1" - "@emotion/styled" "0.10.5" - "@ndelangen/react-treebeard" "^3.0.0" - "@storybook/components" "4.0.0-alpha.21" - "@storybook/core-events" "4.0.0-alpha.21" - "@storybook/mantra-core" "^1.7.2" - "@storybook/podda" "^1.2.3" - "@storybook/react-komposer" "^2.0.4" - deep-equal "^1.0.1" - emotion "^9.2.8" - events "^3.0.0" - fuse.js "^3.2.1" + react-inspector "^2.3.1" + +"@storybook/ui@5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@storybook/ui/-/ui-5.0.3.tgz#81553d32bfa10ca901caeb42dd336e9bae13b417" + integrity sha512-3r0CSgv+yZye0yFUUseIya4FmQiMYO8AVlAh9whA1NyhI7IQ8aM7er3FUoMiBP0LTySprrVMV+1Ig8ZD54xrlg== + dependencies: + "@storybook/addons" "5.0.3" + "@storybook/client-logger" "5.0.3" + "@storybook/components" "5.0.3" + "@storybook/core-events" "5.0.3" + "@storybook/router" "5.0.3" + "@storybook/theming" "5.0.3" + core-js "^2.6.5" + fast-deep-equal "^2.0.1" + fuzzy-search "^3.0.1" global "^4.3.2" + history "^4.7.2" keycode "^2.2.0" lodash.debounce "^4.0.8" + lodash.isequal "^4.5.0" + lodash.mergewith "^4.6.1" lodash.pick "^4.4.0" lodash.sortby "^4.7.0" lodash.throttle "^4.1.1" + markdown-to-jsx "^6.9.1" + memoizerific "^1.11.3" + polished "^2.3.3" prop-types "^15.6.2" qs "^6.5.2" - react-fuzzy "^0.5.2" + react "^16.8.1" + react-dom "^16.8.1" + react-draggable "^3.1.1" + react-helmet-async "^0.2.0" + react-hotkeys "2.0.0-pre4" react-lifecycles-compat "^3.0.4" - react-modal "^3.5.1" + react-modal "^3.8.1" + react-resize-detector "^3.2.1" + recompose "^0.30.0" + semver "^5.6.0" + telejson "^2.1.1" + util-deprecate "^1.0.2" + +"@svgr/babel-plugin-add-jsx-attribute@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-4.0.0.tgz#5acf239cd2747b1a36ec7e708de05d914cb9b948" + integrity sha512-PDvHV2WhSGCSExp+eIMEKxYd1Q0SBvXLb4gAOXbdh0dswHFFgXWzxGjCmx5aln4qGrhkuN81khzYzR/44DYaMA== + +"@svgr/babel-plugin-remove-jsx-attribute@^4.0.3": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-4.0.3.tgz#32564b5c4d761b51e34492b6a4894196c0f75803" + integrity sha512-fpG7AzzJxz1tc8ITYS1jCAt1cq4ydK2R+sx//BMTJgvOjfk91M5GiqFolP8aYTzLcum92IGNAVFS3zEcucOQEA== + +"@svgr/babel-plugin-remove-jsx-empty-expression@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-4.0.0.tgz#0b59338c00671cf8137eb823bd84a3efac686502" + integrity sha512-nBGVl6LzXTdk1c6w3rMWcjq3mYGz+syWc5b3CdqAiEeY/nswYDoW/cnGUKKC8ofD6/LaG+G/IUnfv3jKoHz43A== + +"@svgr/babel-plugin-replace-jsx-attribute-value@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-4.0.0.tgz#91785643540c2300f3d89e515b37af9b5ce4e695" + integrity sha512-ejQqpTfORy6TT5w1x/2IQkscgfbtNFjitcFDu63GRz7qfhVTYhMdiJvJ1+Aw9hmv9bO4tXThGQDr1IF5lIvgew== + +"@svgr/babel-plugin-svg-dynamic-title@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-4.0.0.tgz#eb8d50b80ba0a26f9b27c7268e2a803d90f1bc9e" + integrity sha512-OE6GT9WRKWqd0Dk6NJ5TYXTF5OxAyn74+c/D+gTLbCXnK2A0luEXuwMbe5zR5Px4A/jow2OeEBboTENl4vtuQg== + +"@svgr/babel-plugin-svg-em-dimensions@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-4.0.0.tgz#0de3972c46ff1960bed765646037a3a7f9e1da3d" + integrity sha512-QeDRGHXfjYEBTXxV0TsjWmepsL9Up5BOOlMFD557x2JrSiVGUn2myNxHIrHiVW0+nnWnaDcrkjg/jUvbJ5nKCg== + +"@svgr/babel-plugin-transform-react-native-svg@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-4.0.0.tgz#5e8ecc2a9870ae05fb1e553b1fe9c6b5853a1c66" + integrity sha512-c6eE6ovs14k6dmHKoy26h7iRFhjWNnwYVrDWIPfouVm/gcLIeMw/ME4i91O5LEfaDHs6kTRCcVpbAVbNULZOtw== + +"@svgr/babel-plugin-transform-svg-component@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-4.1.0.tgz#257159e28a21ac20988b1eaa5f59d4724f37fdaa" + integrity sha512-uulxdx2p3nrM2BkrtADQHK8IhEzCxdUILfC/ddvFC8tlFWuKiA3ych8C6q0ulyQHq34/3hzz+3rmUbhWF9redg== + +"@svgr/babel-preset@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-4.1.0.tgz#f6fa8ad90064b85dd7a3566a70b7006e789e8385" + integrity sha512-Nat5aJ3VO3LE8KfMyIbd3sGWnaWPiFCeWIdEV+lalga0To/tpmzsnPDdnrR9fNYhvSSLJbwhU/lrLYt9wXY0ZQ== + dependencies: + "@svgr/babel-plugin-add-jsx-attribute" "^4.0.0" + "@svgr/babel-plugin-remove-jsx-attribute" "^4.0.3" + "@svgr/babel-plugin-remove-jsx-empty-expression" "^4.0.0" + "@svgr/babel-plugin-replace-jsx-attribute-value" "^4.0.0" + "@svgr/babel-plugin-svg-dynamic-title" "^4.0.0" + "@svgr/babel-plugin-svg-em-dimensions" "^4.0.0" + "@svgr/babel-plugin-transform-react-native-svg" "^4.0.0" + "@svgr/babel-plugin-transform-svg-component" "^4.1.0" + +"@svgr/core@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@svgr/core/-/core-4.1.0.tgz#4f8ad24fb4ab25c787c12a6bbb511c6430558f83" + integrity sha512-ahv3lvOKuUAcs0KbQ4Jr5fT5pGHhye4ew8jZVS4lw8IQdWrbG/o3rkpgxCPREBk7PShmEoGQpteeXVwp2yExuQ== + dependencies: + "@svgr/plugin-jsx" "^4.1.0" + camelcase "^5.0.0" + cosmiconfig "^5.0.7" + +"@svgr/hast-util-to-babel-ast@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-4.1.0.tgz#a1eb0f47059769896f759f47995b636fce5d9fa4" + integrity sha512-tdkEZHmigYYiVhIEzycAMKN5aUSpddUnjr6v7bPwaNTFuSyqGUrpCg1JlIGi7PUaaJVHbn6whGQMGUpKOwT5nw== + dependencies: + "@babel/types" "^7.1.6" + +"@svgr/plugin-jsx@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-4.1.0.tgz#4045e9cc0589374a6c182a1217c80e6734b5cbec" + integrity sha512-xwu+9TGziuN7cu7p+vhCw2EJIfv8iDNMzn2dR0C7fBYc8q+SRtYTcg4Uyn8ZWh6DM+IZOlVrS02VEMT0FQzXSA== + dependencies: + "@babel/core" "^7.1.6" + "@svgr/babel-preset" "^4.1.0" + "@svgr/hast-util-to-babel-ast" "^4.1.0" + rehype-parse "^6.0.0" + unified "^7.0.2" + vfile "^3.0.1" + +"@svgr/plugin-svgo@^4.0.3": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-4.0.3.tgz#a07ea0a736c26fa3a5440fe8e222e2e887764cab" + integrity sha512-MgL1CrlxvNe+1tQjPUc2bIJtsdJOIE5arbHlPgW+XVWGjMZTUcyNNP8R7/IjM2Iyrc98UJY+WYiiWHrinnY9ZQ== + dependencies: + cosmiconfig "^5.0.7" + merge-deep "^3.0.2" + svgo "^1.1.1" + +"@svgr/webpack@^4.0.3": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-4.1.0.tgz#20c88f32f731c7b1d4711045b2b993887d731c28" + integrity sha512-d09ehQWqLMywP/PT/5JvXwPskPK9QCXUjiSkAHehreB381qExXf5JFCBWhfEyNonRbkIneCeYM99w+Ud48YIQQ== + dependencies: + "@babel/core" "^7.1.6" + "@babel/plugin-transform-react-constant-elements" "^7.0.0" + "@babel/preset-env" "^7.1.6" + "@babel/preset-react" "^7.0.0" + "@svgr/core" "^4.1.0" + "@svgr/plugin-jsx" "^4.1.0" + "@svgr/plugin-svgo" "^4.0.3" + loader-utils "^1.1.0" "@types/json5@^0.0.29": version "0.0.29" resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" -"@types/lodash@^4.14.116": - version "4.14.116" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.116.tgz#5ccf215653e3e8c786a58390751033a9adca0eb9" +"@types/lodash@^4.14.123": + version "4.14.123" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.123.tgz#39be5d211478c8dd3bdae98ee75bb7efe4abfe4d" + integrity sha512-pQvPkc4Nltyx7G1Ww45OjVqUsJP4UsZm+GWJpigXgkikZqJgRm4c48g027o6tdgubWHwFRF15iFd+Y4Pmqv6+Q== -"@types/mathjs@^4.4.1": - version "4.4.1" - resolved "https://registry.yarnpkg.com/@types/mathjs/-/mathjs-4.4.1.tgz#ce876a823848486f3675f8573e93f2d282feba19" +"@types/mathjs@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@types/mathjs/-/mathjs-5.0.1.tgz#b98e163ea396b4f27bec20ee25ffb8fe9e656af8" + integrity sha512-EFBuueI+BRed9bnUO6/9my55b4FH+VQIvqMm58h9JGbtaGCkqr3YSDhnmVbM1SJjF//8SURERSypzNwejOk7lA== dependencies: decimal.js "^10.0.0" @@ -1062,156 +1636,209 @@ dependencies: "@types/react" "*" -"@types/react-dom@^16.0.7": - version "16.0.7" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.0.7.tgz#54d0f867a76b90597e8432030d297982f25c20ba" +"@types/q@^1.5.1": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8" + integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw== + +"@types/react-dom@^16.8.3": + version "16.8.3" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.8.3.tgz#6131b7b6158bc7ed1925a3374b88b7c00481f0cb" + integrity sha512-HF5hD5YR3z9Mn6kXcW1VKe4AQ04ZlZj1EdLBae61hzQ3eEWWxMgNLUbIxeZp40BnSxqY1eAYLsH9QopQcxzScA== dependencies: - "@types/node" "*" "@types/react" "*" -"@types/react@*", "@types/react@^16.4.14": +"@types/react@*": version "16.4.14" resolved "https://registry.yarnpkg.com/@types/react/-/react-16.4.14.tgz#47c604c8e46ed674bbdf4aabf82b34b9041c6a04" dependencies: "@types/prop-types" "*" csstype "^2.2.0" -"@webassemblyjs/ast@1.7.6": - version "1.7.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.7.6.tgz#3ef8c45b3e5e943a153a05281317474fef63e21e" +"@types/react@^16.8.8": + version "16.8.8" + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.8.8.tgz#4b60a469fd2469f7aa6eaa0f8cfbc51f6d76e662" + integrity sha512-xwEvyet96u7WnB96kqY0yY7qxx/pEpU51QeACkKFtrgjjXITQn0oO1iwPEraXVgh10ZFPix7gs1R4OJXF7P5sg== 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" + "@types/prop-types" "*" + csstype "^2.2.0" -"@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" +"@types/unist@*", "@types/unist@^2.0.0": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e" + integrity sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ== -"@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" +"@types/vfile-message@*": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@types/vfile-message/-/vfile-message-1.0.1.tgz#e1e9895cc6b36c462d4244e64e6d0b6eaf65355a" + integrity sha512-mlGER3Aqmq7bqR1tTTIVHq8KSAFFRyGbrxuM8C/H82g6k7r2fS+IMEkIu3D7JHzG10NvPdR8DNx0jr0pwpp4dA== 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" + "@types/node" "*" + "@types/unist" "*" -"@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" +"@types/vfile@^3.0.0": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/vfile/-/vfile-3.0.2.tgz#19c18cd232df11ce6fa6ad80259bc86c366b09b9" + integrity sha512-b3nLFGaGkJ9rzOcuXRfHkZMdjsawuDD0ENL9fzTophtBg8FJHSGbH7daXkEpcwy3v7Xol3pAvsmlYyFhR4pqJw== dependencies: + "@types/node" "*" + "@types/unist" "*" + "@types/vfile-message" "*" + +"@webassemblyjs/ast@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359" + integrity sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ== + dependencies: + "@webassemblyjs/helper-module-context" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/wast-parser" "1.8.5" + +"@webassemblyjs/floating-point-hex-parser@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz#1ba926a2923613edce496fd5b02e8ce8a5f49721" + integrity sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ== + +"@webassemblyjs/helper-api-error@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz#c49dad22f645227c5edb610bdb9697f1aab721f7" + integrity sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA== + +"@webassemblyjs/helper-buffer@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz#fea93e429863dd5e4338555f42292385a653f204" + integrity sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q== + +"@webassemblyjs/helper-code-frame@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz#9a740ff48e3faa3022b1dff54423df9aa293c25e" + integrity sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ== + dependencies: + "@webassemblyjs/wast-printer" "1.8.5" + +"@webassemblyjs/helper-fsm@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz#ba0b7d3b3f7e4733da6059c9332275d860702452" + integrity sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow== + +"@webassemblyjs/helper-module-context@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz#def4b9927b0101dc8cbbd8d1edb5b7b9c82eb245" + integrity sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g== + dependencies: + "@webassemblyjs/ast" "1.8.5" 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-bytecode@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz#537a750eddf5c1e932f3744206551c91c1b93e61" + integrity sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ== -"@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" +"@webassemblyjs/helper-wasm-section@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz#74ca6a6bcbe19e50a3b6b462847e69503e6bfcbf" + integrity sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA== 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/ast" "1.8.5" + "@webassemblyjs/helper-buffer" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/wasm-gen" "1.8.5" -"@webassemblyjs/ieee754@1.7.6": - version "1.7.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.7.6.tgz#c34fc058f2f831fae0632a8bb9803cf2d3462eb1" +"@webassemblyjs/ieee754@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz#712329dbef240f36bf57bd2f7b8fb9bf4154421e" + integrity sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g== 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" +"@webassemblyjs/leb128@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.8.5.tgz#044edeb34ea679f3e04cd4fd9824d5e35767ae10" + integrity sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.8.5.tgz#a8bf3b5d8ffe986c7c1e373ccbdc2a0915f0cedc" + integrity sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw== + +"@webassemblyjs/wasm-edit@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz#962da12aa5acc1c131c81c4232991c82ce56e01a" + integrity sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-buffer" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/helper-wasm-section" "1.8.5" + "@webassemblyjs/wasm-gen" "1.8.5" + "@webassemblyjs/wasm-opt" "1.8.5" + "@webassemblyjs/wasm-parser" "1.8.5" + "@webassemblyjs/wast-printer" "1.8.5" + +"@webassemblyjs/wasm-gen@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz#54840766c2c1002eb64ed1abe720aded714f98bc" + integrity sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/ieee754" "1.8.5" + "@webassemblyjs/leb128" "1.8.5" + "@webassemblyjs/utf8" "1.8.5" + +"@webassemblyjs/wasm-opt@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz#b24d9f6ba50394af1349f510afa8ffcb8a63d264" + integrity sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-buffer" "1.8.5" + "@webassemblyjs/wasm-gen" "1.8.5" + "@webassemblyjs/wasm-parser" "1.8.5" + +"@webassemblyjs/wasm-parser@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz#21576f0ec88b91427357b8536383668ef7c66b8d" + integrity sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-api-error" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/ieee754" "1.8.5" + "@webassemblyjs/leb128" "1.8.5" + "@webassemblyjs/utf8" "1.8.5" + +"@webassemblyjs/wast-parser@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz#e10eecd542d0e7bd394f6827c49f3df6d4eefb8c" + integrity sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/floating-point-hex-parser" "1.8.5" + "@webassemblyjs/helper-api-error" "1.8.5" + "@webassemblyjs/helper-code-frame" "1.8.5" + "@webassemblyjs/helper-fsm" "1.8.5" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/wast-printer@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz#114bbc481fd10ca0e23b3560fa812748b0bae5bc" + integrity sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/wast-parser" "1.8.5" + "@xtuc/long" "4.2.2" "@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" +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== abbrev@1: version "1.1.1" @@ -1224,23 +1851,24 @@ accepts@~1.3.5: mime-types "~2.1.18" negotiator "0.6.1" -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 "^5.0.0" +acorn-dynamic-import@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz#482210140582a36b83c3e342e1cfebcaa9240948" + integrity sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw== -acorn@^5.0.0, acorn@^5.6.2: - version "5.7.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" +acorn@^6.0.5: + version "6.1.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.1.1.tgz#7d25ae05bb8ad1f9b699108e1094ecd7884adc1f" + integrity sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA== address@1.0.3, address@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/address/-/address-1.0.3.tgz#b5f50631f8d6cec8bd20c963963afb55e06cbce9" -airbnb-js-shims@^2.1.0: +"airbnb-js-shims@^1 || ^2": version "2.1.1" resolved "https://registry.yarnpkg.com/airbnb-js-shims/-/airbnb-js-shims-2.1.1.tgz#a509611480db7e6d9db62fe2acfaeb473b6842ac" + integrity sha512-h8UtyB/TCdOwWoEPQJGHgsWwSnTqPrRZbhyZYjAwY9/AbjdjfkKy9L/T3fIFS6MKX8YrpWFRm6xqFSgU+2DRGw== dependencies: array-includes "^3.0.3" array.prototype.flat "^1.2.1" @@ -1266,7 +1894,7 @@ 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.1.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: @@ -1288,6 +1916,13 @@ amdefine@>=0.0.4: version "1.0.1" resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" +ansi-align@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" + integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== + dependencies: + string-width "^3.0.0" + ansi-colors@^3.0.0: version "3.0.5" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.0.5.tgz#cb9dc64993b64fd6945485f797fc3853137d9a7b" @@ -1296,6 +1931,11 @@ ansi-escapes@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30" +ansi-escapes@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== + ansi-html@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" @@ -1308,6 +1948,11 @@ ansi-regex@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" +ansi-regex@^4.0.0, ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" @@ -1451,9 +2096,15 @@ 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@0.11.5: - version "0.11.5" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.11.5.tgz#9890825d660c03c28339f315e9fa0a360e31ec28" +ast-types@0.11.3: + version "0.11.3" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.11.3.tgz#c20757fe72ee71278ea0ff3d87e5c2ca30d9edf8" + integrity sha512-XA5o5dsNw8MhyW0Q7MWXJWc4oOzZKbdsEJq45h7c8q/d9DwWZ5F2ugUc1PuMLPGsUnphCt/cNDHu8JeBbxf1qA== + +ast-types@0.11.7: + version "0.11.7" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.11.7.tgz#f318bf44e339db6a320be0009ded64ec1471f46c" + integrity sha512-2mP3TwtkY/aTv5X3ZsMpNAbOnyoC/aMJwJSoaELPkHId0nSQgFcnU4dRW3isxiz7+zBexk0ym3WNVjMiQBnJSw== async-each@^1.0.0: version "1.0.1" @@ -1477,16 +2128,17 @@ atob@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" -autoprefixer@^9.1.3: - version "9.1.5" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.1.5.tgz#8675fd8d1c0d43069f3b19a2c316f3524e4f6671" +autoprefixer@^9.4.7: + version "9.5.0" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.5.0.tgz#7e51d0355c11596e6cf9a0afc9a44e86d1596c70" + integrity sha512-hMKcyHsZn5+qL6AUeP3c8OyuteZ4VaUlg+fWbyl8z7PqsKHF/Bf8/px3K6AT8aMzDkBo8Bc11245MM+itDBOxQ== dependencies: - browserslist "^4.1.0" - caniuse-lite "^1.0.30000884" + browserslist "^4.4.2" + caniuse-lite "^1.0.30000947" normalize-range "^0.1.2" num2fraction "^1.2.2" - postcss "^7.0.2" - postcss-value-parser "^3.2.3" + postcss "^7.0.14" + postcss-value-parser "^3.3.1" awesome-typescript-loader@5: version "5.2.1" @@ -1505,336 +2157,335 @@ 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.6.0, aws4@^1.8.0: +aws4@^1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" -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.26.3: - 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-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-evaluate-path@^0.5.0-alpha.e9f96ffe: - version "0.5.0-alpha.e9f96ffe" - resolved "https://registry.yarnpkg.com/babel-helper-evaluate-path/-/babel-helper-evaluate-path-0.5.0-alpha.e9f96ffe.tgz#5da27bfe87a830a7fad3676770e09d9e51a48104" +babel-helper-evaluate-path@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/babel-helper-evaluate-path/-/babel-helper-evaluate-path-0.5.0.tgz#a62fa9c4e64ff7ea5cea9353174ef023a900a67c" + integrity sha512-mUh0UhS607bGh5wUMAQfOpt2JX2ThXMtppHRdRU1kL7ZLRWIXxoV2UIV1r2cAeeNeU1M5SB5/RSUgUxrK8yOkA== -babel-helper-flip-expressions@^0.5.0-alpha.e9f96ffe: - version "0.5.0-alpha.e9f96ffe" - resolved "https://registry.yarnpkg.com/babel-helper-flip-expressions/-/babel-helper-flip-expressions-0.5.0-alpha.e9f96ffe.tgz#fa3929314172a13a56cbc82b395c4e2c6c098025" +babel-helper-flip-expressions@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/babel-helper-flip-expressions/-/babel-helper-flip-expressions-0.4.3.tgz#3696736a128ac18bc25254b5f40a22ceb3c1d3fd" + integrity sha1-NpZzahKKwYvCUlS19AoizrPB0/0= babel-helper-is-nodes-equiv@^0.0.1: version "0.0.1" resolved "http://registry.npmjs.org/babel-helper-is-nodes-equiv/-/babel-helper-is-nodes-equiv-0.0.1.tgz#34e9b300b1479ddd98ec77ea0bbe9342dfe39684" -babel-helper-is-void-0@^0.5.0-alpha.e9f96ffe: - version "0.5.0-alpha.e9f96ffe" - resolved "https://registry.yarnpkg.com/babel-helper-is-void-0/-/babel-helper-is-void-0-0.5.0-alpha.e9f96ffe.tgz#e1c0c51dad35638c1c1c2e2f6f1069a9fe0be0af" - -babel-helper-mark-eval-scopes@^0.5.0-alpha.e9f96ffe: - version "0.5.0-alpha.e9f96ffe" - resolved "https://registry.yarnpkg.com/babel-helper-mark-eval-scopes/-/babel-helper-mark-eval-scopes-0.5.0-alpha.e9f96ffe.tgz#f1d80062ff70b1dd6b7321c1ce5377e65d128c0e" +babel-helper-is-void-0@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/babel-helper-is-void-0/-/babel-helper-is-void-0-0.4.3.tgz#7d9c01b4561e7b95dbda0f6eee48f5b60e67313e" + integrity sha1-fZwBtFYee5Xb2g9u7kj1tg5nMT4= -babel-helper-remove-or-void@^0.5.0-alpha.e9f96ffe: - version "0.5.0-alpha.e9f96ffe" - resolved "https://registry.yarnpkg.com/babel-helper-remove-or-void/-/babel-helper-remove-or-void-0.5.0-alpha.e9f96ffe.tgz#e5992fa19341d02c2f6b02a14cec8c1f5471d3be" +babel-helper-mark-eval-scopes@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/babel-helper-mark-eval-scopes/-/babel-helper-mark-eval-scopes-0.4.3.tgz#d244a3bef9844872603ffb46e22ce8acdf551562" + integrity sha1-0kSjvvmESHJgP/tG4izorN9VFWI= -babel-helper-to-multiple-sequence-expressions@^0.5.0-alpha.e9f96ffe: - version "0.5.0-alpha.e9f96ffe" - resolved "https://registry.yarnpkg.com/babel-helper-to-multiple-sequence-expressions/-/babel-helper-to-multiple-sequence-expressions-0.5.0-alpha.e9f96ffe.tgz#ab4830d63f1698f1379c09a6782bf589ac11cd01" +babel-helper-remove-or-void@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/babel-helper-remove-or-void/-/babel-helper-remove-or-void-0.4.3.tgz#a4f03b40077a0ffe88e45d07010dee241ff5ae60" + integrity sha1-pPA7QAd6D/6I5F0HAQ3uJB/1rmA= -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-helper-to-multiple-sequence-expressions@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/babel-helper-to-multiple-sequence-expressions/-/babel-helper-to-multiple-sequence-expressions-0.5.0.tgz#a3f924e3561882d42fcf48907aa98f7979a4588d" + integrity sha512-m2CvfDW4+1qfDdsrtf4dwOslQC3yhbgyBFptncp4wvtdrDHqueW7slsYv4gArie056phvQFhT2nRcGS4bnm6mA== -babel-loader@^8.0.2: - version "8.0.2" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.2.tgz#2079b8ec1628284a929241da3d90f5b3de2a5ae5" +babel-loader@8.0.5, babel-loader@^8.0.5: + version "8.0.5" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.5.tgz#225322d7509c2157655840bba52e46b6c2f2fe33" + integrity sha512-NTnHnVRd2JnRqPC0vW+iOQWU5pchDbYXsG2E6DMXEpMfUcQKclF9gmf3G3ZMhzG7IG9ji4coL0cm+FxeWxDpnw== dependencies: - find-cache-dir "^1.0.0" + find-cache-dir "^2.0.0" loader-utils "^1.0.2" mkdirp "^0.5.1" util.promisify "^1.0.0" -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" +babel-plugin-add-react-displayname@^0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/babel-plugin-add-react-displayname/-/babel-plugin-add-react-displayname-0.0.5.tgz#339d4cddb7b65fd62d1df9db9fe04de134122bd5" + integrity sha1-M51M3be2X9YtHfnbn+BN4TQSK9U= + +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" + integrity sha512-fP899ELUnTaBcIzmrW7nniyqqdYWrWuJUyPWHxFa/c7r7hS6KC8FscNfLlBNIoPSc55kYMGEEKjPjJGCLbE1qA== + dependencies: + object.assign "^4.1.0" + +babel-plugin-emotion@^10.0.7, babel-plugin-emotion@^10.0.9: + version "10.0.9" + resolved "https://registry.yarnpkg.com/babel-plugin-emotion/-/babel-plugin-emotion-10.0.9.tgz#04a0404d5a4084d5296357a393d344c0f8303ae4" + integrity sha512-IfWP12e9/wHtWHxVTzD692Nbcmrmcz2tip7acp6YUqtrP7slAyr5B+69hyZ8jd55GsyNSZwryNnmuDEVe0j+7w== dependencies: - babel-runtime "^6.22.0" + "@babel/helper-module-imports" "^7.0.0" + "@emotion/hash" "0.7.1" + "@emotion/memoize" "0.7.1" + "@emotion/serialize" "^0.11.6" + babel-plugin-macros "^2.0.0" + babel-plugin-syntax-jsx "^6.18.0" + convert-source-map "^1.5.0" + escape-string-regexp "^1.0.5" + find-root "^1.1.0" + source-map "^0.5.7" -babel-plugin-emotion@^9.2.8: - version "9.2.8" - resolved "https://registry.yarnpkg.com/babel-plugin-emotion/-/babel-plugin-emotion-9.2.8.tgz#4df55ef10625c391f25b031f7e3006abac359e09" +babel-plugin-emotion@^9.2.11: + version "9.2.11" + resolved "https://registry.yarnpkg.com/babel-plugin-emotion/-/babel-plugin-emotion-9.2.11.tgz#319c005a9ee1d15bb447f59fe504c35fd5807728" + integrity sha512-dgCImifnOPPSeXod2znAmgc64NhaaOjGEHROR/M+lmStb3841yK1sgaDYAYMnlvWNz8GnpwIPN0VmNpbWYZ+VQ== dependencies: - "@babel/helper-module-imports" "7.0.0-beta.51" + "@babel/helper-module-imports" "^7.0.0" "@emotion/babel-utils" "^0.6.4" "@emotion/hash" "^0.6.2" "@emotion/memoize" "^0.6.1" "@emotion/stylis" "^0.7.0" - babel-core "^6.26.3" babel-plugin-macros "^2.0.0" babel-plugin-syntax-jsx "^6.18.0" convert-source-map "^1.5.0" find-root "^1.1.0" mkdirp "^0.5.1" source-map "^0.5.7" - touch "^1.0.0" + touch "^2.0.1" + +babel-plugin-macros@2.5.0, babel-plugin-macros@^2.4.5: + version "2.5.0" + resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.5.0.tgz#01f4d3b50ed567a67b80a30b9da066e94f4097b6" + integrity sha512-BWw0lD0kVZAXRD3Od1kMrdmfudqzDzYv2qrN3l2ISR1HVp1EgLKfbOrYV9xmY5k3qx3RIu5uPAUZZZHpo0o5Iw== + dependencies: + cosmiconfig "^5.0.5" + resolve "^1.8.1" -babel-plugin-macros@^2.0.0, babel-plugin-macros@^2.2.2: +babel-plugin-macros@^2.0.0: version "2.4.0" resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.4.0.tgz#6c5f9836e1f6c0a9743b3bab4af29f73e437e544" dependencies: cosmiconfig "^5.0.5" -babel-plugin-minify-builtins@^0.5.0-alpha.3cc09dcf: - version "0.5.0-alpha.e9f96ffe" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-builtins/-/babel-plugin-minify-builtins-0.5.0-alpha.e9f96ffe.tgz#22a40d257f12f43fbe12731a82b54866b9f753bb" - dependencies: - babel-helper-evaluate-path "^0.5.0-alpha.e9f96ffe" +babel-plugin-minify-builtins@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-builtins/-/babel-plugin-minify-builtins-0.5.0.tgz#31eb82ed1a0d0efdc31312f93b6e4741ce82c36b" + integrity sha512-wpqbN7Ov5hsNwGdzuzvFcjgRlzbIeVv1gMIlICbPj0xkexnfoIDe7q+AZHMkQmAE/F9R5jkrB6TLfTegImlXag== -babel-plugin-minify-constant-folding@^0.5.0-alpha.3cc09dcf: - version "0.5.0-alpha.e9f96ffe" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-constant-folding/-/babel-plugin-minify-constant-folding-0.5.0-alpha.e9f96ffe.tgz#d4b4c444ca9716d3fd34093fc7298b2585e64a73" +babel-plugin-minify-constant-folding@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-constant-folding/-/babel-plugin-minify-constant-folding-0.5.0.tgz#f84bc8dbf6a561e5e350ff95ae216b0ad5515b6e" + integrity sha512-Vj97CTn/lE9hR1D+jKUeHfNy+m1baNiJ1wJvoGyOBUx7F7kJqDZxr9nCHjO/Ad+irbR3HzR6jABpSSA29QsrXQ== dependencies: - babel-helper-evaluate-path "^0.5.0-alpha.e9f96ffe" + babel-helper-evaluate-path "^0.5.0" -babel-plugin-minify-dead-code-elimination@^0.5.0-alpha.3cc09dcf: - version "0.5.0-alpha.e9f96ffe" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-dead-code-elimination/-/babel-plugin-minify-dead-code-elimination-0.5.0-alpha.e9f96ffe.tgz#1f450f52831ede977e0cbcc23d4909aba31e8255" +babel-plugin-minify-dead-code-elimination@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-dead-code-elimination/-/babel-plugin-minify-dead-code-elimination-0.5.0.tgz#d23ef5445238ad06e8addf5c1cf6aec835bcda87" + integrity sha512-XQteBGXlgEoAKc/BhO6oafUdT4LBa7ARi55mxoyhLHNuA+RlzRmeMAfc31pb/UqU01wBzRc36YqHQzopnkd/6Q== dependencies: - babel-helper-evaluate-path "^0.5.0-alpha.e9f96ffe" - babel-helper-mark-eval-scopes "^0.5.0-alpha.e9f96ffe" - babel-helper-remove-or-void "^0.5.0-alpha.e9f96ffe" + babel-helper-evaluate-path "^0.5.0" + babel-helper-mark-eval-scopes "^0.4.3" + babel-helper-remove-or-void "^0.4.3" lodash.some "^4.6.0" -babel-plugin-minify-flip-comparisons@^0.5.0-alpha.3cc09dcf: - version "0.5.0-alpha.e9f96ffe" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-flip-comparisons/-/babel-plugin-minify-flip-comparisons-0.5.0-alpha.e9f96ffe.tgz#a0443772d1e0b8c6c06499cf9ac27979519a3bd4" +babel-plugin-minify-flip-comparisons@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-flip-comparisons/-/babel-plugin-minify-flip-comparisons-0.4.3.tgz#00ca870cb8f13b45c038b3c1ebc0f227293c965a" + integrity sha1-AMqHDLjxO0XAOLPB68DyJyk8llo= dependencies: - babel-helper-is-void-0 "^0.5.0-alpha.e9f96ffe" + babel-helper-is-void-0 "^0.4.3" -babel-plugin-minify-guarded-expressions@^0.5.0-alpha.3cc09dcf: - version "0.5.0-alpha.e9f96ffe" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-guarded-expressions/-/babel-plugin-minify-guarded-expressions-0.5.0-alpha.e9f96ffe.tgz#48a9040c4863ce079840f1f7c7b80b9056bc20a7" +babel-plugin-minify-guarded-expressions@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-guarded-expressions/-/babel-plugin-minify-guarded-expressions-0.4.3.tgz#cc709b4453fd21b1f302877444c89f88427ce397" + integrity sha1-zHCbRFP9IbHzAod0RMifiEJ845c= dependencies: - babel-helper-flip-expressions "^0.5.0-alpha.e9f96ffe" + babel-helper-flip-expressions "^0.4.3" -babel-plugin-minify-infinity@^0.5.0-alpha.3cc09dcf: - version "0.5.0-alpha.e9f96ffe" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-infinity/-/babel-plugin-minify-infinity-0.5.0-alpha.e9f96ffe.tgz#1eff5cf31e4400202a53ebb90f28083c4d0d06bc" +babel-plugin-minify-infinity@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-infinity/-/babel-plugin-minify-infinity-0.4.3.tgz#dfb876a1b08a06576384ef3f92e653ba607b39ca" + integrity sha1-37h2obCKBldjhO8/kuZTumB7Oco= -babel-plugin-minify-mangle-names@^0.5.0-alpha.3cc09dcf: - version "0.5.0-alpha.e9f96ffe" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-mangle-names/-/babel-plugin-minify-mangle-names-0.5.0-alpha.e9f96ffe.tgz#9867fa057f90ed81bfc7668730f3fb323918bccc" +babel-plugin-minify-mangle-names@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-mangle-names/-/babel-plugin-minify-mangle-names-0.5.0.tgz#bcddb507c91d2c99e138bd6b17a19c3c271e3fd3" + integrity sha512-3jdNv6hCAw6fsX1p2wBGPfWuK69sfOjfd3zjUXkbq8McbohWy23tpXfy5RnToYWggvqzuMOwlId1PhyHOfgnGw== dependencies: - babel-helper-mark-eval-scopes "^0.5.0-alpha.e9f96ffe" + babel-helper-mark-eval-scopes "^0.4.3" -babel-plugin-minify-numeric-literals@^0.5.0-alpha.3cc09dcf: - version "0.5.0-alpha.e9f96ffe" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-numeric-literals/-/babel-plugin-minify-numeric-literals-0.5.0-alpha.e9f96ffe.tgz#07be5d3fed33f2d740a706a14b24439161c840ee" +babel-plugin-minify-numeric-literals@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-numeric-literals/-/babel-plugin-minify-numeric-literals-0.4.3.tgz#8e4fd561c79f7801286ff60e8c5fd9deee93c0bc" + integrity sha1-jk/VYcefeAEob/YOjF/Z3u6TwLw= -babel-plugin-minify-replace@^0.5.0-alpha.3cc09dcf: - version "0.5.0-alpha.e9f96ffe" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-replace/-/babel-plugin-minify-replace-0.5.0-alpha.e9f96ffe.tgz#8ecdeb5e6860279e6406381a82c612b389435957" +babel-plugin-minify-replace@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-replace/-/babel-plugin-minify-replace-0.5.0.tgz#d3e2c9946c9096c070efc96761ce288ec5c3f71c" + integrity sha512-aXZiaqWDNUbyNNNpWs/8NyST+oU7QTpK7J9zFEFSA0eOmtUNMU3fczlTTTlnCxHmq/jYNFEmkkSG3DDBtW3Y4Q== -babel-plugin-minify-simplify@^0.5.0-alpha.3cc09dcf: - version "0.5.0-alpha.e9f96ffe" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-simplify/-/babel-plugin-minify-simplify-0.5.0-alpha.e9f96ffe.tgz#5d027f8cf4d82330c2021ffa4fac44c0ec806d24" +babel-plugin-minify-simplify@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-simplify/-/babel-plugin-minify-simplify-0.5.0.tgz#1f090018afb90d8b54d3d027fd8a4927f243da6f" + integrity sha512-TM01J/YcKZ8XIQd1Z3nF2AdWHoDsarjtZ5fWPDksYZNsoOjQ2UO2EWm824Ym6sp127m44gPlLFiO5KFxU8pA5Q== dependencies: - babel-helper-flip-expressions "^0.5.0-alpha.e9f96ffe" + babel-helper-flip-expressions "^0.4.3" babel-helper-is-nodes-equiv "^0.0.1" - babel-helper-to-multiple-sequence-expressions "^0.5.0-alpha.e9f96ffe" + babel-helper-to-multiple-sequence-expressions "^0.5.0" -babel-plugin-minify-type-constructors@^0.5.0-alpha.3cc09dcf: - version "0.5.0-alpha.e9f96ffe" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-type-constructors/-/babel-plugin-minify-type-constructors-0.5.0-alpha.e9f96ffe.tgz#116b76e4b4953c89f2c836769eec9464643e6b46" +babel-plugin-minify-type-constructors@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-type-constructors/-/babel-plugin-minify-type-constructors-0.4.3.tgz#1bc6f15b87f7ab1085d42b330b717657a2156500" + integrity sha1-G8bxW4f3qxCF1CszC3F2V6IVZQA= dependencies: - babel-helper-is-void-0 "^0.5.0-alpha.e9f96ffe" + babel-helper-is-void-0 "^0.4.3" -babel-plugin-react-docgen@^2.0.0-babel7.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/babel-plugin-react-docgen/-/babel-plugin-react-docgen-2.0.0.tgz#039d90f5a1a37131c8cc3015017eecafa8d78882" +babel-plugin-named-asset-import@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.1.tgz#5ec13ec446d0a1e5bb6c57a1f94c9cdedb0c50d6" + integrity sha512-vzZlo+yEB5YHqI6CRRTDojeT43J3Wf3C/MVkZW5UlbSeIIVUYRKtxaFT2L/VTv9mbIyatCW39+9g/SZolvwRUQ== + +babel-plugin-react-docgen@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/babel-plugin-react-docgen/-/babel-plugin-react-docgen-2.0.2.tgz#3307e27414c370365710576b7fadbcaf8984d862" + integrity sha512-fFendfUUU2KqqE1ki2NyQoZm4uHPoEWPUgBZiPBiowcPZos+4q+chdQh0nlwY5hxs08AMHSH4Pp98RQL0VFS/g== dependencies: lodash "^4.17.10" - react-docgen "^3.0.0-rc.1" + react-docgen "^3.0.0" + recast "^0.14.7" babel-plugin-syntax-jsx@^6.18.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-transform-inline-consecutive-adds@^0.5.0-alpha.3cc09dcf: - version "0.5.0-alpha.e9f96ffe" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-inline-consecutive-adds/-/babel-plugin-transform-inline-consecutive-adds-0.5.0-alpha.e9f96ffe.tgz#d485c6ca183e15e865fec5731aadc831e2083022" +babel-plugin-transform-inline-consecutive-adds@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-inline-consecutive-adds/-/babel-plugin-transform-inline-consecutive-adds-0.4.3.tgz#323d47a3ea63a83a7ac3c811ae8e6941faf2b0d1" + integrity sha1-Mj1Ho+pjqDp6w8gRro5pQfrysNE= -babel-plugin-transform-member-expression-literals@^6.10.0-alpha.3cc09dcf: - version "6.10.0-alpha.f95869d4" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-member-expression-literals/-/babel-plugin-transform-member-expression-literals-6.10.0-alpha.f95869d4.tgz#272ebd2a2d4341b86c24dcd84374ae5aa3702874" +babel-plugin-transform-member-expression-literals@^6.9.4: + version "6.9.4" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-member-expression-literals/-/babel-plugin-transform-member-expression-literals-6.9.4.tgz#37039c9a0c3313a39495faac2ff3a6b5b9d038bf" + integrity sha1-NwOcmgwzE6OUlfqsL/OmtbnQOL8= -babel-plugin-transform-merge-sibling-variables@^6.10.0-alpha.3cc09dcf: - version "6.10.0-alpha.f95869d4" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-merge-sibling-variables/-/babel-plugin-transform-merge-sibling-variables-6.10.0-alpha.f95869d4.tgz#48a330d28293e318d07175c260c74859e7398b43" +babel-plugin-transform-merge-sibling-variables@^6.9.4: + version "6.9.4" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-merge-sibling-variables/-/babel-plugin-transform-merge-sibling-variables-6.9.4.tgz#85b422fc3377b449c9d1cde44087203532401dae" + integrity sha1-hbQi/DN3tEnJ0c3kQIcgNTJAHa4= -babel-plugin-transform-minify-booleans@^6.10.0-alpha.3cc09dcf: - version "6.10.0-alpha.f95869d4" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-minify-booleans/-/babel-plugin-transform-minify-booleans-6.10.0-alpha.f95869d4.tgz#1deef69c22135038a91de1f5d13d759e3464c43c" +babel-plugin-transform-minify-booleans@^6.9.4: + version "6.9.4" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-minify-booleans/-/babel-plugin-transform-minify-booleans-6.9.4.tgz#acbb3e56a3555dd23928e4b582d285162dd2b198" + integrity sha1-rLs+VqNVXdI5KOS1gtKFFi3SsZg= -babel-plugin-transform-property-literals@^6.10.0-alpha.3cc09dcf: - version "6.10.0-alpha.f95869d4" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-property-literals/-/babel-plugin-transform-property-literals-6.10.0-alpha.f95869d4.tgz#37127aaa04125c3d08bf95cdb5a8f1d2e44ca453" +babel-plugin-transform-property-literals@^6.9.4: + version "6.9.4" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-property-literals/-/babel-plugin-transform-property-literals-6.9.4.tgz#98c1d21e255736573f93ece54459f6ce24985d39" + integrity sha1-mMHSHiVXNlc/k+zlRFn2ziSYXTk= dependencies: esutils "^2.0.2" -babel-plugin-transform-regexp-constructors@^0.5.0-alpha.3cc09dcf: - version "0.5.0-alpha.e9f96ffe" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-regexp-constructors/-/babel-plugin-transform-regexp-constructors-0.5.0-alpha.e9f96ffe.tgz#8d7a283d3bd1645018dbce73e7e3846a68267e66" - -babel-plugin-transform-remove-console@^6.10.0-alpha.3cc09dcf: - version "6.10.0-alpha.f95869d4" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-console/-/babel-plugin-transform-remove-console-6.10.0-alpha.f95869d4.tgz#c5717af9f76918b2821cfaef44d8245d4ea9422c" - -babel-plugin-transform-remove-debugger@^6.10.0-alpha.3cc09dcf: - version "6.10.0-alpha.f95869d4" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-debugger/-/babel-plugin-transform-remove-debugger-6.10.0-alpha.f95869d4.tgz#1fc35c29c7c0878cf30e558a733651906e888e44" - -babel-plugin-transform-remove-undefined@^0.5.0-alpha.3cc09dcf: - version "0.5.0-alpha.e9f96ffe" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-undefined/-/babel-plugin-transform-remove-undefined-0.5.0-alpha.e9f96ffe.tgz#39f694ee66e3edeb99e2ed4155cf5fb7ac991384" - dependencies: - babel-helper-evaluate-path "^0.5.0-alpha.e9f96ffe" - -babel-plugin-transform-simplify-comparison-operators@^6.10.0-alpha.3cc09dcf: - version "6.10.0-alpha.f95869d4" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-simplify-comparison-operators/-/babel-plugin-transform-simplify-comparison-operators-6.10.0-alpha.f95869d4.tgz#f5499a6dc3ed686bda53363866b67dda774c5bed" - -babel-plugin-transform-undefined-to-void@^6.10.0-alpha.3cc09dcf: - version "6.10.0-alpha.f95869d4" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-undefined-to-void/-/babel-plugin-transform-undefined-to-void-6.10.0-alpha.f95869d4.tgz#175a1a3090e616403f8c819cdcea1aecb66523b2" - -babel-preset-minify@canary: - version "0.5.0-alpha.3cc09dcf" - resolved "https://registry.yarnpkg.com/babel-preset-minify/-/babel-preset-minify-0.5.0-alpha.3cc09dcf.tgz#d2f58065ea977d9453f3538e22ea83adff73292b" - dependencies: - babel-plugin-minify-builtins "^0.5.0-alpha.3cc09dcf" - babel-plugin-minify-constant-folding "^0.5.0-alpha.3cc09dcf" - babel-plugin-minify-dead-code-elimination "^0.5.0-alpha.3cc09dcf" - babel-plugin-minify-flip-comparisons "^0.5.0-alpha.3cc09dcf" - babel-plugin-minify-guarded-expressions "^0.5.0-alpha.3cc09dcf" - babel-plugin-minify-infinity "^0.5.0-alpha.3cc09dcf" - babel-plugin-minify-mangle-names "^0.5.0-alpha.3cc09dcf" - babel-plugin-minify-numeric-literals "^0.5.0-alpha.3cc09dcf" - babel-plugin-minify-replace "^0.5.0-alpha.3cc09dcf" - babel-plugin-minify-simplify "^0.5.0-alpha.3cc09dcf" - babel-plugin-minify-type-constructors "^0.5.0-alpha.3cc09dcf" - babel-plugin-transform-inline-consecutive-adds "^0.5.0-alpha.3cc09dcf" - babel-plugin-transform-member-expression-literals "^6.10.0-alpha.3cc09dcf" - babel-plugin-transform-merge-sibling-variables "^6.10.0-alpha.3cc09dcf" - babel-plugin-transform-minify-booleans "^6.10.0-alpha.3cc09dcf" - babel-plugin-transform-property-literals "^6.10.0-alpha.3cc09dcf" - babel-plugin-transform-regexp-constructors "^0.5.0-alpha.3cc09dcf" - babel-plugin-transform-remove-console "^6.10.0-alpha.3cc09dcf" - babel-plugin-transform-remove-debugger "^6.10.0-alpha.3cc09dcf" - babel-plugin-transform-remove-undefined "^0.5.0-alpha.3cc09dcf" - babel-plugin-transform-simplify-comparison-operators "^6.10.0-alpha.3cc09dcf" - babel-plugin-transform-undefined-to-void "^6.10.0-alpha.3cc09dcf" - lodash.isplainobject "^4.0.6" +babel-plugin-transform-react-remove-prop-types@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz#f2edaf9b4c6a5fbe5c1d678bfb531078c1555f3a" + integrity sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA== -babel-register@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" - dependencies: - 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-plugin-transform-regexp-constructors@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-regexp-constructors/-/babel-plugin-transform-regexp-constructors-0.4.3.tgz#58b7775b63afcf33328fae9a5f88fbd4fb0b4965" + integrity sha1-WLd3W2OvzzMyj66aX4j71PsLSWU= -babel-runtime@6.x.x, babel-runtime@^6.11.6, babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.23.0, babel-runtime@^6.26.0, babel-runtime@^6.5.0, babel-runtime@^6.9.2: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" +babel-plugin-transform-remove-console@^6.9.4: + version "6.9.4" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-console/-/babel-plugin-transform-remove-console-6.9.4.tgz#b980360c067384e24b357a588d807d3c83527780" + integrity sha1-uYA2DAZzhOJLNXpYjYB9PINSd4A= -babel-template@^6.24.1, babel-template@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" - dependencies: - babel-runtime "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - lodash "^4.17.4" +babel-plugin-transform-remove-debugger@^6.9.4: + version "6.9.4" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-debugger/-/babel-plugin-transform-remove-debugger-6.9.4.tgz#42b727631c97978e1eb2d199a7aec84a18339ef2" + integrity sha1-QrcnYxyXl44estGZp67IShgznvI= -babel-traverse@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" +babel-plugin-transform-remove-undefined@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-undefined/-/babel-plugin-transform-remove-undefined-0.5.0.tgz#80208b31225766c630c97fa2d288952056ea22dd" + integrity sha512-+M7fJYFaEE/M9CXa0/IRkDbiV3wRELzA1kKQFCJ4ifhrzLKn/9VCCgj9OFmYWwBd8IB48YdgPkHYtbYq+4vtHQ== dependencies: - 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-helper-evaluate-path "^0.5.0" + +babel-plugin-transform-simplify-comparison-operators@^6.9.4: + version "6.9.4" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-simplify-comparison-operators/-/babel-plugin-transform-simplify-comparison-operators-6.9.4.tgz#f62afe096cab0e1f68a2d753fdf283888471ceb9" + integrity sha1-9ir+CWyrDh9ootdT/fKDiIRxzrk= + +babel-plugin-transform-undefined-to-void@^6.9.4: + version "6.9.4" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-undefined-to-void/-/babel-plugin-transform-undefined-to-void-6.9.4.tgz#be241ca81404030678b748717322b89d0c8fe280" + integrity sha1-viQcqBQEAwZ4t0hxcyK4nQyP4oA= + +"babel-preset-minify@^0.5.0 || 0.6.0-alpha.5": + version "0.5.0" + resolved "https://registry.yarnpkg.com/babel-preset-minify/-/babel-preset-minify-0.5.0.tgz#e25bb8d3590087af02b650967159a77c19bfb96b" + integrity sha512-xj1s9Mon+RFubH569vrGCayA9Fm2GMsCgDRm1Jb8SgctOB7KFcrVc2o8K3YHUyMz+SWP8aea75BoS8YfsXXuiA== + dependencies: + babel-plugin-minify-builtins "^0.5.0" + babel-plugin-minify-constant-folding "^0.5.0" + babel-plugin-minify-dead-code-elimination "^0.5.0" + babel-plugin-minify-flip-comparisons "^0.4.3" + babel-plugin-minify-guarded-expressions "^0.4.3" + babel-plugin-minify-infinity "^0.4.3" + babel-plugin-minify-mangle-names "^0.5.0" + babel-plugin-minify-numeric-literals "^0.4.3" + babel-plugin-minify-replace "^0.5.0" + babel-plugin-minify-simplify "^0.5.0" + babel-plugin-minify-type-constructors "^0.4.3" + babel-plugin-transform-inline-consecutive-adds "^0.4.3" + babel-plugin-transform-member-expression-literals "^6.9.4" + babel-plugin-transform-merge-sibling-variables "^6.9.4" + babel-plugin-transform-minify-booleans "^6.9.4" + babel-plugin-transform-property-literals "^6.9.4" + babel-plugin-transform-regexp-constructors "^0.4.3" + babel-plugin-transform-remove-console "^6.9.4" + babel-plugin-transform-remove-debugger "^6.9.4" + babel-plugin-transform-remove-undefined "^0.5.0" + babel-plugin-transform-simplify-comparison-operators "^6.9.4" + babel-plugin-transform-undefined-to-void "^6.9.4" + lodash.isplainobject "^4.0.6" -babel-types@^6.26.0: +babel-preset-react-app@^7.0.0: + version "7.0.2" + resolved "https://registry.yarnpkg.com/babel-preset-react-app/-/babel-preset-react-app-7.0.2.tgz#d01ae973edc93b9f1015cb0236dd55889a584308" + integrity sha512-mwCk/u2wuiO8qQqblN5PlDa44taY0acq7hw6W+a70W522P7a9mIcdggL1fe5/LgAT7tqCq46q9wwhqaMoYKslQ== + dependencies: + "@babel/core" "7.2.2" + "@babel/plugin-proposal-class-properties" "7.3.0" + "@babel/plugin-proposal-decorators" "7.3.0" + "@babel/plugin-proposal-object-rest-spread" "7.3.2" + "@babel/plugin-syntax-dynamic-import" "7.2.0" + "@babel/plugin-transform-classes" "7.2.2" + "@babel/plugin-transform-destructuring" "7.3.2" + "@babel/plugin-transform-flow-strip-types" "7.2.3" + "@babel/plugin-transform-react-constant-elements" "7.2.0" + "@babel/plugin-transform-react-display-name" "7.2.0" + "@babel/plugin-transform-runtime" "7.2.0" + "@babel/preset-env" "7.3.1" + "@babel/preset-react" "7.0.0" + "@babel/preset-typescript" "7.1.0" + "@babel/runtime" "7.3.1" + babel-loader "8.0.5" + babel-plugin-dynamic-import-node "2.2.0" + babel-plugin-macros "2.5.0" + babel-plugin-transform-react-remove-prop-types "0.4.24" + +babel-runtime@^6.18.0, babel-runtime@^6.26.0: version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" + core-js "^2.4.0" + regenerator-runtime "^0.11.0" -babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" +bail@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.3.tgz#63cfb9ddbac829b02a3128cd53224be78e6c21a3" + integrity sha512-1X8CnjFVQ+a+KW36uBNMTU5s8+v5FzeqrP7hTG5aTb4aPreSbZJlhwPon9VKMuEVgV++JM+SQrALY3kr7eswdg== balanced-match@^1.0.0: version "1.0.0" @@ -1866,6 +2517,11 @@ big.js@^3.1.3: version "3.2.0" resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + binary-extensions@^1.0.0: version "1.11.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" @@ -1876,9 +2532,10 @@ block-stream@*: dependencies: inherits "~2.0.0" -bluebird@^3.5.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.2.tgz#1be0908e054a751754549c270489c1505d4ab15a" +bluebird@^3.3.5, bluebird@^3.5.3: + version "3.5.3" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.3.tgz#7d01c6f9616c9a51ab0f8c549a79dfe6ec33efa7" + integrity sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw== bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: version "4.11.8" @@ -1899,9 +2556,23 @@ body-parser@1.18.2: raw-body "2.3.2" type-is "~1.6.15" -bowser@^1.7.3: - version "1.9.4" - resolved "https://registry.yarnpkg.com/bowser/-/bowser-1.9.4.tgz#890c58a2813a9d3243704334fa81b96a5c150c9a" +boolbase@^1.0.0, boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + +boxen@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-2.1.0.tgz#8d576156e33fc26a34d6be8635fd16b1d745f0b2" + integrity sha512-luq3RQOt2U5sUX+fiu+qnT+wWnHDcATLpEe63jvge6GUZO99AKbVRfp97d2jgLvq1iQa0ORzaAm4lGVG52ZSlw== + dependencies: + ansi-align "^3.0.0" + camelcase "^5.0.0" + chalk "^2.4.1" + cli-boxes "^1.0.0" + string-width "^3.0.0" + term-size "^1.2.0" + widest-line "^2.0.0" brace-expansion@^1.1.7: version "1.1.11" @@ -1982,20 +2653,23 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@3.2.6: - version "3.2.6" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.6.tgz#138a44d04a9af64443679191d041f28ce5b965d5" +browserslist@4.4.1: + version "4.4.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.4.1.tgz#42e828954b6b29a7a53e352277be429478a69062" + integrity sha512-pEBxEXg7JwaakBXjATYw/D1YZh4QUSCX/Mnd/wnqSRPPSi1U39iDhDoKGoBUcraKdxDlrYqJxSI5nNvD+dWP2A== dependencies: - caniuse-lite "^1.0.30000830" - electron-to-chromium "^1.3.42" + caniuse-lite "^1.0.30000929" + electron-to-chromium "^1.3.103" + node-releases "^1.1.3" -browserslist@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.1.1.tgz#328eb4ff1215b12df6589e9ab82f8adaa4fc8cd6" +browserslist@^4.3.4, browserslist@^4.4.2, browserslist@^4.5.1: + version "4.5.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.5.2.tgz#36ad281f040af684555a23c780f5c2081c752df0" + integrity sha512-zmJVLiKLrzko0iszd/V4SsjTaomFeoVzQGYYOYgRgsbh7WNh95RgDB0CmBdFWYs/3MyFSt69NypjL/h3iaddKQ== dependencies: - caniuse-lite "^1.0.30000884" - electron-to-chromium "^1.3.62" - node-releases "^1.0.0-alpha.11" + caniuse-lite "^1.0.30000951" + electron-to-chromium "^1.3.116" + node-releases "^1.1.11" buffer-from@^1.0.0: version "1.1.1" @@ -2025,22 +2699,24 @@ 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 "https://registry.yarnpkg.com/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" +cacache@^11.0.2: + version "11.3.2" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.2.tgz#2d81e308e3d258ca38125b676b98b2ac9ce69bfa" + integrity sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg== + dependencies: + bluebird "^3.5.3" + chownr "^1.1.1" + figgy-pudding "^3.5.1" + glob "^7.1.3" + graceful-fs "^4.1.15" + lru-cache "^5.1.1" + mississippi "^3.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" + ssri "^6.0.1" + unique-filename "^1.1.1" y18n "^4.0.0" cache-base@^1.0.1: @@ -2061,6 +2737,33 @@ 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" + integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= + dependencies: + callsites "^2.0.0" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= + dependencies: + caller-callsite "^2.0.0" + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= + +camel-case@3.0.x: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" + integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M= + dependencies: + 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" @@ -2076,31 +2779,40 @@ camelcase@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" -camelcase@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" +camelcase@^5.0.0, camelcase@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.2.0.tgz#e7522abda5ed94cc0489e1b8466610e88404cf45" + integrity sha512-IXFsBS2pC+X0j0N/GE7Dm7j3bsEBp+oTpb7F50dwEVX7rf3IgwO9XatnegTsDtniKCUtEJH4fSU6Asw7uoVLfQ== -caniuse-lite@^1.0.30000830, caniuse-lite@^1.0.30000884: - version "1.0.30000885" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000885.tgz#e889e9f8e7e50e769f2a49634c932b8aee622984" +caniuse-lite@^1.0.30000929, caniuse-lite@^1.0.30000947, caniuse-lite@^1.0.30000951: + version "1.0.30000951" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000951.tgz#c7c2fd4d71080284c8677dd410368df8d83688fe" + integrity sha512-eRhP+nQ6YUkIcNQ6hnvdhMkdc7n3zadog0KXNRxAZTT2kHjUb1yGn71OrPhSn8MOvlX97g5CR97kGVj8fMsXWg== -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" +case-sensitive-paths-webpack-plugin@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.2.0.tgz#3371ef6365ef9c25fa4b81c16ace0e9c7dc58c3e" + integrity sha512-u5ElzokS8A1pm9vM3/iDgTcI3xqHxuCao94Oz8etI3cf0Tio0p8izkDYbTIn09uP3yUUr6+veaE6IkjnTYS46g== caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" -chalk@2.4.1, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" +ccount@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.0.3.tgz#f1cec43f332e2ea5a569fd46f9f5bde4e6102aff" + integrity sha512-Jt9tIBkRc9POUof7QA/VwWd+58fKkEEfI+/t1/eOlxKM7ZhrczNzMFefge7Ai+39y1pR/pP6cI19guHy3FSLmw== + +chalk@2.4.2, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== dependencies: ansi-styles "^3.2.1" escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^1.1.1, chalk@^1.1.3: +chalk@^1.1.1: version "1.1.3" resolved "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" dependencies: @@ -2110,6 +2822,19 @@ chalk@^1.1.1, 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.3.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" + integrity sha1-6LL+PX8at9aaMhma/5HqaTFAlRU= + character-entities-legacy@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.2.tgz#7c6defb81648498222c9855309953d05f4d63a9c" @@ -2122,14 +2847,19 @@ character-reference-invalid@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.2.tgz#21e421ad3d84055952dab4a43a04e73cd425d3ed" -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" +child-process-promise@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/child-process-promise/-/child-process-promise-2.2.1.tgz#4730a11ef610fad450b8f223c79d31d7bdad8074" + integrity sha1-RzChHvYQ+tRQuPIjx50x172tgHQ= + dependencies: + cross-spawn "^4.0.2" + node-version "^1.0.0" + promise-polyfill "^6.0.1" + chokidar@^2.0.2: version "2.0.4" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.4.tgz#356ff4e2b0e8e43e322d18a372460bbcf3accd26" @@ -2149,7 +2879,7 @@ 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" @@ -2179,12 +2909,34 @@ classnames@^2.2.5: version "2.2.6" resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" +clean-css@4.2.x: + version "4.2.1" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.1.tgz#2d411ef76b8569b6d0c84068dabe85b0aa5e5c17" + integrity sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g== + 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" + integrity sha1-T6kXw+WclKAEzWH47lCdplFocUM= + cli-cursor@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" dependencies: restore-cursor "^2.0.0" +cli-table3@0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz#0252372d94dfc40dbd8df06005f48f31f656f202" + integrity sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw== + dependencies: + object-assign "^4.1.0" + string-width "^2.1.1" + optionalDependencies: + colors "^1.1.2" + cli-width@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" @@ -2213,6 +2965,17 @@ cliui@^4.0.0: strip-ansi "^4.0.0" wrap-ansi "^2.0.0" +clone-deep@^0.2.4: + version "0.2.4" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-0.2.4.tgz#4e73dd09e9fb971cc38670c5dced9c1896481cc6" + integrity sha1-TnPdCen7lxzDhnDF3O2cGJZIHMY= + dependencies: + 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-deep@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-2.0.2.tgz#00db3a1e173656730d1188c3d6aced6d7ea97713" @@ -2226,6 +2989,15 @@ co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" +coa@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" + integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== + dependencies: + "@types/q" "^1.5.1" + chalk "^2.4.1" + q "^1.1.2" + code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" @@ -2247,7 +3019,12 @@ color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" -combined-stream@1.0.6, combined-stream@~1.0.5, combined-stream@~1.0.6: +colors@^1.1.2: + version "1.3.3" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.3.tgz#39e005d546afe01e01f9c4ca8fa50f686a01205d" + integrity sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg== + +combined-stream@1.0.6, combined-stream@~1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" dependencies: @@ -2259,13 +3036,15 @@ comma-separated-tokens@^1.0.0: dependencies: trim "0.0.1" -commander@^2.17.0, commander@^2.9.0: - version "2.18.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.18.0.tgz#2bf063ddee7c7891176981a2cc798e5754bc6970" +commander@2.17.x: + version "2.17.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" + integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== -commander@~2.13.0: - version "2.13.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" +commander@^2.19.0, commander@~2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" + integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== common-tags@^1.8.0: version "1.8.0" @@ -2296,6 +3075,14 @@ concat-stream@^1.5.0: readable-stream "^2.2.2" typedarray "^0.0.6" +config-chain@^1.1.12: + version "1.1.12" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" + integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + console-browserify@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" @@ -2353,14 +3140,39 @@ copy-to-clipboard@^3.0.8: dependencies: toggle-selection "^1.0.3" +core-js-compat@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.0.0.tgz#cd9810b8000742535a4a43773866185e310bd4f7" + integrity sha512-W/Ppz34uUme3LmXWjMgFlYyGnbo1hd9JvA0LNQ4EmieqVjg2GPYbj3H6tcdP2QGPGWdRKUqZVbVKLNIFVs/HiA== + dependencies: + browserslist "^4.5.1" + core-js "3.0.0" + core-js-pure "3.0.0" + semver "^5.6.0" + +core-js-pure@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.0.0.tgz#a5679adb4875427c8c0488afc93e6f5b7125859b" + integrity sha512-yPiS3fQd842RZDgo/TAKGgS0f3p2nxssF1H65DIZvZv0Od5CygP8puHXn3IQiM/39VAvgCbdaMQpresrbGgt9g== + +core-js@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.0.0.tgz#a8dbfa978d29bfc263bfb66c556d0ca924c28957" + integrity sha512-WBmxlgH2122EzEJ6GH8o9L/FeoUKxxxZ6q6VUxoTlsE4EvbTWKJb447eyVxTEuq0LpXjlq/kCB2qgBvsYRkLvQ== + 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.5.7: +core-js@^2.4.0, core-js@^2.5.7: version "2.5.7" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e" +core-js@^2.6.5: + version "2.6.5" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.5.tgz#44bc8d249e7fb2ff5d00e0341a7ffb94fbf67895" + integrity sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A== + 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" @@ -2382,6 +3194,17 @@ cosmiconfig@^5.0.5: js-yaml "^3.9.0" parse-json "^4.0.0" +cosmiconfig@^5.0.7: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.1.0.tgz#6c5c35e97f37f985061cdf653f114784231185cf" + integrity sha512-kCNPvthka8gvLtzAxQXvWo4FxqRB+ftRZyPZNuab5ngvM9Y7yw7hbEysglptLgpkGX9nAOKTBVkHUAe8xtYR6Q== + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.9.0" + lodash.get "^4.4.2" + parse-json "^4.0.0" + create-ecdh@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" @@ -2389,13 +3212,14 @@ create-ecdh@^4.0.0: bn.js "^4.1.0" elliptic "^6.0.0" -create-emotion@^9.2.6: - version "9.2.6" - resolved "https://registry.yarnpkg.com/create-emotion/-/create-emotion-9.2.6.tgz#f64cf1c64cf82fe7d22725d1d77498ddd2d39edb" +create-emotion@^9.2.12: + version "9.2.12" + resolved "https://registry.yarnpkg.com/create-emotion/-/create-emotion-9.2.12.tgz#0fc8e7f92c4f8bb924b0fef6781f66b1d07cb26f" + integrity sha512-P57uOF9NL2y98Xrbl2OuiDQUZ30GVmASsv5fbsjF4Hlraip2kyAvMm+2PoYUvFFw03Fhgtxk3RqZSm2/qHL9hA== dependencies: "@emotion/hash" "^0.6.2" "@emotion/memoize" "^0.6.1" - "@emotion/stylis" "^0.6.10" + "@emotion/stylis" "^0.7.0" "@emotion/unitless" "^0.6.2" csstype "^2.5.2" stylis "^3.5.0" @@ -2422,13 +3246,21 @@ 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, create-react-class@^15.6.2: - version "15.6.3" - resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.3.tgz#2d73237fb3f970ae6ebe011a9e66f46dbca80036" +create-react-context@<=0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/create-react-context/-/create-react-context-0.2.2.tgz#9836542f9aaa22868cd7d4a6f82667df38019dca" + integrity sha512-KkpaLARMhsTsgp0d2NA/R94F/eDLbhXERdIq3LvX2biCAXcDvHYoOqHfWCHf1+OLj+HKBotLG3KqaOOf+C1C+A== dependencies: - fbjs "^0.8.9" - loose-envify "^1.3.1" - object-assign "^4.1.1" + fbjs "^0.8.0" + gud "^1.0.0" + +create-react-context@^0.2.1: + version "0.2.3" + resolved "https://registry.yarnpkg.com/create-react-context/-/create-react-context-0.2.3.tgz#9ec140a6914a22ef04b8b09b7771de89567cb6f3" + integrity sha512-CQBmD0+QGgTaxDL3OX1IDXYqjkp2It4RIbcb99jS6AEg27Ga+a9G3JtK6SIu0HBwPLZlmwt9F7UwWA4Bn92Rag== + dependencies: + fbjs "^0.8.0" + gud "^1.0.0" cross-spawn@6.0.5, cross-spawn@^6.0.0, cross-spawn@^6.0.5: version "6.0.5" @@ -2447,6 +3279,23 @@ cross-spawn@^3.0.0: lru-cache "^4.0.1" which "^1.2.9" +cross-spawn@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41" + integrity sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE= + dependencies: + lru-cache "^4.0.1" + 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" + integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + crypto-browserify@^3.11.0: version "3.12.0" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" @@ -2463,46 +3312,95 @@ crypto-browserify@^3.11.0: randombytes "^2.0.0" randomfill "^1.0.3" -css-in-js-utils@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/css-in-js-utils/-/css-in-js-utils-2.0.1.tgz#3b472b398787291b47cfe3e44fecfdd9e914ba99" +css-loader@^2.1.0, css-loader@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-2.1.1.tgz#d8254f72e412bb2238bb44dd674ffbef497333ea" + integrity sha512-OcKJU/lt232vl1P9EEDamhoO9iKY3tIjY5GU+XDLblAykTdgs6Ux9P1hTHve8nFKy5KPpOXOsVI/hIwi3841+w== + dependencies: + camelcase "^5.2.0" + icss-utils "^4.1.0" + loader-utils "^1.2.3" + normalize-path "^3.0.0" + postcss "^7.0.14" + postcss-modules-extract-imports "^2.0.0" + postcss-modules-local-by-default "^2.0.6" + postcss-modules-scope "^2.1.0" + postcss-modules-values "^2.0.0" + postcss-value-parser "^3.3.0" + schema-utils "^1.0.0" + +css-select-base-adapter@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" + integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== + +css-select@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" + integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= dependencies: - hyphenate-style-name "^1.0.2" - isobject "^3.0.1" + boolbase "~1.0.0" + css-what "2.1" + domutils "1.5.1" + nth-check "~1.0.1" -css-loader@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-1.0.0.tgz#9f46aaa5ca41dbe31860e3b62b8e23c42916bf56" +css-select@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.0.2.tgz#ab4386cec9e1f668855564b17c3733b43b2a5ede" + integrity sha512-dSpYaDVoWaELjvZ3mS6IKZM/y2PMPa/XYoEfYNZePL4U/XgyxZNroHEHReDx/d+VgXh9VbCTtFqLkFbmeqeaRQ== dependencies: - babel-code-frame "^6.26.0" - css-selector-tokenizer "^0.7.0" - icss-utils "^2.1.0" - loader-utils "^1.0.2" - lodash.camelcase "^4.3.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" + 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" +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" + integrity sha512-joNNW1gCp3qFFzj4St6zk+Wh/NBv0vM5YbEreZk0SD4S23S+1xBKb6cLDg2uj4P4k/GUMlIm6cKIDqIG+vdt0w== dependencies: - cssesc "^0.1.0" - fastparse "^1.1.1" - regexpu-core "^1.0.0" + mdn-data "~1.1.0" + source-map "^0.5.3" -cssesc@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" +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" + integrity sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg== + dependencies: + mdn-data "~1.1.0" + source-map "^0.5.3" + +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" + integrity sha1-g4NCMMyfdMRX3lnuvRVD/uuDt+w= + +css-what@2.1, css-what@^2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" + integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +csso@^3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/csso/-/csso-3.5.1.tgz#7b9eb8be61628973c1b261e169d2f024008e758b" + integrity sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg== + dependencies: + css-tree "1.0.0-alpha.29" csstype@^2.2.0, csstype@^2.5.2: version "2.5.7" resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.5.7.tgz#bf9235d5872141eccfb2d16d82993c6b149179ff" +csstype@^2.5.7: + version "2.6.3" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.3.tgz#b701e5968245bf9b08d54ac83d00b624e622a9fa" + integrity sha512-rINUZXOkcBmoHWEyu7JdHu5JMzkGRoMX4ov9830WNgxf5UYxcBUO0QTKAqeJ5EZfSdlrcJYkC8WwfVW7JYi4yg== + currently-unhandled@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" @@ -2529,7 +3427,7 @@ date-now@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" -debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.6, debug@^2.6.8, debug@^2.6.9: +debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" dependencies: @@ -2541,17 +3439,30 @@ debug@^3.1.0: dependencies: ms "^2.1.1" -decamelize@^1.1.1, decamelize@^1.1.2: +debug@^3.2.5: + version "3.2.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== + dependencies: + ms "^2.1.1" + +debug@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + +decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0: 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" +decimal.js@10.1.1: + version "10.1.1" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.1.1.tgz#fb541922a2e8fc618f5e6fbb474e281ed3d2a64c" + integrity sha512-vEEgyk1fWVEnv7lPjkNedAIjzxQDue5Iw4FeX4UkNUDSVyD/jZTD0Bw2kAO7k6iyyJRAhM9oxxI0D1ET6k0Mmg== -decimal.js@10.0.1, decimal.js@^10.0.0: +decimal.js@^10.0.0: version "10.0.1" resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.0.1.tgz#d04b16b277f0f9af09671cee225c4882e8857c58" @@ -2559,19 +3470,20 @@ 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" -deep-equal@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" - deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" -deepmerge@^2.0.1, deepmerge@^2.1.1: +deep-object-diff@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/deep-object-diff/-/deep-object-diff-1.1.0.tgz#d6fabf476c2ed1751fc94d5ca693d2ed8c18bc5a" + integrity sha512-b+QLs5vHgS+IoSNcUE4n9HP2NwcHj7aqnJWsjPtuG75Rh5TOaGt0OjAYInh77d5T16V5cRDC+Pw/6ZZZiETBGw== + +deepmerge@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.1.1.tgz#e862b4e45ea0555072bf51e7fd0d9845170ae768" -define-properties@^1.1.2: +define-properties@^1.1.2, define-properties@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" dependencies: @@ -2627,11 +3539,10 @@ destroy@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" -detect-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" - dependencies: - repeating "^2.0.0" +detect-file@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" + integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= detect-libc@^1.0.2: version "1.0.3" @@ -2644,6 +3555,14 @@ detect-port-alt@1.1.6: address "^1.0.1" debug "^2.6.0" +detect-port@^1.2.3: + version "1.3.0" + resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.3.0.tgz#d9c40e9accadd4df5cac6a782aefd014d573d1f1" + integrity sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ== + dependencies: + address "^1.0.1" + debug "^2.6.0" + diffie-hellman@^5.0.0: version "5.0.3" resolved "http://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" @@ -2652,9 +3571,10 @@ diffie-hellman@^5.0.0: miller-rabin "^4.0.0" randombytes "^2.0.0" -dir-glob@^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" + integrity sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag== dependencies: arrify "^1.0.1" path-type "^3.0.0" @@ -2665,10 +3585,25 @@ doctrine@^2.0.0: dependencies: esutils "^2.0.2" +dom-converter@^0.2: + version "0.2.0" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" + integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== + dependencies: + utila "~0.4" + 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: + version "0.1.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" + integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== + dependencies: + domelementtype "^1.3.0" + entities "^1.1.1" + dom-walk@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018" @@ -2677,24 +3612,61 @@ 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.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domhandler@^2.3.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" + integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== + dependencies: + domelementtype "1" + +domutils@1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" + integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= + dependencies: + dom-serializer "0" + domelementtype "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" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + +dotenv-defaults@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/dotenv-defaults/-/dotenv-defaults-1.0.2.tgz#441cf5f067653fca4bbdce9dd3b803f6f84c585d" + integrity sha512-iXFvHtXl/hZPiFj++1hBg4lbKwGM+t/GlvELDnRtOFdjXyWP7mubkVr+eZGWG62kdsbulXAef6v/j6kiWc/xGA== + dependencies: + dotenv "^6.2.0" + dotenv-expand@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-4.2.0.tgz#def1f1ca5d6059d24a766e587942c21106ce1275" -dotenv-webpack@^1.5.7: - version "1.5.7" - resolved "https://registry.yarnpkg.com/dotenv-webpack/-/dotenv-webpack-1.5.7.tgz#c44395ab21d1fd28d79a90942a7b14b1debd145f" +dotenv-webpack@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/dotenv-webpack/-/dotenv-webpack-1.7.0.tgz#4384d8c57ee6f405c296278c14a9f9167856d3a1" + integrity sha512-wwNtOBW/6gLQSkb8p43y0Wts970A3xtNiG/mpwj9MLUhtPCQG6i+/DSXXoNN7fbPCU/vQ7JjwGmgOeGZSSZnsw== dependencies: - dotenv "^5.0.1" - -dotenv@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-5.0.1.tgz#a5317459bd3d79ab88cff6e44057a6a3fbb1fcef" + dotenv-defaults "^1.0.2" dotenv@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-6.0.0.tgz#24e37c041741c5f4b25324958ebbc34bca965935" +dotenv@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-6.2.0.tgz#941c0410535d942c8becf28d3f357dbd9d476064" + integrity sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w== + duplexer@^0.1.1: version "0.1.1" resolved "http://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" @@ -2715,6 +3687,16 @@ ecc-jsbn@~0.1.1: jsbn "~0.1.0" safer-buffer "^2.1.0" +editorconfig@^0.15.2: + version "0.15.3" + resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.15.3.tgz#bef84c4e75fb8dcb0ce5cee8efd51c15999befc5" + integrity sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g== + dependencies: + commander "^2.19.0" + lru-cache "^4.1.5" + semver "^5.6.0" + sigmund "^1.0.1" + ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -2723,9 +3705,10 @@ ejs@^2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.6.1.tgz#498ec0d495655abc6f23cd61868d926464071aa0" -electron-to-chromium@^1.3.42, electron-to-chromium@^1.3.62: - version "1.3.67" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.67.tgz#5e8f3ffac89b4b0402c7e1a565be06f3a109abbc" +electron-to-chromium@^1.3.103, electron-to-chromium@^1.3.116: + version "1.3.118" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.118.tgz#5c82b0445a40934e6cae9c2f40bfaaa986ea44a3" + integrity sha512-/1FpHvmKmKo2Z6CCza2HfkrKvKhU7Rq4nvyX1FOherdTrdTufhVrJbCrcrIqgqUCI+BG6JC2rlY4z5QA1G0NOw== elliptic@^6.0.0: version "6.4.1" @@ -2739,16 +3722,31 @@ elliptic@^6.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.0" +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" -emotion@^9.2.6, emotion@^9.2.8: - version "9.2.8" - resolved "https://registry.yarnpkg.com/emotion/-/emotion-9.2.8.tgz#b89e754be1a109f4e47ff0031928f94e40d7984a" +emotion-theming@^10.0.7: + version "10.0.9" + resolved "https://registry.yarnpkg.com/emotion-theming/-/emotion-theming-10.0.9.tgz#80e9fc40db8c46b466fcc11f3ae076f332933a4e" + integrity sha512-Z8fg5+5u62fOkZR9uCO9/TTxjTk5ieL/GIQgtRhi6WrZT++NAqY9u9GBUjbbJDWYkt6GIcy/S+m7yKaB+iGrDA== + dependencies: + "@emotion/weak-memoize" "0.2.2" + hoist-non-react-statics "^3.3.0" + object-assign "^4.1.1" + +emotion@^9.1.2: + version "9.2.12" + resolved "https://registry.yarnpkg.com/emotion/-/emotion-9.2.12.tgz#53925aaa005614e65c6e43db8243c843574d1ea9" + integrity sha512-hcx7jppaI8VoXxIWEhxpDW7I+B4kq9RNzQLmsrF6LY8BGKqe2N+gFAQr0EfuFucFlPs2A9HM4+xNj4NeqEWIOQ== dependencies: - babel-plugin-emotion "^9.2.8" - create-emotion "^9.2.6" + babel-plugin-emotion "^9.2.11" + create-emotion "^9.2.12" encodeurl@~1.0.2: version "1.0.2" @@ -2774,6 +3772,11 @@ enhanced-resolve@^4.0.0, enhanced-resolve@^4.1.0: memory-fs "^0.4.0" tapable "^1.0.0" +entities@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" + integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== + errno@^0.1.3, errno@~0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" @@ -2839,9 +3842,10 @@ escape-html@^1.0.3, escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" -escape-latex@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/escape-latex/-/escape-latex-1.1.1.tgz#657d8632af8849a5db8766778d4a43da9dec3376" +escape-latex@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/escape-latex/-/escape-latex-1.2.0.tgz#07c03818cf7dac250cce517f4fda1b001ef2bca1" + integrity sha512-nV5aVWW1K0wEiUIEdZ4erkGGH8mDxGyxSeqPzRNtWP7ataw+/olFObw7hujFWlVjNsaDFw5VZ5NzVSIqRgfTiw== escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" @@ -2876,19 +3880,21 @@ etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" +eventemitter3@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.0.tgz#090b4d6cdbd645ed10bf750d4b5407942d7ba163" + integrity sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA== + events@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" -events@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.0.0.tgz#9a0a0dfaf62893d92b875b8f2698ca4114973e88" - -eventsource@0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-0.1.6.tgz#0acede849ed7dd1ccc32c811bb11b944d4f29232" +eventsource@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0" + integrity sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ== dependencies: - original ">=0.0.5" + original "^1.0.0" evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: version "1.0.3" @@ -2909,6 +3915,19 @@ execa@^0.10.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" + integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= + dependencies: + 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" + exenv@^1.2.0: version "1.2.2" resolved "https://registry.yarnpkg.com/exenv/-/exenv-1.2.2.tgz#2ae78e85d9894158670b03d47bec1f03bd91bb9d" @@ -2979,19 +3998,12 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: assign-symbols "^1.0.0" is-extendable "^1.0.1" -extend@~3.0.1, extend@~3.0.2: +extend@^3.0.0, extend@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== -external-editor@^2.1.0: - version "2.2.0" - resolved "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" - dependencies: - chardet "^0.4.0" - iconv-lite "^0.4.17" - tmp "^0.0.33" - -external-editor@^3.0.0: +external-editor@^3.0.0, external-editor@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz#5866db29a97826dbe4bf3afd24070ead9ea43a27" dependencies: @@ -3043,25 +4055,23 @@ 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" -fastparse@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8" - fault@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/fault/-/fault-1.0.2.tgz#c3d0fec202f172a3a4d414042ad2bb5e2a3ffbaa" dependencies: format "^0.2.2" -faye-websocket@~0.11.0: +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= dependencies: websocket-driver ">=0.5.1" -fbjs@^0.8.9: +fbjs@^0.8.0, fbjs@^0.8.1: version "0.8.17" resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd" + integrity sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90= dependencies: core-js "^1.0.0" isomorphic-fetch "^2.1.1" @@ -3071,6 +4081,11 @@ fbjs@^0.8.9: setimmediate "^1.0.5" ua-parser-js "^0.7.18" +figgy-pudding@^3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" + integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w== + figures@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" @@ -3084,13 +4099,23 @@ file-loader@1.1.11: loader-utils "^1.0.2" schema-utils "^0.4.5" -file-loader@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-2.0.0.tgz#39749c82f020b9e85901dcff98e8004e6401cfde" +file-loader@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-3.0.1.tgz#f8e0ba0b599918b51adfe45d66d1e771ad560faa" + integrity sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw== dependencies: loader-utils "^1.0.2" schema-utils "^1.0.0" +file-system-cache@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/file-system-cache/-/file-system-cache-1.0.5.tgz#84259b36a2bbb8d3d6eb1021d3132ffe64cfff4f" + integrity sha1-hCWbNqK7uNPW6xAh0xMv/mTP/08= + dependencies: + bluebird "^3.3.5" + fs-extra "^0.30.0" + ramda "^0.21.0" + filesize@3.6.1: version "3.6.1" resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" @@ -3116,14 +4141,6 @@ finalhandler@1.1.1: statuses "~1.4.0" unpipe "~1.0.0" -find-cache-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" - dependencies: - commondir "^1.0.1" - 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" @@ -3132,22 +4149,17 @@ find-cache-dir@^2.0.0: make-dir "^1.0.0" pkg-dir "^3.0.0" -find-file-up@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/find-file-up/-/find-file-up-1.0.2.tgz#4d53664bc128cf793901497f4b13558d979755ca" - dependencies: - resolve-dir "^1.0.0" - -find-pkg@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/find-pkg/-/find-pkg-1.0.0.tgz#96db242e001c7c55025d32213302ea3aba677177" - dependencies: - find-file-up "^1.0.2" - find-root@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" +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" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + 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" @@ -3161,11 +4173,15 @@ find-up@^2.1.0: dependencies: locate-path "^2.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" +findup-sync@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-2.0.0.tgz#9326b1488c22d1a6088650a86901b2d9a90a2cbc" + integrity sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw= dependencies: - locate-path "^3.0.0" + detect-file "^1.0.0" + is-glob "^3.1.0" + micromatch "^3.0.4" + resolve-dir "^1.0.1" flush-write-stream@^1.0.0: version "1.0.3" @@ -3174,6 +4190,11 @@ flush-write-stream@^1.0.0: inherits "^2.0.1" readable-stream "^2.0.4" +focus-lock@^0.6.0: + version "0.6.2" + resolved "https://registry.yarnpkg.com/focus-lock/-/focus-lock-0.6.2.tgz#d8ac9dbc46250779789c3e6f43d978c7dfa59dcd" + integrity sha512-Wuq6TSOgsGQmzbpvinl1TcEw4BAUhD9T06myl5HvaBlO0geAz9ABtqBIqPkkNyO3AgPzEDazetL5hSRgj+2iqQ== + for-in@^0.1.3: version "0.1.8" resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1" @@ -3182,6 +4203,13 @@ 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.3: + version "0.1.5" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4= + 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" @@ -3192,7 +4220,7 @@ forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" -form-data@~2.3.1, form-data@~2.3.2: +form-data@~2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099" dependencies: @@ -3208,9 +4236,10 @@ forwarded@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" -fraction.js@4.0.9: - version "4.0.9" - resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.0.9.tgz#ef7aa1ad47ef600021ad7fa7991dfd56c3b5f7c8" +fraction.js@4.0.12: + version "4.0.12" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.0.12.tgz#0526d47c65a5fb4854df78bc77f7bec708d7b8c3" + integrity sha512-8Z1K0VTG4hzYY7kA/1sj4/r1/RWLBD3xwReT/RCrUCbzPszjNQCCsy3ktkU/eaEqX3MYa4pY37a52eiBlPMlhA== fragment-cache@^0.2.1: version "0.2.1" @@ -3229,6 +4258,26 @@ from2@^2.1.0: inherits "^2.0.1" readable-stream "^2.0.0" +fs-extra@^0.30.0: + version "0.30.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" + integrity sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A= + dependencies: + graceful-fs "^4.1.2" + jsonfile "^2.1.0" + klaw "^1.0.0" + path-is-absolute "^1.0.0" + rimraf "^2.2.8" + +fs-extra@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + 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" @@ -3276,9 +4325,10 @@ function.prototype.name@^1.1.0: function-bind "^1.1.1" is-callable "^1.1.3" -fuse.js@^3.0.1, fuse.js@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/fuse.js/-/fuse.js-3.2.1.tgz#6320cb94ce56ec9755c89ade775bcdbb0358d425" +fuzzy-search@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/fuzzy-search/-/fuzzy-search-3.0.1.tgz#14a4964508a9607d6e9a88818e7ff634108260b6" + integrity sha512-rjUvzdsMlOyarm0oD5k6zVQwgvt4Tb5Xe3YdIGU+Vogw54+ueAGPUTMU2B9jfPQEie5cD11i/S9J9d+MNBSQ3Q== gauge@~2.7.3: version "2.7.4" @@ -3299,10 +4349,6 @@ gaze@^1.0.0: dependencies: globule "^1.0.0" -generate-page-webpack-plugin@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/generate-page-webpack-plugin/-/generate-page-webpack-plugin-1.1.0.tgz#5940c9c6bdbfa03b1a4ef8f909875d5ebafbd3af" - 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" @@ -3336,9 +4382,10 @@ 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.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.2, glob@~7.1.1: +glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.2, glob@^7.1.3, glob@~7.1.1: version "7.1.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" + integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -3347,11 +4394,14 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.2, glob@~7.1.1: once "^1.3.0" path-is-absolute "^1.0.0" -global-modules-path@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/global-modules-path/-/global-modules-path-2.3.0.tgz#b0e2bac6beac39745f7db5c59d26a36a0b94f7dc" +global-modules@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" + integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== + dependencies: + global-prefix "^3.0.0" -global-modules@1.0.0, 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" dependencies: @@ -3369,6 +4419,15 @@ global-prefix@^1.0.1: is-windows "^1.0.1" which "^1.2.14" +global-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" + integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== + dependencies: + ini "^1.3.5" + kind-of "^6.0.2" + which "^1.3.1" + global@^4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f" @@ -3380,16 +4439,13 @@ globals@^11.1.0: version "11.7.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.7.0.tgz#a583faa43055b1aca771914bf68258e2fc125673" -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" +globby@8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-8.0.2.tgz#5697619ccd95c5275dbb2d6faa42087c1a941d8d" + integrity sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w== dependencies: array-union "^1.0.1" - dir-glob "^2.0.0" + dir-glob "2.0.0" fast-glob "^2.0.2" glob "^7.1.2" ignore "^3.3.5" @@ -3414,9 +4470,20 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.2: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" -gzip-size@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-4.1.0.tgz#8ae096257eabe7d69c45be2b67c448124ffb517c" +graceful-fs@^4.1.15, graceful-fs@^4.1.6, graceful-fs@^4.1.9: + version "4.1.15" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" + integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA== + +gud@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gud/-/gud-1.0.0.tgz#a489581b17e6a70beca9abe3ae57de7a499852c0" + integrity sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw== + +gzip-size@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.0.0.tgz#a55ecd99222f4c48fd8c01c625ce3b349d0a0e80" + integrity sha512-5iI7omclyqrnWw4XbXAmGhPsABkSIDQonv2K0h61lybgofWa6iZyvrI3r2zsJH4P8Nb64fFVzlvfhs0g7BBxAA== dependencies: duplexer "^0.1.1" pify "^3.0.0" @@ -3425,13 +4492,6 @@ har-schema@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" -har-validator@~5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd" - dependencies: - ajv "^5.1.0" - har-schema "^2.0.0" - har-validator@~5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.0.tgz#44657f5688a22cfd4b72486e81b3a3fb11742c29" @@ -3484,7 +4544,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: @@ -3504,6 +4564,17 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.1" +hast-util-from-parse5@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-5.0.0.tgz#a505a05766e0f96e389bfb0b1dd809eeefcef47b" + integrity sha512-A7ev5OseS/J15214cvDdcI62uwovJO2PB60Xhnq7kaxvvQRFDEccuqbkrFXU03GPBGopdPqlpQBRqIcDS/Fjbg== + dependencies: + ccount "^1.0.3" + hastscript "^5.0.0" + property-information "^5.0.0" + web-namespaces "^1.1.2" + xtend "^4.0.1" + hast-util-parse-selector@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-2.2.0.tgz#2175f18cdd697308fc3431d5c29a9e48dfa4817a" @@ -3517,10 +4588,37 @@ hastscript@^4.0.0: property-information "^4.0.0" space-separated-tokens "^1.0.0" +hastscript@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-5.0.0.tgz#fee10382c1bc4ba3f1be311521d368c047d2c43a" + integrity sha512-xJtuJ8D42Xtq5yJrnDg/KAIxl2cXBXKoiIJwmWX9XMf8113qHTGl/Bf7jEsxmENJ4w6q4Tfl8s/Y6mEZo8x8qw== + dependencies: + comma-separated-tokens "^1.0.0" + hast-util-parse-selector "^2.2.0" + property-information "^5.0.1" + space-separated-tokens "^1.0.0" + +he@1.2.x: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + highlight.js@~9.12.0: version "9.12.0" resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.12.0.tgz#e6d9dbe57cbefe60751f02af336195870c90c01e" +history@^4.7.2: + version "4.9.0" + resolved "https://registry.yarnpkg.com/history/-/history-4.9.0.tgz#84587c2068039ead8af769e9d6a6860a14fa1bca" + integrity sha512-H2DkjCjXf0Op9OAr6nJ56fcRkTSNrUiv41vNJ6IswJjif6wlpZK0BTfFbi7qK9dXLSYZxkq5lBsj3vUjlYBYZA== + dependencies: + "@babel/runtime" "^7.1.2" + loose-envify "^1.2.0" + resolve-pathname "^2.2.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + value-equal "^0.4.0" + hmac-drbg@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" @@ -3529,16 +4627,17 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -hoist-non-react-statics@1.x.x, hoist-non-react-statics@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz#aa448cf0986d55cc40773b17174b7dd066cb7cfb" +hoist-non-react-statics@^2.3.1: + version "2.5.5" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz#c5903cf409c0dfd908f388e619d86b9c1174cb47" + integrity sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw== -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" +hoist-non-react-statics@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.0.tgz#b09178f0122184fb95acf525daaecb4d8f45958b" + integrity sha512-0XsbTXxgiaCDYDIWFcwkmerZPSwywfUqYmwT4jzewKTQSWoE6FCMoUVOeBJWK3E/CrWbxRG3m5GzY4lnIwGRBA== dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.1" + react-is "^16.7.0" homedir-polyfill@^1.0.1: version "1.0.1" @@ -3554,6 +4653,43 @@ html-entities@^1.2.0: version "1.2.1" resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" +html-minifier@^3.5.20: + version "3.5.21" + resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.21.tgz#d0040e054730e354db008463593194015212d20c" + integrity sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA== + dependencies: + camel-case "3.0.x" + clean-css "4.2.x" + commander "2.17.x" + he "1.2.x" + param-case "2.1.x" + relateurl "0.2.x" + uglify-js "3.4.x" + +html-webpack-plugin@^4.0.0-beta.2: + version "4.0.0-beta.5" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-4.0.0-beta.5.tgz#2c53083c1151bfec20479b1f8aaf0039e77b5513" + integrity sha512-y5l4lGxOW3pz3xBTFdfB9rnnrWRPVxlAhX6nrBYIcW+2k2zC3mSp/3DxlWVCMBfnO6UAnoF8OcFn0IMy6kaKAQ== + dependencies: + html-minifier "^3.5.20" + loader-utils "^1.1.0" + lodash "^4.17.11" + pretty-error "^2.1.1" + tapable "^1.1.0" + util.promisify "1.0.0" + +htmlparser2@^3.3.0: + version "3.10.1" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" + integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== + dependencies: + domelementtype "^1.3.1" + domhandler "^2.3.0" + domutils "^1.5.1" + entities "^1.1.1" + inherits "^2.0.1" + readable-stream "^3.1.1" + http-errors@1.6.2: version "1.6.2" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" @@ -3588,15 +4724,11 @@ https-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" -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.17, iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13: +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: @@ -3606,11 +4738,12 @@ icss-replace-symbols@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" -icss-utils@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-2.1.0.tgz#83f0a0ec378bf3246178b6c2ad9136f135b1c962" +icss-utils@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.0.tgz#339dbbffb9f8729a243b701e1c29d4cc58c52f0e" + integrity sha512-3DEun4VOeMvSczifM3F2cKQrDQ5Pj6WKhkOq6HD4QTnDUAq8MQRxy5TX6Sy1iY6WPBe4gQ3p5vTECjbIkglkkQ== dependencies: - postcss "^6.0.1" + postcss "^7.0.14" ieee754@^1.1.4: version "1.1.12" @@ -3630,9 +4763,15 @@ ignore@^3.3.5: version "3.3.10" resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" -immutable@^3.8.1: - version "3.8.2" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3" +immer@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/immer/-/immer-1.10.0.tgz#bad67605ba9c810275d91e1c2a47d4582e98286d" + integrity sha512-O3sR1/opvCDGLEVcvrGTMtLac8GJ5IwZC4puPrLuRj3l7ICKvkmA0vGuU9OW8mV9WIBRnaxp5GJh9IEAaNOoYg== + +immer@^1.12.0: + version "1.12.1" + resolved "https://registry.yarnpkg.com/immer/-/immer-1.12.1.tgz#40c6e5b292c00560836c2993bda3a24379d466f5" + integrity sha512-3fmKM6ovaqDt0CdC9daXpNi5x/YCYS3i4cwLdTVkhJdk5jrDXoPs7lCm3IqM3yhfSnz4tjjxbRG2CziQ7m8ztg== import-cwd@^2.0.0: version "2.1.0" @@ -3640,17 +4779,26 @@ import-cwd@^2.0.0: 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" + integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= + 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-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" dependencies: resolve-from "^3.0.0" -import-local@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-1.0.0.tgz#5e4ffdc03f4fe6c009c6729beb29631c2f8227bc" +import-local@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" + integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== dependencies: - pkg-dir "^2.0.0" + pkg-dir "^3.0.0" resolve-cwd "^2.0.0" imurmurhash@^0.1.4: @@ -3667,6 +4815,11 @@ indent-string@^2.1.0: 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" + integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= + indexof@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" @@ -3686,60 +4839,61 @@ inherits@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" -ini@^1.3.4, ini@~1.3.0: +ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: version "1.3.5" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" -inline-style-prefixer@^3.0.6: - version "3.0.8" - resolved "https://registry.yarnpkg.com/inline-style-prefixer/-/inline-style-prefixer-3.0.8.tgz#8551b8e5b4d573244e66a34b04f7d32076a2b534" - dependencies: - bowser "^1.7.3" - css-in-js-utils "^2.0.0" - -inquirer@5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-5.1.0.tgz#19da508931892328abbbdd4c477f1efc65abfd67" +inquirer@6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.1.tgz#9943fc4882161bdb0b0c9276769c75b32dbfcd52" + integrity sha512-088kl3DRT2dLU5riVMKKr1DlImd6X7smDhpXUCkJDCKvTEJeRiXh0G132HG9u5a+6Ylw9plFRY7RuTnwohYSpg== dependencies: ansi-escapes "^3.0.0" chalk "^2.0.0" cli-cursor "^2.1.0" cli-width "^2.0.0" - external-editor "^2.1.0" + 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" - rxjs "^5.5.2" + rxjs "^6.1.0" string-width "^2.1.0" - strip-ansi "^4.0.0" + strip-ansi "^5.0.0" through "^2.3.6" -inquirer@^6.0.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.0.tgz#51adcd776f661369dc1e894859c2560a224abdd8" +inquirer@^6.2.0: + version "6.2.2" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.2.tgz#46941176f65c9eb20804627149b743a218f25406" + integrity sha512-Z2rREiXA6cHRR9KBOarR3WuLlFzlIfAEIiB45ll5SSadMg7WqOh1MKEjjndfuH5ewXdixWCxqnVfGOQzPeiztA== dependencies: - ansi-escapes "^3.0.0" - chalk "^2.0.0" + ansi-escapes "^3.2.0" + chalk "^2.4.2" cli-cursor "^2.1.0" cli-width "^2.0.0" - external-editor "^3.0.0" + external-editor "^3.0.3" figures "^2.0.0" - lodash "^4.17.10" + lodash "^4.17.11" mute-stream "0.0.7" run-async "^2.2.0" - rxjs "^6.1.0" + rxjs "^6.4.0" string-width "^2.1.0" - strip-ansi "^4.0.0" + strip-ansi "^5.0.0" through "^2.3.6" interpret@^1.0.0, interpret@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" -invariant@^2.2.2: +interpret@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" + integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== + +invariant@^2.2.2, invariant@^2.2.3, invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== dependencies: loose-envify "^1.0.0" @@ -3751,6 +4905,11 @@ invert-kv@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" +ip@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= + ipaddr.js@1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.0.tgz#eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e" @@ -3788,10 +4947,15 @@ is-binary-path@^1.0.0: dependencies: binary-extensions "^1.0.0" -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" +is-buffer@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.3.tgz#4ecf3fcf749cbd1e472689e109ac66261a25e725" + integrity sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw== + is-builtin-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" @@ -3876,6 +5040,11 @@ 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" + integrity sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU= + is-glob@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" @@ -3898,6 +5067,11 @@ is-number@^3.0.0: dependencies: kind-of "^3.0.2" +is-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + 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" @@ -3914,9 +5088,10 @@ is-regex@^1.0.4: dependencies: has "^1.0.1" -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" + integrity sha512-F/pJIk8QD6OX5DNhRB7hWamLsUilmkDGho48KbgZ6xg/lmAZXHxzXQ91jzB3yRSw5kdQGGGc4yz8HYhTYIMWPg== is-stream@^1.0.1, is-stream@^1.1.0: version "1.1.0" @@ -3926,6 +5101,13 @@ is-symbol@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" +is-symbol@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" + integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== + dependencies: + has-symbols "^1.0.0" + is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" @@ -3979,18 +5161,33 @@ js-base64@^2.1.8: version "2.4.9" resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.9.tgz#748911fb04f48a60c4771b375cac45a80df11c03" +js-beautify@^1.8.9: + version "1.9.0" + resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.9.0.tgz#2562fcdee340f9f962ae2ec4a8a40e7aaa6d964f" + integrity sha512-P0skmY4IDjfLiVrx+GLDeme8w5G0R1IGXgccVU5HP2VM3lRblH7qN2LTea5vZAxrDjpZBD0Jv+ahpjwVcbz/rw== + dependencies: + config-chain "^1.1.12" + editorconfig "^0.15.2" + glob "^7.1.3" + mkdirp "~0.5.0" + nopt "~4.0.1" + js-levenshtein@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.3.tgz#3ef627df48ec8cf24bacf05c0f184ff30ef413c5" -js-tokens@^3.0.0, js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - "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" +js-yaml@^3.12.0: + version "3.13.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.0.tgz#38ee7178ac0eea2c97ff6d96fff4b18c7d8cf98e" + integrity sha512-pZZoSxcCYco+DIKBTimr67J6Hy+EYGZDY/HCWC+iAEA9h1ByhMXAIVUXMcMFpOCxQ/xjXmPI2MkDL5HRm5eFrQ== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + js-yaml@^3.9.0: version "3.12.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" @@ -4002,10 +5199,6 @@ jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" -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" @@ -4030,7 +5223,7 @@ json-schema@0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" -json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: +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" @@ -4038,7 +5231,7 @@ json3@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" -json5@^0.5.0, json5@^0.5.1: +json5@^0.5.0: version "0.5.1" resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" @@ -4048,12 +5241,27 @@ json5@^1.0.1: dependencies: minimist "^1.2.0" -json5@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.0.1.tgz#3d6d0d1066039eb50984e66a7840e4f4b7a2c660" +json5@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850" + integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ== dependencies: minimist "^1.2.0" +jsonfile@^2.1.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" + integrity sha1-NzaitCi4e72gzIO1P6PWM6NcKug= + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + optionalDependencies: + graceful-fs "^4.1.6" + jsonify@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" @@ -4071,6 +5279,13 @@ keycode@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/keycode/-/keycode-2.2.0.tgz#3d0af56dc7b8b8e5cba8d0a97f107204eec22b04" +kind-of@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-2.0.1.tgz#018ec7a4ce7e3a86cb9141be519d24c8faa981b5" + integrity sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU= + 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" @@ -4091,6 +5306,34 @@ 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" + integrity sha1-QIhDO0azsbolnXh4XY6W9zugJDk= + optionalDependencies: + graceful-fs "^4.1.9" + +lazy-cache@^0.2.3: + version "0.2.7" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-0.2.7.tgz#7feddf2dcb6edb77d11ef1d117ab5ffdf0ab1b65" + integrity sha1-f+3fLctu23fRHvHRF6tf/fCrG2U= + +lazy-cache@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4= + +lazy-universal-dotenv@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lazy-universal-dotenv/-/lazy-universal-dotenv-2.0.0.tgz#e015ad9f77be9ef811956d53ea9519b1c0ab0214" + integrity sha512-1Wi0zgZMfRLaRAK21g3odYuU+HE1d85Loe2tb44YhcNwIzhmD49mTPR9aKckpB9Q9Q9mA+hUMLI2xlkcCAe3yw== + dependencies: + "@babel/runtime" "^7.0.0" + app-root-dir "^1.0.2" + core-js "^2.5.7" + dotenv "^6.0.0" + dotenv-expand "^4.2.0" + lcid@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" @@ -4125,6 +5368,15 @@ loader-utils@1.1.0, loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1. emojis-list "^2.0.0" json5 "^0.5.0" +loader-utils@1.2.3, loader-utils@^1.2.1, loader-utils@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" + integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== + dependencies: + big.js "^5.2.2" + emojis-list "^2.0.0" + json5 "^1.0.1" + locate-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" @@ -4139,18 +5391,15 @@ locate-path@^3.0.0: p-locate "^3.0.0" path-exists "^3.0.0" -lodash._getnative@^3.0.0: - version "3.9.1" - resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" +lodash-es@^4.17.11: + version "4.17.11" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.11.tgz#145ab4a7ac5c5e52a3531fb4f310255a152b4be0" + integrity sha512-DHb1ub+rMjjrxqlB3H56/6MXtm1lSksDp2rA2cNWjG8mlDUYFhUj3Di2Zn5IwSU87xLv8tNIQ7sSwE/YOX/D/Q== lodash.assign@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" -lodash.camelcase@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" - lodash.clonedeep@^4.3.2: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" @@ -4159,17 +5408,10 @@ lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" -lodash.flattendeep@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" - -lodash.isarguments@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" - -lodash.isarray@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= lodash.isequal@^4.5.0: version "4.5.0" @@ -4179,17 +5421,10 @@ lodash.isplainobject@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" -lodash.keys@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" - dependencies: - lodash._getnative "^3.0.0" - lodash.isarguments "^3.0.0" - lodash.isarray "^3.0.0" - -lodash.mergewith@^4.6.0: +lodash.mergewith@^4.6.0, lodash.mergewith@^4.6.1: version "4.6.1" resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz#639057e726c3afbdb3e7d42741caa8d6e4335927" + integrity sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ== lodash.pick@^4.4.0: version "4.4.0" @@ -4211,7 +5446,7 @@ lodash.throttle@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" -lodash@^4.0.0, lodash@^4.0.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0, lodash@~4.17.10: +lodash@>4.17.4, lodash@^4.0.0, lodash@^4.0.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.5, lodash@~4.17.10: version "4.17.11" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" @@ -4228,19 +5463,24 @@ loglevelnext@^1.0.1: es6-symbol "^3.1.1" object.assign "^4.1.0" -loose-envify@^1.0.0, loose-envify@^1.1.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: js-tokens "^3.0.0 || ^4.0.0" -loud-rejection@^1.0.0, loud-rejection@^1.6.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" + integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= + lowlight@~1.9.1: version "1.9.2" resolved "https://registry.yarnpkg.com/lowlight/-/lowlight-1.9.2.tgz#0b9127e3cec2c3021b7795dd81005c709a42fdd1" @@ -4248,13 +5488,28 @@ lowlight@~1.9.1: fault "^1.0.2" highlight.js "~9.12.0" -lru-cache@^4.0.1, lru-cache@^4.1.1: +lru-cache@^4.0.1: version "4.1.3" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.3.tgz#a1175cf3496dfc8436c156c334b4955992bce69c" dependencies: pseudomap "^1.0.2" yallist "^2.1.2" +lru-cache@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + make-dir@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" @@ -4283,27 +5538,41 @@ 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-or-similar@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/map-or-similar/-/map-or-similar-1.5.0.tgz#6de2653174adfb5d9edc33c69d3e92a1b76faf08" + integrity sha1-beJlMXSt+12e3DPGnT6Sobdvrwg= + 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" +markdown-to-jsx@^6.9.1: + version "6.9.3" + resolved "https://registry.yarnpkg.com/markdown-to-jsx/-/markdown-to-jsx-6.9.3.tgz#31719e3c54517ba9805db81d53701b89f5d2ed7e" + integrity sha512-iXteiv317VZd1vk/PBH5MWMD4r0XWekoWCHRVVadBcnCtxavhtfV1UaEaQgq9KyckTv31L60ASh5ZVVrOh37Qg== + dependencies: + prop-types "^15.6.2" + unquote "^1.1.0" + material-colors@^1.2.1: version "1.2.6" resolved "https://registry.yarnpkg.com/material-colors/-/material-colors-1.2.6.tgz#6d1958871126992ceecc72f4bcc4d8f010865f46" -mathjs@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/mathjs/-/mathjs-5.1.2.tgz#dab9352d9e50c235a51926666d4aba5936c7b33f" +mathjs@^5.8.0: + version "5.8.0" + resolved "https://registry.yarnpkg.com/mathjs/-/mathjs-5.8.0.tgz#25e36843db3b577f89193d1b7d299c27eab58ed7" + integrity sha512-hFHcxpG9IwNKP50NLg8PUnYSWUUotyJs1HAn9GTosJ6Q9LBNd2owSB/DvFm9vG88IkhGlo8evE+aiAzBweVK6A== dependencies: complex.js "2.0.11" - decimal.js "10.0.1" - escape-latex "1.1.1" - fraction.js "4.0.9" + decimal.js "10.1.1" + escape-latex "1.2.0" + fraction.js "4.0.12" javascript-natural-sort "0.7.1" seed-random "2.2.0" - tiny-emitter "2.0.2" + tiny-emitter "2.1.0" typed-function "1.1.0" md5.js@^1.3.4: @@ -4313,6 +5582,11 @@ md5.js@^1.3.4: hash-base "^3.0.0" inherits "^2.0.1" +mdn-data@~1.1.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-1.1.4.tgz#50b5d4ffc4575276573c4eedb8780812a8419f01" + integrity sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA== + media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" @@ -4325,7 +5599,19 @@ mem@^4.0.0: mimic-fn "^1.0.0" p-is-promise "^1.1.0" -memory-fs@^0.4.0, memory-fs@~0.4.1: +memoize-one@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.0.0.tgz#d55007dffefb8de7546659a1722a5d42e128286e" + integrity sha512-7g0+ejkOaI9w5x6LvQwmj68kUj6rxROywPSCqmclG/HBacmFnZqhVscQ8kovkn9FBCNJmOz6SY42+jnvZzDWdw== + +memoizerific@^1.11.3: + version "1.11.3" + resolved "https://registry.yarnpkg.com/memoizerific/-/memoizerific-1.11.3.tgz#7c87a4646444c32d75438570905f2dbd1b1a805a" + integrity sha1-fIekZGREwy11Q4VwkF8tvRsagFo= + dependencies: + map-or-similar "^1.5.0" + +memory-fs@^0.4.0, memory-fs@^0.4.1, memory-fs@~0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" dependencies: @@ -4347,6 +5633,15 @@ meow@^3.7.0: 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" + integrity sha512-T7qC8kg4Zoti1cFd8Cr0M+qaZfOwjlPDEdZIIPPB2JZctjaPM4fX+i7HOId69tAti2fvO6X5ldfYUONDODsrkA== + 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" @@ -4359,7 +5654,7 @@ methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" -micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8, micromatch@^3.1.9: +micromatch@^3.0.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: @@ -4388,7 +5683,7 @@ mime-db@~1.36.0: version "1.36.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.36.0.tgz#5020478db3c7fe93aad7bbcc4dcf869c43363397" -mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.18, mime-types@~2.1.19: +mime-types@^2.1.12, 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" dependencies: @@ -4412,6 +5707,15 @@ min-document@^2.19.0: dependencies: dom-walk "^0.1.0" +mini-css-extract-plugin@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.5.0.tgz#ac0059b02b9692515a637115b0cc9fed3a35c7b0" + integrity sha512-IuaLjruM0vMKhUUT51fQdQzBYTX49dLj8w68ALEAe2A4iYNpIC4eMac67mt3NzycvjOlf07/kYxJDc0RTl1Wqw== + 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" @@ -4447,9 +5751,10 @@ 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" +mississippi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" + integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== dependencies: concat-stream "^1.5.0" duplexify "^3.4.2" @@ -4457,7 +5762,7 @@ mississippi@^2.0.0: flush-write-stream "^1.0.0" from2 "^2.1.0" parallel-transform "^1.1.0" - pump "^2.0.1" + pump "^3.0.0" pumpify "^1.3.3" stream-each "^1.1.0" through2 "^2.0.0" @@ -4476,15 +5781,16 @@ mixin-object@^2.0.1: for-in "^0.1.3" is-extendable "^0.1.1" -"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0: +"mkdirp@>=0.5 0", 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" 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" +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== move-concurrently@^1.0.1: version "1.0.1" @@ -4553,6 +5859,13 @@ 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" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" + integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== + dependencies: + lower-case "^1.1.1" + node-dir@^0.1.10: version "0.1.17" resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5" @@ -4566,6 +5879,11 @@ node-fetch@^1.0.1: encoding "^0.1.11" is-stream "^1.0.1" +node-fetch@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.3.0.tgz#1a1d940bbfb916a1d3e0219f037e89e71f8c5fa5" + integrity sha512-MOd8pV3fxENbryESLgVIeaGKrdl+uaYhCSSVkjeOb/31/njTpcis5aWfdqgNlHIrKOLRbMnfPINPOML2CIFeXA== + node-gyp@^3.8.0: version "3.8.0" resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c" @@ -4626,15 +5944,17 @@ node-pre-gyp@^0.10.0: semver "^5.3.0" tar "^4" -node-releases@^1.0.0-alpha.11: - version "1.0.0-alpha.11" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.0.0-alpha.11.tgz#73c810acc2e5b741a17ddfbb39dfca9ab9359d8a" +node-releases@^1.1.11, node-releases@^1.1.3: + version "1.1.11" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.11.tgz#9a0841a4b0d92b7d5141ed179e764f42ad22724a" + integrity sha512-8v1j5KfP+s5WOTa1spNUAOfreajQPN12JXbRR0oDE+YrJBQCXBnNqUDj27EKpPLOoSiU3tKi3xGPB+JaOdUEQQ== dependencies: semver "^5.3.0" -node-sass@^4.9.3: - version "4.9.3" - resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.9.3.tgz#f407cf3d66f78308bb1e346b24fa428703196224" +node-sass@^4.11.0: + version "4.11.0" + resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.11.0.tgz#183faec398e9cbe93ba43362e2768ca988a6369a" + integrity sha512-bHUdHTphgQJZaF1LASx0kAviPH7sGlcyNhWade4eVIpFp6tsn7SV8xNMTbsQFpEV9VXpnwTTnNYlfsZXgGgmkA== dependencies: async-foreach "^0.1.3" chalk "^1.1.1" @@ -4651,20 +5971,26 @@ node-sass@^4.9.3: nan "^2.10.0" node-gyp "^3.8.0" npmlog "^4.0.0" - request "2.87.0" + request "^2.88.0" sass-graph "^2.2.4" stdout-stream "^1.4.0" "true-case-path" "^1.0.2" +node-version@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/node-version/-/node-version-1.2.0.tgz#34fde3ffa8e1149bd323983479dda620e1b5060d" + integrity sha512-ma6oU4Sk0qOoKEAymVoTvk8EdXEobdS7m/mAGhDJ8Rouugho48crHBORAmy5BoOcv8wraPM6xumapQp5hl4iIQ== + "nopt@2 || 3": version "3.0.6" resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" dependencies: abbrev "1" -nopt@^4.0.1: +nopt@^4.0.1, nopt@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= dependencies: abbrev "1" osenv "^0.1.4" @@ -4690,6 +6016,11 @@ normalize-path@^2.1.1: dependencies: remove-trailing-separator "^1.0.1" +normalize-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + normalize-range@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" @@ -4720,6 +6051,13 @@ npm-run-path@^2.0.0: gauge "~2.7.3" set-blocking "~2.0.0" +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" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" + num2fraction@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" @@ -4728,18 +6066,10 @@ 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" -oauth-sign@~0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" - oauth-sign@~0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" -object-assign@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" - object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" @@ -4817,6 +6147,16 @@ object.values@^1.0.4: function-bind "^1.1.0" has "^1.0.1" +object.values@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz#bf6810ef5da3e5325790eaaa2be213ea84624da9" + integrity sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.12.0" + function-bind "^1.1.1" + has "^1.0.3" + on-finished@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" @@ -4835,15 +6175,24 @@ onetime@^2.0.0: dependencies: mimic-fn "^1.0.0" -opn@5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/opn/-/opn-5.3.0.tgz#64871565c863875f052cfdf53d3e3cb5adb53b1c" +opn@5.4.0: + version "5.4.0" + resolved "https://registry.yarnpkg.com/opn/-/opn-5.4.0.tgz#cb545e7aab78562beb11aa3bfabc7042e1761035" + integrity sha512-YF9MNdVy/0qvJvDtunAOzFw9iasOQHpVthTCvGzxt61Il64AYSGdK+rYwld7NAfk9qJ7dt+hymBNSc9LNYS+Sw== + dependencies: + is-wsl "^1.1.0" + +opn@^5.4.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" + integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== dependencies: is-wsl "^1.1.0" -original@>=0.0.5: +original@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" + integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== dependencies: url-parse "^1.4.3" @@ -4869,7 +6218,7 @@ os-locale@^3.0.0: lcid "^2.0.0" mem "^4.0.0" -os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: +os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" @@ -4936,6 +6285,13 @@ parallel-transform@^1.1.0: 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" + integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc= + dependencies: + no-case "^2.2.0" + parse-asn1@^5.0.0: version "5.1.1" resolved "http://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz#f6bf293818332bd0dab54efb16087724745e6ca8" @@ -4974,6 +6330,11 @@ parse-passwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" +parse5@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2" + integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ== + parseurl@~1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" @@ -5000,7 +6361,7 @@ path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: +path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" @@ -5008,7 +6369,7 @@ 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" -path-parse@^1.0.5: +path-parse@^1.0.5, path-parse@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" @@ -5062,12 +6423,6 @@ pinkie@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" -pkg-dir@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" - 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" @@ -5080,6 +6435,18 @@ pkg-up@2.0.0: dependencies: find-up "^2.1.0" +polished@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/polished/-/polished-2.3.3.tgz#bdbaba962ba8271b0e11aa287f2befd4c87be99a" + integrity sha512-59V4fDbdxtH4I1m9TWxFsoGJbC8nnOpUYo5uFmvMfKp9Qh+6suo4VMUle1TGIIUZIGxfkW+Rs485zPk0wcwR2Q== + dependencies: + "@babel/runtime" "^7.2.0" + +popper.js@^1.14.4: + version "1.14.7" + resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.14.7.tgz#e31ec06cfac6a97a53280c3e55e4e0c860e7738e" + integrity sha512-4q1hNvoUre/8srWsH7hnoSJ5xVmIL4qgz+s4qf2TnJIMyZFUFMGH+9vE7mXynAlHSZ/NdTmmow86muD0myUkVQ== + 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" @@ -5106,46 +6473,57 @@ postcss-loader@^3.0.0: postcss-load-config "^2.0.0" schema-utils "^1.0.0" -postcss-modules-extract-imports@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz#66140ecece38ef06bf0d3e355d69bf59d141ea85" +postcss-modules-extract-imports@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" + integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== dependencies: - postcss "^6.0.1" + postcss "^7.0.5" -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" +postcss-modules-local-by-default@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-2.0.6.tgz#dd9953f6dd476b5fd1ef2d8830c8929760b56e63" + integrity sha512-oLUV5YNkeIBa0yQl7EYnxMgy4N6noxmiwZStaEJUSe2xPMcdNc8WmBQuQCx18H5psYbVxz8zoHk0RAAYZXP9gA== dependencies: - css-selector-tokenizer "^0.7.0" - postcss "^6.0.1" + postcss "^7.0.6" + postcss-selector-parser "^6.0.0" + postcss-value-parser "^3.3.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" +postcss-modules-scope@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.1.0.tgz#ad3f5bf7856114f6fcab901b0502e2a2bc39d4eb" + integrity sha512-91Rjps0JnmtUB0cujlc8KIKCsJXWjzuxGeT/+Q2i2HXKZ7nBUeF9YQTZZTNvHVoNYj1AthsjnGLtqDUE0Op79A== dependencies: - css-selector-tokenizer "^0.7.0" - postcss "^6.0.1" + postcss "^7.0.6" + postcss-selector-parser "^6.0.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" +postcss-modules-values@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-2.0.0.tgz#479b46dc0c5ca3dc7fa5270851836b9ec7152f64" + integrity sha512-Ki7JZa7ff1N3EIMlPnGTZfUMe69FFwiQPnVSXC9mnn3jozCRBYIxiZd44yJOV2AmabOo4qFf8s0dC/+lweG7+w== dependencies: icss-replace-symbols "^1.1.0" - postcss "^6.0.1" + postcss "^7.0.6" -postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: +postcss-selector-parser@^6.0.0: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c" + integrity sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg== + dependencies: + cssesc "^3.0.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +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" -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: - chalk "^2.4.1" - source-map "^0.6.1" - supports-color "^5.4.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" + integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== -postcss@^7.0.0, postcss@^7.0.2: +postcss@^7.0.0: version "7.0.2" resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.2.tgz#7b5a109de356804e27f95a960bef0e4d5bc9bb18" dependencies: @@ -5153,9 +6531,32 @@ postcss@^7.0.0, postcss@^7.0.2: source-map "^0.6.1" supports-color "^5.4.0" -prettier@^1.14.0, prettier@^1.14.2: - version "1.14.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.14.2.tgz#0ac1c6e1a90baa22a62925f41963c841983282f9" +postcss@^7.0.14, postcss@^7.0.5, postcss@^7.0.6: + version "7.0.14" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.14.tgz#4527ed6b1ca0d82c53ce5ec1a2041c2346bbd6e5" + integrity sha512-NsbD6XUUMZvBxtQAJuWDJeeC4QFsmWsfozWxCJPWf3M55K9iu2iMDaKqyoOdTJ1R4usBXuxlVFAIo8rZPQD4Bg== + dependencies: + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" + +prettier@^1.16.4: + version "1.16.4" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.16.4.tgz#73e37e73e018ad2db9c76742e2647e21790c9717" + integrity sha512-ZzWuos7TI5CKUeQAtFd6Zhm2s6EpAD/ZLApIhsF9pRvRtM1RFo61dM/4MSRUA0SuLugA/zgrZD8m0BaY46Og7g== + +pretty-error@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3" + integrity sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM= + dependencies: + renderkid "^2.0.1" + utila "~0.4" + +pretty-hrtime@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" + integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE= prismjs@^1.8.4, prismjs@~1.15.0: version "1.15.0" @@ -5163,7 +6564,7 @@ prismjs@^1.8.4, prismjs@~1.15.0: optionalDependencies: clipboard "^2.0.0" -private@^0.1.6, private@^0.1.8, private@~0.1.5: +private@^0.1.6, private@~0.1.5: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" @@ -5183,6 +6584,11 @@ promise-inflight@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" +promise-polyfill@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-6.1.0.tgz#dfa96943ea9c121fca4de9b5868cb39d3472e057" + integrity sha1-36lpQ+qcEh/KTem1hoyznTRy4Fc= + promise.prototype.finally@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/promise.prototype.finally/-/promise.prototype.finally-3.1.0.tgz#66f161b1643636e50e7cf201dc1b84a857f3864e" @@ -5197,19 +6603,40 @@ promise@^7.1.1: dependencies: asap "~2.0.3" -prop-types@^15.5.10, prop-types@^15.5.4, 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.5.10, prop-types@^15.5.8, prop-types@^15.6.0, 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" +prop-types@^15.6.1: + version "15.7.2" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" + integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.8.1" + property-information@^4.0.0: version "4.2.0" resolved "https://registry.yarnpkg.com/property-information/-/property-information-4.2.0.tgz#f0e66e07cbd6fed31d96844d958d153ad3eb486e" dependencies: xtend "^4.0.1" +property-information@^5.0.0, property-information@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-5.0.1.tgz#c3b09f4f5750b1634c0b24205adbf78f18bdf94f" + integrity sha512-nAtBDVeSwFM3Ot/YxT7s4NqZmqXI7lLzf46BThvotEtYf2uk2yH0ACYuWQkJ7gxKs49PPtKVY0UlDGkyN9aJlw== + dependencies: + xtend "^4.0.1" + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= + proxy-addr@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.4.tgz#ecfc733bf22ff8c6f407fa275327b9ab67e48b93" @@ -5239,13 +6666,21 @@ public-encrypt@^4.0.0: parse-asn1 "^5.0.0" randombytes "^2.0.1" -pump@^2.0.0, pump@^2.0.1: +pump@^2.0.0: 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" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + 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" @@ -5266,11 +6701,16 @@ 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" + integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= + 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.1, 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" @@ -5286,6 +6726,18 @@ querystringify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.0.0.tgz#fa3ed6e68eb15159457c89b37bc6472833195755" +raf@^3.4.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" + integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== + dependencies: + performance-now "^2.1.0" + +ramda@^0.21.0: + version "0.21.0" + resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.21.0.tgz#a001abedb3ff61077d4ff1d577d44de77e8d0a35" + integrity sha1-oAGr7bP/YQd9T/HVd9RN536NCjU= + randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: version "2.0.6" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz#d302c522948588848a8d300c932b44c24231da80" @@ -5312,9 +6764,13 @@ raw-body@2.3.2: iconv-lite "0.4.19" unpipe "1.0.0" -raw-loader@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-0.5.1.tgz#0c3d0beaed8a01c966d9787bf778281252a979aa" +raw-loader@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-1.0.0.tgz#3f9889e73dadbda9a424bce79809b4133ad46405" + integrity sha512-Uqy5AqELpytJTRxYT4fhltcKPj0TyaEpzJDcGz7DFJi+pQOOi3GjR/DOdxTkTsF+NzhnldIoG6TORaBlInUuqA== + dependencies: + loader-utils "^1.1.0" + schema-utils "^1.0.0" rc@^1.2.7: version "1.2.8" @@ -5325,85 +6781,130 @@ rc@^1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-color@^2.14.1: - version "2.14.1" - resolved "https://registry.yarnpkg.com/react-color/-/react-color-2.14.1.tgz#db8ad4f45d81e74896fc2e1c99508927c6d084e0" +react-clientside-effect@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/react-clientside-effect/-/react-clientside-effect-1.2.0.tgz#db823695f75e9616a5e4dd6d908e5ea627fb2516" + integrity sha512-cVIsGG7SNHsQsCP4+fw7KFUB0HiYiU8hbvL640XaLCbZ31aK8/lj0qOKJ2K+xRjuQz/IM4Q4qclI0aEqTtcXtA== + dependencies: + "@babel/runtime" "^7.0.0" + shallowequal "^1.1.0" + +react-color@^2.17.0: + version "2.17.0" + resolved "https://registry.yarnpkg.com/react-color/-/react-color-2.17.0.tgz#e14b8a11f4e89163f65a34c8b43faf93f7f02aaa" + integrity sha512-kJfE5tSaFe6GzalXOHksVjqwCPAsTl+nzS9/BWfP7j3EXbQ4IiLAF9sZGNzk3uq7HfofGYgjmcUgh0JP7xAQ0w== dependencies: - lodash "^4.0.1" + "@icons/material" "^0.2.4" + lodash ">4.17.4" material-colors "^1.2.1" prop-types "^15.5.10" reactcss "^1.2.0" tinycolor2 "^1.4.1" -react-datetime@^2.15.0: - version "2.15.0" - resolved "https://registry.yarnpkg.com/react-datetime/-/react-datetime-2.15.0.tgz#a8f7da6c58b6b45dbeea32d4e8485db17614e12c" - 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.0.0-next.3e165448: - version "6.0.0-next.3e165448" - resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-6.0.0-next.3e165448.tgz#d573ed0ba692f6cee23166f99204e5761df0897c" +react-dev-utils@^7.0.0, react-dev-utils@^7.0.1: + version "7.0.5" + resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-7.0.5.tgz#cb95375d01ae71ca27b3c7616006ef7a77d14e8e" + integrity sha512-zJnqqb0x6gd63E3xoz5pXAxBPNaW75Hyz7GgQp0qPhMroBCRQtRvG67AoTZZY1z4yCYVJQZAfQJFdnea0Ujbug== dependencies: - "@babel/code-frame" "7.0.0-beta.46" + "@babel/code-frame" "7.0.0" address "1.0.3" - browserslist "3.2.6" - chalk "2.4.1" + browserslist "4.4.1" + chalk "2.4.2" cross-spawn "6.0.5" detect-port-alt "1.1.6" escape-string-regexp "1.0.5" filesize "3.6.1" - find-pkg "1.0.0" - global-modules "1.0.0" - globby "8.0.1" - gzip-size "4.1.0" - inquirer "5.1.0" - is-root "1.0.0" - opn "5.3.0" + find-up "3.0.0" + global-modules "2.0.0" + globby "8.0.2" + gzip-size "5.0.0" + immer "1.10.0" + inquirer "6.2.1" + is-root "2.0.0" + loader-utils "1.2.3" + opn "5.4.0" pkg-up "2.0.0" - react-error-overlay "5.0.0-next.3e165448" + react-error-overlay "^5.1.4" recursive-readdir "2.2.2" shell-quote "1.6.1" - sockjs-client "1.1.4" - strip-ansi "4.0.0" + sockjs-client "1.3.0" + strip-ansi "5.0.0" text-table "0.2.0" -react-docgen@^3.0.0-rc.1: - version "3.0.0-rc.1" - resolved "https://registry.yarnpkg.com/react-docgen/-/react-docgen-3.0.0-rc.1.tgz#a4e33dba1454459294276afdec87ef3958167eb0" +react-docgen@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/react-docgen/-/react-docgen-3.0.0.tgz#79c6e1b1870480c3c2bc1a65bede0577a11c38cd" + integrity sha512-2UseoLWabFNXuk1Foz4VDPSIAkxz+1Hmmq4qijzUmYHDq0ZSloKDLXtGLpQRcAi/M76hRpPtH1rV4BI5jNAOnQ== dependencies: - "@babel/parser" "7.0.0-beta.53" + "@babel/parser" "^7.1.3" + "@babel/runtime" "^7.0.0" async "^2.1.4" - babel-runtime "^6.9.2" - commander "^2.9.0" + commander "^2.19.0" doctrine "^2.0.0" node-dir "^0.1.10" - recast "^0.15.0" + recast "^0.16.0" -react-dom@^16.5.1: - version "16.5.1" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.5.1.tgz#29d0c5a01ed3b6b4c14309aa91af6ec4eb4f292c" +react-dom@^16.8.1, react-dom@^16.8.4: + version "16.8.4" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.8.4.tgz#1061a8e01a2b3b0c8160037441c3bf00a0e3bc48" + integrity sha512-Ob2wK7XG2tUDt7ps7LtLzGYYB6DXMCLj0G5fO6WeEICtT4/HdpOi7W/xLzZnR6RCG1tYza60nMdqtxzA8FaPJQ== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" prop-types "^15.6.2" - schedule "^0.4.0" - -react-error-overlay@5.0.0-next.3e165448: - version "5.0.0-next.3e165448" - resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-5.0.0-next.3e165448.tgz#2cbd10780c1fa9c7e35d6e443773e18948b7ee49" + scheduler "^0.13.4" -react-fuzzy@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/react-fuzzy/-/react-fuzzy-0.5.2.tgz#fc13bf6f0b785e5fefe908724efebec4935eaefe" +react-draggable@^3.1.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/react-draggable/-/react-draggable-3.2.1.tgz#45d09a9a227988dc85674b23ab3c75b6e820dae5" + integrity sha512-r+3Bs9InID2lyIEbR8UIRVtpn4jgu1ArFEZgIy8vibJjijLSdNLX7rH9U68BBVD4RD9v44RXbaK4EHLyKXzNQw== dependencies: - babel-runtime "^6.23.0" classnames "^2.2.5" - fuse.js "^3.0.1" - prop-types "^15.5.9" + prop-types "^15.6.0" + +react-error-overlay@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-5.1.4.tgz#88dfb88857c18ceb3b9f95076f850d7121776991" + integrity sha512-fp+U98OMZcnduQ+NSEiQa4s/XMsbp+5KlydmkbESOw4P69iWZ68ZMFM5a2BuE0FgqPBKApJyRuYHR95jM8lAmg== + +react-fast-compare@^2.0.2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-2.0.4.tgz#e84b4d455b0fec113e0402c329352715196f81f9" + integrity sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw== + +react-focus-lock@^1.17.7: + version "1.18.3" + resolved "https://registry.yarnpkg.com/react-focus-lock/-/react-focus-lock-1.18.3.tgz#19d84afeab935c0b5de196922f71db7c481baba4" + integrity sha512-4fPAHnsr8oCYPgVmcMZ8NbAE9jm/OshPjXEM5PHseu2lDernzm/b1sHhYzZUO4OoW9D/u1AQsV6n4trRllow7w== + dependencies: + "@babel/runtime" "^7.0.0" + focus-lock "^0.6.0" + prop-types "^15.6.2" + react-clientside-effect "^1.2.0" + +react-helmet-async@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/react-helmet-async/-/react-helmet-async-0.2.0.tgz#d20d8725c1dcdcc95d54e281a1040af47c3abffa" + integrity sha512-xo8oN+SUt0YkgQscKPTqhZZIOn5ni18FMv/H3KuBDt5+yAXTGktPEf3HU2EyufbHAF0TQ8qI+JrA3ILnjVfqNA== + dependencies: + invariant "^2.2.4" + prop-types "^15.6.1" + react-fast-compare "^2.0.2" + shallowequal "^1.0.2" + +react-hotkeys@2.0.0-pre4: + version "2.0.0-pre4" + resolved "https://registry.yarnpkg.com/react-hotkeys/-/react-hotkeys-2.0.0-pre4.tgz#a1c248a51bdba4282c36bf3204f80d58abc73333" + integrity sha512-oa+UncSWyOwMK3GExt+oELXaR7T3ItgcMolsupQFdKvwkEhVAluJd5rYczsRSQpQlVkdNoHG46De2NUeuS+88Q== + dependencies: + prop-types "^15.6.1" + +react-input-autosize@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/react-input-autosize/-/react-input-autosize-2.2.1.tgz#ec428fa15b1592994fb5f9aa15bb1eb6baf420f8" + integrity sha512-3+K4CD13iE4lQQ2WlF8PuV5htfmTRLH6MDnfndHM6LuBRszuXnuyIfE7nhSKt8AzRBZ50bu0sAhkNMeS5pxQQA== + dependencies: + prop-types "^15.5.8" react-inspector@^2.3.0: version "2.3.0" @@ -5412,37 +6913,77 @@ react-inspector@^2.3.0: babel-runtime "^6.26.0" is-dom "^1.0.9" -react-lifecycles-compat@^3.0.0, react-lifecycles-compat@^3.0.4: +react-inspector@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/react-inspector/-/react-inspector-2.3.1.tgz#f0eb7f520669b545b441af9d38ec6d706e5f649c" + integrity sha512-tUUK7t3KWgZEIUktOYko5Ic/oYwvjEvQUFAGC1UeMeDaQ5za2yZFtItJa2RTwBJB//NxPr000WQK6sEbqC6y0Q== + dependencies: + babel-runtime "^6.26.0" + is-dom "^1.0.9" + prop-types "^15.6.1" + +react-is@^16.7.0, react-is@^16.8.1: + version "16.8.4" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.4.tgz#90f336a68c3a29a096a3d648ab80e87ec61482a2" + integrity sha512-PVadd+WaUDOAciICm/J1waJaSvgq+4rHE/K70j0PFqKhkTBsPv/82UGQJNXAngz1fOQLLxI6z1sEDmJDQhCTAA== + +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" + integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== -react-modal@^3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/react-modal/-/react-modal-3.5.1.tgz#33d38527def90ea324848f7d63e53acc4468a451" +react-modal@^3.8.1: + version "3.8.1" + resolved "https://registry.yarnpkg.com/react-modal/-/react-modal-3.8.1.tgz#7300f94a6f92a2e17994de0be6ccb61734464c9e" + integrity sha512-aLKeZM9pgXpIKVwopRHMuvqKWiBajkqisDA8UzocdCF6S4fyKVfLWmZR5G1Q0ODBxxxxf2XIwiCP8G/11GJAuw== dependencies: exenv "^1.2.0" prop-types "^15.5.10" react-lifecycles-compat "^3.0.0" warning "^3.0.0" -react-onclickoutside@^6.5.0: - version "6.7.1" - resolved "https://registry.yarnpkg.com/react-onclickoutside/-/react-onclickoutside-6.7.1.tgz#6a5b5b8b4eae6b776259712c89c8a2b36b17be93" - -react-split-pane@^0.1.82: - version "0.1.84" - resolved "https://registry.yarnpkg.com/react-split-pane/-/react-split-pane-0.1.84.tgz#b9c1499cbc40b09cf29953ee6f5ff1039d31906e" - dependencies: - inline-style-prefixer "^3.0.6" - prop-types "^15.5.10" - react-lifecycles-compat "^3.0.4" - react-style-proptype "^3.0.0" +react-popper-tooltip@^2.8.0: + version "2.8.1" + resolved "https://registry.yarnpkg.com/react-popper-tooltip/-/react-popper-tooltip-2.8.1.tgz#bbaec88b729e3b7e9f26521857e7f908bccdecf3" + integrity sha512-eL0PT5yz9H9lkG934TMh7czZWwDlqFady7CcJKMP5RcmBxTFBY4U7k71FEyxNaHd07nhMhUwbk0/Fgf2yw3LEg== + dependencies: + "@babel/runtime" "^7.3.4" + react-popper "^1.3.3" + +react-popper@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/react-popper/-/react-popper-1.3.3.tgz#2c6cef7515a991256b4f0536cd4bdcb58a7b6af6" + integrity sha512-ynMZBPkXONPc5K4P5yFWgZx5JGAUIP3pGGLNs58cfAPgK67olx7fmLp+AdpZ0+GoQ+ieFDa/z4cdV6u7sioH6w== + dependencies: + "@babel/runtime" "^7.1.2" + create-react-context "<=0.2.2" + popper.js "^1.14.4" + prop-types "^15.6.1" + typed-styles "^0.0.7" + warning "^4.0.2" + +react-resize-detector@^3.2.1: + version "3.4.0" + resolved "https://registry.yarnpkg.com/react-resize-detector/-/react-resize-detector-3.4.0.tgz#2ccd399958a0efe9b7c52c5db5a13d87e47cd585" + integrity sha512-T96I8Iqa1hGWyooeFA2Sl6FdPoMhXWINfEKg2/EJLxhP37+/94VNuyuyz9CRqpmApD83IWRR+lbB3r0ADMoKJg== + dependencies: + lodash "^4.17.11" + lodash-es "^4.17.11" + prop-types "^15.6.2" + resize-observer-polyfill "^1.5.1" -react-style-proptype@^3.0.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/react-style-proptype/-/react-style-proptype-3.2.2.tgz#d8e998e62ce79ec35b087252b90f19f1c33968a0" +react-select@^2.3.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/react-select/-/react-select-2.4.2.tgz#27da80e3880e92b081be607207bebdf63bcf4f3a" + integrity sha512-5xFOQ6JJktkY5NTaHrc6x9mKwIjhNIiBkGic1j71uyY+ulFpRFra6f4WKLd9fuCylk4WjLpO5zDhdF4CAcwFzA== dependencies: - prop-types "^15.5.4" + classnames "^2.2.5" + emotion "^9.1.2" + memoize-one "^5.0.0" + prop-types "^15.6.0" + raf "^3.4.0" + react-input-autosize "^2.2.1" + react-transition-group "^2.2.1" react-syntax-highlighter@^8.0.1: version "8.0.1" @@ -5460,16 +7001,17 @@ react-textarea-autosize@^7.0.4: dependencies: prop-types "^15.6.0" -react-transition-group@^2.0.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-2.4.0.tgz#1d9391fabfd82e016f26fabd1eec329dbd922b5a" +react-transition-group@^2.2.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-2.6.1.tgz#abf4a95e2f13fb9ba83a970a896fedbc5c4856a2" + integrity sha512-9DHwCy0aOYEe35frlEN68N9ut/THDQBLnVoQuKTvzF4/s3tk7lqkefCqxK2Nv96fOh6JXk6tQtliygk6tl3bQA== 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" -react@^16.4.0, react@^16.5.1: +react@^16.4.0: version "16.5.1" resolved "https://registry.yarnpkg.com/react/-/react-16.5.1.tgz#8cb8e9f8cdcb4bde41c9a138bfbf907e66132372" dependencies: @@ -5478,12 +7020,27 @@ react@^16.4.0, react@^16.5.1: prop-types "^15.6.2" schedule "^0.4.0" +react@^16.8.1, react@^16.8.4: + version "16.8.4" + resolved "https://registry.yarnpkg.com/react/-/react-16.8.4.tgz#fdf7bd9ae53f03a9c4cd1a371432c206be1c4768" + integrity sha512-0GQ6gFXfUH7aZcjGVymlPOASTuSjlQL4ZtVC5YKH+3JL6bBLCVO21DknzmaPlI90LN253ojj02nsapy+j7wIjg== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + prop-types "^15.6.2" + scheduler "^0.13.4" + reactcss@^1.2.0: version "1.2.3" resolved "https://registry.yarnpkg.com/reactcss/-/reactcss-1.2.3.tgz#c00013875e557b1cf0dfd9a368a1c3dab3b548dd" dependencies: lodash "^4.0.1" +reactjs-popup@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/reactjs-popup/-/reactjs-popup-1.3.2.tgz#7f7861443fc5edfb0184da1d01838dbd5db690cd" + integrity sha512-BwfaOkKpLHNHxSmiMcX/yc61twJvjGbJ/SBE+fYovJudFlaZDYXGPSp+3dTCE0UoNsEqF8oc/pNkYlGgmrnsrw== + read-pkg-up@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" @@ -5511,6 +7068,15 @@ read-pkg@^1.0.0: string_decoder "~1.1.1" util-deprecate "~1.0.1" +readable-stream@^3.1.1: + version "3.2.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.2.0.tgz#de17f229864c120a9f56945756e4f32c4045245d" + integrity sha512-RV20kLjdmpZuTF1INEb9IA3L68Nmi+Ri7ppZqo78wj//Pn62fCoJyV9zalccNzDD/OuJpMG4f+pfMl8+L6QdGw== + 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" @@ -5519,11 +7085,22 @@ readdirp@^2.0.0: micromatch "^3.1.10" readable-stream "^2.0.2" -recast@^0.15.0: - version "0.15.5" - resolved "https://registry.yarnpkg.com/recast/-/recast-0.15.5.tgz#6871177ee26720be80d7624e4283d5c855a5cb0b" +recast@^0.14.7: + version "0.14.7" + resolved "https://registry.yarnpkg.com/recast/-/recast-0.14.7.tgz#4f1497c2b5826d42a66e8e3c9d80c512983ff61d" + integrity sha512-/nwm9pkrcWagN40JeJhkPaRxiHXBRkXyRh/hgU088Z/v+qCy+zIHHY6bC6o7NaKAxPqtE6nD8zBH1LfU0/Wx6A== + dependencies: + ast-types "0.11.3" + esprima "~4.0.0" + private "~0.1.5" + source-map "~0.6.1" + +recast@^0.16.0: + version "0.16.2" + resolved "https://registry.yarnpkg.com/recast/-/recast-0.16.2.tgz#3796ebad5fe49ed85473b479cd6df554ad725dc2" + integrity sha512-O/7qXi51DPjRVdbrpNzoBQH5dnAPQNbfoOFyRiUwreTMJfIHYOEBzwuH+c0+/BTSJ3CQyKs6ILSWXhESH6Op3A== dependencies: - ast-types "0.11.5" + ast-types "0.11.7" esprima "~4.0.0" private "~0.1.5" source-map "~0.6.1" @@ -5534,6 +7111,18 @@ rechoir@^0.6.2: dependencies: resolve "^1.1.6" +recompose@^0.30.0: + version "0.30.0" + resolved "https://registry.yarnpkg.com/recompose/-/recompose-0.30.0.tgz#82773641b3927e8c7d24a0d87d65aeeba18aabd0" + integrity sha512-ZTrzzUDa9AqUIhRk4KmVFihH0rapdCSMFXjhHbNrjAWxBuUD/guYlyysMnuHjlZC/KRiOKRtB4jf96yYSkKE8w== + 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.2: version "2.2.2" resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.2.tgz#9946fb3274e1628de6e36b2f6714953b4845094f" @@ -5547,13 +7136,6 @@ redent@^1.0.0: indent-string "^2.1.0" strip-indent "^1.0.1" -redux@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/redux/-/redux-4.0.0.tgz#aa698a92b729315d22b34a0553d7e6533555cc03" - dependencies: - loose-envify "^1.1.0" - symbol-observable "^1.2.0" - refractor@^2.4.1: version "2.6.0" resolved "https://registry.yarnpkg.com/refractor/-/refractor-2.6.0.tgz#6b0d88f654c8534eefed3329a35bc7bb74ae0979" @@ -5568,7 +7150,14 @@ regenerate-unicode-properties@^7.0.0: dependencies: regenerate "^1.4.0" -regenerate@^1.2.1, regenerate@^1.4.0: +regenerate-unicode-properties@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.0.2.tgz#7b38faa296252376d363558cfbda90c9ce709662" + integrity sha512-SbA/iNrBUf6Pv2zU8Ekv1Qbhv92yxL4hiDa2siuxs4KKn4oOoMDHXjAf7+Nz9qinUQ46B1LcWEi/PhJfPWpZWQ== + dependencies: + regenerate "^1.4.0" + +regenerate@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" @@ -5576,16 +7165,28 @@ regenerator-runtime@^0.11.0: version "0.11.1" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" -regenerator-runtime@^0.12.0: +regenerator-runtime@^0.12.0, regenerator-runtime@^0.12.1: version "0.12.1" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de" +regenerator-runtime@^0.13.2: + version "0.13.2" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz#32e59c9a6fb9b1a4aff09b4930ca2d4477343447" + integrity sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA== + regenerator-transform@^0.13.3: version "0.13.3" resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.13.3.tgz#264bd9ff38a8ce24b06e0636496b2c856b57bcbb" dependencies: private "^0.1.6" +regenerator-transform@^0.13.4: + version "0.13.4" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.13.4.tgz#18f6763cf1382c69c36df76c6ce122cc694284fb" + integrity sha512-T0QMBjK3J0MtxjPmdIMXm72Wvj2Abb0Bd4HADdfijwMdoIsyQZ6fWC7kDFhk2YinBBEMZDL7Y7wh0J1sGx3S4A== + dependencies: + private "^0.1.6" + regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" @@ -5593,21 +7194,18 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" +regexp-tree@^0.1.0: + version "0.1.5" + resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.5.tgz#7cd71fca17198d04b4176efd79713f2998009397" + integrity sha512-nUmxvfJyAODw+0B13hj8CFVAxhe7fDEAgJgaotBu3nnR+IgGgZq59YedJP5VYTlkEfqjuK6TuRpnymKdatLZfQ== + regexp.prototype.flags@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz#6b30724e306a27833eeb171b66ac8890ba37e41c" dependencies: define-properties "^1.1.2" -regexpu-core@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" - -regexpu-core@^4.1.3, regexpu-core@^4.2.0: +regexpu-core@^4.1.3: version "4.2.0" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.2.0.tgz#a3744fa03806cffe146dea4421a3e73bdcc47b1d" dependencies: @@ -5618,19 +7216,26 @@ regexpu-core@^4.1.3, regexpu-core@^4.2.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" +regexpu-core@^4.5.4: + version "4.5.4" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.5.4.tgz#080d9d02289aa87fe1667a4f5136bc98a6aebaae" + integrity sha512-BtizvGtFQKGPUcTy56o3nk1bGRp4SZOTYrDtGNlqCQufptV5IkkLN6Emw+yunAJjzf+C9FQFtvq7IoA3+oMYHQ== + dependencies: + regenerate "^1.4.0" + regenerate-unicode-properties "^8.0.2" + regjsgen "^0.5.0" + regjsparser "^0.6.0" + unicode-match-property-ecmascript "^1.0.4" + unicode-match-property-value-ecmascript "^1.1.0" 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" +regjsgen@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.0.tgz#a7634dc08f89209c2049adda3525711fb97265dd" + integrity sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA== regjsparser@^0.3.0: version "0.3.0" @@ -5638,6 +7243,27 @@ regjsparser@^0.3.0: dependencies: jsesc "~0.5.0" +regjsparser@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c" + integrity sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ== + dependencies: + jsesc "~0.5.0" + +rehype-parse@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/rehype-parse/-/rehype-parse-6.0.0.tgz#f681555f2598165bee2c778b39f9073d17b16bca" + integrity sha512-V2OjMD0xcSt39G4uRdMTqDXXm6HwkUbLMDayYKA/d037j8/OtVSQ+tqKwYWOuyBeoCs/3clXRe30VUjeMDTBSA== + dependencies: + hast-util-from-parse5 "^5.0.0" + parse5 "^5.0.0" + xtend "^4.0.1" + +relateurl@0.2.x: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= + remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" @@ -5646,6 +7272,17 @@ render-fragment@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/render-fragment/-/render-fragment-0.1.1.tgz#b231f259b7eee333d34256aee0ef3169be7bef30" +renderkid@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.3.tgz#380179c2ff5ae1365c522bf2fcfcff01c5b74149" + integrity sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA== + dependencies: + css-select "^1.1.0" + dom-converter "^0.2" + htmlparser2 "^3.3.0" + strip-ansi "^3.0.0" + utila "^0.4.0" + repeat-element@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" @@ -5660,32 +7297,12 @@ repeating@^2.0.0: dependencies: is-finite "^1.0.0" -request@2.87.0: - version "2.87.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.87.0.tgz#32f00235cd08d482b4d0d68db93a829c0ed5756e" - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.6.0" - caseless "~0.12.0" - combined-stream "~1.0.5" - extend "~3.0.1" - forever-agent "~0.6.1" - form-data "~2.3.1" - har-validator "~5.0.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.17" - oauth-sign "~0.8.2" - performance-now "^2.1.0" - qs "~6.5.1" - safe-buffer "^5.1.1" - tough-cookie "~2.3.3" - tunnel-agent "^0.6.0" - uuid "^3.1.0" +replace-ext@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" + integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs= -request@^2.87.0: +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: @@ -5726,13 +7343,18 @@ requires-port@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" +resize-observer-polyfill@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" + integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== + resolve-cwd@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" dependencies: resolve-from "^3.0.0" -resolve-dir@^1.0.0: +resolve-dir@^1.0.0, resolve-dir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" dependencies: @@ -5743,6 +7365,16 @@ resolve-from@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-pathname@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-2.2.0.tgz#7e9ae21ed815fd63ab189adeee64dc831eefa879" + integrity sha512-bAFz9ld18RzJfddgrO2e/0S2O81710++chRMUxHjXOYKF6jTAMrUNZrEZ1PvV0zlhfjidm08iRPdTLPno1FuRg== + resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" @@ -5753,6 +7385,13 @@ resolve@^1.1.6, resolve@^1.3.2, resolve@^1.8.1: dependencies: path-parse "^1.0.5" +resolve@^1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.10.0.tgz#3bdaaeaf45cc07f375656dfd2e54ed0810b101ba" + integrity sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg== + dependencies: + path-parse "^1.0.6" + restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" @@ -5770,6 +7409,13 @@ rimraf@2, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: dependencies: glob "^7.0.5" +rimraf@^2.2.8: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" @@ -5789,18 +7435,19 @@ run-queue@^1.0.0, run-queue@^1.0.3: dependencies: aproba "^1.1.1" -rxjs@^5.5.2: - version "5.5.12" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.12.tgz#6fa61b8a77c3d793dbaf270bee2f43f652d741cc" - dependencies: - symbol-observable "1.0.1" - rxjs@^6.1.0: version "6.3.2" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.3.2.tgz#6a688b16c4e6e980e62ea805ec30648e1c60907f" dependencies: tslib "^1.9.0" +rxjs@^6.4.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.4.0.tgz#f3bb0fe7bda7fb69deac0c16f17b50b0b8790504" + integrity sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw== + dependencies: + tslib "^1.9.0" + safe-buffer@5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" @@ -5809,6 +7456,11 @@ safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" +safe-eval@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/safe-eval/-/safe-eval-0.4.1.tgz#e54ba5a1bbdec795d488f6c8765e0c2a78b4cdc0" + integrity sha512-wmiu4RSYVZ690RP1+cv/LxfPK1dIlEN35aW7iv4SMYdqDrHbkll4+NJcHmKm7PbCuI1df1otOcPwgcc2iFR85g== + safe-regex@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" @@ -5839,7 +7491,7 @@ sass-loader@^7.1.0: pify "^3.0.0" semver "^5.5.0" -sax@^1.2.4: +sax@^1.2.4, sax@~1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" @@ -5849,7 +7501,15 @@ schedule@^0.4.0: dependencies: object-assign "^4.1.1" -schema-utils@^0.4.4, schema-utils@^0.4.5: +scheduler@^0.13.4: + version "0.13.4" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.13.4.tgz#8fef05e7a3580c76c0364d2df5e550e4c9140298" + integrity sha512-cvSOlRPxOHs5dAhP9yiS/6IDmVAVxmk33f0CtTJRkmUWcb1Us+t7b1wqdzoC0REw2muC9V5f1L/w5R5uKGaepA== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + +schema-utils@^0.4.5: version "0.4.7" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187" dependencies: @@ -5883,6 +7543,11 @@ select@^1.1.2: version "5.5.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.1.tgz#7dfdd8814bdb7cabc7be0fb1d734cfb66c940477" +semver@^5.6.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" + integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== + semver@~5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" @@ -5969,6 +7634,16 @@ 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" + integrity sha1-WQnodLp3EG1zrEFM/sH/yofZcGA= + 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" @@ -5977,15 +7652,10 @@ shallow-clone@^1.0.0: kind-of "^5.0.0" mixin-object "^2.0.1" -shallowequal@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-0.2.2.tgz#1e32fd5bcab6ad688a4812cb0cc04efc75c7014e" - dependencies: - lodash.keys "^3.1.2" - -shallowequal@^1.1.0: +shallowequal@^1.0.2, shallowequal@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" + integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== shebang-command@^1.2.0: version "1.2.0" @@ -6014,6 +7684,11 @@ shelljs@^0.8.2: interpret "^1.0.0" rechoir "^0.6.2" +sigmund@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" + integrity sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA= + 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" @@ -6049,16 +7724,17 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^3.1.0" -sockjs-client@1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.4.tgz#5babe386b775e4cf14e7520911452654016c8b12" +sockjs-client@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.3.0.tgz#12fc9d6cb663da5739d3dc5fb6e8687da95cb177" + integrity sha512-R9jxEzhnnrdxLCNln0xg5uGHqMnkhPSTzUZH2eXcR03S/On9Yvoq2wyUZILRUhZCNVu2PmwWVoyuiPz8th8zbg== dependencies: - debug "^2.6.6" - eventsource "0.1.6" - faye-websocket "~0.11.0" - inherits "^2.0.1" + debug "^3.2.5" + eventsource "^1.0.7" + faye-websocket "~0.11.1" + inherits "^2.0.3" json3 "^3.3.2" - url-parse "^1.1.8" + url-parse "^1.4.3" source-list-map@^2.0.0: version "2.0.0" @@ -6081,12 +7757,6 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -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-support@^0.5.3: version "0.5.9" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.9.tgz#41bc953b2534267ea2d605bccfa7bfa3111ced5f" @@ -6094,6 +7764,14 @@ source-map-support@^0.5.3: buffer-from "^1.0.0" source-map "^0.6.0" +source-map-support@~0.5.10: + version "0.5.11" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.11.tgz#efac2ce0800355d026326a0ca23e162aeac9a4e2" + integrity sha512-//sajEx/fGL3iw6fltKMdPvy8kL3kJ2O3iuYlRoT3k9Kb4BjOoZ+BZzaNHeuaruSt+Kf3Zk9tnfAQg9/AJqUVQ== + 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" @@ -6104,11 +7782,11 @@ source-map@^0.4.2: dependencies: amdefine ">=0.0.4" -source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7: +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.0, source-map@^0.6.1, 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" @@ -6122,6 +7800,13 @@ space-separated-tokens@^1.0.0: dependencies: trim "0.0.1" +spawn-promise@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/spawn-promise/-/spawn-promise-0.1.8.tgz#a5bea98814c48f52cbe02720e7fe2d6fc3b5119a" + integrity sha512-pTkEOFxvYLq9SaI1d8bwepj0yD9Yyz65+4e979YZLv/L3oYPxZpDTabcm6e+KIZniGK9mQ+LGrwB5s1v2z67nQ== + dependencies: + co "^4.6.0" + spdx-correct@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82" @@ -6169,11 +7854,17 @@ sshpk@^1.7.0: jsbn "~0.1.0" tweetnacl "~0.14.0" -ssri@^5.2.4: - version "5.3.0" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06" +ssri@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" + integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== dependencies: - safe-buffer "^5.1.1" + figgy-pudding "^3.5.1" + +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== static-extend@^0.1.1: version "0.1.2" @@ -6239,6 +7930,15 @@ string-width@^1.0.1, string-width@^1.0.2: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" +string-width@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + string.prototype.matchall@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-3.0.0.tgz#66f4d8dd5c6c6cea4dffb55ec5f3184a8dd0dd59" @@ -6271,11 +7971,19 @@ string_decoder@^1.0.0, string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.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" +string_decoder@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" + integrity sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w== dependencies: - ansi-regex "^3.0.0" + safe-buffer "~5.1.0" + +strip-ansi@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.0.0.tgz#f78f68b5d0866c20b2c9b8c61b5298508dc8756f" + integrity sha512-Uu7gQyZI7J7gn5qLn1Np3G9vcYGTVqB+lFTytnDJv83dd8T22aGH451P3jueT2/QemInJDfxHB5Tde5OzgG1Ow== + dependencies: + ansi-regex "^4.0.0" strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" @@ -6283,6 +7991,19 @@ strip-ansi@^3.0.0, strip-ansi@^3.0.1: dependencies: ansi-regex "^2.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@^5.0.0, strip-ansi@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + strip-bom@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" @@ -6307,12 +8028,13 @@ 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.23.0: - version "0.23.0" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.23.0.tgz#8377fefab68416a2e05f1cabd8c3a3acfcce74f1" +style-loader@^0.23.1: + version "0.23.1" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.23.1.tgz#cb9154606f3e771ab6c4ab637026a1049174d925" + integrity sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg== dependencies: loader-utils "^1.1.0" - schema-utils "^0.4.5" + schema-utils "^1.0.0" stylis-rule-sheet@^0.0.10: version "0.0.10" @@ -6326,12 +8048,19 @@ 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@^5.3.0, supports-color@^5.4.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" +supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== + dependencies: + has-flag "^3.0.0" + svg-url-loader@^2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/svg-url-loader/-/svg-url-loader-2.3.2.tgz#dd86b26c19fe3b914f04ea10ef39594eade04464" @@ -6339,13 +8068,30 @@ svg-url-loader@^2.3.2: file-loader "1.1.11" loader-utils "1.1.0" -symbol-observable@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4" - -symbol-observable@^1.2.0: +svgo@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.2.0.tgz#305a8fc0f4f9710828c65039bb93d5793225ffc3" + integrity sha512-xBfxJxfk4UeVN8asec9jNxHiv3UAMv/ujwBWGYvQhhMb2u3YTGKkiybPcLFDLq7GLLWE9wa73e0/m8L5nTzQbw== + dependencies: + chalk "^2.4.1" + coa "^2.0.2" + css-select "^2.0.0" + css-select-base-adapter "^0.1.1" + css-tree "1.0.0-alpha.28" + css-url-regex "^1.1.0" + csso "^3.5.1" + js-yaml "^3.12.0" + mkdirp "~0.5.1" + object.values "^1.1.0" + sax "~1.2.4" + stable "^0.1.8" + unquote "~1.1.1" + util.promisify "~1.0.0" + +symbol-observable@^1.0.4: version "1.2.0" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" + integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== symbol.prototype.description@^1.0.0: version "1.0.0" @@ -6377,6 +8123,50 @@ tar@^4: safe-buffer "^5.1.2" yallist "^3.0.2" +telejson@^2.1.0, telejson@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/telejson/-/telejson-2.1.1.tgz#cd8835ce90198c9341078dbe80849e39d1a2b73c" + integrity sha512-tc9Jdrhro4zzYgN6y5DNzCXIyIsWT7znGEfK7G4KMPF0X0tC2cVw2SPKnJObao/cxP7/FSnG8bJe0JD390My5g== + dependencies: + global "^4.3.2" + is-function "^1.0.1" + is-regex "^1.0.4" + is-symbol "^1.0.2" + isobject "^3.0.1" + lodash.get "^4.4.2" + memoizerific "^1.11.3" + safe-eval "^0.4.1" + +term-size@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" + integrity sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk= + dependencies: + execa "^0.7.0" + +terser-webpack-plugin@^1.1.0, terser-webpack-plugin@^1.2.1: + version "1.2.3" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.2.3.tgz#3f98bc902fac3e5d0de730869f50668561262ec8" + integrity sha512-GOK7q85oAb/5kE12fMuLdn2btOS9OBZn4VsecpHDywoUC/jLhSAKOiYo0ezx7ss2EXPMzyEWFoE0s1WLE+4+oA== + dependencies: + 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.16.1" + webpack-sources "^1.1.0" + worker-farm "^1.5.2" + +terser@^3.16.1: + version "3.17.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-3.17.0.tgz#f88ffbeda0deb5637f9d24b0da66f4e15ab10cb2" + integrity sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ== + dependencies: + commander "^2.19.0" + source-map "~0.6.1" + source-map-support "~0.5.10" + text-table@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" @@ -6398,10 +8188,25 @@ timers-browserify@^2.0.4: dependencies: setimmediate "^1.0.4" -tiny-emitter@2.0.2, tiny-emitter@^2.0.0: +tiny-emitter@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" + integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== + +tiny-emitter@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.0.2.tgz#82d27468aca5ade8e5fd1e6d22b57dd43ebdfb7c" +tiny-invariant@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.0.3.tgz#91efaaa0269ccb6271f0296aeedb05fc3e067b7a" + integrity sha512-ytQx8T4DL8PjlX53yYzcIC0WhIZbpR0p1qcYjw2pHu3w6UtgWwFJQ/02cnhOnBBhlFx/edUIfcagCaQSe3KMWg== + +tiny-warning@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.2.tgz#1dfae771ee1a04396bdfde27a3adcebc6b648b28" + integrity sha512-rru86D9CpQRLvsFG5XFdy0KdLAvjdQDyZCsRcuu60WtzFylDM3eAWSxEVz5kzL2Gp544XiUvPbVKtOA/txLi9Q== + tinycolor2@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.1.tgz#f4fad333447bc0b07d4dc8e9209d8f39a8ac77e8" @@ -6416,10 +8221,6 @@ to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" -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" @@ -6450,18 +8251,13 @@ toggle-selection@^1.0.3: version "1.0.6" resolved "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32" -touch@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/touch/-/touch-1.0.0.tgz#449cbe2dbae5a8c8038e30d71fa0ff464947c4de" +touch@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/touch/-/touch-2.0.2.tgz#ca0b2a3ae3211246a61b16ba9e6cbf1596287164" + integrity sha512-qjNtvsFXTRq7IuMLweVgFxmEuQ6gLbRs2jQxL80TtZ31dEKWYIxRXquij6w6VimyDek5hD3PytljHmEtAs2u0A== dependencies: nopt "~1.0.10" -tough-cookie@~2.3.3: - version "2.3.4" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655" - dependencies: - punycode "^1.4.1" - tough-cookie@~2.4.3: version "2.4.3" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" @@ -6481,15 +8277,21 @@ trim@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" +trough@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.3.tgz#e29bd1614c6458d44869fc28b255ab7857ef7c24" + integrity sha512-fwkLWH+DimvA4YCy+/nvJd61nWQQ2liO/nF/RjkTpiOGi+zxZzVkhb1mvbHIIW4b/8nDsYI8uTmAlc0nNkRMOw== + "true-case-path@^1.0.2": version "1.0.3" resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.3.tgz#f813b5a8c86b40da59606722b144e3225799f47d" dependencies: glob "^7.1.2" -ts-loader@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-5.1.1.tgz#361eeae3cc3c6f63d2e9f421dba90c4b14659aa6" +ts-loader@^5.3.3: + version "5.3.3" + resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-5.3.3.tgz#8b4af042e773132d86b3c99ef0acf3b4d325f473" + integrity sha512-KwF1SplmOJepnoZ4eRIloH/zXL195F51skt7reEsS6jvDqzgc/YSbz9b8E07GxIUwLXdcD4ssrJu6v8CwaTafA== dependencies: chalk "^2.3.0" enhanced-resolve "^4.0.0" @@ -6544,38 +8346,32 @@ typed-function@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/typed-function/-/typed-function-1.1.0.tgz#ea149706e0fb42aca1791c053a6d94ccd6c4fdcb" +typed-styles@^0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/typed-styles/-/typed-styles-0.0.7.tgz#93392a008794c4595119ff62dde6809dbc40a3d9" + integrity sha512-pzP0PWoZUhsECYjABgCGQlRGL1n7tOHsgwYv3oIiEpJwGhFTuty/YNeduxQYzXXa3Ge5BdT6sHYIQYpl4uJ+5Q== + typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" -typescript@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.0.3.tgz#4853b3e275ecdaa27f78fda46dc273a7eb7fc1c8" +typescript@^3.3.4000: + version "3.3.4000" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.3.4000.tgz#76b0f89cfdbf97827e1112d64f283f1151d6adf0" + integrity sha512-jjOcCZvpkl2+z7JFn0yBOoLQyLoIkNZAs/fYJkUG6VKy6zLPHJGfQJYFHzibB6GJaF/8QrcECtlQ5cpvRHSMEA== 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" -uglify-es@^3.3.4: - version "3.3.9" - resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677" +uglify-js@3.4.x: + version "3.4.10" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.10.tgz#9ad9563d8eb3acdfb8d38597d2af1d815f6a755f" + integrity sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw== dependencies: - commander "~2.13.0" + commander "~2.19.0" source-map "~0.6.1" -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: - 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" - 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" @@ -6591,10 +8387,29 @@ 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-match-property-value-ecmascript@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277" + integrity sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g== + 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" +unified@^7.0.2: + version "7.1.0" + resolved "https://registry.yarnpkg.com/unified/-/unified-7.1.0.tgz#5032f1c1ee3364bd09da12e27fdd4a7553c7be13" + integrity sha512-lbk82UOIGuCEsZhPj8rNAkXSDXd6p0QLzIuSsCdxrqnqU56St4eyOB+AlXsVgVeRmetPTYydIuvFfpDIed8mqw== + dependencies: + "@types/unist" "^2.0.0" + "@types/vfile" "^3.0.0" + bail "^1.0.0" + extend "^3.0.0" + is-plain-obj "^1.1.0" + trough "^1.0.0" + vfile "^3.0.0" + x-is-string "^0.1.0" + union-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" @@ -6604,9 +8419,15 @@ union-value@^1.0.0: is-extendable "^0.1.1" set-value "^0.4.3" -unique-filename@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.0.tgz#d05f2fe4032560871f30e93cbe735eea201514f3" +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= + +unique-filename@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== dependencies: unique-slug "^2.0.0" @@ -6616,20 +8437,25 @@ unique-slug@^2.0.0: dependencies: imurmurhash "^0.1.4" -universal-dotenv@^1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/universal-dotenv/-/universal-dotenv-1.9.0.tgz#6a30638dbc70deaccc79d7556fcfe01d5a7e1cb0" - dependencies: - "@babel/runtime" "^7.0.0-rc.1" - app-root-dir "^1.0.2" - core-js "^2.5.7" - dotenv "^6.0.0" - dotenv-expand "^4.2.0" +unist-util-stringify-position@^1.0.0, unist-util-stringify-position@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz#3f37fcf351279dcbca7480ab5889bb8a832ee1c6" + integrity sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ== + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== 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.0, unquote@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" + integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= + unset-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" @@ -6641,6 +8467,11 @@ upath@^1.0.5: version "1.1.0" resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd" +upper-case@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" + integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg= + uri-js@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" @@ -6651,19 +8482,16 @@ urix@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" -url-join@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.0.tgz#4d3340e807d3773bda9991f8305acdcc2a665d2a" - -url-loader@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-1.1.1.tgz#4d1f3b4f90dde89f02c008e662d604d7511167c1" +url-loader@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-1.1.2.tgz#b971d191b83af693c5e3fea4064be9e1f2d7f8d8" + integrity sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg== dependencies: loader-utils "^1.1.0" mime "^2.0.3" schema-utils "^1.0.0" -url-parse@^1.1.8, url-parse@^1.4.3: +url-parse@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.3.tgz#bfaee455c889023219d757e045fa6a684ec36c15" dependencies: @@ -6681,11 +8509,11 @@ use@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" -util-deprecate@^1.0.2, util-deprecate@~1.0.1: +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" -util.promisify@^1.0.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: @@ -6704,6 +8532,11 @@ util@^0.10.3: dependencies: inherits "2.0.3" +utila@^0.4.0, utila@~0.4: + version "0.4.0" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= + utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" @@ -6712,9 +8545,10 @@ uuid@^3.1.0, uuid@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" -v8-compile-cache@^2.0.0: +v8-compile-cache@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.2.tgz#a428b28bb26790734c4fc8bc9fa106fccebf6a6c" + integrity sha512-1wFuMUIM16MDJRCrpbpuEPTUGmM5QMUg0cr3KFwra2XgOgFcPGDQHDh3CszSCD2Zewc/dh/pamNEW8CbfDebUw== validate-npm-package-license@^3.0.1: version "3.0.4" @@ -6723,23 +8557,15 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" +value-equal@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-0.4.0.tgz#c5bdd2f54ee093c04839d71ce2e4758a6890abc7" + integrity sha512-x+cYdNnaA3CxvMaTX0INdTCN8m8aF2uY9BvEqmxuYp8bL09cs/kWVQPVGcA35fMktdOsP69IgU7wFj/61dJHEw== + vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" -velocity-animate@^1.4.0: - version "1.5.2" - resolved "https://registry.yarnpkg.com/velocity-animate/-/velocity-animate-1.5.2.tgz#5a351d75fca2a92756f5c3867548b873f6c32105" - -velocity-react@^1.3.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/velocity-react/-/velocity-react-1.4.1.tgz#1d0b41859cdf2521c08a8b57f44e93ed2d54b5fc" - dependencies: - lodash "^4.17.5" - prop-types "^15.5.8" - react-transition-group "^2.0.0" - velocity-animate "^1.4.0" - verror@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" @@ -6748,6 +8574,23 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" +vfile-message@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-1.1.1.tgz#5833ae078a1dfa2d96e9647886cd32993ab313e1" + integrity sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA== + dependencies: + unist-util-stringify-position "^1.1.1" + +vfile@^3.0.0, vfile@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-3.0.1.tgz#47331d2abe3282424f4a4bb6acd20a44c4121803" + integrity sha512-y7Y3gH9BsUSdD4KzHsuMaCzRjglXN0W2EcMf0gpvu6+SbsGhMje7xDc8AEoeXy6mIwCKMI6BkjMsRjzQbhMEjQ== + dependencies: + is-buffer "^2.0.0" + replace-ext "1.0.0" + unist-util-stringify-position "^1.0.0" + vfile-message "^1.0.0" + vm-browserify@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" @@ -6760,6 +8603,13 @@ warning@^3.0.0: dependencies: loose-envify "^1.0.0" +warning@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" + integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== + dependencies: + loose-envify "^1.0.0" + watchpack@^1.5.0: version "1.6.0" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" @@ -6768,36 +8618,42 @@ watchpack@^1.5.0: graceful-fs "^4.1.2" neo-async "^2.5.0" -webpack-cli@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.1.0.tgz#d71a83687dcfeb758fdceeb0fe042f96bcf62994" +web-namespaces@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-1.1.2.tgz#c8dc267ab639505276bae19e129dbd6ae72b22b4" + integrity sha512-II+n2ms4mPxK+RnIxRPOw3zwF2jRscdJIUE9BfkKHm4FYEg9+biIoTMnaZF5MpemE3T+VhMLrhbyD4ilkPCSbg== + +webpack-cli@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.0.tgz#55c8a74cae1e88117f9dda3a801c7272e93ca318" + integrity sha512-t1M7G4z5FhHKJ92WRKwZ1rtvi7rHc0NZoZRbSkol0YKl4HvcC8+DsmGDmK7MmZxHSAetHagiOsjOB6MmzC2TUw== dependencies: chalk "^2.4.1" cross-spawn "^6.0.5" - enhanced-resolve "^4.0.0" - global-modules-path "^2.1.0" - import-local "^1.0.0" - inquirer "^6.0.0" + enhanced-resolve "^4.1.0" + findup-sync "^2.0.0" + global-modules "^1.0.0" + import-local "^2.0.0" interpret "^1.1.0" loader-utils "^1.1.0" - supports-color "^5.4.0" - v8-compile-cache "^2.0.0" - yargs "^12.0.1" + supports-color "^5.5.0" + v8-compile-cache "^2.0.2" + yargs "^12.0.5" -webpack-dev-middleware@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.3.0.tgz#8104daf4d4f65defe06ee2eaaeea612a7c541462" +webpack-dev-middleware@^3.5.1: + version "3.6.1" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.6.1.tgz#91f2531218a633a99189f7de36045a331a4b9cd4" + integrity sha512-XQmemun8QJexMEvNFbD2BIg4eSKrmSIMrTfnl2nql2Sc6OGAYFyb8rwuYrCjl/IiEYYuyTEiimMscu7EXji/Dw== dependencies: - loud-rejection "^1.6.0" - memory-fs "~0.4.1" + memory-fs "^0.4.1" mime "^2.3.1" range-parser "^1.0.3" - url-join "^4.0.0" webpack-log "^2.0.0" -webpack-hot-middleware@^2.22.3: - version "2.24.0" - resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.24.0.tgz#d67ae5107edff29debbab3631a424c998856fd47" +webpack-hot-middleware@^2.24.3: + version "2.24.3" + resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.24.3.tgz#5bb76259a8fc0d97463ab517640ba91d3382d4a6" + integrity sha512-pPlmcdoR2Fn6UhYjAhp1g/IJy1Yc9hD+T6O9mjRcWV2pFbBjIFoJXhP0CoD0xPOhWJuWXuZXGBga9ybbOdzXpg== dependencies: ansi-html "0.0.7" html-entities "^1.2.0" @@ -6824,23 +8680,32 @@ webpack-node-externals@^1.7.2: version "1.7.2" resolved "https://registry.yarnpkg.com/webpack-node-externals/-/webpack-node-externals-1.7.2.tgz#6e1ee79ac67c070402ba700ef033a9b8d52ac4e3" -webpack-sources@^1.1.0, webpack-sources@^1.2.0: +webpack-sources@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.2.0.tgz#18181e0d013fce096faf6f8e6d41eeffffdceac2" dependencies: source-list-map "^2.0.0" source-map "~0.6.1" -webpack@^4.17.1, webpack@^4.19.0: - version "4.19.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.19.0.tgz#252296c8af2d21c0994911007defdb3913a7bc66" +webpack-sources@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85" + integrity sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA== 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" + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack@^4.29.0, webpack@^4.29.6: + version "4.29.6" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.29.6.tgz#66bf0ec8beee4d469f8b598d3988ff9d8d90e955" + integrity sha512-MwBwpiE1BQpMDkbnUUaW6K8RFZjljJHArC6tWQJoFm0oQtfoSebtg4Y7/QHnJ/SddtjYLHaKGX64CFjG5rehJw== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-module-context" "1.8.5" + "@webassemblyjs/wasm-edit" "1.8.5" + "@webassemblyjs/wasm-parser" "1.8.5" + acorn "^6.0.5" + acorn-dynamic-import "^4.0.0" ajv "^6.1.0" ajv-keywords "^3.1.0" chrome-trace-event "^1.0.0" @@ -6854,11 +8719,11 @@ webpack@^4.17.1, webpack@^4.19.0: mkdirp "~0.5.0" neo-async "^2.5.0" node-libs-browser "^2.0.0" - schema-utils "^0.4.4" + schema-utils "^1.0.0" tapable "^1.1.0" - uglifyjs-webpack-plugin "^1.2.4" + terser-webpack-plugin "^1.1.0" watchpack "^1.5.0" - webpack-sources "^1.2.0" + webpack-sources "^1.3.0" websocket-driver@>=0.5.1: version "0.7.0" @@ -6883,7 +8748,7 @@ which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" -which@1, which@^1.2.14, which@^1.2.9: +which@1, which@^1.2.14, which@^1.2.9, which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" dependencies: @@ -6895,6 +8760,13 @@ 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" + integrity sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA== + dependencies: + string-width "^2.1.1" + worker-farm@^1.5.2: version "1.6.0" resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.6.0.tgz#aecc405976fab5a95526180846f0dba288f3a4a0" @@ -6912,9 +8784,10 @@ wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" -xregexp@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.0.0.tgz#e698189de49dd2a18cc5687b05e17c8e43943020" +x-is-string@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/x-is-string/-/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82" + integrity sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI= xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: version "4.0.1" @@ -6936,11 +8809,13 @@ 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@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" +yargs-parser@^11.1.1: + version "11.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" + integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== dependencies: - camelcase "^4.1.0" + camelcase "^5.0.0" + decamelize "^1.2.0" yargs-parser@^5.0.0: version "5.0.0" @@ -6948,12 +8823,13 @@ yargs-parser@^5.0.0: dependencies: camelcase "^3.0.0" -yargs@^12.0.1: - version "12.0.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.2.tgz#fe58234369392af33ecbef53819171eff0f5aadc" +yargs@^12.0.5: + version "12.0.5" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" + integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== dependencies: cliui "^4.0.0" - decamelize "^2.0.0" + decamelize "^1.2.0" find-up "^3.0.0" get-caller-file "^1.0.1" os-locale "^3.0.0" @@ -6963,7 +8839,7 @@ yargs@^12.0.1: string-width "^2.0.0" which-module "^2.0.0" y18n "^3.2.1 || ^4.0.0" - yargs-parser "^10.1.0" + yargs-parser "^11.1.1" yargs@^7.0.0: version "7.1.0"