Basemap by:
@@ -97,9 +103,29 @@ const Attribution = () => (
);
-MapContainerFactory.deps = [MapPopoverFactory, MapControlFactory, EditorFactory];
+// {[id]: true \ false}
+export function prepareLayersToRender(layers, layerData, mapLayers) {
+ return layers.reduce(
+ (accu, layer, idx) => ({
+ ...accu,
+ [layer.id]:
+ layer.id !== GEOCODER_LAYER_ID &&
+ layer.shouldRenderLayer(layerData[idx]) &&
+ // if layer.id is not in mapLayers, don't render it
+ (!mapLayers || (mapLayers && mapLayers[layer.id]))
+ }),
+ {}
+ );
+}
+
+MapContainerFactory.deps = [
+ MapPopoverFactory,
+ MapControlFactory,
+ EditorFactory,
+ MapLegendPanelFactory
+];
-export default function MapContainerFactory(MapPopover, MapControl, Editor) {
+export default function MapContainerFactory(MapPopover, MapControl, Editor, MapLegendPanel) {
class MapContainer extends Component {
static propTypes = {
// required
@@ -121,6 +147,7 @@ export default function MapContainerFactory(MapPopover, MapControl, Editor) {
uiStateActions: PropTypes.object.isRequired,
// optional
+ primary: PropTypes.bool, // primary one will be reporting its size to appState
readOnly: PropTypes.bool,
isExport: PropTypes.bool,
clicked: PropTypes.object,
@@ -136,7 +163,8 @@ export default function MapContainerFactory(MapPopover, MapControl, Editor) {
static defaultProps = {
MapComponent: MapboxGLMap,
deckGlProps: {},
- index: 0
+ index: 0,
+ primary: true
};
constructor(props) {
@@ -147,6 +175,11 @@ export default function MapContainerFactory(MapPopover, MapControl, Editor) {
};
this._deck = null;
+ this._ref = createRef();
+ }
+
+ componentDidMount() {
+ observeDimensions(this._ref.current, this._handleResize);
}
componentWillUnmount() {
@@ -155,8 +188,19 @@ export default function MapContainerFactory(MapPopover, MapControl, Editor) {
this._map.off(MAPBOXGL_STYLE_UPDATE);
this._map.off(MAPBOXGL_RENDER);
}
+ unobserveDimensions(this._ref.current);
}
+ _handleResize = dimensions => {
+ const {primary} = this.props;
+ if (primary) {
+ const {mapStateActions} = this.props;
+ if (dimensions && dimensions.width > 0 && dimensions.height > 0) {
+ mapStateActions.updateMap(dimensions);
+ }
+ }
+ };
+
layersSelector = props => props.layers;
layerDataSelector = props => props.layerData;
mapLayersSelector = props => props.mapLayers;
@@ -165,18 +209,7 @@ export default function MapContainerFactory(MapPopover, MapControl, Editor) {
this.layersSelector,
this.layerDataSelector,
this.mapLayersSelector,
- // {[id]: true \ false}
- (layers, layerData, mapLayers) =>
- layers.reduce(
- (accu, layer, idx) => ({
- ...accu,
- [layer.id]:
- layer.id !== GEOCODER_LAYER_ID &&
- layer.shouldRenderLayer(layerData[idx]) &&
- this._isVisibleMapLayer(layer, mapLayers)
- }),
- {}
- )
+ prepareLayersToRender
);
filtersSelector = props => props.filters;
@@ -193,11 +226,6 @@ export default function MapContainerFactory(MapPopover, MapControl, Editor) {
);
/* component private functions */
- _isVisibleMapLayer(layer, mapLayers) {
- // if layer.id is not in mapLayers, don't render it
- return !mapLayers || (mapLayers && mapLayers[layer.id]);
- }
-
_onCloseMapPopover = () => {
this.props.visStateActions.onLayerClick(null);
};
@@ -333,8 +361,6 @@ export default function MapContainerFactory(MapPopover, MapControl, Editor) {
const commonProp = {
onClose: this._onCloseMapPopover,
- mapW: mapState.width,
- mapH: mapState.height,
zoom: mapState.zoom,
container: this._deck ? this._deck.canvas : undefined
};
@@ -458,10 +484,19 @@ export default function MapContainerFactory(MapPopover, MapControl, Editor) {
}
_onViewportChange = viewState => {
+ const {width, height, ...restViewState} = viewState;
+ const {primary} = this.props;
+ // react-map-gl sends 0,0 dimensions during initialization
+ // after we have received proper dimensions from observeDimensions
+ const next = {
+ ...(width > 0 && height > 0 ? viewState : restViewState),
+ // enabling transition in two maps may lead to endless update loops
+ transitionDuration: primary ? TRANSITION_DURATION : 0
+ };
if (typeof this.props.onViewStateChange === 'function') {
- this.props.onViewStateChange(viewState);
+ this.props.onViewStateChange(next);
}
- this.props.mapStateActions.updateMap(viewState);
+ this.props.mapStateActions.updateMap(next);
};
_toggleMapControl = panelId => {
@@ -470,36 +505,34 @@ export default function MapContainerFactory(MapPopover, MapControl, Editor) {
uiStateActions.toggleMapControl(panelId, index);
};
- render() {
+ /* eslint-disable complexity */
+ _renderMap() {
const {
mapState,
mapStyle,
mapStateActions,
- mapLayers,
layers,
MapComponent,
datasets,
mapboxApiAccessToken,
mapboxApiUrl,
mapControls,
+ isExport,
locale,
uiStateActions,
visStateActions,
interactionConfig,
editor,
index,
- isExport
+ primary
} = this.props;
const layersToRender = this.layersToRenderSelector(this.props);
- if (!mapStyle.bottomMapStyle) {
- // style not yet loaded
- return
;
- }
-
const mapProps = {
...mapState,
+ width: '100%',
+ height: '100%',
preserveDrawingBuffer: true,
mapboxApiAccessToken,
mapboxApiUrl,
@@ -510,13 +543,15 @@ export default function MapContainerFactory(MapPopover, MapControl, Editor) {
const isEdit = (mapControls.mapDraw || {}).active;
const hasGeocoderLayer = layers.find(l => l.id === GEOCODER_LAYER_ID);
+ const isSplit = Boolean(index);
return (
-
+ <>
'pointer' : undefined}
- transitionDuration={TRANSITION_DURATION}
onMouseMove={this.props.visStateActions.onMouseMove}
>
{this._renderDeckOverlay(layersToRender)}
@@ -573,7 +607,16 @@ export default function MapContainerFactory(MapPopover, MapControl, Editor) {
) : null}
{this._renderMapPopover(layersToRender)}
-
+ {!isSplit || index === 1 ? : null}
+ >
+ );
+ }
+
+ render() {
+ const {mapState, mapStyle} = this.props;
+ return (
+
+ {mapStyle.bottomMapStyle && this._renderMap()}
);
}
diff --git a/src/components/map/layer-selector-panel.js b/src/components/map/layer-selector-panel.js
index cf4f03c4cf..d0df143dad 100644
--- a/src/components/map/layer-selector-panel.js
+++ b/src/components/map/layer-selector-panel.js
@@ -1,3 +1,23 @@
+// Copyright (c) 2021 Uber Technologies, Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
import React, {useCallback, useMemo} from 'react';
import {MapControlButton} from 'components/common/styled-components';
import {Layers} from '../common/icons';
@@ -19,7 +39,7 @@ function LayerSelectorPanelFactory(MapControlTooltip, MapControlPanel) {
readOnly
}) => {
const visibleLayers = mapControls?.visibleLayers || {};
- const {active: isActive, show, disableClose} = visibleLayers;
+ const {active: isActive, show, disableClose} = visibleLayers || {};
const legendLayers = useMemo(
() =>
diff --git a/src/components/map/locale-panel.js b/src/components/map/locale-panel.js
index ddef051905..3729f7a3b1 100644
--- a/src/components/map/locale-panel.js
+++ b/src/components/map/locale-panel.js
@@ -1,3 +1,23 @@
+// Copyright (c) 2021 Uber Technologies, Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
import React, {useCallback} from 'react';
import ToolbarItem from 'components/common/toolbar-item';
import {MapControlButton} from 'components/common/styled-components';
@@ -15,7 +35,7 @@ function LocalePanelFactory(MapControlTooltip, MapControlPanel, MapControlToolba
/** @type {import('./locale-panel').LocalePanelComponent} */
const LocalePanel = React.memo(
({availableLocales, onToggleMenuPanel, onSetLocale, locale: currentLocal, mapControls}) => {
- const {active: isActive, disableClose} = mapControls.mapLocale || {};
+ const {active: isActive, disableClose, show} = mapControls.mapLocale || {};
const onClickItem = useCallback(
locale => {
@@ -33,7 +53,7 @@ function LocalePanelFactory(MapControlTooltip, MapControlPanel, MapControlToolba
);
const getLabel = useCallback(locale => `toolbar.${locale}`, []);
- if (!mapControls.mapLocale) {
+ if (!show) {
return null;
}
return (
diff --git a/src/components/map/map-control-panel.js b/src/components/map/map-control-panel.js
index 6fb0ef8aea..f907e5b7ad 100644
--- a/src/components/map/map-control-panel.js
+++ b/src/components/map/map-control-panel.js
@@ -1,3 +1,23 @@
+// Copyright (c) 2021 Uber Technologies, Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
import React from 'react';
import styled from 'styled-components';
import {FormattedMessage} from 'localization';
diff --git a/src/components/map/map-control-toolbar.js b/src/components/map/map-control-toolbar.js
index 186f2f036a..5730cd2f93 100644
--- a/src/components/map/map-control-toolbar.js
+++ b/src/components/map/map-control-toolbar.js
@@ -1,3 +1,23 @@
+// Copyright (c) 2021 Uber Technologies, Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
import styled from 'styled-components';
import VerticalToolbar from '../common/vertical-toolbar';
diff --git a/src/components/map/map-control-tooltip.js b/src/components/map/map-control-tooltip.js
index c41da9cd81..8997202520 100644
--- a/src/components/map/map-control-tooltip.js
+++ b/src/components/map/map-control-tooltip.js
@@ -1,3 +1,23 @@
+// Copyright (c) 2021 Uber Technologies, Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
import React from 'react';
import {Tooltip} from '..';
import {FormattedMessage} from 'localization';
diff --git a/src/components/map/map-control.js b/src/components/map/map-control.js
index 6c82568c2a..37245e5a6b 100644
--- a/src/components/map/map-control.js
+++ b/src/components/map/map-control.js
@@ -39,6 +39,11 @@ const StyledMapControl = styled.div`
display: grid;
row-gap: 8px;
justify-items: end;
+ pointer-events: none; /* prevent padding from blocking input */
+ & > * {
+ /* all children should allow input */
+ pointer-events: all;
+ }
`;
const LegendLogo = ;
diff --git a/src/components/map/map-draw-panel.js b/src/components/map/map-draw-panel.js
index 80058fbcbe..9398f3d99a 100644
--- a/src/components/map/map-draw-panel.js
+++ b/src/components/map/map-draw-panel.js
@@ -1,3 +1,23 @@
+// Copyright (c) 2021 Uber Technologies, Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
import React, {useCallback} from 'react';
import {EDITOR_MODES} from 'constants/default-settings';
import {
@@ -38,12 +58,13 @@ function MapDrawPanelFactory(MapControlTooltip, MapControlPanel, MapControlToolb
onToggleEditorVisibility,
actionIcons = defaultActionIcons
}) => {
- // const {mapDraw} = mapControls;
- // const {active: isActive} = mapDraw;
const isActive = mapControls?.mapDraw?.active;
const onToggleMenuPanel = useCallback(() => onToggleMapControl('mapDraw'), [
onToggleMapControl
]);
+ if (!mapControls?.mapDraw?.show) {
+ return null;
+ }
return (
{isActive ? (
diff --git a/src/components/map/map-legend-panel.js b/src/components/map/map-legend-panel.js
index 96f3e6d2f8..7edadf5746 100644
--- a/src/components/map/map-legend-panel.js
+++ b/src/components/map/map-legend-panel.js
@@ -1,3 +1,23 @@
+// Copyright (c) 2021 Uber Technologies, Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
import React, {useCallback} from 'react';
import {Legend} from 'components/common/icons';
import {FormattedMessage} from 'localization';
@@ -31,8 +51,8 @@ function MapLegendPanelFactory(MapControlTooltip, MapControlPanel, MapLegend) {
logoComponent,
actionIcons = defaultActionIcons
}) => {
- const {mapLegend} = mapControls;
- const {active: isActive, disableClose} = mapLegend;
+ const mapLegend = mapControls?.mapLegend || {};
+ const {active: isActive, disableClose} = mapLegend || {};
const onToggleMenuPanel = useCallback(() => onToggleMapControl('mapLegend'), [
onToggleMapControl
]);
@@ -45,6 +65,9 @@ function MapLegendPanelFactory(MapControlTooltip, MapControlPanel, MapLegend) {
[onToggleMenuPanel]
);
+ if (!mapLegend.show) {
+ return null;
+ }
return !isActive ? (
( splitMap.show && readOnly !== true, [splitMap.show, readOnly]);
+ if (!splitMap.show) {
+ return null;
+ }
+
return isVisible ? (
(;
diff --git a/src/components/maps-layout.js b/src/components/maps-layout.js
new file mode 100644
index 0000000000..fd9f6e2d0a
--- /dev/null
+++ b/src/components/maps-layout.js
@@ -0,0 +1,40 @@
+// Copyright (c) 2021 Uber Technologies, Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import styled from 'styled-components';
+import React from 'react';
+
+const Outer = styled.div`
+ position: relative;
+ display: flex;
+ width: 100%;
+ height: 100%;
+`;
+
+MapsLayoutFactory.deps = [];
+
+export default function MapsLayoutFactory() {
+ class MapsLayout extends React.Component {
+ render() {
+ return {this.props.children};
+ }
+ }
+ return MapsLayout;
+}
diff --git a/src/components/plot-container.js b/src/components/plot-container.js
index 2443121f23..35648e4efa 100644
--- a/src/components/plot-container.js
+++ b/src/components/plot-container.js
@@ -27,6 +27,7 @@ import {StaticMap} from 'react-map-gl';
import debounce from 'lodash.debounce';
import {exportImageError} from 'utils/notifications-utils';
import MapContainerFactory from './map-container';
+import MapsLayoutFactory from './maps-layout';
import {convertToPng} from 'utils/export-utils';
import {scaleMapStyleByResolution} from 'utils/map-style-utils/mapbox-gl-style-editor';
import {getScaleFromImageSize} from 'utils/export-utils';
@@ -50,7 +51,7 @@ const propTypes = {
splitMaps: PropTypes.arrayOf(PropTypes.object)
};
-PlotContainerFactory.deps = [MapContainerFactory];
+PlotContainerFactory.deps = [MapContainerFactory, MapsLayoutFactory];
// Remove mapbox logo in exported map, because it contains non-ascii characters
const StyledPlotContainer = styled.div`
@@ -78,7 +79,7 @@ const deckGlProps = {
}
};
-export default function PlotContainerFactory(MapContainer) {
+export default function PlotContainerFactory(MapContainer, MapsLayout) {
class PlotContainer extends Component {
constructor(props) {
super(props);
@@ -208,18 +209,20 @@ export default function PlotContainerFactory(MapContainer) {
};
const mapContainers = !isSplit ? (
-
+
) : (
- splitMaps.map((settings, index) => (
-
- ))
+
+ {splitMaps.map((settings, index) => (
+
+ ))}
+
);
-
return (
diff --git a/src/components/side-panel/panel-tab.js b/src/components/side-panel/panel-tab.js
index 9f3e430659..1dfea5fd90 100644
--- a/src/components/side-panel/panel-tab.js
+++ b/src/components/side-panel/panel-tab.js
@@ -1,3 +1,23 @@
+// Copyright (c) 2021 Uber Technologies, Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
import React from 'react';
import styled from 'styled-components';
import {Tooltip} from 'components/common/styled-components';
diff --git a/src/components/side-panel/panel-title.js b/src/components/side-panel/panel-title.js
index ccccb8b13f..d4dc9e1c9e 100644
--- a/src/components/side-panel/panel-title.js
+++ b/src/components/side-panel/panel-title.js
@@ -1,3 +1,23 @@
+// Copyright (c) 2021 Uber Technologies, Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
import styled from 'styled-components';
const PanelTitleFactory = () => styled.div`
diff --git a/src/components/side-panel/side-bar.js b/src/components/side-panel/side-bar.js
index 90ceb956ed..030dc3f9ed 100644
--- a/src/components/side-panel/side-bar.js
+++ b/src/components/side-panel/side-bar.js
@@ -34,6 +34,11 @@ const StyledSidePanelContainer = styled.div`
padding-right: ${props => props.theme.sidePanel.margin.right}px;
padding-bottom: ${props => props.theme.sidePanel.margin.bottom}px;
padding-left: ${props => props.theme.sidePanel.margin.left}px;
+ pointer-events: none; /* prevent padding from blocking input */
+ & > * {
+ /* all children should allow input */
+ pointer-events: all;
+ }
`;
const SideBarContainer = styled.div`
diff --git a/src/localization/ru.js b/src/localization/ru.js
index 0b09e6e934..9f4677825e 100644
--- a/src/localization/ru.js
+++ b/src/localization/ru.js
@@ -1,485 +1,488 @@
-// Copyright (c) 2021 Uber Technologies, Inc.
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
-
-import {LOCALES} from './locales';
-
-export default {
- property: {
- weight: 'вес',
- label: 'ярлык',
- fillColor: 'цвет заливки',
- color: 'цвет',
- coverage: 'покрытие',
- strokeColor: 'цвет обводки',
- radius: 'радиус',
- outline: 'контур',
- stroke: 'обводка',
- density: 'плотность',
- height: 'высота',
- sum: 'сумма',
- pointCount: 'Кол-во точек'
- },
- placeholder: {
- search: 'Поиск',
- selectField: 'Выберите поле',
- yAxis: 'Y Ось',
- selectType: 'Выберите A тип',
- selectValue: 'Выберите A значение',
- enterValue: 'Введите значение',
- empty: 'пустой'
- },
- misc: {
- by: '',
- valuesIn: 'Значение в',
- valueEquals: 'Значение равно',
- dataSource: 'Источник данных',
- brushRadius: 'Радиус кисти (km)',
- empty: ' '
- },
- mapLayers: {
- title: 'Слои карты',
- label: 'Обозначения',
- road: 'Дороги',
- border: 'Границы',
- building: 'Здания',
- water: 'Вода',
- land: 'Земля',
- '3dBuilding': '3d здания'
- },
- panel: {
- text: {
- label: 'Ярлык',
- labelWithId: 'Ярлык {labelId}',
- fontSize: 'Размер шрифта',
- fontColor: 'Цвет шрифта',
- textAnchor: 'Анкор текста',
- alignment: 'Положение',
- addMoreLabel: 'Добавить еще ярлык'
- }
- },
- sidebar: {
- panels: {
- layer: 'Слои',
- filter: 'Фильтры',
- interaction: 'Взаимодействия',
- basemap: 'Базовая карта'
- }
- },
- layer: {
- required: 'Требования*',
- radius: 'Радиус',
- color: 'Цвет',
- fillColor: 'Цвет заливки',
- outline: 'Контур',
- weight: 'Вес',
- propertyBasedOn: '{property} на основе',
- coverage: 'Покрытие',
- stroke: 'Обводка',
- strokeWidth: 'Ширина обводки',
- strokeColor: 'Цвет обводки',
- basic: 'Basic',
- trailLength: 'Trail Length',
- trailLengthDescription: 'Number of seconds for a path to completely fade out',
- newLayer: 'new layer',
- elevationByDescription: 'When off, height is based on count of points',
- colorByDescription: 'When off, color is based on count of points',
- aggregateBy: 'Aggregate {field} by',
- '3DModel': '3D Model',
- '3DModelOptions': '3D Model Options',
- type: {
- point: 'точки',
- arc: 'дуги',
- line: 'линии',
- grid: 'сетка',
- hexbin: 'hexbin',
- polygon: 'многоугольники',
- geojson: 'geojson',
- cluster: 'кластеры',
- icon: 'значки',
- heatmap: 'тепловая карта',
- hexagon: 'шестиугольник',
- hexagonid: 'H3',
- trip: 'пути',
- s2: 'S2',
- '3d': '3D'
- }
- },
- layerVisConfigs: {
- angle: 'Угол',
- strokeWidth: 'Ширина штриха (в пикселях)',
- strokeWidthRange: 'Диапазон ширины штриха',
- radius: 'Радиус',
- fixedRadius: 'Фиксированный радиус в метрах',
- fixedRadiusDescription: 'Сопоставьте радиус с абсолютным радиусом в метрах, например От 5 до 5 метров',
- radiusRange: 'Диапазон радиуса',
- clusterRadius: 'Радиус кластера в пикселях',
- radiusRangePixels: 'Диапазон радиуса в пикселях',
- opacity: 'Непрозрачность',
- coverage: 'Покрытие',
- outline: 'Контур',
- colorRange: 'Цветовая гамма',
- stroke: 'Обводка',
- strokeColor: 'Цвет обводки',
- strokeColorRange: 'Обводка Цветовой диапазон',
- targetColor: 'Целевой цвет',
- colorAggregation: 'Цветовая агрегация',
- heightAggregation: 'Агрегация по высоте',
- resolutionRange: 'Диапазон разрешения',
- sizeScale: 'Шкала размеров',
- worldUnitSize: 'Мировые ед.изм.',
- elevationScale: 'Шкала возвышения',
- enableElevationZoomFactor: 'Использовать коэффициент увеличения по высоте',
- enableElevationZoomFactorDescription: 'Отрегулируйте высоту / возвышение на основе текущего коэффициента масштабирования',
- enableHeightZoomFactor: 'вкл. коэффициент масштабирования по высоте',
- heightScale: 'Масштаб высоты',
- coverageRange: 'Диапазон покрытия',
- highPrecisionRendering: 'Высокая точность рендеринга',
- highPrecisionRenderingDescription: 'Высокая точность приведет к снижению производительности',
- height: 'Высота',
- heightDescription: 'Нажмите кнопку в правом верхнем углу карты, чтобы переключиться в 3D-вид',
- fill: 'Наполнить',
- enablePolygonHeight: 'Включить высоту многоугольника',
- showWireframe: 'Показать каркас',
- weightIntensity: 'Вес Интенсивность',
- zoomScale: 'Масштаб увеличения',
- heightRange: 'Диапазон высоты',
- heightMultiplier: 'Множитель высоты'
- },
- layerManager: {
- addData: 'Добавить данные',
- addLayer: 'Добавить слой',
- layerBlending: 'Смешивание слоев'
- },
- mapManager: {
- mapStyle: 'Стиль карты',
- addMapStyle: 'Добавить стиль карты',
- '3dBuildingColor': '3D Цвет здания'
- },
- layerConfiguration: {
- defaultDescription: 'Рассчитать {property} на основе выбранного поля',
- howTo: 'How to'
- },
- filterManager: {
- addFilter: 'Добавить фильтр'
- },
- datasetTitle: {
- showDataTable: 'Показать таблицу данных ',
- removeDataset: 'Удалить набор данных'
- },
- datasetInfo: {
- rowCount: '{rowCount} строк'
- },
- tooltip: {
- hideLayer: 'скрыть слой',
- showLayer: 'показать слой',
- hideFeature: 'Скрыть функцию',
- showFeature: 'Показать функцию',
- hide: 'скрыть',
- show: 'показать',
- removeLayer: 'Удалить слой',
- duplicateLayer: 'Дублировать слой',
- layerSettings: 'Настройки слоя',
- closePanel: 'Закрыть текущую панель',
- switchToDualView: 'Перейти в режим двойной карты',
- showLegend: 'Показать легенду',
- disable3DMap: 'Отключить 3D Карту',
- DrawOnMap: 'Рисовать на карте',
- selectLocale: 'Выберите регион',
- hideLayerPanel: 'Скрыть панель слоев',
- showLayerPanel: 'Показать панель слоев',
- moveToTop: 'Перейти к верхним слоям данных',
- selectBaseMapStyle: 'Выберите стиль базовой карты',
- delete: 'Удалить',
- timePlayback: 'Воспроизведение времени',
- cloudStorage: 'Облачное хранилище',
- '3DMap': '3D Карта',
- animationByWindow: 'Перемещение временного окна',
- animationByIncremental: 'Дополнительное временное окно',
- speed: 'скорость',
- play: 'проиграть',
- pause: 'пауза',
- reset: 'перезапустить'
- },
- toolbar: {
- exportImage: 'Экспорт изображения',
- exportData: 'Экспорт данных',
- exportMap: 'Экспорт карты',
- shareMapURL: 'Share Map URL',
- saveMap: 'Сохарнить Карту',
- select: 'Выбрать',
- polygon: 'Многоугольник',
- rectangle: 'Квадрат',
- hide: 'Скрыть',
- show: 'Показать',
- ...LOCALES
- },
- editor: {
- filterLayer: 'Слои фильтров',
- copyGeometry: 'Копировать геометрию'
- },
-
- modal: {
- title: {
- deleteDataset: 'Удалить данные',
- addDataToMap: 'Добавить данные на карту',
- exportImage: 'Экспорт изображения',
- exportData: 'Экспорт данных',
- exportMap: 'Экспорт карты',
- addCustomMapboxStyle: 'Добавить собственный стиль карты',
- saveMap: 'Поделиться Картой',
- shareURL: 'Поделиться URL'
- },
- button: {
- delete: 'Удалить',
- download: 'Скачать',
- export: 'Экспортировать',
- addStyle: 'Добавить стиль',
- save: 'Сохранить',
- defaultCancel: 'Отменить',
- defaultConfirm: 'Подтвердить'
- },
- exportImage: {
- ratioTitle: 'Ratio',
- ratioDescription: 'Выберите соотношение для различного использования',
- ratioOriginalScreen: 'Исходный экран',
- ratioCustom: 'Настройки',
- ratio4_3: '4:3',
- ratio16_9: '16:9',
- resolutionTitle: 'Разрешение',
- resolutionDescription: 'Для печати лучше использовать высокое разрешение',
- mapLegendTitle: 'Легенда карты',
- mapLegendAdd: 'Добавить легенду на карту'
- },
- exportData: {
- datasetTitle: 'Набор данных',
- datasetSubtitle: 'Выберите наборы данных, которые хотите экспортировать',
- allDatasets: 'Все',
- dataTypeTitle: 'Тип данных',
- dataTypeSubtitle: 'Выберите тип данных, которые вы хотите экспортировать',
- filterDataTitle: 'Отфильтрованные данные',
- filterDataSubtitle: 'Вы можете выбрать экспорт исходных данных или отфильтрованных данных',
- filteredData: 'Отфильтрованные данные',
- unfilteredData: 'Нефильтрованные данные',
- fileCount: '{fileCount} Файлов',
- rowCount: '{rowCount} Строк'
- },
- deleteData: {
- warning: 'вы собираетесь удалить этот набор данных. Это повлияет на {length} слой'
- },
- addStyle: {
- publishTitle:
- '2. Если вы указали URL-адрес файла mapbox на шаге 1, опубликуйте свой стиль на mapbox или предоставьте токен доступа. (Необязательно)',
- publishSubtitle1: 'Вы можете создать свой собственный стиль карты',
- publishSubtitle2: 'и',
- publishSubtitle3: 'опубликовать',
- publishSubtitle4: 'его.',
- publishSubtitle5: 'Чтобы использовать частный стиль, вставьте свой',
- publishSubtitle6: 'token доступа',
- publishSubtitle7:
- 'прим. kepler.gl - это клиентское приложение, данные остаются в вашем браузере .',
- exampleToken: 'например pk.abcdefg.xxxxxx',
- pasteTitle: '1. Вставить URL стиля',
- pasteSubtitle0: 'URL стиля может быть mapbox',
- pasteSubtitle1: 'Или',
- pasteSubtitle2: 'URL стиля',
- pasteSubtitle3: 'style.json используя',
- pasteSubtitle4: 'Mapbox GL Style Spec',
- namingTitle: '3. Назови свой стиль'
- },
- shareMap: {
- shareUriTitle: 'Поделиться URL карты',
- shareUriSubtitle: 'Создать URL карты, чтобы поделиться с другими',
- cloudTitle: 'Облачное хранилище',
- cloudSubtitle: 'Войдите и загрузите данные карты в свое личное облачное хранилище',
- shareDisclaimer:
- 'kepler.gl сохранит данные вашей карты в вашем личном облачном хранилище, только люди с URL-адресом могут получить доступ к вашей карте и данным. ' +
- 'Вы можете редактировать / удалить файл данных в своей облачной учетной записи в любое время.',
- gotoPage: 'Перейти на страницу Kepler.gl {currentProvider}'
- },
- statusPanel: {
- mapUploading: 'Загрузка карты',
- error: 'Ошибка'
- },
- saveMap: {
- title: 'Облачное хранилище',
- subtitle: 'Авторизуйтесь, чтобы сохранить карту в вашем личном облачном хранилище'
- },
- exportMap: {
- formatTitle: 'Формат карты',
- formatSubtitle: 'Выберите формат для экспорта карты',
- html: {
- selection: 'Экспорт карты в интерактивный файл HTML.',
- tokenTitle: 'Токен доступа к Mapbox',
- tokenSubtitle: 'Используйте свой токен доступа Mapbox в html(необязательно)',
- tokenPlaceholder: 'Вставьте токен доступа Mapbox',
- tokenMisuseWarning:
- '* If you do not provide your own token, the map may fail to display at any time when we replace ours to avoid misuse. ',
- tokenDisclaimer: 'Если вы не предоставите свой собственный токен, карта может не отображаться в любое время, когда мы заменяем наш, чтобы избежать неправильного использования.',
- tokenUpdate: 'Как обновить существующий токен карты.',
- modeTitle: 'Режим карты',
- modeSubtitle1: 'Выберите режим приложения. Подробнее',
- modeSubtitle2: 'Информация',
- modeDescription: 'Разрешить пользователям {mode} карту',
- read: 'чтение',
- edit: 'редактирование'
- },
- json: {
- configTitle: 'Конфигурация карты',
- configDisclaimer:
- 'Конфигурация карты будет включена в файл Json. Если вы используете kepler.gl в своем собственном приложении. Вы можете скопировать этот конфиг и передать его ',
- selection:
- 'Экспорт текущих данных карты и конфигурации в один файл Json. Позже вы сможете открыть ту же карту, загрузив этот файл на kepler.gl.',
- disclaimer:
- '* Конфигурация карты связана с загруженными наборами данных. DataId используется для привязки слоев, фильтров и всплывающих подсказок к определенному набору данных. ' +
- 'При передаче этой конфигурации addDataToMap, убедитесь, что идентификатор набора данных совпадает с dataId / s в этой конфигурации.'
- }
- },
- loadingDialog: {
- loading: 'Загрузка...'
- },
- loadData: {
- upload: 'Загрузить файлы',
- storage: 'Загрузить из хранилища'
- },
- tripInfo: {
- title: 'Как включить анимацию поездки',
- description1:
- 'Чтобы анимировать путь, данные geoJSON должны содержать LineString в своей геометрии объекта, а координаты в LineString должны иметь 4 элемента в форматах',
- code: ' [longitude, latitude, altitude, timestamp] ',
- description2:
- 'с последним элементом, являющимся отметкой времени. Допустимые форматы меток времени включают unix в секундах, например 1564184363, или в миллисекундах, например 1564184363000',
- example: ',Пример:'
- },
- iconInfo: {
- title: 'Как рисовать значки',
- description1:
- 'В вашем csv создайте столбец, поместите в него имя значка, который вы хотите нарисовать. Вы можете оставить ячейку пустой, если не хотите, чтобы значок отображался для некоторых точек. Когда столбец назван',
- code: 'значек',
- description2: ' kepler.gl автоматически создаст для вас слой значков.',
- example: 'Пример:',
- icons: 'Значки'
- },
- storageMapViewer: {
- lastModified: 'Последнее изменение {lastUpdated} назад',
- back: 'Назад'
- },
- overwriteMap: {
- title: 'Сохранение карты...',
- alreadyExists: 'уже существует в вашем {mapSaved}. Хотите его перезаписать?'
- },
- loadStorageMap: {
- back: 'Назад',
- goToPage: 'Перейти на страницу Kepler.gl {displayName}',
- storageMaps: 'Хранилище / Карты',
- noSavedMaps: 'Нет сохраненных карт'
- }
- },
- header: {
- visibleLayers: 'Видимые слои',
- layerLegend: 'Легенда слоя'
- },
- interactions: {
- tooltip: 'Подсказка',
- brush: 'Кисть',
- coordinate: 'Координаты',
- geocoder: 'Геокодер'
- },
- layerBlending: {
- title: 'Смешивание слоев',
- additive: 'добавление',
- normal: 'нормальное',
- subtractive: 'вычитание'
- },
- columns: {
- title: 'Столбцы',
- lat: 'lat',
- lng: 'lon',
- altitude: 'высота',
- icon: 'значек',
- geojson: 'geojson',
- token: 'token',
- arc: {
- lat0: 'lat источника',
- lng0: 'lng источника',
- lat1: 'lat цели',
- lng1: 'lng цели'
- },
- line: {
- alt0: 'высота источника',
- alt1: 'высота цели'
- },
- grid: {
- worldUnitSize: 'Размер сетки (km)'
- },
- hexagon: {
- worldUnitSize: 'Hexagon радиус (km)'
- },
- hex_id: 'hex id'
- },
- color: {
- customPalette: 'Ваша палитра',
- steps: 'шагов',
- type: 'тип',
- reversed: 'перевернуть'
- },
- scale: {
- colorScale: 'Цветовая шкала',
- sizeScale: 'Масштаб размера',
- strokeScale: 'Масштаб штриха',
- scale: 'Масштаб'
- },
- fileUploader: {
- message: 'Перетащите сюда ваши файлы',
- chromeMessage:
- '*Пользователь Chrome: ограничьте размер файла до 250 МБ, если нужно загрузить файл большего размера, попробуйте Safari',
- disclaimer:
- '*kepler.gl - это клиентское приложение без серверной части. Данные живут только на вашем компьютере. ' +
- 'Никакая информация или данные карты не отправляются ни на один сервер.',
- configUploadMessage:
- 'Загрузите {fileFormatNames} или сохраненную карту **Json**. Подробнее [**supported file formats**]',
- browseFiles: 'Просматреть файлы',
- uploading: 'Загрузка',
- fileNotSupported: 'File {errorFiles} is not supported.',
- or: 'or'
- },
- geocoder: {
- title: 'Введите адрес или координаты, например 37.79, -122.40'
- },
- fieldSelector: {
- clearAll: 'Очистить все',
- formatting: 'Форматирование'
- },
- compare: {
- modeLabel: 'Режим сравнения',
- typeLabel: 'Тип сравнения',
- types: {
- absolute: 'Абсолютный',
- relative: 'Относительный'
- }
- },
- mapPopover: {
- primary: 'Первичный'
- },
- density: 'density',
- 'Bug Report': 'Отчет об ошибках',
- 'User Guide': 'Инструкции',
- Save: 'Сохранить',
- Share: 'Поделиться'
-};
+// Copyright (c) 2021 Uber Technologies, Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import {LOCALES} from './locales';
+
+export default {
+ property: {
+ weight: 'вес',
+ label: 'ярлык',
+ fillColor: 'цвет заливки',
+ color: 'цвет',
+ coverage: 'покрытие',
+ strokeColor: 'цвет обводки',
+ radius: 'радиус',
+ outline: 'контур',
+ stroke: 'обводка',
+ density: 'плотность',
+ height: 'высота',
+ sum: 'сумма',
+ pointCount: 'Кол-во точек'
+ },
+ placeholder: {
+ search: 'Поиск',
+ selectField: 'Выберите поле',
+ yAxis: 'Y Ось',
+ selectType: 'Выберите A тип',
+ selectValue: 'Выберите A значение',
+ enterValue: 'Введите значение',
+ empty: 'пустой'
+ },
+ misc: {
+ by: '',
+ valuesIn: 'Значение в',
+ valueEquals: 'Значение равно',
+ dataSource: 'Источник данных',
+ brushRadius: 'Радиус кисти (km)',
+ empty: ' '
+ },
+ mapLayers: {
+ title: 'Слои карты',
+ label: 'Обозначения',
+ road: 'Дороги',
+ border: 'Границы',
+ building: 'Здания',
+ water: 'Вода',
+ land: 'Земля',
+ '3dBuilding': '3d здания'
+ },
+ panel: {
+ text: {
+ label: 'Ярлык',
+ labelWithId: 'Ярлык {labelId}',
+ fontSize: 'Размер шрифта',
+ fontColor: 'Цвет шрифта',
+ textAnchor: 'Анкор текста',
+ alignment: 'Положение',
+ addMoreLabel: 'Добавить еще ярлык'
+ }
+ },
+ sidebar: {
+ panels: {
+ layer: 'Слои',
+ filter: 'Фильтры',
+ interaction: 'Взаимодействия',
+ basemap: 'Базовая карта'
+ }
+ },
+ layer: {
+ required: 'Требования*',
+ radius: 'Радиус',
+ color: 'Цвет',
+ fillColor: 'Цвет заливки',
+ outline: 'Контур',
+ weight: 'Вес',
+ propertyBasedOn: '{property} на основе',
+ coverage: 'Покрытие',
+ stroke: 'Обводка',
+ strokeWidth: 'Ширина обводки',
+ strokeColor: 'Цвет обводки',
+ basic: 'Basic',
+ trailLength: 'Trail Length',
+ trailLengthDescription: 'Number of seconds for a path to completely fade out',
+ newLayer: 'new layer',
+ elevationByDescription: 'When off, height is based on count of points',
+ colorByDescription: 'When off, color is based on count of points',
+ aggregateBy: 'Aggregate {field} by',
+ '3DModel': '3D Model',
+ '3DModelOptions': '3D Model Options',
+ type: {
+ point: 'точки',
+ arc: 'дуги',
+ line: 'линии',
+ grid: 'сетка',
+ hexbin: 'hexbin',
+ polygon: 'многоугольники',
+ geojson: 'geojson',
+ cluster: 'кластеры',
+ icon: 'значки',
+ heatmap: 'тепловая карта',
+ hexagon: 'шестиугольник',
+ hexagonid: 'H3',
+ trip: 'пути',
+ s2: 'S2',
+ '3d': '3D'
+ }
+ },
+ layerVisConfigs: {
+ angle: 'Угол',
+ strokeWidth: 'Ширина штриха (в пикселях)',
+ strokeWidthRange: 'Диапазон ширины штриха',
+ radius: 'Радиус',
+ fixedRadius: 'Фиксированный радиус в метрах',
+ fixedRadiusDescription:
+ 'Сопоставьте радиус с абсолютным радиусом в метрах, например От 5 до 5 метров',
+ radiusRange: 'Диапазон радиуса',
+ clusterRadius: 'Радиус кластера в пикселях',
+ radiusRangePixels: 'Диапазон радиуса в пикселях',
+ opacity: 'Непрозрачность',
+ coverage: 'Покрытие',
+ outline: 'Контур',
+ colorRange: 'Цветовая гамма',
+ stroke: 'Обводка',
+ strokeColor: 'Цвет обводки',
+ strokeColorRange: 'Обводка Цветовой диапазон',
+ targetColor: 'Целевой цвет',
+ colorAggregation: 'Цветовая агрегация',
+ heightAggregation: 'Агрегация по высоте',
+ resolutionRange: 'Диапазон разрешения',
+ sizeScale: 'Шкала размеров',
+ worldUnitSize: 'Мировые ед.изм.',
+ elevationScale: 'Шкала возвышения',
+ enableElevationZoomFactor: 'Использовать коэффициент увеличения по высоте',
+ enableElevationZoomFactorDescription:
+ 'Отрегулируйте высоту / возвышение на основе текущего коэффициента масштабирования',
+ enableHeightZoomFactor: 'вкл. коэффициент масштабирования по высоте',
+ heightScale: 'Масштаб высоты',
+ coverageRange: 'Диапазон покрытия',
+ highPrecisionRendering: 'Высокая точность рендеринга',
+ highPrecisionRenderingDescription: 'Высокая точность приведет к снижению производительности',
+ height: 'Высота',
+ heightDescription: 'Нажмите кнопку в правом верхнем углу карты, чтобы переключиться в 3D-вид',
+ fill: 'Наполнить',
+ enablePolygonHeight: 'Включить высоту многоугольника',
+ showWireframe: 'Показать каркас',
+ weightIntensity: 'Вес Интенсивность',
+ zoomScale: 'Масштаб увеличения',
+ heightRange: 'Диапазон высоты',
+ heightMultiplier: 'Множитель высоты'
+ },
+ layerManager: {
+ addData: 'Добавить данные',
+ addLayer: 'Добавить слой',
+ layerBlending: 'Смешивание слоев'
+ },
+ mapManager: {
+ mapStyle: 'Стиль карты',
+ addMapStyle: 'Добавить стиль карты',
+ '3dBuildingColor': '3D Цвет здания'
+ },
+ layerConfiguration: {
+ defaultDescription: 'Рассчитать {property} на основе выбранного поля',
+ howTo: 'How to'
+ },
+ filterManager: {
+ addFilter: 'Добавить фильтр'
+ },
+ datasetTitle: {
+ showDataTable: 'Показать таблицу данных ',
+ removeDataset: 'Удалить набор данных'
+ },
+ datasetInfo: {
+ rowCount: '{rowCount} строк'
+ },
+ tooltip: {
+ hideLayer: 'скрыть слой',
+ showLayer: 'показать слой',
+ hideFeature: 'Скрыть функцию',
+ showFeature: 'Показать функцию',
+ hide: 'скрыть',
+ show: 'показать',
+ removeLayer: 'Удалить слой',
+ duplicateLayer: 'Дублировать слой',
+ layerSettings: 'Настройки слоя',
+ closePanel: 'Закрыть текущую панель',
+ switchToDualView: 'Перейти в режим двойной карты',
+ showLegend: 'Показать легенду',
+ disable3DMap: 'Отключить 3D Карту',
+ DrawOnMap: 'Рисовать на карте',
+ selectLocale: 'Выберите регион',
+ hideLayerPanel: 'Скрыть панель слоев',
+ showLayerPanel: 'Показать панель слоев',
+ moveToTop: 'Перейти к верхним слоям данных',
+ selectBaseMapStyle: 'Выберите стиль базовой карты',
+ delete: 'Удалить',
+ timePlayback: 'Воспроизведение времени',
+ cloudStorage: 'Облачное хранилище',
+ '3DMap': '3D Карта',
+ animationByWindow: 'Перемещение временного окна',
+ animationByIncremental: 'Дополнительное временное окно',
+ speed: 'скорость',
+ play: 'проиграть',
+ pause: 'пауза',
+ reset: 'перезапустить'
+ },
+ toolbar: {
+ exportImage: 'Экспорт изображения',
+ exportData: 'Экспорт данных',
+ exportMap: 'Экспорт карты',
+ shareMapURL: 'Share Map URL',
+ saveMap: 'Сохарнить Карту',
+ select: 'Выбрать',
+ polygon: 'Многоугольник',
+ rectangle: 'Квадрат',
+ hide: 'Скрыть',
+ show: 'Показать',
+ ...LOCALES
+ },
+ editor: {
+ filterLayer: 'Слои фильтров',
+ copyGeometry: 'Копировать геометрию'
+ },
+
+ modal: {
+ title: {
+ deleteDataset: 'Удалить данные',
+ addDataToMap: 'Добавить данные на карту',
+ exportImage: 'Экспорт изображения',
+ exportData: 'Экспорт данных',
+ exportMap: 'Экспорт карты',
+ addCustomMapboxStyle: 'Добавить собственный стиль карты',
+ saveMap: 'Поделиться Картой',
+ shareURL: 'Поделиться URL'
+ },
+ button: {
+ delete: 'Удалить',
+ download: 'Скачать',
+ export: 'Экспортировать',
+ addStyle: 'Добавить стиль',
+ save: 'Сохранить',
+ defaultCancel: 'Отменить',
+ defaultConfirm: 'Подтвердить'
+ },
+ exportImage: {
+ ratioTitle: 'Ratio',
+ ratioDescription: 'Выберите соотношение для различного использования',
+ ratioOriginalScreen: 'Исходный экран',
+ ratioCustom: 'Настройки',
+ ratio4_3: '4:3',
+ ratio16_9: '16:9',
+ resolutionTitle: 'Разрешение',
+ resolutionDescription: 'Для печати лучше использовать высокое разрешение',
+ mapLegendTitle: 'Легенда карты',
+ mapLegendAdd: 'Добавить легенду на карту'
+ },
+ exportData: {
+ datasetTitle: 'Набор данных',
+ datasetSubtitle: 'Выберите наборы данных, которые хотите экспортировать',
+ allDatasets: 'Все',
+ dataTypeTitle: 'Тип данных',
+ dataTypeSubtitle: 'Выберите тип данных, которые вы хотите экспортировать',
+ filterDataTitle: 'Отфильтрованные данные',
+ filterDataSubtitle: 'Вы можете выбрать экспорт исходных данных или отфильтрованных данных',
+ filteredData: 'Отфильтрованные данные',
+ unfilteredData: 'Нефильтрованные данные',
+ fileCount: '{fileCount} Файлов',
+ rowCount: '{rowCount} Строк'
+ },
+ deleteData: {
+ warning: 'вы собираетесь удалить этот набор данных. Это повлияет на {length} слой'
+ },
+ addStyle: {
+ publishTitle:
+ '2. Если вы указали URL-адрес файла mapbox на шаге 1, опубликуйте свой стиль на mapbox или предоставьте токен доступа. (Необязательно)',
+ publishSubtitle1: 'Вы можете создать свой собственный стиль карты',
+ publishSubtitle2: 'и',
+ publishSubtitle3: 'опубликовать',
+ publishSubtitle4: 'его.',
+ publishSubtitle5: 'Чтобы использовать частный стиль, вставьте свой',
+ publishSubtitle6: 'token доступа',
+ publishSubtitle7:
+ 'прим. kepler.gl - это клиентское приложение, данные остаются в вашем браузере .',
+ exampleToken: 'например pk.abcdefg.xxxxxx',
+ pasteTitle: '1. Вставить URL стиля',
+ pasteSubtitle0: 'URL стиля может быть mapbox',
+ pasteSubtitle1: 'Или',
+ pasteSubtitle2: 'URL стиля',
+ pasteSubtitle3: 'style.json используя',
+ pasteSubtitle4: 'Mapbox GL Style Spec',
+ namingTitle: '3. Назови свой стиль'
+ },
+ shareMap: {
+ shareUriTitle: 'Поделиться URL карты',
+ shareUriSubtitle: 'Создать URL карты, чтобы поделиться с другими',
+ cloudTitle: 'Облачное хранилище',
+ cloudSubtitle: 'Войдите и загрузите данные карты в свое личное облачное хранилище',
+ shareDisclaimer:
+ 'kepler.gl сохранит данные вашей карты в вашем личном облачном хранилище, только люди с URL-адресом могут получить доступ к вашей карте и данным. ' +
+ 'Вы можете редактировать / удалить файл данных в своей облачной учетной записи в любое время.',
+ gotoPage: 'Перейти на страницу Kepler.gl {currentProvider}'
+ },
+ statusPanel: {
+ mapUploading: 'Загрузка карты',
+ error: 'Ошибка'
+ },
+ saveMap: {
+ title: 'Облачное хранилище',
+ subtitle: 'Авторизуйтесь, чтобы сохранить карту в вашем личном облачном хранилище'
+ },
+ exportMap: {
+ formatTitle: 'Формат карты',
+ formatSubtitle: 'Выберите формат для экспорта карты',
+ html: {
+ selection: 'Экспорт карты в интерактивный файл HTML.',
+ tokenTitle: 'Токен доступа к Mapbox',
+ tokenSubtitle: 'Используйте свой токен доступа Mapbox в html(необязательно)',
+ tokenPlaceholder: 'Вставьте токен доступа Mapbox',
+ tokenMisuseWarning:
+ '* If you do not provide your own token, the map may fail to display at any time when we replace ours to avoid misuse. ',
+ tokenDisclaimer:
+ 'Если вы не предоставите свой собственный токен, карта может не отображаться в любое время, когда мы заменяем наш, чтобы избежать неправильного использования.',
+ tokenUpdate: 'Как обновить существующий токен карты.',
+ modeTitle: 'Режим карты',
+ modeSubtitle1: 'Выберите режим приложения. Подробнее',
+ modeSubtitle2: 'Информация',
+ modeDescription: 'Разрешить пользователям {mode} карту',
+ read: 'чтение',
+ edit: 'редактирование'
+ },
+ json: {
+ configTitle: 'Конфигурация карты',
+ configDisclaimer:
+ 'Конфигурация карты будет включена в файл Json. Если вы используете kepler.gl в своем собственном приложении. Вы можете скопировать этот конфиг и передать его ',
+ selection:
+ 'Экспорт текущих данных карты и конфигурации в один файл Json. Позже вы сможете открыть ту же карту, загрузив этот файл на kepler.gl.',
+ disclaimer:
+ '* Конфигурация карты связана с загруженными наборами данных. DataId используется для привязки слоев, фильтров и всплывающих подсказок к определенному набору данных. ' +
+ 'При передаче этой конфигурации addDataToMap, убедитесь, что идентификатор набора данных совпадает с dataId / s в этой конфигурации.'
+ }
+ },
+ loadingDialog: {
+ loading: 'Загрузка...'
+ },
+ loadData: {
+ upload: 'Загрузить файлы',
+ storage: 'Загрузить из хранилища'
+ },
+ tripInfo: {
+ title: 'Как включить анимацию поездки',
+ description1:
+ 'Чтобы анимировать путь, данные geoJSON должны содержать LineString в своей геометрии объекта, а координаты в LineString должны иметь 4 элемента в форматах',
+ code: ' [longitude, latitude, altitude, timestamp] ',
+ description2:
+ 'с последним элементом, являющимся отметкой времени. Допустимые форматы меток времени включают unix в секундах, например 1564184363, или в миллисекундах, например 1564184363000',
+ example: ',Пример:'
+ },
+ iconInfo: {
+ title: 'Как рисовать значки',
+ description1:
+ 'В вашем csv создайте столбец, поместите в него имя значка, который вы хотите нарисовать. Вы можете оставить ячейку пустой, если не хотите, чтобы значок отображался для некоторых точек. Когда столбец назван',
+ code: 'значек',
+ description2: ' kepler.gl автоматически создаст для вас слой значков.',
+ example: 'Пример:',
+ icons: 'Значки'
+ },
+ storageMapViewer: {
+ lastModified: 'Последнее изменение {lastUpdated} назад',
+ back: 'Назад'
+ },
+ overwriteMap: {
+ title: 'Сохранение карты...',
+ alreadyExists: 'уже существует в вашем {mapSaved}. Хотите его перезаписать?'
+ },
+ loadStorageMap: {
+ back: 'Назад',
+ goToPage: 'Перейти на страницу Kepler.gl {displayName}',
+ storageMaps: 'Хранилище / Карты',
+ noSavedMaps: 'Нет сохраненных карт'
+ }
+ },
+ header: {
+ visibleLayers: 'Видимые слои',
+ layerLegend: 'Легенда слоя'
+ },
+ interactions: {
+ tooltip: 'Подсказка',
+ brush: 'Кисть',
+ coordinate: 'Координаты',
+ geocoder: 'Геокодер'
+ },
+ layerBlending: {
+ title: 'Смешивание слоев',
+ additive: 'добавление',
+ normal: 'нормальное',
+ subtractive: 'вычитание'
+ },
+ columns: {
+ title: 'Столбцы',
+ lat: 'lat',
+ lng: 'lon',
+ altitude: 'высота',
+ icon: 'значек',
+ geojson: 'geojson',
+ token: 'token',
+ arc: {
+ lat0: 'lat источника',
+ lng0: 'lng источника',
+ lat1: 'lat цели',
+ lng1: 'lng цели'
+ },
+ line: {
+ alt0: 'высота источника',
+ alt1: 'высота цели'
+ },
+ grid: {
+ worldUnitSize: 'Размер сетки (km)'
+ },
+ hexagon: {
+ worldUnitSize: 'Hexagon радиус (km)'
+ },
+ hex_id: 'hex id'
+ },
+ color: {
+ customPalette: 'Ваша палитра',
+ steps: 'шагов',
+ type: 'тип',
+ reversed: 'перевернуть'
+ },
+ scale: {
+ colorScale: 'Цветовая шкала',
+ sizeScale: 'Масштаб размера',
+ strokeScale: 'Масштаб штриха',
+ scale: 'Масштаб'
+ },
+ fileUploader: {
+ message: 'Перетащите сюда ваши файлы',
+ chromeMessage:
+ '*Пользователь Chrome: ограничьте размер файла до 250 МБ, если нужно загрузить файл большего размера, попробуйте Safari',
+ disclaimer:
+ '*kepler.gl - это клиентское приложение без серверной части. Данные живут только на вашем компьютере. ' +
+ 'Никакая информация или данные карты не отправляются ни на один сервер.',
+ configUploadMessage:
+ 'Загрузите {fileFormatNames} или сохраненную карту **Json**. Подробнее [**supported file formats**]',
+ browseFiles: 'Просматреть файлы',
+ uploading: 'Загрузка',
+ fileNotSupported: 'File {errorFiles} is not supported.',
+ or: 'or'
+ },
+ geocoder: {
+ title: 'Введите адрес или координаты, например 37.79, -122.40'
+ },
+ fieldSelector: {
+ clearAll: 'Очистить все',
+ formatting: 'Форматирование'
+ },
+ compare: {
+ modeLabel: 'Режим сравнения',
+ typeLabel: 'Тип сравнения',
+ types: {
+ absolute: 'Абсолютный',
+ relative: 'Относительный'
+ }
+ },
+ mapPopover: {
+ primary: 'Первичный'
+ },
+ density: 'density',
+ 'Bug Report': 'Отчет об ошибках',
+ 'User Guide': 'Инструкции',
+ Save: 'Сохранить',
+ Share: 'Поделиться'
+};
diff --git a/src/reducers/vis-state-updaters.d.ts b/src/reducers/vis-state-updaters.d.ts
index 8c87cc36d0..b8bbccdda3 100644
--- a/src/reducers/vis-state-updaters.d.ts
+++ b/src/reducers/vis-state-updaters.d.ts
@@ -163,8 +163,10 @@ export type Editor = {
selectedFeature: any;
visible: boolean;
};
+
+export type SplitMapLayers = {[key: string]: boolean};
export type SplitMap = {
- layers: {[key: string]: boolean};
+ layers: SplitMapLayers;
};
export type AnimationConfig = {
domain: number[] | null;
@@ -527,3 +529,6 @@ export function receiveMapConfigUpdater(
export const INITIAL_VIS_STATE: VisState;
export const DEFAULT_ANIMATION_CONFIG: AnimationConfig;
export const DEFAULT_EDITOR: Editor;
+
+export function computeSplitMapLayers(layers: Array): Array;
+export function closeSpecificMapAtIndex(state: VisState, action: unknown);
diff --git a/src/reducers/vis-state-updaters.js b/src/reducers/vis-state-updaters.js
index d4f8243e81..1106470ae1 100644
--- a/src/reducers/vis-state-updaters.js
+++ b/src/reducers/vis-state-updaters.js
@@ -1434,7 +1434,7 @@ export function renameDatasetUpdater(state, action) {
* @param {Object} action action
* @returns {Object} nextState
*/
-function closeSpecificMapAtIndex(state, action) {
+export function closeSpecificMapAtIndex(state, action) {
// retrieve layers meta data from the remaining map that we need to keep
const indexToRetrieve = 1 - action.payload;
const mapLayers = state.splitMaps[indexToRetrieve].layers;
diff --git a/src/utils/observe-dimensions.d.ts b/src/utils/observe-dimensions.d.ts
new file mode 100644
index 0000000000..70476c66b1
--- /dev/null
+++ b/src/utils/observe-dimensions.d.ts
@@ -0,0 +1,18 @@
+import {RefObject} from 'react';
+
+export interface Dimensions {
+ readonly height: number;
+ readonly width: number;
+}
+
+export default function useDimensions(
+ throttleDelay?: number
+): [RefObject, Dimensions | undefined];
+
+export function observeDimensions(
+ target: Element,
+ handleResize: (size: Dimensions) => void,
+ throttleDelay?: number
+);
+
+export function unobserveDimensions(target: Element);
diff --git a/src/utils/observe-dimensions.js b/src/utils/observe-dimensions.js
new file mode 100644
index 0000000000..e0864ab5af
--- /dev/null
+++ b/src/utils/observe-dimensions.js
@@ -0,0 +1,115 @@
+// Copyright (c) 2021 Uber Technologies, Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+import throttle from 'lodash.throttle';
+import {useEffect, useRef, useState} from 'react';
+import ResizeObserver from 'resize-observer-polyfill';
+
+const DEFAULT_THROTTLE_DELAY = 100;
+
+// Using a single ResizeObserver for all elements can be 10x
+// more performant than using a separate ResizeObserver per element
+// https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/z6ienONUb5A/F5-VcUZtBAAJ
+let _observerRegistry;
+
+function getObserverRegistry() {
+ if (_observerRegistry === undefined) {
+ const callbacks = new Map();
+ const resizeObserver = new ResizeObserver((entries, observer) => {
+ for (const entry of entries) {
+ callbacks.get(entry.target)?.(entry, observer);
+ }
+ });
+ _observerRegistry = {
+ subscribe(target, callback) {
+ resizeObserver.observe(target);
+ callbacks.set(target, callback);
+ },
+ unsubscribe(target) {
+ resizeObserver.unobserve(target);
+ callbacks.delete(target);
+ }
+ };
+ }
+ return _observerRegistry;
+}
+
+export function observeDimensions(target, handleResize, throttleDelay = DEFAULT_THROTTLE_DELAY) {
+ const registry = getObserverRegistry();
+ const handler = throttleDelay > 0 ? throttle(handleResize, throttleDelay) : handleResize;
+ registry.subscribe(target, entry => handler(getSize(target, entry)));
+}
+
+export function unobserveDimensions(target) {
+ const registry = getObserverRegistry();
+ registry.unsubscribe(target);
+}
+
+function getSize(node, entry) {
+ if (entry.contentRect) {
+ const {width, height} = entry.contentRect;
+ return {width, height};
+ }
+ if (node.getBoundingClientRect) {
+ const {width, height} = node.getBoundingClientRect();
+ return {width, height};
+ }
+ return null;
+}
+
+/**
+ * Usage example:
+ * const [ref, dimensions] = useDimensions();
+ *
+ * @param throttleDelay
+ * @returns {[React.RefObject, {width: number, height: number} | null]}
+ */
+export default function useDimensions(throttleDelay = DEFAULT_THROTTLE_DELAY) {
+ const ref = useRef(null);
+ const [size, setSize] = useState(null);
+
+ useEffect(() => {
+ const {current} = ref;
+ if (!current) {
+ return;
+ }
+
+ let didUnobserve = false;
+ observeDimensions(
+ current,
+ entry => {
+ if (didUnobserve) return;
+ const newSize = getSize(current, entry);
+ if (newSize) {
+ // @ts-ignore
+ setSize(newSize);
+ }
+ },
+ throttleDelay
+ );
+ return () => {
+ didUnobserve = true;
+ unobserveDimensions(current);
+ };
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [throttleDelay]);
+
+ return [ref, size];
+}
diff --git a/test/browser/components/kepler-gl-test.js b/test/browser/components/kepler-gl-test.js
index e5d40bf644..0abee0a363 100644
--- a/test/browser/components/kepler-gl-test.js
+++ b/test/browser/components/kepler-gl-test.js
@@ -250,8 +250,7 @@ test('Components -> KeplerGl -> Mount -> Load default map style task', t => {
{
type: ActionTypes.REQUEST_MAP_STYLES,
payload: DEFAULT_MAP_STYLES.reduce((accu, curr) => ({...accu, [curr.id]: curr}), {})
- },
- {type: ActionTypes.UPDATE_MAP, payload: {width: 800, height: 800}}
+ }
];
t.deepEqual(
actions,
@@ -398,8 +397,7 @@ test('Components -> KeplerGl -> Mount -> Load custom map style task', t => {
(accu, curr) => ({...accu, [curr.id]: curr, smoothie: customStyle1}),
{}
)
- },
- {type: ActionTypes.UPDATE_MAP, payload: {width: 800, height: 800}}
+ }
];
t.deepEqual(
actions,
diff --git a/test/helpers/mock-map-styles.js b/test/helpers/mock-map-styles.js
index f49bcec6ae..9e3b57972e 100644
--- a/test/helpers/mock-map-styles.js
+++ b/test/helpers/mock-map-styles.js
@@ -1,4 +1,4 @@
-// Copyright (c) 2020 Uber Technologies, Inc.
+// Copyright (c) 2021 Uber Technologies, Inc.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
diff --git a/yarn.lock b/yarn.lock
index 599655d249..1519cb867a 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3298,6 +3298,14 @@ agent-base@^4.3.0:
dependencies:
es6-promisify "^5.0.0"
+aggregate-error@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a"
+ integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==
+ dependencies:
+ clean-stack "^2.0.0"
+ indent-string "^4.0.0"
+
airbnb-prop-types@^2.16.0:
version "2.16.0"
resolved "https://registry.yarnpkg.com/airbnb-prop-types/-/airbnb-prop-types-2.16.0.tgz#b96274cefa1abb14f623f804173ee97c13971dc2"
@@ -3424,12 +3432,12 @@ append-buffer@^1.0.2:
dependencies:
buffer-equal "^1.0.0"
-append-transform@^0.4.0:
- version "0.4.0"
- resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991"
- integrity sha1-126/jKlNJ24keja61EpLdKthGZE=
+append-transform@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-2.0.0.tgz#99d9d29c7b38391e6f428d28ce136551f0b77e12"
+ integrity sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==
dependencies:
- default-require-extensions "^1.0.0"
+ default-require-extensions "^3.0.0"
aproba@^1.0.3, aproba@^1.1.1:
version "1.2.0"
@@ -3456,19 +3464,12 @@ argparse@^1.0.7:
dependencies:
sprintf-js "~1.0.2"
-arr-diff@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf"
- integrity sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=
- dependencies:
- arr-flatten "^1.0.1"
-
arr-diff@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=
-arr-flatten@^1.0.1, arr-flatten@^1.1.0:
+arr-flatten@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==
@@ -3519,11 +3520,6 @@ array-uniq@^1.0.1:
resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=
-array-unique@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53"
- integrity sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=
-
array-unique@^0.3.2:
version "0.3.2"
resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
@@ -3687,20 +3683,6 @@ babel-eslint@^10.1.0:
eslint-visitor-keys "^1.0.0"
resolve "^1.12.0"
-babel-generator@^6.18.0:
- version "6.26.1"
- resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90"
- integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==
- 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-jest@^26.6.3:
version "26.6.3"
resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.6.3.tgz#d87d25cb0037577a0c89f82e5755c5d293c01056"
@@ -3868,7 +3850,7 @@ babel-tape-runner@^3.0.0:
"@babel/register" "^7.0.0"
glob "^6.0.1"
-babel-template@^6.16.0, babel-template@^6.3.0:
+babel-template@^6.3.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02"
integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=
@@ -3879,7 +3861,7 @@ babel-template@^6.16.0, babel-template@^6.3.0:
babylon "^6.18.0"
lodash "^4.17.4"
-babel-traverse@^6.18.0, babel-traverse@^6.26.0:
+babel-traverse@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee"
integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=
@@ -3894,7 +3876,7 @@ babel-traverse@^6.18.0, babel-traverse@^6.26.0:
invariant "^2.2.2"
lodash "^4.17.4"
-babel-types@^6.18.0, babel-types@^6.26.0:
+babel-types@^6.26.0:
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497"
integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=
@@ -4081,15 +4063,6 @@ brace-expansion@^1.1.7:
balanced-match "^1.0.0"
concat-map "0.0.1"
-braces@^1.8.2:
- version "1.8.5"
- resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7"
- integrity sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=
- dependencies:
- expand-range "^1.8.1"
- preserve "^0.2.0"
- repeat-element "^1.1.2"
-
braces@^2.3.1, braces@^2.3.2:
version "2.3.2"
resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729"
@@ -4398,14 +4371,15 @@ cached-path-relative@^1.0.0, cached-path-relative@^1.0.2:
resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.0.2.tgz#a13df4196d26776220cc3356eb147a52dba2c6db"
integrity sha512-5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg==
-caching-transform@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-1.0.1.tgz#6dbdb2f20f8d8fbce79f3e94e9d1742dcdf5c0a1"
- integrity sha1-bb2y8g+Nj7znnz6U6dF0Lc31wKE=
+caching-transform@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-4.0.0.tgz#00d297a4206d71e2163c39eaffa8157ac0651f0f"
+ integrity sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==
dependencies:
- md5-hex "^1.2.0"
- mkdirp "^0.5.1"
- write-file-atomic "^1.1.4"
+ hasha "^5.0.0"
+ make-dir "^3.0.0"
+ package-hash "^4.0.0"
+ write-file-atomic "^3.0.0"
call-bind@^1.0.0:
version "1.0.0"
@@ -4442,11 +4416,6 @@ camelcase@^2.1.0:
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f"
integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=
-camelcase@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
- integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=
-
camelcase@^5.0.0, camelcase@^5.3.1:
version "5.3.1"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
@@ -4663,6 +4632,11 @@ clean-css@^4.2.3:
dependencies:
source-map "~0.6.0"
+clean-stack@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b"
+ integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==
+
cli-boxes@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143"
@@ -4981,7 +4955,7 @@ continuable-cache@^0.3.1:
resolved "https://registry.yarnpkg.com/continuable-cache/-/continuable-cache-0.3.1.tgz#bd727a7faed77e71ff3985ac93351a912733ad0f"
integrity sha1-vXJ6f67XfnH/OYWskzUakSczrQ8=
-convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.5.1, convert-source-map@^1.6.0, convert-source-map@^1.7.0:
+convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442"
integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==
@@ -5074,17 +5048,6 @@ cosmiconfig@^7.0.0:
path-type "^4.0.0"
yaml "^1.10.0"
-coveralls@^3.0.6:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/coveralls/-/coveralls-3.1.0.tgz#13c754d5e7a2dd8b44fe5269e21ca394fb4d615b"
- integrity sha512-sHxOu2ELzW8/NC1UP5XVLbZDzO4S3VxfFye3XYCznopHy02YjNkHcj5bKaVw2O7hVaBdBjEdQGpie4II1mWhuQ==
- dependencies:
- js-yaml "^3.13.1"
- lcov-parse "^1.0.0"
- log-driver "^1.2.7"
- minimist "^1.2.5"
- request "^2.88.2"
-
create-ecdh@^4.0.0:
version "4.0.4"
resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e"
@@ -5123,23 +5086,6 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7:
safe-buffer "^5.0.1"
sha.js "^2.4.8"
-cross-spawn@^4:
- 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"
-
cross-spawn@^6.0.0, cross-spawn@^6.0.5:
version "6.0.5"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
@@ -5504,11 +5450,6 @@ de-indent@^1.0.2:
resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d"
integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=
-debug-log@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f"
- integrity sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8=
-
debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9:
version "2.6.9"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
@@ -5538,7 +5479,7 @@ decamelize-keys@^1.1.0:
decamelize "^1.1.0"
map-obj "^1.0.0"
-decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.2.0:
+decamelize@^1.1.0, decamelize@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
@@ -5595,12 +5536,12 @@ default-gateway@^4.2.0:
execa "^1.0.0"
ip-regex "^2.1.0"
-default-require-extensions@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8"
- integrity sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=
+default-require-extensions@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-3.0.0.tgz#e03f93aac9b2b6443fc52e5e4a37b3ad9ad8df96"
+ integrity sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==
dependencies:
- strip-bom "^2.0.0"
+ strip-bom "^4.0.0"
define-properties@^1.1.2, define-properties@^1.1.3:
version "1.1.3"
@@ -5699,13 +5640,6 @@ detect-file@^1.0.0:
resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7"
integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=
-detect-indent@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208"
- integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg=
- dependencies:
- repeating "^2.0.0"
-
detect-libc@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
@@ -6287,6 +6221,11 @@ es-to-primitive@^1.2.1:
is-date-object "^1.0.1"
is-symbol "^1.0.2"
+es6-error@^4.0.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d"
+ integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==
+
es6-promise@^4.0.3, es6-promise@^4.0.5:
version "4.2.8"
resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a"
@@ -6555,19 +6494,6 @@ exec-sh@^0.3.2:
resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5"
integrity sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==
-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"
-
execa@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8"
@@ -6613,13 +6539,6 @@ exit@^0.1.2:
resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=
-expand-brackets@^0.1.4:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b"
- integrity sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=
- dependencies:
- is-posix-bracket "^0.1.0"
-
expand-brackets@^2.1.4:
version "2.1.4"
resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622"
@@ -6633,13 +6552,6 @@ expand-brackets@^2.1.4:
snapdragon "^0.8.1"
to-regex "^3.0.1"
-expand-range@^1.8.1:
- version "1.8.2"
- resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337"
- integrity sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=
- dependencies:
- fill-range "^2.1.0"
-
expand-template@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c"
@@ -6741,13 +6653,6 @@ external-editor@^3.0.3:
iconv-lite "^0.4.24"
tmp "^0.0.33"
-extglob@^0.3.1:
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1"
- integrity sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=
- dependencies:
- is-extglob "^1.0.0"
-
extglob@^2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543"
@@ -6911,27 +6816,11 @@ file-uri-to-path@1.0.0:
resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==
-filename-regex@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
- integrity sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=
-
filesize@^3.6.1:
version "3.6.1"
resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317"
integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==
-fill-range@^2.1.0:
- version "2.2.4"
- resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565"
- integrity sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==
- dependencies:
- is-number "^2.1.0"
- isobject "^2.0.0"
- randomatic "^3.0.0"
- repeat-element "^1.1.2"
- repeat-string "^1.5.2"
-
fill-range@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
@@ -6975,15 +6864,6 @@ find-babel-config@^1.2.0:
json5 "^0.5.1"
path-exists "^3.0.0"
-find-cache-dir@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9"
- integrity sha1-yN765XyKUqinhPnjHFfHQumToLk=
- dependencies:
- commondir "^1.0.1"
- mkdirp "^0.5.1"
- pkg-dir "^1.0.0"
-
find-cache-dir@^2.0.0, find-cache-dir@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7"
@@ -6993,6 +6873,15 @@ find-cache-dir@^2.0.0, find-cache-dir@^2.1.0:
make-dir "^2.0.0"
pkg-dir "^3.0.0"
+find-cache-dir@^3.2.0:
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880"
+ integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==
+ dependencies:
+ commondir "^1.0.1"
+ make-dir "^3.0.2"
+ pkg-dir "^4.1.0"
+
find-file-up@^0.1.2:
version "0.1.3"
resolved "https://registry.yarnpkg.com/find-file-up/-/find-file-up-0.1.3.tgz#cf68091bcf9f300a40da411b37da5cce5a2fbea0"
@@ -7017,21 +6906,6 @@ find-process@^1.4.3:
commander "^5.1.0"
debug "^4.1.1"
-find-up@^1.0.0:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
- integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=
- dependencies:
- path-exists "^2.0.0"
- pinkie-promise "^2.0.0"
-
-find-up@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
- integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c=
- 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"
@@ -7114,20 +6988,20 @@ for-in@^1.0.1, for-in@^1.0.2:
resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=
-for-own@^0.1.3, for-own@^0.1.4:
+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"
-foreground-child@^1.5.3, foreground-child@^1.5.6:
- version "1.5.6"
- resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-1.5.6.tgz#4fd71ad2dfde96789b980a5c0a295937cb2f5ce9"
- integrity sha1-T9ca0t/elnibmApcCilZN8svXOk=
+foreground-child@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-2.0.0.tgz#71b32800c9f15aa8f2f83f4a6bd9bff35d861a53"
+ integrity sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==
dependencies:
- cross-spawn "^4"
- signal-exit "^3.0.0"
+ cross-spawn "^7.0.0"
+ signal-exit "^3.0.2"
forever-agent@~0.6.1:
version "0.6.1"
@@ -7175,6 +7049,11 @@ from2@^2.1.0:
inherits "^2.0.1"
readable-stream "^2.0.0"
+fromentries@^1.2.0:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/fromentries/-/fromentries-1.3.2.tgz#e4bca6808816bf8f93b52750f1127f5a6fd86e3a"
+ integrity sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==
+
fs-constants@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
@@ -7367,11 +7246,6 @@ get-stdin@^8.0.0:
resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53"
integrity sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==
-get-stream@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
- integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=
-
get-stream@^4.0.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
@@ -7457,21 +7331,6 @@ gl@^4.2.2:
node-gyp "^7.1.0"
prebuild-install "^5.3.5"
-glob-base@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4"
- integrity sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=
- dependencies:
- glob-parent "^2.0.0"
- is-glob "^2.0.0"
-
-glob-parent@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28"
- integrity sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=
- dependencies:
- is-glob "^2.0.0"
-
glob-parent@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae"
@@ -7514,7 +7373,7 @@ glob@^6.0.1:
once "^1.3.0"
path-is-absolute "^1.0.0"
-glob@^7.0.0, glob@^7.0.3, glob@^7.0.6, glob@^7.1.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@~7.1.6:
+glob@^7.0.0, glob@^7.0.3, glob@^7.1.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@~7.1.6:
version "7.1.6"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
@@ -7717,7 +7576,7 @@ handle-thing@^2.0.0:
resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e"
integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==
-handlebars@^4.0.3, handlebars@^4.7.6:
+handlebars@^4.7.6:
version "4.7.7"
resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1"
integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==
@@ -7754,11 +7613,6 @@ has-ansi@^2.0.0:
dependencies:
ansi-regex "^2.0.0"
-has-flag@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
- integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=
-
has-flag@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
@@ -7834,6 +7688,14 @@ hash.js@^1.0.0, hash.js@^1.0.3:
inherits "^2.0.3"
minimalistic-assert "^1.0.1"
+hasha@^5.0.0:
+ version "5.2.2"
+ resolved "https://registry.yarnpkg.com/hasha/-/hasha-5.2.2.tgz#a48477989b3b327aea3c04f53096d816d97522a1"
+ integrity sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==
+ dependencies:
+ is-stream "^2.0.0"
+ type-fest "^0.8.0"
+
hast-util-is-element@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/hast-util-is-element/-/hast-util-is-element-1.1.0.tgz#3b3ed5159a2707c6137b48637fbfe068e175a425"
@@ -8334,11 +8196,6 @@ invariant@^2.2.2, invariant@^2.2.4:
dependencies:
loose-envify "^1.0.0"
-invert-kv@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
- integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY=
-
invert-kv@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02"
@@ -8521,18 +8378,6 @@ is-docker@^2.0.0:
resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.1.1.tgz#4125a88e44e450d384e09047ede71adc2d144156"
integrity sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==
-is-dotfile@^1.0.0:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1"
- integrity sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=
-
-is-equal-shallow@^0.1.3:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534"
- integrity sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=
- dependencies:
- is-primitive "^2.0.0"
-
is-extendable@^0.1.0, is-extendable@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
@@ -8545,11 +8390,6 @@ is-extendable@^1.0.1:
dependencies:
is-plain-object "^2.0.4"
-is-extglob@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0"
- integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=
-
is-extglob@^2.1.0, is-extglob@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
@@ -8582,13 +8422,6 @@ is-generator-fn@^2.0.0:
resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118"
integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==
-is-glob@^2.0.0, is-glob@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863"
- integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=
- dependencies:
- is-extglob "^1.0.0"
-
is-glob@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a"
@@ -8628,13 +8461,6 @@ is-number-object@^1.0.4:
resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.4.tgz#36ac95e741cf18b283fc1ddf5e83da798e3ec197"
integrity sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==
-is-number@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
- integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=
- dependencies:
- kind-of "^3.0.2"
-
is-number@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
@@ -8642,11 +8468,6 @@ is-number@^3.0.0:
dependencies:
kind-of "^3.0.2"
-is-number@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff"
- integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==
-
is-number@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
@@ -8693,21 +8514,11 @@ is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4:
dependencies:
isobject "^3.0.1"
-is-posix-bracket@^0.1.0:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4"
- integrity sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=
-
is-potential-custom-element-name@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz#0c52e54bcca391bb2c494b21e8626d7336c6e397"
integrity sha1-DFLlS8yjkbssSUsh6GJtczbG45c=
-is-primitive@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575"
- integrity sha1-IHurkWOEmcB7Kt8kCkGochADRXU=
-
is-redirect@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24"
@@ -8790,7 +8601,7 @@ is-unc-path@^1.0.0:
dependencies:
unc-path-regex "^0.1.2"
-is-utf8@^0.2.0, is-utf8@^0.2.1:
+is-utf8@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=
@@ -8877,35 +8688,17 @@ isstream@~0.1.2:
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
-istanbul-lib-coverage@^1.1.2, istanbul-lib-coverage@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz#ccf7edcd0a0bb9b8f729feeb0930470f9af664f0"
- integrity sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ==
-
-istanbul-lib-coverage@^3.0.0:
+istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.0.0-alpha.1:
version "3.0.0"
resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec"
integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==
-istanbul-lib-hook@^1.1.0:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.2.2.tgz#bc6bf07f12a641fbf1c85391d0daa8f0aea6bf86"
- integrity sha512-/Jmq7Y1VeHnZEQ3TL10VHyb564mn6VrQXHchON9Jf/AEcmQ3ZIiyD1BVzNOKTZf/G3gE+kiGK6SmpF9y3qGPLw==
- dependencies:
- append-transform "^0.4.0"
-
-istanbul-lib-instrument@^1.10.0:
- version "1.10.2"
- resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz#1f55ed10ac3c47f2bdddd5307935126754d0a9ca"
- integrity sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A==
+istanbul-lib-hook@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz#8f84c9434888cc6b1d0a9d7092a76d239ebf0cc6"
+ integrity sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==
dependencies:
- babel-generator "^6.18.0"
- babel-template "^6.16.0"
- babel-traverse "^6.18.0"
- babel-types "^6.18.0"
- babylon "^6.18.0"
- istanbul-lib-coverage "^1.2.1"
- semver "^5.3.0"
+ append-transform "^2.0.0"
istanbul-lib-instrument@^4.0.0, istanbul-lib-instrument@^4.0.3:
version "4.0.3"
@@ -8917,15 +8710,18 @@ istanbul-lib-instrument@^4.0.0, istanbul-lib-instrument@^4.0.3:
istanbul-lib-coverage "^3.0.0"
semver "^6.3.0"
-istanbul-lib-report@^1.1.3:
- version "1.1.5"
- resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.5.tgz#f2a657fc6282f96170aaf281eb30a458f7f4170c"
- integrity sha512-UsYfRMoi6QO/doUshYNqcKJqVmFe9w51GZz8BS3WB0lYxAllQYklka2wP9+dGZeHYaWIdcXUx8JGdbqaoXRXzw==
+istanbul-lib-processinfo@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz#e1426514662244b2f25df728e8fd1ba35fe53b9c"
+ integrity sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==
dependencies:
- istanbul-lib-coverage "^1.2.1"
- mkdirp "^0.5.1"
- path-parse "^1.0.5"
- supports-color "^3.1.2"
+ archy "^1.0.0"
+ cross-spawn "^7.0.0"
+ istanbul-lib-coverage "^3.0.0-alpha.1"
+ make-dir "^3.0.0"
+ p-map "^3.0.0"
+ rimraf "^3.0.0"
+ uuid "^3.3.3"
istanbul-lib-report@^3.0.0:
version "3.0.0"
@@ -8936,17 +8732,6 @@ istanbul-lib-report@^3.0.0:
make-dir "^3.0.0"
supports-color "^7.1.0"
-istanbul-lib-source-maps@^1.2.3:
- version "1.2.6"
- resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.6.tgz#37b9ff661580f8fca11232752ee42e08c6675d8f"
- integrity sha512-TtbsY5GIHgbMsMiRw35YBHGpZ1DVFEO19vxxeiDMYaeOFOCzfnYVxvl6pOUIZR4dtPhAGpSMup8OyF8ubsaqEg==
- dependencies:
- debug "^3.1.0"
- istanbul-lib-coverage "^1.2.1"
- mkdirp "^0.5.1"
- rimraf "^2.6.1"
- source-map "^0.5.3"
-
istanbul-lib-source-maps@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz#75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9"
@@ -8956,13 +8741,6 @@ istanbul-lib-source-maps@^4.0.0:
istanbul-lib-coverage "^3.0.0"
source-map "^0.6.1"
-istanbul-reports@^1.4.0:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.5.1.tgz#97e4dbf3b515e8c484caea15d6524eebd3ff4e1a"
- integrity sha512-+cfoZ0UXzWjhAdzosCPP3AN8vvef8XDkWtTfgaN+7L3YTpNYITnCaEkceo5SEYy644VkHka/P1FvkWvrG/rrJw==
- dependencies:
- handlebars "^4.0.3"
-
istanbul-reports@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b"
@@ -9450,11 +9228,6 @@ jsdom@^16.4.0:
ws "^7.2.3"
xml-name-validator "^3.0.0"
-jsesc@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b"
- integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s=
-
jsesc@^2.5.1:
version "2.5.2"
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
@@ -9645,13 +9418,6 @@ lazystream@^1.0.0:
dependencies:
readable-stream "^2.0.5"
-lcid@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835"
- integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=
- dependencies:
- invert-kv "^1.0.0"
-
lcid@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf"
@@ -9659,11 +9425,6 @@ lcid@^2.0.0:
dependencies:
invert-kv "^2.0.0"
-lcov-parse@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/lcov-parse/-/lcov-parse-1.0.0.tgz#eb0d46b54111ebc561acb4c408ef9363bdc8f7e0"
- integrity sha1-6w1GtUER68VhrLTECO+TY73I9+A=
-
lead@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/lead/-/lead-1.0.0.tgz#6f14f99a37be3a9dd784f5495690e5903466ee42"
@@ -9694,17 +9455,6 @@ livereload-js@^2.3.0:
resolved "https://registry.yarnpkg.com/livereload-js/-/livereload-js-2.4.0.tgz#447c31cf1ea9ab52fc20db615c5ddf678f78009c"
integrity sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw==
-load-json-file@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
- integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=
- dependencies:
- graceful-fs "^4.1.2"
- parse-json "^2.2.0"
- pify "^2.0.0"
- pinkie-promise "^2.0.0"
- strip-bom "^2.0.0"
-
load-json-file@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b"
@@ -9738,14 +9488,6 @@ loader-utils@^2.0.0:
emojis-list "^3.0.0"
json5 "^2.1.2"
-locate-path@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
- integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=
- dependencies:
- p-locate "^2.0.0"
- path-exists "^3.0.0"
-
locate-path@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e"
@@ -9856,11 +9598,6 @@ lodash@4.17.19, lodash@^4.0.1, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11,
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b"
integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==
-log-driver@^1.2.7:
- version "1.2.7"
- resolved "https://registry.yarnpkg.com/log-driver/-/log-driver-1.2.7.tgz#63b95021f0702fedfa2c9bb0a24e7797d71871d8"
- integrity sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==
-
log-symbols@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920"
@@ -9912,14 +9649,6 @@ lowercase-keys@^1.0.0:
resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f"
integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==
-lru-cache@^4.0.1:
- 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"
@@ -9947,7 +9676,7 @@ make-dir@^2.0.0, make-dir@^2.1.0:
pify "^4.0.1"
semver "^5.6.0"
-make-dir@^3.0.0:
+make-dir@^3.0.0, make-dir@^3.0.2:
version "3.1.0"
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
@@ -10047,11 +9776,6 @@ material-colors@^1.2.1:
resolved "https://registry.yarnpkg.com/material-colors/-/material-colors-1.2.6.tgz#6d1958871126992ceecc72f4bcc4d8f010865f46"
integrity sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg==
-math-random@^1.0.1:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c"
- integrity sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==
-
math.gl@^3.3.0:
version "3.3.1"
resolved "https://registry.yarnpkg.com/math.gl/-/math.gl-3.3.1.tgz#f51e8102e1265d4ae0789ea21850e73f043f18bb"
@@ -10064,18 +9788,6 @@ mathml-tag-names@^2.1.3:
resolved "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz#4ddadd67308e780cf16a47685878ee27b736a0a3"
integrity sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==
-md5-hex@^1.2.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/md5-hex/-/md5-hex-1.3.0.tgz#d2c4afe983c4370662179b8cad145219135046c4"
- integrity sha1-0sSv6YPENwZiF5uMrRRSGRNQRsQ=
- dependencies:
- md5-o-matic "^0.1.1"
-
-md5-o-matic@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/md5-o-matic/-/md5-o-matic-0.1.1.tgz#822bccd65e117c514fab176b25945d54100a03c3"
- integrity sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=
-
md5.js@^1.3.4:
version "1.3.5"
resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f"
@@ -10182,13 +9894,6 @@ media-typer@0.3.0:
resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=
-mem@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76"
- integrity sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=
- dependencies:
- mimic-fn "^1.0.0"
-
mem@^4.0.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178"
@@ -10257,13 +9962,6 @@ merge-descriptors@1.0.1:
resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=
-merge-source-map@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646"
- integrity sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==
- dependencies:
- source-map "^0.6.1"
-
merge-stream@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
@@ -10287,25 +9985,6 @@ micromark@~2.10.0:
debug "^4.0.0"
parse-entities "^2.0.0"
-micromatch@^2.3.11:
- version "2.3.11"
- resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565"
- integrity sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=
- dependencies:
- arr-diff "^2.0.0"
- array-unique "^0.2.1"
- braces "^1.8.2"
- expand-brackets "^0.1.4"
- extglob "^0.3.1"
- filename-regex "^2.0.0"
- is-extglob "^1.0.0"
- is-glob "^2.0.1"
- kind-of "^3.0.2"
- normalize-path "^2.0.1"
- object.omit "^2.0.0"
- parse-glob "^3.0.4"
- regex-cache "^0.4.2"
-
micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.5:
version "3.1.10"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
@@ -10802,6 +10481,13 @@ node-notifier@^8.0.0:
uuid "^8.3.0"
which "^2.0.2"
+node-preload@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/node-preload/-/node-preload-0.2.1.tgz#c03043bb327f417a18fee7ab7ee57b408a144301"
+ integrity sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==
+ dependencies:
+ process-on-spawn "^1.0.0"
+
node-releases@^1.1.71:
version "1.1.72"
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.72.tgz#14802ab6b1039a79a0c7d662b610a5bbd76eacbe"
@@ -10844,7 +10530,7 @@ normalize-package-data@^3.0.0:
semver "^7.3.2"
validate-npm-package-license "^3.0.1"
-normalize-path@^2.0.1, normalize-path@^2.1.1:
+normalize-path@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=
@@ -10929,38 +10615,38 @@ nwsapi@^2.2.0:
resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7"
integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==
-nyc@^11.4.1:
- version "11.9.0"
- resolved "https://registry.yarnpkg.com/nyc/-/nyc-11.9.0.tgz#4106e89e8fbe73623a1fc8b6ecb7abaa271ae1e4"
- integrity sha512-w8OdJAhXL5izerzZMdqzYKMj/pgHJyY3qEPYBjLLxrhcVoHEY9pU5ENIiZyCgG9OR7x3VcUMoD40o6PtVpfR4g==
+nyc@^15.1.0:
+ version "15.1.0"
+ resolved "https://registry.yarnpkg.com/nyc/-/nyc-15.1.0.tgz#1335dae12ddc87b6e249d5a1994ca4bdaea75f02"
+ integrity sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==
dependencies:
- archy "^1.0.0"
- arrify "^1.0.1"
- caching-transform "^1.0.0"
- convert-source-map "^1.5.1"
- debug-log "^1.0.1"
- default-require-extensions "^1.0.0"
- find-cache-dir "^0.1.1"
- find-up "^2.1.0"
- foreground-child "^1.5.3"
- glob "^7.0.6"
- istanbul-lib-coverage "^1.1.2"
- istanbul-lib-hook "^1.1.0"
- istanbul-lib-instrument "^1.10.0"
- istanbul-lib-report "^1.1.3"
- istanbul-lib-source-maps "^1.2.3"
- istanbul-reports "^1.4.0"
- md5-hex "^1.2.0"
- merge-source-map "^1.1.0"
- micromatch "^3.1.10"
- mkdirp "^0.5.0"
- resolve-from "^2.0.0"
- rimraf "^2.6.2"
- signal-exit "^3.0.1"
- spawn-wrap "^1.4.2"
- test-exclude "^4.2.0"
- yargs "11.1.0"
- yargs-parser "^8.0.0"
+ "@istanbuljs/load-nyc-config" "^1.0.0"
+ "@istanbuljs/schema" "^0.1.2"
+ caching-transform "^4.0.0"
+ convert-source-map "^1.7.0"
+ decamelize "^1.2.0"
+ find-cache-dir "^3.2.0"
+ find-up "^4.1.0"
+ foreground-child "^2.0.0"
+ get-package-type "^0.1.0"
+ glob "^7.1.6"
+ istanbul-lib-coverage "^3.0.0"
+ istanbul-lib-hook "^3.0.0"
+ istanbul-lib-instrument "^4.0.0"
+ istanbul-lib-processinfo "^2.0.2"
+ istanbul-lib-report "^3.0.0"
+ istanbul-lib-source-maps "^4.0.0"
+ istanbul-reports "^3.0.2"
+ make-dir "^3.0.0"
+ node-preload "^0.2.1"
+ p-map "^3.0.0"
+ process-on-spawn "^1.0.0"
+ resolve-from "^5.0.0"
+ rimraf "^3.0.0"
+ signal-exit "^3.0.2"
+ spawn-wrap "^2.0.0"
+ test-exclude "^6.0.0"
+ yargs "^15.0.2"
oauth-sign@~0.9.0:
version "0.9.0"
@@ -11048,14 +10734,6 @@ object.getownpropertydescriptors@^2.0.3:
define-properties "^1.1.3"
es-abstract "^1.17.0-next.1"
-object.omit@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa"
- integrity sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=
- dependencies:
- for-own "^0.1.4"
- is-extendable "^0.1.1"
-
object.pick@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
@@ -11164,15 +10842,6 @@ os-homedir@^1.0.0, os-homedir@^1.0.1:
resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M=
-os-locale@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2"
- integrity sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==
- dependencies:
- execa "^0.7.0"
- lcid "^1.0.0"
- mem "^1.1.0"
-
os-locale@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a"
@@ -11222,13 +10891,6 @@ p-is-promise@^2.0.0:
resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e"
integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==
-p-limit@^1.1.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"
- integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==
- dependencies:
- p-try "^1.0.0"
-
p-limit@^2.0.0, p-limit@^2.2.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
@@ -11236,13 +10898,6 @@ p-limit@^2.0.0, p-limit@^2.2.0:
dependencies:
p-try "^2.0.0"
-p-locate@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
- integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=
- dependencies:
- p-limit "^1.1.0"
-
p-locate@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4"
@@ -11262,6 +10917,13 @@ p-map@^2.0.0:
resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175"
integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==
+p-map@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d"
+ integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==
+ dependencies:
+ aggregate-error "^3.0.0"
+
p-retry@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328"
@@ -11269,16 +10931,21 @@ p-retry@^3.0.1:
dependencies:
retry "^0.12.0"
-p-try@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
- integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=
-
p-try@^2.0.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
+package-hash@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/package-hash/-/package-hash-4.0.0.tgz#3537f654665ec3cc38827387fc904c163c54f506"
+ integrity sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==
+ dependencies:
+ graceful-fs "^4.1.15"
+ hasha "^5.0.0"
+ lodash.flattendeep "^4.4.0"
+ release-zalgo "^1.0.0"
+
package-json@^2.0.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/package-json/-/package-json-2.4.0.tgz#0d15bd67d1cbbddbb2ca222ff2edb86bcb31a8bb"
@@ -11383,17 +11050,7 @@ parse-git-config@^0.2.0:
dependencies:
ini "^1.3.3"
-parse-glob@^3.0.4:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c"
- integrity sha1-ssN2z7EfNVE7rdFz7wu246OIORw=
- dependencies:
- glob-base "^0.3.0"
- is-dotfile "^1.0.0"
- is-extglob "^1.0.0"
- is-glob "^2.0.0"
-
-parse-json@^2.1.0, parse-json@^2.2.0:
+parse-json@^2.1.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=
@@ -11486,13 +11143,6 @@ path-dirname@^1.0.0:
resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0"
integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=
-path-exists@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
- integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=
- dependencies:
- pinkie-promise "^2.0.0"
-
path-exists@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
@@ -11523,7 +11173,7 @@ path-key@^3.0.0, path-key@^3.1.0:
resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
-path-parse@^1.0.5, path-parse@^1.0.6:
+path-parse@^1.0.6:
version "1.0.6"
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
@@ -11557,15 +11207,6 @@ path-to-regexp@^1.7.0:
dependencies:
isarray "0.0.1"
-path-type@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
- integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=
- dependencies:
- graceful-fs "^4.1.2"
- pify "^2.0.0"
- pinkie-promise "^2.0.0"
-
path-type@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f"
@@ -11665,13 +11306,6 @@ pixelmatch@^5.1.0:
dependencies:
pngjs "^4.0.1"
-pkg-dir@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4"
- integrity sha1-ektQio1bstYp1EcFb/TpyTFM89Q=
- dependencies:
- find-up "^1.0.0"
-
pkg-dir@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3"
@@ -11679,7 +11313,7 @@ pkg-dir@^3.0.0:
dependencies:
find-up "^3.0.0"
-pkg-dir@^4.2.0:
+pkg-dir@^4.1.0, pkg-dir@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
@@ -11843,11 +11477,6 @@ prepend-http@^1.0.0, prepend-http@^1.0.1:
resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=
-preserve@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
- integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=
-
prettier-linter-helpers@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b"
@@ -11905,6 +11534,13 @@ process-nextick-args@~1.0.6:
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
integrity sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=
+process-on-spawn@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/process-on-spawn/-/process-on-spawn-1.0.0.tgz#95b05a23073d30a17acfdc92a440efd2baefdc93"
+ integrity sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==
+ dependencies:
+ fromentries "^1.2.0"
+
process@^0.10.0:
version "0.10.1"
resolved "https://registry.yarnpkg.com/process/-/process-0.10.1.tgz#842457cc51cfed72dc775afeeafb8c6034372725"
@@ -12006,11 +11642,6 @@ prr@~1.0.1:
resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY=
-pseudomap@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
- integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM=
-
psl@^1.1.33:
version "1.8.0"
resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24"
@@ -12171,15 +11802,6 @@ randexp@0.4.6:
discontinuous-range "1.0.0"
ret "~0.1.10"
-randomatic@^3.0.0:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed"
- integrity sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==
- dependencies:
- is-number "^4.0.0"
- kind-of "^6.0.0"
- math-random "^1.0.1"
-
randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
@@ -12512,14 +12134,6 @@ read-only-stream@^2.0.0:
dependencies:
readable-stream "^2.0.2"
-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"
- integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=
- dependencies:
- find-up "^1.0.0"
- read-pkg "^1.0.0"
-
read-pkg-up@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-4.0.0.tgz#1b221c6088ba7799601c808f91161c66e58f8978"
@@ -12537,15 +12151,6 @@ read-pkg-up@^7.0.1:
read-pkg "^5.2.0"
type-fest "^0.8.1"
-read-pkg@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28"
- integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=
- dependencies:
- load-json-file "^1.0.0"
- normalize-package-data "^2.3.2"
- path-type "^1.0.0"
-
read-pkg@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389"
@@ -12741,13 +12346,6 @@ regenerator-transform@^0.14.2:
dependencies:
"@babel/runtime" "^7.8.4"
-regex-cache@^0.4.2:
- version "0.4.4"
- resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd"
- integrity sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==
- dependencies:
- is-equal-shallow "^0.1.3"
-
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"
@@ -12813,6 +12411,13 @@ relateurl@^0.2.7:
resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9"
integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=
+release-zalgo@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/release-zalgo/-/release-zalgo-1.0.0.tgz#09700b7e5074329739330e535c5a90fb67851730"
+ integrity sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA=
+ dependencies:
+ es6-error "^4.0.1"
+
remark-html@^8.0.0:
version "8.0.0"
resolved "https://registry.yarnpkg.com/remark-html/-/remark-html-8.0.0.tgz#9fcb859a6f3cb40f3ef15402950f1a62ec301b3a"
@@ -13054,6 +12659,11 @@ reselect@^4.0.0:
resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.0.0.tgz#f2529830e5d3d0e021408b246a206ef4ea4437f7"
integrity sha512-qUgANli03jjAyGlnbYVAV5vvnOmJnODyABz51RdBN7M4WaVu8mecZWgyQNkG8Yqe3KRGRt0l4K4B3XVEULC4CA==
+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"
@@ -13084,11 +12694,6 @@ resolve-dir@^1.0.0, resolve-dir@^1.0.1:
expand-tilde "^2.0.0"
global-modules "^1.0.0"
-resolve-from@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57"
- integrity sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=
-
resolve-from@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748"
@@ -13390,7 +12995,7 @@ semver-diff@^2.0.0:
dependencies:
semver "^5.0.3"
-"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1:
+"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1:
version "5.7.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
@@ -13583,7 +13188,7 @@ side-channel@^1.0.2, side-channel@^1.0.3:
es-abstract "^1.18.0-next.0"
object-inspect "^1.8.0"
-signal-exit@^3.0.0, signal-exit@^3.0.1, signal-exit@^3.0.2:
+signal-exit@^3.0.0, signal-exit@^3.0.2:
version "3.0.3"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
@@ -13758,7 +13363,7 @@ source-map-url@^0.4.0:
resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3"
integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=
-source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.3:
+source-map@^0.5.0, source-map@^0.5.6, source-map@~0.5.3:
version "0.5.7"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
@@ -13778,17 +13383,17 @@ space-separated-tokens@^1.0.0:
resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899"
integrity sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==
-spawn-wrap@^1.4.2:
- version "1.4.3"
- resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-1.4.3.tgz#81b7670e170cca247d80bf5faf0cfb713bdcf848"
- integrity sha512-IgB8md0QW/+tWqcavuFgKYR/qIRvJkRLPJDFaoXtLLUaVcCDK0+HeFTkmQHj3eprcYhc+gOl0aEA1w7qZlYezw==
+spawn-wrap@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-2.0.0.tgz#103685b8b8f9b79771318827aa78650a610d457e"
+ integrity sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==
dependencies:
- foreground-child "^1.5.6"
- mkdirp "^0.5.0"
- os-homedir "^1.0.1"
- rimraf "^2.6.2"
+ foreground-child "^2.0.0"
+ is-windows "^1.0.2"
+ make-dir "^3.0.0"
+ rimraf "^3.0.0"
signal-exit "^3.0.2"
- which "^1.3.0"
+ which "^2.0.1"
spawnd@^4.4.0:
version "4.4.0"
@@ -14155,13 +13760,6 @@ strip-ansi@^6.0.0:
dependencies:
ansi-regex "^5.0.0"
-strip-bom@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e"
- integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=
- dependencies:
- is-utf8 "^0.2.0"
-
strip-bom@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
@@ -14328,13 +13926,6 @@ supports-color@^2.0.0:
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=
-supports-color@^3.1.2:
- version "3.2.3"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6"
- integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=
- dependencies:
- has-flag "^1.0.0"
-
supports-color@^5.0.0, supports-color@^5.3.0, supports-color@^5.5.0:
version "5.5.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
@@ -14528,17 +14119,6 @@ terser@^4.1.2, terser@^4.6.3:
source-map "~0.6.1"
source-map-support "~0.5.12"
-test-exclude@^4.2.0:
- version "4.2.3"
- resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.2.3.tgz#a9a5e64474e4398339245a0a769ad7c2f4a97c20"
- integrity sha512-SYbXgY64PT+4GAL2ocI3HwPa4Q4TBKm0cwAVeKOt/Aoc0gSpNRjJX8w0pA1LMKZ3LBmd8pYBqApFNQLII9kavA==
- dependencies:
- arrify "^1.0.1"
- micromatch "^2.3.11"
- object-assign "^4.1.0"
- read-pkg-up "^1.0.1"
- require-main-filename "^1.0.1"
-
test-exclude@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e"
@@ -14779,11 +14359,6 @@ trim-newlines@^3.0.0:
resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.0.tgz#79726304a6a898aa8373427298d54c2ee8b1cb30"
integrity sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA==
-trim-right@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
- integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=
-
trim-trailing-lines@^1.0.0:
version "1.1.4"
resolved "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz#bd4abbec7cc880462f10b2c8b5ce1d8d1ec7c2c0"
@@ -14863,7 +14438,7 @@ type-fest@^0.6.0:
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b"
integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==
-type-fest@^0.8.1:
+type-fest@^0.8.0, type-fest@^0.8.1:
version "0.8.1"
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
@@ -15299,7 +14874,7 @@ uuid@^2.0.1:
resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a"
integrity sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=
-uuid@^3.3.2, uuid@^3.4.0:
+uuid@^3.3.2, uuid@^3.3.3, uuid@^3.4.0:
version "3.4.0"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
@@ -15832,7 +15407,7 @@ which-pm-runs@^1.0.0:
resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb"
integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=
-which@^1.2.12, which@^1.2.14, which@^1.2.9, which@^1.3.0, which@^1.3.1:
+which@^1.2.12, 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"
integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
@@ -15908,7 +15483,7 @@ wrappy@1:
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
-write-file-atomic@^1.1.2, write-file-atomic@^1.1.4:
+write-file-atomic@^1.1.2:
version "1.3.4"
resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f"
integrity sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=
@@ -15978,21 +15553,11 @@ xmlhttprequest@1:
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
-y18n@^3.2.1:
- version "3.2.2"
- resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.2.tgz#85c901bd6470ce71fc4bb723ad209b70f7f28696"
- integrity sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==
-
"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b"
integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==
-yallist@^2.1.2:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
- integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
-
yallist@^3.0.2:
version "3.1.1"
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
@@ -16037,38 +15602,6 @@ yargs-parser@^20.2.3:
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54"
integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==
-yargs-parser@^8.0.0:
- version "8.1.0"
- resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-8.1.0.tgz#f1376a33b6629a5d063782944da732631e966950"
- integrity sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==
- dependencies:
- camelcase "^4.1.0"
-
-yargs-parser@^9.0.2:
- version "9.0.2"
- resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077"
- integrity sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=
- dependencies:
- camelcase "^4.1.0"
-
-yargs@11.1.0:
- version "11.1.0"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.1.0.tgz#90b869934ed6e871115ea2ff58b03f4724ed2d77"
- integrity sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==
- dependencies:
- cliui "^4.0.0"
- decamelize "^1.1.1"
- find-up "^2.1.0"
- get-caller-file "^1.0.1"
- os-locale "^2.0.0"
- require-directory "^2.1.1"
- require-main-filename "^1.0.1"
- set-blocking "^2.0.0"
- string-width "^2.0.0"
- which-module "^2.0.0"
- y18n "^3.2.1"
- yargs-parser "^9.0.2"
-
yargs@^12.0.2:
version "12.0.5"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13"
@@ -16103,7 +15636,7 @@ yargs@^13.3.2:
y18n "^4.0.0"
yargs-parser "^13.1.2"
-yargs@^15.4.1:
+yargs@^15.0.2, yargs@^15.4.1:
version "15.4.1"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8"
integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==