From 9f797dbd6f3cf2e79c219fdbd53f439fc7aabcf3 Mon Sep 17 00:00:00 2001
From: aoelen
Date: Sun, 8 Dec 2019 13:34:48 -0800
Subject: [PATCH 01/60] feat(FormField): make form field error accessible
(#3822)
* feat(FormField): make form field error accessible
* Change type of id on FormField
* Add alert role on error labels and include error example
---
.../Shorthand/FormExampleFieldControlId.js | 10 +++++++
.../collections/Form/Shorthand/index.js | 2 +-
.../Form/States/FormExampleFieldErrorLabel.js | 1 +
src/collections/Form/FormField.d.ts | 3 ++
src/collections/Form/FormField.js | 28 +++++++++++++++----
test/specs/collections/Form/FormField-test.js | 28 ++++++++++++++++---
6 files changed, 61 insertions(+), 11 deletions(-)
diff --git a/docs/src/examples/collections/Form/Shorthand/FormExampleFieldControlId.js b/docs/src/examples/collections/Form/Shorthand/FormExampleFieldControlId.js
index 7fca98f026..1c3fff0378 100644
--- a/docs/src/examples/collections/Form/Shorthand/FormExampleFieldControlId.js
+++ b/docs/src/examples/collections/Form/Shorthand/FormExampleFieldControlId.js
@@ -37,6 +37,16 @@ const FormExampleFieldControlId = () => (
label='Opinion'
placeholder='Opinion'
/>
+
(
diff --git a/docs/src/examples/collections/Form/States/FormExampleFieldErrorLabel.js b/docs/src/examples/collections/Form/States/FormExampleFieldErrorLabel.js
index 103e0aa0dc..ac4bc6f384 100644
--- a/docs/src/examples/collections/Form/States/FormExampleFieldErrorLabel.js
+++ b/docs/src/examples/collections/Form/States/FormExampleFieldErrorLabel.js
@@ -8,6 +8,7 @@ const FormExampleFieldErrorLabel = () => (
fluid
label='First name'
placeholder='First name'
+ id='form-input-first-name'
/>
+ /** The id of the control */
+ id?: number | string
+
/** A field can have its label next to instead of above it. */
inline?: boolean
diff --git a/src/collections/Form/FormField.js b/src/collections/Form/FormField.js
index b5da5144f9..0ee340a428 100644
--- a/src/collections/Form/FormField.js
+++ b/src/collections/Form/FormField.js
@@ -41,6 +41,7 @@ function FormField(props) {
required,
type,
width,
+ id,
} = props
const classes = cx(
@@ -58,7 +59,13 @@ function FormField(props) {
const errorPointing = _.get(error, 'pointing', 'above')
const errorLabel = Label.create(error, {
autoGenerateKey: false,
- defaultProps: { prompt: true, pointing: errorPointing },
+ defaultProps: {
+ prompt: true,
+ pointing: errorPointing,
+ id: id ? `${id}-error-message` : undefined,
+ role: 'alert',
+ 'aria-atomic': true,
+ },
})
const errorLabelBefore = (errorPointing === 'below' || errorPointing === 'right') && errorLabel
@@ -89,7 +96,13 @@ function FormField(props) {
// ----------------------------------------
// Checkbox/Radio Control
// ----------------------------------------
- const controlProps = { ...rest, content, children, disabled, required, type }
+
+ const ariaDescribedBy = id && error ? `${id}-error-message` : null
+ const ariaAttrs = {
+ 'aria-describedby': ariaDescribedBy,
+ 'aria-invalid': error !== undefined ? true : undefined,
+ }
+ const controlProps = { ...rest, content, children, disabled, required, type, id }
// wrap HTML checkboxes/radios in the label
if (control === 'input' && (type === 'checkbox' || type === 'radio')) {
@@ -97,7 +110,7 @@ function FormField(props) {
{errorLabelBefore}
- {createElement(control, controlProps)} {label}
+ {createElement(control, { ...ariaAttrs, ...controlProps })} {label}
{errorLabelAfter}
@@ -109,7 +122,7 @@ function FormField(props) {
return (
{errorLabelBefore}
- {createElement(control, { ...controlProps, label })}
+ {createElement(control, { ...ariaAttrs, ...controlProps, label })}
{errorLabelAfter}
)
@@ -122,11 +135,11 @@ function FormField(props) {
return (
{createHTMLLabel(label, {
- defaultProps: { htmlFor: _.get(controlProps, 'id') },
+ defaultProps: { htmlFor: id },
autoGenerateKey: false,
})}
{errorLabelBefore}
- {createElement(control, controlProps)}
+ {createElement(control, { ...ariaAttrs, ...controlProps })}
{errorLabelAfter}
)
@@ -161,6 +174,9 @@ FormField.propTypes = {
/** Individual fields may display an error state along with a message. */
error: PropTypes.oneOfType([PropTypes.bool, customPropTypes.itemShorthand]),
+ /** The id of the control */
+ id: PropTypes.string,
+
/** A field can have its label next to instead of above it. */
inline: PropTypes.bool,
diff --git a/test/specs/collections/Form/FormField-test.js b/test/specs/collections/Form/FormField-test.js
index 8d434761c8..c7411e65f4 100644
--- a/test/specs/collections/Form/FormField-test.js
+++ b/test/specs/collections/Form/FormField-test.js
@@ -41,25 +41,45 @@ describe('FormField', () => {
autoGenerateKey: false,
propKey: 'error',
requiredProps: { label: faker.lorem.word() },
- shorthandDefaultProps: { prompt: true, pointing: 'above' },
+ shorthandDefaultProps: {
+ prompt: true,
+ pointing: 'above',
+ role: 'alert',
+ 'aria-atomic': true,
+ },
})
common.implementsLabelProp(FormField, {
autoGenerateKey: false,
propKey: 'error',
requiredProps: { control: 'radio' },
- shorthandDefaultProps: { prompt: true, pointing: 'above' },
+ shorthandDefaultProps: {
+ prompt: true,
+ pointing: 'above',
+ role: 'alert',
+ 'aria-atomic': true,
+ },
})
common.implementsLabelProp(FormField, {
autoGenerateKey: false,
propKey: 'error',
requiredProps: { control: Checkbox },
- shorthandDefaultProps: { prompt: true, pointing: 'above' },
+ shorthandDefaultProps: {
+ prompt: true,
+ pointing: 'above',
+ role: 'alert',
+ 'aria-atomic': true,
+ },
})
common.implementsLabelProp(FormField, {
autoGenerateKey: false,
propKey: 'error',
requiredProps: { control: 'input' },
- shorthandDefaultProps: { prompt: true, pointing: 'above' },
+ shorthandDefaultProps: {
+ prompt: true,
+ pointing: 'above',
+ role: 'alert',
+ 'aria-atomic': true,
+ },
})
it('positioned in DOM according to passed "pointing" prop', () => {
From 8b46b2df434b65511fa0e440d60ab3be33767699 Mon Sep 17 00:00:00 2001
From: Unbug Lee
Date: Mon, 9 Dec 2019 05:39:03 +0800
Subject: [PATCH 02/60] fix(Search): use result.id for SearchResult key (#3848)
* Fixed key value for SearchResult Component
* Remove result.key
---
src/modules/Search/Search.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/modules/Search/Search.js b/src/modules/Search/Search.js
index 42099710b1..d4d9f85ccd 100644
--- a/src/modules/Search/Search.js
+++ b/src/modules/Search/Search.js
@@ -559,7 +559,7 @@ export default class Search extends Component {
return (
Date: Sun, 8 Dec 2019 13:39:53 -0800
Subject: [PATCH 03/60] feat(TextArea): export StrictTextAreaProps typing
(#3846)
---
index.d.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/index.d.ts b/index.d.ts
index fb413f6366..e7f6988eab 100644
--- a/index.d.ts
+++ b/index.d.ts
@@ -38,7 +38,7 @@ export {
StrictResponsiveProps,
} from './dist/commonjs/addons/Responsive'
export { default as Select, SelectProps } from './dist/commonjs/addons/Select'
-export { default as TextArea, TextAreaProps } from './dist/commonjs/addons/TextArea'
+export { default as TextArea, TextAreaProps, StrictTextAreaProps } from './dist/commonjs/addons/TextArea'
export {
default as TransitionablePortal,
TransitionablePortalProps,
From d1001741b5a3a77e3e83af94a2d7a88bcf3633fd Mon Sep 17 00:00:00 2001
From: Yu <39558084+yuuyu00@users.noreply.github.com>
Date: Mon, 9 Dec 2019 06:41:10 +0900
Subject: [PATCH 04/60] docs(misc): fix typos (#3837)
* docs(CONTRIBUTING): Fix typo
* docs(ComponentExample): Fix typo
* docs(Types/index.js): Fix typo
---
.github/CONTRIBUTING.md | 2 +-
.../ComponentDoc/ComponentExample/ComponentExample.js | 2 +-
docs/src/examples/modules/Transition/Types/index.js | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
index 148685fcc0..49eb3b1b2d 100644
--- a/.github/CONTRIBUTING.md
+++ b/.github/CONTRIBUTING.md
@@ -516,7 +516,7 @@ Label.propTypes = {
### Examples
->This section is lacking in instruction as the the docs are set to be overhauled (PRs welcome!).
+>This section is lacking in instruction as the docs are set to be overhauled (PRs welcome!).
Usage examples for a component live in `docs/src/examples`. The examples follow the SUI doc site examples.
diff --git a/docs/src/components/ComponentDoc/ComponentExample/ComponentExample.js b/docs/src/components/ComponentDoc/ComponentExample/ComponentExample.js
index 7589bfa03a..a0cddce957 100644
--- a/docs/src/components/ComponentDoc/ComponentExample/ComponentExample.js
+++ b/docs/src/components/ComponentDoc/ComponentExample/ComponentExample.js
@@ -50,7 +50,7 @@ const knobComponents = {
/**
* Renders a `component` and the raw `code` that produced it.
- * Allows toggling the the raw `code` code block.
+ * Allows toggling the raw `code` code block.
*/
class ComponentExample extends Component {
static propTypes = {
diff --git a/docs/src/examples/modules/Transition/Types/index.js b/docs/src/examples/modules/Transition/Types/index.js
index 7a5f5b3979..b8ef457ca7 100644
--- a/docs/src/examples/modules/Transition/Types/index.js
+++ b/docs/src/examples/modules/Transition/Types/index.js
@@ -8,7 +8,7 @@ const TransitionTypesExamples = () => (
From 32df9e84f840bc0d854e5c037eafeaabe4cc6ee0 Mon Sep 17 00:00:00 2001
From: Anupam Asok
Date: Mon, 9 Dec 2019 03:41:17 +0530
Subject: [PATCH 05/60] docs: fix minor grammar and punctuation errors (#3818)
---
docs/src/pages/Augmentation.mdx | 2 +-
docs/src/pages/ShorthandProps.mdx | 14 +++++++-------
docs/src/pages/Theming.mdx | 8 ++++----
docs/src/pages/Usage.mdx | 4 ++--
4 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/docs/src/pages/Augmentation.mdx b/docs/src/pages/Augmentation.mdx
index 666e2f0944..1401804670 100644
--- a/docs/src/pages/Augmentation.mdx
+++ b/docs/src/pages/Augmentation.mdx
@@ -8,7 +8,7 @@ export const meta = {
## `as` prop
-Semantic UI React provides a way to compose React components through the `as` prop. It allows to compose component features and props without adding extra nested components.
+Semantic UI React provides a way to compose React components through the `as` prop. It allows composing component features and props without adding extra nested components.
```jsx
<>
diff --git a/docs/src/pages/ShorthandProps.mdx b/docs/src/pages/ShorthandProps.mdx
index 2a42d32321..a00e678cc8 100644
--- a/docs/src/pages/ShorthandProps.mdx
+++ b/docs/src/pages/ShorthandProps.mdx
@@ -16,7 +16,7 @@ There are several forms of shorthand values that can be provided, but all of the
## Object as value
-Each component's shorthand has associated default element type. For example, by default there is ` ` element rendered for `Button`'s icon shorthand. It is possible to customize props of this default element by providing props object as shorthand value:
+Each component's shorthand has an associated default element type. For example, by default, there is ` ` element rendered for `Button`'s icon shorthand. It is possible to customize props of this default element by providing props object as shorthand value:
```jsx
// 💡 'color' and 'name' will be used as element's props
@@ -57,7 +57,7 @@ It is also possible to pass falsy values (`false`, `null` or `undefined`) - in t
## React Element as value
-There are cases where it might be necessary to customize element tree that will be rendered as a shorthand's value. Returning to `Button` example, we might want to render ` ` instead of default ` ` element. In that case necessary element might be directly provided as shorthand value:
+There are cases where it might be necessary to customize the element tree that will be rendered as a shorthand's value. Returning to `Button` example, we might want to render ` ` instead of default ` ` element. In that case, the necessary element might be directly provided as shorthand value:
```jsx
} />
@@ -68,25 +68,25 @@ There are cases where it might be necessary to customize element tree that will
There is a very important caveat here, though: whenever React Element is directly used as a
shorthand value, all props that Semantic UI React has created for the shorthand's Component will
- be spread on the passed element. This means that provided element should be able to handle props
+ be spread on the passed element. This means that the provided element should be able to handle props
- while this requirement is satisfied for all SUIR components, you should be aware of that when
either HTML or any third-party elements are provided.
-Due to this limitation, you should strive to use other options for shorthand values whenever is possible - for instance, this is how previous example can be rewritten:
+Due to this limitation, you should strive to use other options for shorthand values whenever is possible - for instance, this is how the previous example can be rewritten:
```jsx
```
-However, there still might be cases where it would be impossible to use object form of the shorthand value - for example, you might want to render some custom elements tree for the shorthand. In that case function value should be used.
+However, there still might be cases where it would be impossible to use the object form of the shorthand value - for example, you might want to render some custom elements tree for the shorthand. In that case, function value should be used.
## Function as value
Providing function as a shorthand value is the most involving but, at the same time, the most powerful option for customizing component's shorthand. The only requirements for this function are:
-- it should finish syncronously
+- it should finish synchronously
- it should return React Element as a result
Thus, in its simplest form, it could be used the following way:
@@ -100,7 +100,7 @@ Thus, in its simplest form, it could be used the following way:
## Customizing rendered shorthand
-There is another use case when render function is very useful for - this is the case where custom element's tree should be rendered for the shorthand. As you might recall, there is a problem that might happen when React Element is provided directly as shorthand value - in that case props are not propagated to rendered. In order to avoid that the following strategy should be considered:
+There is another use case when render function is very useful for - this is the case where custom element's tree should be rendered for the shorthand. As you might recall, there is a problem that might happen when React Element is provided directly as shorthand value - in that case, props are not propagated to rendered. In order to avoid that the following strategy should be considered:
```jsx
+1 } />
diff --git a/docs/src/pages/Theming.mdx b/docs/src/pages/Theming.mdx
index 774ce353bf..7a83df899f 100644
--- a/docs/src/pages/Theming.mdx
+++ b/docs/src/pages/Theming.mdx
@@ -8,7 +8,7 @@ export const meta = {
## Preface
-Semantic UI React does not have own styling system and fully relies on the theming of
+Semantic UI React does not have its own styling system and fully relies on the theming of
Semantic UI. It's really powerful, you don't need to know LESS or CSS you can simply
update values of variables or use styles from predefined themes.
@@ -33,7 +33,7 @@ In fact, all you know about theming and styling of Semantic UI is fully applicab
Semantic UI offers its own build system that uses Gulp and produces prepared CSS files.
-In all cases we recommend to use the LESS package and tune it into your build system with Webpack. The LESS package also does not depend on Gulp and other cruft things.
+In all cases, we recommend to use the LESS package and tune it into your build system with Webpack. The LESS package also does not depend on Gulp and other cruft things.
However, this package is not friendly for Webpack and requires additional configuration.
yarn:
Themes from Semantic UI >=2.3.x require Semantic UI React >=0.81.0.
-If you are using TypeScript, you don't need to install anything, typings are included with the package.
+If you are using TypeScript, you don't need to install anything; typings are included with the package.
### Theme
@@ -91,7 +91,7 @@ Semantic UI React is fully supported by all modern JavaScript bundlers.
### Create React App
-Semantic UI React is fully compatible with `create-react-app` and works out the box. Setup of custom theme is covered in [Theming guide](/theming).
+Semantic UI React is fully compatible with `create-react-app` and works out the box. Setting up of custom theme is covered in [Theming guide](/theming).
### Webpack 4
From 55386d619af1a9b577695e662fe36cc4f728536c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C4=B1dvan=20Karada=C4=9F?=
Date: Mon, 9 Dec 2019 01:11:56 +0300
Subject: [PATCH 06/60] fix(FeedSummary): add missing space around content
(#3836)
* missing space
* wrap feed summary content shorthand in whitespace
* test feed summary content whitespace
---
src/views/Feed/FeedSummary.js | 6 ++++++
test/specs/views/Feed/FeedSummary-test.js | 7 +++++++
2 files changed, 13 insertions(+)
diff --git a/src/views/Feed/FeedSummary.js b/src/views/Feed/FeedSummary.js
index 408228e927..9881a4d03b 100644
--- a/src/views/Feed/FeedSummary.js
+++ b/src/views/Feed/FeedSummary.js
@@ -33,7 +33,13 @@ function FeedSummary(props) {
return (
{createShorthand(FeedUser, (val) => ({ content: val }), user, { autoGenerateKey: false })}
+ {/*
+ Content styles require wrapping whitespace
+ https://github.com/Semantic-Org/Semantic-UI-React/pull/3836
+ */}
+ {content && ' '}
{content}
+ {content && ' '}
{createShorthand(FeedDate, (val) => ({ content: val }), date, { autoGenerateKey: false })}
)
diff --git a/test/specs/views/Feed/FeedSummary-test.js b/test/specs/views/Feed/FeedSummary-test.js
index cf54988267..6dcaa72864 100644
--- a/test/specs/views/Feed/FeedSummary-test.js
+++ b/test/specs/views/Feed/FeedSummary-test.js
@@ -1,3 +1,4 @@
+import React from 'react'
import FeedSummary from 'src/views/Feed/FeedSummary'
import FeedDate from 'src/views/Feed/FeedDate'
import FeedUser from 'src/views/Feed/FeedUser'
@@ -19,4 +20,10 @@ describe('FeedSummary', () => {
ShorthandComponent: FeedUser,
mapValueToProps: (val) => ({ content: val }),
})
+
+ describe('content', () => {
+ it('inserts whitespace on both sides of the content', () => {
+ shallow( ).should.contain.text(' test ')
+ })
+ })
})
From 657e3f34bd65f41a4efbd91b2fd74efa15e59856 Mon Sep 17 00:00:00 2001
From: "Spencer A. Bywater"
Date: Sun, 8 Dec 2019 15:13:25 -0700
Subject: [PATCH 07/60] docs: update grammar/wording for tab pane shorthand
(#3801)
---
.../examples/modules/Tab/Usage/TabExamplePaneShorthand.js | 8 ++++----
docs/src/examples/modules/Tab/Usage/index.js | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/docs/src/examples/modules/Tab/Usage/TabExamplePaneShorthand.js b/docs/src/examples/modules/Tab/Usage/TabExamplePaneShorthand.js
index 570e02c857..93d8040bd0 100644
--- a/docs/src/examples/modules/Tab/Usage/TabExamplePaneShorthand.js
+++ b/docs/src/examples/modules/Tab/Usage/TabExamplePaneShorthand.js
@@ -4,13 +4,13 @@ import { List, Label, Tab } from 'semantic-ui-react'
const panes = [
{
menuItem: 'Tab 1',
- pane: { key: 'tab1', content: 'This is massive tab', size: 'massive' },
+ pane: { key: 'tab1', content: 'This is a massive tab', size: 'massive' },
},
{
menuItem: 'Tab 2',
pane: {
key: 'tab2',
- content: 'This tab has a center aligned text',
+ content: 'This tab has center-aligned text',
textAlign: 'center',
},
},
@@ -20,7 +20,7 @@ const panes = [
key: 'tab3',
content: (
- This tab contains an JSX element
+ This tab contains a JSX element
),
},
@@ -29,7 +29,7 @@ const panes = [
menuItem: 'Tab 4',
pane: (
- This tab has a complex content
+ This tab has complex content
Apples
diff --git a/docs/src/examples/modules/Tab/Usage/index.js b/docs/src/examples/modules/Tab/Usage/index.js
index 08d750dd0f..f10960e176 100644
--- a/docs/src/examples/modules/Tab/Usage/index.js
+++ b/docs/src/examples/modules/Tab/Usage/index.js
@@ -30,7 +30,7 @@ const TabUsageExamples = () => (
title='Pane Shorthands'
description={
- You can use an item shorthands when you're using{' '}
+ You can use item shorthands when you're using{' '}
renderActiveOnly={'{false}'}
.
}
From 811155123a8d978b83852948cd13da1a3de264b4 Mon Sep 17 00:00:00 2001
From: Levi Thomason
Date: Sun, 8 Dec 2019 14:20:25 -0800
Subject: [PATCH 08/60] chore: remove stale bot (#3858)
---
.github/stale.yml | 33 ---------------------------------
1 file changed, 33 deletions(-)
delete mode 100644 .github/stale.yml
diff --git a/.github/stale.yml b/.github/stale.yml
deleted file mode 100644
index 1dfebfc380..0000000000
--- a/.github/stale.yml
+++ /dev/null
@@ -1,33 +0,0 @@
-# Number of days of inactivity before an issue becomes stale
-daysUntilStale: 180
-
-# Number of days of inactivity before a stale issue is closed
-daysUntilClose: 180
-
-# Issues with these labels will never be considered stale
-exemptLabels:
- - pinned
- - security
-
-# Label to use when marking an issue as stale
-staleLabel: stale
-
-# Comment to post when marking an issue as stale. Set to `false` to disable
-markComment: >
- There has been no activity in this thread for 180 days. While we care about
- every issue and we’d love to see this fixed, the core team’s time is
- limited so we have to focus our attention on the issues that are most
- pressing. Therefore, we will likely not be able to get to this one.
-
-
- However, PRs for this issue will of course be accepted and welcome!
-
-
- If there is no more activity in the next 180 days, this issue will be closed
- automatically for housekeeping. To prevent this, simply leave a reply here.
- Thanks!
-
-# Comment to post when closing a stale issue. Set to `false` to disable
-closeComment: >
- This issue will be closed due to lack of activity for 12 months. If you’d
- like this to be reopened, just leave a comment; we do monitor them!
From 9a375ee4b533a67f2b90f72d9574b7cd78e2bdd6 Mon Sep 17 00:00:00 2001
From: Suzana Stankovic <40830344+Suzi004@users.noreply.github.com>
Date: Sun, 8 Dec 2019 23:22:16 +0100
Subject: [PATCH 09/60] docs(MenuExampleHeaderVertical): fix onClick handler
(#3799)
handleItemClick = (e, { name }) => this.setState({ activeItem: name });
---
.../collections/Menu/Content/MenuExampleHeaderVertical.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/src/examples/collections/Menu/Content/MenuExampleHeaderVertical.js b/docs/src/examples/collections/Menu/Content/MenuExampleHeaderVertical.js
index 708a4a9092..c32207e0c9 100644
--- a/docs/src/examples/collections/Menu/Content/MenuExampleHeaderVertical.js
+++ b/docs/src/examples/collections/Menu/Content/MenuExampleHeaderVertical.js
@@ -3,7 +3,7 @@ import { Menu } from 'semantic-ui-react'
export default class MenuExampleHeaderVertical extends Component {
state = {}
- handleItemClick = (name) => this.setState({ activeItem: name })
+ handleItemClick = (e, { name }) => this.setState({ activeItem: name });
render() {
const { activeItem } = this.state
From 501836f987e5d72e3b971c132a65c37ba0666e25 Mon Sep 17 00:00:00 2001
From: Levi Thomason
Date: Sun, 8 Dec 2019 14:27:59 -0800
Subject: [PATCH 10/60] chore: update husky hooks (#3859)
---
package.json | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/package.json b/package.json
index fe19a5f91b..c94ce5700b 100644
--- a/package.json
+++ b/package.json
@@ -28,7 +28,6 @@
"lint:fix": "yarn lint --fix",
"prettier": "prettier --list-different \"**/*.{js,jsx,ts,tsx}\"",
"prettier:fix": "prettier --write \"**/*.{js,jsx,ts,tsx}\"",
- "postcommit": "git update-index --again",
"prerelease": "yarn lint && yarn tsd:lint && yarn tsd:test && yarn test && cross-env NODE_ENV=production yarn build",
"postrelease": "yarn deploy:docs",
"release:major": "yarn prerelease && ta-script npm/release major && yarn postrelease",
@@ -47,7 +46,8 @@
},
"husky": {
"hooks": {
- "pre-commit": "lint-staged"
+ "pre-commit": "lint-staged",
+ "post-commit": "git update-index --again"
}
},
"lint-staged": {
From b5d46f90cdfa0bc7134a0d05753d362dcbbfe076 Mon Sep 17 00:00:00 2001
From: chrisbrainerd
Date: Sun, 8 Dec 2019 17:35:33 -0500
Subject: [PATCH 11/60] docs: update warning about using yarn (#3816)
---
.github/CONTRIBUTING.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
index 49eb3b1b2d..71487771cf 100644
--- a/.github/CONTRIBUTING.md
+++ b/.github/CONTRIBUTING.md
@@ -60,7 +60,7 @@ cd Semantic-UI-React
yarn
```
->Note, we use `yarn` because `npm` has unfortunately become unreliable. Get it [here][16].
+>Note: we use `yarn` and advise you do too while contributing. Get it [here](https://yarnpkg.com/). You can use `npm install / npm ci` but we don't include a `package-lock.json` in the repository, so you may end up with slightly out of sync dependencies.
Add our repo as a git remote so you can pull/rebase your fork with our latest updates:
From 071f918f73e3c23dd051dbb8f0f90a1e03bed51f Mon Sep 17 00:00:00 2001
From: Mathieu Gamache
Date: Sun, 8 Dec 2019 17:51:56 -0500
Subject: [PATCH 12/60] feat(Search): custom category layout renderer (#3672)
* [WIP] First implementation of custom SearchCategoryRenderer
* [WIP] Added Typescript file and props validation
* [wip] updating documentation
* WIP remove unecessary change in PR
* WIP fix unnecessary parenthesis
* added proptypes to the search component
* forgot to put the props optional
* remove v2 in example title
---
.../Types/SearchExampleCategoryCustom.js | 15 +++++++++++++
src/modules/Search/Search.d.ts | 8 +++++++
src/modules/Search/Search.js | 12 +++++++++-
src/modules/Search/SearchCategory.d.ts | 12 ++++++++++
src/modules/Search/SearchCategory.js | 18 ++++++++++++---
src/modules/Search/SearchCategoryLayout.d.ts | 20 +++++++++++++++++
src/modules/Search/SearchCategoryLayout.js | 22 +++++++++++++++++++
7 files changed, 103 insertions(+), 4 deletions(-)
create mode 100644 src/modules/Search/SearchCategoryLayout.d.ts
create mode 100644 src/modules/Search/SearchCategoryLayout.js
diff --git a/docs/src/examples/modules/Search/Types/SearchExampleCategoryCustom.js b/docs/src/examples/modules/Search/Types/SearchExampleCategoryCustom.js
index 83da2761e0..69cf3a9ece 100644
--- a/docs/src/examples/modules/Search/Types/SearchExampleCategoryCustom.js
+++ b/docs/src/examples/modules/Search/Types/SearchExampleCategoryCustom.js
@@ -4,6 +4,20 @@ import faker from 'faker'
import React, { Component } from 'react'
import { Search, Grid, Header, Segment, Label } from 'semantic-ui-react'
+const categoryLayoutRenderer = ({ categoryContent, resultsContent }) => (
+
+
{categoryContent}
+
+ {resultsContent}
+
+
+)
+
+categoryLayoutRenderer.propTypes = {
+ categoryContent: PropTypes.node,
+ resultsContent: PropTypes.node,
+}
+
const categoryRenderer = ({ name }) =>
categoryRenderer.propTypes = {
@@ -79,6 +93,7 @@ export default class SearchExampleCategory extends Component {
React.ReactElement
/**
* Renders the SearchCategory contents.
diff --git a/src/modules/Search/Search.js b/src/modules/Search/Search.js
index d4d9f85ccd..7682999045 100644
--- a/src/modules/Search/Search.js
+++ b/src/modules/Search/Search.js
@@ -83,6 +83,15 @@ export default class Search extends Component {
// Rendering
// ------------------------------------
+ /**
+ * Renders the SearchCategory layout.
+ *
+ * @param {object} categoryContent - The Renderable SearchCategory contents.
+ * @param {object} resultsContent - The Renderable SearchResult contents.
+ * @returns {*} - Renderable SearchCategory layout.
+ */
+ categoryLayoutRenderer: PropTypes.func,
+
/**
* Renders the SearchCategory contents.
*
@@ -577,7 +586,7 @@ export default class Search extends Component {
}
renderCategories = () => {
- const { categoryRenderer, results: categories } = this.props
+ const { categoryLayoutRenderer, categoryRenderer, results: categories } = this.props
const { selectedIndex } = this.state
let count = 0
@@ -586,6 +595,7 @@ export default class Search extends Component {
const categoryProps = {
key: childKey || category.name,
active: _.inRange(selectedIndex, count, count + category.results.length),
+ layoutRenderer: categoryLayoutRenderer,
renderer: categoryRenderer,
...category,
}
diff --git a/src/modules/Search/SearchCategory.d.ts b/src/modules/Search/SearchCategory.d.ts
index 4fb80873af..b7615b9b5a 100644
--- a/src/modules/Search/SearchCategory.d.ts
+++ b/src/modules/Search/SearchCategory.d.ts
@@ -26,6 +26,18 @@ export interface StrictSearchCategoryProps {
/** Display name. */
name?: string
+ /**
+ * Renders the SearchCategory layout.
+ *
+ * @param {object} categoryContent - The Renderable SearchCategory contents.
+ * @param {object} resultsContent - The Renderable SearchResult contents.
+ * @returns {*} - Renderable SearchCategory layout.
+ */
+ layoutRenderer?: (
+ categoryContent: React.ReactElement,
+ resultsContent: React.ReactElement,
+ ) => React.ReactElement
+
/**
* Renders the category contents.
*
diff --git a/src/modules/Search/SearchCategory.js b/src/modules/Search/SearchCategory.js
index 054798d21b..96e5eb72e8 100644
--- a/src/modules/Search/SearchCategory.js
+++ b/src/modules/Search/SearchCategory.js
@@ -9,22 +9,26 @@ import {
getUnhandledProps,
useKeyOnly,
} from '../../lib'
+import SearchCategoryLayout from './SearchCategoryLayout'
function SearchCategory(props) {
- const { active, children, className, content, renderer } = props
+ const { active, children, className, content, layoutRenderer, renderer } = props
const classes = cx(useKeyOnly(active, 'active'), 'category', className)
const rest = getUnhandledProps(SearchCategory, props)
const ElementType = getElementType(SearchCategory, props)
+ const categoryContent = renderer(props)
+ const resultsContent = childrenUtils.isNil(children) ? content : children
+
return (
- {renderer(props)}
- {childrenUtils.isNil(children) ? content : children}
+ {layoutRenderer({ categoryContent, resultsContent })}
)
}
SearchCategory.defaultProps = {
+ layoutRenderer: SearchCategoryLayout,
renderer: ({ name }) => name,
}
@@ -47,6 +51,14 @@ SearchCategory.propTypes = {
/** Display name. */
name: PropTypes.string,
+ /**
+ * Renders the category layout contents.
+ *
+ * @param {object} props - The SearchCategoryLayout props object.
+ * @returns {*} - Renderable category layout contents.
+ */
+ layoutRenderer: PropTypes.func,
+
/**
* Renders the category contents.
*
diff --git a/src/modules/Search/SearchCategoryLayout.d.ts b/src/modules/Search/SearchCategoryLayout.d.ts
new file mode 100644
index 0000000000..1f39a001a6
--- /dev/null
+++ b/src/modules/Search/SearchCategoryLayout.d.ts
@@ -0,0 +1,20 @@
+import * as React from 'react'
+
+import { SemanticShorthandContent } from '../../generic'
+import SearchResult from './SearchResult'
+
+export interface SearchCategoryLayoutProps extends StrictSearchCategoryLayoutProps {
+ [key: string]: any
+}
+
+export interface StrictSearchCategoryLayoutProps {
+ /** The rendered category content */
+ categoryContent: React.ReactElement
+
+ /** The rendered results content */
+ resultsContent: React.ReactElement
+}
+
+declare const SearchCategoryLayout: React.StatelessComponent
+
+export default SearchCategoryLayout
diff --git a/src/modules/Search/SearchCategoryLayout.js b/src/modules/Search/SearchCategoryLayout.js
new file mode 100644
index 0000000000..4f0a3cf63f
--- /dev/null
+++ b/src/modules/Search/SearchCategoryLayout.js
@@ -0,0 +1,22 @@
+import PropTypes from 'prop-types'
+import React from 'react'
+
+function SearchCategoryLayout(props) {
+ const { categoryContent, resultsContent } = props
+ return (
+ <>
+ {categoryContent}
+ {resultsContent}
+ >
+ )
+}
+
+SearchCategoryLayout.propTypes = {
+ /** The rendered category content */
+ categoryContent: PropTypes.element.isRequired,
+
+ /** The rendered results content */
+ resultsContent: PropTypes.element.isRequired,
+}
+
+export default SearchCategoryLayout
From 9babb509e6e1cd5d23f59b58f69ae13ab2142a43 Mon Sep 17 00:00:00 2001
From: Levi Thomason
Date: Sun, 8 Dec 2019 15:36:52 -0800
Subject: [PATCH 13/60] 0.88.2
---
package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/package.json b/package.json
index c94ce5700b..04c7a0f3aa 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "semantic-ui-react",
- "version": "0.88.1",
+ "version": "0.88.2",
"description": "The official Semantic-UI-React integration.",
"jsnext:main": "dist/es/index.js",
"main": "dist/commonjs/index.js",
From 2dbab6bec372f3013d4c18448c2600c9d531e378 Mon Sep 17 00:00:00 2001
From: Levi Thomason
Date: Sun, 8 Dec 2019 15:46:06 -0800
Subject: [PATCH 14/60] docs(changelog): update changelog [ci skip]
---
CHANGELOG.md | 37 +++++++++++++++++++++----------------
1 file changed, 21 insertions(+), 16 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 580a10ff0c..025f010a0e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,23 @@
# Change Log
+## [v0.88.2](https://github.com/Semantic-Org/Semantic-UI-React/tree/v0.88.2) (2019-12-08)
+[Full Changelog](https://github.com/Semantic-Org/Semantic-UI-React/compare/v0.88.1...v0.88.2)
+
+**Merged pull requests:**
+
+- chore: update husky hooks [\#3859](https://github.com/Semantic-Org/Semantic-UI-React/pull/3859) ([levithomason](https://github.com/levithomason))
+- chore: remove stale bot [\#3858](https://github.com/Semantic-Org/Semantic-UI-React/pull/3858) ([levithomason](https://github.com/levithomason))
+- fix\(Search\): use result.id for SearchResult key [\#3848](https://github.com/Semantic-Org/Semantic-UI-React/pull/3848) ([unbug](https://github.com/unbug))
+- docs\(misc\): fix typos [\#3837](https://github.com/Semantic-Org/Semantic-UI-React/pull/3837) ([yuuyu00](https://github.com/yuuyu00))
+- fix\(FeedSummary\): add missing space around content [\#3836](https://github.com/Semantic-Org/Semantic-UI-React/pull/3836) ([ridvankaradag](https://github.com/ridvankaradag))
+- feat\(FormField\): make form field error accessible [\#3822](https://github.com/Semantic-Org/Semantic-UI-React/pull/3822) ([aoelen](https://github.com/aoelen))
+- docs: fix minor grammar and punctuation errors [\#3818](https://github.com/Semantic-Org/Semantic-UI-React/pull/3818) ([anupamasok](https://github.com/anupamasok))
+- docs: update warning about using yarn [\#3816](https://github.com/Semantic-Org/Semantic-UI-React/pull/3816) ([chrisbrainerd](https://github.com/chrisbrainerd))
+- docs: update grammar/wording for tab pane shorthand [\#3801](https://github.com/Semantic-Org/Semantic-UI-React/pull/3801) ([spencerbyw](https://github.com/spencerbyw))
+- docs\(MenuExampleHeaderVertical\): fix onClick handler [\#3799](https://github.com/Semantic-Org/Semantic-UI-React/pull/3799) ([Suzi004](https://github.com/Suzi004))
+- chore\(lib\): add ModernAutoControlledComponent [\#3776](https://github.com/Semantic-Org/Semantic-UI-React/pull/3776) ([layershifter](https://github.com/layershifter))
+- feat\(Search\): custom category layout renderer [\#3672](https://github.com/Semantic-Org/Semantic-UI-React/pull/3672) ([PrincessMadMath](https://github.com/PrincessMadMath))
+
## [v0.88.1](https://github.com/Semantic-Org/Semantic-UI-React/tree/v0.88.1) (2019-09-09)
[Full Changelog](https://github.com/Semantic-Org/Semantic-UI-React/compare/v0.88.0...v0.88.1)
@@ -16,6 +34,7 @@
**Merged pull requests:**
+- feat\(TextArea\): export StrictTextAreaProps typing [\#3846](https://github.com/Semantic-Org/Semantic-UI-React/pull/3846) ([chrisbull](https://github.com/chrisbull))
- docs\(CodeSandbox\): fix paths for images in exported examples [\#3758](https://github.com/Semantic-Org/Semantic-UI-React/pull/3758) ([layershifter](https://github.com/layershifter))
- fix\(typings\): add missing `StrictMenuProps` type export [\#3755](https://github.com/Semantic-Org/Semantic-UI-React/pull/3755) ([b-smets](https://github.com/b-smets))
- docs\(Popup\): add example for `delay` prop in Popup [\#3754](https://github.com/Semantic-Org/Semantic-UI-React/pull/3754) ([SandipNirmal](https://github.com/SandipNirmal))
@@ -149,7 +168,7 @@
- fix\(Dropdown\): retain focus on the input if the Dropdown receives a click [\#3422](https://github.com/Semantic-Org/Semantic-UI-React/pull/3422) ([jongsue](https://github.com/jongsue))
- docs\(Portal\): fix controlled Portal usage [\#3420](https://github.com/Semantic-Org/Semantic-UI-React/pull/3420) ([Fabianopb](https://github.com/Fabianopb))
- feat\(Accordion\): add `icon` shorthand for AccordionTitle [\#3417](https://github.com/Semantic-Org/Semantic-UI-React/pull/3417) ([sako9](https://github.com/sako9))
-- fix\(Icon\): update typings for `corner` prop [\#3393](https://github.com/Semantic-Org/Semantic-UI-React/pull/3393) ([areading314](https://github.com/areading314))
+- feat\(Flag\): export names in typings [\#2957](https://github.com/Semantic-Org/Semantic-UI-React/pull/2957) ([layershifter](https://github.com/layershifter))
- docs\(Sticky\): add warning about erratic behavior inside `Sidebar.Pushable` [\#2936](https://github.com/Semantic-Org/Semantic-UI-React/pull/2936) ([brambow](https://github.com/brambow))
## [v0.85.0](https://github.com/Semantic-Org/Semantic-UI-React/tree/v0.85.0) (2019-02-04)
@@ -162,6 +181,7 @@
- docs\(ComponentExample\): allow to disable HTML preview [\#3404](https://github.com/Semantic-Org/Semantic-UI-React/pull/3404) ([layershifter](https://github.com/layershifter))
- docs\(Examples\): add ability to export examples to CodeSandbox [\#3399](https://github.com/Semantic-Org/Semantic-UI-React/pull/3399) ([layershifter](https://github.com/layershifter))
- fix\(docs\): fix a polyfill loading for IE11 [\#3395](https://github.com/Semantic-Org/Semantic-UI-React/pull/3395) ([oolleegg55](https://github.com/oolleegg55))
+- fix\(Icon\): update typings for `corner` prop [\#3393](https://github.com/Semantic-Org/Semantic-UI-React/pull/3393) ([areading314](https://github.com/areading314))
- fix\(Dropdown\): prevent calling onChange unless value changed [\#3391](https://github.com/Semantic-Org/Semantic-UI-React/pull/3391) ([zarend](https://github.com/zarend))
- chore\(package\): upgrade keyboard-key [\#3390](https://github.com/Semantic-Org/Semantic-UI-React/pull/3390) ([levithomason](https://github.com/levithomason))
- chore\(package\): update karma and webpack [\#3383](https://github.com/Semantic-Org/Semantic-UI-React/pull/3383) ([layershifter](https://github.com/layershifter))
@@ -276,21 +296,6 @@
- fix\(Dropdown\): fix deepEqual bug [\#3104](https://github.com/Semantic-Org/Semantic-UI-React/pull/3104) ([pedromtorres](https://github.com/pedromtorres))
- fix\(docs\): fix issues with local builds [\#3098](https://github.com/Semantic-Org/Semantic-UI-React/pull/3098) ([layershifter](https://github.com/layershifter))
-## [v0.82.3](https://github.com/Semantic-Org/Semantic-UI-React/tree/v0.82.3) (2018-08-22)
-[Full Changelog](https://github.com/Semantic-Org/Semantic-UI-React/compare/v0.82.2...v0.82.3)
-
-**Merged pull requests:**
-
-- fix\(Icon\): update icon names [\#3092](https://github.com/Semantic-Org/Semantic-UI-React/pull/3092) ([levithomason](https://github.com/levithomason))
-- chore\(package\): update Babel to RC1 [\#3086](https://github.com/Semantic-Org/Semantic-UI-React/pull/3086) ([layershifter](https://github.com/layershifter))
-- chore\(build\): fixes for UMD build [\#3085](https://github.com/Semantic-Org/Semantic-UI-React/pull/3085) ([layershifter](https://github.com/layershifter))
-- chore\(package\): bump react-sandbox-render [\#3084](https://github.com/Semantic-Org/Semantic-UI-React/pull/3084) ([layershifter](https://github.com/layershifter))
-- fix\(Message\): export size prop in typings [\#3083](https://github.com/Semantic-Org/Semantic-UI-React/pull/3083) ([layershifter](https://github.com/layershifter))
-- docs\(Item\): cleanup examples [\#3082](https://github.com/Semantic-Org/Semantic-UI-React/pull/3082) ([ChenjieZhou](https://github.com/ChenjieZhou))
-- chore\(config\): remove unused options [\#3080](https://github.com/Semantic-Org/Semantic-UI-React/pull/3080) ([layershifter](https://github.com/layershifter))
-- docs\(build\): fix reloading of examples sources [\#3075](https://github.com/Semantic-Org/Semantic-UI-React/pull/3075) ([layershifter](https://github.com/layershifter))
-- docs\(ComponentExample\): fix display of children [\#3070](https://github.com/Semantic-Org/Semantic-UI-React/pull/3070) ([layershifter](https://github.com/layershifter))
-
\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
\ No newline at end of file
From 478af6566bec64d7dbde64e705f2b66bba518361 Mon Sep 17 00:00:00 2001
From: Matt
Date: Tue, 23 Jun 2020 08:24:59 +0100
Subject: [PATCH 15/60] docs(VisibilityExampleUpdateOn): your description
(#3952)
---
.../behaviors/Visibility/Settings/VisibilityExampleUpdateOn.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/src/examples/behaviors/Visibility/Settings/VisibilityExampleUpdateOn.js b/docs/src/examples/behaviors/Visibility/Settings/VisibilityExampleUpdateOn.js
index f4941bf732..329680ddff 100644
--- a/docs/src/examples/behaviors/Visibility/Settings/VisibilityExampleUpdateOn.js
+++ b/docs/src/examples/behaviors/Visibility/Settings/VisibilityExampleUpdateOn.js
@@ -77,7 +77,7 @@ export default class VisibilityExampleUpdateOn extends Component {
From e71b0a1e4f61437a343f7b144bc00dafaf0bb59c Mon Sep 17 00:00:00 2001
From: Oleksandr Fediashov
Date: Tue, 23 Jun 2020 09:54:58 +0200
Subject: [PATCH 16/60] fix(customProptypes): add a check for Element existance
(#3965)
---
src/lib/customPropTypes.js | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/lib/customPropTypes.js b/src/lib/customPropTypes.js
index 9d1dc770b2..2aed4fd21a 100644
--- a/src/lib/customPropTypes.js
+++ b/src/lib/customPropTypes.js
@@ -10,6 +10,8 @@ const typeOf = (...args) => Object.prototype.toString.call(...args)
export const domNode = (props, propName) => {
// skip if prop is undefined
if (props[propName] === undefined) return
+ // short circle for SSR env
+ if (typeof Element === 'undefined') return
// skip if prop is valid
if (props[propName] instanceof Element) return
From 951378556b93df2ed40637608d828fd712b539c8 Mon Sep 17 00:00:00 2001
From: Alexander Nituleac
Date: Tue, 23 Jun 2020 11:02:56 +0300
Subject: [PATCH 17/60] Add 'inputMode' attribute to input. (#3916)
The inputmode global attribute provides a hint to browsers for devices with onscreen keyboards to help them decide which keyboard to display.
Co-authored-by: Oleksandr Fediashov
---
src/lib/htmlPropsUtils.js | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/lib/htmlPropsUtils.js b/src/lib/htmlPropsUtils.js
index 0344ad2791..0615fb48d5 100644
--- a/src/lib/htmlPropsUtils.js
+++ b/src/lib/htmlPropsUtils.js
@@ -16,6 +16,7 @@ export const htmlInputAttrs = [
'disabled',
'form',
'id',
+ 'inputMode',
'lang',
'list',
'max',
From ad47a6b6b332d97da614ec431ac6af6e66c670bd Mon Sep 17 00:00:00 2001
From: Oleksandr Fediashov
Date: Tue, 23 Jun 2020 10:12:09 +0200
Subject: [PATCH 18/60] chore(TransitionablePortal): remove usage of UNSAFE_*
methods (#3966)
* chore(TransitionablePortal): remove usage of UNSAFE_* methods
* make behavior acc
* fix remaining issue
* remove only
---
.../TransitionablePortal.js | 31 +++++++++++--------
.../TransitionablePortal-test.js | 23 +++++++-------
2 files changed, 30 insertions(+), 24 deletions(-)
diff --git a/src/addons/TransitionablePortal/TransitionablePortal.js b/src/addons/TransitionablePortal/TransitionablePortal.js
index 5985b74848..ba94069e6f 100644
--- a/src/addons/TransitionablePortal/TransitionablePortal.js
+++ b/src/addons/TransitionablePortal/TransitionablePortal.js
@@ -64,23 +64,28 @@ export default class TransitionablePortal extends Component {
},
}
- constructor(props) {
- super(props)
-
- this.state = {
- portalOpen: props.open,
- }
- }
+ state = {}
// ----------------------------------------
// Lifecycle
// ----------------------------------------
- // eslint-disable-next-line camelcase
- UNSAFE_componentWillReceiveProps({ open }) {
- debug('componentWillReceiveProps()', { open })
+ static getDerivedStateFromProps(props, state) {
+ // This is definitely a hack :(
+ //
+ // It's coupled with handlePortalClose() for force set the state of `portalOpen` omitting
+ // props.open. It's related to implementation of the component itself as `onClose()` will be
+ // called after a transition will end.
+ // https://github.com/Semantic-Org/Semantic-UI-React/issues/2382
+ if (state.portalOpen === -1) {
+ return { portalOpen: false }
+ }
- this.setState({ portalOpen: open })
+ if (_.isUndefined(props.open)) {
+ return null
+ }
+
+ return { portalOpen: props.open }
}
// ----------------------------------------
@@ -90,7 +95,7 @@ export default class TransitionablePortal extends Component {
handlePortalClose = () => {
debug('handlePortalClose()')
- this.setState({ portalOpen: false })
+ this.setState({ portalOpen: -1 })
}
handlePortalOpen = () => {
@@ -129,7 +134,7 @@ export default class TransitionablePortal extends Component {
render() {
debug('render()', this.state)
-
+ // console.log('render', this.state)
const { children, transition } = this.props
const { portalOpen, transitionVisible } = this.state
diff --git a/test/specs/addons/TransitionablePortal/TransitionablePortal-test.js b/test/specs/addons/TransitionablePortal/TransitionablePortal-test.js
index 048dd985de..79d9f23a63 100644
--- a/test/specs/addons/TransitionablePortal/TransitionablePortal-test.js
+++ b/test/specs/addons/TransitionablePortal/TransitionablePortal-test.js
@@ -43,7 +43,7 @@ describe('TransitionablePortal', () => {
})
})
- describe('componentWillReceiveProps', () => {
+ describe('getDerivedStateFromProps', () => {
it('passes `open` prop to `portalOpen` when defined', () => {
wrapperMount( )
@@ -64,13 +64,13 @@ describe('TransitionablePortal', () => {
describe('onClose', () => {
it('is called with (null, data) when Portal closes', (done) => {
const onClose = sandbox.spy()
- const trigger =
+
wrapperMount(
}
/>,
)
@@ -84,9 +84,12 @@ describe('TransitionablePortal', () => {
})
it('changes `portalOpen` to false', () => {
- const trigger =
wrapperMount(
- ,
+ }
+ />,
)
wrapper.find('button').simulate('click')
@@ -125,19 +128,16 @@ describe('TransitionablePortal', () => {
describe('onOpen', () => {
it('is called with (null, data) when Portal opens', () => {
const onOpen = sandbox.spy()
- const trigger =
- wrapperMount( )
- .find('button')
- .simulate('click')
+ wrapperMount( } />)
+ wrapper.find('button').simulate('click')
onOpen.should.have.been.calledOnce()
onOpen.should.have.been.calledWithMatch(null, { portalOpen: true })
})
it('changes `portalOpen` to true', () => {
- const trigger =
- wrapperMount( )
+ wrapperMount( } />)
wrapper.find('button').simulate('click')
wrapper.should.have.state('portalOpen', true)
@@ -148,6 +148,7 @@ describe('TransitionablePortal', () => {
it('does not block update of state on Portal close', () => {
wrapperMount( )
wrapper.should.have.state('portalOpen', true)
+ wrapper.update()
domEvent.click(document.body)
wrapper.should.have.state('portalOpen', false)
From 4c0ecc743421a13460090e27ac2c99de73f5f5e2 Mon Sep 17 00:00:00 2001
From: Oleksandr Fediashov
Date: Wed, 24 Jun 2020 09:29:43 +0200
Subject: [PATCH 19/60] chore: use ModernAutoControlled component (#3967)
---
src/addons/Pagination/Pagination.js | 4 ++--
src/addons/Portal/Portal.js | 6 +++---
src/collections/Menu/Menu.js | 4 ++--
src/modules/Accordion/AccordionAccordion.js | 4 ++--
src/modules/Checkbox/Checkbox.js | 4 ++--
src/modules/Embed/Embed.js | 4 ++--
src/modules/Modal/Modal.js | 8 ++++----
src/modules/Rating/Rating.js | 4 ++--
src/modules/Tab/Tab.js | 4 ++--
9 files changed, 21 insertions(+), 21 deletions(-)
diff --git a/src/addons/Pagination/Pagination.js b/src/addons/Pagination/Pagination.js
index c292447f0c..42d62dae42 100644
--- a/src/addons/Pagination/Pagination.js
+++ b/src/addons/Pagination/Pagination.js
@@ -3,7 +3,7 @@ import PropTypes from 'prop-types'
import React from 'react'
import {
- AutoControlledComponent as Component,
+ ModernAutoControlledComponent as Component,
createPaginationItems,
customPropTypes,
getUnhandledProps,
@@ -98,7 +98,7 @@ export default class Pagination extends Component {
// Heads up! We need the cast to the "number" type there, as `activePage` can be a string
if (+prevActivePage === +nextActivePage) return
- this.trySetState({ activePage: nextActivePage })
+ this.setState({ activePage: nextActivePage })
_.invoke(this.props, 'onPageChange', e, { ...this.props, activePage: nextActivePage })
}
diff --git a/src/addons/Portal/Portal.js b/src/addons/Portal/Portal.js
index 5ec812c26e..644644bba1 100644
--- a/src/addons/Portal/Portal.js
+++ b/src/addons/Portal/Portal.js
@@ -6,7 +6,7 @@ import PropTypes from 'prop-types'
import React, { cloneElement, createRef, Fragment } from 'react'
import {
- AutoControlledComponent as Component,
+ ModernAutoControlledComponent as Component,
customPropTypes,
doesNodeContainClick,
makeDebugger,
@@ -285,7 +285,7 @@ class Portal extends Component {
const { onOpen } = this.props
if (onOpen) onOpen(e, this.props)
- this.trySetState({ open: true })
+ this.setState({ open: true })
}
openWithTimeout = (e, delay) => {
@@ -303,7 +303,7 @@ class Portal extends Component {
const { onClose } = this.props
if (onClose) onClose(e, this.props)
- this.trySetState({ open: false })
+ this.setState({ open: false })
}
closeWithTimeout = (e, delay) => {
diff --git a/src/collections/Menu/Menu.js b/src/collections/Menu/Menu.js
index 5b9253b9b8..c342ca1f54 100644
--- a/src/collections/Menu/Menu.js
+++ b/src/collections/Menu/Menu.js
@@ -4,7 +4,7 @@ import PropTypes from 'prop-types'
import React from 'react'
import {
- AutoControlledComponent as Component,
+ ModernAutoControlledComponent as Component,
childrenUtils,
customPropTypes,
createShorthandFactory,
@@ -117,7 +117,7 @@ class Menu extends Component {
onClick: (e, itemProps) => {
const { index } = itemProps
- this.trySetState({ activeIndex: index })
+ this.setState({ activeIndex: index })
_.invoke(predefinedProps, 'onClick', e, itemProps)
_.invoke(this.props, 'onItemClick', e, itemProps)
diff --git a/src/modules/Accordion/AccordionAccordion.js b/src/modules/Accordion/AccordionAccordion.js
index 377bf45af9..9642a21450 100644
--- a/src/modules/Accordion/AccordionAccordion.js
+++ b/src/modules/Accordion/AccordionAccordion.js
@@ -4,7 +4,7 @@ import PropTypes from 'prop-types'
import React from 'react'
import {
- AutoControlledComponent as Component,
+ ModernAutoControlledComponent as Component,
childrenUtils,
createShorthandFactory,
customPropTypes,
@@ -110,7 +110,7 @@ export default class AccordionAccordion extends Component {
handleTitleClick = (e, titleProps) => {
const { index } = titleProps
- this.trySetState({ activeIndex: this.computeNewIndex(index) })
+ this.setState({ activeIndex: this.computeNewIndex(index) })
_.invoke(this.props, 'onTitleClick', e, titleProps)
}
diff --git a/src/modules/Checkbox/Checkbox.js b/src/modules/Checkbox/Checkbox.js
index ddb68463a1..4c5ef7d84a 100644
--- a/src/modules/Checkbox/Checkbox.js
+++ b/src/modules/Checkbox/Checkbox.js
@@ -5,7 +5,7 @@ import PropTypes from 'prop-types'
import React, { createRef } from 'react'
import {
- AutoControlledComponent as Component,
+ ModernAutoControlledComponent as Component,
createHTMLLabel,
customPropTypes,
getElementType,
@@ -195,7 +195,7 @@ export default class Checkbox extends Component {
checked: !checked,
indeterminate: false,
})
- this.trySetState({ checked: !checked, indeterminate: false })
+ this.setState({ checked: !checked, indeterminate: false })
}
handleMouseDown = (e) => {
diff --git a/src/modules/Embed/Embed.js b/src/modules/Embed/Embed.js
index e5625ae8a4..ef570e5882 100644
--- a/src/modules/Embed/Embed.js
+++ b/src/modules/Embed/Embed.js
@@ -3,7 +3,7 @@ import PropTypes from 'prop-types'
import React from 'react'
import {
- AutoControlledComponent as Component,
+ ModernAutoControlledComponent as Component,
childrenUtils,
createHTMLIframe,
customPropTypes,
@@ -130,7 +130,7 @@ export default class Embed extends Component {
const { active } = this.state
if (onClick) onClick(e, { ...this.props, active: true })
- if (!active) this.trySetState({ active: true })
+ if (!active) this.setState({ active: true })
}
render() {
diff --git a/src/modules/Modal/Modal.js b/src/modules/Modal/Modal.js
index 8ab5e9186e..731d66b8ad 100644
--- a/src/modules/Modal/Modal.js
+++ b/src/modules/Modal/Modal.js
@@ -6,7 +6,7 @@ import React, { createRef, Fragment, isValidElement } from 'react'
import shallowEqual from 'shallowequal'
import {
- AutoControlledComponent as Component,
+ ModernAutoControlledComponent as Component,
childrenUtils,
customPropTypes,
doesNodeContainClick,
@@ -179,7 +179,7 @@ class Modal extends Component {
debug('close()')
_.invoke(this.props, 'onClose', e, this.props)
- this.trySetState({ open: false })
+ this.setState({ open: false })
}
handleDocumentMouseDown = (e) => {
@@ -200,7 +200,7 @@ class Modal extends Component {
return
_.invoke(this.props, 'onClose', e, this.props)
- this.trySetState({ open: false })
+ this.setState({ open: false })
}
handleIconOverrides = (predefinedProps) => ({
@@ -214,7 +214,7 @@ class Modal extends Component {
debug('open()')
_.invoke(this.props, 'onOpen', e, this.props)
- this.trySetState({ open: true })
+ this.setState({ open: true })
}
handlePortalMount = (e) => {
diff --git a/src/modules/Rating/Rating.js b/src/modules/Rating/Rating.js
index 001ce2a85a..de01ed94bc 100644
--- a/src/modules/Rating/Rating.js
+++ b/src/modules/Rating/Rating.js
@@ -4,7 +4,7 @@ import PropTypes from 'prop-types'
import React from 'react'
import {
- AutoControlledComponent as Component,
+ ModernAutoControlledComponent as Component,
getElementType,
getUnhandledProps,
SUI,
@@ -82,7 +82,7 @@ export default class Rating extends Component {
}
// set rating
- this.trySetState({ rating: newRating, isSelecting: false })
+ this.setState({ rating: newRating, isSelecting: false })
if (onRate) onRate(e, { ...this.props, rating: newRating })
}
diff --git a/src/modules/Tab/Tab.js b/src/modules/Tab/Tab.js
index 2c1760d648..3091e18073 100644
--- a/src/modules/Tab/Tab.js
+++ b/src/modules/Tab/Tab.js
@@ -3,7 +3,7 @@ import PropTypes from 'prop-types'
import React from 'react'
import {
- AutoControlledComponent as Component,
+ ModernAutoControlledComponent as Component,
customPropTypes,
getElementType,
getUnhandledProps,
@@ -84,7 +84,7 @@ class Tab extends Component {
handleItemClick = (e, { index }) => {
_.invoke(this.props, 'onTabChange', e, { ...this.props, activeIndex: index })
- this.trySetState({ activeIndex: index })
+ this.setState({ activeIndex: index })
}
renderItems() {
From bd92e01e375a44b0c4ba9580f458a86e3c1d6640 Mon Sep 17 00:00:00 2001
From: Oleksandr Fediashov
Date: Wed, 24 Jun 2020 09:57:54 +0200
Subject: [PATCH 20/60] chore(Search): replace deprecated lifecycle methods
(#3968)
* chore(Search): replace deprecated lifecycle methods
* add a comment
---
.../Search/Types/SearchExampleCategory.js | 1 -
.../Types/SearchExampleCategoryCustom.js | 1 -
.../Search/Types/SearchExampleStandard.js | 1 -
.../Types/SearchExampleStandardCustom.js | 1 -
.../Search/Variations/SearchExampleAligned.js | 1 -
.../Search/Variations/SearchExampleFluid.js | 1 -
.../Search/Variations/SearchExampleInput.js | 1 -
src/modules/Search/Search.js | 34 ++++++++-----------
test/specs/modules/Search/Search-test.js | 2 +-
9 files changed, 15 insertions(+), 28 deletions(-)
diff --git a/docs/src/examples/modules/Search/Types/SearchExampleCategory.js b/docs/src/examples/modules/Search/Types/SearchExampleCategory.js
index 95bd41fca7..ed6e7cf7e2 100644
--- a/docs/src/examples/modules/Search/Types/SearchExampleCategory.js
+++ b/docs/src/examples/modules/Search/Types/SearchExampleCategory.js
@@ -72,7 +72,6 @@ export default class SearchExampleCategory extends Component {
})}
results={results}
value={value}
- {...this.props}
/>
diff --git a/docs/src/examples/modules/Search/Types/SearchExampleCategoryCustom.js b/docs/src/examples/modules/Search/Types/SearchExampleCategoryCustom.js
index 69cf3a9ece..237370ce89 100644
--- a/docs/src/examples/modules/Search/Types/SearchExampleCategoryCustom.js
+++ b/docs/src/examples/modules/Search/Types/SearchExampleCategoryCustom.js
@@ -103,7 +103,6 @@ export default class SearchExampleCategory extends Component {
resultRenderer={resultRenderer}
results={results}
value={value}
- {...this.props}
/>
diff --git a/docs/src/examples/modules/Search/Types/SearchExampleStandard.js b/docs/src/examples/modules/Search/Types/SearchExampleStandard.js
index c6800611a2..6d039fe16a 100644
--- a/docs/src/examples/modules/Search/Types/SearchExampleStandard.js
+++ b/docs/src/examples/modules/Search/Types/SearchExampleStandard.js
@@ -47,7 +47,6 @@ export default class SearchExampleStandard extends Component {
})}
results={results}
value={value}
- {...this.props}
/>
diff --git a/docs/src/examples/modules/Search/Types/SearchExampleStandardCustom.js b/docs/src/examples/modules/Search/Types/SearchExampleStandardCustom.js
index bda47533d7..22019bb611 100644
--- a/docs/src/examples/modules/Search/Types/SearchExampleStandardCustom.js
+++ b/docs/src/examples/modules/Search/Types/SearchExampleStandardCustom.js
@@ -56,7 +56,6 @@ export default class SearchExampleStandard extends Component {
results={results}
value={value}
resultRenderer={resultRenderer}
- {...this.props}
/>
diff --git a/docs/src/examples/modules/Search/Variations/SearchExampleAligned.js b/docs/src/examples/modules/Search/Variations/SearchExampleAligned.js
index 5a87c1f32d..ac17ad7797 100644
--- a/docs/src/examples/modules/Search/Variations/SearchExampleAligned.js
+++ b/docs/src/examples/modules/Search/Variations/SearchExampleAligned.js
@@ -48,7 +48,6 @@ export default class SearchExampleStandard extends Component {
})}
results={results}
value={value}
- {...this.props}
/>
diff --git a/docs/src/examples/modules/Search/Variations/SearchExampleFluid.js b/docs/src/examples/modules/Search/Variations/SearchExampleFluid.js
index 828647658d..c918276419 100644
--- a/docs/src/examples/modules/Search/Variations/SearchExampleFluid.js
+++ b/docs/src/examples/modules/Search/Variations/SearchExampleFluid.js
@@ -48,7 +48,6 @@ export default class SearchExampleStandard extends Component {
})}
results={results}
value={value}
- {...this.props}
/>
diff --git a/docs/src/examples/modules/Search/Variations/SearchExampleInput.js b/docs/src/examples/modules/Search/Variations/SearchExampleInput.js
index 25e5d9379a..8b57ba4763 100644
--- a/docs/src/examples/modules/Search/Variations/SearchExampleInput.js
+++ b/docs/src/examples/modules/Search/Variations/SearchExampleInput.js
@@ -48,7 +48,6 @@ export default class SearchExampleStandard extends Component {
})}
results={results}
value={value}
- {...this.props}
/>
diff --git a/src/modules/Search/Search.js b/src/modules/Search/Search.js
index 7682999045..7a21ca7897 100644
--- a/src/modules/Search/Search.js
+++ b/src/modules/Search/Search.js
@@ -6,7 +6,7 @@ import React from 'react'
import shallowEqual from 'shallowequal'
import {
- AutoControlledComponent as Component,
+ ModernAutoControlledComponent as Component,
customPropTypes,
eventStack,
getElementType,
@@ -200,25 +200,19 @@ export default class Search extends Component {
static Result = SearchResult
static Results = SearchResults
- // eslint-disable-next-line camelcase
- UNSAFE_componentWillMount() {
- debug('componentWillMount()')
- const { open, value } = this.state
+ static getAutoControlledStateFromProps(props, state) {
+ debug('getAutoControlledStateFromProps()')
- this.setValue(value)
- if (open) this.open()
- }
+ // We need to store a `prevValue` to compare as in `getDerivedStateFromProps` we don't have
+ // prevState
+ if (typeof state.prevValue !== 'undefined' && shallowEqual(state.prevValue, state.value)) {
+ return { prevValue: state.value }
+ }
- // eslint-disable-next-line camelcase
- UNSAFE_componentWillReceiveProps(nextProps) {
- super.UNSAFE_componentWillReceiveProps(nextProps)
- debug('componentWillReceiveProps()')
- debug('changed props:', objectDiff(nextProps, this.props))
+ const selectedIndex = props.selectFirstResult ? 0 : -1
+ debug('value changed, setting selectedIndex', selectedIndex)
- if (!shallowEqual(nextProps.value, this.props.value)) {
- debug('value changed, setting', nextProps.value)
- this.setValue(nextProps.value)
- }
+ return { prevValue: state.value, selectedIndex }
}
shouldComponentUpdate(nextProps, nextState) {
@@ -459,7 +453,7 @@ export default class Search extends Component {
const { selectFirstResult } = this.props
- this.trySetState({ value, selectedIndex: selectFirstResult ? 0 : -1 })
+ this.setState({ value, selectedIndex: selectFirstResult ? 0 : -1 })
}
moveSelectionBy = (e, offset) => {
@@ -516,12 +510,12 @@ export default class Search extends Component {
open = () => {
debug('open()')
- this.trySetState({ open: true })
+ this.setState({ open: true })
}
close = () => {
debug('close()')
- this.trySetState({ open: false })
+ this.setState({ open: false })
}
// ----------------------------------------
diff --git a/test/specs/modules/Search/Search-test.js b/test/specs/modules/Search/Search-test.js
index 52c0210d40..feb9c20d4e 100644
--- a/test/specs/modules/Search/Search-test.js
+++ b/test/specs/modules/Search/Search-test.js
@@ -129,7 +129,7 @@ describe('Search', () => {
)
})
it('defaults to the first item with selectFirstResult', () => {
- wrapperShallow( )
+ wrapperMount( )
.find('SearchResult')
.first()
.should.have.prop('active', true)
From 1d83ac1b5e3f73887507d1368e4bae7cf552e531 Mon Sep 17 00:00:00 2001
From: Oleksandr Fediashov
Date: Fri, 26 Jun 2020 10:00:03 +0200
Subject: [PATCH 21/60] chore(TransitionGroup): remove deprecated lifecycle
methods (#3970)
---
src/lib/index.js | 1 -
src/modules/Transition/TransitionGroup.js | 113 ++++++++----------
.../Transition/utils}/childMapping.js | 0
src/modules/Transition/utils/wrapChild.js | 34 ++++++
.../Transition/utils}/childMapping-test.js | 2 +-
5 files changed, 88 insertions(+), 62 deletions(-)
rename src/{lib => modules/Transition/utils}/childMapping.js (100%)
create mode 100644 src/modules/Transition/utils/wrapChild.js
rename test/specs/{lib => modules/Transition/utils}/childMapping-test.js (96%)
diff --git a/src/lib/index.js b/src/lib/index.js
index cfefc62a28..20c79369ff 100644
--- a/src/lib/index.js
+++ b/src/lib/index.js
@@ -2,7 +2,6 @@ import makeDebugger from './makeDebugger'
export AutoControlledComponent from './AutoControlledComponent'
export ModernAutoControlledComponent from './ModernAutoControlledComponent'
-export { getChildMapping, mergeChildMappings } from './childMapping'
export * as childrenUtils from './childrenUtils'
export {
diff --git a/src/modules/Transition/TransitionGroup.js b/src/modules/Transition/TransitionGroup.js
index bb3e5c7014..70a9f32ce4 100644
--- a/src/modules/Transition/TransitionGroup.js
+++ b/src/modules/Transition/TransitionGroup.js
@@ -1,16 +1,10 @@
import _ from 'lodash'
import PropTypes from 'prop-types'
-import React, { cloneElement, Fragment } from 'react'
-
-import {
- getChildMapping,
- getElementType,
- getUnhandledProps,
- makeDebugger,
- mergeChildMappings,
- SUI,
-} from '../../lib'
-import Transition from './Transition'
+import React from 'react'
+
+import { getElementType, getUnhandledProps, makeDebugger, SUI } from '../../lib'
+import { getChildMapping, mergeChildMappings } from './utils/childMapping'
+import wrapChild from './utils/wrapChild'
const debug = makeDebugger('transition_group')
@@ -43,38 +37,64 @@ export default class TransitionGroup extends React.Component {
}
static defaultProps = {
- as: Fragment,
+ as: React.Fragment,
animation: 'fade',
duration: 500,
}
- constructor(...args) {
- super(...args)
+ state = {
+ // Keeping a callback under the state is a hack to make it accessible under getDerivedStateFromProps()
+ handleOnHide: (nothing, childProps) => {
+ debug('handleOnHide', childProps)
+ const { reactKey } = childProps
- const { children } = this.props
- this.state = {
- children: _.mapValues(getChildMapping(children), (child) => this.wrapChild(child)),
- }
+ this.setState((state) => {
+ const children = { ...state.children }
+ delete children[reactKey]
+
+ return { children }
+ })
+ },
}
- // eslint-disable-next-line camelcase
- UNSAFE_componentWillReceiveProps(nextProps) {
- debug('componentWillReceiveProps()')
+ static getDerivedStateFromProps(props, state) {
+ debug('getDerivedStateFromProps()')
+
+ const { animation, duration, directional } = props
+ const { children: prevMapping } = state
+
+ // A short circuit for an initial render as there will be no `prevMapping`
+ if (typeof prevMapping === 'undefined') {
+ return {
+ children: _.mapValues(getChildMapping(props.children), (child) =>
+ wrapChild(child, state.handleOnHide, {
+ animation,
+ duration,
+ directional,
+ }),
+ ),
+ }
+ }
- const { children: prevMapping } = this.state
- const nextMapping = getChildMapping(nextProps.children)
+ const nextMapping = getChildMapping(props.children)
const children = mergeChildMappings(prevMapping, nextMapping)
_.forEach(children, (child, key) => {
const hasPrev = _.has(prevMapping, key)
const hasNext = _.has(nextMapping, key)
+
const { [key]: prevChild } = prevMapping
const isLeaving = !_.get(prevChild, 'props.visible')
// Heads up!
// An item is new (entering), it will be picked from `nextChildren`, so it should be wrapped
if (hasNext && (!hasPrev || isLeaving)) {
- children[key] = this.wrapChild(child, { transitionOnMount: true })
+ children[key] = wrapChild(child, state.handleOnHide, {
+ animation,
+ duration,
+ directional,
+ transitionOnMount: true,
+ })
return
}
@@ -82,7 +102,7 @@ export default class TransitionGroup extends React.Component {
// An item is old (exiting), it will be picked from `prevChildren`, so it has been already
// wrapped, so should be only updated
if (!hasNext && hasPrev && !isLeaving) {
- children[key] = cloneElement(prevChild, { visible: false })
+ children[key] = React.cloneElement(prevChild, { visible: false })
return
}
@@ -93,43 +113,16 @@ export default class TransitionGroup extends React.Component {
props: { visible, transitionOnMount },
} = prevChild
- children[key] = this.wrapChild(child, { transitionOnMount, visible })
+ children[key] = wrapChild(child, state.handleOnHide, {
+ animation,
+ duration,
+ directional,
+ transitionOnMount,
+ visible,
+ })
})
- this.setState({ children })
- }
-
- handleOnHide = (nothing, childProps) => {
- debug('handleOnHide', childProps)
- const { reactKey } = childProps
-
- this.setState((state) => {
- const children = { ...state.children }
- delete children[reactKey]
-
- return { children }
- })
- }
-
- wrapChild = (child, options = {}) => {
- const { animation, directional, duration } = this.props
- const { key } = child
- const { visible = true, transitionOnMount = false } = options
-
- return (
-
- {child}
-
- )
+ return { children }
}
render() {
diff --git a/src/lib/childMapping.js b/src/modules/Transition/utils/childMapping.js
similarity index 100%
rename from src/lib/childMapping.js
rename to src/modules/Transition/utils/childMapping.js
diff --git a/src/modules/Transition/utils/wrapChild.js b/src/modules/Transition/utils/wrapChild.js
new file mode 100644
index 0000000000..c07eacb975
--- /dev/null
+++ b/src/modules/Transition/utils/wrapChild.js
@@ -0,0 +1,34 @@
+import React from 'react'
+import Transition from '../Transition'
+
+/**
+ * Wraps a React element with a Transition component.
+ *
+ * @param {React.ReactElement} child
+ * @param {Function} onHide
+ * @param {Object} [options={}]
+ * @param {String} [options.animation]
+ * @param {Number} [options.duration]
+ * @param {Boolean} [options.directional]
+ * @param {Boolean} [options.transitionOnMount=false]
+ * @param {Boolean} [options.visible=true]
+ */
+export default function wrapChild(child, onHide, options = {}) {
+ const { key } = child
+ const { animation, directional, duration, transitionOnMount = false, visible = true } = options
+
+ return (
+
+ {child}
+
+ )
+}
diff --git a/test/specs/lib/childMapping-test.js b/test/specs/modules/Transition/utils/childMapping-test.js
similarity index 96%
rename from test/specs/lib/childMapping-test.js
rename to test/specs/modules/Transition/utils/childMapping-test.js
index 58aa04820b..68599f3def 100644
--- a/test/specs/lib/childMapping-test.js
+++ b/test/specs/modules/Transition/utils/childMapping-test.js
@@ -1,5 +1,5 @@
import React from 'react'
-import { getChildMapping, mergeChildMappings } from 'src/lib'
+import { getChildMapping, mergeChildMappings } from 'src/modules/Transition/utils/childMapping'
describe('childMapping', () => {
describe('childMapping', () => {
From 9adb4bf9ab20ddf7a8cd7b457b461fce59cf8923 Mon Sep 17 00:00:00 2001
From: Oleksandr Fediashov
Date: Mon, 29 Jun 2020 09:26:26 +0200
Subject: [PATCH 22/60] chore(Visibility): remove usage of deprecated lifecycle
methods (#3973)
---
src/behaviors/Visibility/Visibility.js | 31 +++++++++++++-------------
1 file changed, 15 insertions(+), 16 deletions(-)
diff --git a/src/behaviors/Visibility/Visibility.js b/src/behaviors/Visibility/Visibility.js
index 630193b22b..4f7b939126 100644
--- a/src/behaviors/Visibility/Visibility.js
+++ b/src/behaviors/Visibility/Visibility.js
@@ -187,22 +187,6 @@ export default class Visibility extends Component {
// Lifecycle
// ----------------------------------------
- // eslint-disable-next-line camelcase
- UNSAFE_componentWillReceiveProps({ continuous, once, context, updateOn }) {
- const cleanHappened =
- continuous !== this.props.continuous ||
- once !== this.props.once ||
- updateOn !== this.props.updateOn
-
- // Heads up! We should clean up array of happened callbacks, if values of these props are changed
- if (cleanHappened) this.firedCallbacks = []
-
- if (context !== this.props.context || updateOn !== this.props.updateOn) {
- this.unattachHandlers(this.props.context)
- this.attachHandlers(context, updateOn)
- }
- }
-
componentDidMount() {
this.mounted = true
@@ -215,6 +199,21 @@ export default class Visibility extends Component {
if (fireOnMount) this.update()
}
+ componentDidUpdate(prevProps) {
+ const cleanHappened =
+ prevProps.continuous !== this.props.continuous ||
+ prevProps.once !== this.props.once ||
+ prevProps.updateOn !== this.props.updateOn
+
+ // Heads up! We should clean up array of happened callbacks, if values of these props are changed
+ if (cleanHappened) this.firedCallbacks = []
+
+ if (prevProps.context !== this.props.context || prevProps.updateOn !== this.props.updateOn) {
+ this.unattachHandlers(prevProps.context)
+ this.attachHandlers(this.props.context, this.props.updateOn)
+ }
+ }
+
componentWillUnmount() {
const { context } = this.props
From 20d851d0b2007740d719328c5cd8e3352596dec9 Mon Sep 17 00:00:00 2001
From: Oleksandr Fediashov
Date: Mon, 29 Jun 2020 09:43:47 +0200
Subject: [PATCH 23/60] chore(Sticky): remove usage of deprecated lifecycle
methods (#3974)
---
src/modules/Sticky/Sticky.js | 43 +++++++++++++++++++-----------------
1 file changed, 23 insertions(+), 20 deletions(-)
diff --git a/src/modules/Sticky/Sticky.js b/src/modules/Sticky/Sticky.js
index abbdf6793d..f68b764c36 100644
--- a/src/modules/Sticky/Sticky.js
+++ b/src/modules/Sticky/Sticky.js
@@ -88,6 +88,7 @@ export default class Sticky extends Component {
}
state = {
+ active: true,
sticky: false,
}
@@ -96,43 +97,47 @@ export default class Sticky extends Component {
componentDidMount() {
if (!isBrowser()) return
- const { active } = this.props
+ const { active } = this.state
if (active) {
this.handleUpdate()
- this.addListeners(this.props)
+ this.addListeners(this.props.scrollContext)
}
}
- // eslint-disable-next-line camelcase
- UNSAFE_componentWillReceiveProps(nextProps) {
- const { active: current, scrollContext: currentScrollContext } = this.props
- const { active: next, scrollContext: nextScrollContext } = nextProps
+ static getDerivedStateFromProps(props, state) {
+ if (state.active !== props.active && !props.active) {
+ return { active: props.active, sticky: false }
+ }
- if (current === next) {
- if (currentScrollContext !== nextScrollContext) {
- this.removeListeners()
- this.addListeners(nextProps)
+ return { active: props.active }
+ }
+
+ componentDidUpdate(prevProps, prevState) {
+ if (prevState.active === this.state.active) {
+ if (prevProps.scrollContext !== this.props.scrollContext) {
+ this.removeListeners(prevProps.scrollContext)
+ this.addListeners(this.props.scrollContext)
}
+
return
}
- if (next) {
+ if (this.state.active) {
this.handleUpdate()
- this.addListeners(nextProps)
+ this.addListeners(this.props.scrollContext)
return
}
- this.removeListeners()
- this.setState({ sticky: false })
+ this.removeListeners(prevProps.scrollContext)
}
componentWillUnmount() {
if (!isBrowser()) return
- const { active } = this.props
+ const { active } = this.state
if (active) {
- this.removeListeners()
+ this.removeListeners(this.props.scrollContext)
cancelAnimationFrame(this.frameId)
}
}
@@ -141,8 +146,7 @@ export default class Sticky extends Component {
// Events
// ----------------------------------------
- addListeners = (props) => {
- const { scrollContext } = props
+ addListeners = (scrollContext) => {
const scrollContextNode = isRefObject(scrollContext) ? scrollContext.current : scrollContext
if (scrollContextNode) {
@@ -151,8 +155,7 @@ export default class Sticky extends Component {
}
}
- removeListeners = () => {
- const { scrollContext } = this.props
+ removeListeners = (scrollContext) => {
const scrollContextNode = isRefObject(scrollContext) ? scrollContext.current : scrollContext
if (scrollContextNode) {
From ee9a7c73a41b805763b8330d3a75366f628beed6 Mon Sep 17 00:00:00 2001
From: Oleksandr Fediashov
Date: Sat, 11 Jul 2020 13:41:19 +0200
Subject: [PATCH 24/60] chore(Transition): remove deprecated lifecycle methods
(#3982)
* chore(Transition): remove deprecated lifecycle methods
* fix coverage, remove useless branches
* revert change in example
---
.../TransitionablePortal.js | 5 +-
src/modules/Transition/Transition.js | 186 +++++-------
.../Transition/utils/computeStatuses.js | 115 +++++++
.../modules/Transition/Transition-test.js | 283 +++++++++++-------
4 files changed, 363 insertions(+), 226 deletions(-)
create mode 100644 src/modules/Transition/utils/computeStatuses.js
diff --git a/src/addons/TransitionablePortal/TransitionablePortal.js b/src/addons/TransitionablePortal/TransitionablePortal.js
index ba94069e6f..6d455471b8 100644
--- a/src/addons/TransitionablePortal/TransitionablePortal.js
+++ b/src/addons/TransitionablePortal/TransitionablePortal.js
@@ -4,6 +4,7 @@ import React, { Component } from 'react'
import Portal from '../Portal'
import Transition from '../../modules/Transition'
+import { TRANSITION_STATUS_ENTERING } from '../../modules/Transition/utils/computeStatuses'
import { getUnhandledProps, makeDebugger } from '../../lib'
const debug = makeDebugger('transitionable_portal')
@@ -117,7 +118,7 @@ export default class TransitionablePortal extends Component {
debug('handleTransitionStart()')
const { portalOpen } = this.state
const { status } = data
- const transitionVisible = status === Transition.ENTERING
+ const transitionVisible = status === TRANSITION_STATUS_ENTERING
_.invoke(this.props, 'onStart', null, { ...data, portalOpen, transitionVisible })
@@ -134,7 +135,7 @@ export default class TransitionablePortal extends Component {
render() {
debug('render()', this.state)
- // console.log('render', this.state)
+
const { children, transition } = this.props
const { portalOpen, transitionVisible } = this.state
diff --git a/src/modules/Transition/Transition.js b/src/modules/Transition/Transition.js
index cfa7d11d31..792a366dd5 100644
--- a/src/modules/Transition/Transition.js
+++ b/src/modules/Transition/Transition.js
@@ -5,12 +5,25 @@ import { cloneElement, Component } from 'react'
import { makeDebugger, normalizeTransitionDuration, SUI, useKeyOnly } from '../../lib'
import TransitionGroup from './TransitionGroup'
+import {
+ computeStatuses,
+ TRANSITION_STATUS_ENTERED,
+ TRANSITION_STATUS_ENTERING,
+ TRANSITION_STATUS_EXITED,
+ TRANSITION_STATUS_EXITING,
+ TRANSITION_STATUS_INITIAL,
+ TRANSITION_STATUS_UNMOUNTED,
+} from './utils/computeStatuses'
const debug = makeDebugger('transition')
-const TRANSITION_TYPE = {
- ENTERING: 'show',
- EXITING: 'hide',
+const TRANSITION_CALLBACK_TYPE = {
+ [TRANSITION_STATUS_ENTERED]: 'show',
+ [TRANSITION_STATUS_EXITED]: 'hide',
+}
+const TRANSITION_STYLE_TYPE = {
+ [TRANSITION_STATUS_ENTERING]: 'show',
+ [TRANSITION_STATUS_EXITING]: 'hide',
}
/**
@@ -94,51 +107,50 @@ export default class Transition extends Component {
unmountOnHide: false,
}
- static ENTERED = 'ENTERED'
- static ENTERING = 'ENTERING'
- static EXITED = 'EXITED'
- static EXITING = 'EXITING'
- static UNMOUNTED = 'UNMOUNTED'
+ /** @deprecated Static properties will be removed in v1 */
+ static INITIAL = TRANSITION_STATUS_INITIAL
+ static ENTERED = TRANSITION_STATUS_ENTERED
+ static ENTERING = TRANSITION_STATUS_ENTERING
+ static EXITED = TRANSITION_STATUS_EXITED
+ static EXITING = TRANSITION_STATUS_EXITING
+ static UNMOUNTED = TRANSITION_STATUS_UNMOUNTED
static Group = TransitionGroup
- constructor(...args) {
- super(...args)
-
- const { initial: status, next } = this.computeInitialStatuses()
- this.nextStatus = next
- this.state = { status }
+ state = {
+ status: TRANSITION_STATUS_INITIAL,
}
// ----------------------------------------
// Lifecycle
// ----------------------------------------
- componentDidMount() {
- debug('componentDidMount()')
-
- this.updateStatus()
- }
+ static getDerivedStateFromProps(props, state) {
+ const derivedState = computeStatuses({
+ mountOnShow: props.mountOnShow,
+ status: state.status,
+ transitionOnMount: props.transitionOnMount,
+ visible: props.visible,
+ unmountOnHide: props.unmountOnHide,
+ })
- // eslint-disable-next-line camelcase
- UNSAFE_componentWillReceiveProps(nextProps) {
- debug('componentWillReceiveProps()')
+ debug('getDerivedStateFromProps()', props, state, derivedState)
- const { current: status, next } = this.computeStatuses(nextProps)
+ return derivedState
+ }
- this.nextStatus = next
- if (status) this.setState({ status })
+ componentDidMount() {
+ debug('componentDidMount()')
+ this.updateStatus({})
}
- componentDidUpdate() {
+ componentDidUpdate(prevProps, prevState) {
debug('componentDidUpdate()')
-
- this.updateStatus()
+ this.updateStatus(prevState)
}
componentWillUnmount() {
debug('componentWillUnmount()')
-
clearTimeout(this.timeoutId)
}
@@ -146,44 +158,33 @@ export default class Transition extends Component {
// Callback handling
// ----------------------------------------
- handleStart = () => {
+ handleStart = (nextStatus) => {
const { duration } = this.props
- const status = this.nextStatus
- this.nextStatus = null
- this.setState({ status, animating: true }, () => {
- const durationType = TRANSITION_TYPE[status]
- const durationValue = normalizeTransitionDuration(duration, durationType)
+ const durationType = TRANSITION_CALLBACK_TYPE[nextStatus]
+ const durationValue = normalizeTransitionDuration(duration, durationType)
- _.invoke(this.props, 'onStart', null, { ...this.props, status })
- this.timeoutId = setTimeout(this.handleComplete, durationValue)
- })
+ clearTimeout(this.timeoutId)
+ this.timeoutId = setTimeout(
+ () => this.setState((state) => ({ status: state.nextStatus })),
+ durationValue,
+ )
}
- handleComplete = () => {
- const { status: current } = this.state
-
- _.invoke(this.props, 'onComplete', null, { ...this.props, status: current })
-
- if (this.nextStatus) {
- this.handleStart()
- return
+ updateStatus = (prevState) => {
+ if (this.state.status !== this.state.nextStatus && this.state.nextStatus) {
+ this.handleStart(this.state.nextStatus)
}
- const status = this.computeCompletedStatus()
- const callback = current === Transition.ENTERING ? 'onShow' : 'onHide'
-
- this.setState({ status, animating: false }, () => {
- _.invoke(this.props, callback, null, { ...this.props, status })
- })
- }
+ if (!prevState.animating && this.state.animating) {
+ _.invoke(this.props, 'onStart', null, { ...this.props, status: this.state.status })
+ }
- updateStatus = () => {
- const { animating } = this.state
+ if (prevState.animating && !this.state.animating) {
+ const callback = this.state.status === TRANSITION_STATUS_ENTERED ? 'onShow' : 'onHide'
- if (this.nextStatus) {
- this.nextStatus = this.computeNextStatus()
- if (!animating) this.handleStart()
+ _.invoke(this.props, 'onComplete', null, { ...this.props, status: this.state.status })
+ _.invoke(this.props, callback, null, { ...this.props, status: this.state.status })
}
}
@@ -205,10 +206,10 @@ export default class Transition extends Component {
animation,
childClasses,
useKeyOnly(animating, 'animating'),
- useKeyOnly(status === Transition.ENTERING, 'in'),
- useKeyOnly(status === Transition.EXITING, 'out'),
- useKeyOnly(status === Transition.EXITED, 'hidden'),
- useKeyOnly(status !== Transition.EXITED, 'visible'),
+ useKeyOnly(status === TRANSITION_STATUS_ENTERING, 'in'),
+ useKeyOnly(status === TRANSITION_STATUS_EXITING, 'out'),
+ useKeyOnly(status === TRANSITION_STATUS_EXITED, 'hidden'),
+ useKeyOnly(status !== TRANSITION_STATUS_EXITED, 'visible'),
'transition',
)
}
@@ -216,61 +217,12 @@ export default class Transition extends Component {
return cx(animation, childClasses, useKeyOnly(animating, 'animating transition'))
}
- computeCompletedStatus = () => {
- const { unmountOnHide } = this.props
- const { status } = this.state
-
- if (status === Transition.ENTERING) return Transition.ENTERED
- return unmountOnHide ? Transition.UNMOUNTED : Transition.EXITED
- }
-
- computeInitialStatuses = () => {
- const { visible, mountOnShow, transitionOnMount, unmountOnHide } = this.props
-
- if (visible) {
- if (transitionOnMount) {
- return {
- initial: Transition.EXITED,
- next: Transition.ENTERING,
- }
- }
- return { initial: Transition.ENTERED }
- }
-
- if (mountOnShow || unmountOnHide) return { initial: Transition.UNMOUNTED }
- return { initial: Transition.EXITED }
- }
-
- computeNextStatus = () => {
- const { animating, status } = this.state
-
- if (animating) return status === Transition.ENTERING ? Transition.EXITING : Transition.ENTERING
- return status === Transition.ENTERED ? Transition.EXITING : Transition.ENTERING
- }
-
- computeStatuses = (props) => {
- const { status } = this.state
- const { visible } = props
-
- if (visible) {
- return {
- current: status === Transition.UNMOUNTED && Transition.EXITED,
- next:
- status !== Transition.ENTERING && status !== Transition.ENTERED && Transition.ENTERING,
- }
- }
-
- return {
- next: (status === Transition.ENTERING || status === Transition.ENTERED) && Transition.EXITING,
- }
- }
-
computeStyle = () => {
const { children, duration } = this.props
const { status } = this.state
const childStyle = _.get(children, 'props.style')
- const type = TRANSITION_TYPE[status]
+ const type = TRANSITION_STYLE_TYPE[status]
const animationDuration = type && `${normalizeTransitionDuration(duration, type)}ms`
return { ...childStyle, animationDuration }
@@ -281,14 +233,16 @@ export default class Transition extends Component {
// ----------------------------------------
render() {
- debug('render()')
- debug('props', this.props)
- debug('state', this.state)
+ debug('render(): props', this.props)
+ debug('render(): state', this.state)
const { children } = this.props
const { status } = this.state
- if (status === Transition.UNMOUNTED) return null
+ if (status === TRANSITION_STATUS_UNMOUNTED) {
+ return null
+ }
+
return cloneElement(children, {
className: this.computeClasses(),
style: this.computeStyle(),
diff --git a/src/modules/Transition/utils/computeStatuses.js b/src/modules/Transition/utils/computeStatuses.js
new file mode 100644
index 0000000000..0444f89dc8
--- /dev/null
+++ b/src/modules/Transition/utils/computeStatuses.js
@@ -0,0 +1,115 @@
+export const TRANSITION_STATUS_INITIAL = 'INITIAL'
+export const TRANSITION_STATUS_ENTERED = 'ENTERED'
+export const TRANSITION_STATUS_ENTERING = 'ENTERING'
+export const TRANSITION_STATUS_EXITED = 'EXITED'
+export const TRANSITION_STATUS_EXITING = 'EXITING'
+export const TRANSITION_STATUS_UNMOUNTED = 'UNMOUNTED'
+
+/**
+ * @param {Object} [options]
+ * @param {String} [options.status]
+ * @param {Boolean} [options.mountOnShow]
+ * @param {Boolean} [options.transitionOnMount]
+ * @param {Boolean} [options.visible]
+ * @param {Boolean} [options.unmountOnHide]
+ */
+export function computeStatuses(options) {
+ const { mountOnShow, status, transitionOnMount, visible, unmountOnHide } = options
+
+ if (visible) {
+ if (status === TRANSITION_STATUS_INITIAL) {
+ if (transitionOnMount) {
+ return {
+ animating: true,
+ status: TRANSITION_STATUS_ENTERING,
+ nextStatus: TRANSITION_STATUS_ENTERED,
+ }
+ }
+
+ return {
+ animating: false,
+ status: TRANSITION_STATUS_ENTERED,
+ nextStatus: undefined,
+ }
+ }
+
+ if (status === TRANSITION_STATUS_UNMOUNTED) {
+ return {
+ animating: true,
+ status: TRANSITION_STATUS_ENTERING,
+ nextStatus: TRANSITION_STATUS_ENTERED,
+ }
+ }
+
+ if (status === TRANSITION_STATUS_EXITED || status === TRANSITION_STATUS_EXITING) {
+ return {
+ animating: true,
+ status: TRANSITION_STATUS_ENTERING,
+ nextStatus: TRANSITION_STATUS_ENTERED,
+ }
+ }
+
+ if (status === TRANSITION_STATUS_ENTERING) {
+ return {}
+ }
+
+ /* istanbul ignore else */
+ if (status === TRANSITION_STATUS_ENTERED) {
+ return {
+ animating: false,
+ status: TRANSITION_STATUS_ENTERED,
+ nextStatus: undefined,
+ }
+ }
+ }
+
+ if (status === TRANSITION_STATUS_INITIAL) {
+ if (mountOnShow || unmountOnHide) {
+ return {
+ animating: false,
+ status: TRANSITION_STATUS_UNMOUNTED,
+ nextStatus: undefined,
+ }
+ }
+
+ return {
+ animating: false,
+ status: TRANSITION_STATUS_EXITED,
+ nextStatus: undefined,
+ }
+ }
+
+ if (status === TRANSITION_STATUS_ENTERED || status === TRANSITION_STATUS_ENTERING) {
+ return {
+ animating: true,
+ status: TRANSITION_STATUS_EXITING,
+ nextStatus: unmountOnHide ? TRANSITION_STATUS_UNMOUNTED : TRANSITION_STATUS_EXITED,
+ }
+ }
+
+ if (status === TRANSITION_STATUS_EXITING) {
+ return {}
+ }
+
+ if (status === TRANSITION_STATUS_EXITED) {
+ return {
+ animating: false,
+ status: TRANSITION_STATUS_EXITED,
+ nextStatus: undefined,
+ }
+ }
+
+ /* istanbul ignore else */
+ if (status === TRANSITION_STATUS_UNMOUNTED) {
+ return {
+ animating: false,
+ status: TRANSITION_STATUS_UNMOUNTED,
+ nextStatus: undefined,
+ }
+ }
+
+ /* istanbul ignore next */
+ throw new Error(
+ `Transition:computeStatuses(): an unexpected status transition: { visible: ${visible}, status: ${status} }`,
+ )
+}
diff --git a/test/specs/modules/Transition/Transition-test.js b/test/specs/modules/Transition/Transition-test.js
index 471e7ceaad..ac3b932a6e 100644
--- a/test/specs/modules/Transition/Transition-test.js
+++ b/test/specs/modules/Transition/Transition-test.js
@@ -3,6 +3,13 @@ import React from 'react'
import { SUI } from 'src/lib'
import Transition from 'src/modules/Transition/Transition'
import TransitionGroup from 'src/modules/Transition/TransitionGroup'
+import {
+ TRANSITION_STATUS_ENTERED,
+ TRANSITION_STATUS_ENTERING,
+ TRANSITION_STATUS_EXITED,
+ TRANSITION_STATUS_EXITING,
+ TRANSITION_STATUS_UNMOUNTED,
+} from 'src/modules/Transition/utils/computeStatuses'
import * as common from 'test/specs/commonTests'
import { sandbox } from 'test/utils'
@@ -26,58 +33,61 @@ describe('Transition', () => {
describe('animation', () => {
SUI.DIRECTIONAL_TRANSITIONS.forEach((animation) => {
it(`directional ${animation}`, () => {
- wrapperShallow(
-
+ wrapperMount(
+
,
)
- wrapper.setState({ status: Transition.ENTERING })
- wrapper.should.have.className(animation)
+ wrapper.should.have.state('status', TRANSITION_STATUS_ENTERING)
+ animation.split(' ').forEach((className) => wrapper.should.have.className(className))
wrapper.should.have.className('in')
- wrapper.setState({ status: Transition.EXITING })
- wrapper.should.have.className(animation)
+ wrapper.setProps({ visible: false })
+ wrapper.should.have.state('status', TRANSITION_STATUS_EXITING)
+ animation.split(' ').forEach((className) => wrapper.should.have.className(className))
wrapper.should.have.className('out')
})
})
SUI.STATIC_TRANSITIONS.forEach((animation) => {
it(`static ${animation}`, () => {
- wrapperShallow(
-
+ wrapperMount(
+
,
)
- wrapper.setState({ status: Transition.ENTERING })
+ wrapper.should.have.state('status', TRANSITION_STATUS_ENTERING)
wrapper.should.have.className(animation)
wrapper.should.not.have.className('in')
- wrapper.setState({ status: Transition.EXITING })
+ wrapper.setProps({ visible: false })
+ wrapper.should.have.state('status', TRANSITION_STATUS_EXITING)
wrapper.should.have.className(animation)
wrapper.should.not.have.className('out')
})
})
it('supports custom animations', () => {
- wrapperShallow(
-
+ wrapperMount(
+
,
)
- wrapper.setState({ status: Transition.ENTERING })
+ wrapper.should.have.state('status', TRANSITION_STATUS_ENTERING)
wrapper.should.have.className('jump')
- wrapper.setState({ status: Transition.EXITING })
+ wrapper.setProps({ visible: false })
+ wrapper.should.have.state('status', TRANSITION_STATUS_EXITING)
wrapper.should.have.className('jump')
})
})
describe('className', () => {
it("passes element's className", () => {
- wrapperShallow(
+ wrapperMount(
,
@@ -88,7 +98,7 @@ describe('Transition', () => {
})
it('adds classes when ENTERED', () => {
- wrapperShallow(
+ wrapperMount(
,
@@ -99,12 +109,11 @@ describe('Transition', () => {
})
it('adds classes when ENTERING', () => {
- wrapperShallow(
-
+ wrapperMount(
+
,
)
- wrapper.setState({ animating: true, status: Transition.ENTERING })
wrapper.should.have.className('animating')
wrapper.should.have.className('visible')
@@ -112,24 +121,23 @@ describe('Transition', () => {
})
it('adds classes when EXITED', () => {
- wrapperShallow(
-
+ wrapperMount(
+
,
)
- wrapper.setState({ status: Transition.EXITED })
wrapper.should.have.className('hidden')
wrapper.should.have.className('transition')
})
it('adds classes when EXITING', () => {
- wrapperShallow(
+ wrapperMount(
,
)
- wrapper.setState({ animating: true, status: Transition.EXITING })
+ wrapper.setProps({ visible: false })
wrapper.should.have.className('animating')
wrapper.should.have.className('visible')
@@ -139,30 +147,32 @@ describe('Transition', () => {
describe('directional', () => {
it('adds classes when is "true"', () => {
- wrapperShallow(
-
+ wrapperMount(
+
,
)
- wrapper.setState({ status: Transition.ENTERING })
+ wrapper.should.have.state('status', TRANSITION_STATUS_ENTERING)
wrapper.should.have.className('in')
- wrapper.setState({ status: Transition.EXITING })
+ wrapper.setProps({ visible: false })
+ wrapper.should.have.state('status', TRANSITION_STATUS_EXITING)
wrapper.should.have.className('out')
})
it('do not add classes when is "false"', () => {
- wrapperShallow(
-
+ wrapperMount(
+
,
)
- wrapper.setState({ status: Transition.ENTERING })
+ wrapper.should.have.state('status', TRANSITION_STATUS_ENTERING)
wrapper.should.have.not.className('in')
- wrapper.setState({ status: Transition.EXITING })
+ wrapper.setProps({ visible: false })
+ wrapper.should.have.state('status', TRANSITION_STATUS_EXITING)
wrapper.should.have.not.className('out')
})
})
@@ -173,180 +183,186 @@ describe('Transition', () => {
,
- ).should.have.descendants('p.foo')
+ )
+ wrapper.should.have.descendants('p.foo')
})
it('returns null when UNMOUNTED', () => {
wrapperShallow(
-
+
,
)
-
- wrapper.setState({ status: Transition.UNMOUNTED })
wrapper.should.be.blank()
})
})
describe('constructor', () => {
it('has default statuses', () => {
- wrapperShallow(
+ wrapperMount(
,
)
- wrapper.should.have.state('status', Transition.ENTERED)
- wrapper.instance().should.include({ nextStatus: undefined })
+ wrapper.should.have.state('status', TRANSITION_STATUS_ENTERED)
+ wrapper.should.have.not.state('nextStatus')
})
it('sets statuses when `visible` is false', () => {
- wrapperShallow(
+ wrapperMount(
,
)
- wrapper.should.have.state('status', Transition.UNMOUNTED)
- wrapper.instance().should.include({ nextStatus: undefined })
+ wrapper.should.have.state('status', TRANSITION_STATUS_UNMOUNTED)
+ wrapper.should.have.not.state('nextStatus')
})
it('sets statuses when mount is disabled', () => {
- wrapperShallow(
+ wrapperMount(
,
)
- wrapper.should.have.state('status', Transition.EXITED)
- wrapper.instance().should.include({ nextStatus: undefined })
+ wrapper.should.have.state('status', TRANSITION_STATUS_EXITED)
+ wrapper.should.have.not.state('nextStatus')
})
})
describe('duration', () => {
it('does not apply to style when ENTERED', () => {
- wrapperShallow(
+ wrapperMount(
,
- ).should.not.have.style('animation-duration')
+ )
+
+ wrapper.should.not.have.style('animation-duration')
})
it('applies default value to style when ENTERING', () => {
- wrapperShallow(
-
+ wrapperMount(
+
,
)
- wrapper.setState({ status: Transition.ENTERING })
+ wrapper.should.have.state('status', TRANSITION_STATUS_ENTERING)
wrapper.should.have.style('animation-duration', '500ms')
})
it('applies numeric value to style when ENTERING', () => {
- wrapperShallow(
-
+ wrapperMount(
+
,
)
- wrapper.setState({ status: Transition.ENTERING })
+ wrapper.should.have.state('status', TRANSITION_STATUS_ENTERING)
wrapper.should.have.style('animation-duration', '1000ms')
})
it('applies object value to style when ENTERING', () => {
- wrapperShallow(
-
+ wrapperMount(
+
,
)
- wrapper.setState({ status: Transition.ENTERING })
+ wrapper.should.have.state('status', TRANSITION_STATUS_ENTERING)
wrapper.should.have.style('animation-duration', '2000ms')
})
it('does not apply to style when EXITED', () => {
- wrapperShallow(
-
+ wrapperMount(
+
,
)
- wrapper.setState({ status: Transition.EXITED })
+ wrapper.should.have.state('status', TRANSITION_STATUS_EXITED)
wrapper.should.not.have.style('animation-duration')
})
it('applies default value to style when EXITING', () => {
- wrapperShallow(
+ wrapperMount(
,
)
- wrapper.setState({ animating: true, status: Transition.EXITING })
+ wrapper.setProps({ visible: false })
+ wrapper.should.have.state('status', TRANSITION_STATUS_EXITING)
wrapper.should.have.style('animation-duration')
})
it('applies numeric value to style when EXITING', () => {
wrapperShallow(
-
+
,
)
- wrapper.setState({ status: Transition.ENTERING })
+ wrapper.should.have.state('status', TRANSITION_STATUS_ENTERING)
wrapper.should.have.style('animation-duration', '1000ms')
})
it('applies object value to style when EXITING', () => {
- wrapperShallow(
+ wrapperMount(
,
)
- wrapper.setState({ status: Transition.EXITING })
+ wrapper.setProps({ visible: false })
+ wrapper.should.have.state('status', TRANSITION_STATUS_EXITING)
wrapper.should.have.style('animation-duration', '1000ms')
})
})
describe('visible', () => {
it('updates status when set to false while ENTERING', () => {
- wrapperShallow(
-
+ wrapperMount(
+
,
)
- wrapper.setState({ status: Transition.ENTERING })
- wrapper.setProps({ visible: false })
- wrapper.instance().should.include({ nextStatus: Transition.EXITING })
+ wrapper.should.have.state('status', TRANSITION_STATUS_ENTERING)
+
+ wrapper.setProps({ visible: false })
+ wrapper.should.have.state('status', TRANSITION_STATUS_EXITING)
+ wrapper.should.have.state('nextStatus', TRANSITION_STATUS_EXITED)
})
it('updates status when set to false while ENTERED', () => {
- wrapperShallow(
+ wrapperMount(
,
)
- wrapper.should.have.state('status', Transition.ENTERED)
+ wrapper.should.have.state('status', TRANSITION_STATUS_ENTERED)
wrapper.setProps({ visible: false })
- wrapper.instance().should.include({ nextStatus: Transition.EXITING })
+ wrapper.should.have.state('status', TRANSITION_STATUS_EXITING)
+ wrapper.should.have.state('nextStatus', TRANSITION_STATUS_EXITED)
})
it('updates status when set to true while UNMOUNTED', () => {
- wrapperShallow(
+ wrapperMount(
,
)
- wrapper.should.have.state('status', Transition.UNMOUNTED)
- wrapper.instance().mounted = true
+ wrapper.should.have.state('status', TRANSITION_STATUS_UNMOUNTED)
+
wrapper.setProps({ visible: true })
- wrapper.should.have.state('status', Transition.EXITED)
- wrapper.instance().should.include({ nextStatus: Transition.ENTERING })
+ wrapper.should.have.state('status', TRANSITION_STATUS_ENTERING)
+ wrapper.should.have.state('nextStatus', TRANSITION_STATUS_ENTERED)
})
it('updates next status when set to true while performs an ENTERING transition', (done) => {
@@ -355,23 +371,30 @@ describe('Transition', () => {
,
)
- wrapper.setProps({ visible: false })
- wrapper.should.have.state('status', Transition.ENTERING)
- wrapper.instance().should.include({ nextStatus: Transition.EXITING })
+ wrapper.should.have.state('status', TRANSITION_STATUS_ENTERING)
+
+ wrapper.setProps({ visible: false })
+ wrapper.should.have.state('status', TRANSITION_STATUS_EXITING)
+ wrapper.should.have.state('nextStatus', TRANSITION_STATUS_EXITED)
})
it('updates next status when set to true while performs an EXITING transition', (done) => {
wrapperMount(
-
+
,
)
+
+ wrapper.should.have.state('status', TRANSITION_STATUS_ENTERED)
+
wrapper.setProps({ visible: false })
- wrapper.setProps({ visible: true })
+ wrapper.should.have.state('status', TRANSITION_STATUS_EXITING)
+ wrapper.should.have.state('nextStatus', TRANSITION_STATUS_EXITED)
- wrapper.should.have.state('status', Transition.EXITING)
- wrapper.instance().should.include({ nextStatus: Transition.ENTERING })
+ wrapper.setProps({ visible: true })
+ wrapper.should.have.state('status', TRANSITION_STATUS_ENTERING)
+ wrapper.should.have.state('nextStatus', TRANSITION_STATUS_ENTERED)
})
})
@@ -384,7 +407,7 @@ describe('Transition', () => {
onComplete.should.have.been.calledOnce()
onComplete.should.have.been.calledWithMatch(null, {
duration: 0,
- status: Transition.ENTERING,
+ status: TRANSITION_STATUS_ENTERED,
})
done()
@@ -405,7 +428,10 @@ describe('Transition', () => {
onHide(...args)
onHide.should.have.been.calledOnce()
- onHide.should.have.been.calledWithMatch(null, { duration: 0, status: Transition.EXITED })
+ onHide.should.have.been.calledWithMatch(null, {
+ duration: 0,
+ status: TRANSITION_STATUS_EXITED,
+ })
done()
}
@@ -427,18 +453,41 @@ describe('Transition', () => {
)
wrapper.setProps({ visible: false })
- wrapper.should.have.state('status', Transition.EXITING)
+ wrapper.should.have.state('status', TRANSITION_STATUS_EXITING)
setTimeout(() => {
- wrapper.should.have.state('status', Transition.EXITING)
+ wrapper.should.have.state('status', TRANSITION_STATUS_EXITING)
}, 100)
setTimeout(() => {
onHide.should.have.been.calledOnce()
- wrapper.should.have.state('status', Transition.EXITED)
+ wrapper.should.have.state('status', TRANSITION_STATUS_EXITED)
done()
}, 200)
})
+
+ it('will be called once even during rerender', (done) => {
+ const onStart = sandbox.spy()
+
+ wrapperMount(
+
+
+ ,
+ )
+
+ wrapper.setProps({ visible: false })
+
+ wrapper.should.have.state('status', TRANSITION_STATUS_EXITING)
+ wrapper.should.have.state('nextStatus', TRANSITION_STATUS_EXITED)
+
+ wrapper.setProps({})
+
+ wrapper.should.have.state('status', TRANSITION_STATUS_EXITING)
+ wrapper.should.have.state('nextStatus', TRANSITION_STATUS_EXITED)
+
+ onStart.should.have.been.calledOnce()
+ done()
+ })
})
describe('onShow', () => {
@@ -448,7 +497,10 @@ describe('Transition', () => {
onShow(...args)
onShow.should.have.been.calledOnce()
- onShow.should.have.been.calledWithMatch(null, { duration: 0, status: Transition.ENTERED })
+ onShow.should.have.been.calledWithMatch(null, {
+ duration: 0,
+ status: TRANSITION_STATUS_ENTERED,
+ })
done()
}
@@ -468,15 +520,14 @@ describe('Transition', () => {
,
)
- wrapper.should.have.state('status', Transition.ENTERING)
+ wrapper.should.have.state('status', TRANSITION_STATUS_ENTERING)
setTimeout(() => {
- wrapper.should.have.state('status', Transition.ENTERING)
+ wrapper.should.have.state('status', TRANSITION_STATUS_ENTERING)
}, 100)
setTimeout(() => {
onShow.should.have.been.calledOnce()
- wrapper.should.have.state('status', Transition.ENTERED)
-
+ wrapper.should.have.state('status', TRANSITION_STATUS_ENTERED)
done()
}, 200)
})
@@ -489,7 +540,10 @@ describe('Transition', () => {
onStart(...args)
onStart.should.have.been.calledOnce()
- onStart.should.have.been.calledWithMatch(null, { duration: 0, status: Transition.ENTERING })
+ onStart.should.have.been.calledWithMatch(null, {
+ duration: 0,
+ status: TRANSITION_STATUS_ENTERING,
+ })
done()
}
@@ -500,6 +554,27 @@ describe('Transition', () => {
,
)
})
+
+ it('will be called once even during rerender', (done) => {
+ const onStart = sandbox.spy()
+
+ wrapperMount(
+
+
+ ,
+ )
+
+ wrapper.should.have.state('status', TRANSITION_STATUS_ENTERING)
+ wrapper.should.have.state('nextStatus', TRANSITION_STATUS_ENTERED)
+
+ wrapper.setProps({})
+
+ wrapper.should.have.state('status', TRANSITION_STATUS_ENTERING)
+ wrapper.should.have.state('nextStatus', TRANSITION_STATUS_ENTERED)
+
+ onStart.should.have.been.calledOnce()
+ done()
+ })
})
describe('style', () => {
@@ -523,23 +598,15 @@ describe('Transition', () => {
,
)
- wrapper.should.have.state('status', Transition.EXITED)
- wrapper.instance().should.include({ nextStatus: Transition.ENTERING })
- })
-
- it('updates status after mount when is true', () => {
- wrapperMount(
-
-
- ,
- ).should.have.state('status', Transition.ENTERING)
+ wrapper.should.have.state('status', TRANSITION_STATUS_ENTERING)
+ wrapper.should.have.state('nextStatus', TRANSITION_STATUS_ENTERED)
})
})
describe('unmountOnHide', () => {
it('unmounts child when true', (done) => {
const onHide = () => {
- wrapper.should.have.state('status', Transition.UNMOUNTED)
+ wrapper.should.have.state('status', TRANSITION_STATUS_UNMOUNTED)
done()
}
@@ -553,7 +620,7 @@ describe('Transition', () => {
it('lefts mounted when false', (done) => {
const onHide = () => {
- wrapper.should.have.state('status', Transition.EXITED)
+ wrapper.should.have.state('status', TRANSITION_STATUS_EXITED)
done()
}
From d7ef80a27661a1cfcca979966220ef71ba158362 Mon Sep 17 00:00:00 2001
From: Brian Kilburn
Date: Wed, 15 Jul 2020 14:19:11 -0400
Subject: [PATCH 25/60] chore: use `react-intersection-observer` in docs to
improve perf (#3985)
* added react-intersection-observer module
* moved react-intersection-observer to devDependencies.
* implemented react intersection observer in docs component examples.
* added observer
* remove react-visibility-sensor
* remove closure
Co-authored-by: Oleksandr Fediashov
---
.../ComponentExample/ComponentExample.js | 11 ++++-------
package.json | 2 +-
yarn.lock | 19 ++++++++++++-------
3 files changed, 17 insertions(+), 15 deletions(-)
diff --git a/docs/src/components/ComponentDoc/ComponentExample/ComponentExample.js b/docs/src/components/ComponentDoc/ComponentExample/ComponentExample.js
index a0cddce957..d945ecf1fc 100644
--- a/docs/src/components/ComponentDoc/ComponentExample/ComponentExample.js
+++ b/docs/src/components/ComponentDoc/ComponentExample/ComponentExample.js
@@ -3,7 +3,8 @@ import cx from 'classnames'
import copyToClipboard from 'copy-to-clipboard'
import PropTypes from 'prop-types'
import React, { Component } from 'react'
-import VisibilitySensor from 'react-visibility-sensor'
+import { InView } from 'react-intersection-observer'
+
import { Checkbox, Grid, Label } from 'semantic-ui-react'
import { examplePathToHash, scrollToAnchor } from 'docs/src/utils'
@@ -168,11 +169,7 @@ class ComponentExample extends Component {
} = this.state
return (
-
+
@@ -224,7 +221,7 @@ class ComponentExample extends Component {
{isActiveHash && }
-
+
)
}
}
diff --git a/package.json b/package.json
index 04c7a0f3aa..e201fa03b2 100644
--- a/package.json
+++ b/package.json
@@ -157,6 +157,7 @@
"react-docgen": "^4.1.0",
"react-dom": "^16.9.0",
"react-hot-loader": "^4.12.11",
+ "react-intersection-observer": "^8.26.2",
"react-router": "^5.0.0",
"react-router-dom": "^5.0.0",
"react-source-render": "^3.0.0-5",
@@ -164,7 +165,6 @@
"react-static-routes": "^1.0.0",
"react-test-renderer": "^16.9.0",
"react-universal-component": "^3.0.3",
- "react-visibility-sensor": "^5.0.2",
"rimraf": "^2.6.3",
"satisfied": "^1.1.2",
"semantic-ui-css": "^2.4.1",
diff --git a/yarn.lock b/yarn.lock
index 040526ed57..3a0f06044d 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -10041,6 +10041,13 @@ react-hot-loader@^4, react-hot-loader@^4.12.11:
shallowequal "^1.1.0"
source-map "^0.7.3"
+react-intersection-observer@^8.26.2:
+ version "8.26.2"
+ resolved "https://registry.yarnpkg.com/react-intersection-observer/-/react-intersection-observer-8.26.2.tgz#0562ff0c06b2b10e809190c2fa9b6ded656e6e16"
+ integrity sha512-GmSjLNK+oV7kS+BHfrJSaA4wF61ELA33gizKHmN+tk59UT6/aW8kkqvlrFGPwxGoaIzLKS2evfG5fgkw5MIIsg==
+ dependencies:
+ tiny-invariant "^1.1.0"
+
react-is@^16.6.0, react-is@^16.6.3, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.6, react-is@^16.9.0:
version "16.9.0"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.9.0.tgz#21ca9561399aad0ff1a7701c01683e8ca981edcb"
@@ -10208,13 +10215,6 @@ react-universal-component@^2.8.1, react-universal-component@^3.0.3:
hoist-non-react-statics "^2.2.1"
prop-types "^15.5.10"
-react-visibility-sensor@^5.0.2:
- version "5.0.2"
- resolved "https://registry.yarnpkg.com/react-visibility-sensor/-/react-visibility-sensor-5.0.2.tgz#e360fff81572cb3a2a9fd680484447a9da09a55d"
- integrity sha512-7+1lr7oQOO2vKr5u/uxoDGFWAAy7lsDy2aJU3Zy1/OymI+TRqOBk8m2L8YE1B0UyfCDWxVAWO+aifVGqNOvqeQ==
- dependencies:
- prop-types "^15.6.2"
-
react@^16, react@^16.9.0:
version "16.9.0"
resolved "https://registry.yarnpkg.com/react/-/react-16.9.0.tgz#40ba2f9af13bc1a38d75dbf2f4359a5185c4f7aa"
@@ -11850,6 +11850,11 @@ tiny-invariant@^1.0.2:
resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.0.3.tgz#91efaaa0269ccb6271f0296aeedb05fc3e067b7a"
integrity sha512-ytQx8T4DL8PjlX53yYzcIC0WhIZbpR0p1qcYjw2pHu3w6UtgWwFJQ/02cnhOnBBhlFx/edUIfcagCaQSe3KMWg==
+tiny-invariant@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875"
+ integrity sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw==
+
tiny-warning@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.2.tgz#1dfae771ee1a04396bdfde27a3adcebc6b648b28"
From be8def5aeb3d1e531369513cd540607e51efa7f8 Mon Sep 17 00:00:00 2001
From: Oleksandr Fediashov
Date: Wed, 15 Jul 2020 20:28:47 +0200
Subject: [PATCH 26/60] chore(Dropdown): remove deprecated lifecycle methods
(#3986)
* chore(Dropdown): remove deprecated lifecycle methods
* fix console.error
---
src/lib/AutoControlledComponent.js | 199 ----------
src/lib/ModernAutoControlledComponent.js | 58 ++-
src/lib/index.js | 1 -
src/modules/Dropdown/Dropdown.js | 335 ++++++++---------
src/modules/Dropdown/utils/getMenuOptions.js | 62 ++++
.../Dropdown/utils/getSelectedIndex.js | 70 ++++
.../specs/lib/AutoControlledComponent-test.js | 342 ------------------
test/specs/modules/Dropdown/Dropdown-test.js | 18 +-
8 files changed, 343 insertions(+), 742 deletions(-)
delete mode 100644 src/lib/AutoControlledComponent.js
create mode 100644 src/modules/Dropdown/utils/getMenuOptions.js
create mode 100644 src/modules/Dropdown/utils/getSelectedIndex.js
delete mode 100644 test/specs/lib/AutoControlledComponent-test.js
diff --git a/src/lib/AutoControlledComponent.js b/src/lib/AutoControlledComponent.js
deleted file mode 100644
index 1e995ab32a..0000000000
--- a/src/lib/AutoControlledComponent.js
+++ /dev/null
@@ -1,199 +0,0 @@
-/* eslint-disable no-console */
-/**
- * Why choose inheritance over a HOC? Multiple advantages for this particular use case.
- * In short, we need identical functionality to setState(), unless there is a prop defined
- * for the state key. Also:
- *
- * 1. Single Renders
- * Calling trySetState() in constructor(), componentWillMount(), or componentWillReceiveProps()
- * does not cause two renders. Consumers and tests do not have to wait two renders to get state.
- * See www.react.run/4kJFdKoxb/27 for an example of this issue.
- *
- * 2. Simple Testing
- * Using a HOC means you must either test the undecorated component or test through the decorator.
- * Testing the undecorated component means you must mock the decorator functionality.
- * Testing through the HOC means you can not simply shallow render your component.
- *
- * 3. Statics
- * HOC wrap instances, so statics are no longer accessible. They can be hoisted, but this is more
- * looping over properties and storing references. We rely heavily on statics for testing and sub
- * components.
- *
- * 4. Instance Methods
- * Some instance methods may be exposed to users via refs. Again, these are lost with HOC unless
- * hoisted and exposed by the HOC.
- */
-import _ from 'lodash'
-import { Component } from 'react'
-
-export const getDefaultPropName = (prop) => `default${prop[0].toUpperCase() + prop.slice(1)}`
-
-/**
- * Return the auto controlled state value for a give prop. The initial value is chosen in this order:
- * - regular props
- * - then, default props
- * - then, initial state
- * - then, `checked` defaults to false
- * - then, `value` defaults to '' or [] if props.multiple
- * - else, undefined
- *
- * @param {string} propName A prop name
- * @param {object} [props] A props object
- * @param {object} [state] A state object
- * @param {boolean} [includeDefaults=false] Whether or not to heed the default props or initial state
- */
-export const getAutoControlledStateValue = (propName, props, state, includeDefaults = false) => {
- // regular props
- const propValue = props[propName]
- if (propValue !== undefined) return propValue
-
- if (includeDefaults) {
- // defaultProps
- const defaultProp = props[getDefaultPropName(propName)]
- if (defaultProp !== undefined) return defaultProp
-
- // initial state - state may be null or undefined
- if (state) {
- const initialState = state[propName]
- if (initialState !== undefined) return initialState
- }
- }
-
- // React doesn't allow changing from uncontrolled to controlled components,
- // default checked/value if they were not present.
- if (propName === 'checked') return false
- if (propName === 'value') return props.multiple ? [] : ''
-
- // otherwise, undefined
-}
-
-export default class AutoControlledComponent extends Component {
- constructor(...args) {
- super(...args)
-
- const { autoControlledProps } = this.constructor
- const state = _.invoke(this, 'getInitialAutoControlledState', this.props) || {}
-
- if (process.env.NODE_ENV !== 'production') {
- const { defaultProps, name, propTypes } = this.constructor
- // require static autoControlledProps
- if (!autoControlledProps) {
- console.error(`Auto controlled ${name} must specify a static autoControlledProps array.`)
- }
-
- // require propTypes
- _.each(autoControlledProps, (prop) => {
- const defaultProp = getDefaultPropName(prop)
- // regular prop
- if (!_.has(propTypes, defaultProp)) {
- console.error(
- `${name} is missing "${defaultProp}" propTypes validation for auto controlled prop "${prop}".`,
- )
- }
- // its default prop
- if (!_.has(propTypes, prop)) {
- console.error(
- `${name} is missing propTypes validation for auto controlled prop "${prop}".`,
- )
- }
- })
-
- // prevent autoControlledProps in defaultProps
- //
- // When setting state, auto controlled props values always win (so the parent can manage them).
- // It is not reasonable to decipher the difference between props from the parent and defaultProps.
- // Allowing defaultProps results in trySetState always deferring to the defaultProp value.
- // Auto controlled props also listed in defaultProps can never be updated.
- //
- // To set defaults for an AutoControlled prop, you can set the initial state in the
- // constructor or by using an ES7 property initializer:
- // https://babeljs.io/blog/2015/06/07/react-on-es6-plus#property-initializers
- const illegalDefaults = _.intersection(autoControlledProps, _.keys(defaultProps))
- if (!_.isEmpty(illegalDefaults)) {
- console.error(
- [
- 'Do not set defaultProps for autoControlledProps. You can set defaults by',
- 'setting state in the constructor or using an ES7 property initializer',
- '(https://babeljs.io/blog/2015/06/07/react-on-es6-plus#property-initializers)',
- `See ${name} props: "${illegalDefaults}".`,
- ].join(' '),
- )
- }
-
- // prevent listing defaultProps in autoControlledProps
- //
- // Default props are automatically handled.
- // Listing defaults in autoControlledProps would result in allowing defaultDefaultValue props.
- const illegalAutoControlled = _.filter(autoControlledProps, (prop) =>
- _.startsWith(prop, 'default'),
- )
- if (!_.isEmpty(illegalAutoControlled)) {
- console.error(
- [
- 'Do not add default props to autoControlledProps.',
- 'Default props are automatically handled.',
- `See ${name} autoControlledProps: "${illegalAutoControlled}".`,
- ].join(' '),
- )
- }
- }
-
- // Auto controlled props are copied to state.
- // Set initial state by copying auto controlled props to state.
- // Also look for the default prop for any auto controlled props (foo => defaultFoo)
- // so we can set initial values from defaults.
- const initialAutoControlledState = autoControlledProps.reduce((acc, prop) => {
- acc[prop] = getAutoControlledStateValue(prop, this.props, state, true)
-
- if (process.env.NODE_ENV !== 'production') {
- const defaultPropName = getDefaultPropName(prop)
- const { name } = this.constructor
- // prevent defaultFoo={} along side foo={}
- if (!_.isUndefined(this.props[defaultPropName]) && !_.isUndefined(this.props[prop])) {
- console.error(
- `${name} prop "${prop}" is auto controlled. Specify either ${defaultPropName} or ${prop}, but not both.`,
- )
- }
- }
-
- return acc
- }, {})
-
- this.state = { ...state, ...initialAutoControlledState }
- }
-
- // eslint-disable-next-line camelcase
- UNSAFE_componentWillReceiveProps(nextProps) {
- const { autoControlledProps } = this.constructor
-
- // Solve the next state for autoControlledProps
- const newState = autoControlledProps.reduce((acc, prop) => {
- const isNextDefined = !_.isUndefined(nextProps[prop])
-
- // if next is defined then use its value
- if (isNextDefined) acc[prop] = nextProps[prop]
-
- return acc
- }, {})
-
- if (Object.keys(newState).length > 0) this.setState(newState)
- }
-
- /**
- * Safely attempt to set state for props that might be controlled by the user.
- * Second argument is a state object that is always passed to setState.
- * @param {object} state State that corresponds to controlled props.
- * @param {function} [callback] Callback which is called after setState applied.
- */
- trySetState = (state, callback) => {
- const newState = Object.keys(state).reduce((acc, prop) => {
- // ignore props defined by the parent
- if (this.props[prop] !== undefined) return acc
-
- acc[prop] = state[prop]
- return acc
- }, {})
-
- if (Object.keys(newState).length > 0) this.setState(newState, callback)
- }
-}
diff --git a/src/lib/ModernAutoControlledComponent.js b/src/lib/ModernAutoControlledComponent.js
index bad6711695..90fd7c4f6a 100644
--- a/src/lib/ModernAutoControlledComponent.js
+++ b/src/lib/ModernAutoControlledComponent.js
@@ -24,10 +24,50 @@
* hoisted and exposed by the HOC.
*/
import _ from 'lodash'
-import { Component } from 'react'
-import { getAutoControlledStateValue, getDefaultPropName } from './AutoControlledComponent'
+import React from 'react'
-export default class ModernAutoControlledComponent extends Component {
+const getDefaultPropName = (prop) => `default${prop[0].toUpperCase() + prop.slice(1)}`
+
+/**
+ * Return the auto controlled state value for a give prop. The initial value is chosen in this order:
+ * - regular props
+ * - then, default props
+ * - then, initial state
+ * - then, `checked` defaults to false
+ * - then, `value` defaults to '' or [] if props.multiple
+ * - else, undefined
+ *
+ * @param {string} propName A prop name
+ * @param {object} [props] A props object
+ * @param {object} [state] A state object
+ * @param {boolean} [includeDefaults=false] Whether or not to heed the default props or initial state
+ */
+const getAutoControlledStateValue = (propName, props, state, includeDefaults = false) => {
+ // regular props
+ const propValue = props[propName]
+ if (propValue !== undefined) return propValue
+
+ if (includeDefaults) {
+ // defaultProps
+ const defaultProp = props[getDefaultPropName(propName)]
+ if (defaultProp !== undefined) return defaultProp
+
+ // initial state - state may be null or undefined
+ if (state) {
+ const initialState = state[propName]
+ if (initialState !== undefined) return initialState
+ }
+ }
+
+ // React doesn't allow changing from uncontrolled to controlled components,
+ // default checked/value if they were not present.
+ if (propName === 'checked') return false
+ if (propName === 'value') return props.multiple ? [] : ''
+
+ // otherwise, undefined
+}
+
+export default class ModernAutoControlledComponent extends React.Component {
constructor(...args) {
super(...args)
@@ -147,10 +187,14 @@ export default class ModernAutoControlledComponent extends Component {
// Due to the inheritance of the AutoControlledComponent we should call its
// getAutoControlledStateFromProps() and merge it with the existing state
if (getAutoControlledStateFromProps) {
- const computedState = getAutoControlledStateFromProps(props, {
- ...state,
- ...newStateFromProps,
- })
+ const computedState = getAutoControlledStateFromProps(
+ props,
+ {
+ ...state,
+ ...newStateFromProps,
+ },
+ state,
+ )
// We should follow the idea of getDerivedStateFromProps() and return only modified state
return { ...newStateFromProps, ...computedState }
diff --git a/src/lib/index.js b/src/lib/index.js
index 20c79369ff..4c0e8bb44e 100644
--- a/src/lib/index.js
+++ b/src/lib/index.js
@@ -1,6 +1,5 @@
import makeDebugger from './makeDebugger'
-export AutoControlledComponent from './AutoControlledComponent'
export ModernAutoControlledComponent from './ModernAutoControlledComponent'
export * as childrenUtils from './childrenUtils'
diff --git a/src/modules/Dropdown/Dropdown.js b/src/modules/Dropdown/Dropdown.js
index 5b460bb4eb..2a20b53c1d 100644
--- a/src/modules/Dropdown/Dropdown.js
+++ b/src/modules/Dropdown/Dropdown.js
@@ -8,7 +8,7 @@ import React, { Children, cloneElement, createRef } from 'react'
import shallowEqual from 'shallowequal'
import {
- AutoControlledComponent as Component,
+ ModernAutoControlledComponent as Component,
childrenUtils,
customPropTypes,
doesNodeContainClick,
@@ -26,10 +26,14 @@ import DropdownItem from './DropdownItem'
import DropdownHeader from './DropdownHeader'
import DropdownMenu from './DropdownMenu'
import DropdownSearchInput from './DropdownSearchInput'
+import getMenuOptions from './utils/getMenuOptions'
+import getSelectedIndex from './utils/getSelectedIndex'
const debug = makeDebugger('dropdown')
const getKeyOrValue = (key, value) => (_.isNil(key) ? value : key)
+const getKeyAndValues = (options) =>
+ options ? options.map((option) => _.pick(option, ['key', 'value'])) : options
/**
* A dropdown allows a user to select a value from a series of options.
@@ -391,37 +395,82 @@ export default class Dropdown extends Component {
return { focus: false, searchQuery: '' }
}
- // eslint-disable-next-line camelcase
- UNSAFE_componentWillMount() {
- debug('componentWillMount()')
+ static getAutoControlledStateFromProps(nextProps, computedState, prevState) {
+ // These values are stored only for a comparison on next getAutoControlledStateFromProps()
+ const derivedState = { __value: nextProps.value, __options: nextProps.options }
+
+ if (!shallowEqual(nextProps.value, prevState.__value)) {
+ derivedState.selectedIndex = getSelectedIndex({
+ additionLabel: nextProps.additionLabel,
+ additionPosition: nextProps.additionPosition,
+ allowAdditions: nextProps.allowAdditions,
+ deburr: nextProps.deburr,
+ multiple: nextProps.multiple,
+ search: nextProps.search,
+ selectedIndex: computedState.selectedIndex,
+
+ value: computedState.value,
+ options: nextProps.options,
+ searchQuery: computedState.searchQuery,
+ })
+ }
+
+ // The selected index is only dependent on option keys/values.
+ // We only check those properties to avoid recursive performance impacts.
+ // https://github.com/Semantic-Org/Semantic-UI-React/issues/3000
+ if (!_.isEqual(getKeyAndValues(nextProps.options), getKeyAndValues(prevState.__options))) {
+ derivedState.selectedIndex = getSelectedIndex({
+ additionLabel: nextProps.additionLabel,
+ additionPosition: nextProps.additionPosition,
+ allowAdditions: nextProps.allowAdditions,
+ deburr: nextProps.deburr,
+ multiple: nextProps.multiple,
+ search: nextProps.search,
+ selectedIndex: computedState.selectedIndex,
+
+ value: computedState.value,
+ options: nextProps.options,
+ searchQuery: computedState.searchQuery,
+ })
+ }
+
+ return derivedState
+ }
+
+ componentDidMount() {
+ debug('componentDidMount()')
const { open, value } = this.state
- this.setValue(value)
this.setSelectedIndex(value)
if (open) {
- this.open()
+ this.open(null, false)
}
}
- // eslint-disable-next-line camelcase
- UNSAFE_componentWillReceiveProps(nextProps) {
- super.UNSAFE_componentWillReceiveProps(nextProps)
- debug('componentWillReceiveProps()')
- debug('to props:', objectDiff(this.props, nextProps))
+ shouldComponentUpdate(nextProps, nextState) {
+ return !shallowEqual(nextProps, this.props) || !shallowEqual(nextState, this.state)
+ }
+
+ componentDidUpdate(prevProps, prevState) {
+ // eslint-disable-line complexity
+ debug('componentDidUpdate()')
+ debug('to state:', objectDiff(prevState, this.state))
+
+ const { closeOnBlur, minCharacters, openOnFocus, search } = this.props
/* eslint-disable no-console */
if (process.env.NODE_ENV !== 'production') {
// in development, validate value type matches dropdown type
- const isNextValueArray = Array.isArray(nextProps.value)
- const hasValue = _.has(nextProps, 'value')
+ const isNextValueArray = Array.isArray(this.props.value)
+ const hasValue = _.has(this.props, 'value')
- if (hasValue && nextProps.multiple && !isNextValueArray) {
+ if (hasValue && this.props.multiple && !isNextValueArray) {
console.error(
'Dropdown `value` must be an array when `multiple` is set.' +
- ` Received type: \`${Object.prototype.toString.call(nextProps.value)}\`.`,
+ ` Received type: \`${Object.prototype.toString.call(this.props.value)}\`.`,
)
- } else if (hasValue && !nextProps.multiple && isNextValueArray) {
+ } else if (hasValue && !this.props.multiple && isNextValueArray) {
console.error(
'Dropdown `value` must not be an array when `multiple` is not set.' +
' Either set `multiple={true}` or use a string or number value.',
@@ -430,32 +479,6 @@ export default class Dropdown extends Component {
}
/* eslint-enable no-console */
- if (!shallowEqual(nextProps.value, this.props.value)) {
- debug('value changed, setting', nextProps.value)
- this.setValue(nextProps.value)
- this.setSelectedIndex(nextProps.value)
- }
-
- // The selected index is only dependent on option keys/values.
- // We only check those properties to avoid recursive performance impacts.
- // https://github.com/Semantic-Org/Semantic-UI-React/issues/3000
- if (
- !_.isEqual(this.getKeyAndValues(nextProps.options), this.getKeyAndValues(this.props.options))
- ) {
- this.setSelectedIndex(undefined, nextProps.options)
- }
- }
-
- shouldComponentUpdate(nextProps, nextState) {
- return !shallowEqual(nextProps, this.props) || !shallowEqual(nextState, this.state)
- }
-
- componentDidUpdate(prevProps, prevState) {
- // eslint-disable-line complexity
- debug('componentDidUpdate()')
- debug('to state:', objectDiff(prevState, this.state))
- const { closeOnBlur, minCharacters, openOnFocus, search } = this.props
-
// focused / blurred
if (!prevState.focus && this.state.focus) {
debug('dropdown focused')
@@ -565,7 +588,7 @@ export default class Dropdown extends Component {
if (valueHasChanged) {
// notify the onChange prop that the user is trying to change value
- this.setValue(newValue)
+ this.setState({ value: newValue })
this.setSelectedIndex(newValue)
this.handleChange(e, newValue)
@@ -589,7 +612,20 @@ export default class Dropdown extends Component {
if (!shouldSelect) return
e.preventDefault()
- const optionSize = _.size(this.getMenuOptions())
+ const optionSize = _.size(
+ getMenuOptions({
+ value: this.state.value,
+ options: this.props.options,
+ searchQuery: this.state.searchQuery,
+
+ additionLabel: this.props.additionLabel,
+ additionPosition: this.props.additionPosition,
+ allowAdditions: this.props.allowAdditions,
+ deburr: this.props.deburr,
+ multiple: this.props.multiple,
+ search: this.props.search,
+ }),
+ )
if (search && optionSize === 0) return
this.makeSelectedItemActive(e)
@@ -611,7 +647,7 @@ export default class Dropdown extends Component {
// remove most recent value
const newValue = _.dropRight(value)
- this.setValue(newValue)
+ this.setState({ value: newValue })
this.setSelectedIndex(newValue)
this.handleChange(e, newValue)
}
@@ -706,7 +742,7 @@ export default class Dropdown extends Component {
// notify the onChange prop that the user is trying to change value
if (valueHasChanged) {
- this.setValue(newValue)
+ this.setState({ value: newValue })
this.setSelectedIndex(value)
this.handleChange(e, newValue)
@@ -772,7 +808,7 @@ export default class Dropdown extends Component {
const newQuery = value
_.invoke(this.props, 'onSearchChange', e, { ...this.props, searchQuery: newQuery })
- this.trySetState({ searchQuery: newQuery, selectedIndex: 0 })
+ this.setState({ searchQuery: newQuery, selectedIndex: 0 })
// open search dropdown on search query
if (!open && newQuery.length >= minCharacters) {
@@ -787,100 +823,30 @@ export default class Dropdown extends Component {
// Getters
// ----------------------------------------
- getKeyAndValues = (options) =>
- options ? options.map((option) => _.pick(option, ['key', 'value'])) : options
-
- // There are times when we need to calculate the options based on a value
- // that hasn't yet been persisted to state.
- getMenuOptions = (
- value = this.state.value,
- options = this.props.options,
- searchQuery = this.state.searchQuery,
- ) => {
- const { additionLabel, additionPosition, allowAdditions, deburr, multiple, search } = this.props
-
- let filteredOptions = options
-
- // filter out active options
- if (multiple) {
- filteredOptions = _.filter(filteredOptions, (opt) => !_.includes(value, opt.value))
- }
-
- // filter by search query
- if (search && searchQuery) {
- if (_.isFunction(search)) {
- filteredOptions = search(filteredOptions, searchQuery)
- } else {
- // remove diacritics on search input and options, if deburr prop is set
- const strippedQuery = deburr ? _.deburr(searchQuery) : searchQuery
-
- const re = new RegExp(_.escapeRegExp(strippedQuery), 'i')
-
- filteredOptions = _.filter(filteredOptions, (opt) =>
- re.test(deburr ? _.deburr(opt.text) : opt.text),
- )
- }
- }
-
- // insert the "add" item
- if (
- allowAdditions &&
- search &&
- searchQuery &&
- !_.some(filteredOptions, { text: searchQuery })
- ) {
- const additionLabelElement = React.isValidElement(additionLabel)
- ? React.cloneElement(additionLabel, { key: 'addition-label' })
- : additionLabel || ''
-
- const addItem = {
- key: 'addition',
- // by using an array, we can pass multiple elements, but when doing so
- // we must specify a `key` for React to know which one is which
- text: [additionLabelElement, {searchQuery} ],
- value: searchQuery,
- className: 'addition',
- 'data-additional': true,
- }
- if (additionPosition === 'top') filteredOptions.unshift(addItem)
- else filteredOptions.push(addItem)
- }
-
- return filteredOptions
- }
-
getSelectedItem = () => {
const { selectedIndex } = this.state
- const options = this.getMenuOptions()
+ const options = getMenuOptions({
+ value: this.state.value,
+ options: this.props.options,
+ searchQuery: this.state.searchQuery,
+
+ additionLabel: this.props.additionLabel,
+ additionPosition: this.props.additionPosition,
+ allowAdditions: this.props.allowAdditions,
+ deburr: this.props.deburr,
+ multiple: this.props.multiple,
+ search: this.props.search,
+ })
return _.get(options, `[${selectedIndex}]`)
}
- getEnabledIndices = (givenOptions) => {
- const options = givenOptions || this.getMenuOptions()
-
- return _.reduce(
- options,
- (memo, item, index) => {
- if (!item.disabled) memo.push(index)
- return memo
- },
- [],
- )
- }
-
getItemByValue = (value) => {
const { options } = this.props
return _.find(options, { value })
}
- getMenuItemIndexByValue = (value, givenOptions) => {
- const options = givenOptions || this.getMenuOptions()
-
- return _.findIndex(options, ['value', value])
- }
-
getDropdownAriaOptions = () => {
const { loading, disabled, search, multiple } = this.props
const { open } = this.state
@@ -917,54 +883,29 @@ export default class Dropdown extends Component {
const { searchQuery } = this.state
if (searchQuery === undefined || searchQuery === '') return
- this.trySetState({ searchQuery: '' })
+ this.setState({ searchQuery: '' })
this.setSelectedIndex(value, undefined, '')
}
- setValue = (value) => {
- debug('setValue()', value)
- this.trySetState({ value })
- }
-
setSelectedIndex = (
value = this.state.value,
optionsProps = this.props.options,
searchQuery = this.state.searchQuery,
) => {
- const { multiple } = this.props
- const { selectedIndex } = this.state
- const options = this.getMenuOptions(value, optionsProps, searchQuery)
- const enabledIndicies = this.getEnabledIndices(options)
-
- let newSelectedIndex
-
- // update the selected index
- if (!selectedIndex || selectedIndex < 0) {
- const firstIndex = enabledIndicies[0]
-
- // Select the currently active item, if none, use the first item.
- // Multiple selects remove active items from the list,
- // their initial selected index should be 0.
- newSelectedIndex = multiple
- ? firstIndex
- : this.getMenuItemIndexByValue(value, options) || enabledIndicies[0]
- } else if (multiple) {
- // multiple selects remove options from the menu as they are made active
- // keep the selected index within range of the remaining items
- if (selectedIndex >= options.length - 1) {
- newSelectedIndex = enabledIndicies[enabledIndicies.length - 1]
- }
- } else {
- const activeIndex = this.getMenuItemIndexByValue(value, options)
-
- // regular selects can only have one active item
- // set the selected index to the currently active item
- newSelectedIndex = _.includes(enabledIndicies, activeIndex) ? activeIndex : undefined
- }
-
- if (!newSelectedIndex || newSelectedIndex < 0) {
- newSelectedIndex = enabledIndicies[0]
- }
+ const newSelectedIndex = getSelectedIndex({
+ additionLabel: this.props.additionLabel,
+ additionPosition: this.props.additionPosition,
+ allowAdditions: this.props.allowAdditions,
+ deburr: this.props.deburr,
+ multiple: this.props.multiple,
+ search: this.props.search,
+ // eslint-disable-next-line react/no-access-state-in-setstate
+ selectedIndex: this.state.selectedIndex,
+
+ value,
+ options: optionsProps,
+ searchQuery,
+ })
this.setState({ selectedIndex: newSelectedIndex })
}
@@ -989,7 +930,7 @@ export default class Dropdown extends Component {
debug('remove value:', labelProps.value)
debug('new value:', newValue)
- this.setValue(newValue)
+ this.setState({ value: newValue })
this.setSelectedIndex(newValue)
this.handleChange(e, newValue)
}
@@ -998,7 +939,18 @@ export default class Dropdown extends Component {
debug('moveSelectionBy()')
debug(`offset: ${offset}`)
- const options = this.getMenuOptions()
+ const options = getMenuOptions({
+ value: this.state.value,
+ options: this.props.options,
+ searchQuery: this.state.searchQuery,
+
+ additionLabel: this.props.additionLabel,
+ additionPosition: this.props.additionPosition,
+ allowAdditions: this.props.allowAdditions,
+ deburr: this.props.deburr,
+ multiple: this.props.multiple,
+ search: this.props.search,
+ })
// Prevent infinite loop
// TODO: remove left part of condition after children API will be removed
@@ -1013,8 +965,11 @@ export default class Dropdown extends Component {
// if 'wrapSelection' is set to false and selection is after last or before first, it just does not change
if (!wrapSelection && (nextIndex > lastIndex || nextIndex < 0)) {
nextIndex = startIndex
- } else if (nextIndex > lastIndex) nextIndex = 0
- else if (nextIndex < 0) nextIndex = lastIndex
+ } else if (nextIndex > lastIndex) {
+ nextIndex = 0
+ } else if (nextIndex < 0) {
+ nextIndex = lastIndex
+ }
if (options[nextIndex].disabled) {
this.moveSelectionBy(offset, nextIndex)
@@ -1050,7 +1005,7 @@ export default class Dropdown extends Component {
const { multiple } = this.props
const newValue = multiple ? [] : ''
- this.setValue(newValue)
+ this.setState({ value: newValue })
this.setSelectedIndex(newValue)
this.handleChange(e, newValue)
}
@@ -1141,30 +1096,31 @@ export default class Dropdown extends Component {
// set state only if there's a relevant difference
if (!upward !== !this.state.upward) {
- this.trySetState({ upward })
+ this.setState({ upward })
}
}
- open = (e) => {
- const { disabled, open, search } = this.props
- debug('open()', { disabled, open, search })
+ open = (e = null, triggerSetState = true) => {
+ const { disabled, search } = this.props
+ debug('open()', { disabled, search, open: this.state.open })
if (disabled) return
if (search) _.invoke(this.searchRef.current, 'focus')
_.invoke(this.props, 'onOpen', e, this.props)
- this.trySetState({ open: true })
+ if (triggerSetState) {
+ this.setState({ open: true })
+ }
this.scrollSelectedItemIntoView()
}
close = (e, callback = this.handleClose) => {
- const { open } = this.state
- debug('close()', { open })
+ debug('close()', { open: this.state.open })
- if (open) {
+ if (this.state.open) {
_.invoke(this.props, 'onClose', e, this.props)
- this.trySetState({ open: false }, callback)
+ this.setState({ open: false }, callback)
}
}
@@ -1279,7 +1235,18 @@ export default class Dropdown extends Component {
// lazy load, only render options when open
if (lazyLoad && !open) return null
- const options = this.getMenuOptions()
+ const options = getMenuOptions({
+ value: this.state.value,
+ options: this.props.options,
+ searchQuery: this.state.searchQuery,
+
+ additionLabel: this.props.additionLabel,
+ additionPosition: this.props.additionPosition,
+ allowAdditions: this.props.allowAdditions,
+ deburr: this.props.deburr,
+ multiple: this.props.multiple,
+ search: this.props.search,
+ })
if (noResultsMessage !== null && search && _.isEmpty(options)) {
return {noResultsMessage}
diff --git a/src/modules/Dropdown/utils/getMenuOptions.js b/src/modules/Dropdown/utils/getMenuOptions.js
new file mode 100644
index 0000000000..1b3751df3b
--- /dev/null
+++ b/src/modules/Dropdown/utils/getMenuOptions.js
@@ -0,0 +1,62 @@
+import _ from 'lodash'
+import React from 'react'
+
+// There are times when we need to calculate the options based on a value
+// that hasn't yet been persisted to state.
+export default function getMenuOptions(config) {
+ const {
+ additionLabel,
+ additionPosition,
+ allowAdditions,
+ deburr,
+ multiple,
+ options,
+ search,
+ searchQuery,
+ value,
+ } = config
+
+ let filteredOptions = options
+
+ // filter out active options
+ if (multiple) {
+ filteredOptions = _.filter(filteredOptions, (opt) => !_.includes(value, opt.value))
+ }
+
+ // filter by search query
+ if (search && searchQuery) {
+ if (_.isFunction(search)) {
+ filteredOptions = search(filteredOptions, searchQuery)
+ } else {
+ // remove diacritics on search input and options, if deburr prop is set
+ const strippedQuery = deburr ? _.deburr(searchQuery) : searchQuery
+
+ const re = new RegExp(_.escapeRegExp(strippedQuery), 'i')
+
+ filteredOptions = _.filter(filteredOptions, (opt) =>
+ re.test(deburr ? _.deburr(opt.text) : opt.text),
+ )
+ }
+ }
+
+ // insert the "add" item
+ if (allowAdditions && search && searchQuery && !_.some(filteredOptions, { text: searchQuery })) {
+ const additionLabelElement = React.isValidElement(additionLabel)
+ ? React.cloneElement(additionLabel, { key: 'addition-label' })
+ : additionLabel || ''
+
+ const addItem = {
+ key: 'addition',
+ // by using an array, we can pass multiple elements, but when doing so
+ // we must specify a `key` for React to know which one is which
+ text: [additionLabelElement, {searchQuery} ],
+ value: searchQuery,
+ className: 'addition',
+ 'data-additional': true,
+ }
+ if (additionPosition === 'top') filteredOptions.unshift(addItem)
+ else filteredOptions.push(addItem)
+ }
+
+ return filteredOptions
+}
diff --git a/src/modules/Dropdown/utils/getSelectedIndex.js b/src/modules/Dropdown/utils/getSelectedIndex.js
new file mode 100644
index 0000000000..90cdfbf1e7
--- /dev/null
+++ b/src/modules/Dropdown/utils/getSelectedIndex.js
@@ -0,0 +1,70 @@
+import _ from 'lodash'
+import getMenuOptions from './getMenuOptions'
+
+export default function getSelectedIndex(config) {
+ const {
+ additionLabel,
+ additionPosition,
+ allowAdditions,
+ deburr,
+ multiple,
+ options,
+ search,
+ searchQuery,
+ selectedIndex,
+ value,
+ } = config
+
+ const menuOptions = getMenuOptions({
+ value,
+ options,
+ searchQuery,
+
+ additionLabel,
+ additionPosition,
+ allowAdditions,
+ deburr,
+ multiple,
+ search,
+ })
+ const enabledIndicies = _.reduce(
+ menuOptions,
+ (memo, item, index) => {
+ if (!item.disabled) memo.push(index)
+ return memo
+ },
+ [],
+ )
+
+ let newSelectedIndex
+
+ // update the selected index
+ if (!selectedIndex || selectedIndex < 0) {
+ const firstIndex = enabledIndicies[0]
+
+ // Select the currently active item, if none, use the first item.
+ // Multiple selects remove active items from the list,
+ // their initial selected index should be 0.
+ newSelectedIndex = multiple
+ ? firstIndex
+ : _.findIndex(menuOptions, ['value', value]) || enabledIndicies[0]
+ } else if (multiple) {
+ // multiple selects remove options from the menu as they are made active
+ // keep the selected index within range of the remaining items
+ if (selectedIndex >= menuOptions.length - 1) {
+ newSelectedIndex = enabledIndicies[enabledIndicies.length - 1]
+ }
+ } else {
+ const activeIndex = _.findIndex(menuOptions, ['value', value])
+
+ // regular selects can only have one active item
+ // set the selected index to the currently active item
+ newSelectedIndex = _.includes(enabledIndicies, activeIndex) ? activeIndex : undefined
+ }
+
+ if (!newSelectedIndex || newSelectedIndex < 0) {
+ newSelectedIndex = enabledIndicies[0]
+ }
+
+ return newSelectedIndex
+}
diff --git a/test/specs/lib/AutoControlledComponent-test.js b/test/specs/lib/AutoControlledComponent-test.js
deleted file mode 100644
index 32543b9d5c..0000000000
--- a/test/specs/lib/AutoControlledComponent-test.js
+++ /dev/null
@@ -1,342 +0,0 @@
-/* eslint-disable no-console */
-import faker from 'faker'
-import _ from 'lodash'
-import React from 'react'
-
-import { AutoControlledComponent } from 'src/lib'
-import { consoleUtil } from 'test/utils'
-
-let TestClass
-
-/* eslint-disable */
-const createTestClass = (options = {}) =>
- class Test extends AutoControlledComponent {
- static autoControlledProps = options.autoControlledProps
- static defaultProps = options.defaultProps
- getInitialAutoControlledState() {
- return options.state
- }
- render = () =>
- }
-/* eslint-enable */
-
-const toDefaultName = (prop) => `default${prop.slice(0, 1).toUpperCase() + prop.slice(1)}`
-
-const makeProps = () => ({
- computer: 'hardware',
- flux: 'capacitor',
- ion: 'belt',
-})
-
-const makeDefaultProps = (props) =>
- _.transform(props, (res, val, key) => {
- res[toDefaultName(key)] = val
- })
-
-describe('extending AutoControlledComponent', () => {
- beforeEach(() => {
- TestClass = createTestClass({ autoControlledProps: [], state: {} })
- })
-
- it('does not throw with a `null` state', () => {
- TestClass = createTestClass({ autoControlledProps: [], state: null })
- shallow( )
- })
-
- describe('trySetState', () => {
- it('is an instance method', () => {
- shallow( )
- .instance()
- .trySetState.should.be.a('function')
- })
-
- it('sets state for autoControlledProps', () => {
- consoleUtil.disableOnce()
-
- const autoControlledProps = _.keys(makeProps())
- const randomProp = _.sample(autoControlledProps)
- const randomValue = faker.hacker.verb()
-
- TestClass = createTestClass({ autoControlledProps })
- const wrapper = shallow( )
-
- wrapper.instance().trySetState({ [randomProp]: randomValue })
-
- wrapper.should.have.state(randomProp, randomValue)
- })
-
- it('does not set state for props defined by the parent', () => {
- consoleUtil.disableOnce()
-
- const props = makeProps()
- const autoControlledProps = _.keys(props)
-
- const randomProp = _.sample(autoControlledProps)
- const randomValue = faker.hacker.phrase()
-
- TestClass = createTestClass({ autoControlledProps, state: {} })
- const wrapper = shallow( )
-
- wrapper.instance().trySetState({ [randomProp]: randomValue })
-
- // not updated
- wrapper.should.not.have.state(randomProp, randomValue)
-
- // is original value
- wrapper.should.have.state(randomProp, props[randomProp])
- })
-
- it('sets state for props passed as undefined by the parent', () => {
- consoleUtil.disableOnce()
-
- const props = makeProps()
- const autoControlledProps = _.keys(props)
-
- const randomProp = _.sample(autoControlledProps)
- const randomValue = faker.hacker.phrase()
-
- props[randomProp] = undefined
-
- TestClass = createTestClass({ autoControlledProps, state: {} })
- const wrapper = shallow( )
-
- wrapper.instance().trySetState({ [randomProp]: randomValue })
-
- wrapper.should.have.state(randomProp, randomValue)
- })
-
- it('does not set state for props passed as null by the parent', () => {
- consoleUtil.disableOnce()
-
- const props = makeProps()
- const autoControlledProps = _.keys(props)
-
- const randomProp = _.sample(autoControlledProps)
- const randomValue = faker.hacker.phrase()
-
- props[randomProp] = null
-
- TestClass = createTestClass({ autoControlledProps, state: {} })
- const wrapper = shallow( )
-
- wrapper.instance().trySetState({ [randomProp]: randomValue })
-
- // not updated
- wrapper.should.not.have.state(randomProp, randomValue)
-
- // is original value
- wrapper.should.have.state(randomProp, props[randomProp])
- })
- })
-
- describe('initial state', () => {
- it('is derived from autoControlledProps in props', () => {
- consoleUtil.disableOnce()
-
- const props = makeProps()
- const autoControlledProps = _.keys(props)
-
- TestClass = createTestClass({ autoControlledProps, state: {} })
- shallow( )
- .state()
- .should.deep.equal(props)
- })
-
- it('does not include non autoControlledProps', () => {
- const props = makeProps()
- const wrapper = shallow( )
-
- _.each(props, (val, key) => wrapper.should.not.have.state(key, val))
- })
-
- it('includes non autoControlled state', () => {
- const props = makeProps()
-
- TestClass = createTestClass({ autoControlledProps: [], state: { foo: 'bar' } })
- shallow( ).should.have.state('foo', 'bar')
- })
-
- it('uses the initial state if default and regular props are undefined', () => {
- consoleUtil.disableOnce()
-
- const defaultProps = { defaultFoo: undefined }
- const autoControlledProps = ['foo']
-
- TestClass = createTestClass({ autoControlledProps, defaultProps, state: { foo: 'bar' } })
-
- shallow( ).should.have.state('foo', 'bar')
- })
-
- it('uses the default prop if the regular prop is undefined', () => {
- consoleUtil.disableOnce()
-
- const defaultProps = { defaultFoo: 'default' }
- const autoControlledProps = ['foo']
-
- TestClass = createTestClass({ autoControlledProps, defaultProps, state: {} })
-
- shallow( ).should.have.state('foo', 'default')
- })
-
- it('uses the regular prop when a default is also defined', () => {
- consoleUtil.disableOnce()
-
- const defaultProps = { defaultFoo: 'default' }
- const autoControlledProps = ['foo']
-
- TestClass = createTestClass({ autoControlledProps, defaultProps, state: {} })
-
- shallow( ).should.have.state('foo', 'initial')
- })
-
- it('defaults "checked" to false if not present', () => {
- consoleUtil.disableOnce()
- TestClass.autoControlledProps.push('checked')
-
- shallow( ).should.have.state('checked', false)
- })
-
- it('defaults "value" to an empty string if not present', () => {
- consoleUtil.disableOnce()
- TestClass.autoControlledProps.push('value')
-
- shallow( ).should.have.state('value', '')
- })
-
- it('defaults "value" to an empty array if "multiple"', () => {
- consoleUtil.disableOnce()
- TestClass.autoControlledProps.push('value')
-
- shallow( )
- .state()
- .should.deep.equal({ value: [] })
- })
- })
-
- describe('default props', () => {
- it('are applied to state for props in autoControlledProps', () => {
- consoleUtil.disableOnce()
-
- const props = makeProps()
- const autoControlledProps = _.keys(props)
- const defaultProps = makeDefaultProps(props)
-
- TestClass = createTestClass({ autoControlledProps, state: {} })
- shallow( )
- .state()
- .should.deep.equal(props)
- })
-
- it('are not applied to state for normal props', () => {
- const props = makeProps()
- const defaultProps = makeDefaultProps(props)
-
- const wrapper = shallow( )
-
- _.each(props, (val, key) => wrapper.should.not.have.state(key, val))
- })
-
- it('allows trySetState to work on non-default autoControlledProps', () => {
- consoleUtil.disableOnce()
-
- const props = makeProps()
- const autoControlledProps = _.keys(props)
- const defaultProps = makeDefaultProps(props)
-
- const randomProp = _.sample(autoControlledProps)
- const randomValue = faker.hacker.phrase()
-
- TestClass = createTestClass({ autoControlledProps, state: {} })
- const wrapper = shallow( )
-
- wrapper.instance().trySetState({ [randomProp]: randomValue })
-
- wrapper.should.have.state(randomProp, randomValue)
- })
- })
-
- describe('changing props', () => {
- it('sets state for props in autoControlledProps', () => {
- consoleUtil.disableOnce()
-
- const props = makeProps()
- const autoControlledProps = _.keys(props)
-
- const randomProp = _.sample(autoControlledProps)
- const randomValue = faker.hacker.phrase()
-
- TestClass = createTestClass({ autoControlledProps, state: {} })
- const wrapper = shallow( )
-
- wrapper.setProps({ [randomProp]: randomValue })
-
- wrapper.should.have.state(randomProp, randomValue)
- })
-
- it('does not set state for props not in autoControlledProps', () => {
- consoleUtil.disableOnce()
- const props = makeProps()
-
- const randomProp = _.sample(_.keys(props))
- const randomValue = faker.hacker.phrase()
-
- TestClass = createTestClass({ autoControlledProps: [], state: {} })
- const wrapper = shallow( )
-
- wrapper.setProps({ [randomProp]: randomValue })
-
- wrapper.should.not.have.state(randomProp, randomValue)
- })
-
- it('does not set state for default props when changed', () => {
- consoleUtil.disableOnce()
-
- const props = makeProps()
- const autoControlledProps = _.keys(props)
- const defaultProps = makeDefaultProps(props)
-
- const randomDefaultProp = _.sample(defaultProps)
- const randomValue = faker.hacker.phrase()
-
- TestClass = createTestClass({ autoControlledProps, state: {} })
- const wrapper = shallow( )
-
- wrapper.setProps({ [randomDefaultProp]: randomValue })
-
- wrapper.should.not.have.state(randomDefaultProp, randomValue)
- })
-
- it('does not return state to default props when setting props undefined', () => {
- consoleUtil.disableOnce()
-
- const autoControlledProps = ['foo']
- const defaultProps = { defaultFoo: 'default' }
-
- TestClass = createTestClass({ autoControlledProps, defaultProps, state: {} })
- const wrapper = shallow( )
-
- // default value
- wrapper.should.have.state('foo', 'initial')
-
- wrapper.setProps({ foo: undefined })
-
- wrapper.should.have.state('foo', 'initial')
- })
-
- it('does not set state for props passed as null by the parent', () => {
- consoleUtil.disableOnce()
-
- const props = makeProps()
- const autoControlledProps = _.keys(props)
-
- const randomProp = _.sample(autoControlledProps)
-
- TestClass = createTestClass({ autoControlledProps, state: {} })
- const wrapper = shallow( )
-
- wrapper.setProps({ [randomProp]: null })
-
- wrapper.should.have.state(randomProp, null)
- })
- })
-})
diff --git a/test/specs/modules/Dropdown/Dropdown-test.js b/test/specs/modules/Dropdown/Dropdown-test.js
index 58e4d4d2ea..d2b8d631e3 100644
--- a/test/specs/modules/Dropdown/Dropdown-test.js
+++ b/test/specs/modules/Dropdown/Dropdown-test.js
@@ -627,23 +627,23 @@ describe('Dropdown', () => {
it('will call setSelectedIndex if options change', () => {
wrapperMount( )
- const instance = wrapper.instance()
- sandbox.spy(instance, 'setSelectedIndex')
+ wrapper.simulate('click')
+ domEvent.keyDown(document, { key: 'ArrowDown' })
+ wrapper.should.have.state('selectedIndex', 1)
wrapper.setProps({ options: [] })
-
- instance.setSelectedIndex.should.have.been.calledOnce()
+ wrapper.should.have.not.state('selectedIndex')
})
it('will not call setSelectedIndex if options have not changed', () => {
wrapperMount( )
- const instance = wrapper.instance()
- sandbox.spy(instance, 'setSelectedIndex')
+ wrapper.simulate('click')
+ domEvent.keyDown(document, { key: 'ArrowDown' })
+ wrapper.should.have.state('selectedIndex', 1)
wrapper.setProps({ options })
-
- instance.setSelectedIndex.should.not.have.been.calledOnce()
+ wrapper.should.have.state('selectedIndex', 1)
})
})
@@ -750,7 +750,7 @@ describe('Dropdown', () => {
const randomIndex = 1 + _.random(options.length - 2)
const value = options[randomIndex].value
- wrapperShallow( )
+ wrapperMount( )
wrapper.setProps({ options, value })
From 513f70e98d611447670fae3eae93c62e4a5011e5 Mon Sep 17 00:00:00 2001
From: Nicolas Klug
Date: Fri, 17 Jul 2020 10:17:47 +0200
Subject: [PATCH 27/60] docs(README.md): fix formatting (#3958)
Co-authored-by: Oleksandr Fediashov
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 00e5c51fc3..3d0df51c34 100644
--- a/README.md
+++ b/README.md
@@ -107,7 +107,7 @@ This is a listing of example projects and guides that will help you integrate Se
Can I use custom Icons?
- Yes. Just use <Icon className='my-icon' />
instead of `<Icon name='my-icon' />`. See https://github.com/Semantic-Org/Semantic-UI-React/issues/931#issuecomment-263643210 for detailed info and examples.
+ Yes. Just use <Icon className='my-icon' />
instead of <Icon name='my-icon' />
. See https://github.com/Semantic-Org/Semantic-UI-React/issues/931#issuecomment-263643210 for detailed info and examples.
From 1b686faec43a2e9f2852eca7a1bfde69d1f982ae Mon Sep 17 00:00:00 2001
From: Oleksandr Fediashov
Date: Fri, 17 Jul 2020 12:00:30 +0200
Subject: [PATCH 28/60] docs: remove knobs usage (#3988)
* docs: remove knobs usage
* use vercel variable
* add config and use silent
* fix siteRoot
---
.../ComponentExample/ComponentExample.js | 69 +++-------
.../ComponentExample/ComponentExampleKnobs.js | 43 ------
.../ExampleEditor/renderConfig.js | 2 -
docs/src/components/ExternalExampleLayout.js | 5 +-
.../Popup/Usage/PopupExampleEventsEnabled.js | 46 ++++---
.../Examples/SidebarExampleMultiple.js | 122 ++++++++++--------
.../Sidebar/States/SidebarExampleDimmed.js | 88 ++++++++-----
.../Sidebar/Types/SidebarExampleSidebar.js | 88 ++++++++-----
.../Sidebar/Usage/SidebarExampleCallback.js | 18 ++-
.../Sidebar/Usage/SidebarExampleTarget.js | 80 +++++++-----
static.config.js | 4 +-
vercel.json | 5 +
12 files changed, 302 insertions(+), 268 deletions(-)
delete mode 100644 docs/src/components/ComponentDoc/ComponentExample/ComponentExampleKnobs.js
create mode 100644 vercel.json
diff --git a/docs/src/components/ComponentDoc/ComponentExample/ComponentExample.js b/docs/src/components/ComponentDoc/ComponentExample/ComponentExample.js
index d945ecf1fc..4ec179bf57 100644
--- a/docs/src/components/ComponentDoc/ComponentExample/ComponentExample.js
+++ b/docs/src/components/ComponentDoc/ComponentExample/ComponentExample.js
@@ -1,11 +1,9 @@
-import { KnobProvider } from '@stardust-ui/docs-components'
import cx from 'classnames'
import copyToClipboard from 'copy-to-clipboard'
import PropTypes from 'prop-types'
import React, { Component } from 'react'
import { InView } from 'react-intersection-observer'
-
-import { Checkbox, Grid, Label } from 'semantic-ui-react'
+import { Grid } from 'semantic-ui-react'
import { examplePathToHash, scrollToAnchor } from 'docs/src/utils'
import CarbonAdNative from 'docs/src/components/CarbonAd/CarbonAdNative'
@@ -13,7 +11,6 @@ import formatCode from 'docs/src/utils/formatCode'
import ComponentControls from '../ComponentControls'
import ExampleEditor from '../ExampleEditor'
import ComponentDocContext from '../ComponentDocContext'
-import ComponentExampleKnobs from './ComponentExampleKnobs'
import ComponentExampleTitle from './ComponentExampleTitle'
const childrenStyle = {
@@ -26,29 +23,6 @@ const componentControlsStyle = {
width: 'auto',
}
-/* eslint-disable react/prop-types */
-const knobComponents = {
- KnobControl: (props) => (
-
- {props.children}
-
- ),
- KnobBoolean: (props) => (
- props.setValue(data.checked)}
- type='checkbox'
- value={props.value}
- />
- ),
- KnobLabel: (props) => (
-
- {props.name}
-
- ),
-}
-/* eslint-enable react/prop-types */
-
/**
* Renders a `component` and the raw `code` that produced it.
* Allows toggling the raw `code` code block.
@@ -193,30 +167,27 @@ class ComponentExample extends Component {
/>
-
-
-
- {children && (
-
- {children}
-
- )}
-
-
+ {children && (
+
+ {children}
-
+ )}
+
+
+
+
{isActiveHash && }
diff --git a/docs/src/components/ComponentDoc/ComponentExample/ComponentExampleKnobs.js b/docs/src/components/ComponentDoc/ComponentExample/ComponentExampleKnobs.js
deleted file mode 100644
index 6e1470f595..0000000000
--- a/docs/src/components/ComponentDoc/ComponentExample/ComponentExampleKnobs.js
+++ /dev/null
@@ -1,43 +0,0 @@
-import { CodeSnippet, KnobInspector, useKnobValues } from '@stardust-ui/docs-components'
-import _ from 'lodash'
-import React from 'react'
-import { Grid } from 'semantic-ui-react'
-
-const columnStyles = {
- padding: 0,
-}
-
-const knobsStyles = {
- background: 'whitesmoke',
- color: '#777',
- lineHeight: '1.5',
- padding: '1rem',
-}
-
-const rowStyles = {
- padding: 0,
-}
-
-const ComponentExampleKnobs = () => {
- const knobValues = useKnobValues()
- const values = _.fromPairs(knobValues.map((knob) => [knob.name, knob.value]))
-
- return (
-
- {(knobs) =>
- knobs && (
-
-
- {knobs}
-
-
-
-
-
- )
- }
-
- )
-}
-
-export default ComponentExampleKnobs
diff --git a/docs/src/components/ComponentDoc/ExampleEditor/renderConfig.js b/docs/src/components/ComponentDoc/ExampleEditor/renderConfig.js
index 6182e2d29d..2097e6a8ed 100644
--- a/docs/src/components/ComponentDoc/ExampleEditor/renderConfig.js
+++ b/docs/src/components/ComponentDoc/ExampleEditor/renderConfig.js
@@ -1,4 +1,3 @@
-import * as docsComponents from '@stardust-ui/docs-components'
import faker from 'faker'
import React from 'react'
import ReactDOM from 'react-dom'
@@ -18,7 +17,6 @@ export const babelConfig = {
}
export const externals = {
- '@stardust-ui/docs-components': docsComponents,
faker,
lodash: require('lodash'),
'prop-types': PropTypes,
diff --git a/docs/src/components/ExternalExampleLayout.js b/docs/src/components/ExternalExampleLayout.js
index 5fbc95d646..6273e6447a 100644
--- a/docs/src/components/ExternalExampleLayout.js
+++ b/docs/src/components/ExternalExampleLayout.js
@@ -1,12 +1,11 @@
-import { KnobProvider } from '@stardust-ui/docs-components'
import PropTypes from 'prop-types'
-import React, { createElement } from 'react'
+import React from 'react'
import { withRouteData } from 'react-static'
const ExternalExampleLayout = (props) => {
const exampleComponent = require(`docs/src/examples/${props.path}`).default
- return {createElement(exampleComponent)}
+ return React.createElement(exampleComponent)
}
ExternalExampleLayout.propTypes = {
diff --git a/docs/src/examples/modules/Popup/Usage/PopupExampleEventsEnabled.js b/docs/src/examples/modules/Popup/Usage/PopupExampleEventsEnabled.js
index 57e7f9c94f..c0bbebc02f 100644
--- a/docs/src/examples/modules/Popup/Usage/PopupExampleEventsEnabled.js
+++ b/docs/src/examples/modules/Popup/Usage/PopupExampleEventsEnabled.js
@@ -1,24 +1,38 @@
-import { useBooleanKnob } from '@stardust-ui/docs-components'
import React from 'react'
-import { Button, Popup } from 'semantic-ui-react'
+import { Button, Checkbox, Divider, Grid, Popup } from 'semantic-ui-react'
const PopupExampleEventsEnabled = () => {
- const [eventsEnabled] = useBooleanKnob({
- name: 'eventsEnabled',
- initialValue: true,
- })
- const [open, setOpen] = useBooleanKnob({ name: 'open' })
+ const [eventsEnabled, setEventsEnabled] = React.useState(true)
+ const [open, setOpen] = React.useState(false)
return (
- setOpen(false)}
- onOpen={() => setOpen(true)}
- open={open}
- trigger={ }
- />
+
+
+ open }}
+ onChange={(e, data) => setOpen(data.checked)}
+ />
+
+ eventsEnabled }}
+ onChange={(e, data) => setEventsEnabled(data.checked)}
+ />
+
+
+
+ setOpen(false)}
+ onOpen={() => setOpen(true)}
+ open={open}
+ trigger={ }
+ />
+
+
)
}
diff --git a/docs/src/examples/modules/Sidebar/Examples/SidebarExampleMultiple.js b/docs/src/examples/modules/Sidebar/Examples/SidebarExampleMultiple.js
index f51cd09c10..0e054cddfc 100644
--- a/docs/src/examples/modules/Sidebar/Examples/SidebarExampleMultiple.js
+++ b/docs/src/examples/modules/Sidebar/Examples/SidebarExampleMultiple.js
@@ -1,61 +1,81 @@
-import { useBooleanKnob } from '@stardust-ui/docs-components'
import React from 'react'
-import { Header, Icon, Image, Menu, Segment, Sidebar } from 'semantic-ui-react'
+import {
+ Checkbox,
+ Grid,
+ Header,
+ Icon,
+ Image,
+ Menu,
+ Segment,
+ Sidebar,
+} from 'semantic-ui-react'
const SidebarExampleMultiple = () => {
- const [visible, setVisible] = useBooleanKnob({ name: 'visible' })
+ const [visible, setVisible] = React.useState(false)
return (
-
- setVisible(false)}
- vertical
- visible={visible}
- width='thin'
- >
-
-
- Home
-
-
-
- Games
-
-
-
- Channels
-
-
+
+
+ visible }}
+ onChange={(e, data) => setVisible(data.checked)}
+ />
+
-
-
- File Permissions
-
- Share on Social
- Share by E-mail
- Edit Permissions
- Delete Permanently
-
+
+
+ setVisible(false)}
+ vertical
+ visible={visible}
+ width='thin'
+ >
+
+
+ Home
+
+
+
+ Games
+
+
+
+ Channels
+
+
-
-
-
-
-
-
-
+
+
+ File Permissions
+
+ Share on Social
+ Share by E-mail
+ Edit Permissions
+ Delete Permanently
+
+
+
+
+
+
+
+
+
+
+
)
}
diff --git a/docs/src/examples/modules/Sidebar/States/SidebarExampleDimmed.js b/docs/src/examples/modules/Sidebar/States/SidebarExampleDimmed.js
index 5f8e378f4b..359abc77ee 100644
--- a/docs/src/examples/modules/Sidebar/States/SidebarExampleDimmed.js
+++ b/docs/src/examples/modules/Sidebar/States/SidebarExampleDimmed.js
@@ -1,43 +1,63 @@
-import { useBooleanKnob } from '@stardust-ui/docs-components'
import React from 'react'
-import { Header, Icon, Image, Menu, Segment, Sidebar } from 'semantic-ui-react'
+import {
+ Checkbox,
+ Grid,
+ Header,
+ Icon,
+ Image,
+ Menu,
+ Segment,
+ Sidebar,
+} from 'semantic-ui-react'
const SidebarExampleDimmed = () => {
- const [visible, setVisible] = useBooleanKnob({ name: 'visible' })
+ const [visible, setVisible] = React.useState(false)
return (
-
- setVisible(false)}
- vertical
- visible={visible}
- width='thin'
- >
-
-
- Home
-
-
-
- Games
-
-
-
- Channels
-
-
+
+
+ visible }}
+ onChange={(e, data) => setVisible(data.checked)}
+ />
+
-
-
-
-
-
-
-
+
+
+ setVisible(false)}
+ vertical
+ visible={visible}
+ width='thin'
+ >
+
+
+ Home
+
+
+
+ Games
+
+
+
+ Channels
+
+
+
+
+
+
+
+
+
+
+
+
)
}
diff --git a/docs/src/examples/modules/Sidebar/Types/SidebarExampleSidebar.js b/docs/src/examples/modules/Sidebar/Types/SidebarExampleSidebar.js
index 6ba8cf7628..b6ae792b58 100644
--- a/docs/src/examples/modules/Sidebar/Types/SidebarExampleSidebar.js
+++ b/docs/src/examples/modules/Sidebar/Types/SidebarExampleSidebar.js
@@ -1,43 +1,63 @@
-import { useBooleanKnob } from '@stardust-ui/docs-components'
import React from 'react'
-import { Header, Icon, Image, Menu, Segment, Sidebar } from 'semantic-ui-react'
+import {
+ Checkbox,
+ Grid,
+ Header,
+ Icon,
+ Image,
+ Menu,
+ Segment,
+ Sidebar,
+} from 'semantic-ui-react'
const SidebarExampleSidebar = () => {
- const [visible, setVisible] = useBooleanKnob({ name: 'visible' })
+ const [visible, setVisible] = React.useState(false)
return (
-
- setVisible(false)}
- vertical
- visible={visible}
- width='thin'
- >
-
-
- Home
-
-
-
- Games
-
-
-
- Channels
-
-
+
+
+ visible }}
+ onChange={(e, data) => setVisible(data.checked)}
+ />
+
-
-
-
-
-
-
-
+
+
+ setVisible(false)}
+ vertical
+ visible={visible}
+ width='thin'
+ >
+
+
+ Home
+
+
+
+ Games
+
+
+
+ Channels
+
+
+
+
+
+
+
+
+
+
+
+
)
}
diff --git a/docs/src/examples/modules/Sidebar/Usage/SidebarExampleCallback.js b/docs/src/examples/modules/Sidebar/Usage/SidebarExampleCallback.js
index d470d1fbae..61179ec549 100644
--- a/docs/src/examples/modules/Sidebar/Usage/SidebarExampleCallback.js
+++ b/docs/src/examples/modules/Sidebar/Usage/SidebarExampleCallback.js
@@ -1,7 +1,7 @@
-import { useBooleanKnob } from '@stardust-ui/docs-components'
import React from 'react'
import {
Button,
+ Checkbox,
Grid,
Header,
Image,
@@ -32,11 +32,19 @@ const logReducer = (state, action) => {
const SidebarExampleCallback = () => {
const [logs, dispatch] = React.useReducer(logReducer, initialState)
- const [visible, setVisible] = useBooleanKnob({ name: 'visible' })
+ const [visible, setVisible] = React.useState(false)
return (
-
-
+
+
+ visible }}
+ onChange={(e, data) => setVisible(data.checked)}
+ />
+
+
+
{
-
+
{
const segmentRef = React.useRef()
- const [visible, setVisible] = useBooleanKnob({ name: 'visible' })
+ const [visible, setVisible] = React.useState(false)
return (
-
- setVisible(false)}
- vertical
- target={segmentRef}
- visible={visible}
- width='thin'
- >
- Home
- Games
- Channels
-
+
+
+ visible }}
+ onChange={(e, data) => setVisible(data.checked)}
+ />
+
- [
- ]
-
- When you will click there, the sidebar will be closed.
-
-
+
+
+ setVisible(false)}
+ vertical
+ target={segmentRef}
+ visible={visible}
+ width='thin'
+ >
+ Home
+ Games
+ Channels
+
-
-
-
-
-
+ [
+ ]
+
+ When you will click there, the sidebar will be closed.
+
+
+
+
+
+
+
+
+
+
)
}
diff --git a/static.config.js b/static.config.js
index 22faf07dcb..3941c20a76 100644
--- a/static.config.js
+++ b/static.config.js
@@ -43,6 +43,8 @@ export default {
src: config.paths.docsSrc(),
public: config.paths.docsPublic(),
},
- siteRoot: 'https://react.semantic-ui.com',
+ siteRoot: process.env.VERCEL_URL
+ ? `https://${process.env.VERCEL_URL}`
+ : 'https://react.semantic-ui.com',
webpack,
}
diff --git a/vercel.json b/vercel.json
new file mode 100644
index 0000000000..7ae9a3de54
--- /dev/null
+++ b/vercel.json
@@ -0,0 +1,5 @@
+{
+ "github": {
+ "silent": true
+ }
+}
From 799d4e927a595a95eab842eb068efc31d3252b4b Mon Sep 17 00:00:00 2001
From: Levi Thomason
Date: Tue, 21 Jul 2020 09:33:20 -0700
Subject: [PATCH 29/60] docs: remove development warning from readme [ci skip]
---
README.md | 7 -------
1 file changed, 7 deletions(-)
diff --git a/README.md b/README.md
index 3d0df51c34..3a6f7090b8 100644
--- a/README.md
+++ b/README.md
@@ -29,13 +29,6 @@
->Hey, we're in development. Prior to reaching [v1.0.0][6]:
->
->1. **MINOR** versions represent **breaking changes**
->1. **PATCH** versions represent **fixes _and_ features**
->1. There are **no deprecation warnings** between releases
->1. You should consult the [**CHANGELOG**][18] and related issues/PRs for more information
-
## Installation & Usage
See the [**Documentation**][2] for an introduction, usage information, and examples.
From ef532ffe1e05ae1cf45a543241afd2b68826678d Mon Sep 17 00:00:00 2001
From: Levi Thomason
Date: Tue, 21 Jul 2020 09:39:43 -0700
Subject: [PATCH 30/60] 1.0.0
---
package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/package.json b/package.json
index e201fa03b2..6222d8f82a 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "semantic-ui-react",
- "version": "0.88.2",
+ "version": "1.0.0",
"description": "The official Semantic-UI-React integration.",
"jsnext:main": "dist/es/index.js",
"main": "dist/commonjs/index.js",
From 0c042f3589313e2cfe2a759b1bf924b60b4259fc Mon Sep 17 00:00:00 2001
From: Oleksandr Fediashov
Date: Wed, 22 Jul 2020 10:39:36 +0200
Subject: [PATCH 31/60] docs(changelog): update changelog [ci skip]
---
CHANGELOG.md | 23 ++++++++++++++++++++++-
1 file changed, 22 insertions(+), 1 deletion(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 025f010a0e..12659382b9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,26 @@
# Change Log
+## [v1.0.0](https://github.com/Semantic-Org/Semantic-UI-React/tree/v1.0.0) (2020-07-21)
+
+[Full Changelog](https://github.com/Semantic-Org/Semantic-UI-React/compare/v0.88.2...v1.0.0)
+
+**Merged pull requests:**
+
+- docs: remove knobs usage [\#3988](https://github.com/Semantic-Org/Semantic-UI-React/pull/3988) ([layershifter](https://github.com/layershifter))
+- chore\(Dropdown\): remove deprecated lifecycle methods [\#3986](https://github.com/Semantic-Org/Semantic-UI-React/pull/3986) ([layershifter](https://github.com/layershifter))
+- chore: use `react-intersection-observer` in docs to improve perf [\#3985](https://github.com/Semantic-Org/Semantic-UI-React/pull/3985) ([reefman001](https://github.com/reefman001))
+- chore\(Transition\): remove deprecated lifecycle methods [\#3982](https://github.com/Semantic-Org/Semantic-UI-React/pull/3982) ([layershifter](https://github.com/layershifter))
+- chore\(Sticky\): remove usage of deprecated lifecycle methods [\#3974](https://github.com/Semantic-Org/Semantic-UI-React/pull/3974) ([layershifter](https://github.com/layershifter))
+- chore\(Visibility\): remove usage of deprecated lifecycle methods [\#3973](https://github.com/Semantic-Org/Semantic-UI-React/pull/3973) ([layershifter](https://github.com/layershifter))
+- chore\(TransitionGroup\): remove deprecated lifecycle methods [\#3970](https://github.com/Semantic-Org/Semantic-UI-React/pull/3970) ([layershifter](https://github.com/layershifter))
+- chore\(Search\): replace deprecated lifecycle methods [\#3968](https://github.com/Semantic-Org/Semantic-UI-React/pull/3968) ([layershifter](https://github.com/layershifter))
+- chore: use ModernAutoControlled component [\#3967](https://github.com/Semantic-Org/Semantic-UI-React/pull/3967) ([layershifter](https://github.com/layershifter))
+- chore\(TransitionablePortal\): remove usage of UNSAFE\_\* methods [\#3966](https://github.com/Semantic-Org/Semantic-UI-React/pull/3966) ([layershifter](https://github.com/layershifter))
+- fix\(customProptypes\): add a check for Element existance [\#3965](https://github.com/Semantic-Org/Semantic-UI-React/pull/3965) ([layershifter](https://github.com/layershifter))
+- docs\(README.md\): fix formatting [\#3958](https://github.com/Semantic-Org/Semantic-UI-React/pull/3958) ([klunico](https://github.com/klunico))
+- docs\(VisibilityExampleUpdateOn\): Correcting Typo [\#3952](https://github.com/Semantic-Org/Semantic-UI-React/pull/3952) ([mattorton](https://github.com/mattorton))
+- fix\(Input\): add 'inputMode' attribute to input [\#3916](https://github.com/Semantic-Org/Semantic-UI-React/pull/3916) ([RoyalHunt](https://github.com/RoyalHunt))
+
## [v0.88.2](https://github.com/Semantic-Org/Semantic-UI-React/tree/v0.88.2) (2019-12-08)
[Full Changelog](https://github.com/Semantic-Org/Semantic-UI-React/compare/v0.88.1...v0.88.2)
@@ -298,4 +319,4 @@
-\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
\ No newline at end of file
+\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
From 488bbeef3f4123b8d08e8dd05068e4b7752db2a0 Mon Sep 17 00:00:00 2001
From: Oleksandr Fediashov
Date: Wed, 22 Jul 2020 11:10:32 +0200
Subject: [PATCH 32/60] chore: add github action to check PR labels (#3992)
---
.github/workflows/pr-health.yml | 14 ++++++++++++++
1 file changed, 14 insertions(+)
create mode 100644 .github/workflows/pr-health.yml
diff --git a/.github/workflows/pr-health.yml b/.github/workflows/pr-health.yml
new file mode 100644
index 0000000000..ff78e0d197
--- /dev/null
+++ b/.github/workflows/pr-health.yml
@@ -0,0 +1,14 @@
+name: PR Health
+on:
+ pull_request:
+ types: [opened, labeled, unlabeled, synchronize]
+
+jobs:
+ label:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: mheap/github-action-required-labels@v1
+ with:
+ mode: exactly
+ count: 1
+ labels: "PR: Breaking Change :boom:, PR: New Feature :rocket:, PR: Bug Fix :bug:, PR: Docs :memo:, PR: Internal :house:"
From 83c2ce489350c2153309bd4092cd98112390d560 Mon Sep 17 00:00:00 2001
From: Oleksandr Fediashov
Date: Wed, 22 Jul 2020 11:57:24 +0200
Subject: [PATCH 33/60] chore: use CircleCI workflows [WIP] (#3993)
* chore: use CircleCI workflows
* remove orb
* add workflow
* fix path
---
.circleci/config.yml | 106 +++++++++++++++++++++++++++++--------------
1 file changed, 71 insertions(+), 35 deletions(-)
diff --git a/.circleci/config.yml b/.circleci/config.yml
index 08958dffb9..372ca0cf21 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -1,54 +1,90 @@
-version: 2
+version: 2.1
+
general:
branches:
ignore:
- gh-pages
+
+docker_defaults: &docker_defaults
+ docker:
+ - image: circleci/node:12-browsers
+ working_directory: ~/project/semantic-ui-react
+
+restore_node_modules: &restore_node_modules
+ restore_cache:
+ name: Restore node_modules cache
+ keys:
+ - v3-node-{{ .Branch }}-{{ checksum "yarn.lock" }}
+ - v3-node-{{ .Branch }}-
+ - v3-node-
+
jobs:
- build:
- docker:
- - image: circleci/node:8-browsers
- environment:
- TZ: "/usr/share/zoneinfo/America/Los_Angeles"
+ bootstrap:
+ <<: *docker_defaults
steps:
- - run:
- name: Update yarn
- command: |
- # remove default yarn
- sudo rm -rf $(dirname $(which yarn))/yarn*
- # download latest
- rm -rf ~/.yarn
- curl -o- -L https://yarnpkg.com/install.sh | bash
- echo 'export PATH="${PATH}:${HOME}/.yarn/bin"' >> $BASH_ENV
- checkout
- # because we don't invoke npm (we use yarn) we need to add npm bin to PATH manually
- - run:
- name: Add npm bin to PATH
- command: echo 'export PATH="${PATH}:$(npm bin)"' >> $BASH_ENV
- - restore_cache:
- keys:
- - v2-dependencies-{{ checksum "yarn.lock" }}
+ - *restore_node_modules
- run:
name: Install Dependencies
- command: yarn
+ command: yarn install --frozen-lockfile
- save_cache:
- key: v2-dependencies-{{ checksum "yarn.lock" }}
+ name: Save yarn cache
+ key: v3-yarn-{{ .Branch }}-{{ checksum "yarn.lock" }}
paths:
- - ~/.cache/yarn
- - run:
- name: Lint TypeScript
- command: yarn tsd:lint
- - run:
- name: Test TypeScript
- command: yarn tsd:test
+ - .cache/yarn
+ - save_cache:
+ name: Save node_modules cache
+ key: v3-node-{{ .Branch }}-{{ checksum "yarn.lock" }}
+ paths:
+ - node_modules/
- run:
- name: Lint JavaScript
- command: yarn lint
+ name: Remove node_modules to cleanup workspace
+ command: rm -r node_modules/
+ - persist_to_workspace:
+ root: ~/project
+ paths:
+ - semantic-ui-react
+
+ test:
+ <<: *docker_defaults
+ steps:
+ - attach_workspace:
+ at: ~/project
+ - *restore_node_modules
- run:
name: Test JavaScript
command: yarn test
+ - run:
+ name: Report coverage
+ command: bash <(curl -s https://codecov.io/bash)
+ - run:
+ name: Test TypeScript
+ command: yarn tsd:test
- run:
name: Test UMD bundle
command: yarn test:umd
+
+ lint:
+ <<: *docker_defaults
+ steps:
+ - attach_workspace:
+ at: ~/project
+ - *restore_node_modules
- run:
- name: Report coverage
- command: bash <(curl -s https://codecov.io/bash)
+ name: Lint TypeScript
+ command: yarn tsd:lint
+ - run:
+ name: Lint JavaScript
+ command: yarn lint
+
+workflows:
+ version: 2
+ main:
+ jobs:
+ - bootstrap
+ - test:
+ requires:
+ - bootstrap
+ - lint:
+ requires:
+ - bootstrap
From 3cf6431c230f223e670aca532919b3b6df893c2d Mon Sep 17 00:00:00 2001
From: Sergey Rotbart
Date: Fri, 24 Jul 2020 04:04:37 -0700
Subject: [PATCH 34/60] fix(FormFiled): pass `id` when contains child elements
or has `content` prop (#3901)
* Fixed an issue where id was not set for FormField when content or child elements were provided
* Update src/collections/Form/FormField.js
* Update src/collections/Form/FormField.js
* Update src/collections/Form/FormField.js
Co-authored-by: srotbart
Co-authored-by: Oleksandr Fediashov
---
src/collections/Form/FormField.js | 4 ++--
test/specs/collections/Form/FormField-test.js | 17 +++++++++++++++++
2 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/src/collections/Form/FormField.js b/src/collections/Form/FormField.js
index 0ee340a428..43e0097369 100644
--- a/src/collections/Form/FormField.js
+++ b/src/collections/Form/FormField.js
@@ -78,14 +78,14 @@ function FormField(props) {
if (_.isNil(control)) {
if (_.isNil(label)) {
return (
-
+
{childrenUtils.isNil(children) ? content : children}
)
}
return (
-
+
{errorLabelBefore}
{createHTMLLabel(label, { autoGenerateKey: false })}
{errorLabelAfter}
diff --git a/test/specs/collections/Form/FormField-test.js b/test/specs/collections/Form/FormField-test.js
index c7411e65f4..017414f4fe 100644
--- a/test/specs/collections/Form/FormField-test.js
+++ b/test/specs/collections/Form/FormField-test.js
@@ -198,4 +198,21 @@ describe('FormField', () => {
button.should.have.prop('content', 'Click Me')
})
})
+
+ describe('id', () => {
+ it('is set when content is provided', () => {
+ const wrapper = mount( )
+ const fieldId = wrapper.getDOMNode().getAttribute('id')
+ expect(fieldId).to.equal('testId')
+ })
+ it('is set when have child elements', () => {
+ const wrapper = mount(
+
+
+ ,
+ )
+ const fieldId = wrapper.getDOMNode().getAttribute('id')
+ expect(fieldId).to.equal('testId')
+ })
+ })
})
From c1c0152427b333678b2ddd4e1ca30279c547ba09 Mon Sep 17 00:00:00 2001
From: Anton Kuznetsov
Date: Fri, 24 Jul 2020 14:13:02 +0300
Subject: [PATCH 35/60] docs(LabelExampleImageColored): Update example (#3881)
Replace Veronika with jenny due to image name
Co-authored-by: Oleksandr Fediashov
---
.../examples/elements/Label/Types/LabelExampleImageColored.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/src/examples/elements/Label/Types/LabelExampleImageColored.js b/docs/src/examples/elements/Label/Types/LabelExampleImageColored.js
index b815c983e6..f79def881b 100644
--- a/docs/src/examples/elements/Label/Types/LabelExampleImageColored.js
+++ b/docs/src/examples/elements/Label/Types/LabelExampleImageColored.js
@@ -10,12 +10,12 @@ const LabelExampleImage = () => (
- Veronika
+ Jenny
Friend
- Helen
+ Christian
Co-worker
From e63ffb44754f1b71136ce914bf62d1ae216ea423 Mon Sep 17 00:00:00 2001
From: Oleksandr Fediashov
Date: Fri, 24 Jul 2020 13:29:51 +0200
Subject: [PATCH 36/60] fix(Accordion): update typings to include
`AccordionPanel` on static props (#3995)
---
src/modules/Accordion/Accordion.d.ts | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/modules/Accordion/Accordion.d.ts b/src/modules/Accordion/Accordion.d.ts
index feab3d1921..b0b926c1d7 100644
--- a/src/modules/Accordion/Accordion.d.ts
+++ b/src/modules/Accordion/Accordion.d.ts
@@ -2,6 +2,7 @@ import * as React from 'react'
import { default as AccordionAccordion, StrictAccordionAccordionProps } from './AccordionAccordion'
import AccordionContent from './AccordionContent'
+import AccordionPanel from './AccordionPanel'
import AccordionTitle from './AccordionTitle'
export interface AccordionProps extends StrictAccordionProps {
@@ -25,6 +26,7 @@ export interface StrictAccordionProps extends StrictAccordionAccordionProps {
interface AccordionComponent extends React.ComponentClass {
Accordion: typeof AccordionAccordion
Content: typeof AccordionContent
+ Panel: typeof AccordionPanel
Title: typeof AccordionTitle
}
From 8168146d1a5fb34d1aa040a892d67a25fcbef31c Mon Sep 17 00:00:00 2001
From: Oleksandr Fediashov
Date: Mon, 27 Jul 2020 10:31:03 +0200
Subject: [PATCH 37/60] feat(Flag): include "england" as a valid value (#3996)
---
docs/src/examples/elements/Flag/Types/FlagExampleTable.js | 1 +
src/elements/Flag/Flag.js | 2 ++
2 files changed, 3 insertions(+)
diff --git a/docs/src/examples/elements/Flag/Types/FlagExampleTable.js b/docs/src/examples/elements/Flag/Types/FlagExampleTable.js
index 61c070e659..466c0e0193 100644
--- a/docs/src/examples/elements/Flag/Types/FlagExampleTable.js
+++ b/docs/src/examples/elements/Flag/Types/FlagExampleTable.js
@@ -68,6 +68,7 @@ const countries = [
{ name: 'Ecuador', countryCode: 'ec' },
{ name: 'Egypt', countryCode: 'eg' },
{ name: 'El Salvador', countryCode: 'sv' },
+ { name: 'England', countryCode: 'gb eng' },
{ name: 'Equatorial Guinea', countryCode: 'gq' },
{ name: 'Eritrea', countryCode: 'er' },
{ name: 'Estonia', countryCode: 'ee' },
diff --git a/src/elements/Flag/Flag.js b/src/elements/Flag/Flag.js
index e6c35dc5f8..96bc1b1d58 100644
--- a/src/elements/Flag/Flag.js
+++ b/src/elements/Flag/Flag.js
@@ -132,6 +132,8 @@ export const names = [
'algeria',
'ec',
'ecuador',
+ 'england',
+ 'gb eng',
'ee',
'estonia',
'eg',
From 0335ce5ca7a5f63491af6cf515d98367b1a9078f Mon Sep 17 00:00:00 2001
From: Oleksandr Fediashov
Date: Mon, 27 Jul 2020 12:23:00 +0200
Subject: [PATCH 38/60] docs(SidebarExampleTransitions): fix look of the
example (#3997)
* docs(SidebarExampleTransitions): fix look of the example
* Update docs/src/examples/modules/Sidebar/Examples/SidebarExampleTransitions.js
* Update docs/src/examples/modules/Sidebar/Examples/SidebarExampleTransitions.js
---
docs/src/examples/.eslintrc | 6 +
.../Examples/SidebarExampleTransitions.js | 234 ++++++++++--------
2 files changed, 135 insertions(+), 105 deletions(-)
diff --git a/docs/src/examples/.eslintrc b/docs/src/examples/.eslintrc
index 3f0f3128bc..e0b45c6c55 100644
--- a/docs/src/examples/.eslintrc
+++ b/docs/src/examples/.eslintrc
@@ -17,6 +17,12 @@
"rules": {
"no-restricted-imports": "off"
}
+ },
+ {
+ "files": ["**/*Example*.js"],
+ "rules": {
+ "react/prop-types": "off"
+ }
}
]
}
diff --git a/docs/src/examples/modules/Sidebar/Examples/SidebarExampleTransitions.js b/docs/src/examples/modules/Sidebar/Examples/SidebarExampleTransitions.js
index 65a4b52665..a46afb31d2 100644
--- a/docs/src/examples/modules/Sidebar/Examples/SidebarExampleTransitions.js
+++ b/docs/src/examples/modules/Sidebar/Examples/SidebarExampleTransitions.js
@@ -1,5 +1,4 @@
-import PropTypes from 'prop-types'
-import React, { Component } from 'react'
+import React from 'react'
import {
Button,
Checkbox,
@@ -25,7 +24,7 @@ const HorizontalSidebar = ({ animation, direction, visible }) => (
-
+
@@ -35,17 +34,11 @@ const HorizontalSidebar = ({ animation, direction, visible }) => (
-
+
)
-HorizontalSidebar.propTypes = {
- animation: PropTypes.string,
- direction: PropTypes.string,
- visible: PropTypes.bool,
-}
-
const VerticalSidebar = ({ animation, direction, visible }) => (
(
)
-VerticalSidebar.propTypes = {
- animation: PropTypes.string,
- direction: PropTypes.string,
- visible: PropTypes.bool,
+function exampleReducer(state, action) {
+ switch (action.type) {
+ case 'CHANGE_ANIMATION':
+ return { ...state, animation: action.animation, visible: !state.visible }
+ case 'CHANGE_DIMMED':
+ return { ...state, dimmed: action.dimmed }
+ case 'CHANGE_DIRECTION':
+ return { ...state, direction: action.direction, visible: false }
+ default:
+ throw new Error()
+ }
}
-export default class SidebarExampleTransitions extends Component {
- state = {
+function SidebarExampleTransitions() {
+ const [state, dispatch] = React.useReducer(exampleReducer, {
animation: 'overlay',
direction: 'left',
dimmed: false,
visible: false,
- }
-
- handleAnimationChange = (animation) => () =>
- this.setState((prevState) => ({ animation, visible: !prevState.visible }))
-
- handleDimmedChange = (e, { checked }) => this.setState({ dimmed: checked })
-
- handleDirectionChange = (direction) => () =>
- this.setState({ direction, visible: false })
+ })
- render() {
- const { animation, dimmed, direction, visible } = this.state
- const vertical = direction === 'bottom' || direction === 'top'
+ const { animation, dimmed, direction, visible } = state
+ const vertical = direction === 'bottom' || direction === 'top'
- return (
-
-
+ return (
+
+
+ dispatch({ type: 'CHANGE_DIMMED', dimmed: checked })
+ }
+ toggle
+ />
-
-
-
- Left
-
-
- Right
-
-
- Top
-
-
- Bottom
-
-
-
-
- Overlay
- Push
-
- Scale Down
+
+
+
+ dispatch({ type: 'CHANGE_DIRECTION', direction: 'left' })
+ }
+ >
+ Left
-
-
+ dispatch({ type: 'CHANGE_DIRECTION', direction: 'right' })
+ }
>
- Uncover
+ Right
+ dispatch({ type: 'CHANGE_DIRECTION', direction: 'top' })
+ }
>
- Slide Along
+ Top
+ dispatch({ type: 'CHANGE_DIRECTION', direction: 'bottom' })
+ }
>
- Slide Out
+ Bottom
+
-
- {vertical ? (
-
- ) : null}
- {vertical ? null : (
-
- )}
+
+
+ dispatch({ type: 'CHANGE_ANIMATION', animation: 'overlay' })
+ }
+ >
+ Overlay
+
+
+ dispatch({ type: 'CHANGE_ANIMATION', animation: 'push' })
+ }
+ >
+ Push
+
+
+ dispatch({ type: 'CHANGE_ANIMATION', animation: 'scale down' })
+ }
+ >
+ Scale Down
+
-
-
-
-
-
-
-
-
- )
- }
+
+
+ dispatch({ type: 'CHANGE_ANIMATION', animation: 'uncover' })
+ }
+ >
+ Uncover
+
+
+ dispatch({ type: 'CHANGE_ANIMATION', animation: 'slide along' })
+ }
+ >
+ Slide Along
+
+
+ dispatch({ type: 'CHANGE_ANIMATION', animation: 'slide out' })
+ }
+ >
+ Slide Out
+
+
+
+ {vertical && (
+
+ )}
+ {!vertical && (
+
+ )}
+
+
+
+
+
+
+
+
+
+ )
}
+
+export default SidebarExampleTransitions
From 7889c7a735a45f4b1de1466b6d37f36146957b41 Mon Sep 17 00:00:00 2001
From: Nitin Kumar
Date: Mon, 27 Jul 2020 17:30:21 +0530
Subject: [PATCH 39/60] docs(README): correct webpack example link (#3898)
* fix: webpack example link in README.md
* Update README.md
Co-authored-by: Oleksandr Fediashov
---
README.md | 20 +++++++-------------
1 file changed, 7 insertions(+), 13 deletions(-)
diff --git a/README.md b/README.md
index 3a6f7090b8..bc867155bd 100644
--- a/README.md
+++ b/README.md
@@ -85,13 +85,7 @@ This is a listing of example projects and guides that will help you integrate Se
Show projects
-
- ### [webpack][28]
- See our webpack 3 example project [here][28] (includes theming).
-
- ### [SUIcrux][102]
- Advanced universal starter with Semantic-UI-React. React/Redux/Lazy-loading/SSR/PWA.
-
+
### [semantic-ui-react-todos][100]
Semantic UI React implementation of [react-redux Todo List][101].
@@ -106,7 +100,8 @@ This is a listing of example projects and guides that will help you integrate Se
How do I setup CSS?
- There are several options. Refer to our doc on [CSS Usage][23].
+There are several options. Refer to our doc on [CSS Usage][23].
+
@@ -126,7 +121,7 @@ Here are some helpful links:
### [Voice Your Opinion][19]
-Help shape this library by weighing in on our [RFC (request for comments)][19] issues.
+Help shape this library by weighing in on our [RFC (request for comments)][19] issues.
### [Contribute][1]
@@ -134,11 +129,11 @@ Our [CONTRIBUTING.md][1] is a step-by-step setup and development guide.
### [Good First Issue][21]
-Issues labeled [`good first issue`][21] are a great way to ease into development on this project.
+Issues labeled [`good first issue`][21] are a great way to ease into development on this project.
### [Missing Components][17]
-We're seeking component parity with Semantic UI, plus some addons. There is an issue for every missing component, labeled [`new component`][17]. Just comment on the issue you'd like to take.
+We're seeking component parity with Semantic UI, plus some addons. There is an issue for every missing component, labeled [`new component`][17]. Just comment on the issue you'd like to take.
### [Help Wanted Label][4]
@@ -186,12 +181,11 @@ Made possible only by [@jlukic][32] authoring [Semantic UI][5].
[25]: http://learnsemantic.com/themes/creating.html
[26]: https://github.com/levithomason
[27]: https://github.com/layershifter
-[28]: https://github.com/Semantic-Org/Semantic-UI-React/tree/master/examples
[30]: https://github.com/Semantic-Org/Semantic-UI-Meteor
[31]: https://github.com/Netflix/flamescope
[32]: https://github.com/jlukic
+
[100]: https://github.com/wyc/semantic-ui-react-todos
[101]: https://github.com/reactjs/redux/tree/master/examples/todos
-[102]: https://github.com/Metnew/react-semantic.ui-starter
From 2ac8009014978c9e7625e02871c9c8b5ed0150c0 Mon Sep 17 00:00:00 2001
From: Oleksandr Fediashov
Date: Mon, 27 Jul 2020 15:39:34 +0200
Subject: [PATCH 40/60] fix(Portal): throw an error if React.Fragment passed as
`trigger` (#3998)
---
src/addons/Portal/Portal.js | 22 ++++++++++++-------
src/addons/Portal/utils/validateTrigger.js | 15 +++++++++++++
src/modules/Popup/Popup.js | 4 +++-
test/specs/addons/Portal/Portal-test.js | 4 ++--
.../Portal/utils/validateTrigger-test.js | 13 +++++++++++
5 files changed, 47 insertions(+), 11 deletions(-)
create mode 100644 src/addons/Portal/utils/validateTrigger.js
create mode 100644 test/specs/addons/Portal/utils/validateTrigger-test.js
diff --git a/src/addons/Portal/Portal.js b/src/addons/Portal/Portal.js
index 644644bba1..2199318ea1 100644
--- a/src/addons/Portal/Portal.js
+++ b/src/addons/Portal/Portal.js
@@ -3,7 +3,7 @@ import { handleRef, Ref } from '@stardust-ui/react-component-ref'
import keyboardKey from 'keyboard-key'
import _ from 'lodash'
import PropTypes from 'prop-types'
-import React, { cloneElement, createRef, Fragment } from 'react'
+import React from 'react'
import {
ModernAutoControlledComponent as Component,
@@ -11,6 +11,7 @@ import {
doesNodeContainClick,
makeDebugger,
} from '../../lib'
+import validateTrigger from './utils/validateTrigger'
import PortalInner from './PortalInner'
const debug = makeDebugger('portal')
@@ -126,8 +127,8 @@ class Portal extends Component {
static Inner = PortalInner
- contentRef = createRef()
- triggerRef = createRef()
+ contentRef = React.createRef()
+ triggerRef = React.createRef()
latestDocumentMouseDownEvent = null
componentWillUnmount() {
@@ -335,10 +336,15 @@ class Portal extends Component {
const { children, eventPool, mountNode, trigger } = this.props
const { open } = this.state
+ /* istanbul ignore else */
+ if (process.env.NODE_ENV !== 'production') {
+ validateTrigger(trigger)
+ }
+
return (
-
+ <>
{open && (
-
+ <>
-
+ >
)}
{trigger && (
[
- {cloneElement(trigger, {
+ {React.cloneElement(trigger, {
onBlur: this.handleTriggerBlur,
onClick: this.handleTriggerClick,
onFocus: this.handleTriggerFocus,
@@ -376,7 +382,7 @@ class Portal extends Component {
})}
]
)}
-
+ >
)
}
}
diff --git a/src/addons/Portal/utils/validateTrigger.js b/src/addons/Portal/utils/validateTrigger.js
new file mode 100644
index 0000000000..52ed7ab5c5
--- /dev/null
+++ b/src/addons/Portal/utils/validateTrigger.js
@@ -0,0 +1,15 @@
+import React from 'react'
+import * as ReactIs from 'react-is'
+
+/**
+ * Asserts that a passed element can be used cloned a props will be applied properly.
+ */
+export default function validateTrigger(element) {
+ if (element) {
+ React.Children.only(element)
+
+ if (ReactIs.isFragment(element)) {
+ throw new Error('An "React.Fragment" cannot be used as a `trigger`.')
+ }
+ }
+}
diff --git a/src/modules/Popup/Popup.js b/src/modules/Popup/Popup.js
index f5bf692d7d..11ddaf6e08 100644
--- a/src/modules/Popup/Popup.js
+++ b/src/modules/Popup/Popup.js
@@ -341,7 +341,9 @@ export default class Popup extends Component {
} = this.props
const { closed, portalRestProps } = this.state
- if (closed || disabled) return trigger
+ if (closed || disabled) {
+ return trigger
+ }
const modifiers = _.merge(
{
diff --git a/test/specs/addons/Portal/Portal-test.js b/test/specs/addons/Portal/Portal-test.js
index 5fc08f1fb1..d8f95462d5 100644
--- a/test/specs/addons/Portal/Portal-test.js
+++ b/test/specs/addons/Portal/Portal-test.js
@@ -1,6 +1,6 @@
import _ from 'lodash'
import PropTypes from 'prop-types'
-import React, { Component } from 'react'
+import React from 'react'
import * as common from 'test/specs/commonTests'
import { domEvent, sandbox } from 'test/utils'
@@ -10,7 +10,7 @@ import PortalInner from 'src/addons/Portal/PortalInner'
let wrapper
const createHandlingComponent = (eventName) =>
- class HandlingComponent extends Component {
+ class HandlingComponent extends React.Component {
static propTypes = {
handler: PropTypes.func,
}
diff --git a/test/specs/addons/Portal/utils/validateTrigger-test.js b/test/specs/addons/Portal/utils/validateTrigger-test.js
new file mode 100644
index 0000000000..2f08df52e5
--- /dev/null
+++ b/test/specs/addons/Portal/utils/validateTrigger-test.js
@@ -0,0 +1,13 @@
+import React from 'react'
+
+import validateTrigger from 'src/addons/Portal/utils/validateTrigger'
+
+describe('validateTrigger', () => {
+ it('throws on multiple elements passed', () => {
+ expect(() => validateTrigger([ , ])).to.throw()
+ })
+
+ it('throws on React.Fragment passed', () => {
+ expect(() => validateTrigger(React.createElement(React.Fragment))).to.throw()
+ })
+})
From 6a4ecc8c34fd5798bd00959134332d4abb28f91c Mon Sep 17 00:00:00 2001
From: Oleksandr Fediashov
Date: Mon, 27 Jul 2020 21:11:47 +0200
Subject: [PATCH 41/60] chore: add bundle size metrics (#3999)
* chore: add bundle size metrics
* fix script
* fix script, add config & plugin
* update config, cleanup modules
* fix deps
---
.github/workflows/size-limit.yml | 35 +
.size-limit.js | 5 +
bundle-size/bundle.js | 135 ++
bundle-size/fixtures/Button.size.js | 9 +
bundle-size/fixtures/Icon.size.js | 9 +
bundle-size/fixtures/Image.size.js | 9 +
bundle-size/fixtures/Portal.size.js | 9 +
package.json | 8 +-
yarn.lock | 2049 ++++++++++++++++++++-------
9 files changed, 1737 insertions(+), 531 deletions(-)
create mode 100644 .github/workflows/size-limit.yml
create mode 100644 .size-limit.js
create mode 100644 bundle-size/bundle.js
create mode 100644 bundle-size/fixtures/Button.size.js
create mode 100644 bundle-size/fixtures/Icon.size.js
create mode 100644 bundle-size/fixtures/Image.size.js
create mode 100644 bundle-size/fixtures/Portal.size.js
diff --git a/.github/workflows/size-limit.yml b/.github/workflows/size-limit.yml
new file mode 100644
index 0000000000..1897cbd5da
--- /dev/null
+++ b/.github/workflows/size-limit.yml
@@ -0,0 +1,35 @@
+name: Bundle Size
+on:
+ pull_request:
+ branches:
+ - master
+
+jobs:
+ size:
+ runs-on: ubuntu-latest
+ env:
+ CI_JOB_NUMBER: 1
+ steps:
+ - uses: actions/checkout@v2
+
+ - uses: actions/setup-node@v1
+ with:
+ node-version: 12.x
+
+ - name: Cache node_modules
+ uses: actions/cache@v1
+ id: yarn-cache-node-modules
+ with:
+ path: node_modules
+ key: ${{ runner.os }}-yarn-cache-node-modules-${{ hashFiles('**/yarn.lock') }}
+ restore-keys: |
+ ${{ runner.os }}-yarn-cache-node-modules-
+
+ - name: Yarn install
+ if: steps.yarn-cache-node-modules.outputs.cache-hit != 'true'
+ run: yarn install --frozen-lockfile
+
+ - uses: andresz1/size-limit-action@v1.4.0
+ with:
+ build_script: build:size
+ github_token: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.size-limit.js b/.size-limit.js
new file mode 100644
index 0000000000..0ed05cb77e
--- /dev/null
+++ b/.size-limit.js
@@ -0,0 +1,5 @@
+module.exports = require('glob')
+ .sync('bundle-size/dist/*.size.js', {
+ cwd: __dirname,
+ })
+ .map((file) => ({ path: file, gzip: false }))
diff --git a/bundle-size/bundle.js b/bundle-size/bundle.js
new file mode 100644
index 0000000000..99363024e8
--- /dev/null
+++ b/bundle-size/bundle.js
@@ -0,0 +1,135 @@
+const c = require('ansi-colors')
+const glob = require('glob')
+const path = require('path')
+const terserVersion = require('terser/package.json').version
+const TerserWebpackPlugin = require('terser-webpack-plugin')
+const webpack = require('webpack')
+const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
+const { argv } = require('yargs')
+
+const config = require('../config')
+
+// Ensures that production settings for Babel are used
+process.env.NODE_ENV = 'build-es'
+
+/* eslint-disable no-await-in-loop */
+/* eslint-disable no-console */
+/* eslint-disable no-restricted-syntax */
+
+//
+// Webpack config
+//
+
+const makeWebpackConfig = (entry) => ({
+ devtool: false,
+ mode: 'production',
+ name: 'client',
+ target: 'web',
+
+ entry,
+ output: {
+ filename: path.basename(entry),
+ path: config.paths.base('bundle-size', 'dist'),
+ },
+
+ module: {
+ rules: [
+ {
+ test: /\.(js|ts)$/,
+ loader: 'babel-loader',
+ exclude: /node_modules/,
+ options: {
+ cacheDirectory: true,
+ },
+ },
+ ],
+ },
+ externals: {
+ react: 'react',
+ 'react-dom': 'reactDOM',
+ },
+
+ ...(argv.debug && {
+ optimization: {
+ minimizer: [
+ new TerserWebpackPlugin({
+ cache: true,
+ parallel: true,
+ sourceMap: false,
+
+ terserOptions: {
+ mangle: false,
+ output: {
+ beautify: true,
+ comments: true,
+ preserve_annotations: true,
+ },
+ },
+ }),
+ ],
+ },
+ }),
+
+ performance: {
+ hints: false,
+ },
+ plugins: [
+ argv.debug &&
+ new BundleAnalyzerPlugin({
+ analyzerMode: 'static',
+ logLevel: 'warn',
+ openAnalyzer: false,
+ reportFilename: `${path.basename(entry, '.js')}.html`,
+ }),
+ ].filter(Boolean),
+ resolve: {
+ alias: {
+ 'semantic-ui-react': config.paths.dist('es', 'index.js'),
+ },
+ },
+})
+
+function webpackAsync(webpackConfig) {
+ return new Promise((resolve, reject) => {
+ const compiler = webpack(webpackConfig)
+
+ compiler.run((err, stats) => {
+ if (err) {
+ reject(err)
+ }
+
+ const info = stats.toJson()
+
+ if (stats.hasErrors()) {
+ reject(new Error(info.errors.toString()))
+ }
+ if (stats.hasWarnings()) {
+ reject(new Error(info.warnings.toString()))
+ }
+
+ resolve(info)
+ })
+ })
+}
+
+//
+//
+//
+
+;(async () => {
+ const fixtures = glob.sync('fixtures/*.size.js', {
+ cwd: __dirname,
+ })
+
+ console.log(c.cyan(`ℹ Using Webpack ${webpack.version} & Terser ${terserVersion}`))
+
+ console.log(c.cyan('ℹ Running following fixtures:'))
+ console.log(c.cyan(fixtures.map((fixture) => ` - ${fixture}`).join('\n')))
+
+ for (const fixture of fixtures) {
+ const fixturePath = config.paths.base('bundle-size', fixture)
+
+ await webpackAsync(makeWebpackConfig(fixturePath))
+ console.log(c.green(`✔ Completed: ${fixture}`))
+ }
+})()
diff --git a/bundle-size/fixtures/Button.size.js b/bundle-size/fixtures/Button.size.js
new file mode 100644
index 0000000000..1bee78f116
--- /dev/null
+++ b/bundle-size/fixtures/Button.size.js
@@ -0,0 +1,9 @@
+import { Button } from 'semantic-ui-react'
+import React from 'react'
+import ReactDOM from 'react-dom'
+
+function App() {
+ return A sample button
+}
+
+ReactDOM.render( , document.querySelector('#root'))
diff --git a/bundle-size/fixtures/Icon.size.js b/bundle-size/fixtures/Icon.size.js
new file mode 100644
index 0000000000..fdc60043c9
--- /dev/null
+++ b/bundle-size/fixtures/Icon.size.js
@@ -0,0 +1,9 @@
+import { Icon } from 'semantic-ui-react'
+import React from 'react'
+import ReactDOM from 'react-dom'
+
+function App() {
+ return
+}
+
+ReactDOM.render( , document.querySelector('#root'))
diff --git a/bundle-size/fixtures/Image.size.js b/bundle-size/fixtures/Image.size.js
new file mode 100644
index 0000000000..74fb88ce60
--- /dev/null
+++ b/bundle-size/fixtures/Image.size.js
@@ -0,0 +1,9 @@
+import { Image } from 'semantic-ui-react'
+import React from 'react'
+import ReactDOM from 'react-dom'
+
+function App() {
+ return
+}
+
+ReactDOM.render( , document.querySelector('#root'))
diff --git a/bundle-size/fixtures/Portal.size.js b/bundle-size/fixtures/Portal.size.js
new file mode 100644
index 0000000000..c9d1221490
--- /dev/null
+++ b/bundle-size/fixtures/Portal.size.js
@@ -0,0 +1,9 @@
+import { Portal } from 'semantic-ui-react'
+import React from 'react'
+import ReactDOM from 'react-dom'
+
+function App() {
+ return }>Some content
+}
+
+ReactDOM.render( , document.querySelector('#root'))
diff --git a/package.json b/package.json
index 6222d8f82a..da67d3126f 100644
--- a/package.json
+++ b/package.json
@@ -18,7 +18,9 @@
"build:changelog": "github_changelog_generator --user Semantic-Org --project Semantic-UI-React --no-issues --no-unreleased --release-branch master --since-tag $(git describe --abbrev=0 --tags $(git rev-parse HEAD~250))",
"build:docs": "cross-env NODE_ENV=production gulp build:docs",
"build:docs:staging": "cross-env STAGING=true yarn build:docs && yarn serve docs/dist",
- "build:dist": "gulp --series build:dist",
+ "build:dist": "gulp build:dist",
+ "prebuild:size": "gulp build:dist:es",
+ "build:size": "node bundle-size/bundle.js",
"ci": "yarn tsd:lint && yarn tsd:test && yarn lint && yarn test",
"predeploy:docs": "cross-env NODE_ENV=production yarn build:docs && gulp build:docs:cname",
"deploy:changelog": "git add CHANGELOG.md && git commit -m \"docs(changelog): update changelog [ci skip]\" && git push",
@@ -103,6 +105,7 @@
"@babel/register": "^7.4.4",
"@babel/standalone": "^7.4.5",
"@mdx-js/loader": "^0.20.3",
+ "@size-limit/file": "^4.5.5",
"@stardust-ui/docs-components": "^0.34.1",
"@types/react": "^16.8.25",
"anchor-js": "^4.2.0",
@@ -171,7 +174,9 @@
"simulant": "^0.2.2",
"sinon": "^7.2.7",
"sinon-chai": "^3.3.0",
+ "size-limit": "^4.5.5",
"ta-scripts": "^2.5.2",
+ "terser-webpack-plugin": "^3.0.7",
"terser-webpack-plugin-legacy": "^1.2.3",
"through2": "^3.0.1",
"tslint": "^5.14.0",
@@ -179,6 +184,7 @@
"typescript": "^3.3.3333",
"vinyl": "^2.2.0",
"webpack": "^4.28.4",
+ "webpack-bundle-analyzer": "^3.8.0",
"webpack-cli": "^3.2.1",
"webpack-dev-middleware": "^3.5.0"
},
diff --git a/yarn.lock b/yarn.lock
index 3a0f06044d..590793476b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -937,6 +937,34 @@
resolved "https://registry.yarnpkg.com/@mdx-js/tag/-/tag-0.20.3.tgz#9e2306040b6469248c45a5f5baf44d0014db0493"
integrity sha512-Co3gUFmNDv9z2LjuvLTpTj2NaOSHFxuoZjohcG0YK/KfECO+Ns9idzThMYjfEDe1vAf4c824rqlBYseedJdFNw==
+"@nodelib/fs.scandir@2.1.3":
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b"
+ integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==
+ dependencies:
+ "@nodelib/fs.stat" "2.0.3"
+ run-parallel "^1.1.9"
+
+"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2":
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3"
+ integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==
+
+"@nodelib/fs.walk@^1.2.3":
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976"
+ integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==
+ dependencies:
+ "@nodelib/fs.scandir" "2.1.3"
+ fastq "^1.6.0"
+
+"@npmcli/move-file@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.0.1.tgz#de103070dac0f48ce49cf6693c23af59c0f70464"
+ integrity sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw==
+ dependencies:
+ mkdirp "^1.0.4"
+
"@samverschueren/stream-to-observable@^0.3.0":
version "0.3.0"
resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz#ecdf48d532c58ea477acfcab80348424f8d0662f"
@@ -980,6 +1008,13 @@
resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5"
integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==
+"@size-limit/file@^4.5.5":
+ version "4.5.5"
+ resolved "https://registry.yarnpkg.com/@size-limit/file/-/file-4.5.5.tgz#98a435f68f598d71c6f6e9684a45af10ec9bf37d"
+ integrity sha512-VabOMoIllRc36/HthwY7xctwyqzQ/Piy1EEIb/SOHjB2S7IVRKRtXDNULRRD+gaY0gMyHZaK1u81M3xJkVKBAg==
+ dependencies:
+ semver "7.3.2"
+
"@stardust-ui/docs-components@^0.34.1":
version "0.34.1"
resolved "https://registry.yarnpkg.com/@stardust-ui/docs-components/-/docs-components-0.34.1.tgz#d7cf5f67f32beb3c29dbf3ce5f3c41d9592ee7fb"
@@ -1026,14 +1061,34 @@
traverse "^0.6.6"
unified "^6.1.6"
+"@types/color-name@^1.1.1":
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0"
+ integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==
+
"@types/history@*":
version "4.6.2"
resolved "https://registry.yarnpkg.com/@types/history/-/history-4.6.2.tgz#12cfaba693ba20f114ed5765467ff25fdf67ddb0"
+"@types/json-schema@^7.0.4":
+ version "7.0.5"
+ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.5.tgz#dcce4430e64b443ba8945f0290fb564ad5bac6dd"
+ integrity sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ==
+
"@types/node@*":
version "8.0.53"
resolved "https://registry.yarnpkg.com/@types/node/-/node-8.0.53.tgz#396b35af826fa66aad472c8cb7b8d5e277f4e6d8"
+"@types/normalize-package-data@^2.4.0":
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e"
+ integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==
+
+"@types/parse-json@^4.0.0":
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0"
+ integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==
+
"@types/prop-types@*":
version "15.5.6"
resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.5.6.tgz#9c03d3fed70a8d517c191b7734da2879b50ca26c"
@@ -1089,158 +1144,160 @@
"@types/unist" "*"
"@types/vfile-message" "*"
-"@webassemblyjs/ast@1.7.11":
- version "1.7.11"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.7.11.tgz#b988582cafbb2b095e8b556526f30c90d057cace"
- integrity sha512-ZEzy4vjvTzScC+SH8RBssQUawpaInUdMTYwYYLh54/s8TuT0gBLuyUnppKsVyZEi876VmmStKsUs28UxPgdvrA==
- dependencies:
- "@webassemblyjs/helper-module-context" "1.7.11"
- "@webassemblyjs/helper-wasm-bytecode" "1.7.11"
- "@webassemblyjs/wast-parser" "1.7.11"
-
-"@webassemblyjs/floating-point-hex-parser@1.7.11":
- version "1.7.11"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.11.tgz#a69f0af6502eb9a3c045555b1a6129d3d3f2e313"
- integrity sha512-zY8dSNyYcgzNRNT666/zOoAyImshm3ycKdoLsyDw/Bwo6+/uktb7p4xyApuef1dwEBo/U/SYQzbGBvV+nru2Xg==
-
-"@webassemblyjs/helper-api-error@1.7.11":
- version "1.7.11"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.11.tgz#c7b6bb8105f84039511a2b39ce494f193818a32a"
- integrity sha512-7r1qXLmiglC+wPNkGuXCvkmalyEstKVwcueZRP2GNC2PAvxbLYwLLPr14rcdJaE4UtHxQKfFkuDFuv91ipqvXg==
-
-"@webassemblyjs/helper-buffer@1.7.11":
- version "1.7.11"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.11.tgz#3122d48dcc6c9456ed982debe16c8f37101df39b"
- integrity sha512-MynuervdylPPh3ix+mKZloTcL06P8tenNH3sx6s0qE8SLR6DdwnfgA7Hc9NSYeob2jrW5Vql6GVlsQzKQCa13w==
-
-"@webassemblyjs/helper-code-frame@1.7.11":
- version "1.7.11"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.11.tgz#cf8f106e746662a0da29bdef635fcd3d1248364b"
- integrity sha512-T8ESC9KMXFTXA5urJcyor5cn6qWeZ4/zLPyWeEXZ03hj/x9weSokGNkVCdnhSabKGYWxElSdgJ+sFa9G/RdHNw==
- dependencies:
- "@webassemblyjs/wast-printer" "1.7.11"
-
-"@webassemblyjs/helper-fsm@1.7.11":
- version "1.7.11"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.11.tgz#df38882a624080d03f7503f93e3f17ac5ac01181"
- integrity sha512-nsAQWNP1+8Z6tkzdYlXT0kxfa2Z1tRTARd8wYnc/e3Zv3VydVVnaeePgqUzFrpkGUyhUUxOl5ML7f1NuT+gC0A==
-
-"@webassemblyjs/helper-module-context@1.7.11":
- version "1.7.11"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.11.tgz#d874d722e51e62ac202476935d649c802fa0e209"
- integrity sha512-JxfD5DX8Ygq4PvXDucq0M+sbUFA7BJAv/GGl9ITovqE+idGX+J3QSzJYz+LwQmL7fC3Rs+utvWoJxDb6pmC0qg==
-
-"@webassemblyjs/helper-wasm-bytecode@1.7.11":
- version "1.7.11"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.11.tgz#dd9a1e817f1c2eb105b4cf1013093cb9f3c9cb06"
- integrity sha512-cMXeVS9rhoXsI9LLL4tJxBgVD/KMOKXuFqYb5oCJ/opScWpkCMEz9EJtkonaNcnLv2R3K5jIeS4TRj/drde1JQ==
-
-"@webassemblyjs/helper-wasm-section@1.7.11":
- version "1.7.11"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.11.tgz#9c9ac41ecf9fbcfffc96f6d2675e2de33811e68a"
- integrity sha512-8ZRY5iZbZdtNFE5UFunB8mmBEAbSI3guwbrsCl4fWdfRiAcvqQpeqd5KHhSWLL5wuxo53zcaGZDBU64qgn4I4Q==
- dependencies:
- "@webassemblyjs/ast" "1.7.11"
- "@webassemblyjs/helper-buffer" "1.7.11"
- "@webassemblyjs/helper-wasm-bytecode" "1.7.11"
- "@webassemblyjs/wasm-gen" "1.7.11"
-
-"@webassemblyjs/ieee754@1.7.11":
- version "1.7.11"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.7.11.tgz#c95839eb63757a31880aaec7b6512d4191ac640b"
- integrity sha512-Mmqx/cS68K1tSrvRLtaV/Lp3NZWzXtOHUW2IvDvl2sihAwJh4ACE0eL6A8FvMyDG9abes3saB6dMimLOs+HMoQ==
+"@webassemblyjs/ast@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964"
+ integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==
+ dependencies:
+ "@webassemblyjs/helper-module-context" "1.9.0"
+ "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
+ "@webassemblyjs/wast-parser" "1.9.0"
+
+"@webassemblyjs/floating-point-hex-parser@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4"
+ integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==
+
+"@webassemblyjs/helper-api-error@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2"
+ integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==
+
+"@webassemblyjs/helper-buffer@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00"
+ integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==
+
+"@webassemblyjs/helper-code-frame@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27"
+ integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==
+ dependencies:
+ "@webassemblyjs/wast-printer" "1.9.0"
+
+"@webassemblyjs/helper-fsm@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8"
+ integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==
+
+"@webassemblyjs/helper-module-context@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07"
+ integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==
+ dependencies:
+ "@webassemblyjs/ast" "1.9.0"
+
+"@webassemblyjs/helper-wasm-bytecode@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790"
+ integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==
+
+"@webassemblyjs/helper-wasm-section@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346"
+ integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==
+ dependencies:
+ "@webassemblyjs/ast" "1.9.0"
+ "@webassemblyjs/helper-buffer" "1.9.0"
+ "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
+ "@webassemblyjs/wasm-gen" "1.9.0"
+
+"@webassemblyjs/ieee754@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4"
+ integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==
dependencies:
"@xtuc/ieee754" "^1.2.0"
-"@webassemblyjs/leb128@1.7.11":
- version "1.7.11"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.7.11.tgz#d7267a1ee9c4594fd3f7e37298818ec65687db63"
- integrity sha512-vuGmgZjjp3zjcerQg+JA+tGOncOnJLWVkt8Aze5eWQLwTQGNgVLcyOTqgSCxWTR4J42ijHbBxnuRaL1Rv7XMdw==
- dependencies:
- "@xtuc/long" "4.2.1"
-
-"@webassemblyjs/utf8@1.7.11":
- version "1.7.11"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.7.11.tgz#06d7218ea9fdc94a6793aa92208160db3d26ee82"
- integrity sha512-C6GFkc7aErQIAH+BMrIdVSmW+6HSe20wg57HEC1uqJP8E/xpMjXqQUxkQw07MhNDSDcGpxI9G5JSNOQCqJk4sA==
-
-"@webassemblyjs/wasm-edit@1.7.11":
- version "1.7.11"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.11.tgz#8c74ca474d4f951d01dbae9bd70814ee22a82005"
- integrity sha512-FUd97guNGsCZQgeTPKdgxJhBXkUbMTY6hFPf2Y4OedXd48H97J+sOY2Ltaq6WGVpIH8o/TGOVNiVz/SbpEMJGg==
- dependencies:
- "@webassemblyjs/ast" "1.7.11"
- "@webassemblyjs/helper-buffer" "1.7.11"
- "@webassemblyjs/helper-wasm-bytecode" "1.7.11"
- "@webassemblyjs/helper-wasm-section" "1.7.11"
- "@webassemblyjs/wasm-gen" "1.7.11"
- "@webassemblyjs/wasm-opt" "1.7.11"
- "@webassemblyjs/wasm-parser" "1.7.11"
- "@webassemblyjs/wast-printer" "1.7.11"
-
-"@webassemblyjs/wasm-gen@1.7.11":
- version "1.7.11"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.11.tgz#9bbba942f22375686a6fb759afcd7ac9c45da1a8"
- integrity sha512-U/KDYp7fgAZX5KPfq4NOupK/BmhDc5Kjy2GIqstMhvvdJRcER/kUsMThpWeRP8BMn4LXaKhSTggIJPOeYHwISA==
- dependencies:
- "@webassemblyjs/ast" "1.7.11"
- "@webassemblyjs/helper-wasm-bytecode" "1.7.11"
- "@webassemblyjs/ieee754" "1.7.11"
- "@webassemblyjs/leb128" "1.7.11"
- "@webassemblyjs/utf8" "1.7.11"
-
-"@webassemblyjs/wasm-opt@1.7.11":
- version "1.7.11"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.11.tgz#b331e8e7cef8f8e2f007d42c3a36a0580a7d6ca7"
- integrity sha512-XynkOwQyiRidh0GLua7SkeHvAPXQV/RxsUeERILmAInZegApOUAIJfRuPYe2F7RcjOC9tW3Cb9juPvAC/sCqvg==
- dependencies:
- "@webassemblyjs/ast" "1.7.11"
- "@webassemblyjs/helper-buffer" "1.7.11"
- "@webassemblyjs/wasm-gen" "1.7.11"
- "@webassemblyjs/wasm-parser" "1.7.11"
-
-"@webassemblyjs/wasm-parser@1.7.11":
- version "1.7.11"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.11.tgz#6e3d20fa6a3519f6b084ef9391ad58211efb0a1a"
- integrity sha512-6lmXRTrrZjYD8Ng8xRyvyXQJYUQKYSXhJqXOBLw24rdiXsHAOlvw5PhesjdcaMadU/pyPQOJ5dHreMjBxwnQKg==
- dependencies:
- "@webassemblyjs/ast" "1.7.11"
- "@webassemblyjs/helper-api-error" "1.7.11"
- "@webassemblyjs/helper-wasm-bytecode" "1.7.11"
- "@webassemblyjs/ieee754" "1.7.11"
- "@webassemblyjs/leb128" "1.7.11"
- "@webassemblyjs/utf8" "1.7.11"
-
-"@webassemblyjs/wast-parser@1.7.11":
- version "1.7.11"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.7.11.tgz#25bd117562ca8c002720ff8116ef9072d9ca869c"
- integrity sha512-lEyVCg2np15tS+dm7+JJTNhNWq9yTZvi3qEhAIIOaofcYlUp0UR5/tVqOwa/gXYr3gjwSZqw+/lS9dscyLelbQ==
- dependencies:
- "@webassemblyjs/ast" "1.7.11"
- "@webassemblyjs/floating-point-hex-parser" "1.7.11"
- "@webassemblyjs/helper-api-error" "1.7.11"
- "@webassemblyjs/helper-code-frame" "1.7.11"
- "@webassemblyjs/helper-fsm" "1.7.11"
- "@xtuc/long" "4.2.1"
-
-"@webassemblyjs/wast-printer@1.7.11":
- version "1.7.11"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.7.11.tgz#c4245b6de242cb50a2cc950174fdbf65c78d7813"
- integrity sha512-m5vkAsuJ32QpkdkDOUPGSltrg8Cuk3KBx4YrmAGQwCZPRdUHXxG4phIOuuycLemHFr74sWL9Wthqss4fzdzSwg==
- dependencies:
- "@webassemblyjs/ast" "1.7.11"
- "@webassemblyjs/wast-parser" "1.7.11"
- "@xtuc/long" "4.2.1"
+"@webassemblyjs/leb128@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95"
+ integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==
+ dependencies:
+ "@xtuc/long" "4.2.2"
+
+"@webassemblyjs/utf8@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab"
+ integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==
+
+"@webassemblyjs/wasm-edit@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf"
+ integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==
+ dependencies:
+ "@webassemblyjs/ast" "1.9.0"
+ "@webassemblyjs/helper-buffer" "1.9.0"
+ "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
+ "@webassemblyjs/helper-wasm-section" "1.9.0"
+ "@webassemblyjs/wasm-gen" "1.9.0"
+ "@webassemblyjs/wasm-opt" "1.9.0"
+ "@webassemblyjs/wasm-parser" "1.9.0"
+ "@webassemblyjs/wast-printer" "1.9.0"
+
+"@webassemblyjs/wasm-gen@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c"
+ integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==
+ dependencies:
+ "@webassemblyjs/ast" "1.9.0"
+ "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
+ "@webassemblyjs/ieee754" "1.9.0"
+ "@webassemblyjs/leb128" "1.9.0"
+ "@webassemblyjs/utf8" "1.9.0"
+
+"@webassemblyjs/wasm-opt@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61"
+ integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==
+ dependencies:
+ "@webassemblyjs/ast" "1.9.0"
+ "@webassemblyjs/helper-buffer" "1.9.0"
+ "@webassemblyjs/wasm-gen" "1.9.0"
+ "@webassemblyjs/wasm-parser" "1.9.0"
+
+"@webassemblyjs/wasm-parser@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e"
+ integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==
+ dependencies:
+ "@webassemblyjs/ast" "1.9.0"
+ "@webassemblyjs/helper-api-error" "1.9.0"
+ "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
+ "@webassemblyjs/ieee754" "1.9.0"
+ "@webassemblyjs/leb128" "1.9.0"
+ "@webassemblyjs/utf8" "1.9.0"
+
+"@webassemblyjs/wast-parser@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914"
+ integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==
+ dependencies:
+ "@webassemblyjs/ast" "1.9.0"
+ "@webassemblyjs/floating-point-hex-parser" "1.9.0"
+ "@webassemblyjs/helper-api-error" "1.9.0"
+ "@webassemblyjs/helper-code-frame" "1.9.0"
+ "@webassemblyjs/helper-fsm" "1.9.0"
+ "@xtuc/long" "4.2.2"
+
+"@webassemblyjs/wast-printer@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899"
+ integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==
+ dependencies:
+ "@webassemblyjs/ast" "1.9.0"
+ "@webassemblyjs/wast-parser" "1.9.0"
+ "@xtuc/long" "4.2.2"
"@xtuc/ieee754@^1.2.0":
version "1.2.0"
resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790"
integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==
-"@xtuc/long@4.2.1":
- version "4.2.1"
- resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.1.tgz#5c85d662f76fa1d34575766c5dcd6615abcd30d8"
- integrity sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g==
+"@xtuc/long@4.2.2":
+ version "4.2.2"
+ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d"
+ integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==
abbrev@1:
version "1.1.1"
@@ -1250,12 +1307,13 @@ abbrev@1.0.x:
version "1.0.9"
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135"
-accepts@~1.3.4, accepts@~1.3.5:
- version "1.3.5"
- resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2"
+accepts@~1.3.4, accepts@~1.3.7:
+ version "1.3.7"
+ resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
+ integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==
dependencies:
- mime-types "~2.1.18"
- negotiator "0.6.1"
+ mime-types "~2.1.24"
+ negotiator "0.6.2"
acorn-dynamic-import@^2.0.0:
version "2.0.2"
@@ -1263,13 +1321,6 @@ acorn-dynamic-import@^2.0.0:
dependencies:
acorn "^4.0.3"
-acorn-dynamic-import@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz#901ceee4c7faaef7e07ad2a47e890675da50a278"
- integrity sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==
- dependencies:
- acorn "^5.0.0"
-
acorn-jsx@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b"
@@ -1281,6 +1332,11 @@ acorn-jsx@^5.0.0:
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.1.tgz#32a064fd925429216a09b141102bfdd185fae40e"
integrity sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==
+acorn-walk@^7.1.1:
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc"
+ integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==
+
acorn@^3.0.4:
version "3.3.0"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
@@ -1289,15 +1345,20 @@ acorn@^4.0.3:
version "4.0.13"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787"
-acorn@^5.0.0, acorn@^5.3.0, acorn@^5.5.0, acorn@^5.6.2:
+acorn@^5.0.0, acorn@^5.3.0, acorn@^5.5.0:
version "5.7.3"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279"
integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==
-acorn@^6.0.7:
- version "6.1.1"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.1.1.tgz#7d25ae05bb8ad1f9b699108e1094ecd7884adc1f"
- integrity sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==
+acorn@^6.0.7, acorn@^6.4.1:
+ version "6.4.1"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474"
+ integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==
+
+acorn@^7.1.1:
+ version "7.3.1"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.3.1.tgz#85010754db53c3fbaf3b9ea3e083aa5c5d147ffd"
+ integrity sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==
address@1.0.3, address@^1.0.1:
version "1.0.3"
@@ -1313,6 +1374,14 @@ agent-base@^4.1.0:
dependencies:
es6-promisify "^5.0.0"
+aggregate-error@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.1.tgz#db2fe7246e536f40d9b5442a39e117d7dd6a24e0"
+ integrity sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==
+ dependencies:
+ clean-stack "^2.0.0"
+ indent-string "^4.0.0"
+
airbnb-prop-types@^2.13.2:
version "2.14.0"
resolved "https://registry.yarnpkg.com/airbnb-prop-types/-/airbnb-prop-types-2.14.0.tgz#3d45cb1459f4ce78fdf1240563d1aa2315391168"
@@ -1338,9 +1407,10 @@ ajv-keywords@^2.1.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762"
-ajv-keywords@^3.1.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a"
+ajv-keywords@^3.1.0, ajv-keywords@^3.4.1:
+ version "3.5.2"
+ resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d"
+ integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
ajv@4.11.2:
version "4.11.2"
@@ -1358,12 +1428,12 @@ ajv@^5.0.0, ajv@^5.2.3, ajv@^5.3.0:
fast-json-stable-stringify "^2.0.0"
json-schema-traverse "^0.3.0"
-ajv@^6.1.0, ajv@^6.9.1:
- version "6.10.0"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.0.tgz#90d0d54439da587cd7e843bfb7045f50bd22bdf1"
- integrity sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==
+ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.9.1:
+ version "6.12.3"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.3.tgz#18c5af38a111ddeb4f2697bd78d68abc1cabd706"
+ integrity sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==
dependencies:
- fast-deep-equal "^2.0.1"
+ fast-deep-equal "^3.1.1"
fast-json-stable-stringify "^2.0.0"
json-schema-traverse "^0.4.1"
uri-js "^4.2.2"
@@ -1444,6 +1514,11 @@ ansi-regex@^4.1.0:
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997"
integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==
+ansi-regex@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75"
+ integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==
+
ansi-styles@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
@@ -1454,6 +1529,14 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1:
dependencies:
color-convert "^1.9.0"
+ansi-styles@^4.1.0:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359"
+ integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==
+ dependencies:
+ "@types/color-name" "^1.1.1"
+ color-convert "^2.0.1"
+
ansi-wrap@0.1.0, ansi-wrap@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf"
@@ -1480,6 +1563,14 @@ anymatch@^2.0.0:
micromatch "^3.1.4"
normalize-path "^2.1.1"
+anymatch@~3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142"
+ integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==
+ dependencies:
+ normalize-path "^3.0.0"
+ picomatch "^2.0.4"
+
append-buffer@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/append-buffer/-/append-buffer-1.0.2.tgz#d8220cf466081525efea50614f3de6514dfa58f1"
@@ -1642,6 +1733,11 @@ array-union@^1.0.1:
dependencies:
array-uniq "^1.0.1"
+array-union@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
+ integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
+
array-uniq@^1.0.1, array-uniq@^1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
@@ -2644,10 +2740,6 @@ base64-arraybuffer@0.1.5:
version "0.1.5"
resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8"
-base64-js@0.0.8:
- version "0.0.8"
- resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-0.0.8.tgz#1101e9544f4a76b1bc3b26d452ca96d7a35e7978"
-
base64-js@^1.0.2:
version "1.2.1"
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.1.tgz#a91947da1f4a516ea38e5b4ec0ec3773675e0886"
@@ -2696,14 +2788,34 @@ bfj-node4@^5.2.0:
check-types "^7.3.0"
tryer "^1.0.0"
+bfj@^6.1.1:
+ version "6.1.2"
+ resolved "https://registry.yarnpkg.com/bfj/-/bfj-6.1.2.tgz#325c861a822bcb358a41c78a33b8e6e2086dde7f"
+ integrity sha512-BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw==
+ dependencies:
+ bluebird "^3.5.5"
+ check-types "^8.0.3"
+ hoopy "^0.1.4"
+ tryer "^1.0.1"
+
big.js@^3.1.3:
version "3.2.0"
resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e"
+big.js@^5.2.2:
+ version "5.2.2"
+ resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
+ integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==
+
binary-extensions@^1.0.0:
version "1.11.0"
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205"
+binary-extensions@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9"
+ integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==
+
bl@^1.0.0:
version "1.2.2"
resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c"
@@ -2719,29 +2831,30 @@ bluebird@3.5.1:
version "3.5.1"
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9"
-bluebird@^3.3.0, bluebird@^3.3.3, bluebird@^3.4.7, bluebird@^3.5.1, bluebird@^3.5.3:
- version "3.5.3"
- resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.3.tgz#7d01c6f9616c9a51ab0f8c549a79dfe6ec33efa7"
- integrity sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==
+bluebird@^3.3.0, bluebird@^3.3.3, bluebird@^3.4.7, bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.5:
+ version "3.7.2"
+ resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
+ integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0:
version "4.11.8"
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f"
-body-parser@1.18.2, body-parser@^1.16.1:
- version "1.18.2"
- resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454"
+body-parser@1.19.0, body-parser@^1.16.1:
+ version "1.19.0"
+ resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a"
+ integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==
dependencies:
- bytes "3.0.0"
+ bytes "3.1.0"
content-type "~1.0.4"
debug "2.6.9"
- depd "~1.1.1"
- http-errors "~1.6.2"
- iconv-lite "0.4.19"
+ depd "~1.1.2"
+ http-errors "1.7.2"
+ iconv-lite "0.4.24"
on-finished "~2.3.0"
- qs "6.5.1"
- raw-body "2.3.2"
- type-is "~1.6.15"
+ qs "6.7.0"
+ raw-body "2.4.0"
+ type-is "~1.6.17"
bonjour@^3.5.0:
version "3.5.0"
@@ -2808,6 +2921,13 @@ braces@^2.3.1, braces@^2.3.2:
split-string "^3.0.2"
to-regex "^3.0.1"
+braces@^3.0.1, braces@~3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
+ integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
+ dependencies:
+ fill-range "^7.0.1"
+
brorand@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
@@ -2890,13 +3010,14 @@ browserslist@^3.2.6:
electron-to-chromium "^1.3.47"
browserslist@^4.6.0, browserslist@^4.6.2:
- version "4.6.3"
- resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.6.3.tgz#0530cbc6ab0c1f3fc8c819c72377ba55cf647f05"
- integrity sha512-CNBqTCq22RKM8wKJNowcqihHJ4SkI8CGeK7KOR9tPboXUuS5Zk5lQgzzTbs4oxD8x+6HUshZUa2OyNI9lR93bQ==
+ version "4.13.0"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.13.0.tgz#42556cba011e1b0a2775b611cba6a8eca18e940d"
+ integrity sha512-MINatJ5ZNrLnQ6blGvePd/QOz9Xtu+Ne+x29iQSCHfkU5BugKVJwZKn/iiL8UbpIpa3JhviKjz+XxMo0m2caFQ==
dependencies:
- caniuse-lite "^1.0.30000975"
- electron-to-chromium "^1.3.164"
- node-releases "^1.1.23"
+ caniuse-lite "^1.0.30001093"
+ electron-to-chromium "^1.3.488"
+ escalade "^3.0.1"
+ node-releases "^1.1.58"
buffer-alloc-unsafe@^1.1.0:
version "1.1.0"
@@ -2933,14 +3054,6 @@ buffer-xor@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
-buffer@^3.0.1:
- version "3.6.0"
- resolved "https://registry.yarnpkg.com/buffer/-/buffer-3.6.0.tgz#a72c936f77b96bf52f5f7e7b467180628551defb"
- dependencies:
- base64-js "0.0.8"
- ieee754 "^1.1.4"
- isarray "^1.0.0"
-
buffer@^4.3.0:
version "4.9.1"
resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298"
@@ -2949,7 +3062,15 @@ buffer@^4.3.0:
ieee754 "^1.1.4"
isarray "^1.0.0"
-builtin-modules@^1.0.0, builtin-modules@^1.1.1:
+buffer@^5.2.1:
+ version "5.6.0"
+ resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786"
+ integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==
+ dependencies:
+ base64-js "^1.0.2"
+ ieee754 "^1.1.4"
+
+builtin-modules@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
@@ -2961,6 +3082,11 @@ bytes@3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
+bytes@3.1.0, bytes@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
+ integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
+
cacache@^11.0.2:
version "11.3.2"
resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.2.tgz#2d81e308e3d258ca38125b676b98b2ac9ce69bfa"
@@ -2981,6 +3107,50 @@ cacache@^11.0.2:
unique-filename "^1.1.1"
y18n "^4.0.0"
+cacache@^12.0.2:
+ version "12.0.4"
+ resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c"
+ integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==
+ dependencies:
+ bluebird "^3.5.5"
+ chownr "^1.1.1"
+ figgy-pudding "^3.5.1"
+ glob "^7.1.4"
+ graceful-fs "^4.1.15"
+ infer-owner "^1.0.3"
+ lru-cache "^5.1.1"
+ mississippi "^3.0.0"
+ mkdirp "^0.5.1"
+ move-concurrently "^1.0.1"
+ promise-inflight "^1.0.1"
+ rimraf "^2.6.3"
+ ssri "^6.0.1"
+ unique-filename "^1.1.1"
+ y18n "^4.0.0"
+
+cacache@^15.0.5:
+ version "15.0.5"
+ resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.5.tgz#69162833da29170d6732334643c60e005f5f17d0"
+ integrity sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==
+ dependencies:
+ "@npmcli/move-file" "^1.0.1"
+ chownr "^2.0.0"
+ fs-minipass "^2.0.0"
+ glob "^7.1.4"
+ infer-owner "^1.0.4"
+ lru-cache "^6.0.0"
+ minipass "^3.1.1"
+ minipass-collect "^1.0.2"
+ minipass-flush "^1.0.5"
+ minipass-pipeline "^1.2.2"
+ mkdirp "^1.0.3"
+ p-map "^4.0.0"
+ promise-inflight "^1.0.1"
+ rimraf "^3.0.2"
+ ssri "^8.0.0"
+ tar "^6.0.2"
+ unique-filename "^1.1.1"
+
cache-base@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
@@ -3047,7 +3217,7 @@ camelcase-keys@^2.0.0:
camelcase "^2.0.0"
map-obj "^1.0.0"
-camelcase@5.0.0, camelcase@^5.0.0:
+camelcase@5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.0.0.tgz#03295527d58bd3cd4aa75363f35b2e8d97be2f42"
@@ -3067,6 +3237,11 @@ camelcase@^4.0.0, camelcase@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
+camelcase@^5.0.0:
+ version "5.3.1"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
+ integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
+
caniuse-api@^1.5.2:
version "1.6.1"
resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c"
@@ -3080,10 +3255,10 @@ caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639:
version "1.0.30000856"
resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000856.tgz#fbebb99abe15a5654fc7747ebb5315bdfde3358f"
-caniuse-lite@^1.0.30000792, caniuse-lite@^1.0.30000805, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30000975:
- version "1.0.30000976"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000976.tgz#d30fe12662cb2a21e130d307db9907513ca830a2"
- integrity sha512-tleNB1IwPRqZiod6nUNum63xQCMN96BUO2JTeiwuRM7p9d616EHsMBjBWJMudX39qCaPuWY8KEWzMZq7A9XQMQ==
+caniuse-lite@^1.0.30000792, caniuse-lite@^1.0.30000805, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001093:
+ version "1.0.30001107"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001107.tgz#809360df7a5b3458f627aa46b0f6ed6d5239da9a"
+ integrity sha512-86rCH+G8onCmdN4VZzJet5uPELII59cUzDphko3thQFgAQG1RNa+sVLDoALIhRYmflo5iSIzWY3vu1XTWtNMQQ==
capture-stack-trace@^1.0.0:
version "1.0.0"
@@ -3175,6 +3350,14 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.4
escape-string-regexp "^1.0.5"
supports-color "^5.3.0"
+chalk@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4"
+ integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==
+ dependencies:
+ ansi-styles "^4.1.0"
+ supports-color "^7.1.0"
+
change-case@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/change-case/-/change-case-3.0.2.tgz#fd48746cce02f03f0a672577d1d3a8dc2eceb037"
@@ -3228,6 +3411,11 @@ check-types@^7.3.0:
version "7.4.0"
resolved "https://registry.yarnpkg.com/check-types/-/check-types-7.4.0.tgz#0378ec1b9616ec71f774931a3c6516fad8c152f4"
+check-types@^8.0.3:
+ version "8.0.3"
+ resolved "https://registry.yarnpkg.com/check-types/-/check-types-8.0.3.tgz#3356cca19c889544f2d7a95ed49ce508a0ecf552"
+ integrity sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ==
+
cheerio@^1.0.0-rc.2:
version "1.0.0-rc.2"
resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.2.tgz#4b9f53a81b27e4d5dac31c0ffd0cfa03cc6830db"
@@ -3254,10 +3442,10 @@ chokidar@^1.6.1:
optionalDependencies:
fsevents "^1.0.0"
-chokidar@^2.0.0, chokidar@^2.0.2, chokidar@^2.0.3, chokidar@^2.0.4:
- version "2.1.6"
- resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.6.tgz#b6cad653a929e244ce8a834244164d241fa954c5"
- integrity sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g==
+chokidar@^2.0.0, chokidar@^2.0.3, chokidar@^2.0.4, chokidar@^2.1.8:
+ version "2.1.8"
+ resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917"
+ integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==
dependencies:
anymatch "^2.0.0"
async-each "^1.0.1"
@@ -3273,15 +3461,35 @@ chokidar@^2.0.0, chokidar@^2.0.2, chokidar@^2.0.3, chokidar@^2.0.4:
optionalDependencies:
fsevents "^1.2.7"
+chokidar@^3.4.1:
+ version "3.4.1"
+ resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.1.tgz#e905bdecf10eaa0a0b1db0c664481cc4cbc22ba1"
+ integrity sha512-TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g==
+ dependencies:
+ anymatch "~3.1.1"
+ braces "~3.0.2"
+ glob-parent "~5.1.0"
+ is-binary-path "~2.1.0"
+ is-glob "~4.0.1"
+ normalize-path "~3.0.0"
+ readdirp "~3.4.0"
+ optionalDependencies:
+ fsevents "~2.1.2"
+
chownr@^1.0.1, chownr@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494"
integrity sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==
-chrome-trace-event@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz#45a91bd2c20c9411f0963b5aaeb9a1b95e09cc48"
- integrity sha512-xDbVgyfDTT2piup/h8dK/y4QZfJRSa73bw1WZ8b4XM1o7fsFubUVGYcE+1ANtOzJJELGpYoG2961z0Z6OAld9A==
+chownr@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece"
+ integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==
+
+chrome-trace-event@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4"
+ integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==
dependencies:
tslib "^1.9.0"
@@ -3294,6 +3502,11 @@ ci-info@^2.0.0:
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"
integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==
+ci-job-number@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/ci-job-number/-/ci-job-number-1.2.2.tgz#f4e5918fcaeeda95b604f214be7d7d4a961fe0c0"
+ integrity sha512-CLOGsVDrVamzv8sXJGaILUVI6dsuAkouJP/n6t+OxLPeeA4DDby7zn9SB6EUpa1H7oIKoE+rMmkW80zYsFfUjA==
+
cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
version "1.0.4"
resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de"
@@ -3334,6 +3547,11 @@ clean-css@4.1.x:
dependencies:
source-map "0.5.x"
+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"
@@ -3344,6 +3562,18 @@ cli-cursor@^2.0.0, cli-cursor@^2.1.0:
dependencies:
restore-cursor "^2.0.0"
+cli-cursor@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307"
+ integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==
+ dependencies:
+ restore-cursor "^3.1.0"
+
+cli-spinners@^2.2.0:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.4.0.tgz#c6256db216b878cfba4720e719cec7cf72685d7f"
+ integrity sha512-sJAofoarcm76ZGpuooaO0eDy8saEy+YoZBLjC4h8srt4jeBnkYeOgqxgsJQTpyt2LjI5PTfLJHSL+41Yu4fEJA==
+
cli-truncate@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574"
@@ -3469,19 +3699,28 @@ collection-visit@^1.0.0:
object-visit "^1.0.0"
color-convert@^1.3.0, color-convert@^1.9.0:
- version "1.9.2"
- resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.2.tgz#49881b8fba67df12a96bdf3f56c0aab9e7913147"
+ version "1.9.3"
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
+ integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
dependencies:
- color-name "1.1.1"
+ color-name "1.1.3"
-color-name@1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.1.tgz#4b1415304cf50028ea81643643bd82ea05803689"
+color-convert@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
+ integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
+ dependencies:
+ color-name "~1.1.4"
-color-name@^1.0.0:
+color-name@1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
+color-name@^1.0.0, color-name@~1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
+ integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+
color-string@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/color-string/-/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991"
@@ -3500,6 +3739,11 @@ color@^0.11.0:
color-convert "^1.3.0"
color-string "^0.3.0"
+colorette@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b"
+ integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==
+
colormin@^1.0.5:
version "1.1.2"
resolved "https://registry.yarnpkg.com/colormin/-/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133"
@@ -3534,10 +3778,10 @@ commander@2.11.x, commander@~2.11.0:
version "2.11.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563"
-commander@^2.11.0, commander@^2.12.1, commander@^2.13.0, commander@^2.14.1, commander@^2.18.0, commander@^2.19.0, commander@^2.8.1, commander@^2.9.0:
- version "2.19.0"
- resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a"
- integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==
+commander@^2.11.0, commander@^2.12.1, commander@^2.13.0, commander@^2.14.1, commander@^2.18.0, commander@^2.19.0, commander@^2.20.0, commander@^2.8.1, commander@^2.9.0:
+ version "2.20.3"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
+ integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
commander@~2.8.1:
version "2.8.1"
@@ -3648,9 +3892,12 @@ contains-path@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a"
-content-disposition@0.5.2:
- version "0.5.2"
- resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4"
+content-disposition@0.5.3:
+ version "0.5.3"
+ resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd"
+ integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==
+ dependencies:
+ safe-buffer "5.1.2"
content-type@1.0.4, content-type@~1.0.4:
version "1.0.4"
@@ -3668,6 +3915,11 @@ cookie@0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb"
+cookie@0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba"
+ integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==
+
copy-concurrently@^1.0.0:
version "1.0.5"
resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0"
@@ -3749,16 +4001,26 @@ cosmiconfig@^2.1.0, cosmiconfig@^2.1.1:
require-from-string "^1.1.0"
cosmiconfig@^5.0.2, cosmiconfig@^5.0.7:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.1.0.tgz#6c5c35e97f37f985061cdf653f114784231185cf"
- integrity sha512-kCNPvthka8gvLtzAxQXvWo4FxqRB+ftRZyPZNuab5ngvM9Y7yw7hbEysglptLgpkGX9nAOKTBVkHUAe8xtYR6Q==
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a"
+ integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==
dependencies:
import-fresh "^2.0.0"
is-directory "^0.3.1"
- js-yaml "^3.9.0"
- lodash.get "^4.4.2"
+ js-yaml "^3.13.1"
parse-json "^4.0.0"
+cosmiconfig@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982"
+ integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==
+ dependencies:
+ "@types/parse-json" "^4.0.0"
+ import-fresh "^3.1.0"
+ parse-json "^5.0.0"
+ path-type "^4.0.0"
+ yaml "^1.7.2"
+
create-ecdh@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d"
@@ -4132,6 +4394,13 @@ default-resolution@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/default-resolution/-/default-resolution-2.0.0.tgz#bcb82baa72ad79b426a76732f1a81ad6df26d684"
+defaults@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d"
+ integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=
+ dependencies:
+ clone "^1.0.2"
+
define-properties@^1.1.2, define-properties@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
@@ -4202,7 +4471,7 @@ depd@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359"
-depd@~1.1.1, depd@~1.1.2:
+depd@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
@@ -4285,6 +4554,13 @@ diffie-hellman@^5.0.0:
miller-rabin "^4.0.0"
randombytes "^2.0.0"
+dir-glob@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
+ integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
+ dependencies:
+ path-type "^4.0.0"
+
dirty-chai@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/dirty-chai/-/dirty-chai-2.0.1.tgz#6b2162ef17f7943589da840abc96e75bda01aff3"
@@ -4413,8 +4689,9 @@ domutils@1.5.1:
domelementtype "1"
domutils@^1.5.1:
- version "1.6.2"
- resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.6.2.tgz#1958cc0b4c9426e9ed367fb1c8e854891b0fa3ff"
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a"
+ integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==
dependencies:
dom-serializer "0"
domelementtype "1"
@@ -4490,14 +4767,15 @@ ee-first@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
-ejs@^2.5.7:
- version "2.6.1"
- resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.6.1.tgz#498ec0d495655abc6f23cd61868d926464071aa0"
+ejs@^2.5.7, ejs@^2.6.1:
+ version "2.7.4"
+ resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba"
+ integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==
-electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.164, electron-to-chromium@^1.3.30, electron-to-chromium@^1.3.47:
- version "1.3.169"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.169.tgz#f9722d3f6a18a19c1fc1216bf9e1654daafab539"
- integrity sha512-CxKt4ONON7m0ekVaFzvTZakHgGQsLMRH0J8W6h4lhyBNgskj3CIJz4bj+bh5+G26ztAe6dZjmYUeEW4u/VSnLQ==
+electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.30, electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.488:
+ version "1.3.509"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.509.tgz#830fcb89cd66dc2984d18d794973b99e3f00584c"
+ integrity sha512-cN4lkjNRuTG8rtAqTOVgwpecEC2kbKA04PG6YijcKGHK/kD0xLjiqExcAOmLUwtXZRF8cBeam2I0VZcih919Ug==
elegant-spinner@^1.0.1:
version "1.0.1"
@@ -4533,6 +4811,11 @@ emojis-list@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
+emojis-list@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78"
+ integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==
+
encodeurl@~1.0.1, encodeurl@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
@@ -4544,8 +4827,9 @@ encoding@^0.1.11:
iconv-lite "~0.4.13"
end-of-stream@^1.0.0, end-of-stream@^1.1.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.0.tgz#7a90d833efda6cfa6eac0f4949dbb0fad3a63206"
+ version "1.4.4"
+ resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
+ integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
dependencies:
once "^1.4.0"
@@ -4595,13 +4879,13 @@ enhanced-resolve@^3.4.0:
object-assign "^4.0.1"
tapable "^0.2.7"
-enhanced-resolve@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f"
- integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==
+enhanced-resolve@^4.1.0, enhanced-resolve@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz#3b806f3bfafc1ec7de69551ef93cca46c1704126"
+ integrity sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==
dependencies:
graceful-fs "^4.1.2"
- memory-fs "^0.4.0"
+ memory-fs "^0.5.0"
tapable "^1.0.0"
ent@~2.2.0:
@@ -4678,22 +4962,27 @@ error-ex@^1.2.0, error-ex@^1.3.1:
dependencies:
is-arrayish "^0.2.1"
-es-abstract@^1.10.0, es-abstract@^1.11.0, es-abstract@^1.12.0, es-abstract@^1.13.0, es-abstract@^1.5.0, es-abstract@^1.5.1, es-abstract@^1.7.0:
- version "1.13.0"
- resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9"
- integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==
+es-abstract@^1.10.0, es-abstract@^1.11.0, es-abstract@^1.12.0, es-abstract@^1.13.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.5, es-abstract@^1.5.0, es-abstract@^1.7.0:
+ version "1.17.6"
+ resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.6.tgz#9142071707857b2cacc7b89ecb670316c3e2d52a"
+ integrity sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==
dependencies:
- es-to-primitive "^1.2.0"
+ es-to-primitive "^1.2.1"
function-bind "^1.1.1"
has "^1.0.3"
- is-callable "^1.1.4"
- is-regex "^1.0.4"
- object-keys "^1.0.12"
+ has-symbols "^1.0.1"
+ is-callable "^1.2.0"
+ is-regex "^1.1.0"
+ object-inspect "^1.7.0"
+ object-keys "^1.1.1"
+ object.assign "^4.1.0"
+ string.prototype.trimend "^1.0.1"
+ string.prototype.trimstart "^1.0.1"
-es-to-primitive@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377"
- integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==
+es-to-primitive@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a"
+ integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==
dependencies:
is-callable "^1.1.4"
is-date-object "^1.0.1"
@@ -4761,6 +5050,11 @@ es6-weak-map@^2.0.1:
es6-iterator "^2.0.1"
es6-symbol "^3.1.1"
+escalade@^3.0.1:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.0.2.tgz#6a580d70edb87880f22b4c91d0d56078df6962c4"
+ integrity sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ==
+
escape-html@~1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
@@ -4919,7 +5213,7 @@ eslint-scope@3.7.1, eslint-scope@^3.7.1, eslint-scope@~3.7.1:
esrecurse "^4.1.0"
estraverse "^4.1.1"
-eslint-scope@^4.0.0, eslint-scope@^4.0.3:
+eslint-scope@^4.0.3:
version "4.0.3"
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848"
integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==
@@ -5090,9 +5384,10 @@ eventemitter3@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.0.tgz#090b4d6cdbd645ed10bf750d4b5407942d7ba163"
-events@^1.0.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924"
+events@^3.0.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379"
+ integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==
eventsource@0.1.6:
version "0.1.6"
@@ -5184,38 +5479,39 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2:
dependencies:
homedir-polyfill "^1.0.1"
-express@^4.16.2:
- version "4.16.3"
- resolved "https://registry.yarnpkg.com/express/-/express-4.16.3.tgz#6af8a502350db3246ecc4becf6b5a34d22f7ed53"
+express@^4.16.2, express@^4.16.3:
+ version "4.17.1"
+ resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134"
+ integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==
dependencies:
- accepts "~1.3.5"
+ accepts "~1.3.7"
array-flatten "1.1.1"
- body-parser "1.18.2"
- content-disposition "0.5.2"
+ body-parser "1.19.0"
+ content-disposition "0.5.3"
content-type "~1.0.4"
- cookie "0.3.1"
+ cookie "0.4.0"
cookie-signature "1.0.6"
debug "2.6.9"
depd "~1.1.2"
encodeurl "~1.0.2"
escape-html "~1.0.3"
etag "~1.8.1"
- finalhandler "1.1.1"
+ finalhandler "~1.1.2"
fresh "0.5.2"
merge-descriptors "1.0.1"
methods "~1.1.2"
on-finished "~2.3.0"
- parseurl "~1.3.2"
+ parseurl "~1.3.3"
path-to-regexp "0.1.7"
- proxy-addr "~2.0.3"
- qs "6.5.1"
- range-parser "~1.2.0"
- safe-buffer "5.1.1"
- send "0.16.2"
- serve-static "1.13.2"
- setprototypeof "1.1.0"
- statuses "~1.4.0"
- type-is "~1.6.16"
+ proxy-addr "~2.0.5"
+ qs "6.7.0"
+ range-parser "~1.2.1"
+ safe-buffer "5.1.2"
+ send "0.17.1"
+ serve-static "1.14.1"
+ setprototypeof "1.1.1"
+ statuses "~1.5.0"
+ type-is "~1.6.18"
utils-merge "1.0.1"
vary "~1.1.2"
@@ -5326,9 +5622,22 @@ fast-deep-equal@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff"
-fast-deep-equal@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49"
+fast-deep-equal@^3.1.1:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
+ integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
+
+fast-glob@^3.1.1:
+ version "3.2.4"
+ resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.4.tgz#d20aefbf99579383e7f3cc66529158c9b98554d3"
+ integrity sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==
+ dependencies:
+ "@nodelib/fs.stat" "^2.0.2"
+ "@nodelib/fs.walk" "^1.2.3"
+ glob-parent "^5.1.0"
+ merge2 "^1.3.0"
+ micromatch "^4.0.2"
+ picomatch "^2.2.1"
fast-json-stable-stringify@^2.0.0:
version "2.0.0"
@@ -5342,6 +5651,13 @@ fastparse@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8"
+fastq@^1.6.0:
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.8.0.tgz#550e1f9f59bbc65fe185cb6a9b4d95357107f481"
+ integrity sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q==
+ dependencies:
+ reusify "^1.0.4"
+
fault@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/fault/-/fault-1.0.2.tgz#c3d0fec202f172a3a4d414042ad2bb5e2a3ffbaa"
@@ -5478,7 +5794,7 @@ filesize@3.5.11:
version "3.5.11"
resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.5.11.tgz#1919326749433bb3cf77368bd158caabcc19e9ee"
-filesize@3.6.1, filesize@^3.5.11:
+filesize@3.6.1, filesize@^3.5.11, filesize@^3.6.1:
version "3.6.1"
resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317"
@@ -5501,6 +5817,13 @@ fill-range@^4.0.0:
repeat-string "^1.6.1"
to-regex-range "^2.1.0"
+fill-range@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
+ integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
+ dependencies:
+ to-regex-range "^5.0.1"
+
finalhandler@1.0.6:
version "1.0.6"
resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.0.6.tgz#007aea33d1a4d3e42017f624848ad58d212f814f"
@@ -5513,16 +5836,17 @@ finalhandler@1.0.6:
statuses "~1.3.1"
unpipe "~1.0.0"
-finalhandler@1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105"
+finalhandler@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d"
+ integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==
dependencies:
debug "2.6.9"
encodeurl "~1.0.2"
escape-html "~1.0.3"
on-finished "~2.3.0"
- parseurl "~1.3.2"
- statuses "~1.4.0"
+ parseurl "~1.3.3"
+ statuses "~1.5.0"
unpipe "~1.0.0"
find-cache-dir@^1.0.0:
@@ -5533,15 +5857,24 @@ find-cache-dir@^1.0.0:
make-dir "^1.0.0"
pkg-dir "^2.0.0"
-find-cache-dir@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.0.0.tgz#4c1faed59f45184530fb9d7fa123a4d04a98472d"
- integrity sha512-LDUY6V1Xs5eFskUVYtIwatojt6+9xC9Chnlk/jYOOvn3FAFfSaWddxahDGyNHh0b2dMXa6YW2m0tk8TdVaXHlA==
+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"
+ integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==
dependencies:
commondir "^1.0.1"
- make-dir "^1.0.0"
+ make-dir "^2.0.0"
pkg-dir "^3.0.0"
+find-cache-dir@^3.3.1:
+ 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-parent-dir@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.0.tgz#33c44b429ab2b2f0646299c5f9f718f376ff8d54"
@@ -5565,6 +5898,14 @@ find-up@^3.0.0:
dependencies:
locate-path "^3.0.0"
+find-up@^4.0.0, find-up@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
+ integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
+ dependencies:
+ locate-path "^5.0.0"
+ path-exists "^4.0.0"
+
findup-sync@2.0.0, findup-sync@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-2.0.0.tgz#9326b1488c22d1a6088650a86901b2d9a90a2cbc"
@@ -5762,6 +6103,13 @@ fs-minipass@^1.2.5:
dependencies:
minipass "^2.2.1"
+fs-minipass@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb"
+ integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==
+ dependencies:
+ minipass "^3.0.0"
+
fs-mkdirp-stream@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz#0b7815fc3201c6a69e14db98ce098c16935259eb"
@@ -5804,6 +6152,11 @@ fsevents@^1.0.0, fsevents@^1.2.7:
nan "^2.12.1"
node-pre-gyp "^0.12.0"
+fsevents@~2.1.2:
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e"
+ integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==
+
function-bind@^1.0.2, function-bind@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
@@ -5948,6 +6301,13 @@ glob-parent@^3.1.0:
is-glob "^3.1.0"
path-dirname "^1.0.0"
+glob-parent@^5.1.0, glob-parent@~5.1.0:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229"
+ integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==
+ dependencies:
+ is-glob "^4.0.1"
+
glob-stream@^6.1.0:
version "6.1.0"
resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-6.1.0.tgz#7045c99413b3eb94888d83ab46d0b404cc7bdde4"
@@ -5972,7 +6332,7 @@ glob-watcher@^5.0.0:
just-debounce "^1.0.0"
object.defaults "^1.1.0"
-glob@7.1.3, glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3:
+glob@7.1.3:
version "7.1.3"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1"
integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==
@@ -5994,6 +6354,18 @@ glob@^5.0.15:
once "^1.3.0"
path-is-absolute "^1.0.0"
+glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4:
+ version "7.1.6"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
+ integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.0.4"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
global-dirs@^0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445"
@@ -6055,6 +6427,18 @@ globals@^9.18.0:
version "9.18.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
+globby@^11.0.1:
+ version "11.0.1"
+ resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.1.tgz#9a2bf107a068f3ffeabc49ad702c79ede8cfd357"
+ integrity sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==
+ dependencies:
+ array-union "^2.1.0"
+ dir-glob "^3.0.1"
+ fast-glob "^3.1.1"
+ ignore "^5.1.4"
+ merge2 "^1.3.0"
+ slash "^3.0.0"
+
globby@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d"
@@ -6208,6 +6592,14 @@ gzip-size@^4.1.0:
duplexer "^0.1.1"
pify "^3.0.0"
+gzip-size@^5.0.0:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274"
+ integrity sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==
+ dependencies:
+ duplexer "^0.1.1"
+ pify "^4.0.1"
+
halcyon@^0.19.1:
version "0.19.1"
resolved "https://registry.yarnpkg.com/halcyon/-/halcyon-0.19.1.tgz#f3a68dec3c9dc8a27c3ade696e897e1b149f08a7"
@@ -6254,6 +6646,11 @@ has-flag@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
+has-flag@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
+ integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
+
has-gulplog@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce"
@@ -6264,9 +6661,10 @@ has-symbol-support-x@^1.4.1:
version "1.4.2"
resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455"
-has-symbols@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44"
+has-symbols@^1.0.0, has-symbols@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8"
+ integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==
has-to-string-tag-x@^1.2.0:
version "1.4.1"
@@ -6454,6 +6852,11 @@ homedir-polyfill@^1.0.0, homedir-polyfill@^1.0.1:
dependencies:
parse-passwd "^1.0.0"
+hoopy@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d"
+ integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==
+
hosted-git-info@^2.1.4:
version "2.5.0"
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c"
@@ -6550,6 +6953,28 @@ http-errors@1.6.2, http-errors@~1.6.2:
setprototypeof "1.0.3"
statuses ">= 1.3.1 < 2"
+http-errors@1.7.2:
+ version "1.7.2"
+ resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f"
+ integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==
+ dependencies:
+ depd "~1.1.2"
+ inherits "2.0.3"
+ setprototypeof "1.1.1"
+ statuses ">= 1.5.0 < 2"
+ toidentifier "1.0.0"
+
+http-errors@~1.7.2:
+ version "1.7.3"
+ resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
+ integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==
+ dependencies:
+ depd "~1.1.2"
+ inherits "2.0.4"
+ setprototypeof "1.1.1"
+ statuses ">= 1.5.0 < 2"
+ toidentifier "1.0.0"
+
http-parser-js@>=0.4.0:
version "0.4.13"
resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.13.tgz#3bd6d6fde6e3172c9334c3b33b6c193d80fe1137"
@@ -6610,7 +7035,7 @@ iconv-lite@0.4.19:
version "0.4.19"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
-iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13:
+iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13:
version "0.4.24"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
@@ -6651,6 +7076,11 @@ ignore@^4.0.6:
resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
+ignore@^5.1.4:
+ version "5.1.8"
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57"
+ integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==
+
immutability-helper@^2.1.2:
version "2.7.1"
resolved "https://registry.yarnpkg.com/immutability-helper/-/immutability-helper-2.7.1.tgz#5636dbb593e3deb5e572766d42249ea06bae7640"
@@ -6665,10 +7095,10 @@ import-fresh@^2.0.0:
caller-path "^2.0.0"
resolve-from "^3.0.0"
-import-fresh@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.0.0.tgz#a3d897f420cab0e671236897f75bc14b4885c390"
- integrity sha512-pOnA9tfM3Uwics+SaBLCNyZZZbK+4PTu0OPZtLlMIrv17EdBoC15S9Kn8ckJ9TZTyKb3ywNE5y1yeDxxGA7nTQ==
+import-fresh@^3.0.0, import-fresh@^3.1.0:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66"
+ integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==
dependencies:
parent-module "^1.0.0"
resolve-from "^4.0.0"
@@ -6714,6 +7144,11 @@ indent-string@^3.0.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289"
+indent-string@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251"
+ integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==
+
indexes-of@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607"
@@ -6722,6 +7157,11 @@ indexof@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d"
+infer-owner@^1.0.3, infer-owner@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467"
+ integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==
+
inflight@^1.0.4:
version "1.0.6"
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
@@ -6729,14 +7169,19 @@ inflight@^1.0.4:
once "^1.3.0"
wrappy "1"
-inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
+inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
+ integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
inherits@2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
+inherits@2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
+
ini@^1.3.4, ini@~1.3.0:
version "1.3.5"
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
@@ -6844,9 +7289,10 @@ ip@1.1.5, ip@^1.1.0, ip@^1.1.5:
version "1.1.5"
resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a"
-ipaddr.js@1.6.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.6.0.tgz#e3fa357b773da619f26e95f049d055c72796f86b"
+ipaddr.js@1.9.1:
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
+ integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
is-absolute-url@^2.0.0:
version "2.1.0"
@@ -6899,6 +7345,13 @@ is-binary-path@^1.0.0:
dependencies:
binary-extensions "^1.0.0"
+is-binary-path@~2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
+ integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
+ dependencies:
+ binary-extensions "^2.0.0"
+
is-boolean-object@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.0.0.tgz#98f8b28030684219a95f375cfbd88ce3405dff93"
@@ -6912,15 +7365,10 @@ is-buffer@^2.0.0, is-buffer@~2.0.3:
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.3.tgz#4ecf3fcf749cbd1e472689e109ac66261a25e725"
integrity sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==
-is-builtin-module@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe"
- dependencies:
- builtin-modules "^1.0.0"
-
-is-callable@^1.1.4:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75"
+is-callable@^1.1.4, is-callable@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.0.tgz#83336560b54a38e35e3a2df7afd0454d691468bb"
+ integrity sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==
is-ci@^1.0.10:
version "1.1.0"
@@ -7031,9 +7479,10 @@ is-glob@^3.1.0:
dependencies:
is-extglob "^2.1.0"
-is-glob@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0"
+is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
+ integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==
dependencies:
is-extglob "^2.1.1"
@@ -7048,6 +7497,11 @@ is-installed-globally@^0.1.0:
global-dirs "^0.1.0"
is-path-inside "^1.0.0"
+is-interactive@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e"
+ integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==
+
is-lower-case@^1.1.0:
version "1.1.3"
resolved "https://registry.yarnpkg.com/is-lower-case/-/is-lower-case-1.1.3.tgz#7e147be4768dc466db3bfb21cc60b31e6ad69393"
@@ -7086,6 +7540,11 @@ is-number@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff"
+is-number@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
+ integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
+
is-obj@^1.0.0, is-obj@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
@@ -7148,11 +7607,12 @@ is-redirect@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24"
-is-regex@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491"
+is-regex@^1.0.4, is-regex@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.0.tgz#ece38e389e490df0dc21caea2bd596f987f767ff"
+ integrity sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==
dependencies:
- has "^1.0.1"
+ has-symbols "^1.0.1"
is-regexp@^1.0.0:
version "1.0.0"
@@ -7344,6 +7804,14 @@ isurl@^1.0.0-alpha5:
has-to-string-tag-x "^1.2.0"
is-object "^1.0.1"
+jest-worker@^26.1.0:
+ version "26.1.0"
+ resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.1.0.tgz#65d5641af74e08ccd561c240e7db61284f82f33d"
+ integrity sha512-Z9P5pZ6UC+kakMbNJn+tA2RdVdNX5WH1x+5UCBZ9MxIK24pjYtFt96fK+UwBTrjLYm232g1xz0L3eTh51OW+yQ==
+ dependencies:
+ merge-stream "^2.0.0"
+ supports-color "^7.0.0"
+
jquery@x.*:
version "3.2.1"
resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.2.1.tgz#5c4d9de652af6cd0a770154a631bba12b015c787"
@@ -7371,10 +7839,10 @@ js-yaml@3.12.0:
argparse "^1.0.7"
esprima "^4.0.0"
-js-yaml@3.x, js-yaml@^3.12.0, js-yaml@^3.4.3, js-yaml@^3.7.0, js-yaml@^3.9.0, js-yaml@^3.9.1:
- version "3.12.2"
- resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.2.tgz#ef1d067c5a9d9cb65bd72f285b5d8105c77f14fc"
- integrity sha512-QHn/Lh/7HhZ/Twc7vJYQTkjuCa0kaCcDcjK5Zlk2rvnUpy7DxMJ23+Jc2dcyvltwQVg1nygAVlB2oRDFHoRS5Q==
+js-yaml@3.x, js-yaml@^3.12.0, js-yaml@^3.13.1, js-yaml@^3.4.3, js-yaml@^3.7.0, js-yaml@^3.9.1:
+ version "3.14.0"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482"
+ integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==
dependencies:
argparse "^1.0.7"
esprima "^4.0.0"
@@ -7432,13 +7900,20 @@ json5@^0.5.0, json5@^0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
-json5@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850"
- integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==
+json5@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe"
+ integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==
dependencies:
minimist "^1.2.0"
+json5@^2.1.0:
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43"
+ integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==
+ dependencies:
+ minimist "^1.2.5"
+
jsonfile@^2.1.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8"
@@ -7662,6 +8137,11 @@ lightercollective@^0.1.0:
resolved "https://registry.yarnpkg.com/lightercollective/-/lightercollective-0.1.0.tgz#70df102c530dcb8d0ccabfe6175a8d00d5f61300"
integrity sha512-J9tg5uraYoQKaWbmrzDDexbG6hHnMcWS1qLYgJSWE+mpA3U5OCSeMUhb+K55otgZJ34oFdR0ECvdIb3xuO5JOQ==
+lines-and-columns@^1.1.6:
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00"
+ integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=
+
lint-staged@^8.1.5:
version "8.1.5"
resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-8.1.5.tgz#372476fe1a58b8834eb562ed4c99126bd60bdd79"
@@ -7764,9 +8244,10 @@ load-json-file@^4.0.0:
pify "^3.0.0"
strip-bom "^3.0.0"
-loader-runner@^2.3.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2"
+loader-runner@^2.3.0, loader-runner@^2.4.0:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357"
+ integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==
loader-utils@^0.2.16:
version "0.2.17"
@@ -7777,13 +8258,14 @@ loader-utils@^0.2.16:
json5 "^0.5.0"
object-assign "^4.0.1"
-loader-utils@^1.0.2, loader-utils@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd"
+loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613"
+ integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==
dependencies:
- big.js "^3.1.3"
- emojis-list "^2.0.0"
- json5 "^0.5.0"
+ big.js "^5.2.2"
+ emojis-list "^3.0.0"
+ json5 "^1.0.1"
locate-path@^2.0.0:
version "2.0.0"
@@ -7799,6 +8281,13 @@ locate-path@^3.0.0:
p-locate "^3.0.0"
path-exists "^3.0.0"
+locate-path@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
+ integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
+ dependencies:
+ p-locate "^4.1.0"
+
lodash._basecopy@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36"
@@ -7936,6 +8425,13 @@ log-symbols@^1.0.2:
dependencies:
chalk "^1.0.0"
+log-symbols@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4"
+ integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==
+ dependencies:
+ chalk "^2.4.2"
+
log-update@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708"
@@ -8015,6 +8511,13 @@ lru-cache@^5.1.1:
dependencies:
yallist "^3.0.2"
+lru-cache@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
+ integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
+ dependencies:
+ yallist "^4.0.0"
+
lz-string@^1.4.4:
version "1.4.4"
resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26"
@@ -8026,6 +8529,21 @@ make-dir@^1.0.0:
dependencies:
pify "^3.0.0"
+make-dir@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
+ integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==
+ dependencies:
+ pify "^4.0.1"
+ semver "^5.6.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==
+ dependencies:
+ semver "^6.0.0"
+
make-iterator@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/make-iterator/-/make-iterator-1.0.0.tgz#57bef5dc85d23923ba23767324d8e8f8f3d9694b"
@@ -8150,6 +8668,14 @@ memory-fs@^0.4.0, memory-fs@^0.4.1, memory-fs@~0.4.1:
errno "^0.1.3"
readable-stream "^2.0.1"
+memory-fs@^0.5.0:
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c"
+ integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==
+ dependencies:
+ errno "^0.1.3"
+ readable-stream "^2.0.1"
+
meow@^3.3.0:
version "3.7.0"
resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb"
@@ -8169,6 +8695,16 @@ merge-descriptors@1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
+merge-stream@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
+ integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
+
+merge2@^1.3.0:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
+ integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
+
methods@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
@@ -8225,6 +8761,14 @@ micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8:
snapdragon "^0.8.1"
to-regex "^3.0.2"
+micromatch@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259"
+ integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==
+ dependencies:
+ braces "^3.0.1"
+ picomatch "^2.0.5"
+
miller-rabin@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d"
@@ -8232,25 +8776,33 @@ miller-rabin@^4.0.0:
bn.js "^4.0.0"
brorand "^1.0.1"
-"mime-db@>= 1.34.0 < 2":
- version "1.34.0"
- resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.34.0.tgz#452d0ecff5c30346a6dc1e64b1eaee0d3719ff9a"
+mime-db@1.44.0, "mime-db@>= 1.34.0 < 2":
+ version "1.44.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92"
+ integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==
mime-db@~1.33.0:
version "1.33.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db"
-mime-types@2.1.18, mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.18:
+mime-types@2.1.18:
version "2.1.18"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8"
dependencies:
mime-db "~1.33.0"
+mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.24:
+ version "2.1.27"
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f"
+ integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==
+ dependencies:
+ mime-db "1.44.0"
+
mime@1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6"
-mime@^1.4.1, mime@^1.5.0:
+mime@1.6.0, mime@^1.4.1, mime@^1.5.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
@@ -8262,6 +8814,11 @@ mimic-fn@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18"
+mimic-fn@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
+ integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
+
min-document@^2.19.0:
version "2.19.0"
resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685"
@@ -8292,14 +8849,40 @@ minimist@0.0.8:
version "0.0.8"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
-minimist@1.2.0, minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0, minimist@~1.2.0:
+minimist@1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
+minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5, minimist@~1.2.0:
+ version "1.2.5"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
+ integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
+
minimist@~0.0.1:
version "0.0.10"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
+minipass-collect@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617"
+ integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==
+ dependencies:
+ minipass "^3.0.0"
+
+minipass-flush@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373"
+ integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==
+ dependencies:
+ minipass "^3.0.0"
+
+minipass-pipeline@^1.2.2:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.3.tgz#55f7839307d74859d6e8ada9c3ebe72cec216a34"
+ integrity sha512-cFOknTvng5vqnwOpDsZTWhNll6Jf8o2x+/diplafmxpuIymAjzoOolZG0VvQf3V2HgqzJNhnuKHYp2BqDgz8IQ==
+ dependencies:
+ minipass "^3.0.0"
+
minipass@^2.2.1, minipass@^2.2.4:
version "2.2.4"
resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.2.4.tgz#03c824d84551ec38a8d1bb5bc350a5a30a354a40"
@@ -8307,12 +8890,27 @@ minipass@^2.2.1, minipass@^2.2.4:
safe-buffer "^5.1.1"
yallist "^3.0.0"
+minipass@^3.0.0, minipass@^3.1.1:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd"
+ integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==
+ dependencies:
+ yallist "^4.0.0"
+
minizlib@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.1.0.tgz#11e13658ce46bc3a70a267aac58359d1e0c29ceb"
dependencies:
minipass "^2.2.1"
+minizlib@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.0.tgz#fd52c645301ef09a63a2c209697c294c6ce02cf3"
+ integrity sha512-EzTZN/fjSvifSX0SlqUERCN39o6T40AMarPbv0MrarSFtIITCBh7bi+dU8nxGFHuqs9jdIAeoYoKuQAAASsPPA==
+ dependencies:
+ minipass "^3.0.0"
+ yallist "^4.0.0"
+
mississippi@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022"
@@ -8336,12 +8934,24 @@ mixin-deep@^1.2.0:
for-in "^1.0.2"
is-extendable "^1.0.1"
-mkdirp@0.5.1, mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1:
+mkdirp@0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
dependencies:
minimist "0.0.8"
+mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@~0.5.0, mkdirp@~0.5.1:
+ version "0.5.5"
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
+ integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
+ dependencies:
+ minimist "^1.2.5"
+
+mkdirp@^1.0.3, mkdirp@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
+ integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
+
mocha@^6.0.2:
version "6.0.2"
resolved "https://registry.yarnpkg.com/mocha/-/mocha-6.0.2.tgz#cdc1a6fdf66472c079b5605bac59d29807702d2c"
@@ -8421,6 +9031,11 @@ mute-stream@0.0.7:
version "0.0.7"
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
+mute-stream@0.0.8:
+ version "0.0.8"
+ resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d"
+ integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==
+
mz@^2.3.1:
version "2.7.0"
resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32"
@@ -8478,14 +9093,15 @@ needle@^2.2.1:
iconv-lite "^0.4.4"
sax "^1.2.4"
-negotiator@0.6.1:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9"
+negotiator@0.6.2:
+ version "0.6.2"
+ resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
+ integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
-neo-async@^2.5.0:
- version "2.6.0"
- resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.0.tgz#b9d15e4d71c6762908654b5183ed38b753340835"
- integrity sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==
+neo-async@^2.5.0, neo-async@^2.6.1:
+ version "2.6.2"
+ resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
+ integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
nice-try@^1.0.4:
version "1.0.5"
@@ -8537,9 +9153,10 @@ node-forge@0.7.5:
version "0.7.5"
resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.5.tgz#6c152c345ce11c52f465c2abd957e8639cd674df"
-node-libs-browser@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df"
+node-libs-browser@^2.0.0, node-libs-browser@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425"
+ integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==
dependencies:
assert "^1.1.1"
browserify-zlib "^0.2.0"
@@ -8548,10 +9165,10 @@ node-libs-browser@^2.0.0:
constants-browserify "^1.0.0"
crypto-browserify "^3.11.0"
domain-browser "^1.1.1"
- events "^1.0.0"
+ events "^3.0.0"
https-browserify "^1.0.0"
os-browserify "^0.3.0"
- path-browserify "0.0.0"
+ path-browserify "0.0.1"
process "^0.11.10"
punycode "^1.2.4"
querystring-es3 "^0.2.0"
@@ -8562,8 +9179,8 @@ node-libs-browser@^2.0.0:
timers-browserify "^2.0.4"
tty-browserify "0.0.0"
url "^0.11.0"
- util "^0.10.3"
- vm-browserify "0.0.4"
+ util "^0.11.0"
+ vm-browserify "^1.0.1"
node-modules-regexp@^1.0.0:
version "1.0.0"
@@ -8585,12 +9202,10 @@ node-pre-gyp@^0.12.0:
semver "^5.3.0"
tar "^4"
-node-releases@^1.1.23:
- version "1.1.23"
- resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.23.tgz#de7409f72de044a2fa59c097f436ba89c39997f0"
- integrity sha512-uq1iL79YjfYC0WXoHbC/z28q/9pOl8kSHaXdWmAAc8No+bDwqkZbzIJz55g/MUsPgSGm9LZ7QSUbzTcH5tz47w==
- dependencies:
- semver "^5.3.0"
+node-releases@^1.1.58:
+ version "1.1.60"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.60.tgz#6948bdfce8286f0b5d0e5a88e8384e954dfe7084"
+ integrity sha512-gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA==
node-version@1.1.3:
version "1.1.3"
@@ -8616,12 +9231,13 @@ nopt@^4.0.1:
abbrev "1"
osenv "^0.1.4"
-normalize-package-data@^2.3.2, normalize-package-data@^2.3.4:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f"
+normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.5.0:
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
+ integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==
dependencies:
hosted-git-info "^2.1.4"
- is-builtin-module "^1.0.0"
+ resolve "^1.10.0"
semver "2 || 3 || 4 || 5"
validate-npm-package-license "^3.0.1"
@@ -8631,7 +9247,7 @@ normalize-path@^2.0.0, normalize-path@^2.0.1, normalize-path@^2.1.1:
dependencies:
remove-trailing-separator "^1.0.1"
-normalize-path@^3.0.0:
+normalize-path@^3.0.0, normalize-path@~3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
@@ -8703,8 +9319,9 @@ npmlog@^4.0.2:
set-blocking "~2.0.0"
nth-check@~1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.1.tgz#9929acdf628fc2c41098deab82ac580cf149aae4"
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c"
+ integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==
dependencies:
boolbase "~1.0.0"
@@ -8740,18 +9357,19 @@ object-copy@^0.1.0:
define-property "^0.2.5"
kind-of "^3.0.3"
-object-inspect@^1.6.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b"
+object-inspect@^1.6.0, object-inspect@^1.7.0:
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0"
+ integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==
object-is@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6"
-object-keys@^1.0.11, object-keys@^1.0.12:
- version "1.0.12"
- resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2"
- integrity sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==
+object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
+ integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
object-visit@^1.0.0:
version "1.0.1"
@@ -8798,11 +9416,12 @@ object.fromentries@^2.0.0:
has "^1.0.1"
object.getownpropertydescriptors@^2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16"
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649"
+ integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==
dependencies:
- define-properties "^1.1.2"
- es-abstract "^1.5.1"
+ define-properties "^1.1.3"
+ es-abstract "^1.17.0-next.1"
object.map@^1.0.0:
version "1.0.1"
@@ -8867,9 +9486,17 @@ onetime@^2.0.0:
dependencies:
mimic-fn "^1.0.0"
-opener@^1.4.3:
- version "1.4.3"
- resolved "https://registry.yarnpkg.com/opener/-/opener-1.4.3.tgz#5c6da2c5d7e5831e8ffa3964950f8d6674ac90b8"
+onetime@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5"
+ integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==
+ dependencies:
+ mimic-fn "^2.1.0"
+
+opener@^1.4.3, opener@^1.5.1:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz#6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed"
+ integrity sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA==
openport@^0.0.4:
version "0.0.4"
@@ -8909,6 +9536,20 @@ optionator@^0.8.1, optionator@^0.8.2:
type-check "~0.3.2"
wordwrap "~1.0.0"
+ora@^4.0.4:
+ version "4.0.5"
+ resolved "https://registry.yarnpkg.com/ora/-/ora-4.0.5.tgz#7410b5cc2d99fa637fd5099bbb9f02bfbb5a361e"
+ integrity sha512-jCDgm9DqvRcNIAEv2wZPrh7E5PcQiDUnbnWbAfu4NGAE2ZNqPFbDixmWldy1YG2QfLeQhuiu6/h5VRrk6cG50w==
+ dependencies:
+ chalk "^3.0.0"
+ cli-cursor "^3.1.0"
+ cli-spinners "^2.2.0"
+ is-interactive "^1.0.0"
+ log-symbols "^3.0.0"
+ mute-stream "0.0.8"
+ strip-ansi "^6.0.0"
+ wcwidth "^1.0.1"
+
ordered-read-streams@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz#77c0cb37c41525d64166d990ffad7ec6a0e1363e"
@@ -8997,9 +9638,17 @@ p-limit@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.1.0.tgz#b07ff2d9a5d88bec806035895a2bab66a27988bc"
-p-limit@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.0.0.tgz#e624ed54ee8c460a778b3c9f3670496ff8a57aec"
+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"
+ integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
+ dependencies:
+ p-try "^2.0.0"
+
+p-limit@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.0.2.tgz#1664e010af3cadc681baafd3e2a437be7b0fb5fe"
+ integrity sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==
dependencies:
p-try "^2.0.0"
@@ -9015,6 +9664,13 @@ p-locate@^3.0.0:
dependencies:
p-limit "^2.0.0"
+p-locate@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
+ integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
+ dependencies:
+ p-limit "^2.2.0"
+
p-map@^1.1.1:
version "1.2.0"
resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b"
@@ -9024,6 +9680,13 @@ p-map@^2.0.0:
resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.0.0.tgz#be18c5a5adeb8e156460651421aceca56c213a50"
integrity sha512-GO107XdrSUmtHxVoi60qc9tUl/KkNKm+X2CF4P9amalpGxv5YqVPJNfSb0wcA+syCopkZvYYIzW8OVTQW59x/w==
+p-map@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b"
+ integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==
+ dependencies:
+ aggregate-error "^3.0.0"
+
p-try@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz#85080bb87c64688fa47996fe8f7dfbe8211760b1"
@@ -9114,6 +9777,16 @@ parse-json@^4.0.0:
error-ex "^1.3.1"
json-parse-better-errors "^1.0.1"
+parse-json@^5.0.0:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.0.1.tgz#7cfe35c1ccd641bce3981467e6c2ece61b3b3878"
+ integrity sha512-ztoZ4/DYeXQq4E21v169sC8qWINGpcosGv9XhTDvg9/hWvx/zrFkc9BiWxR58OJLHGk28j5BL0SDLeV2WmFZlQ==
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ error-ex "^1.3.1"
+ json-parse-better-errors "^1.0.1"
+ lines-and-columns "^1.1.6"
+
parse-passwd@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
@@ -9141,9 +9814,10 @@ parseuri@0.0.5:
dependencies:
better-assert "~1.0.0"
-parseurl@~1.3.2:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3"
+parseurl@~1.3.2, parseurl@~1.3.3:
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
+ integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
pascal-case@^2.0.0:
version "2.0.1"
@@ -9156,9 +9830,10 @@ pascalcase@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
-path-browserify@0.0.0:
- version "0.0.0"
- resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a"
+path-browserify@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a"
+ integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==
path-browserify@^1.0.0:
version "1.0.0"
@@ -9185,6 +9860,11 @@ path-exists@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
+path-exists@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
+ integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
+
path-is-absolute@^1.0.0, path-is-absolute@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
@@ -9242,6 +9922,11 @@ path-type@^2.0.0:
dependencies:
pify "^2.0.0"
+path-type@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
+ integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
+
pathval@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0"
@@ -9265,6 +9950,11 @@ performance-now@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
+picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1:
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
+ integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==
+
pify@^2.0.0, pify@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
@@ -9307,6 +9997,13 @@ pkg-dir@^3.0.0:
dependencies:
find-up "^3.0.0"
+pkg-dir@^4.1.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==
+ dependencies:
+ find-up "^4.0.0"
+
please-upgrade-node@^3.0.2, please-upgrade-node@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz#ed320051dfcc5024fae696712c8288993595e8ac"
@@ -9590,8 +10287,9 @@ postcss-unique-selectors@^2.0.2:
uniqs "^2.0.0"
postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15"
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281"
+ integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==
postcss-zindex@^2.0.1:
version "2.2.0"
@@ -9702,8 +10400,9 @@ process@~0.5.1:
resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf"
progress@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f"
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
+ integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
promise-inflight@^1.0.1:
version "1.0.1"
@@ -9750,12 +10449,13 @@ proto-list@~1.2.1:
version "1.2.4"
resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849"
-proxy-addr@~2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.3.tgz#355f262505a621646b3130a728eb647e22055341"
+proxy-addr@~2.0.5:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf"
+ integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==
dependencies:
forwarded "~0.1.2"
- ipaddr.js "1.6.0"
+ ipaddr.js "1.9.1"
proxy-from-env@^1.0.0:
version "1.0.0"
@@ -9841,9 +10541,10 @@ qjobs@^1.1.4:
version "1.1.5"
resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.1.5.tgz#659de9f2cf8dcc27a1481276f205377272382e73"
-qs@6.5.1:
- version "6.5.1"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
+qs@6.7.0:
+ version "6.7.0"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
+ integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==
query-string@^4.1.0:
version "4.3.4"
@@ -9893,9 +10594,10 @@ randomatic@^1.1.3:
is-number "^3.0.0"
kind-of "^4.0.0"
-randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.5.tgz#dc009a246b8d09a177b4b7a0ae77bc570f4b1b79"
+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"
+ integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
dependencies:
safe-buffer "^5.1.0"
@@ -9906,9 +10608,10 @@ randomfill@^1.0.3:
randombytes "^2.0.5"
safe-buffer "^5.1.0"
-range-parser@^1.0.3, range-parser@^1.2.0, range-parser@~1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e"
+range-parser@^1.0.3, range-parser@^1.2.0, range-parser@~1.2.0, range-parser@~1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
+ integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
raw-body@2.3.2:
version "2.3.2"
@@ -9919,6 +10622,16 @@ raw-body@2.3.2:
iconv-lite "0.4.19"
unpipe "1.0.0"
+raw-body@2.4.0:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332"
+ integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==
+ dependencies:
+ bytes "3.1.0"
+ http-errors "1.7.2"
+ iconv-lite "0.4.24"
+ unpipe "1.0.0"
+
raw-loader@^0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-0.5.1.tgz#0c3d0beaed8a01c966d9787bf778281252a979aa"
@@ -10216,9 +10929,9 @@ react-universal-component@^2.8.1, react-universal-component@^3.0.3:
prop-types "^15.5.10"
react@^16, react@^16.9.0:
- version "16.9.0"
- resolved "https://registry.yarnpkg.com/react/-/react-16.9.0.tgz#40ba2f9af13bc1a38d75dbf2f4359a5185c4f7aa"
- integrity sha512-+7LQnFBwkiw+BobzOF6N//BdoNw0ouwmSJTEm9cglOOmsg/TMiFHZLe2sEoN5M7LgJTj9oHH0gxklfnQe66S1w==
+ version "16.13.1"
+ resolved "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e"
+ integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
@@ -10248,6 +10961,15 @@ read-pkg-up@^4.0.0:
find-up "^3.0.0"
read-pkg "^3.0.0"
+read-pkg-up@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507"
+ integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==
+ dependencies:
+ find-up "^4.1.0"
+ 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"
@@ -10284,6 +11006,16 @@ read-pkg@^4.0.1:
parse-json "^4.0.0"
pify "^3.0.0"
+read-pkg@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc"
+ integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==
+ dependencies:
+ "@types/normalize-package-data" "^2.4.0"
+ normalize-package-data "^2.5.0"
+ parse-json "^5.0.0"
+ type-fest "^0.6.0"
+
"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.6, readable-stream@^2.2.9, readable-stream@^2.3.0, readable-stream@^2.3.3, readable-stream@^2.3.5:
version "2.3.6"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
@@ -10306,9 +11038,9 @@ readable-stream@1.0:
string_decoder "~0.10.x"
"readable-stream@2 || 3":
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.2.0.tgz#de17f229864c120a9f56945756e4f32c4045245d"
- integrity sha512-RV20kLjdmpZuTF1INEb9IA3L68Nmi+Ri7ppZqo78wj//Pn62fCoJyV9zalccNzDD/OuJpMG4f+pfMl8+L6QdGw==
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
+ integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
dependencies:
inherits "^2.0.3"
string_decoder "^1.1.1"
@@ -10332,6 +11064,13 @@ readdirp@^2.0.0, readdirp@^2.2.1:
micromatch "^3.1.10"
readable-stream "^2.0.2"
+readdirp@~3.4.0:
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada"
+ integrity sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==
+ dependencies:
+ picomatch "^2.2.1"
+
recast@^0.17.3:
version "0.17.3"
resolved "https://registry.yarnpkg.com/recast/-/recast-0.17.3.tgz#f49a9c9a64c59b55f6c93b5a53e3cffd7a13354d"
@@ -10718,10 +11457,10 @@ resolve@1.1.x:
version "1.1.7"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
-resolve@^1.1.6, resolve@^1.1.7, resolve@^1.3.2, resolve@^1.3.3, resolve@^1.4.0, resolve@^1.5.0, resolve@^1.8.1, resolve@^1.9.0:
- version "1.10.0"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.10.0.tgz#3bdaaeaf45cc07f375656dfd2e54ed0810b101ba"
- integrity sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==
+resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.3.2, resolve@^1.3.3, resolve@^1.4.0, resolve@^1.5.0, resolve@^1.8.1, resolve@^1.9.0:
+ version "1.17.0"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444"
+ integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==
dependencies:
path-parse "^1.0.6"
@@ -10732,10 +11471,23 @@ restore-cursor@^2.0.0:
onetime "^2.0.0"
signal-exit "^3.0.2"
+restore-cursor@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e"
+ integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==
+ dependencies:
+ onetime "^5.1.0"
+ signal-exit "^3.0.2"
+
ret@~0.1.10:
version "0.1.15"
resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
+reusify@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
+ integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
+
rfdc@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.1.2.tgz#e6e72d74f5dc39de8f538f65e00c36c18018e349"
@@ -10753,6 +11505,13 @@ rimraf@2.6.3, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.1, rimraf
dependencies:
glob "^7.1.3"
+rimraf@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
+ integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
+ dependencies:
+ glob "^7.1.3"
+
ripemd160@^2.0.0, ripemd160@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz#0f4584295c53a3628af7e6d79aca21ce57d1c6e7"
@@ -10778,6 +11537,11 @@ run-node@^1.0.0:
resolved "https://registry.yarnpkg.com/run-node/-/run-node-1.0.0.tgz#46b50b946a2aa2d4947ae1d886e9856fd9cabe5e"
integrity sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A==
+run-parallel@^1.1.9:
+ version "1.1.9"
+ resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679"
+ integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==
+
run-queue@^1.0.0, run-queue@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47"
@@ -10806,7 +11570,7 @@ safe-buffer@5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
-safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
+safe-buffer@5.1.2, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.2"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
@@ -10849,7 +11613,7 @@ schema-utils@^0.3.0:
dependencies:
ajv "^5.0.0"
-schema-utils@^0.4.0, schema-utils@^0.4.4, schema-utils@^0.4.5:
+schema-utils@^0.4.0, schema-utils@^0.4.5:
version "0.4.7"
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187"
integrity sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==
@@ -10866,6 +11630,15 @@ schema-utils@^1.0.0:
ajv-errors "^1.0.0"
ajv-keywords "^3.1.0"
+schema-utils@^2.6.6:
+ version "2.7.0"
+ resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7"
+ integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==
+ dependencies:
+ "@types/json-schema" "^7.0.4"
+ ajv "^6.12.2"
+ ajv-keywords "^3.4.1"
+
seek-bzip@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.5.tgz#cfe917cb3d274bcffac792758af53173eb1fabdc"
@@ -10914,10 +11687,15 @@ semver-greatest-satisfied-range@^1.1.0:
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b"
integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==
+semver@7.3.2:
+ version "7.3.2"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938"
+ integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==
+
semver@^6.0.0, semver@^6.1.1:
- version "6.1.1"
- resolved "https://registry.yarnpkg.com/semver/-/semver-6.1.1.tgz#53f53da9b30b2103cd4f15eab3a18ecbcb210c9b"
- integrity sha512-rWYq2e5iYW+fFe/oPPtYJxYgjBm8sC4rmoGdUOgBB7VnwKt6HrL793l2voH1UlsyYZpJ4g0wfjnTEO1s1NP2eQ==
+ version "6.3.0"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
+ integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
send@0.16.2:
version "0.16.2"
@@ -10937,6 +11715,25 @@ send@0.16.2:
range-parser "~1.2.0"
statuses "~1.4.0"
+send@0.17.1:
+ version "0.17.1"
+ resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8"
+ integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==
+ dependencies:
+ debug "2.6.9"
+ depd "~1.1.2"
+ destroy "~1.0.4"
+ encodeurl "~1.0.2"
+ escape-html "~1.0.3"
+ etag "~1.8.1"
+ fresh "0.5.2"
+ http-errors "~1.7.2"
+ mime "1.6.0"
+ ms "2.1.1"
+ on-finished "~2.3.0"
+ range-parser "~1.2.1"
+ statuses "~1.5.0"
+
sentence-case@^2.1.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-2.1.1.tgz#1f6e2dda39c168bf92d13f86d4a918933f667ed4"
@@ -10949,6 +11746,20 @@ serialize-javascript@^1.4.0:
resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.6.1.tgz#4d1f697ec49429a847ca6f442a2a755126c4d879"
integrity sha512-A5MOagrPFga4YaKQSWHryl7AXvbQkEqpw4NNYMTNYUNV51bA8ABHgYFpqKx+YFFrw59xMV1qGH1R4AgoNIVgCw==
+serialize-javascript@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-3.1.0.tgz#8bf3a9170712664ef2561b44b691eafe399214ea"
+ integrity sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==
+ dependencies:
+ randombytes "^2.1.0"
+
+serialize-javascript@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa"
+ integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==
+ dependencies:
+ randombytes "^2.1.0"
+
serve-index@^1.7.2:
version "1.9.1"
resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239"
@@ -10961,14 +11772,15 @@ serve-index@^1.7.2:
mime-types "~2.1.17"
parseurl "~1.3.2"
-serve-static@1.13.2:
- version "1.13.2"
- resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1"
+serve-static@1.14.1:
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9"
+ integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==
dependencies:
encodeurl "~1.0.2"
escape-html "~1.0.3"
- parseurl "~1.3.2"
- send "0.16.2"
+ parseurl "~1.3.3"
+ send "0.17.1"
serve@^6.4.10:
version "6.5.8"
@@ -11027,9 +11839,10 @@ setprototypeof@1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04"
-setprototypeof@1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656"
+setprototypeof@1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683"
+ integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==
sha.js@^2.4.0, sha.js@^2.4.8:
version "2.4.9"
@@ -11110,6 +11923,20 @@ sinon@^7.2.7:
nise "^1.4.10"
supports-color "^5.5.0"
+size-limit@^4.5.5:
+ version "4.5.5"
+ resolved "https://registry.yarnpkg.com/size-limit/-/size-limit-4.5.5.tgz#ce89846dfa947d4fafaa0dd4baf6d7e8888ea5be"
+ integrity sha512-rh4HSU0UVbOjX0vrzJjPjeCvPz6l+xW6QiA+BCAoLv1WzfnklBUnOdHmboF3UzZIxuNa1TmvCUCCDKmIC5XDVw==
+ dependencies:
+ bytes "^3.1.0"
+ chokidar "^3.4.1"
+ ci-job-number "^1.2.2"
+ colorette "^1.2.1"
+ cosmiconfig "^6.0.0"
+ globby "^11.0.1"
+ ora "^4.0.4"
+ read-pkg-up "^7.0.1"
+
slash@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
@@ -11118,6 +11945,11 @@ slash@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44"
+slash@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
+ integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
+
slice-ansi@0.0.4:
version "0.0.4"
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35"
@@ -11257,10 +12089,10 @@ source-map-support@^0.4.15:
dependencies:
source-map "^0.5.6"
-source-map-support@^0.5.9, source-map-support@~0.5.10:
- version "0.5.12"
- resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.12.tgz#b4f3b10d51857a5af0138d3ce8003b201613d599"
- integrity sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==
+source-map-support@^0.5.9, source-map-support@~0.5.10, source-map-support@~0.5.12:
+ version "0.5.19"
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
+ integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==
dependencies:
buffer-from "^1.0.0"
source-map "^0.6.0"
@@ -11363,6 +12195,13 @@ ssri@^6.0.1:
dependencies:
figgy-pudding "^3.5.1"
+ssri@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.0.tgz#79ca74e21f8ceaeddfcb4b90143c458b8d988808"
+ integrity sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==
+ dependencies:
+ minipass "^3.1.1"
+
stack-trace@0.0.10:
version "0.0.10"
resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0"
@@ -11387,14 +12226,19 @@ static-extend@^0.1.1:
define-property "^0.2.5"
object-copy "^0.1.0"
-"statuses@>= 1.3.1 < 2", statuses@~1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087"
+"statuses@>= 1.3.1 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
+ integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
statuses@~1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e"
+statuses@~1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087"
+
stream-browserify@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db"
@@ -11479,6 +12323,22 @@ string.prototype.trim@^1.1.2:
es-abstract "^1.5.0"
function-bind "^1.0.2"
+string.prototype.trimend@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913"
+ integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.17.5"
+
+string.prototype.trimstart@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54"
+ integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.17.5"
+
string_decoder@^1.0.0, string_decoder@^1.1.1:
version "1.2.0"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d"
@@ -11523,6 +12383,13 @@ strip-ansi@^5.0.0, strip-ansi@^5.1.0:
dependencies:
ansi-regex "^4.1.0"
+strip-ansi@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532"
+ integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==
+ 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"
@@ -11620,6 +12487,13 @@ supports-color@^5.1.0, supports-color@^5.3.0, supports-color@^5.4.0, supports-co
dependencies:
has-flag "^3.0.0"
+supports-color@^7.0.0, supports-color@^7.1.0:
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1"
+ integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==
+ dependencies:
+ has-flag "^4.0.0"
+
sver-compat@^1.5.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/sver-compat/-/sver-compat-1.5.0.tgz#3cf87dfeb4d07b4a3f14827bc186b3fd0c645cd8"
@@ -11695,10 +12569,10 @@ tapable@^0.2.7:
version "0.2.8"
resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22"
-tapable@^1.0.0, tapable@^1.1.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.1.tgz#4d297923c5a72a42360de2ab52dadfaaec00018e"
- integrity sha512-9I2ydhj8Z9veORCw5PRm4u9uebCn0mcCa6scWoNcbZ6dAtoo2618u9UUzxgmsCOreJpqDDuv61LvwofW7hLcBA==
+tapable@^1.0.0, tapable@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2"
+ integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==
tar-stream@^1.5.2:
version "1.6.1"
@@ -11724,6 +12598,18 @@ tar@^4:
safe-buffer "^5.1.2"
yallist "^3.0.2"
+tar@^6.0.2:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/tar/-/tar-6.0.2.tgz#5df17813468a6264ff14f766886c622b84ae2f39"
+ integrity sha512-Glo3jkRtPcvpDlAs/0+hozav78yoXKFr+c4wgw62NNMO3oo4AaJdCo21Uu7lcwr55h39W2XD1LMERc64wtbItg==
+ dependencies:
+ chownr "^2.0.0"
+ fs-minipass "^2.0.0"
+ minipass "^3.0.0"
+ minizlib "^2.1.0"
+ mkdirp "^1.0.3"
+ yallist "^4.0.0"
+
term-size@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69"
@@ -11744,21 +12630,37 @@ terser-webpack-plugin-legacy@^1.2.3:
webpack-sources "^1.1.0"
worker-farm "^1.5.2"
-terser-webpack-plugin@^1.1.0:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.2.1.tgz#7545da9ae5f4f9ae6a0ac961eb46f5e7c845cc26"
- integrity sha512-GGSt+gbT0oKcMDmPx4SRSfJPE1XaN3kQRWG4ghxKQw9cn5G9x6aCKSsgYdvyM0na9NJ4Drv0RG6jbBByZ5CMjw==
+terser-webpack-plugin@^1.4.3:
+ version "1.4.4"
+ resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.4.tgz#2c63544347324baafa9a56baaddf1634c8abfc2f"
+ integrity sha512-U4mACBHIegmfoEe5fdongHESNJWqsGU+W0S/9+BmYGVQDw1+c2Ow05TpMhxjPK1sRb7cuYq1BPl1e5YHJMTCqA==
dependencies:
- cacache "^11.0.2"
- find-cache-dir "^2.0.0"
+ cacache "^12.0.2"
+ find-cache-dir "^2.1.0"
+ is-wsl "^1.1.0"
schema-utils "^1.0.0"
- serialize-javascript "^1.4.0"
+ serialize-javascript "^3.1.0"
source-map "^0.6.1"
- terser "^3.8.1"
- webpack-sources "^1.1.0"
- worker-farm "^1.5.2"
+ terser "^4.1.2"
+ webpack-sources "^1.4.0"
+ worker-farm "^1.7.0"
+
+terser-webpack-plugin@^3.0.7:
+ version "3.0.7"
+ resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-3.0.7.tgz#db23b946dcca8954da3ebda3675360bceebdc78e"
+ integrity sha512-5JqibUOctE6Ou4T00IVGYTQJBOhu24jz0PpqYeitQJJ3hlZY2ZKSwzzuqjmBH8MzbdWMgIefpmHwTkvwm6Q4CQ==
+ dependencies:
+ cacache "^15.0.5"
+ find-cache-dir "^3.3.1"
+ jest-worker "^26.1.0"
+ p-limit "^3.0.2"
+ schema-utils "^2.6.6"
+ serialize-javascript "^4.0.0"
+ source-map "^0.6.1"
+ terser "^4.8.0"
+ webpack-sources "^1.4.3"
-terser@^3.16.1, terser@^3.8.1:
+terser@^3.16.1:
version "3.17.0"
resolved "https://registry.yarnpkg.com/terser/-/terser-3.17.0.tgz#f88ffbeda0deb5637f9d24b0da66f4e15ab10cb2"
integrity sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ==
@@ -11767,6 +12669,15 @@ terser@^3.16.1, terser@^3.8.1:
source-map "~0.6.1"
source-map-support "~0.5.10"
+terser@^4.1.2, terser@^4.8.0:
+ version "4.8.0"
+ resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17"
+ integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==
+ dependencies:
+ commander "^2.20.0"
+ source-map "~0.6.1"
+ source-map-support "~0.5.12"
+
test-exclude@^5.2.3:
version "5.2.3"
resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.3.tgz#c3d3e1e311eb7ee405e092dac10aefd09091eac0"
@@ -11814,7 +12725,7 @@ through2@^3.0.1:
dependencies:
readable-stream "2 || 3"
-through@^2.3.6:
+through@^2.3.6, through@^2.3.8:
version "2.3.8"
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
@@ -11845,12 +12756,7 @@ tiny-emitter@^2.0.0:
resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423"
integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==
-tiny-invariant@^1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.0.3.tgz#91efaaa0269ccb6271f0296aeedb05fc3e067b7a"
- integrity sha512-ytQx8T4DL8PjlX53yYzcIC0WhIZbpR0p1qcYjw2pHu3w6UtgWwFJQ/02cnhOnBBhlFx/edUIfcagCaQSe3KMWg==
-
-tiny-invariant@^1.1.0:
+tiny-invariant@^1.0.2, tiny-invariant@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875"
integrity sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw==
@@ -11913,6 +12819,13 @@ to-regex-range@^2.1.0:
is-number "^3.0.0"
repeat-string "^1.6.1"
+to-regex-range@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
+ integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
+ dependencies:
+ is-number "^7.0.0"
+
to-regex@^3.0.1, to-regex@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce"
@@ -11937,6 +12850,11 @@ toggle-selection@^1.0.6:
resolved "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32"
integrity sha1-bkWxJj8gF/oKzH2J14sVuL932jI=
+toidentifier@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
+ integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
+
toposort@^1.0.0:
version "1.0.6"
resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.6.tgz#c31748e55d210effc00fdcdc7d6e68d7d7bb9cec"
@@ -11980,9 +12898,10 @@ trough@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.1.tgz#a9fd8b0394b0ae8fff82e0633a0a36ccad5b5f86"
-tryer@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.0.tgz#027b69fa823225e551cace3ef03b11f6ab37c1d7"
+tryer@^1.0.0, tryer@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8"
+ integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==
tryit@^1.0.1:
version "1.0.3"
@@ -12089,12 +13008,23 @@ type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5:
resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
-type-is@~1.6.15, type-is@~1.6.16:
- version "1.6.16"
- resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194"
+type-fest@^0.6.0:
+ version "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:
+ version "0.8.1"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
+ integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
+
+type-is@~1.6.17, type-is@~1.6.18:
+ version "1.6.18"
+ resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
+ integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
dependencies:
media-typer "0.3.0"
- mime-types "~2.1.18"
+ mime-types "~2.1.24"
typed-styles@^0.0.7:
version "0.0.7"
@@ -12147,11 +13077,12 @@ ultron@~1.1.0:
resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c"
unbzip2-stream@^1.0.9:
- version "1.2.5"
- resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.2.5.tgz#73a033a567bbbde59654b193c44d48a7e4f43c47"
+ version "1.4.3"
+ resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7"
+ integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==
dependencies:
- buffer "^3.0.1"
- through "^2.3.6"
+ buffer "^5.2.1"
+ through "^2.3.8"
unc-path-regex@^0.1.0, unc-path-regex@^0.1.2:
version "0.1.2"
@@ -12460,6 +13391,13 @@ util@0.10.3, util@^0.10.3:
dependencies:
inherits "2.0.1"
+util@^0.11.0:
+ version "0.11.1"
+ resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61"
+ integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==
+ dependencies:
+ inherits "2.0.3"
+
utila@~0.3:
version "0.3.3"
resolved "https://registry.yarnpkg.com/utila/-/utila-0.3.3.tgz#d7e8e7d7e309107092b05f8d9688824d633a4226"
@@ -12599,11 +13537,10 @@ vinyl@^2.0.0, vinyl@^2.2.0:
remove-trailing-separator "^1.0.1"
replace-ext "^1.0.0"
-vm-browserify@0.0.4:
- version "0.0.4"
- resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73"
- dependencies:
- indexof "0.0.1"
+vm-browserify@^1.0.1:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0"
+ integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==
void-elements@^2.0.0:
version "2.0.1"
@@ -12616,14 +13553,23 @@ warning@^4.0.2, warning@^4.0.3:
dependencies:
loose-envify "^1.0.0"
-watchpack@^1.4.0, watchpack@^1.5.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00"
- integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==
+watchpack-chokidar2@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz#9948a1866cbbd6cb824dea13a7ed691f6c8ddff0"
+ integrity sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA==
+ dependencies:
+ chokidar "^2.1.8"
+
+watchpack@^1.4.0, watchpack@^1.7.4:
+ version "1.7.4"
+ resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.4.tgz#6e9da53b3c80bb2d6508188f5b200410866cd30b"
+ integrity sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg==
dependencies:
- chokidar "^2.0.2"
graceful-fs "^4.1.2"
neo-async "^2.5.0"
+ optionalDependencies:
+ chokidar "^3.4.1"
+ watchpack-chokidar2 "^2.0.0"
wbuf@^1.1.0, wbuf@^1.7.2:
version "1.7.3"
@@ -12631,6 +13577,13 @@ wbuf@^1.1.0, wbuf@^1.7.2:
dependencies:
minimalistic-assert "^1.0.0"
+wcwidth@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8"
+ integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=
+ dependencies:
+ defaults "^1.0.3"
+
web-namespaces@^1.0.0, web-namespaces@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-1.1.2.tgz#c8dc267ab639505276bae19e129dbd6ae72b22b4"
@@ -12653,6 +13606,25 @@ webpack-bundle-analyzer@^2.9.0:
opener "^1.4.3"
ws "^4.0.0"
+webpack-bundle-analyzer@^3.8.0:
+ version "3.8.0"
+ resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.8.0.tgz#ce6b3f908daf069fd1f7266f692cbb3bded9ba16"
+ integrity sha512-PODQhAYVEourCcOuU+NiYI7WdR8QyELZGgPvB1y2tjbUpbmcQOt5Q7jEK+ttd5se0KSBKD9SXHCEozS++Wllmw==
+ dependencies:
+ acorn "^7.1.1"
+ acorn-walk "^7.1.1"
+ bfj "^6.1.1"
+ chalk "^2.4.1"
+ commander "^2.18.0"
+ ejs "^2.6.1"
+ express "^4.16.3"
+ filesize "^3.6.1"
+ gzip-size "^5.0.0"
+ lodash "^4.17.15"
+ mkdirp "^0.5.1"
+ opener "^1.5.1"
+ ws "^6.0.0"
+
webpack-cli@^3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.2.1.tgz#779c696c82482491f0803907508db2e276ed3b61"
@@ -12740,10 +13712,10 @@ webpack-node-externals@^1.6.0:
version "1.7.2"
resolved "https://registry.yarnpkg.com/webpack-node-externals/-/webpack-node-externals-1.7.2.tgz#6e1ee79ac67c070402ba700ef033a9b8d52ac4e3"
-webpack-sources@^1.0.1, webpack-sources@^1.1.0, webpack-sources@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85"
- integrity sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==
+webpack-sources@^1.0.1, webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3:
+ version "1.4.3"
+ resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933"
+ integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==
dependencies:
source-list-map "^2.0.0"
source-map "~0.6.1"
@@ -12776,34 +13748,33 @@ webpack@^3.6.0:
yargs "^8.0.2"
webpack@^4.28.4:
- version "4.28.4"
- resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.28.4.tgz#1ddae6c89887d7efb752adf0c3cd32b9b07eacd0"
- integrity sha512-NxjD61WsK/a3JIdwWjtIpimmvE6UrRi3yG54/74Hk9rwNj5FPkA4DJCf1z4ByDWLkvZhTZE+P3C/eh6UD5lDcw==
- dependencies:
- "@webassemblyjs/ast" "1.7.11"
- "@webassemblyjs/helper-module-context" "1.7.11"
- "@webassemblyjs/wasm-edit" "1.7.11"
- "@webassemblyjs/wasm-parser" "1.7.11"
- acorn "^5.6.2"
- acorn-dynamic-import "^3.0.0"
- ajv "^6.1.0"
- ajv-keywords "^3.1.0"
- chrome-trace-event "^1.0.0"
- enhanced-resolve "^4.1.0"
- eslint-scope "^4.0.0"
+ version "4.44.0"
+ resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.44.0.tgz#3b08f88a89470175f036f4a9496b8a0428668802"
+ integrity sha512-wAuJxK123sqAw31SpkPiPW3iKHgFUiKvO7E7UZjtdExcsRe3fgav4mvoMM7vvpjLHVoJ6a0Mtp2fzkoA13e0Zw==
+ dependencies:
+ "@webassemblyjs/ast" "1.9.0"
+ "@webassemblyjs/helper-module-context" "1.9.0"
+ "@webassemblyjs/wasm-edit" "1.9.0"
+ "@webassemblyjs/wasm-parser" "1.9.0"
+ acorn "^6.4.1"
+ ajv "^6.10.2"
+ ajv-keywords "^3.4.1"
+ chrome-trace-event "^1.0.2"
+ enhanced-resolve "^4.3.0"
+ eslint-scope "^4.0.3"
json-parse-better-errors "^1.0.2"
- loader-runner "^2.3.0"
- loader-utils "^1.1.0"
- memory-fs "~0.4.1"
- micromatch "^3.1.8"
- mkdirp "~0.5.0"
- neo-async "^2.5.0"
- node-libs-browser "^2.0.0"
- schema-utils "^0.4.4"
- tapable "^1.1.0"
- terser-webpack-plugin "^1.1.0"
- watchpack "^1.5.0"
- webpack-sources "^1.3.0"
+ loader-runner "^2.4.0"
+ loader-utils "^1.2.3"
+ memory-fs "^0.4.1"
+ micromatch "^3.1.10"
+ mkdirp "^0.5.3"
+ neo-async "^2.6.1"
+ node-libs-browser "^2.2.1"
+ schema-utils "^1.0.0"
+ tapable "^1.1.3"
+ terser-webpack-plugin "^1.4.3"
+ watchpack "^1.7.4"
+ webpack-sources "^1.4.1"
websocket-driver@>=0.5.1:
version "0.7.0"
@@ -12872,10 +13843,10 @@ wordwrap@~0.0.2:
version "0.0.3"
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
-worker-farm@^1.5.2:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.6.0.tgz#aecc405976fab5a95526180846f0dba288f3a4a0"
- integrity sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==
+worker-farm@^1.5.2, worker-farm@^1.7.0:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8"
+ integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==
dependencies:
errno "~0.1.7"
@@ -12932,6 +13903,13 @@ ws@^5.1.1:
dependencies:
async-limiter "~1.0.0"
+ws@^6.0.0:
+ version "6.2.1"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb"
+ integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==
+ dependencies:
+ async-limiter "~1.0.0"
+
ws@~3.3.1:
version "3.3.3"
resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2"
@@ -12977,6 +13955,16 @@ yallist@^3.0.0, yallist@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9"
+yallist@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
+ integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
+
+yaml@^1.7.2:
+ version "1.10.0"
+ resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e"
+ integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==
+
yargs-parser@11.1.1, yargs-parser@^11.1.1:
version "11.1.1"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4"
@@ -13126,8 +14114,9 @@ yauzl@2.4.1:
fd-slicer "~1.0.1"
yauzl@^2.4.2:
- version "2.9.2"
- resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.9.2.tgz#4fb1bc7ae1fc2f57037b54af6acc8fe1031c5b77"
+ version "2.10.0"
+ resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"
+ integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=
dependencies:
buffer-crc32 "~0.2.3"
fd-slicer "~1.1.0"
From 33b5d5a860d3e27008d498841c282bb8880f8008 Mon Sep 17 00:00:00 2001
From: Malcolm
Date: Tue, 28 Jul 2020 07:22:32 +1200
Subject: [PATCH 42/60] fix(Search): merge nested shorthand props for the
element (#3785)
* Add failing test
* fix(Search): merge nested shorthand props for element
* Update test/specs/modules/Search/Search-test.js
* Update src/modules/Search/Search.js
* Update src/modules/Search/Search.js
* Update src/modules/Search/Search.js
* Update src/modules/Search/Search.js
* Update src/modules/Search/Search.js
* Update src/modules/Search/Search.js
* Update src/modules/Search/Search.js
* Update src/modules/Search/Search.js
* Update src/modules/Search/Search.js
* Update src/modules/Search/Search.js
* Update test/specs/modules/Search/Search-test.js
* restore a test
Co-authored-by: Oleksandr Fediashov
---
src/modules/Search/Search.js | 18 +++++++++++++++++-
test/specs/modules/Search/Search-test.js | 19 +++++++++++++++++++
2 files changed, 36 insertions(+), 1 deletion(-)
diff --git a/src/modules/Search/Search.js b/src/modules/Search/Search.js
index 7a21ca7897..edabc2fced 100644
--- a/src/modules/Search/Search.js
+++ b/src/modules/Search/Search.js
@@ -27,6 +27,19 @@ import SearchResults from './SearchResults'
const debug = makeDebugger('search')
+const overrideSearchInputProps = (predefinedProps) => {
+ const { input } = predefinedProps
+
+ if (_.isUndefined(input)) {
+ return { ...predefinedProps, input: { className: 'prompt' } }
+ }
+ if (_.isPlainObject(input)) {
+ return { ...predefinedProps, input: { ...input, className: cx(input.className, 'prompt') } }
+ }
+
+ return predefinedProps
+}
+
/**
* A search module allows a user to query for results from a selection of data
*/
@@ -530,12 +543,15 @@ export default class Search extends Component {
autoGenerateKey: false,
defaultProps: {
...rest,
+ autoComplete: 'off',
icon,
- input: { className: 'prompt', tabIndex: '0', autoComplete: 'off' },
onChange: this.handleSearchChange,
onClick: this.handleInputClick,
+ tabIndex: '0',
value,
},
+ // Nested shorthand props need special treatment to survive the shallow merge
+ overrideProps: overrideSearchInputProps,
})
}
diff --git a/test/specs/modules/Search/Search-test.js b/test/specs/modules/Search/Search-test.js
index feb9c20d4e..c05d30ffec 100644
--- a/test/specs/modules/Search/Search-test.js
+++ b/test/specs/modules/Search/Search-test.js
@@ -774,6 +774,25 @@ describe('Search', () => {
})
})
+ describe('input', () => {
+ it(`merges nested shorthand props for the `, () => {
+ wrapperMount( )
+ const input = wrapper.find('input')
+
+ input.should.have.prop('tabIndex', '-1')
+ input.should.have.className('foo')
+ input.should.have.className('prompt')
+ })
+
+ it(`will not merge for a function`, () => {
+ wrapperMount( }} />)
+ const input = wrapper.find('input')
+
+ input.should.have.prop('autoComplete', 'off')
+ input.should.have.not.className('prompt')
+ })
+ })
+
describe('input props', () => {
// Search handles some of html props
const props = _.without(htmlInputAttrs, 'defaultValue', 'type')
From 32365e4a4367ffa81b5a877b6307a9c7d19ad6e7 Mon Sep 17 00:00:00 2001
From: Oleksandr Fediashov
Date: Tue, 28 Jul 2020 10:19:26 +0200
Subject: [PATCH 43/60] chore: bump dependencies (#4000)
* chore: bump test devDependencies
* wip
* fix script
* fix lint errors
* fix UTs
* fix size regression
* use a proper version
* fix TS error
* fix lint errors
* run prettier
* fix lint error
Co-authored-by: Malcolm
---
.babel-preset.js | 3 +
.circleci/config.yml | 5 +-
.eslintignore | 1 +
.eslintrc | 45 +-
.prettierrc.json | 6 -
bundle-size/fixtures/Portal.size.js | 2 +-
config.js | 3 +-
docs/src/App.js | 4 +-
docs/src/components/CarbonAd/CarbonAd.js | 8 +-
.../src/components/CarbonAd/CarbonAdNative.js | 11 +-
docs/src/components/CodeEditor/CodeEditor.js | 22 +-
.../ComponentControlsCodeSandbox.js | 10 +-
.../ComponentControlsCopyLink.js | 10 +-
.../components/ComponentDoc/ComponentDoc.js | 20 +-
.../ComponentDoc/ComponentDocLinks.js | 14 +-
.../ComponentExample/ComponentExample.js | 34 +-
.../ComponentExample/ComponentExampleTitle.js | 12 +-
.../ComponentDoc/ComponentExamples.js | 12 +-
.../ComponentPropDefaultValue.js | 8 +-
.../ComponentProp/ComponentPropDescription.js | 8 +-
.../ComponentProp/ComponentPropName.js | 10 +-
.../ComponentProps/ComponentProps.js | 14 +-
.../ComponentSidebarSection.js | 26 +-
.../ComponentTable/ComponentTableRow.js | 20 +-
.../ExampleEditor/ExampleEditor.js | 4 +-
.../ExampleEditor/ExampleEditorMenu.js | 18 +-
docs/src/components/CopyToClipboard.js | 20 +-
docs/src/components/DocsLayout.js | 20 +-
.../DocumentationPageFooter.js | 6 +-
docs/src/components/LayoutsLayout.js | 8 +-
docs/src/components/Sidebar/Sidebar.js | 18 +-
.../Variations/BreadcrumbExampleSize.js | 4 +-
.../Menu/Content/MenuExampleHeaderVertical.js | 2 +-
.../MenuExampleColoredInvertedMenus.js | 5 -
.../Variations/MenuExampleColoredMenus.js | 5 -
.../Types/DividerExampleHorizontalTable.js | 4 +-
.../Variations/DividerExampleHidden.js | 4 +-
.../Groups/IconExampleCornerGroupPositions.js | 4 +-
.../Input/Usage/InputExampleDatalist.js | 6 +-
.../Types/PlaceholderExampleCard.js | 10 +-
.../Dropdown/Types/DropdownExampleFloating.js | 2 +-
.../Usage/DropdownExampleCloseOnBlur.js | 4 +-
.../Usage/DropdownExampleCloseOnChange.js | 4 +-
.../Usage/DropdownExampleCloseOnEscape.js | 4 +-
.../Usage/DropdownExampleOpenOnFocus.js | 4 +-
.../modules/Popup/Types/PopupExampleHeader.js | 4 +-
.../Popup/Usage/PopupExampleContext.js | 4 +-
.../Usage/PopupExampleContextControlled.js | 8 +-
.../Popup/Usage/PopupExampleControlled.js | 5 +-
.../Popup/Usage/PopupExampleHideOnScroll.js | 4 +-
.../modules/Popup/Usage/PopupExampleOffset.js | 4 +-
.../Usage/PopupExamplePopperDependencies.js | 4 +-
.../Popup/Variations/PopupExampleInverted.js | 4 +-
.../Popup/Variations/PopupExampleSize.js | 4 +-
.../Popup/Variations/PopupExampleWide.js | 4 +-
docs/src/layouts/HomepageLayout.js | 2 +
gulp/plugins/gulp-example-menu.js | 7 +-
gulp/plugins/gulp-example-source.js | 5 +-
gulp/tasks/docs.js | 5 +-
index.d.ts | 12 +-
karma.conf.babel.js | 7 +-
package.json | 136 +-
src/addons/Confirm/Confirm.js | 86 +-
src/addons/MountNode/MountNode.d.ts | 2 +-
src/addons/MountNode/MountNode.js | 16 +-
src/addons/Pagination/Pagination.d.ts | 4 +-
src/addons/Pagination/Pagination.js | 154 +-
src/addons/Pagination/PaginationItem.d.ts | 2 +-
src/addons/Pagination/PaginationItem.js | 68 +-
src/addons/Portal/Portal.d.ts | 4 +-
src/addons/Portal/Portal.js | 206 +-
src/addons/Portal/PortalInner.d.ts | 2 +-
src/addons/Portal/PortalInner.js | 54 +-
src/addons/Responsive/Responsive.d.ts | 2 +-
src/addons/Responsive/Responsive.js | 82 +-
src/addons/TextArea/TextArea.d.ts | 2 +-
src/addons/TextArea/TextArea.js | 60 +-
.../TransitionablePortal.js | 100 +-
src/behaviors/Visibility/Visibility.d.ts | 4 +-
src/behaviors/Visibility/Visibility.js | 310 +-
src/collections/Breadcrumb/Breadcrumb.d.ts | 2 +-
.../Breadcrumb/BreadcrumbSection.js | 64 +-
src/collections/Form/Form.js | 116 +-
src/collections/Menu/Menu.d.ts | 2 +-
src/collections/Menu/Menu.js | 176 +-
src/collections/Menu/MenuItem.js | 106 +-
src/collections/Message/Message.d.ts | 4 +-
src/collections/Message/Message.js | 152 +-
src/collections/Table/Table.d.ts | 2 +-
src/elements/Button/Button.d.ts | 2 +-
src/elements/Button/Button.js | 256 +-
src/elements/Flag/Flag.d.ts | 4 +-
src/elements/Flag/Flag.js | 30 +-
src/elements/Icon/Icon.d.ts | 2 +-
src/elements/Icon/Icon.js | 124 +-
src/elements/Input/Input.d.ts | 4 +-
src/elements/Input/Input.js | 148 +-
src/elements/Label/Label.d.ts | 2 +-
src/elements/Label/Label.js | 194 +-
src/elements/List/List.d.ts | 2 +-
src/elements/List/List.js | 142 +-
src/elements/List/ListItem.js | 109 +-
src/elements/Step/Step.d.ts | 4 +-
src/elements/Step/Step.js | 110 +-
src/generic.d.ts | 9 +-
src/lib/customPropTypes.js | 12 +-
src/modules/Accordion/Accordion.d.ts | 2 +-
src/modules/Accordion/AccordionAccordion.js | 102 +-
src/modules/Accordion/AccordionPanel.d.ts | 2 +-
src/modules/Accordion/AccordionPanel.js | 50 +-
src/modules/Accordion/AccordionTitle.js | 61 +-
src/modules/Checkbox/Checkbox.js | 188 +-
src/modules/Dimmer/Dimmer.js | 22 +-
src/modules/Dimmer/DimmerInner.d.ts | 2 +-
src/modules/Dimmer/DimmerInner.js | 98 +-
src/modules/Dropdown/Dropdown.d.ts | 8 +-
src/modules/Dropdown/Dropdown.js | 687 ++-
src/modules/Dropdown/DropdownItem.js | 110 +-
src/modules/Dropdown/DropdownSearchInput.js | 50 +-
src/modules/Dropdown/index.d.ts | 7 +-
src/modules/Embed/Embed.js | 138 +-
src/modules/Modal/Modal.d.ts | 6 +-
src/modules/Modal/Modal.js | 244 +-
src/modules/Modal/ModalActions.js | 50 +-
src/modules/Popup/Popup.d.ts | 12 +-
src/modules/Popup/Popup.js | 266 +-
src/modules/Progress/Progress.js | 150 +-
src/modules/Rating/Rating.js | 100 +-
src/modules/Rating/RatingIcon.js | 90 +-
src/modules/Search/Search.d.ts | 6 +-
src/modules/Search/Search.js | 338 +-
src/modules/Search/SearchCategory.d.ts | 2 +-
src/modules/Search/SearchResult.js | 98 +-
src/modules/Sidebar/Sidebar.d.ts | 2 +-
src/modules/Sidebar/Sidebar.js | 160 +-
src/modules/Sticky/Sticky.d.ts | 6 +-
src/modules/Sticky/Sticky.js | 142 +-
src/modules/Tab/Tab.d.ts | 8 +-
src/modules/Tab/Tab.js | 118 +-
src/modules/Transition/Transition.js | 156 +-
src/modules/Transition/TransitionGroup.js | 60 +-
src/views/Card/Card.d.ts | 6 +-
src/views/Card/Card.js | 124 +-
src/views/Feed/Feed.d.ts | 2 +-
src/views/Item/Item.d.ts | 10 +-
test/.eslintrc | 11 +-
.../addons/Pagination/Pagination-test.js | 10 +-
test/specs/addons/Portal/Portal-test.js | 4 -
.../behaviors/Visibility/Visibility-test.js | 67 +-
test/specs/collections/Menu/Menu-test.js | 15 +-
.../collections/Message/MessageList-test.js | 19 +-
test/specs/collections/Table/Table-test.js | 39 +-
test/specs/commonTests/tsHelpers.js | 2 +-
test/specs/elements/Button/Button-test.js | 30 +-
test/specs/elements/Input/Input-test.js | 5 +-
test/specs/lib/factories-test.js | 20 +-
test/specs/lib/isBrowser-test.js | 8 +-
.../Accordion/AccordionAccordion-test.js | 40 +-
test/specs/modules/Dimmer/DimmerInner-test.js | 5 +-
test/specs/modules/Dropdown/Dropdown-test.js | 294 +-
test/specs/modules/Popup/Popup-test.js | 5 +-
test/specs/modules/Rating/Rating-test.js | 106 +-
test/specs/modules/Search/Search-test.js | 70 +-
test/specs/modules/Sticky/Sticky-test.js | 75 +-
test/specs/modules/Tab/Tab-test.js | 174 +-
.../Transition/TransitionGroup-test.js | 25 +-
test/specs/views/Card/CardGroup-test.js | 10 +-
test/specs/views/Item/ItemGroup-test.js | 10 +-
test/typings.tsx | 12 +-
test/utils/assertBodyClasses.js | 5 +-
tslint.json | 17 -
yarn.lock | 4990 +++++++++--------
172 files changed, 6569 insertions(+), 6801 deletions(-)
delete mode 100644 tslint.json
diff --git a/.babel-preset.js b/.babel-preset.js
index ec786a0795..fcb3b86ec4 100644
--- a/.babel-preset.js
+++ b/.babel-preset.js
@@ -24,6 +24,9 @@ const plugins = [
'@babel/plugin-transform-runtime',
{
regenerator: isDocsBuild,
+ useESModules: isESBuild,
+ // https://github.com/babel/babel/issues/10261
+ version: require('@babel/runtime/package.json').version,
},
],
// Plugins that allow to reduce the target bundle size
diff --git a/.circleci/config.yml b/.circleci/config.yml
index 372ca0cf21..302f79bb34 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -71,10 +71,7 @@ jobs:
at: ~/project
- *restore_node_modules
- run:
- name: Lint TypeScript
- command: yarn tsd:lint
- - run:
- name: Lint JavaScript
+ name: Lint
command: yarn lint
workflows:
diff --git a/.eslintignore b/.eslintignore
index b501af3790..5053239b57 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -1,3 +1,4 @@
+bundle-size/dist/*
coverage/*
dist/*
docs/dist/*
diff --git a/.eslintrc b/.eslintrc
index f83bbc8246..14d66ad96c 100644
--- a/.eslintrc
+++ b/.eslintrc
@@ -1,4 +1,5 @@
{
+ "root": true,
"parser": "babel-eslint",
"extends": ["airbnb", "prettier"],
"env": {
@@ -15,11 +16,14 @@
"no-multi-spaces": ["error", { "ignoreEOLComments": true }],
"no-return-assign": ["error", "except-parens"],
"no-underscore-dangle": "off",
- "padded-blocks": ["error", {
- "blocks": "never",
- "switches": "never",
- "classes": "never"
- }],
+ "padded-blocks": [
+ "error",
+ {
+ "blocks": "never",
+ "switches": "never",
+ "classes": "never"
+ }
+ ],
"prefer-destructuring": "off",
"jsx-a11y/alt-text": "warn",
"jsx-a11y/anchor-is-valid": "off",
@@ -28,6 +32,8 @@
"jsx-a11y/label-has-associated-control": "warn",
"jsx-a11y/no-static-element-interactions": "warn",
"jsx-a11y/role-has-required-aria-props": "warn",
+ "import/named": "off",
+ "import/no-cycle": "off",
"import/no-dynamic-require": "off",
"import/no-extraneous-dependencies": "off",
"import/no-unresolved": "off",
@@ -36,11 +42,32 @@
"react/button-has-type": "off",
"react/destructuring-assignment": "off",
"react/forbid-prop-types": "off",
- "react/jsx-one-expression-per-line": "off",
- "react/jsx-filename-extension": [2, { "extensions": [".js"] }],
+ "react/jsx-curly-newline": "off",
+ "react/jsx-one-expression-per-line": "off",
+ "react/jsx-filename-extension": ["error", { "extensions": [".js", ".tsx"] }],
+ "react/jsx-props-no-spreading": "off",
"react/jsx-wrap-multilines": "off",
+ "react/prefer-stateless-function": "off",
"react/no-unused-prop-types": "off",
"react/sort-comp": "off",
- "react/require-default-props":"off"
- }
+ "react/state-in-constructor": "off",
+ "react/require-default-props": "off"
+ },
+ "overrides": [
+ {
+ "files": ["**/*.ts", "**/*.tsx"],
+ "parser": "@typescript-eslint/parser",
+ "extends": [
+ "eslint:recommended",
+ "plugin:@typescript-eslint/eslint-recommended",
+ "plugin:@typescript-eslint/recommended"
+ ],
+ "plugins": ["@typescript-eslint"],
+ "rules": {
+ "@typescript-eslint/explicit-module-boundary-types": "off",
+ "@typescript-eslint/no-explicit-any": "off",
+ "@typescript-eslint/no-empty-interface": "off"
+ }
+ }
+ ]
}
diff --git a/.prettierrc.json b/.prettierrc.json
index 14bedecbad..75c5a1bfc7 100644
--- a/.prettierrc.json
+++ b/.prettierrc.json
@@ -14,12 +14,6 @@
"parser": "json"
}
},
- {
- "files": "*.{ts,tsx}",
- "options": {
- "semi": true
- }
- },
{
"files": "docs/src/examples/**/*.js",
"options": {
diff --git a/bundle-size/fixtures/Portal.size.js b/bundle-size/fixtures/Portal.size.js
index c9d1221490..1d225e4b40 100644
--- a/bundle-size/fixtures/Portal.size.js
+++ b/bundle-size/fixtures/Portal.size.js
@@ -3,7 +3,7 @@ import React from 'react'
import ReactDOM from 'react-dom'
function App() {
- return }>Some content
+ return A button}>Some content
}
ReactDOM.render( , document.querySelector('#root'))
diff --git a/config.js b/config.js
index 320e7b93eb..4bf56aaaf0 100644
--- a/config.js
+++ b/config.js
@@ -61,7 +61,7 @@ const config = {
hash: false, // the hash of the compilation
version: false, // webpack version info
timings: true, // timing info
- assets: true, // assets info
+ assets: false, // assets info
chunks: false, // chunk info
colors: true, // with console colors
chunkModules: false, // built modules info to chunk info
@@ -74,6 +74,7 @@ const config = {
modulesSort: '', // (string) sort the modules by that field
chunksSort: '', // (string) sort the chunks by that field
assetsSort: '', // (string) sort the assets by that field
+ warningsFilter: [/critical dependency:/i],
},
}
diff --git a/docs/src/App.js b/docs/src/App.js
index 87b9a55902..7a84ff61b5 100644
--- a/docs/src/App.js
+++ b/docs/src/App.js
@@ -11,7 +11,7 @@ import { docTypes } from './utils'
const App = ({ componentMenu, versions }) => (
-
+ <>
{/*
* We can't place inside of because it will be remounted on page
@@ -33,7 +33,7 @@ const App = ({ componentMenu, versions }) => (
-
+ >
)
diff --git a/docs/src/components/CarbonAd/CarbonAd.js b/docs/src/components/CarbonAd/CarbonAd.js
index b4cf5fdeed..67783fce68 100644
--- a/docs/src/components/CarbonAd/CarbonAd.js
+++ b/docs/src/components/CarbonAd/CarbonAd.js
@@ -30,10 +30,6 @@ const waitForLoad = () => {
}
class CarbonAd extends Component {
- static propTypes = {
- location: PropTypes.object.isRequired,
- }
-
shouldComponentUpdate(nextProps) {
return this.props.location.pathname !== nextProps.location.pathname
}
@@ -73,4 +69,8 @@ class CarbonAd extends Component {
}
}
+CarbonAd.propTypes = {
+ location: PropTypes.object.isRequired,
+}
+
export default withRouter(CarbonAd)
diff --git a/docs/src/components/CarbonAd/CarbonAdNative.js b/docs/src/components/CarbonAd/CarbonAdNative.js
index 2f747554cb..75cacfe963 100644
--- a/docs/src/components/CarbonAd/CarbonAdNative.js
+++ b/docs/src/components/CarbonAd/CarbonAdNative.js
@@ -9,10 +9,6 @@ const debug = makeDebugger('carbon-ad-native')
const MAX_FAILED_ADS = 10
class CarbonAdNative extends PureComponent {
- static propTypes = {
- inverted: PropTypes.bool,
- }
-
state = {}
componentDidMount() {
@@ -23,7 +19,8 @@ class CarbonAdNative extends PureComponent {
this.getAd()
}
- componentWillUpdate() {
+ // eslint-disable-next-line camelcase
+ UNSAFE_componentWillUpdate() {
const shouldGetAd = Date.now() - this.timeOfLastAd > 10000
debug('componentWillUpdate', { mounted: this.mounted, shouldGetAd })
if (shouldGetAd) {
@@ -177,4 +174,8 @@ class CarbonAdNative extends PureComponent {
}
}
+CarbonAdNative.propTypes = {
+ inverted: PropTypes.bool,
+}
+
export default CarbonAdNative
diff --git a/docs/src/components/CodeEditor/CodeEditor.js b/docs/src/components/CodeEditor/CodeEditor.js
index 40a8e19d48..e0188ce109 100644
--- a/docs/src/components/CodeEditor/CodeEditor.js
+++ b/docs/src/components/CodeEditor/CodeEditor.js
@@ -97,17 +97,6 @@ class CodeEditor extends React.Component {
editorRef = React.createRef()
name = `docs-editor-${_.uniqueId()}`
- static propTypes = {
- active: PropTypes.bool,
- showCursor: PropTypes.bool,
- value: PropTypes.string.isRequired,
- }
-
- static defaultProps = {
- active: true,
- showCursor: true,
- }
-
componentDidMount() {
this.setCursorVisibility(this.props.showCursor)
}
@@ -159,4 +148,15 @@ class CodeEditor extends React.Component {
}
}
+CodeEditor.propTypes = {
+ active: PropTypes.bool,
+ showCursor: PropTypes.bool,
+ value: PropTypes.string.isRequired,
+}
+
+CodeEditor.defaultProps = {
+ active: true,
+ showCursor: true,
+}
+
export default CodeEditor
diff --git a/docs/src/components/ComponentDoc/ComponentControls/ComponentControlsCodeSandbox.js b/docs/src/components/ComponentDoc/ComponentControls/ComponentControlsCodeSandbox.js
index 16599ba260..8a7f523b21 100644
--- a/docs/src/components/ComponentDoc/ComponentControls/ComponentControlsCodeSandbox.js
+++ b/docs/src/components/ComponentDoc/ComponentControls/ComponentControlsCodeSandbox.js
@@ -49,11 +49,6 @@ ReactDOM.render(
`
class ComponentControlsCodeSandbox extends React.Component {
- static propTypes = {
- exampleCode: PropTypes.string.isRequired,
- visible: PropTypes.bool.isRequired,
- }
-
state = {
exampleCode: '',
sandboxUrl: '',
@@ -123,4 +118,9 @@ class ComponentControlsCodeSandbox extends React.Component {
}
}
+ComponentControlsCodeSandbox.propTypes = {
+ exampleCode: PropTypes.string.isRequired,
+ visible: PropTypes.bool.isRequired,
+}
+
export default ComponentControlsCodeSandbox
diff --git a/docs/src/components/ComponentDoc/ComponentControls/ComponentControlsCopyLink.js b/docs/src/components/ComponentDoc/ComponentControls/ComponentControlsCopyLink.js
index 643ce887f5..4a196661d2 100644
--- a/docs/src/components/ComponentDoc/ComponentControls/ComponentControlsCopyLink.js
+++ b/docs/src/components/ComponentDoc/ComponentControls/ComponentControlsCopyLink.js
@@ -5,11 +5,6 @@ import { Icon, Menu } from 'semantic-ui-react'
export default class ComponentControlsCopyLink extends Component {
state = {}
- static propTypes = {
- anchorName: PropTypes.string,
- onClick: PropTypes.func,
- }
-
shouldComponentUpdate(nextProps, nextState) {
return this.state.active !== nextState.active
}
@@ -40,3 +35,8 @@ export default class ComponentControlsCopyLink extends Component {
)
}
}
+
+ComponentControlsCopyLink.propTypes = {
+ anchorName: PropTypes.string,
+ onClick: PropTypes.func,
+}
diff --git a/docs/src/components/ComponentDoc/ComponentDoc.js b/docs/src/components/ComponentDoc/ComponentDoc.js
index f126ffa4f6..2fdf957059 100644
--- a/docs/src/components/ComponentDoc/ComponentDoc.js
+++ b/docs/src/components/ComponentDoc/ComponentDoc.js
@@ -20,16 +20,6 @@ const exampleEndStyle = {
}
class ComponentDoc extends Component {
- static propTypes = {
- componentsInfo: PropTypes.objectOf(docTypes.componentInfoShape).isRequired,
- displayName: PropTypes.string.isRequired,
- history: PropTypes.object.isRequired,
- location: PropTypes.object.isRequired,
- seeTags: docTypes.seeTags.isRequired,
- sidebarSections: docTypes.sidebarSections.isRequired,
- title: PropTypes.string.isRequired,
- }
-
state = {}
examplesRef = createRef()
@@ -114,4 +104,14 @@ class ComponentDoc extends Component {
}
}
+ComponentDoc.propTypes = {
+ componentsInfo: PropTypes.objectOf(docTypes.componentInfoShape).isRequired,
+ displayName: PropTypes.string.isRequired,
+ history: PropTypes.object.isRequired,
+ location: PropTypes.object.isRequired,
+ seeTags: docTypes.seeTags.isRequired,
+ sidebarSections: docTypes.sidebarSections.isRequired,
+ title: PropTypes.string.isRequired,
+}
+
export default withRouteData(withRouter(ComponentDoc))
diff --git a/docs/src/components/ComponentDoc/ComponentDocLinks.js b/docs/src/components/ComponentDoc/ComponentDocLinks.js
index 589ea6743c..7e08fe6034 100644
--- a/docs/src/components/ComponentDoc/ComponentDocLinks.js
+++ b/docs/src/components/ComponentDoc/ComponentDocLinks.js
@@ -15,13 +15,6 @@ const linkListStyle = {
}
export default class ComponentDocLinks extends PureComponent {
- static propTypes = {
- displayName: PropTypes.string.isRequired,
- parentDisplayName: PropTypes.string,
- repoPath: PropTypes.string.isRequired,
- type: PropTypes.string.isRequired,
- }
-
render() {
const { displayName, parentDisplayName, repoPath, type } = this.props
const ghLink = `${repoURL}/blob/master/${repoPath}`
@@ -54,3 +47,10 @@ export default class ComponentDocLinks extends PureComponent {
)
}
}
+
+ComponentDocLinks.propTypes = {
+ displayName: PropTypes.string.isRequired,
+ parentDisplayName: PropTypes.string,
+ repoPath: PropTypes.string.isRequired,
+ type: PropTypes.string.isRequired,
+}
diff --git a/docs/src/components/ComponentDoc/ComponentExample/ComponentExample.js b/docs/src/components/ComponentDoc/ComponentExample/ComponentExample.js
index 4ec179bf57..f4c65a686d 100644
--- a/docs/src/components/ComponentDoc/ComponentExample/ComponentExample.js
+++ b/docs/src/components/ComponentDoc/ComponentExample/ComponentExample.js
@@ -28,23 +28,6 @@ const componentControlsStyle = {
* Allows toggling the raw `code` code block.
*/
class ComponentExample extends Component {
- static propTypes = {
- children: PropTypes.node,
- description: PropTypes.node,
- examplePath: PropTypes.string.isRequired,
- history: PropTypes.object.isRequired,
- location: PropTypes.object.isRequired,
- onVisibilityChange: PropTypes.func.isRequired,
- renderHtml: PropTypes.bool,
- sourceCode: PropTypes.string.isRequired,
- suiVersion: PropTypes.string,
- title: PropTypes.node,
- }
-
- static defaultProps = {
- renderHtml: true,
- }
-
constructor(props) {
super(props)
@@ -197,6 +180,23 @@ class ComponentExample extends Component {
}
}
+ComponentExample.propTypes = {
+ children: PropTypes.node,
+ description: PropTypes.node,
+ examplePath: PropTypes.string.isRequired,
+ history: PropTypes.object.isRequired,
+ location: PropTypes.object.isRequired,
+ onVisibilityChange: PropTypes.func.isRequired,
+ renderHtml: PropTypes.bool,
+ sourceCode: PropTypes.string.isRequired,
+ suiVersion: PropTypes.string,
+ title: PropTypes.node,
+}
+
+ComponentExample.defaultProps = {
+ renderHtml: true,
+}
+
/* TODO: Replace this temporary component with hooks */
const Wrapper = (props) => {
const { exampleSources, ...rest } = React.useContext(ComponentDocContext)
diff --git a/docs/src/components/ComponentDoc/ComponentExample/ComponentExampleTitle.js b/docs/src/components/ComponentDoc/ComponentExample/ComponentExampleTitle.js
index 836c4af00a..d874981278 100644
--- a/docs/src/components/ComponentDoc/ComponentExample/ComponentExampleTitle.js
+++ b/docs/src/components/ComponentDoc/ComponentExample/ComponentExampleTitle.js
@@ -7,12 +7,6 @@ const titleStyle = {
}
export default class ComponentExampleTitle extends Component {
- static propTypes = {
- description: PropTypes.node,
- title: PropTypes.node,
- suiVersion: PropTypes.string,
- }
-
shouldComponentUpdate() {
return false
}
@@ -40,3 +34,9 @@ export default class ComponentExampleTitle extends Component {
)
}
}
+
+ComponentExampleTitle.propTypes = {
+ description: PropTypes.node,
+ title: PropTypes.node,
+ suiVersion: PropTypes.string,
+}
diff --git a/docs/src/components/ComponentDoc/ComponentExamples.js b/docs/src/components/ComponentDoc/ComponentExamples.js
index 8a91995080..a61f71493a 100644
--- a/docs/src/components/ComponentDoc/ComponentExamples.js
+++ b/docs/src/components/ComponentDoc/ComponentExamples.js
@@ -5,12 +5,6 @@ import { Grid } from 'semantic-ui-react'
import ContributionPrompt from './ContributionPrompt'
export default class ComponentExamples extends Component {
- static propTypes = {
- displayName: PropTypes.string.isRequired,
- examplesExist: PropTypes.bool.isRequired,
- type: PropTypes.string.isRequired,
- }
-
renderExamples = () => {
const { displayName, type } = this.props
@@ -36,3 +30,9 @@ export default class ComponentExamples extends Component {
return examplesExist ? this.renderExamples() : this.renderMissingExamples()
}
}
+
+ComponentExamples.propTypes = {
+ displayName: PropTypes.string.isRequired,
+ examplesExist: PropTypes.bool.isRequired,
+ type: PropTypes.string.isRequired,
+}
diff --git a/docs/src/components/ComponentDoc/ComponentProp/ComponentPropDefaultValue.js b/docs/src/components/ComponentDoc/ComponentProp/ComponentPropDefaultValue.js
index fa64be516c..06752fb812 100644
--- a/docs/src/components/ComponentDoc/ComponentProp/ComponentPropDefaultValue.js
+++ b/docs/src/components/ComponentDoc/ComponentProp/ComponentPropDefaultValue.js
@@ -3,12 +3,12 @@ import PropTypes from 'prop-types'
import React, { PureComponent } from 'react'
export default class ComponentPropDefaultValue extends PureComponent {
- static propTypes = {
- value: PropTypes.node,
- }
-
render() {
const { value } = this.props
return _.isNil(value) ? null : {value}
}
}
+
+ComponentPropDefaultValue.propTypes = {
+ value: PropTypes.node,
+}
diff --git a/docs/src/components/ComponentDoc/ComponentProp/ComponentPropDescription.js b/docs/src/components/ComponentDoc/ComponentProp/ComponentPropDescription.js
index 3c62eab401..8a6eea1306 100644
--- a/docs/src/components/ComponentDoc/ComponentProp/ComponentPropDescription.js
+++ b/docs/src/components/ComponentDoc/ComponentProp/ComponentPropDescription.js
@@ -3,12 +3,12 @@ import PropTypes from 'prop-types'
import React, { PureComponent } from 'react'
export default class ComponentPropDescription extends PureComponent {
- static propTypes = {
- description: PropTypes.arrayOf(PropTypes.string),
- }
-
render() {
const { description } = this.props
return {_.map(description, (line) => [line, ])}
}
}
+
+ComponentPropDescription.propTypes = {
+ description: PropTypes.arrayOf(PropTypes.string),
+}
diff --git a/docs/src/components/ComponentDoc/ComponentProp/ComponentPropName.js b/docs/src/components/ComponentDoc/ComponentProp/ComponentPropName.js
index 418c09c7b6..e49e8ab40d 100644
--- a/docs/src/components/ComponentDoc/ComponentProp/ComponentPropName.js
+++ b/docs/src/components/ComponentDoc/ComponentProp/ComponentPropName.js
@@ -3,11 +3,6 @@ import React, { PureComponent } from 'react'
import { Icon, Popup } from 'semantic-ui-react'
export default class ComponentPropName extends PureComponent {
- static propTypes = {
- name: PropTypes.string,
- required: PropTypes.bool,
- }
-
render() {
const { name, required } = this.props
@@ -27,3 +22,8 @@ export default class ComponentPropName extends PureComponent {
)
}
}
+
+ComponentPropName.propTypes = {
+ name: PropTypes.string,
+ required: PropTypes.bool,
+}
diff --git a/docs/src/components/ComponentDoc/ComponentProps/ComponentProps.js b/docs/src/components/ComponentDoc/ComponentProps/ComponentProps.js
index bb6c4ef8ce..ee01160df8 100644
--- a/docs/src/components/ComponentDoc/ComponentProps/ComponentProps.js
+++ b/docs/src/components/ComponentDoc/ComponentProps/ComponentProps.js
@@ -11,11 +11,6 @@ import ComponentPropsDescription from './ComponentPropsDescription'
const propsContainerStyle = { overflowX: 'auto' }
export default class ComponentProps extends Component {
- static propTypes = {
- componentsInfo: PropTypes.objectOf(docTypes.componentInfoShape).isRequired,
- displayName: PropTypes.string.isRequired,
- }
-
state = {}
static getDerivedStateFromProps(props, state) {
@@ -45,7 +40,7 @@ export default class ComponentProps extends Component {
const description = _.get(docblock, 'description', [])
return (
-
+ <>
)}
-
+ >
)
}
}
+
+ComponentProps.propTypes = {
+ componentsInfo: PropTypes.objectOf(docTypes.componentInfoShape).isRequired,
+ displayName: PropTypes.string.isRequired,
+}
diff --git a/docs/src/components/ComponentDoc/ComponentSidebar/ComponentSidebarSection.js b/docs/src/components/ComponentDoc/ComponentSidebar/ComponentSidebarSection.js
index 9278cf82b0..6a9a70bab4 100644
--- a/docs/src/components/ComponentDoc/ComponentSidebar/ComponentSidebarSection.js
+++ b/docs/src/components/ComponentDoc/ComponentSidebar/ComponentSidebarSection.js
@@ -4,19 +4,6 @@ import React, { PureComponent } from 'react'
import { Accordion, Icon, Menu } from 'semantic-ui-react'
export default class ComponentSidebarSection extends PureComponent {
- static propTypes = {
- activePath: PropTypes.string,
- examples: PropTypes.arrayOf(
- PropTypes.shape({
- title: PropTypes.string,
- examplePath: PropTypes.string,
- }),
- ),
- sectionName: PropTypes.string,
- onItemClick: PropTypes.func,
- onTitleClick: PropTypes.func,
- }
-
state = {}
static getDerivedStateFromProps(props, state) {
@@ -66,3 +53,16 @@ export default class ComponentSidebarSection extends PureComponent {
)
}
}
+
+ComponentSidebarSection.propTypes = {
+ activePath: PropTypes.string,
+ examples: PropTypes.arrayOf(
+ PropTypes.shape({
+ title: PropTypes.string,
+ examplePath: PropTypes.string,
+ }),
+ ),
+ sectionName: PropTypes.string,
+ onItemClick: PropTypes.func,
+ onTitleClick: PropTypes.func,
+}
diff --git a/docs/src/components/ComponentDoc/ComponentTable/ComponentTableRow.js b/docs/src/components/ComponentDoc/ComponentTable/ComponentTableRow.js
index d6391f43b4..ba1322b582 100644
--- a/docs/src/components/ComponentDoc/ComponentTable/ComponentTableRow.js
+++ b/docs/src/components/ComponentDoc/ComponentTable/ComponentTableRow.js
@@ -9,16 +9,6 @@ import ComponentPropFunctionSignature from '../ComponentProp/ComponentPropFuncti
import ComponentPropName from '../ComponentProp/ComponentPropName'
export default class ComponentTableRow extends Component {
- static propTypes = {
- defaultValue: PropTypes.string,
- description: PropTypes.arrayOf(PropTypes.string),
- name: PropTypes.string,
- required: PropTypes.bool,
- tags: PropTypes.array,
- type: PropTypes.string,
- value: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),
- }
-
state = {}
toggleEnums = () => this.setState((prevState) => ({ showEnums: !prevState.showEnums }))
@@ -50,3 +40,13 @@ export default class ComponentTableRow extends Component {
)
}
}
+
+ComponentTableRow.propTypes = {
+ defaultValue: PropTypes.string,
+ description: PropTypes.arrayOf(PropTypes.string),
+ name: PropTypes.string,
+ required: PropTypes.bool,
+ tags: PropTypes.array,
+ type: PropTypes.string,
+ value: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),
+}
diff --git a/docs/src/components/ComponentDoc/ExampleEditor/ExampleEditor.js b/docs/src/components/ComponentDoc/ExampleEditor/ExampleEditor.js
index 66a491fa39..f545e6b82d 100644
--- a/docs/src/components/ComponentDoc/ExampleEditor/ExampleEditor.js
+++ b/docs/src/components/ComponentDoc/ExampleEditor/ExampleEditor.js
@@ -50,7 +50,7 @@ const ExampleEditor = (props) => {
unstable_hot
>
{({ element, error, markup }) => (
-
+ <>
{
)}
-
+ >
)}
)
diff --git a/docs/src/components/ComponentDoc/ExampleEditor/ExampleEditorMenu.js b/docs/src/components/ComponentDoc/ExampleEditor/ExampleEditorMenu.js
index dfbd0bad27..e5660abde7 100644
--- a/docs/src/components/ComponentDoc/ExampleEditor/ExampleEditorMenu.js
+++ b/docs/src/components/ComponentDoc/ExampleEditor/ExampleEditorMenu.js
@@ -30,15 +30,6 @@ const getGithubEditHref = (examplePath) => {
class ExampleEditorMenu extends PureComponent {
state = {}
- static propTypes = {
- examplePath: PropTypes.string.isRequired,
- hasError: PropTypes.bool.isRequired,
- hasCodeChanged: PropTypes.bool.isRequired,
- onCodeFormat: PropTypes.func.isRequired,
- onCodeReset: PropTypes.func.isRequired,
- sourceCode: PropTypes.string.isRequired,
- }
-
constructor(props) {
super(props)
this.state = {
@@ -116,4 +107,13 @@ class ExampleEditorMenu extends PureComponent {
}
}
+ExampleEditorMenu.propTypes = {
+ examplePath: PropTypes.string.isRequired,
+ hasError: PropTypes.bool.isRequired,
+ hasCodeChanged: PropTypes.bool.isRequired,
+ onCodeFormat: PropTypes.func.isRequired,
+ onCodeReset: PropTypes.func.isRequired,
+ sourceCode: PropTypes.string.isRequired,
+}
+
export default ExampleEditorMenu
diff --git a/docs/src/components/CopyToClipboard.js b/docs/src/components/CopyToClipboard.js
index cd967d81f9..efee682a99 100644
--- a/docs/src/components/CopyToClipboard.js
+++ b/docs/src/components/CopyToClipboard.js
@@ -3,16 +3,6 @@ import React from 'react'
import copyToClipboard from 'copy-to-clipboard'
class CopyToClipboard extends React.Component {
- static propTypes = {
- render: PropTypes.func.isRequired,
- timeout: PropTypes.number,
- value: PropTypes.string.isRequired,
- }
-
- static defaultProps = {
- timeout: 3000,
- }
-
state = {
active: false,
}
@@ -44,4 +34,14 @@ class CopyToClipboard extends React.Component {
}
}
+CopyToClipboard.propTypes = {
+ render: PropTypes.func.isRequired,
+ timeout: PropTypes.number,
+ value: PropTypes.string.isRequired,
+}
+
+CopyToClipboard.defaultProps = {
+ timeout: 3000,
+}
+
export default CopyToClipboard
diff --git a/docs/src/components/DocsLayout.js b/docs/src/components/DocsLayout.js
index c6eb1ee113..55fe0c0248 100644
--- a/docs/src/components/DocsLayout.js
+++ b/docs/src/components/DocsLayout.js
@@ -12,14 +12,6 @@ const anchors = new AnchorJS({
})
class DocsLayout extends Component {
- static propTypes = {
- additionalTitle: PropTypes.string,
- children: PropTypes.node,
- location: PropTypes.object.isRequired,
- sidebar: PropTypes.bool,
- title: PropTypes.string.isRequired,
- }
-
componentDidMount() {
this.resetPage()
}
@@ -54,7 +46,7 @@ class DocsLayout extends Component {
const mainStyle = sidebar ? style.sidebarMain : style.main
return (
-
+ <>
{additionalTitle ? `${additionalTitle} - ` : ''}
@@ -62,9 +54,17 @@ class DocsLayout extends Component {
{children}
-
+ >
)
}
}
+DocsLayout.propTypes = {
+ additionalTitle: PropTypes.string,
+ children: PropTypes.node,
+ location: PropTypes.object.isRequired,
+ sidebar: PropTypes.bool,
+ title: PropTypes.string.isRequired,
+}
+
export default withRouter(DocsLayout)
diff --git a/docs/src/components/DocumentationPage/DocumentationPageFooter.js b/docs/src/components/DocumentationPage/DocumentationPageFooter.js
index 1305c96b5e..2f2b2cf8bf 100644
--- a/docs/src/components/DocumentationPage/DocumentationPageFooter.js
+++ b/docs/src/components/DocumentationPage/DocumentationPageFooter.js
@@ -1,11 +1,11 @@
import PropTypes from 'prop-types'
-import React, { Fragment } from 'react'
+import React from 'react'
import { Link } from 'react-static'
import { Divider, Grid, Header } from 'semantic-ui-react'
const DocumentationPageFooter = ({ nextPage, prevPage }) =>
nextPage || prevPage ? (
-
+ <>
@@ -25,7 +25,7 @@ const DocumentationPageFooter = ({ nextPage, prevPage }) =>
)}
-
+ >
) : null
DocumentationPageFooter.propTypes = {
diff --git a/docs/src/components/LayoutsLayout.js b/docs/src/components/LayoutsLayout.js
index 33623f0543..920a6322c3 100644
--- a/docs/src/components/LayoutsLayout.js
+++ b/docs/src/components/LayoutsLayout.js
@@ -28,10 +28,6 @@ const style = (
)
class LayoutsLayout extends PureComponent {
- static propTypes = {
- componentFilename: PropTypes.string.isRequired,
- }
-
constructor(props) {
super(props)
@@ -71,4 +67,8 @@ class LayoutsLayout extends PureComponent {
}
}
+LayoutsLayout.propTypes = {
+ componentFilename: PropTypes.string.isRequired,
+}
+
export default withRouteData(LayoutsLayout)
diff --git a/docs/src/components/Sidebar/Sidebar.js b/docs/src/components/Sidebar/Sidebar.js
index a0f3fde279..cab35ffac7 100644
--- a/docs/src/components/Sidebar/Sidebar.js
+++ b/docs/src/components/Sidebar/Sidebar.js
@@ -31,15 +31,6 @@ SelectedItemLabel.propTypes = {
}
class Sidebar extends Component {
- static propTypes = {
- componentMenu: docTypes.componentMenu.isRequired,
- history: PropTypes.object.isRequired,
- location: PropTypes.object.isRequired,
- match: PropTypes.object.isRequired,
- style: PropTypes.object,
- version: PropTypes.string.isRequired,
- }
-
state = { query: '' }
constructor(props) {
@@ -257,4 +248,13 @@ class Sidebar extends Component {
}
}
+Sidebar.propTypes = {
+ componentMenu: docTypes.componentMenu.isRequired,
+ history: PropTypes.object.isRequired,
+ location: PropTypes.object.isRequired,
+ match: PropTypes.object.isRequired,
+ style: PropTypes.object,
+ version: PropTypes.string.isRequired,
+}
+
export default Sidebar
diff --git a/docs/src/examples/collections/Breadcrumb/Variations/BreadcrumbExampleSize.js b/docs/src/examples/collections/Breadcrumb/Variations/BreadcrumbExampleSize.js
index f9425f4c3c..67f0761109 100644
--- a/docs/src/examples/collections/Breadcrumb/Variations/BreadcrumbExampleSize.js
+++ b/docs/src/examples/collections/Breadcrumb/Variations/BreadcrumbExampleSize.js
@@ -4,7 +4,7 @@ import { Breadcrumb, Divider } from 'semantic-ui-react'
const sizes = ['mini', 'tiny', 'small', 'large', 'big', 'huge', 'massive']
const BreadcrumbExampleSize = () => (
-
+ <>
{sizes.map((size) => (
@@ -17,7 +17,7 @@ const BreadcrumbExampleSize = () => (
))}
-
+ >
)
export default BreadcrumbExampleSize
diff --git a/docs/src/examples/collections/Menu/Content/MenuExampleHeaderVertical.js b/docs/src/examples/collections/Menu/Content/MenuExampleHeaderVertical.js
index c32207e0c9..2c523d27f8 100644
--- a/docs/src/examples/collections/Menu/Content/MenuExampleHeaderVertical.js
+++ b/docs/src/examples/collections/Menu/Content/MenuExampleHeaderVertical.js
@@ -3,7 +3,7 @@ import { Menu } from 'semantic-ui-react'
export default class MenuExampleHeaderVertical extends Component {
state = {}
- handleItemClick = (e, { name }) => this.setState({ activeItem: name });
+ handleItemClick = (e, { name }) => this.setState({ activeItem: name })
render() {
const { activeItem } = this.state
diff --git a/docs/src/examples/collections/Menu/Variations/MenuExampleColoredInvertedMenus.js b/docs/src/examples/collections/Menu/Variations/MenuExampleColoredInvertedMenus.js
index 0e64fbed4e..66b42fe141 100644
--- a/docs/src/examples/collections/Menu/Variations/MenuExampleColoredInvertedMenus.js
+++ b/docs/src/examples/collections/Menu/Variations/MenuExampleColoredInvertedMenus.js
@@ -1,4 +1,3 @@
-import PropTypes from 'prop-types'
import React, { Component } from 'react'
import { Menu } from 'semantic-ui-react'
@@ -19,10 +18,6 @@ const colors = [
]
class ExampleMenu extends Component {
- static propTypes = {
- color: PropTypes.string,
- }
-
state = { activeItem: 'home' }
handleItemClick = (e, { name }) => this.setState({ activeItem: name })
diff --git a/docs/src/examples/collections/Menu/Variations/MenuExampleColoredMenus.js b/docs/src/examples/collections/Menu/Variations/MenuExampleColoredMenus.js
index 271cddb058..2c50d27667 100644
--- a/docs/src/examples/collections/Menu/Variations/MenuExampleColoredMenus.js
+++ b/docs/src/examples/collections/Menu/Variations/MenuExampleColoredMenus.js
@@ -1,4 +1,3 @@
-import PropTypes from 'prop-types'
import React, { Component } from 'react'
import { Menu } from 'semantic-ui-react'
@@ -19,10 +18,6 @@ const colors = [
]
class ExampleMenu extends Component {
- static propTypes = {
- color: PropTypes.string,
- }
-
state = { activeItem: 'home' }
handleItemClick = (e, { name }) => this.setState({ activeItem: name })
diff --git a/docs/src/examples/elements/Divider/Types/DividerExampleHorizontalTable.js b/docs/src/examples/elements/Divider/Types/DividerExampleHorizontalTable.js
index 03b5474b8a..64b1a7f3d9 100644
--- a/docs/src/examples/elements/Divider/Types/DividerExampleHorizontalTable.js
+++ b/docs/src/examples/elements/Divider/Types/DividerExampleHorizontalTable.js
@@ -2,7 +2,7 @@ import React from 'react'
import { Divider, Header, Icon, Table } from 'semantic-ui-react'
const DividerExampleHorizontalTable = () => (
-
+ <>
@@ -42,7 +42,7 @@ const DividerExampleHorizontalTable = () => (
-
+ >
)
export default DividerExampleHorizontalTable
diff --git a/docs/src/examples/elements/Divider/Variations/DividerExampleHidden.js b/docs/src/examples/elements/Divider/Variations/DividerExampleHidden.js
index 41fcb2f48a..b7ea28ebf5 100644
--- a/docs/src/examples/elements/Divider/Variations/DividerExampleHidden.js
+++ b/docs/src/examples/elements/Divider/Variations/DividerExampleHidden.js
@@ -2,7 +2,7 @@ import React from 'react'
import { Divider, Header, Image } from 'semantic-ui-react'
const DividerExampleHidden = () => (
-
+ <>
@@ -10,7 +10,7 @@ const DividerExampleHidden = () => (
-
+ >
)
export default DividerExampleHidden
diff --git a/docs/src/examples/elements/Icon/Groups/IconExampleCornerGroupPositions.js b/docs/src/examples/elements/Icon/Groups/IconExampleCornerGroupPositions.js
index 2d2e7f6c6e..5ee721ebd0 100644
--- a/docs/src/examples/elements/Icon/Groups/IconExampleCornerGroupPositions.js
+++ b/docs/src/examples/elements/Icon/Groups/IconExampleCornerGroupPositions.js
@@ -2,7 +2,7 @@ import React from 'react'
import { Icon } from 'semantic-ui-react'
const IconExampleCornerGroupPositions = () => (
-
+ <>
@@ -22,7 +22,7 @@ const IconExampleCornerGroupPositions = () => (
-
+ >
)
export default IconExampleCornerGroupPositions
diff --git a/docs/src/examples/elements/Input/Usage/InputExampleDatalist.js b/docs/src/examples/elements/Input/Usage/InputExampleDatalist.js
index e2ddf96ec7..512010fd82 100644
--- a/docs/src/examples/elements/Input/Usage/InputExampleDatalist.js
+++ b/docs/src/examples/elements/Input/Usage/InputExampleDatalist.js
@@ -5,9 +5,9 @@ const InputExampleDatalist = () => (
-
-
-
+ English
+ Chinese
+ Dutch
)
diff --git a/docs/src/examples/elements/Placeholder/Types/PlaceholderExampleCard.js b/docs/src/examples/elements/Placeholder/Types/PlaceholderExampleCard.js
index c69092c707..b29ae3f639 100644
--- a/docs/src/examples/elements/Placeholder/Types/PlaceholderExampleCard.js
+++ b/docs/src/examples/elements/Placeholder/Types/PlaceholderExampleCard.js
@@ -1,5 +1,5 @@
import _ from 'lodash'
-import React, { Component, Fragment } from 'react'
+import React, { Component } from 'react'
import { Button, Card, Divider, Image, Placeholder } from 'semantic-ui-react'
const cards = [
@@ -38,7 +38,7 @@ export default class PlaceholderExampleCard extends Component {
const { loading } = this.state
return (
-
+ <>
Simulate loading
@@ -67,11 +67,11 @@ export default class PlaceholderExampleCard extends Component {
) : (
-
+ <>
{card.header}
{card.date}
{card.description}
-
+ >
)}
@@ -84,7 +84,7 @@ export default class PlaceholderExampleCard extends Component {
))}
-
+ >
)
}
}
diff --git a/docs/src/examples/modules/Dropdown/Types/DropdownExampleFloating.js b/docs/src/examples/modules/Dropdown/Types/DropdownExampleFloating.js
index 2dfc9a0f36..c920fc9295 100644
--- a/docs/src/examples/modules/Dropdown/Types/DropdownExampleFloating.js
+++ b/docs/src/examples/modules/Dropdown/Types/DropdownExampleFloating.js
@@ -14,7 +14,7 @@ const DropdownExampleFloating = () => (
className='button icon'
floating
options={options}
- trigger={ }
+ trigger={<>>}
/>
)
diff --git a/docs/src/examples/modules/Dropdown/Usage/DropdownExampleCloseOnBlur.js b/docs/src/examples/modules/Dropdown/Usage/DropdownExampleCloseOnBlur.js
index bee2310ada..fcb3441f87 100644
--- a/docs/src/examples/modules/Dropdown/Usage/DropdownExampleCloseOnBlur.js
+++ b/docs/src/examples/modules/Dropdown/Usage/DropdownExampleCloseOnBlur.js
@@ -41,7 +41,7 @@ const friendOptions = [
]
const DropdownExampleCloseOnBlur = () => (
-
+ <>
(
selection
options={friendOptions}
/>
-
+ >
)
export default DropdownExampleCloseOnBlur
diff --git a/docs/src/examples/modules/Dropdown/Usage/DropdownExampleCloseOnChange.js b/docs/src/examples/modules/Dropdown/Usage/DropdownExampleCloseOnChange.js
index c052c446c4..9ab0d08f2d 100644
--- a/docs/src/examples/modules/Dropdown/Usage/DropdownExampleCloseOnChange.js
+++ b/docs/src/examples/modules/Dropdown/Usage/DropdownExampleCloseOnChange.js
@@ -10,7 +10,7 @@ const getOptions = (number, prefix = 'Choice ') =>
}))
const DropdownExampleCloseOnChange = () => (
-
+ <>
(
options={getOptions(5)}
placeholder='I stay open on change'
/>
-
+ >
)
export default DropdownExampleCloseOnChange
diff --git a/docs/src/examples/modules/Dropdown/Usage/DropdownExampleCloseOnEscape.js b/docs/src/examples/modules/Dropdown/Usage/DropdownExampleCloseOnEscape.js
index bff4daf458..59026c8e05 100644
--- a/docs/src/examples/modules/Dropdown/Usage/DropdownExampleCloseOnEscape.js
+++ b/docs/src/examples/modules/Dropdown/Usage/DropdownExampleCloseOnEscape.js
@@ -41,7 +41,7 @@ const friendOptions = [
]
const DropdownExampleCloseOnEscape = () => (
-
+ <>
(
selection
options={friendOptions}
/>
-
+ >
)
export default DropdownExampleCloseOnEscape
diff --git a/docs/src/examples/modules/Dropdown/Usage/DropdownExampleOpenOnFocus.js b/docs/src/examples/modules/Dropdown/Usage/DropdownExampleOpenOnFocus.js
index f6cfc74e69..5dd2465798 100644
--- a/docs/src/examples/modules/Dropdown/Usage/DropdownExampleOpenOnFocus.js
+++ b/docs/src/examples/modules/Dropdown/Usage/DropdownExampleOpenOnFocus.js
@@ -41,7 +41,7 @@ const friendOptions = [
]
const DropdownExampleOpenOnFocus = () => (
-
+ <>
(
selection
options={friendOptions}
/>
-
+ >
)
export default DropdownExampleOpenOnFocus
diff --git a/docs/src/examples/modules/Popup/Types/PopupExampleHeader.js b/docs/src/examples/modules/Popup/Types/PopupExampleHeader.js
index 4c9ae76985..a2ec245e72 100644
--- a/docs/src/examples/modules/Popup/Types/PopupExampleHeader.js
+++ b/docs/src/examples/modules/Popup/Types/PopupExampleHeader.js
@@ -20,7 +20,7 @@ const users = [
]
const PopupExampleHeader = () => (
-
+ <>
{users.map((user) => (
(
trigger={ }
/>
))}
-
+ >
)
export default PopupExampleHeader
diff --git a/docs/src/examples/modules/Popup/Usage/PopupExampleContext.js b/docs/src/examples/modules/Popup/Usage/PopupExampleContext.js
index eceb732e15..fb481a8927 100644
--- a/docs/src/examples/modules/Popup/Usage/PopupExampleContext.js
+++ b/docs/src/examples/modules/Popup/Usage/PopupExampleContext.js
@@ -6,7 +6,7 @@ class PopupExampleContextControlled extends React.Component {
render() {
return (
-
+ <>
}
context={this.contextRef}
@@ -15,7 +15,7 @@ class PopupExampleContextControlled extends React.Component {
/>
---------->
here
-
+ >
)
}
}
diff --git a/docs/src/examples/modules/Popup/Usage/PopupExampleContextControlled.js b/docs/src/examples/modules/Popup/Usage/PopupExampleContextControlled.js
index 6696d7cb03..73d74637e7 100644
--- a/docs/src/examples/modules/Popup/Usage/PopupExampleContextControlled.js
+++ b/docs/src/examples/modules/Popup/Usage/PopupExampleContextControlled.js
@@ -1,15 +1,15 @@
-import React, { createRef, Fragment } from 'react'
+import React from 'react'
import { Button, Popup } from 'semantic-ui-react'
class PopupExampleContextControlled extends React.Component {
state = {}
- contextRef = createRef()
+ contextRef = React.createRef()
toggle = () => this.setState((prevState) => ({ open: !prevState.open }))
render() {
return (
-
+ <>
---------->
here
-
+ >
)
}
}
diff --git a/docs/src/examples/modules/Popup/Usage/PopupExampleControlled.js b/docs/src/examples/modules/Popup/Usage/PopupExampleControlled.js
index 41b060bf03..bb60a4a171 100644
--- a/docs/src/examples/modules/Popup/Usage/PopupExampleControlled.js
+++ b/docs/src/examples/modules/Popup/Usage/PopupExampleControlled.js
@@ -25,8 +25,9 @@ class PopupExampleControlled extends React.Component {
}
- content={`This message will self-destruct in ${timeoutLength /
- 1000} seconds!`}
+ content={`This message will self-destruct in ${
+ timeoutLength / 1000
+ } seconds!`}
on='click'
open={this.state.isOpen}
onClose={this.handleClose}
diff --git a/docs/src/examples/modules/Popup/Usage/PopupExampleHideOnScroll.js b/docs/src/examples/modules/Popup/Usage/PopupExampleHideOnScroll.js
index 2f1ae0cc67..e085afc247 100644
--- a/docs/src/examples/modules/Popup/Usage/PopupExampleHideOnScroll.js
+++ b/docs/src/examples/modules/Popup/Usage/PopupExampleHideOnScroll.js
@@ -2,7 +2,7 @@ import React from 'react'
import { Button, Popup } from 'semantic-ui-react'
const PopupExampleHideOnScroll = () => (
-
+ <>
Click me}
content='Hide the popup on any scroll event'
@@ -14,7 +14,7 @@ const PopupExampleHideOnScroll = () => (
content='Hide the popup on any scroll event'
hideOnScroll
/>
-
+ >
)
export default PopupExampleHideOnScroll
diff --git a/docs/src/examples/modules/Popup/Usage/PopupExampleOffset.js b/docs/src/examples/modules/Popup/Usage/PopupExampleOffset.js
index ae24a0991a..a7cb9ed843 100644
--- a/docs/src/examples/modules/Popup/Usage/PopupExampleOffset.js
+++ b/docs/src/examples/modules/Popup/Usage/PopupExampleOffset.js
@@ -2,7 +2,7 @@ import React from 'react'
import { Icon, Popup } from 'semantic-ui-react'
const PopupExampleOffset = () => (
-
+ <>
}
content='Way off to the left'
@@ -27,7 +27,7 @@ const PopupExampleOffset = () => (
offset='0, 50px'
position='bottom center'
/>
-
+ >
)
export default PopupExampleOffset
diff --git a/docs/src/examples/modules/Popup/Usage/PopupExamplePopperDependencies.js b/docs/src/examples/modules/Popup/Usage/PopupExamplePopperDependencies.js
index 7f6ae44cc4..61cfe77d7b 100644
--- a/docs/src/examples/modules/Popup/Usage/PopupExamplePopperDependencies.js
+++ b/docs/src/examples/modules/Popup/Usage/PopupExamplePopperDependencies.js
@@ -40,10 +40,10 @@ const PopupExamplePopperDependencies = () => {
) : (
-
+ <>
{data.description}
-
+ >
)}
)
diff --git a/docs/src/examples/modules/Popup/Variations/PopupExampleInverted.js b/docs/src/examples/modules/Popup/Variations/PopupExampleInverted.js
index 0f62b9ec70..29eaecd0f1 100644
--- a/docs/src/examples/modules/Popup/Variations/PopupExampleInverted.js
+++ b/docs/src/examples/modules/Popup/Variations/PopupExampleInverted.js
@@ -2,7 +2,7 @@ import React from 'react'
import { Button, Icon, Popup } from 'semantic-ui-react'
const PopupExampleInverted = () => (
-
+ <>
}
content='Hello. This is an inverted popup'
@@ -13,7 +13,7 @@ const PopupExampleInverted = () => (
content='Hello. This is an inverted popup'
inverted
/>
-
+ >
)
export default PopupExampleInverted
diff --git a/docs/src/examples/modules/Popup/Variations/PopupExampleSize.js b/docs/src/examples/modules/Popup/Variations/PopupExampleSize.js
index 13c2fd811f..d6a49dd33f 100644
--- a/docs/src/examples/modules/Popup/Variations/PopupExampleSize.js
+++ b/docs/src/examples/modules/Popup/Variations/PopupExampleSize.js
@@ -2,7 +2,7 @@ import React from 'react'
import { Icon, Popup } from 'semantic-ui-react'
const PopupExampleSize = () => (
-
+ <>
}
content='Hello. This is a mini popup'
@@ -28,7 +28,7 @@ const PopupExampleSize = () => (
content='Hello. This is a huge popup'
size='huge'
/>
-
+ >
)
export default PopupExampleSize
diff --git a/docs/src/examples/modules/Popup/Variations/PopupExampleWide.js b/docs/src/examples/modules/Popup/Variations/PopupExampleWide.js
index bef46603d1..175cc98c6b 100644
--- a/docs/src/examples/modules/Popup/Variations/PopupExampleWide.js
+++ b/docs/src/examples/modules/Popup/Variations/PopupExampleWide.js
@@ -2,7 +2,7 @@ import React from 'react'
import { Icon, Popup } from 'semantic-ui-react'
const PopupExampleWide = () => (
-
+ <>
}>
Hello. This is a regular pop-up which does not allow for lots of content.
You cannot fit a lot of words here as the paragraphs will be pretty
@@ -18,7 +18,7 @@ const PopupExampleWide = () => (
additional space. You can fit a lot of words here and the paragraphs will
be pretty wide.
-
+ >
)
export default PopupExampleWide
diff --git a/docs/src/layouts/HomepageLayout.js b/docs/src/layouts/HomepageLayout.js
index daba3b17e5..9e49cf6275 100644
--- a/docs/src/layouts/HomepageLayout.js
+++ b/docs/src/layouts/HomepageLayout.js
@@ -1,3 +1,5 @@
+/* eslint-disable max-classes-per-file */
+
import PropTypes from 'prop-types'
import React, { Component } from 'react'
import {
diff --git a/gulp/plugins/gulp-example-menu.js b/gulp/plugins/gulp-example-menu.js
index 96fcb1bf69..650a4d670c 100644
--- a/gulp/plugins/gulp-example-menu.js
+++ b/gulp/plugins/gulp-example-menu.js
@@ -62,9 +62,10 @@ export default () => {
function endStream(cb) {
_.forEach(exampleFilesByDisplayName, (contents, displayName) => {
- const sortedContents = _.sortBy(contents, ['order', 'sectionName']).map(
- ({ sectionName, examples }) => ({ sectionName, examples }),
- )
+ const sortedContents = _.sortBy(contents, [
+ 'order',
+ 'sectionName',
+ ]).map(({ sectionName, examples }) => ({ sectionName, examples }))
const file = new Vinyl({
path: `./${displayName}.examples.json`,
diff --git a/gulp/plugins/gulp-example-source.js b/gulp/plugins/gulp-example-source.js
index 6a732a899f..9d48655ee0 100644
--- a/gulp/plugins/gulp-example-source.js
+++ b/gulp/plugins/gulp-example-source.js
@@ -23,10 +23,7 @@ export default () => {
}
try {
- const sourceName = _.split(file.path, path.sep)
- .slice(-4)
- .join('/')
- .slice(0, -3)
+ const sourceName = _.split(file.path, path.sep).slice(-4).join('/').slice(0, -3)
exampleSources[sourceName] = file.contents.toString()
cb()
diff --git a/gulp/tasks/docs.js b/gulp/tasks/docs.js
index 77ee5c952a..1be6ecbe1c 100644
--- a/gulp/tasks/docs.js
+++ b/gulp/tasks/docs.js
@@ -28,10 +28,7 @@ const handleWatchChange = (filename) =>
* @returns {String}
*/
const toUniversalGlob = (directory, glob) => {
- const relative = path
- .relative(process.cwd(), directory)
- .split(path.sep)
- .join('/')
+ const relative = path.relative(process.cwd(), directory).split(path.sep).join('/')
return `${relative}/${glob}`
}
diff --git a/index.d.ts b/index.d.ts
index e7f6988eab..9d5addd4f0 100644
--- a/index.d.ts
+++ b/index.d.ts
@@ -38,7 +38,11 @@ export {
StrictResponsiveProps,
} from './dist/commonjs/addons/Responsive'
export { default as Select, SelectProps } from './dist/commonjs/addons/Select'
-export { default as TextArea, TextAreaProps, StrictTextAreaProps } from './dist/commonjs/addons/TextArea'
+export {
+ default as TextArea,
+ TextAreaProps,
+ StrictTextAreaProps,
+} from './dist/commonjs/addons/TextArea'
export {
default as TransitionablePortal,
TransitionablePortalProps,
@@ -625,11 +629,7 @@ export {
StrictCardMetaProps,
} from './dist/commonjs/views/Card/CardMeta'
-export {
- default as Comment,
- CommentProps,
- StrictCommentProps,
-} from './dist/commonjs/views/Comment'
+export { default as Comment, CommentProps, StrictCommentProps } from './dist/commonjs/views/Comment'
export {
default as CommentAction,
CommentActionProps,
diff --git a/karma.conf.babel.js b/karma.conf.babel.js
index 7a31de2f0e..4d84845012 100644
--- a/karma.conf.babel.js
+++ b/karma.conf.babel.js
@@ -1,10 +1,10 @@
import fs from 'fs'
-import { executablePath } from 'puppeteer'
+import puppeteer from 'puppeteer'
import config from './config'
import webpackConfig from './webpack.karma.config'
-process.env.CHROME_BIN = executablePath()
+process.env.CHROME_BIN = puppeteer.executablePath()
const { paths } = config
@@ -69,9 +69,6 @@ export default (karmaConfig) => {
],
formatError,
frameworks: ['mocha'],
- mochaReporter: {
- output: 'minimal',
- },
// make karma serve all files that the web server does: /* => /docs/app/*
proxies: fs.readdirSync(paths.docsPublic()).reduce((acc, file) => {
const isDir = fs.statSync(paths.docsPublic(file)).isDirectory()
diff --git a/package.json b/package.json
index da67d3126f..2f061aa2e6 100644
--- a/package.json
+++ b/package.json
@@ -21,12 +21,12 @@
"build:dist": "gulp build:dist",
"prebuild:size": "gulp build:dist:es",
"build:size": "node bundle-size/bundle.js",
- "ci": "yarn tsd:lint && yarn tsd:test && yarn lint && yarn test",
+ "ci": "yarn tsd:test && yarn lint && yarn test",
"predeploy:docs": "cross-env NODE_ENV=production yarn build:docs && gulp build:docs:cname",
"deploy:changelog": "git add CHANGELOG.md && git commit -m \"docs(changelog): update changelog [ci skip]\" && git push",
"deploy:docs": "gulp deploy:docs",
"postdeploy:docs": "yarn build:changelog && yarn deploy:changelog",
- "lint": "cross-env NODE_ENV=production eslint .",
+ "lint": "cross-env NODE_ENV=production eslint . --ext .js,.ts,.tsx",
"lint:fix": "yarn lint --fix",
"prettier": "prettier --list-different \"**/*.{js,jsx,ts,tsx}\"",
"prettier:fix": "prettier --write \"**/*.{js,jsx,ts,tsx}\"",
@@ -42,9 +42,7 @@
"test": "cross-env NODE_ENV=test node -r @babel/register ./node_modules/karma/bin/karma start karma.conf.babel.js",
"test:watch": "yarn test --no-single-run",
"test:umd": "gulp build:dist:umd && node test/umd.js",
- "tsd:lint": "tslint \"./index.d.ts\" \"./src/**/*.d.ts\" \"./src/**/*.tsx\" \"./test/**/*.d.ts\" \"./test/**/*.tsx\"",
- "tsd:lint:fix": "yarn tsd:lint --fix",
- "tsd:test": "gulp build:dist:commonjs:tsd && tsc -p ./ && rm test/typings.js"
+ "tsd:test": "gulp build:dist:commonjs:tsd && tsc -p ./ && rimraf test/typings.js"
},
"husky": {
"hooks": {
@@ -53,7 +51,7 @@
}
},
"lint-staged": {
- "**/*.{js,jsx}": [
+ "**/*.{js,jsx,ts,tsx}": [
"prettier --write",
"eslint --fix",
"git add"
@@ -61,11 +59,6 @@
"**/*.mdx": [
"prettier --parser mdx --write",
"git add"
- ],
- "**/*.{ts,tsx}": [
- "prettier --write",
- "tslint --fix",
- "git add"
]
},
"repository": {
@@ -79,81 +72,84 @@
},
"homepage": "https://github.com/Semantic-Org/Semantic-UI-React#readme",
"dependencies": {
- "@babel/runtime": "^7.1.2",
+ "@babel/runtime": "^7.10.5",
"@semantic-ui-react/event-stack": "^3.1.0",
"@stardust-ui/react-component-event-listener": "~0.38.0",
"@stardust-ui/react-component-ref": "~0.38.0",
"classnames": "^2.2.6",
- "keyboard-key": "^1.0.4",
- "lodash": "^4.17.15",
+ "keyboard-key": "^1.1.0",
+ "lodash": "^4.17.19",
"prop-types": "^15.7.2",
"react-is": "^16.8.6",
- "react-popper": "^1.3.4",
+ "react-popper": "^1.3.7",
"shallowequal": "^1.1.0"
},
"devDependencies": {
- "@babel/cli": "^7.4.4",
- "@babel/core": "^7.4.5",
- "@babel/plugin-proposal-class-properties": "^7.4.4",
- "@babel/plugin-proposal-export-default-from": "^7.2.0",
- "@babel/plugin-proposal-export-namespace-from": "^7.2.0",
- "@babel/plugin-syntax-dynamic-import": "^7.2.0",
- "@babel/plugin-transform-runtime": "^7.4.4",
- "@babel/preset-env": "^7.4.5",
- "@babel/preset-env-standalone": "7.4.5",
- "@babel/preset-react": "^7.0.0",
- "@babel/register": "^7.4.4",
- "@babel/standalone": "^7.4.5",
+ "@babel/cli": "^7.10.5",
+ "@babel/core": "^7.10.5",
+ "@babel/plugin-proposal-class-properties": "^7.10.4",
+ "@babel/plugin-proposal-export-default-from": "^7.10.4",
+ "@babel/plugin-proposal-export-namespace-from": "^7.10.4",
+ "@babel/plugin-syntax-dynamic-import": "^7.8.3",
+ "@babel/plugin-transform-runtime": "^7.10.5",
+ "@babel/preset-env": "^7.10.4",
+ "@babel/preset-env-standalone": "7.8.3",
+ "@babel/preset-react": "^7.10.4",
+ "@babel/register": "^7.10.5",
+ "@babel/standalone": "^7.10.5",
"@mdx-js/loader": "^0.20.3",
"@size-limit/file": "^4.5.5",
"@stardust-ui/docs-components": "^0.34.1",
- "@types/react": "^16.8.25",
- "anchor-js": "^4.2.0",
- "babel-eslint": "^10.0.2",
- "babel-loader": "^8.0.6",
- "babel-plugin-filter-imports": "^3.0.0",
- "babel-plugin-istanbul": "^5.1.4",
+ "@types/react": "^16.9.43",
+ "@typescript-eslint/eslint-plugin": "^3.7.1",
+ "@typescript-eslint/parser": "^3.7.1",
+ "anchor-js": "^4.2.2",
+ "babel-eslint": "^10.1.0",
+ "babel-loader": "^8.1.0",
+ "babel-plugin-filter-imports": "^4.0.0",
+ "babel-plugin-istanbul": "^6.0.0",
"babel-plugin-lodash": "^3.3.4",
- "babel-plugin-transform-react-handled-props": "^2.0.0",
+ "babel-plugin-transform-react-handled-props": "^2.1.0",
"babel-plugin-transform-react-remove-prop-types": "^0.4.24",
"babel-plugin-universal-import": "^2.0.2",
"chai": "^4.2.0",
"chai-enzyme": "^1.0.0-beta.1",
- "copy-to-clipboard": "^3.0.8",
- "cross-env": "^5.2.0",
+ "copy-to-clipboard": "^3.3.1",
+ "cross-env": "^7.0.2",
"debug": "^4.1.1",
"dirty-chai": "^2.0.1",
"doctoc": "^1.4.0",
"doctrine": "^3.0.0",
- "enzyme": "^3.10.0",
- "enzyme-adapter-react-16": "^1.14.0",
- "eslint": "^5.15.2",
- "eslint-config-airbnb": "^17.1.0",
- "eslint-config-prettier": "^4.1.0",
- "eslint-plugin-import": "^2.16.0",
- "eslint-plugin-jsx-a11y": "^6.2.1",
- "eslint-plugin-mocha": "^5.3.0",
- "eslint-plugin-react": "^7.12.4",
+ "enzyme": "^3.11.0",
+ "enzyme-adapter-react-16": "^1.15.2",
+ "eslint": "^7.5.0",
+ "eslint-config-airbnb": "^18.2.0",
+ "eslint-config-prettier": "^6.11.0",
+ "eslint-plugin-import": "^2.22.0",
+ "eslint-plugin-jsx-a11y": "^6.3.1",
+ "eslint-plugin-mocha": "^7.0.1",
+ "eslint-plugin-react": "^7.20.4",
+ "eslint-plugin-react-hooks": "^4.0.8",
"faker": "^4.1.0",
- "gh-pages": "^2.0.1",
- "gulp": "^4.0.0",
- "gulp-load-plugins": "^1.5.0",
+ "gh-pages": "^3.1.0",
+ "gulp": "^4.0.2",
+ "gulp-load-plugins": "^2.0.3",
"gulp-util": "^3.0.8",
- "husky": "^1.3.1",
- "imports-loader": "^0.8.0",
- "karma": "^4.0.1",
- "karma-chrome-launcher": "^2.2.0",
+ "husky": "^4.2.5",
+ "imports-loader": "^1.1.0",
+ "karma": "^5.1.0",
+ "karma-chrome-launcher": "^3.1.0",
"karma-cli": "^2.0.0",
- "karma-coverage": "^1.1.2",
- "karma-mocha": "^1.3.0",
+ "karma-coverage": "^2.0.2",
+ "karma-mocha": "^2.0.1",
"karma-mocha-reporter": "^2.2.5",
- "karma-webpack": "^4.0.0-rc.6",
- "leven": "^3.0.0",
- "lint-staged": "^8.1.5",
- "mocha": "^6.0.2",
- "prettier": "^1.18.2",
- "puppeteer": "^1.7.0",
- "raw-loader": "^1.0.0",
+ "karma-webpack": "^4.0.2",
+ "leven": "^3.1.0",
+ "lint-staged": "^10.2.11",
+ "mocha": "^8.0.1",
+ "prettier": "^2.0.5",
+ "puppeteer": "^5.2.1",
+ "raw-loader": "^4.0.1",
"react": "^16.9.0",
"react-ace": "^6.4.0",
"react-codesandboxer": "^3.1.3",
@@ -166,27 +162,25 @@
"react-source-render": "^3.0.0-5",
"react-static": "^5.9.7",
"react-static-routes": "^1.0.0",
- "react-test-renderer": "^16.9.0",
+ "react-test-renderer": "^16.13.1",
"react-universal-component": "^3.0.3",
- "rimraf": "^2.6.3",
+ "rimraf": "^3.0.2",
"satisfied": "^1.1.2",
"semantic-ui-css": "^2.4.1",
"simulant": "^0.2.2",
- "sinon": "^7.2.7",
- "sinon-chai": "^3.3.0",
+ "sinon": "^9.0.2",
+ "sinon-chai": "^3.5.0",
"size-limit": "^4.5.5",
"ta-scripts": "^2.5.2",
- "terser-webpack-plugin": "^3.0.7",
+ "terser-webpack-plugin": "^3.0.8",
"terser-webpack-plugin-legacy": "^1.2.3",
"through2": "^3.0.1",
- "tslint": "^5.14.0",
- "tslint-config-airbnb": "^5.11.1",
- "typescript": "^3.3.3333",
+ "typescript": "^3.9.5",
"vinyl": "^2.2.0",
"webpack": "^4.28.4",
"webpack-bundle-analyzer": "^3.8.0",
- "webpack-cli": "^3.2.1",
- "webpack-dev-middleware": "^3.5.0"
+ "webpack-cli": "^3.3.12",
+ "webpack-dev-middleware": "^3.7.2"
},
"peerDependencies": {
"react": "^16.8.0",
diff --git a/src/addons/Confirm/Confirm.js b/src/addons/Confirm/Confirm.js
index ac02ac5f82..99d285f27e 100644
--- a/src/addons/Confirm/Confirm.js
+++ b/src/addons/Confirm/Confirm.js
@@ -11,49 +11,6 @@ import Modal from '../../modules/Modal'
* @see Modal
*/
class Confirm extends Component {
- static propTypes = {
- /** The cancel button text. */
- cancelButton: customPropTypes.itemShorthand,
-
- /** The OK button text. */
- confirmButton: customPropTypes.itemShorthand,
-
- /** The ModalContent text. */
- content: customPropTypes.itemShorthand,
-
- /** The ModalHeader text. */
- header: customPropTypes.itemShorthand,
-
- /**
- * Called when the Modal is closed without clicking confirm.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onCancel: PropTypes.func,
-
- /**
- * Called when the OK button is clicked.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onConfirm: PropTypes.func,
-
- /** Whether or not the modal is visible. */
- open: PropTypes.bool,
-
- /** A Confirm can vary in size */
- size: PropTypes.oneOf(['mini', 'tiny', 'small', 'large', 'fullscreen']),
- }
-
- static defaultProps = {
- cancelButton: 'Cancel',
- confirmButton: 'OK',
- content: 'Are you sure?',
- size: 'small',
- }
-
handleCancel = (e) => {
_.invoke(this.props, 'onCancel', e, this.props)
}
@@ -102,4 +59,47 @@ class Confirm extends Component {
}
}
+Confirm.propTypes = {
+ /** The cancel button text. */
+ cancelButton: customPropTypes.itemShorthand,
+
+ /** The OK button text. */
+ confirmButton: customPropTypes.itemShorthand,
+
+ /** The ModalContent text. */
+ content: customPropTypes.itemShorthand,
+
+ /** The ModalHeader text. */
+ header: customPropTypes.itemShorthand,
+
+ /**
+ * Called when the Modal is closed without clicking confirm.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onCancel: PropTypes.func,
+
+ /**
+ * Called when the OK button is clicked.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onConfirm: PropTypes.func,
+
+ /** Whether or not the modal is visible. */
+ open: PropTypes.bool,
+
+ /** A Confirm can vary in size */
+ size: PropTypes.oneOf(['mini', 'tiny', 'small', 'large', 'fullscreen']),
+}
+
+Confirm.defaultProps = {
+ cancelButton: 'Cancel',
+ confirmButton: 'OK',
+ content: 'Are you sure?',
+ size: 'small',
+}
+
export default Confirm
diff --git a/src/addons/MountNode/MountNode.d.ts b/src/addons/MountNode/MountNode.d.ts
index 629f159f4d..2fd43e5c66 100644
--- a/src/addons/MountNode/MountNode.d.ts
+++ b/src/addons/MountNode/MountNode.d.ts
@@ -12,6 +12,6 @@ export interface StrictMountNodeProps {
node?: HTMLElement | React.Ref
}
-declare class MountNode extends React.Component {}
+declare class MountNode extends React.Component {}
export default MountNode
diff --git a/src/addons/MountNode/MountNode.js b/src/addons/MountNode/MountNode.js
index 703f1f09ac..3ee0c9ba9e 100644
--- a/src/addons/MountNode/MountNode.js
+++ b/src/addons/MountNode/MountNode.js
@@ -12,14 +12,6 @@ const nodeRegistry = new NodeRegistry()
* A component that allows to manage classNames on a DOM node in declarative manner.
*/
export default class MountNode extends Component {
- static propTypes = {
- /** Additional classes. */
- className: PropTypes.string,
-
- /** The DOM node where we will apply class names. Defaults to document.body. */
- node: PropTypes.oneOfType([customPropTypes.domNode, customPropTypes.refObject]),
- }
-
shouldComponentUpdate({ className: nextClassName }) {
const { className: currentClassName } = this.props
@@ -48,3 +40,11 @@ export default class MountNode extends Component {
return null
}
}
+
+MountNode.propTypes = {
+ /** Additional classes. */
+ className: PropTypes.string,
+
+ /** The DOM node where we will apply class names. Defaults to document.body. */
+ node: PropTypes.oneOfType([customPropTypes.domNode, customPropTypes.refObject]),
+}
diff --git a/src/addons/Pagination/Pagination.d.ts b/src/addons/Pagination/Pagination.d.ts
index bda95be718..4233abcee0 100644
--- a/src/addons/Pagination/Pagination.d.ts
+++ b/src/addons/Pagination/Pagination.d.ts
@@ -1,7 +1,7 @@
import * as React from 'react'
import { SemanticShorthandItem } from '../../generic'
-import { default as PaginationItem, PaginationItemProps } from './PaginationItem'
+import PaginationItem, { PaginationItemProps } from './PaginationItem'
export interface PaginationProps extends StrictPaginationProps {
[key: string]: any
@@ -56,7 +56,7 @@ export interface StrictPaginationProps {
totalPages: number | string
}
-declare class Pagination extends React.Component {
+declare class Pagination extends React.Component {
static Item: typeof PaginationItem
}
diff --git a/src/addons/Pagination/Pagination.js b/src/addons/Pagination/Pagination.js
index 42d62dae42..eabc79c561 100644
--- a/src/addons/Pagination/Pagination.js
+++ b/src/addons/Pagination/Pagination.js
@@ -15,83 +15,6 @@ import PaginationItem from './PaginationItem'
* A component to render a pagination.
*/
export default class Pagination extends Component {
- static propTypes = {
- /** A pagination item can have an aria label. */
- 'aria-label': PropTypes.string,
-
- /** Initial activePage value. */
- defaultActivePage: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
-
- /** Index of the currently active page. */
- activePage: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
-
- /** Number of always visible pages at the beginning and end. */
- boundaryRange: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
-
- /** A pagination can be disabled. */
- disabled: PropTypes.bool,
-
- /** A shorthand for PaginationItem. */
- ellipsisItem: customPropTypes.itemShorthand,
-
- /** A shorthand for PaginationItem. */
- firstItem: customPropTypes.itemShorthand,
-
- /** A shorthand for PaginationItem. */
- lastItem: customPropTypes.itemShorthand,
-
- /** A shorthand for PaginationItem. */
- nextItem: customPropTypes.itemShorthand,
-
- /** A shorthand for PaginationItem. */
- pageItem: customPropTypes.itemShorthand,
-
- /** A shorthand for PaginationItem. */
- prevItem: customPropTypes.itemShorthand,
-
- /**
- * Called on change of an active page.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onPageChange: PropTypes.func,
-
- /** Number of always visible pages before and after the current one. */
- siblingRange: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
-
- /** Total number of pages. */
- totalPages: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
- }
-
- static autoControlledProps = ['activePage']
-
- static defaultProps = {
- 'aria-label': 'Pagination Navigation',
- boundaryRange: 1,
- ellipsisItem: '...',
- firstItem: {
- 'aria-label': 'First item',
- content: '«',
- },
- lastItem: {
- 'aria-label': 'Last item',
- content: '»',
- },
- nextItem: {
- 'aria-label': 'Next item',
- content: '⟩',
- },
- pageItem: {},
- prevItem: {
- 'aria-label': 'Previous item',
- content: '⟨',
- },
- siblingRange: 1,
- }
-
- static Item = PaginationItem
-
handleItemClick = (e, { value: nextActivePage }) => {
const { activePage: prevActivePage } = this.state
@@ -148,3 +71,80 @@ export default class Pagination extends Component {
)
}
}
+
+Pagination.propTypes = {
+ /** A pagination item can have an aria label. */
+ 'aria-label': PropTypes.string,
+
+ /** Initial activePage value. */
+ defaultActivePage: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
+
+ /** Index of the currently active page. */
+ activePage: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
+
+ /** Number of always visible pages at the beginning and end. */
+ boundaryRange: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
+
+ /** A pagination can be disabled. */
+ disabled: PropTypes.bool,
+
+ /** A shorthand for PaginationItem. */
+ ellipsisItem: customPropTypes.itemShorthand,
+
+ /** A shorthand for PaginationItem. */
+ firstItem: customPropTypes.itemShorthand,
+
+ /** A shorthand for PaginationItem. */
+ lastItem: customPropTypes.itemShorthand,
+
+ /** A shorthand for PaginationItem. */
+ nextItem: customPropTypes.itemShorthand,
+
+ /** A shorthand for PaginationItem. */
+ pageItem: customPropTypes.itemShorthand,
+
+ /** A shorthand for PaginationItem. */
+ prevItem: customPropTypes.itemShorthand,
+
+ /**
+ * Called on change of an active page.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onPageChange: PropTypes.func,
+
+ /** Number of always visible pages before and after the current one. */
+ siblingRange: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
+
+ /** Total number of pages. */
+ totalPages: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
+}
+
+Pagination.autoControlledProps = ['activePage']
+
+Pagination.defaultProps = {
+ 'aria-label': 'Pagination Navigation',
+ boundaryRange: 1,
+ ellipsisItem: '...',
+ firstItem: {
+ 'aria-label': 'First item',
+ content: '«',
+ },
+ lastItem: {
+ 'aria-label': 'Last item',
+ content: '»',
+ },
+ nextItem: {
+ 'aria-label': 'Next item',
+ content: '⟩',
+ },
+ pageItem: {},
+ prevItem: {
+ 'aria-label': 'Previous item',
+ content: '⟨',
+ },
+ siblingRange: 1,
+}
+
+Pagination.Item = PaginationItem
diff --git a/src/addons/Pagination/PaginationItem.d.ts b/src/addons/Pagination/PaginationItem.d.ts
index 11b2a58661..6131f5be2a 100644
--- a/src/addons/Pagination/PaginationItem.d.ts
+++ b/src/addons/Pagination/PaginationItem.d.ts
@@ -31,6 +31,6 @@ export interface StrictPaginationItemProps {
type?: 'ellipsisItem' | 'firstItem' | 'prevItem' | 'pageItem' | 'nextItem' | 'lastItem'
}
-declare class PaginationItem extends React.Component {}
+declare class PaginationItem extends React.Component {}
export default PaginationItem
diff --git a/src/addons/Pagination/PaginationItem.js b/src/addons/Pagination/PaginationItem.js
index a02c2d1786..27efdf8884 100644
--- a/src/addons/Pagination/PaginationItem.js
+++ b/src/addons/Pagination/PaginationItem.js
@@ -10,40 +10,6 @@ import MenuItem from '../../collections/Menu/MenuItem'
* An item of a pagination.
*/
class PaginationItem extends Component {
- static propTypes = {
- /** A pagination item can be active. */
- active: PropTypes.bool,
-
- /** A pagination item can be disabled. */
- disabled: PropTypes.bool,
-
- /**
- * Called on click.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onClick: PropTypes.func,
-
- /**
- * Called on key down.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onKeyDown: PropTypes.func,
-
- /** A pagination should have a type. */
- type: PropTypes.oneOf([
- 'ellipsisItem',
- 'firstItem',
- 'prevItem',
- 'pageItem',
- 'nextItem',
- 'lastItem',
- ]),
- }
-
handleClick = (e) => {
_.invoke(this.props, 'onClick', e, this.props)
}
@@ -77,6 +43,40 @@ class PaginationItem extends Component {
}
}
+PaginationItem.propTypes = {
+ /** A pagination item can be active. */
+ active: PropTypes.bool,
+
+ /** A pagination item can be disabled. */
+ disabled: PropTypes.bool,
+
+ /**
+ * Called on click.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onClick: PropTypes.func,
+
+ /**
+ * Called on key down.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onKeyDown: PropTypes.func,
+
+ /** A pagination should have a type. */
+ type: PropTypes.oneOf([
+ 'ellipsisItem',
+ 'firstItem',
+ 'prevItem',
+ 'pageItem',
+ 'nextItem',
+ 'lastItem',
+ ]),
+}
+
PaginationItem.create = createShorthandFactory(PaginationItem, (content) => ({ content }))
export default PaginationItem
diff --git a/src/addons/Portal/Portal.d.ts b/src/addons/Portal/Portal.d.ts
index 007c7fac41..7c3e00cbd1 100644
--- a/src/addons/Portal/Portal.d.ts
+++ b/src/addons/Portal/Portal.d.ts
@@ -1,5 +1,5 @@
import * as React from 'react'
-import { default as PortalInner } from './PortalInner'
+import PortalInner from './PortalInner'
export interface PortalProps extends StrictPortalProps {
[key: string]: any
@@ -97,7 +97,7 @@ export interface StrictPortalProps {
triggerRef?: React.Ref
}
-declare class Portal extends React.Component {
+declare class Portal extends React.Component {
static Inner: typeof PortalInner
}
diff --git a/src/addons/Portal/Portal.js b/src/addons/Portal/Portal.js
index 2199318ea1..c9b4dd9847 100644
--- a/src/addons/Portal/Portal.js
+++ b/src/addons/Portal/Portal.js
@@ -24,109 +24,6 @@ const debug = makeDebugger('portal')
* @see Confirm
*/
class Portal extends Component {
- static propTypes = {
- /** Primary content. */
- children: PropTypes.node.isRequired,
-
- /** Controls whether or not the portal should close when the document is clicked. */
- closeOnDocumentClick: PropTypes.bool,
-
- /** Controls whether or not the portal should close when escape is pressed is displayed. */
- closeOnEscape: PropTypes.bool,
-
- /**
- * Controls whether or not the portal should close when mousing out of the portal.
- * NOTE: This will prevent `closeOnTriggerMouseLeave` when mousing over the
- * gap from the trigger to the portal.
- */
- closeOnPortalMouseLeave: PropTypes.bool,
-
- /** Controls whether or not the portal should close on blur of the trigger. */
- closeOnTriggerBlur: PropTypes.bool,
-
- /** Controls whether or not the portal should close on click of the trigger. */
- closeOnTriggerClick: PropTypes.bool,
-
- /** Controls whether or not the portal should close when mousing out of the trigger. */
- closeOnTriggerMouseLeave: PropTypes.bool,
-
- /** Initial value of open. */
- defaultOpen: PropTypes.bool,
-
- /** Event pool namespace that is used to handle component events */
- eventPool: PropTypes.string,
-
- /** The node where the portal should mount. */
- mountNode: PropTypes.any,
-
- /** Milliseconds to wait before opening on mouse over */
- mouseEnterDelay: PropTypes.number,
-
- /** Milliseconds to wait before closing on mouse leave */
- mouseLeaveDelay: PropTypes.number,
-
- /**
- * Called when a close event happens
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onClose: PropTypes.func,
-
- /**
- * Called when the portal is mounted on the DOM.
- *
- * @param {null}
- * @param {object} data - All props.
- */
- onMount: PropTypes.func,
-
- /**
- * Called when an open event happens
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onOpen: PropTypes.func,
-
- /**
- * Called when the portal is unmounted from the DOM.
- *
- * @param {null}
- * @param {object} data - All props.
- */
- onUnmount: PropTypes.func,
-
- /** Controls whether or not the portal is displayed. */
- open: PropTypes.bool,
-
- /** Controls whether or not the portal should open when the trigger is clicked. */
- openOnTriggerClick: PropTypes.bool,
-
- /** Controls whether or not the portal should open on focus of the trigger. */
- openOnTriggerFocus: PropTypes.bool,
-
- /** Controls whether or not the portal should open when mousing over the trigger. */
- openOnTriggerMouseEnter: PropTypes.bool,
-
- /** Element to be rendered in-place where the portal is defined. */
- trigger: PropTypes.node,
-
- /** Called with a ref to the trigger node. */
- triggerRef: customPropTypes.ref,
- }
-
- static defaultProps = {
- closeOnDocumentClick: true,
- closeOnEscape: true,
- eventPool: 'default',
- openOnTriggerClick: true,
- }
-
- static autoControlledProps = ['open']
-
- static Inner = PortalInner
-
contentRef = React.createRef()
triggerRef = React.createRef()
latestDocumentMouseDownEvent = null
@@ -387,4 +284,107 @@ class Portal extends Component {
}
}
+Portal.propTypes = {
+ /** Primary content. */
+ children: PropTypes.node.isRequired,
+
+ /** Controls whether or not the portal should close when the document is clicked. */
+ closeOnDocumentClick: PropTypes.bool,
+
+ /** Controls whether or not the portal should close when escape is pressed is displayed. */
+ closeOnEscape: PropTypes.bool,
+
+ /**
+ * Controls whether or not the portal should close when mousing out of the portal.
+ * NOTE: This will prevent `closeOnTriggerMouseLeave` when mousing over the
+ * gap from the trigger to the portal.
+ */
+ closeOnPortalMouseLeave: PropTypes.bool,
+
+ /** Controls whether or not the portal should close on blur of the trigger. */
+ closeOnTriggerBlur: PropTypes.bool,
+
+ /** Controls whether or not the portal should close on click of the trigger. */
+ closeOnTriggerClick: PropTypes.bool,
+
+ /** Controls whether or not the portal should close when mousing out of the trigger. */
+ closeOnTriggerMouseLeave: PropTypes.bool,
+
+ /** Initial value of open. */
+ defaultOpen: PropTypes.bool,
+
+ /** Event pool namespace that is used to handle component events */
+ eventPool: PropTypes.string,
+
+ /** The node where the portal should mount. */
+ mountNode: PropTypes.any,
+
+ /** Milliseconds to wait before opening on mouse over */
+ mouseEnterDelay: PropTypes.number,
+
+ /** Milliseconds to wait before closing on mouse leave */
+ mouseLeaveDelay: PropTypes.number,
+
+ /**
+ * Called when a close event happens
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onClose: PropTypes.func,
+
+ /**
+ * Called when the portal is mounted on the DOM.
+ *
+ * @param {null}
+ * @param {object} data - All props.
+ */
+ onMount: PropTypes.func,
+
+ /**
+ * Called when an open event happens
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onOpen: PropTypes.func,
+
+ /**
+ * Called when the portal is unmounted from the DOM.
+ *
+ * @param {null}
+ * @param {object} data - All props.
+ */
+ onUnmount: PropTypes.func,
+
+ /** Controls whether or not the portal is displayed. */
+ open: PropTypes.bool,
+
+ /** Controls whether or not the portal should open when the trigger is clicked. */
+ openOnTriggerClick: PropTypes.bool,
+
+ /** Controls whether or not the portal should open on focus of the trigger. */
+ openOnTriggerFocus: PropTypes.bool,
+
+ /** Controls whether or not the portal should open when mousing over the trigger. */
+ openOnTriggerMouseEnter: PropTypes.bool,
+
+ /** Element to be rendered in-place where the portal is defined. */
+ trigger: PropTypes.node,
+
+ /** Called with a ref to the trigger node. */
+ triggerRef: customPropTypes.ref,
+}
+
+Portal.defaultProps = {
+ closeOnDocumentClick: true,
+ closeOnEscape: true,
+ eventPool: 'default',
+ openOnTriggerClick: true,
+}
+
+Portal.autoControlledProps = ['open']
+
+Portal.Inner = PortalInner
+
export default Portal
diff --git a/src/addons/Portal/PortalInner.d.ts b/src/addons/Portal/PortalInner.d.ts
index 3edc06d110..9975bec5d5 100644
--- a/src/addons/Portal/PortalInner.d.ts
+++ b/src/addons/Portal/PortalInner.d.ts
@@ -31,6 +31,6 @@ export interface StrictPortalInnerProps {
onUnmount?: (nothing: null, data: PortalInnerProps) => void
}
-declare class PortalInner extends React.Component {}
+declare class PortalInner extends React.Component {}
export default PortalInner
diff --git a/src/addons/Portal/PortalInner.js b/src/addons/Portal/PortalInner.js
index de83fd53f7..7b1588e9db 100644
--- a/src/addons/Portal/PortalInner.js
+++ b/src/addons/Portal/PortalInner.js
@@ -12,33 +12,6 @@ const debug = makeDebugger('portalInner')
* An inner component that allows you to render children outside their parent.
*/
class PortalInner extends Component {
- static propTypes = {
- /** Primary content. */
- children: PropTypes.node.isRequired,
-
- /** Called with a ref to the inner node. */
- innerRef: customPropTypes.ref,
-
- /** The node where the portal should mount. */
- mountNode: PropTypes.any,
-
- /**
- * Called when the portal is mounted on the DOM
- *
- * @param {null}
- * @param {object} data - All props.
- */
- onMount: PropTypes.func,
-
- /**
- * Called when the portal is unmounted from the DOM
- *
- * @param {null}
- * @param {object} data - All props.
- */
- onUnmount: PropTypes.func,
- }
-
componentDidMount() {
debug('componentDidMount()')
_.invoke(this.props, 'onMount', null, this.props)
@@ -62,4 +35,31 @@ class PortalInner extends Component {
}
}
+PortalInner.propTypes = {
+ /** Primary content. */
+ children: PropTypes.node.isRequired,
+
+ /** Called with a ref to the inner node. */
+ innerRef: customPropTypes.ref,
+
+ /** The node where the portal should mount. */
+ mountNode: PropTypes.any,
+
+ /**
+ * Called when the portal is mounted on the DOM
+ *
+ * @param {null}
+ * @param {object} data - All props.
+ */
+ onMount: PropTypes.func,
+
+ /**
+ * Called when the portal is unmounted from the DOM
+ *
+ * @param {null}
+ * @param {object} data - All props.
+ */
+ onUnmount: PropTypes.func,
+}
+
export default PortalInner
diff --git a/src/addons/Responsive/Responsive.d.ts b/src/addons/Responsive/Responsive.d.ts
index ccca7698cf..d20c608469 100644
--- a/src/addons/Responsive/Responsive.d.ts
+++ b/src/addons/Responsive/Responsive.d.ts
@@ -44,7 +44,7 @@ export interface ResponsiveWidthShorthand {
maxWidth?: number | string
}
-declare class Responsive extends React.Component {
+declare class Responsive extends React.Component {
static onlyMobile: ResponsiveWidthShorthand
static onlyTablet: ResponsiveWidthShorthand
static onlyComputer: ResponsiveWidthShorthand
diff --git a/src/addons/Responsive/Responsive.js b/src/addons/Responsive/Responsive.js
index 94db3f8048..cf5bb1de39 100644
--- a/src/addons/Responsive/Responsive.js
+++ b/src/addons/Responsive/Responsive.js
@@ -9,47 +9,6 @@ import isVisible from './lib/isVisible'
* Responsive can control visibility of content.
*/
export default class Responsive extends Component {
- static propTypes = {
- /** An element type to render as (string or function). */
- as: PropTypes.elementType,
-
- /** Primary content. */
- children: PropTypes.node,
-
- /** Fires callbacks immediately after mount. */
- fireOnMount: PropTypes.bool,
-
- /**
- * Called to get width of screen. Defaults to using `window.innerWidth` when in a browser;
- * otherwise, assumes a width of 0.
- */
- getWidth: PropTypes.func,
-
- /** The maximum width at which content will be displayed. */
- maxWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
-
- /** The minimum width at which content will be displayed. */
- minWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
-
- /**
- * Called on update.
- *
- * @param {SyntheticEvent} event - The React SyntheticEvent object
- * @param {object} data - All props and the event value.
- */
- onUpdate: PropTypes.func,
- }
-
- static defaultProps = {
- getWidth: () => (isBrowser() ? window.innerWidth : 0),
- }
-
- static onlyMobile = { minWidth: 320, maxWidth: 767 }
- static onlyTablet = { minWidth: 768, maxWidth: 991 }
- static onlyComputer = { minWidth: 992 }
- static onlyLargeScreen = { minWidth: 1200, maxWidth: 1919 }
- static onlyWidescreen = { minWidth: 1920 }
-
state = {
visible: true,
}
@@ -110,3 +69,44 @@ export default class Responsive extends Component {
return null
}
}
+
+Responsive.propTypes = {
+ /** An element type to render as (string or function). */
+ as: PropTypes.elementType,
+
+ /** Primary content. */
+ children: PropTypes.node,
+
+ /** Fires callbacks immediately after mount. */
+ fireOnMount: PropTypes.bool,
+
+ /**
+ * Called to get width of screen. Defaults to using `window.innerWidth` when in a browser;
+ * otherwise, assumes a width of 0.
+ */
+ getWidth: PropTypes.func,
+
+ /** The maximum width at which content will be displayed. */
+ maxWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
+
+ /** The minimum width at which content will be displayed. */
+ minWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
+
+ /**
+ * Called on update.
+ *
+ * @param {SyntheticEvent} event - The React SyntheticEvent object
+ * @param {object} data - All props and the event value.
+ */
+ onUpdate: PropTypes.func,
+}
+
+Responsive.defaultProps = {
+ getWidth: () => (isBrowser() ? window.innerWidth : 0),
+}
+
+Responsive.onlyMobile = { minWidth: 320, maxWidth: 767 }
+Responsive.onlyTablet = { minWidth: 768, maxWidth: 991 }
+Responsive.onlyComputer = { minWidth: 992 }
+Responsive.onlyLargeScreen = { minWidth: 1200, maxWidth: 1919 }
+Responsive.onlyWidescreen = { minWidth: 1920 }
diff --git a/src/addons/TextArea/TextArea.d.ts b/src/addons/TextArea/TextArea.d.ts
index 2c81a35902..b019d3d5cd 100644
--- a/src/addons/TextArea/TextArea.d.ts
+++ b/src/addons/TextArea/TextArea.d.ts
@@ -31,7 +31,7 @@ export interface StrictTextAreaProps {
value?: number | string
}
-declare class TextArea extends React.Component {
+declare class TextArea extends React.Component {
focus: () => void
}
diff --git a/src/addons/TextArea/TextArea.js b/src/addons/TextArea/TextArea.js
index 6f1794960a..4c5556b98d 100644
--- a/src/addons/TextArea/TextArea.js
+++ b/src/addons/TextArea/TextArea.js
@@ -10,36 +10,6 @@ import { getElementType, getUnhandledProps } from '../../lib'
* @see Form
*/
class TextArea extends Component {
- static propTypes = {
- /** An element type to render as (string or function). */
- as: PropTypes.elementType,
-
- /**
- * Called on change.
- * @param {SyntheticEvent} event - The React SyntheticEvent object
- * @param {object} data - All props and the event value.
- */
- onChange: PropTypes.func,
-
- /**
- * Called on input.
- * @param {SyntheticEvent} event - The React SyntheticEvent object
- * @param {object} data - All props and the event value.
- */
- onInput: PropTypes.func,
-
- /** Indicates row count for a TextArea. */
- rows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
-
- /** The value of the textarea. */
- value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
- }
-
- static defaultProps = {
- as: 'textarea',
- rows: 3,
- }
-
ref = createRef()
focus = () => this.ref.current.focus()
@@ -75,4 +45,34 @@ class TextArea extends Component {
}
}
+TextArea.propTypes = {
+ /** An element type to render as (string or function). */
+ as: PropTypes.elementType,
+
+ /**
+ * Called on change.
+ * @param {SyntheticEvent} event - The React SyntheticEvent object
+ * @param {object} data - All props and the event value.
+ */
+ onChange: PropTypes.func,
+
+ /**
+ * Called on input.
+ * @param {SyntheticEvent} event - The React SyntheticEvent object
+ * @param {object} data - All props and the event value.
+ */
+ onInput: PropTypes.func,
+
+ /** Indicates row count for a TextArea. */
+ rows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
+
+ /** The value of the textarea. */
+ value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
+}
+
+TextArea.defaultProps = {
+ as: 'textarea',
+ rows: 3,
+}
+
export default TextArea
diff --git a/src/addons/TransitionablePortal/TransitionablePortal.js b/src/addons/TransitionablePortal/TransitionablePortal.js
index 6d455471b8..9ab8d8b60d 100644
--- a/src/addons/TransitionablePortal/TransitionablePortal.js
+++ b/src/addons/TransitionablePortal/TransitionablePortal.js
@@ -15,56 +15,6 @@ const debug = makeDebugger('transitionable_portal')
* @see Transition
*/
export default class TransitionablePortal extends Component {
- static propTypes = {
- /** Primary content. */
- children: PropTypes.node.isRequired,
-
- /**
- * Called when a close event happens.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props and internal state.
- */
- onClose: PropTypes.func,
-
- /**
- * Callback on each transition that changes visibility to hidden.
- *
- * @param {null}
- * @param {object} data - All props with transition status and internal state.
- */
- onHide: PropTypes.func,
-
- /**
- * Called when an open event happens.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props and internal state.
- */
- onOpen: PropTypes.func,
-
- /**
- * Callback on animation start.
- *
- * @param {null}
- * @param {object} data - All props with transition status and internal state.
- */
- onStart: PropTypes.func,
-
- /** Controls whether or not the portal is displayed. */
- open: PropTypes.bool,
-
- /** Transition props. */
- transition: PropTypes.object,
- }
-
- static defaultProps = {
- transition: {
- animation: 'scale',
- duration: 400,
- },
- }
-
state = {}
// ----------------------------------------
@@ -157,3 +107,53 @@ export default class TransitionablePortal extends Component {
)
}
}
+
+TransitionablePortal.propTypes = {
+ /** Primary content. */
+ children: PropTypes.node.isRequired,
+
+ /**
+ * Called when a close event happens.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props and internal state.
+ */
+ onClose: PropTypes.func,
+
+ /**
+ * Callback on each transition that changes visibility to hidden.
+ *
+ * @param {null}
+ * @param {object} data - All props with transition status and internal state.
+ */
+ onHide: PropTypes.func,
+
+ /**
+ * Called when an open event happens.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props and internal state.
+ */
+ onOpen: PropTypes.func,
+
+ /**
+ * Callback on animation start.
+ *
+ * @param {null}
+ * @param {object} data - All props with transition status and internal state.
+ */
+ onStart: PropTypes.func,
+
+ /** Controls whether or not the portal is displayed. */
+ open: PropTypes.bool,
+
+ /** Transition props. */
+ transition: PropTypes.object,
+}
+
+TransitionablePortal.defaultProps = {
+ transition: {
+ animation: 'scale',
+ duration: 400,
+ },
+}
diff --git a/src/behaviors/Visibility/Visibility.d.ts b/src/behaviors/Visibility/Visibility.d.ts
index 76247cd721..1c66e608a2 100644
--- a/src/behaviors/Visibility/Visibility.d.ts
+++ b/src/behaviors/Visibility/Visibility.d.ts
@@ -12,7 +12,7 @@ export interface StrictVisibilityProps {
children?: React.ReactNode
/** Context which sticky element should stick to. */
- context?: object
+ context?: Document | Window | HTMLElement
/**
* When set to true a callback will occur anytime an element passes a condition not just immediately after the
@@ -59,7 +59,7 @@ export interface StrictVisibilityProps {
* Value that context should be adjusted in pixels. Useful for making content appear below content fixed to the
* page.
*/
- offset?: number | string | (number | string)[]
+ offset?: number | string | number | string[]
/** When set to false a callback will occur each time an element passes the threshold for a condition. */
once?: boolean
diff --git a/src/behaviors/Visibility/Visibility.js b/src/behaviors/Visibility/Visibility.js
index 4f7b939126..28bf8be71a 100644
--- a/src/behaviors/Visibility/Visibility.js
+++ b/src/behaviors/Visibility/Visibility.js
@@ -15,161 +15,6 @@ import {
* Visibility provides a set of callbacks for when a content appears in the viewport.
*/
export default class Visibility extends Component {
- static propTypes = {
- /** An element type to render as (string or function). */
- as: PropTypes.elementType,
-
- /** Primary content. */
- children: PropTypes.node,
-
- /** Context which visibility should attach onscroll events. */
- context: PropTypes.object,
-
- /**
- * When set to true a callback will occur anytime an element passes a condition not just immediately after the
- * threshold is met.
- */
- continuous: PropTypes.bool,
-
- /** Fires callbacks immediately after mount. */
- fireOnMount: PropTypes.bool,
-
- /**
- * Element's bottom edge has passed top of screen.
- *
- * @param {null}
- * @param {object} data - All props.
- */
- onBottomPassed: PropTypes.func,
-
- /**
- * Element's bottom edge has not passed top of screen.
- *
- * @param {null}
- * @param {object} data - All props.
- */
- onBottomPassedReverse: PropTypes.func,
-
- /**
- * Element's bottom edge has passed bottom of screen
- *
- * @param {null}
- * @param {object} data - All props.
- */
- onBottomVisible: PropTypes.func,
-
- /**
- * Element's bottom edge has not passed bottom of screen.
- *
- * @param {null}
- * @param {object} data - All props.
- */
- onBottomVisibleReverse: PropTypes.func,
-
- /**
- * Value that context should be adjusted in pixels. Useful for making content appear below content fixed to the
- * page.
- */
- offset: PropTypes.oneOfType([
- PropTypes.number,
- PropTypes.string,
- PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])),
- ]),
-
- /** When set to false a callback will occur each time an element passes the threshold for a condition. */
- once: PropTypes.bool,
-
- /** Element is not visible on the screen. */
- onPassed: PropTypes.object,
-
- /**
- * Any part of an element is visible on screen.
- *
- * @param {null}
- * @param {object} data - All props.
- */
- onPassing: PropTypes.func,
-
- /**
- * Element's top has not passed top of screen but bottom has.
- *
- * @param {null}
- * @param {object} data - All props.
- */
- onPassingReverse: PropTypes.func,
-
- /**
- * Element is not visible on the screen.
- *
- * @param {null}
- * @param {object} data - All props.
- */
- onOffScreen: PropTypes.func,
-
- /**
- * Element is visible on the screen.
- *
- * @param {null}
- * @param {object} data - All props.
- */
- onOnScreen: PropTypes.func,
-
- /**
- * Element's top edge has passed top of the screen.
- *
- * @param {null}
- * @param {object} data - All props.
- */
- onTopPassed: PropTypes.func,
-
- /**
- * Element's top edge has not passed top of the screen.
- *
- * @param {null}
- * @param {object} data - All props.
- */
- onTopPassedReverse: PropTypes.func,
-
- /**
- * Element's top edge has passed bottom of screen.
- *
- * @param {null}
- * @param {object} data - All props.
- */
- onTopVisible: PropTypes.func,
-
- /**
- * Element's top edge has not passed bottom of screen.
- *
- * @param {null}
- * @param {object} data - All props.
- */
- onTopVisibleReverse: PropTypes.func,
-
- /**
- * Element's top edge has passed bottom of screen.
- *
- * @param {null}
- * @param {object} data - All props.
- */
- onUpdate: PropTypes.func,
-
- /**
- * Allows to choose the mode of the position calculations:
- * - `events` - (default) update and fire callbacks only on scroll/resize events
- * - `repaint` - update and fire callbacks on browser repaint (animation frames)
- */
- updateOn: PropTypes.oneOf(['events', 'repaint']),
- }
-
- static defaultProps = {
- context: isBrowser() ? window : null,
- continuous: false,
- offset: [0, 0],
- once: true,
- updateOn: 'events',
- }
-
calculations = {
bottomPassed: false,
bottomVisible: false,
@@ -424,3 +269,158 @@ export default class Visibility extends Component {
)
}
}
+
+Visibility.propTypes = {
+ /** An element type to render as (string or function). */
+ as: PropTypes.elementType,
+
+ /** Primary content. */
+ children: PropTypes.node,
+
+ /** Context which visibility should attach onscroll events. */
+ context: PropTypes.object,
+
+ /**
+ * When set to true a callback will occur anytime an element passes a condition not just immediately after the
+ * threshold is met.
+ */
+ continuous: PropTypes.bool,
+
+ /** Fires callbacks immediately after mount. */
+ fireOnMount: PropTypes.bool,
+
+ /**
+ * Element's bottom edge has passed top of screen.
+ *
+ * @param {null}
+ * @param {object} data - All props.
+ */
+ onBottomPassed: PropTypes.func,
+
+ /**
+ * Element's bottom edge has not passed top of screen.
+ *
+ * @param {null}
+ * @param {object} data - All props.
+ */
+ onBottomPassedReverse: PropTypes.func,
+
+ /**
+ * Element's bottom edge has passed bottom of screen
+ *
+ * @param {null}
+ * @param {object} data - All props.
+ */
+ onBottomVisible: PropTypes.func,
+
+ /**
+ * Element's bottom edge has not passed bottom of screen.
+ *
+ * @param {null}
+ * @param {object} data - All props.
+ */
+ onBottomVisibleReverse: PropTypes.func,
+
+ /**
+ * Value that context should be adjusted in pixels. Useful for making content appear below content fixed to the
+ * page.
+ */
+ offset: PropTypes.oneOfType([
+ PropTypes.number,
+ PropTypes.string,
+ PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])),
+ ]),
+
+ /** When set to false a callback will occur each time an element passes the threshold for a condition. */
+ once: PropTypes.bool,
+
+ /** Element is not visible on the screen. */
+ onPassed: PropTypes.object,
+
+ /**
+ * Any part of an element is visible on screen.
+ *
+ * @param {null}
+ * @param {object} data - All props.
+ */
+ onPassing: PropTypes.func,
+
+ /**
+ * Element's top has not passed top of screen but bottom has.
+ *
+ * @param {null}
+ * @param {object} data - All props.
+ */
+ onPassingReverse: PropTypes.func,
+
+ /**
+ * Element is not visible on the screen.
+ *
+ * @param {null}
+ * @param {object} data - All props.
+ */
+ onOffScreen: PropTypes.func,
+
+ /**
+ * Element is visible on the screen.
+ *
+ * @param {null}
+ * @param {object} data - All props.
+ */
+ onOnScreen: PropTypes.func,
+
+ /**
+ * Element's top edge has passed top of the screen.
+ *
+ * @param {null}
+ * @param {object} data - All props.
+ */
+ onTopPassed: PropTypes.func,
+
+ /**
+ * Element's top edge has not passed top of the screen.
+ *
+ * @param {null}
+ * @param {object} data - All props.
+ */
+ onTopPassedReverse: PropTypes.func,
+
+ /**
+ * Element's top edge has passed bottom of screen.
+ *
+ * @param {null}
+ * @param {object} data - All props.
+ */
+ onTopVisible: PropTypes.func,
+
+ /**
+ * Element's top edge has not passed bottom of screen.
+ *
+ * @param {null}
+ * @param {object} data - All props.
+ */
+ onTopVisibleReverse: PropTypes.func,
+
+ /**
+ * Element's top edge has passed bottom of screen.
+ *
+ * @param {null}
+ * @param {object} data - All props.
+ */
+ onUpdate: PropTypes.func,
+
+ /**
+ * Allows to choose the mode of the position calculations:
+ * - `events` - (default) update and fire callbacks only on scroll/resize events
+ * - `repaint` - update and fire callbacks on browser repaint (animation frames)
+ */
+ updateOn: PropTypes.oneOf(['events', 'repaint']),
+}
+
+Visibility.defaultProps = {
+ context: isBrowser() ? window : null,
+ continuous: false,
+ offset: [0, 0],
+ once: true,
+ updateOn: 'events',
+}
diff --git a/src/collections/Breadcrumb/Breadcrumb.d.ts b/src/collections/Breadcrumb/Breadcrumb.d.ts
index e6164ee127..0e8f8d14d3 100644
--- a/src/collections/Breadcrumb/Breadcrumb.d.ts
+++ b/src/collections/Breadcrumb/Breadcrumb.d.ts
@@ -7,7 +7,7 @@ import {
} from '../../generic'
import { IconProps } from '../../elements/Icon'
import BreadcrumbDivider from './BreadcrumbDivider'
-import { default as BreadcrumbSection, BreadcrumbSectionProps } from './BreadcrumbSection'
+import BreadcrumbSection, { BreadcrumbSectionProps } from './BreadcrumbSection'
export interface BreadcrumbProps extends StrictBreadcrumbProps {
[key: string]: any
diff --git a/src/collections/Breadcrumb/BreadcrumbSection.js b/src/collections/Breadcrumb/BreadcrumbSection.js
index 32c6cdb0c5..18c0636f0f 100644
--- a/src/collections/Breadcrumb/BreadcrumbSection.js
+++ b/src/collections/Breadcrumb/BreadcrumbSection.js
@@ -16,38 +16,6 @@ import {
* A section sub-component for Breadcrumb component.
*/
export default class BreadcrumbSection extends Component {
- static propTypes = {
- /** An element type to render as (string or function). */
- as: PropTypes.elementType,
-
- /** Style as the currently active section. */
- active: PropTypes.bool,
-
- /** Primary content. */
- children: PropTypes.node,
-
- /** Additional classes. */
- className: PropTypes.string,
-
- /** Shorthand for primary content. */
- content: customPropTypes.contentShorthand,
-
- /** Render as an `a` tag instead of a `div` and adds the href attribute. */
- href: customPropTypes.every([customPropTypes.disallow(['link']), PropTypes.string]),
-
- /** Render as an `a` tag instead of a `div`. */
- link: customPropTypes.every([customPropTypes.disallow(['href']), PropTypes.bool]),
-
- /**
- * Called on click. When passed, the component will render as an `a`
- * tag by default instead of a `div`.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onClick: PropTypes.func,
- }
-
computeElementType = () => {
const { link, onClick } = this.props
@@ -71,6 +39,38 @@ export default class BreadcrumbSection extends Component {
}
}
+BreadcrumbSection.propTypes = {
+ /** An element type to render as (string or function). */
+ as: PropTypes.elementType,
+
+ /** Style as the currently active section. */
+ active: PropTypes.bool,
+
+ /** Primary content. */
+ children: PropTypes.node,
+
+ /** Additional classes. */
+ className: PropTypes.string,
+
+ /** Shorthand for primary content. */
+ content: customPropTypes.contentShorthand,
+
+ /** Render as an `a` tag instead of a `div` and adds the href attribute. */
+ href: customPropTypes.every([customPropTypes.disallow(['link']), PropTypes.string]),
+
+ /** Render as an `a` tag instead of a `div`. */
+ link: customPropTypes.every([customPropTypes.disallow(['href']), PropTypes.bool]),
+
+ /**
+ * Called on click. When passed, the component will render as an `a`
+ * tag by default instead of a `div`.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onClick: PropTypes.func,
+}
+
BreadcrumbSection.create = createShorthandFactory(BreadcrumbSection, (content) => ({
content,
link: true,
diff --git a/src/collections/Form/Form.js b/src/collections/Form/Form.js
index dbea936f3e..25463ab019 100644
--- a/src/collections/Form/Form.js
+++ b/src/collections/Form/Form.js
@@ -26,64 +26,6 @@ import FormTextArea from './FormTextArea'
* @see Visibility
*/
class Form extends Component {
- static propTypes = {
- /** An element type to render as (string or function). */
- as: PropTypes.elementType,
-
- /** The HTML form action */
- action: PropTypes.string,
-
- /** Primary content. */
- children: PropTypes.node,
-
- /** Additional classes. */
- className: PropTypes.string,
-
- /** Automatically show any error Message children. */
- error: PropTypes.bool,
-
- /** A form can have its color inverted for contrast. */
- inverted: PropTypes.bool,
-
- /** Automatically show a loading indicator. */
- loading: PropTypes.bool,
-
- /** The HTML form submit handler. */
- onSubmit: PropTypes.func,
-
- /** A comment can contain a form to reply to a comment. This may have arbitrary content. */
- reply: PropTypes.bool,
-
- /** A form can vary in size. */
- size: PropTypes.oneOf(_.without(SUI.SIZES, 'medium')),
-
- /** Automatically show any success Message children. */
- success: PropTypes.bool,
-
- /** A form can prevent itself from stacking on mobile. */
- unstackable: PropTypes.bool,
-
- /** Automatically show any warning Message children. */
- warning: PropTypes.bool,
-
- /** Forms can automatically divide fields to be equal width. */
- widths: PropTypes.oneOf(['equal']),
- }
-
- static defaultProps = {
- as: 'form',
- }
-
- static Field = FormField
- static Button = FormButton
- static Checkbox = FormCheckbox
- static Dropdown = FormDropdown
- static Group = FormGroup
- static Input = FormInput
- static Radio = FormRadio
- static Select = FormSelect
- static TextArea = FormTextArea
-
handleSubmit = (e, ...args) => {
const { action } = this.props
@@ -134,4 +76,62 @@ class Form extends Component {
}
}
+Form.propTypes = {
+ /** An element type to render as (string or function). */
+ as: PropTypes.elementType,
+
+ /** The HTML form action */
+ action: PropTypes.string,
+
+ /** Primary content. */
+ children: PropTypes.node,
+
+ /** Additional classes. */
+ className: PropTypes.string,
+
+ /** Automatically show any error Message children. */
+ error: PropTypes.bool,
+
+ /** A form can have its color inverted for contrast. */
+ inverted: PropTypes.bool,
+
+ /** Automatically show a loading indicator. */
+ loading: PropTypes.bool,
+
+ /** The HTML form submit handler. */
+ onSubmit: PropTypes.func,
+
+ /** A comment can contain a form to reply to a comment. This may have arbitrary content. */
+ reply: PropTypes.bool,
+
+ /** A form can vary in size. */
+ size: PropTypes.oneOf(_.without(SUI.SIZES, 'medium')),
+
+ /** Automatically show any success Message children. */
+ success: PropTypes.bool,
+
+ /** A form can prevent itself from stacking on mobile. */
+ unstackable: PropTypes.bool,
+
+ /** Automatically show any warning Message children. */
+ warning: PropTypes.bool,
+
+ /** Forms can automatically divide fields to be equal width. */
+ widths: PropTypes.oneOf(['equal']),
+}
+
+Form.defaultProps = {
+ as: 'form',
+}
+
+Form.Field = FormField
+Form.Button = FormButton
+Form.Checkbox = FormCheckbox
+Form.Dropdown = FormDropdown
+Form.Group = FormGroup
+Form.Input = FormInput
+Form.Radio = FormRadio
+Form.Select = FormSelect
+Form.TextArea = FormTextArea
+
export default Form
diff --git a/src/collections/Menu/Menu.d.ts b/src/collections/Menu/Menu.d.ts
index 91fa59928e..bb2b009c1a 100644
--- a/src/collections/Menu/Menu.d.ts
+++ b/src/collections/Menu/Menu.d.ts
@@ -2,7 +2,7 @@ import * as React from 'react'
import { SemanticCOLORS, SemanticShorthandCollection, SemanticWIDTHS } from '../../generic'
import MenuHeader from './MenuHeader'
-import { default as MenuItem, MenuItemProps } from './MenuItem'
+import MenuItem, { MenuItemProps } from './MenuItem'
import MenuMenu from './MenuMenu'
export interface MenuProps extends StrictMenuProps {
diff --git a/src/collections/Menu/Menu.js b/src/collections/Menu/Menu.js
index c342ca1f54..1ba670ed11 100644
--- a/src/collections/Menu/Menu.js
+++ b/src/collections/Menu/Menu.js
@@ -25,94 +25,6 @@ import MenuMenu from './MenuMenu'
* @see Dropdown
*/
class Menu extends Component {
- static propTypes = {
- /** An element type to render as (string or function). */
- as: PropTypes.elementType,
-
- /** Index of the currently active item. */
- activeIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
-
- /** A menu may be attached to other content segments. */
- attached: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['top', 'bottom'])]),
-
- /** A menu item or menu can have no borders. */
- borderless: PropTypes.bool,
-
- /** Primary content. */
- children: PropTypes.node,
-
- /** Additional classes. */
- className: PropTypes.string,
-
- /** Additional colors can be specified. */
- color: PropTypes.oneOf(SUI.COLORS),
-
- /** A menu can take up only the space necessary to fit its content. */
- compact: PropTypes.bool,
-
- /** Initial activeIndex value. */
- defaultActiveIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
-
- /** A menu can be fixed to a side of its context. */
- fixed: PropTypes.oneOf(['left', 'right', 'bottom', 'top']),
-
- /** A menu can be floated. */
- floated: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['right'])]),
-
- /** A vertical menu may take the size of its container. */
- fluid: PropTypes.bool,
-
- /** A menu may have just icons (bool) or labeled icons. */
- icon: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['labeled'])]),
-
- /** A menu may have its colors inverted to show greater contrast. */
- inverted: PropTypes.bool,
-
- /** Shorthand array of props for Menu. */
- items: customPropTypes.collectionShorthand,
-
- /**
- * onClick handler for MenuItem. Mutually exclusive with children.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All item props.
- */
- onItemClick: customPropTypes.every([customPropTypes.disallow(['children']), PropTypes.func]),
-
- /** A pagination menu is specially formatted to present links to pages of content. */
- pagination: PropTypes.bool,
-
- /** A menu can point to show its relationship to nearby content. */
- pointing: PropTypes.bool,
-
- /** A menu can adjust its appearance to de-emphasize its contents. */
- secondary: PropTypes.bool,
-
- /** A menu can vary in size. */
- size: PropTypes.oneOf(_.without(SUI.SIZES, 'medium', 'big')),
-
- /** A menu can stack at mobile resolutions. */
- stackable: PropTypes.bool,
-
- /** A menu can be formatted to show tabs of information. */
- tabular: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['right'])]),
-
- /** A menu can be formatted for text content. */
- text: PropTypes.bool,
-
- /** A vertical menu displays elements vertically. */
- vertical: PropTypes.bool,
-
- /** A menu can have its items divided evenly. */
- widths: PropTypes.oneOf(SUI.WIDTHS),
- }
-
- static autoControlledProps = ['activeIndex']
-
- static Header = MenuHeader
- static Item = MenuItem
- static Menu = MenuMenu
-
handleItemOverrides = (predefinedProps) => ({
onClick: (e, itemProps) => {
const { index } = itemProps
@@ -196,6 +108,94 @@ class Menu extends Component {
}
}
+Menu.propTypes = {
+ /** An element type to render as (string or function). */
+ as: PropTypes.elementType,
+
+ /** Index of the currently active item. */
+ activeIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
+
+ /** A menu may be attached to other content segments. */
+ attached: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['top', 'bottom'])]),
+
+ /** A menu item or menu can have no borders. */
+ borderless: PropTypes.bool,
+
+ /** Primary content. */
+ children: PropTypes.node,
+
+ /** Additional classes. */
+ className: PropTypes.string,
+
+ /** Additional colors can be specified. */
+ color: PropTypes.oneOf(SUI.COLORS),
+
+ /** A menu can take up only the space necessary to fit its content. */
+ compact: PropTypes.bool,
+
+ /** Initial activeIndex value. */
+ defaultActiveIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
+
+ /** A menu can be fixed to a side of its context. */
+ fixed: PropTypes.oneOf(['left', 'right', 'bottom', 'top']),
+
+ /** A menu can be floated. */
+ floated: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['right'])]),
+
+ /** A vertical menu may take the size of its container. */
+ fluid: PropTypes.bool,
+
+ /** A menu may have just icons (bool) or labeled icons. */
+ icon: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['labeled'])]),
+
+ /** A menu may have its colors inverted to show greater contrast. */
+ inverted: PropTypes.bool,
+
+ /** Shorthand array of props for Menu. */
+ items: customPropTypes.collectionShorthand,
+
+ /**
+ * onClick handler for MenuItem. Mutually exclusive with children.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All item props.
+ */
+ onItemClick: customPropTypes.every([customPropTypes.disallow(['children']), PropTypes.func]),
+
+ /** A pagination menu is specially formatted to present links to pages of content. */
+ pagination: PropTypes.bool,
+
+ /** A menu can point to show its relationship to nearby content. */
+ pointing: PropTypes.bool,
+
+ /** A menu can adjust its appearance to de-emphasize its contents. */
+ secondary: PropTypes.bool,
+
+ /** A menu can vary in size. */
+ size: PropTypes.oneOf(_.without(SUI.SIZES, 'medium', 'big')),
+
+ /** A menu can stack at mobile resolutions. */
+ stackable: PropTypes.bool,
+
+ /** A menu can be formatted to show tabs of information. */
+ tabular: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['right'])]),
+
+ /** A menu can be formatted for text content. */
+ text: PropTypes.bool,
+
+ /** A vertical menu displays elements vertically. */
+ vertical: PropTypes.bool,
+
+ /** A menu can have its items divided evenly. */
+ widths: PropTypes.oneOf(SUI.WIDTHS),
+}
+
+Menu.autoControlledProps = ['activeIndex']
+
+Menu.Header = MenuHeader
+Menu.Item = MenuItem
+Menu.Menu = MenuMenu
+
Menu.create = createShorthandFactory(Menu, (items) => ({ items }))
export default Menu
diff --git a/src/collections/Menu/MenuItem.js b/src/collections/Menu/MenuItem.js
index 6aacfa2e6a..4d90e173bf 100644
--- a/src/collections/Menu/MenuItem.js
+++ b/src/collections/Menu/MenuItem.js
@@ -19,59 +19,6 @@ import Icon from '../../elements/Icon'
* A menu can contain an item.
*/
export default class MenuItem extends Component {
- static propTypes = {
- /** An element type to render as (string or function). */
- as: PropTypes.elementType,
-
- /** A menu item can be active. */
- active: PropTypes.bool,
-
- /** Primary content. */
- children: PropTypes.node,
-
- /** Additional classes. */
- className: PropTypes.string,
-
- /** Additional colors can be specified. */
- color: PropTypes.oneOf(SUI.COLORS),
-
- /** Shorthand for primary content. */
- content: customPropTypes.contentShorthand,
-
- /** A menu item can be disabled. */
- disabled: PropTypes.bool,
-
- /** A menu item or menu can remove element padding, vertically or horizontally. */
- fitted: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['horizontally', 'vertically'])]),
-
- /** A menu item may include a header or may itself be a header. */
- header: PropTypes.bool,
-
- /** MenuItem can be only icon. */
- icon: PropTypes.oneOfType([PropTypes.bool, customPropTypes.itemShorthand]),
-
- /** MenuItem index inside Menu. */
- index: PropTypes.number,
-
- /** A menu item can be link. */
- link: PropTypes.bool,
-
- /** Internal name of the MenuItem. */
- name: PropTypes.string,
-
- /**
- * Called on click. When passed, the component will render as an `a`
- * tag by default instead of a `div`.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onClick: PropTypes.func,
-
- /** A menu item can take left or right position. */
- position: PropTypes.oneOf(['left', 'right']),
- }
-
handleClick = (e) => {
const { disabled } = this.props
@@ -129,4 +76,57 @@ export default class MenuItem extends Component {
}
}
+MenuItem.propTypes = {
+ /** An element type to render as (string or function). */
+ as: PropTypes.elementType,
+
+ /** A menu item can be active. */
+ active: PropTypes.bool,
+
+ /** Primary content. */
+ children: PropTypes.node,
+
+ /** Additional classes. */
+ className: PropTypes.string,
+
+ /** Additional colors can be specified. */
+ color: PropTypes.oneOf(SUI.COLORS),
+
+ /** Shorthand for primary content. */
+ content: customPropTypes.contentShorthand,
+
+ /** A menu item can be disabled. */
+ disabled: PropTypes.bool,
+
+ /** A menu item or menu can remove element padding, vertically or horizontally. */
+ fitted: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['horizontally', 'vertically'])]),
+
+ /** A menu item may include a header or may itself be a header. */
+ header: PropTypes.bool,
+
+ /** MenuItem can be only icon. */
+ icon: PropTypes.oneOfType([PropTypes.bool, customPropTypes.itemShorthand]),
+
+ /** MenuItem index inside Menu. */
+ index: PropTypes.number,
+
+ /** A menu item can be link. */
+ link: PropTypes.bool,
+
+ /** Internal name of the MenuItem. */
+ name: PropTypes.string,
+
+ /**
+ * Called on click. When passed, the component will render as an `a`
+ * tag by default instead of a `div`.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onClick: PropTypes.func,
+
+ /** A menu item can take left or right position. */
+ position: PropTypes.oneOf(['left', 'right']),
+}
+
MenuItem.create = createShorthandFactory(MenuItem, (val) => ({ content: val, name: val }))
diff --git a/src/collections/Message/Message.d.ts b/src/collections/Message/Message.d.ts
index ee919724b3..723b0733bd 100644
--- a/src/collections/Message/Message.d.ts
+++ b/src/collections/Message/Message.d.ts
@@ -7,8 +7,8 @@ import {
SemanticShorthandItem,
} from '../../generic'
import MessageContent from './MessageContent'
-import { default as MessageHeader, MessageHeaderProps } from './MessageHeader'
-import { default as MessageItem, MessageItemProps } from './MessageItem'
+import MessageHeader, { MessageHeaderProps } from './MessageHeader'
+import MessageItem, { MessageItemProps } from './MessageItem'
import MessageList from './MessageList'
export type MessageSizeProp = 'mini' | 'tiny' | 'small' | 'large' | 'big' | 'huge' | 'massive'
diff --git a/src/collections/Message/Message.js b/src/collections/Message/Message.js
index ae6a08f06a..acb75c52e7 100644
--- a/src/collections/Message/Message.js
+++ b/src/collections/Message/Message.js
@@ -24,82 +24,6 @@ import MessageItem from './MessageItem'
* @see Form
*/
export default class Message extends Component {
- static propTypes = {
- /** An element type to render as (string or function). */
- as: PropTypes.elementType,
-
- /** A message can be formatted to attach itself to other content. */
- attached: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['bottom', 'top'])]),
-
- /** Primary content. */
- children: PropTypes.node,
-
- /** Additional classes. */
- className: PropTypes.string,
-
- /** A message can be formatted to be different colors. */
- color: PropTypes.oneOf(SUI.COLORS),
-
- /** A message can only take up the width of its content. */
- compact: PropTypes.bool,
-
- /** Shorthand for primary content. */
- content: customPropTypes.contentShorthand,
-
- /** A message may be formatted to display a negative message. Same as `negative`. */
- error: PropTypes.bool,
-
- /** A message can float above content that it is related to. */
- floating: PropTypes.bool,
-
- /** Shorthand for MessageHeader. */
- header: customPropTypes.itemShorthand,
-
- /** A message can be hidden. */
- hidden: PropTypes.bool,
-
- /** A message can contain an icon. */
- icon: PropTypes.oneOfType([customPropTypes.itemShorthand, PropTypes.bool]),
-
- /** A message may be formatted to display information. */
- info: PropTypes.bool,
-
- /** Array shorthand items for the MessageList. Mutually exclusive with children. */
- list: customPropTypes.collectionShorthand,
-
- /** A message may be formatted to display a negative message. Same as `error`. */
- negative: PropTypes.bool,
-
- /**
- * A message that the user can choose to hide.
- * Called when the user clicks the "x" icon. This also adds the "x" icon.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onDismiss: PropTypes.func,
-
- /** A message may be formatted to display a positive message. Same as `success`. */
- positive: PropTypes.bool,
-
- /** A message can have different sizes. */
- size: PropTypes.oneOf(_.without(SUI.SIZES, 'medium')),
-
- /** A message may be formatted to display a positive message. Same as `positive`. */
- success: PropTypes.bool,
-
- /** A message can be set to visible to force itself to be shown. */
- visible: PropTypes.bool,
-
- /** A message may be formatted to display warning messages. */
- warning: PropTypes.bool,
- }
-
- static Content = MessageContent
- static Header = MessageHeader
- static List = MessageList
- static Item = MessageItem
-
handleDismiss = (e) => {
const { onDismiss } = this.props
@@ -178,3 +102,79 @@ export default class Message extends Component {
)
}
}
+
+Message.propTypes = {
+ /** An element type to render as (string or function). */
+ as: PropTypes.elementType,
+
+ /** A message can be formatted to attach itself to other content. */
+ attached: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['bottom', 'top'])]),
+
+ /** Primary content. */
+ children: PropTypes.node,
+
+ /** Additional classes. */
+ className: PropTypes.string,
+
+ /** A message can be formatted to be different colors. */
+ color: PropTypes.oneOf(SUI.COLORS),
+
+ /** A message can only take up the width of its content. */
+ compact: PropTypes.bool,
+
+ /** Shorthand for primary content. */
+ content: customPropTypes.contentShorthand,
+
+ /** A message may be formatted to display a negative message. Same as `negative`. */
+ error: PropTypes.bool,
+
+ /** A message can float above content that it is related to. */
+ floating: PropTypes.bool,
+
+ /** Shorthand for MessageHeader. */
+ header: customPropTypes.itemShorthand,
+
+ /** A message can be hidden. */
+ hidden: PropTypes.bool,
+
+ /** A message can contain an icon. */
+ icon: PropTypes.oneOfType([customPropTypes.itemShorthand, PropTypes.bool]),
+
+ /** A message may be formatted to display information. */
+ info: PropTypes.bool,
+
+ /** Array shorthand items for the MessageList. Mutually exclusive with children. */
+ list: customPropTypes.collectionShorthand,
+
+ /** A message may be formatted to display a negative message. Same as `error`. */
+ negative: PropTypes.bool,
+
+ /**
+ * A message that the user can choose to hide.
+ * Called when the user clicks the "x" icon. This also adds the "x" icon.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onDismiss: PropTypes.func,
+
+ /** A message may be formatted to display a positive message. Same as `success`. */
+ positive: PropTypes.bool,
+
+ /** A message can have different sizes. */
+ size: PropTypes.oneOf(_.without(SUI.SIZES, 'medium')),
+
+ /** A message may be formatted to display a positive message. Same as `positive`. */
+ success: PropTypes.bool,
+
+ /** A message can be set to visible to force itself to be shown. */
+ visible: PropTypes.bool,
+
+ /** A message may be formatted to display warning messages. */
+ warning: PropTypes.bool,
+}
+
+Message.Content = MessageContent
+Message.Header = MessageHeader
+Message.List = MessageList
+Message.Item = MessageItem
diff --git a/src/collections/Table/Table.d.ts b/src/collections/Table/Table.d.ts
index 10a83e70bb..f3c6748459 100644
--- a/src/collections/Table/Table.d.ts
+++ b/src/collections/Table/Table.d.ts
@@ -12,7 +12,7 @@ import TableCell from './TableCell'
import TableFooter from './TableFooter'
import TableHeader from './TableHeader'
import TableHeaderCell from './TableHeaderCell'
-import { default as TableRow, TableRowProps } from './TableRow'
+import TableRow, { TableRowProps } from './TableRow'
export interface TableProps extends StrictTableProps {
[key: string]: any
diff --git a/src/elements/Button/Button.d.ts b/src/elements/Button/Button.d.ts
index a0dedcf973..f298e76a3b 100644
--- a/src/elements/Button/Button.d.ts
+++ b/src/elements/Button/Button.d.ts
@@ -115,7 +115,7 @@ export interface StrictButtonProps {
toggle?: boolean
}
-declare class Button extends React.Component {
+declare class Button extends React.Component {
static Content: typeof ButtonContent
static Group: typeof ButtonGroup
static Or: typeof ButtonOr
diff --git a/src/elements/Button/Button.js b/src/elements/Button/Button.js
index 7857b0d840..05256db0a2 100644
--- a/src/elements/Button/Button.js
+++ b/src/elements/Button/Button.js
@@ -28,134 +28,6 @@ import ButtonOr from './ButtonOr'
* @see Label
*/
class Button extends Component {
- static propTypes = {
- /** An element type to render as (string or function). */
- as: PropTypes.elementType,
-
- /** A button can show it is currently the active user selection. */
- active: PropTypes.bool,
-
- /** A button can animate to show hidden content. */
- animated: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['fade', 'vertical'])]),
-
- /** A button can be attached to other content. */
- attached: PropTypes.oneOfType([
- PropTypes.bool,
- PropTypes.oneOf(['left', 'right', 'top', 'bottom']),
- ]),
-
- /** A basic button is less pronounced. */
- basic: PropTypes.bool,
-
- /** Primary content. */
- children: customPropTypes.every([
- PropTypes.node,
- customPropTypes.disallow(['label']),
- customPropTypes.givenProps(
- {
- icon: PropTypes.oneOfType([
- PropTypes.string.isRequired,
- PropTypes.object.isRequired,
- PropTypes.element.isRequired,
- ]),
- },
- customPropTypes.disallow(['icon']),
- ),
- ]),
-
- /** A button can be circular. */
- circular: PropTypes.bool,
-
- /** Additional classes. */
- className: PropTypes.string,
-
- /** A button can have different colors */
- color: PropTypes.oneOf([
- ...SUI.COLORS,
- 'facebook',
- 'google plus',
- 'instagram',
- 'linkedin',
- 'twitter',
- 'vk',
- 'youtube',
- ]),
-
- /** A button can reduce its padding to fit into tighter spaces. */
- compact: PropTypes.bool,
-
- /** Shorthand for primary content. */
- content: customPropTypes.contentShorthand,
-
- /** A button can show it is currently unable to be interacted with. */
- disabled: PropTypes.bool,
-
- /** A button can be aligned to the left or right of its container. */
- floated: PropTypes.oneOf(SUI.FLOATS),
-
- /** A button can take the width of its container. */
- fluid: PropTypes.bool,
-
- /** Add an Icon by name, props object, or pass an . */
- icon: customPropTypes.some([
- PropTypes.bool,
- PropTypes.string,
- PropTypes.object,
- PropTypes.element,
- ]),
-
- /** A button can be formatted to appear on dark backgrounds. */
- inverted: PropTypes.bool,
-
- /** Add a Label by text, props object, or pass a . */
- label: customPropTypes.some([PropTypes.string, PropTypes.object, PropTypes.element]),
-
- /** A labeled button can format a Label or Icon to appear on the left or right. */
- labelPosition: PropTypes.oneOf(['right', 'left']),
-
- /** A button can show a loading indicator. */
- loading: PropTypes.bool,
-
- /** A button can hint towards a negative consequence. */
- negative: PropTypes.bool,
-
- /**
- * Called after user's click.
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onClick: PropTypes.func,
-
- /** A button can hint towards a positive consequence. */
- positive: PropTypes.bool,
-
- /** A button can be formatted to show different levels of emphasis. */
- primary: PropTypes.bool,
-
- /** The role of the HTML element. */
- role: PropTypes.string,
-
- /** A button can be formatted to show different levels of emphasis. */
- secondary: PropTypes.bool,
-
- /** A button can have different sizes. */
- size: PropTypes.oneOf(SUI.SIZES),
-
- /** A button can receive focus. */
- tabIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
-
- /** A button can be formatted to toggle on and off. */
- toggle: PropTypes.bool,
- }
-
- static defaultProps = {
- as: 'button',
- }
-
- static Content = ButtonContent
- static Group = ButtonGroup
- static Or = ButtonOr
-
ref = createRef()
computeButtonAriaRole(ElementType) {
@@ -306,6 +178,134 @@ class Button extends Component {
}
}
+Button.propTypes = {
+ /** An element type to render as (string or function). */
+ as: PropTypes.elementType,
+
+ /** A button can show it is currently the active user selection. */
+ active: PropTypes.bool,
+
+ /** A button can animate to show hidden content. */
+ animated: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['fade', 'vertical'])]),
+
+ /** A button can be attached to other content. */
+ attached: PropTypes.oneOfType([
+ PropTypes.bool,
+ PropTypes.oneOf(['left', 'right', 'top', 'bottom']),
+ ]),
+
+ /** A basic button is less pronounced. */
+ basic: PropTypes.bool,
+
+ /** Primary content. */
+ children: customPropTypes.every([
+ PropTypes.node,
+ customPropTypes.disallow(['label']),
+ customPropTypes.givenProps(
+ {
+ icon: PropTypes.oneOfType([
+ PropTypes.string.isRequired,
+ PropTypes.object.isRequired,
+ PropTypes.element.isRequired,
+ ]),
+ },
+ customPropTypes.disallow(['icon']),
+ ),
+ ]),
+
+ /** A button can be circular. */
+ circular: PropTypes.bool,
+
+ /** Additional classes. */
+ className: PropTypes.string,
+
+ /** A button can have different colors */
+ color: PropTypes.oneOf([
+ ...SUI.COLORS,
+ 'facebook',
+ 'google plus',
+ 'instagram',
+ 'linkedin',
+ 'twitter',
+ 'vk',
+ 'youtube',
+ ]),
+
+ /** A button can reduce its padding to fit into tighter spaces. */
+ compact: PropTypes.bool,
+
+ /** Shorthand for primary content. */
+ content: customPropTypes.contentShorthand,
+
+ /** A button can show it is currently unable to be interacted with. */
+ disabled: PropTypes.bool,
+
+ /** A button can be aligned to the left or right of its container. */
+ floated: PropTypes.oneOf(SUI.FLOATS),
+
+ /** A button can take the width of its container. */
+ fluid: PropTypes.bool,
+
+ /** Add an Icon by name, props object, or pass an . */
+ icon: customPropTypes.some([
+ PropTypes.bool,
+ PropTypes.string,
+ PropTypes.object,
+ PropTypes.element,
+ ]),
+
+ /** A button can be formatted to appear on dark backgrounds. */
+ inverted: PropTypes.bool,
+
+ /** Add a Label by text, props object, or pass a . */
+ label: customPropTypes.some([PropTypes.string, PropTypes.object, PropTypes.element]),
+
+ /** A labeled button can format a Label or Icon to appear on the left or right. */
+ labelPosition: PropTypes.oneOf(['right', 'left']),
+
+ /** A button can show a loading indicator. */
+ loading: PropTypes.bool,
+
+ /** A button can hint towards a negative consequence. */
+ negative: PropTypes.bool,
+
+ /**
+ * Called after user's click.
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onClick: PropTypes.func,
+
+ /** A button can hint towards a positive consequence. */
+ positive: PropTypes.bool,
+
+ /** A button can be formatted to show different levels of emphasis. */
+ primary: PropTypes.bool,
+
+ /** The role of the HTML element. */
+ role: PropTypes.string,
+
+ /** A button can be formatted to show different levels of emphasis. */
+ secondary: PropTypes.bool,
+
+ /** A button can have different sizes. */
+ size: PropTypes.oneOf(SUI.SIZES),
+
+ /** A button can receive focus. */
+ tabIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
+
+ /** A button can be formatted to toggle on and off. */
+ toggle: PropTypes.bool,
+}
+
+Button.defaultProps = {
+ as: 'button',
+}
+
+Button.Content = ButtonContent
+Button.Group = ButtonGroup
+Button.Or = ButtonOr
+
Button.create = createShorthandFactory(Button, (value) => ({ content: value }))
export default Button
diff --git a/src/elements/Flag/Flag.d.ts b/src/elements/Flag/Flag.d.ts
index 5d8ea0934c..9be91cf474 100644
--- a/src/elements/Flag/Flag.d.ts
+++ b/src/elements/Flag/Flag.d.ts
@@ -123,6 +123,8 @@ export type FlagNameValues =
| 'algeria'
| 'ec'
| 'ecuador'
+ | 'england'
+ | 'gb eng'
| 'ee'
| 'estonia'
| 'eg'
@@ -509,6 +511,6 @@ export interface StrictFlagProps {
name: FlagNameValues
}
-declare class Flag extends React.PureComponent {}
+declare class Flag extends React.PureComponent {}
export default Flag
diff --git a/src/elements/Flag/Flag.js b/src/elements/Flag/Flag.js
index 96bc1b1d58..24272dd7ae 100644
--- a/src/elements/Flag/Flag.js
+++ b/src/elements/Flag/Flag.js
@@ -510,21 +510,6 @@ export const names = [
* A flag is is used to represent a political state.
*/
class Flag extends PureComponent {
- static propTypes = {
- /** An element type to render as (string or function). */
- as: PropTypes.elementType,
-
- /** Additional classes. */
- className: PropTypes.string,
-
- /** Flag name, can use the two digit country code, the full name, or a common alias. */
- name: customPropTypes.suggest(names),
- }
-
- static defaultProps = {
- as: 'i',
- }
-
render() {
const { className, name } = this.props
const classes = cx(name, 'flag', className)
@@ -535,6 +520,21 @@ class Flag extends PureComponent {
}
}
+Flag.propTypes = {
+ /** An element type to render as (string or function). */
+ as: PropTypes.elementType,
+
+ /** Additional classes. */
+ className: PropTypes.string,
+
+ /** Flag name, can use the two digit country code, the full name, or a common alias. */
+ name: customPropTypes.suggest(names),
+}
+
+Flag.defaultProps = {
+ as: 'i',
+}
+
Flag.create = createShorthandFactory(Flag, (value) => ({ name: value }))
export default Flag
diff --git a/src/elements/Icon/Icon.d.ts b/src/elements/Icon/Icon.d.ts
index 1978bb5ba7..20b4fe9c80 100644
--- a/src/elements/Icon/Icon.d.ts
+++ b/src/elements/Icon/Icon.d.ts
@@ -63,7 +63,7 @@ export interface StrictIconProps {
'aria-label'?: string
}
-declare class Icon extends React.PureComponent {
+declare class Icon extends React.PureComponent {
static Group: typeof IconGroup
}
diff --git a/src/elements/Icon/Icon.js b/src/elements/Icon/Icon.js
index 3a0106518b..aa322bd010 100644
--- a/src/elements/Icon/Icon.js
+++ b/src/elements/Icon/Icon.js
@@ -20,68 +20,6 @@ import IconGroup from './IconGroup'
* @see Image
*/
class Icon extends PureComponent {
- static propTypes = {
- /** An element type to render as (string or function). */
- as: PropTypes.elementType,
-
- /** Formatted to appear bordered. */
- bordered: PropTypes.bool,
-
- /** Icon can formatted to appear circular. */
- circular: PropTypes.bool,
-
- /** Additional classes. */
- className: PropTypes.string,
-
- /** Color of the icon. */
- color: PropTypes.oneOf(SUI.COLORS),
-
- /** Icons can display a smaller corner icon. */
- corner: PropTypes.oneOfType([
- PropTypes.bool,
- PropTypes.oneOf(['top left', 'top right', 'bottom left', 'bottom right']),
- ]),
-
- /** Show that the icon is inactive. */
- disabled: PropTypes.bool,
-
- /** Fitted, without space to left or right of Icon. */
- fitted: PropTypes.bool,
-
- /** Icon can be flipped. */
- flipped: PropTypes.oneOf(['horizontally', 'vertically']),
-
- /** Formatted to have its colors inverted for contrast. */
- inverted: PropTypes.bool,
-
- /** Icon can be formatted as a link. */
- link: PropTypes.bool,
-
- /** Icon can be used as a simple loader. */
- loading: PropTypes.bool,
-
- /** Name of the icon. */
- name: customPropTypes.suggest(SUI.ALL_ICONS_IN_ALL_CONTEXTS),
-
- /** Icon can rotated. */
- rotated: PropTypes.oneOf(['clockwise', 'counterclockwise']),
-
- /** Size of the icon. */
- size: PropTypes.oneOf(_.without(SUI.SIZES, 'medium')),
-
- /** Icon can have an aria label. */
- 'aria-hidden': PropTypes.string,
-
- /** Icon can have an aria label. */
- 'aria-label': PropTypes.string,
- }
-
- static defaultProps = {
- as: 'i',
- }
-
- static Group = IconGroup
-
getIconAriaOptions() {
const ariaOptions = {}
const { 'aria-label': ariaLabel, 'aria-hidden': ariaHidden } = this.props
@@ -153,6 +91,68 @@ class Icon extends PureComponent {
}
}
+Icon.propTypes = {
+ /** An element type to render as (string or function). */
+ as: PropTypes.elementType,
+
+ /** Formatted to appear bordered. */
+ bordered: PropTypes.bool,
+
+ /** Icon can formatted to appear circular. */
+ circular: PropTypes.bool,
+
+ /** Additional classes. */
+ className: PropTypes.string,
+
+ /** Color of the icon. */
+ color: PropTypes.oneOf(SUI.COLORS),
+
+ /** Icons can display a smaller corner icon. */
+ corner: PropTypes.oneOfType([
+ PropTypes.bool,
+ PropTypes.oneOf(['top left', 'top right', 'bottom left', 'bottom right']),
+ ]),
+
+ /** Show that the icon is inactive. */
+ disabled: PropTypes.bool,
+
+ /** Fitted, without space to left or right of Icon. */
+ fitted: PropTypes.bool,
+
+ /** Icon can be flipped. */
+ flipped: PropTypes.oneOf(['horizontally', 'vertically']),
+
+ /** Formatted to have its colors inverted for contrast. */
+ inverted: PropTypes.bool,
+
+ /** Icon can be formatted as a link. */
+ link: PropTypes.bool,
+
+ /** Icon can be used as a simple loader. */
+ loading: PropTypes.bool,
+
+ /** Name of the icon. */
+ name: customPropTypes.suggest(SUI.ALL_ICONS_IN_ALL_CONTEXTS),
+
+ /** Icon can rotated. */
+ rotated: PropTypes.oneOf(['clockwise', 'counterclockwise']),
+
+ /** Size of the icon. */
+ size: PropTypes.oneOf(_.without(SUI.SIZES, 'medium')),
+
+ /** Icon can have an aria label. */
+ 'aria-hidden': PropTypes.string,
+
+ /** Icon can have an aria label. */
+ 'aria-label': PropTypes.string,
+}
+
+Icon.defaultProps = {
+ as: 'i',
+}
+
+Icon.Group = IconGroup
+
Icon.create = createShorthandFactory(Icon, (value) => ({ name: value }))
export default Icon
diff --git a/src/elements/Input/Input.d.ts b/src/elements/Input/Input.d.ts
index 1fcf164a6e..5a4c93feb6 100644
--- a/src/elements/Input/Input.d.ts
+++ b/src/elements/Input/Input.d.ts
@@ -1,6 +1,6 @@
import * as React from 'react'
-import { HtmlInputrops, SemanticShorthandItem, SemanticSIZES } from '../../generic'
+import { HtmlInputrops, SemanticShorthandItem } from '../../generic'
import { LabelProps } from '../Label'
export interface InputProps extends StrictInputProps {
@@ -81,7 +81,7 @@ export interface InputOnChangeData extends InputProps {
value: string
}
-declare class Input extends React.Component {
+declare class Input extends React.Component {
focus: () => void
select: () => void
}
diff --git a/src/elements/Input/Input.js b/src/elements/Input/Input.js
index 2e48417768..e34ef5706d 100644
--- a/src/elements/Input/Input.js
+++ b/src/elements/Input/Input.js
@@ -27,80 +27,6 @@ import Label from '../Label'
* @see Label
*/
class Input extends Component {
- static propTypes = {
- /** An element type to render as (string or function). */
- as: PropTypes.elementType,
-
- /** An Input can be formatted to alert the user to an action they may perform. */
- action: PropTypes.oneOfType([PropTypes.bool, customPropTypes.itemShorthand]),
-
- /** An action can appear along side an Input on the left or right. */
- actionPosition: PropTypes.oneOf(['left']),
-
- /** Primary content. */
- children: PropTypes.node,
-
- /** Additional classes. */
- className: PropTypes.string,
-
- /** An Input field can show that it is disabled. */
- disabled: PropTypes.bool,
-
- /** An Input field can show the data contains errors. */
- error: PropTypes.bool,
-
- /** Take on the size of its container. */
- fluid: PropTypes.bool,
-
- /** An Input field can show a user is currently interacting with it. */
- focus: PropTypes.bool,
-
- /** Optional Icon to display inside the Input. */
- icon: PropTypes.oneOfType([PropTypes.bool, customPropTypes.itemShorthand]),
-
- /** An Icon can appear inside an Input on the left or right. */
- iconPosition: PropTypes.oneOf(['left']),
-
- /** Shorthand for creating the HTML Input. */
- input: customPropTypes.itemShorthand,
-
- /** Format to appear on dark backgrounds. */
- inverted: PropTypes.bool,
-
- /** Optional Label to display along side the Input. */
- label: customPropTypes.itemShorthand,
-
- /** A Label can appear outside an Input on the left or right. */
- labelPosition: PropTypes.oneOf(['left', 'right', 'left corner', 'right corner']),
-
- /** An Icon Input field can show that it is currently loading data. */
- loading: PropTypes.bool,
-
- /**
- * Called on change.
- *
- * @param {ChangeEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props and a proposed value.
- */
- onChange: PropTypes.func,
-
- /** An Input can vary in size. */
- size: PropTypes.oneOf(['mini', 'small', 'large', 'big', 'huge', 'massive']),
-
- /** An Input can receive focus. */
- tabIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
-
- /** Transparent Input has no background. */
- transparent: PropTypes.bool,
-
- /** The HTML input type. */
- type: PropTypes.string,
- }
-
- static defaultProps = {
- type: 'text',
- }
-
inputRef = createRef()
computeIcon = () => {
@@ -240,6 +166,80 @@ class Input extends Component {
}
}
+Input.propTypes = {
+ /** An element type to render as (string or function). */
+ as: PropTypes.elementType,
+
+ /** An Input can be formatted to alert the user to an action they may perform. */
+ action: PropTypes.oneOfType([PropTypes.bool, customPropTypes.itemShorthand]),
+
+ /** An action can appear along side an Input on the left or right. */
+ actionPosition: PropTypes.oneOf(['left']),
+
+ /** Primary content. */
+ children: PropTypes.node,
+
+ /** Additional classes. */
+ className: PropTypes.string,
+
+ /** An Input field can show that it is disabled. */
+ disabled: PropTypes.bool,
+
+ /** An Input field can show the data contains errors. */
+ error: PropTypes.bool,
+
+ /** Take on the size of its container. */
+ fluid: PropTypes.bool,
+
+ /** An Input field can show a user is currently interacting with it. */
+ focus: PropTypes.bool,
+
+ /** Optional Icon to display inside the Input. */
+ icon: PropTypes.oneOfType([PropTypes.bool, customPropTypes.itemShorthand]),
+
+ /** An Icon can appear inside an Input on the left or right. */
+ iconPosition: PropTypes.oneOf(['left']),
+
+ /** Shorthand for creating the HTML Input. */
+ input: customPropTypes.itemShorthand,
+
+ /** Format to appear on dark backgrounds. */
+ inverted: PropTypes.bool,
+
+ /** Optional Label to display along side the Input. */
+ label: customPropTypes.itemShorthand,
+
+ /** A Label can appear outside an Input on the left or right. */
+ labelPosition: PropTypes.oneOf(['left', 'right', 'left corner', 'right corner']),
+
+ /** An Icon Input field can show that it is currently loading data. */
+ loading: PropTypes.bool,
+
+ /**
+ * Called on change.
+ *
+ * @param {ChangeEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props and a proposed value.
+ */
+ onChange: PropTypes.func,
+
+ /** An Input can vary in size. */
+ size: PropTypes.oneOf(['mini', 'small', 'large', 'big', 'huge', 'massive']),
+
+ /** An Input can receive focus. */
+ tabIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
+
+ /** Transparent Input has no background. */
+ transparent: PropTypes.bool,
+
+ /** The HTML input type. */
+ type: PropTypes.string,
+}
+
+Input.defaultProps = {
+ type: 'text',
+}
+
Input.create = createShorthandFactory(Input, (type) => ({ type }))
export default Input
diff --git a/src/elements/Label/Label.d.ts b/src/elements/Label/Label.d.ts
index f772a54c70..48f58f58b3 100644
--- a/src/elements/Label/Label.d.ts
+++ b/src/elements/Label/Label.d.ts
@@ -7,7 +7,7 @@ import {
SemanticSIZES,
} from '../../generic'
import { IconProps } from '../Icon'
-import { default as LabelDetail, LabelDetailProps } from './LabelDetail'
+import LabelDetail, { LabelDetailProps } from './LabelDetail'
import LabelGroup from './LabelGroup'
export interface LabelProps extends StrictLabelProps {
diff --git a/src/elements/Label/Label.js b/src/elements/Label/Label.js
index 748a891777..2f8e8b1c3d 100644
--- a/src/elements/Label/Label.js
+++ b/src/elements/Label/Label.js
@@ -23,103 +23,6 @@ import LabelGroup from './LabelGroup'
* A label displays content classification.
*/
export default class Label extends Component {
- static propTypes = {
- /** An element type to render as (string or function). */
- as: PropTypes.elementType,
-
- /** A label can be active. */
- active: PropTypes.bool,
-
- /** A label can attach to a content segment. */
- attached: PropTypes.oneOf([
- 'top',
- 'bottom',
- 'top right',
- 'top left',
- 'bottom left',
- 'bottom right',
- ]),
-
- /** A label can reduce its complexity. */
- basic: PropTypes.bool,
-
- /** Primary content. */
- children: PropTypes.node,
-
- /** A label can be circular. */
- circular: PropTypes.bool,
-
- /** Additional classes. */
- className: PropTypes.string,
-
- /** Color of the label. */
- color: PropTypes.oneOf(SUI.COLORS),
-
- /** Shorthand for primary content. */
- content: customPropTypes.contentShorthand,
-
- /** A label can position itself in the corner of an element. */
- corner: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['left', 'right'])]),
-
- /** Shorthand for LabelDetail. */
- detail: customPropTypes.itemShorthand,
-
- /** Formats the label as a dot. */
- empty: customPropTypes.every([PropTypes.bool, customPropTypes.demand(['circular'])]),
-
- /** Float above another element in the upper right corner. */
- floating: PropTypes.bool,
-
- /** A horizontal label is formatted to label content along-side it horizontally. */
- horizontal: PropTypes.bool,
-
- /** Shorthand for Icon. */
- icon: customPropTypes.itemShorthand,
-
- /** A label can be formatted to emphasize an image or prop can be used as shorthand for Image. */
- image: PropTypes.oneOfType([PropTypes.bool, customPropTypes.itemShorthand]),
-
- /**
- * Called on click.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onClick: PropTypes.func,
-
- /**
- * Adds an "x" icon, called when "x" is clicked.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onRemove: PropTypes.func,
-
- /** A label can point to content next to it. */
- pointing: PropTypes.oneOfType([
- PropTypes.bool,
- PropTypes.oneOf(['above', 'below', 'left', 'right']),
- ]),
-
- /** A label can prompt for an error in your forms. */
- prompt: PropTypes.bool,
-
- /** Shorthand for Icon to appear as the last child and trigger onRemove. */
- removeIcon: customPropTypes.itemShorthand,
-
- /** A label can appear as a ribbon attaching itself to an element. */
- ribbon: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['right'])]),
-
- /** A label can have different sizes. */
- size: PropTypes.oneOf(SUI.SIZES),
-
- /** A label can appear as a tag. */
- tag: PropTypes.bool,
- }
-
- static Detail = LabelDetail
- static Group = LabelGroup
-
handleClick = (e) => {
const { onClick } = this.props
@@ -213,4 +116,101 @@ export default class Label extends Component {
}
}
+Label.propTypes = {
+ /** An element type to render as (string or function). */
+ as: PropTypes.elementType,
+
+ /** A label can be active. */
+ active: PropTypes.bool,
+
+ /** A label can attach to a content segment. */
+ attached: PropTypes.oneOf([
+ 'top',
+ 'bottom',
+ 'top right',
+ 'top left',
+ 'bottom left',
+ 'bottom right',
+ ]),
+
+ /** A label can reduce its complexity. */
+ basic: PropTypes.bool,
+
+ /** Primary content. */
+ children: PropTypes.node,
+
+ /** A label can be circular. */
+ circular: PropTypes.bool,
+
+ /** Additional classes. */
+ className: PropTypes.string,
+
+ /** Color of the label. */
+ color: PropTypes.oneOf(SUI.COLORS),
+
+ /** Shorthand for primary content. */
+ content: customPropTypes.contentShorthand,
+
+ /** A label can position itself in the corner of an element. */
+ corner: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['left', 'right'])]),
+
+ /** Shorthand for LabelDetail. */
+ detail: customPropTypes.itemShorthand,
+
+ /** Formats the label as a dot. */
+ empty: customPropTypes.every([PropTypes.bool, customPropTypes.demand(['circular'])]),
+
+ /** Float above another element in the upper right corner. */
+ floating: PropTypes.bool,
+
+ /** A horizontal label is formatted to label content along-side it horizontally. */
+ horizontal: PropTypes.bool,
+
+ /** Shorthand for Icon. */
+ icon: customPropTypes.itemShorthand,
+
+ /** A label can be formatted to emphasize an image or prop can be used as shorthand for Image. */
+ image: PropTypes.oneOfType([PropTypes.bool, customPropTypes.itemShorthand]),
+
+ /**
+ * Called on click.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onClick: PropTypes.func,
+
+ /**
+ * Adds an "x" icon, called when "x" is clicked.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onRemove: PropTypes.func,
+
+ /** A label can point to content next to it. */
+ pointing: PropTypes.oneOfType([
+ PropTypes.bool,
+ PropTypes.oneOf(['above', 'below', 'left', 'right']),
+ ]),
+
+ /** A label can prompt for an error in your forms. */
+ prompt: PropTypes.bool,
+
+ /** Shorthand for Icon to appear as the last child and trigger onRemove. */
+ removeIcon: customPropTypes.itemShorthand,
+
+ /** A label can appear as a ribbon attaching itself to an element. */
+ ribbon: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['right'])]),
+
+ /** A label can have different sizes. */
+ size: PropTypes.oneOf(SUI.SIZES),
+
+ /** A label can appear as a tag. */
+ tag: PropTypes.bool,
+}
+
+Label.Detail = LabelDetail
+Label.Group = LabelGroup
+
Label.create = createShorthandFactory(Label, (value) => ({ content: value }))
diff --git a/src/elements/List/List.d.ts b/src/elements/List/List.d.ts
index 986e1b41d7..e4c1fc847f 100644
--- a/src/elements/List/List.d.ts
+++ b/src/elements/List/List.d.ts
@@ -11,7 +11,7 @@ import ListContent from './ListContent'
import ListDescription from './ListDescription'
import ListHeader from './ListHeader'
import ListIcon from './ListIcon'
-import { default as ListItem, ListItemProps } from './ListItem'
+import ListItem, { ListItemProps } from './ListItem'
import ListList from './ListList'
export interface ListProps extends StrictListProps {
diff --git a/src/elements/List/List.js b/src/elements/List/List.js
index 04a2151fde..a1fd825ca0 100644
--- a/src/elements/List/List.js
+++ b/src/elements/List/List.js
@@ -25,77 +25,6 @@ import ListList from './ListList'
* A list groups related content.
*/
class List extends Component {
- static propTypes = {
- /** An element type to render as (string or function). */
- as: PropTypes.elementType,
-
- /** A list can animate to set the current item apart from the list. */
- animated: PropTypes.bool,
-
- /** A list can mark items with a bullet. */
- bulleted: PropTypes.bool,
-
- /** A list can divide its items into cells. */
- celled: PropTypes.bool,
-
- /** Primary content. */
- children: PropTypes.node,
-
- /** Additional classes. */
- className: PropTypes.string,
-
- /** Shorthand for primary content. */
- content: customPropTypes.contentShorthand,
-
- /** A list can show divisions between content. */
- divided: PropTypes.bool,
-
- /** An list can be floated left or right. */
- floated: PropTypes.oneOf(SUI.FLOATS),
-
- /** A list can be formatted to have items appear horizontally. */
- horizontal: PropTypes.bool,
-
- /** A list can be inverted to appear on a dark background. */
- inverted: PropTypes.bool,
-
- /** Shorthand array of props for ListItem. */
- items: customPropTypes.collectionShorthand,
-
- /** A list can be specially formatted for navigation links. */
- link: PropTypes.bool,
-
- /**
- * onClick handler for ListItem. Mutually exclusive with children.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All item props.
- */
- onItemClick: customPropTypes.every([customPropTypes.disallow(['children']), PropTypes.func]),
-
- /** A list can be ordered numerically. */
- ordered: PropTypes.bool,
-
- /** A list can relax its padding to provide more negative space. */
- relaxed: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['very'])]),
-
- /** A selection list formats list items as possible choices. */
- selection: PropTypes.bool,
-
- /** A list can vary in size. */
- size: PropTypes.oneOf(SUI.SIZES),
-
- /** An element inside a list can be vertically aligned. */
- verticalAlign: PropTypes.oneOf(SUI.VERTICAL_ALIGNMENTS),
- }
-
- static Content = ListContent
- static Description = ListDescription
- static Header = ListHeader
- static Icon = ListIcon
- static Item = ListItem
- static List = ListList
-
handleItemOverrides = (predefinedProps) => ({
onClick: (e, itemProps) => {
_.invoke(predefinedProps, 'onClick', e, itemProps)
@@ -169,4 +98,75 @@ class List extends Component {
}
}
+List.propTypes = {
+ /** An element type to render as (string or function). */
+ as: PropTypes.elementType,
+
+ /** A list can animate to set the current item apart from the list. */
+ animated: PropTypes.bool,
+
+ /** A list can mark items with a bullet. */
+ bulleted: PropTypes.bool,
+
+ /** A list can divide its items into cells. */
+ celled: PropTypes.bool,
+
+ /** Primary content. */
+ children: PropTypes.node,
+
+ /** Additional classes. */
+ className: PropTypes.string,
+
+ /** Shorthand for primary content. */
+ content: customPropTypes.contentShorthand,
+
+ /** A list can show divisions between content. */
+ divided: PropTypes.bool,
+
+ /** An list can be floated left or right. */
+ floated: PropTypes.oneOf(SUI.FLOATS),
+
+ /** A list can be formatted to have items appear horizontally. */
+ horizontal: PropTypes.bool,
+
+ /** A list can be inverted to appear on a dark background. */
+ inverted: PropTypes.bool,
+
+ /** Shorthand array of props for ListItem. */
+ items: customPropTypes.collectionShorthand,
+
+ /** A list can be specially formatted for navigation links. */
+ link: PropTypes.bool,
+
+ /**
+ * onClick handler for ListItem. Mutually exclusive with children.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All item props.
+ */
+ onItemClick: customPropTypes.every([customPropTypes.disallow(['children']), PropTypes.func]),
+
+ /** A list can be ordered numerically. */
+ ordered: PropTypes.bool,
+
+ /** A list can relax its padding to provide more negative space. */
+ relaxed: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['very'])]),
+
+ /** A selection list formats list items as possible choices. */
+ selection: PropTypes.bool,
+
+ /** A list can vary in size. */
+ size: PropTypes.oneOf(SUI.SIZES),
+
+ /** An element inside a list can be vertically aligned. */
+ verticalAlign: PropTypes.oneOf(SUI.VERTICAL_ALIGNMENTS),
+}
+
+List.Content = ListContent
+List.Description = ListDescription
+List.Header = ListHeader
+List.Icon = ListIcon
+List.Item = ListItem
+List.List = ListList
+
export default List
diff --git a/src/elements/List/ListItem.js b/src/elements/List/ListItem.js
index a1e55ba0f1..3fb771af09 100644
--- a/src/elements/List/ListItem.js
+++ b/src/elements/List/ListItem.js
@@ -21,64 +21,6 @@ import ListIcon from './ListIcon'
* A list item can contain a set of items.
*/
class ListItem extends Component {
- static propTypes = {
- /** An element type to render as (string or function). */
- as: PropTypes.elementType,
-
- /** A list item can active. */
- active: PropTypes.bool,
-
- /** Primary content. */
- children: PropTypes.node,
-
- /** Additional classes. */
- className: PropTypes.string,
-
- /**
- * Shorthand for primary content.
- *
- * Heads up!
- *
- * This is handled slightly differently than the typical `content` prop since
- * the wrapping ListContent is not used when there's no icon or image.
- *
- * If you pass content as:
- * - an element/literal, it's treated as the sibling node to
- * header/description (whether wrapped in Item.Content or not).
- * - a props object, it forces the presence of Item.Content and passes those
- * props to it. If you pass a content prop within that props object, it
- * will be treated as the sibling node to header/description.
- */
- content: customPropTypes.itemShorthand,
-
- /** Shorthand for ListDescription. */
- description: customPropTypes.itemShorthand,
-
- /** A list item can disabled. */
- disabled: PropTypes.bool,
-
- /** Shorthand for ListHeader. */
- header: customPropTypes.itemShorthand,
-
- /** Shorthand for ListIcon. */
- icon: customPropTypes.every([
- customPropTypes.disallow(['image']),
- customPropTypes.itemShorthand,
- ]),
-
- /** Shorthand for Image. */
- image: customPropTypes.every([
- customPropTypes.disallow(['icon']),
- customPropTypes.itemShorthand,
- ]),
-
- /** A ListItem can be clicked */
- onClick: PropTypes.func,
-
- /** A value for an ordered list. */
- value: PropTypes.string,
- }
-
handleClick = (e) => {
const { disabled } = this.props
@@ -184,6 +126,57 @@ class ListItem extends Component {
}
}
+ListItem.propTypes = {
+ /** An element type to render as (string or function). */
+ as: PropTypes.elementType,
+
+ /** A list item can active. */
+ active: PropTypes.bool,
+
+ /** Primary content. */
+ children: PropTypes.node,
+
+ /** Additional classes. */
+ className: PropTypes.string,
+
+ /**
+ * Shorthand for primary content.
+ *
+ * Heads up!
+ *
+ * This is handled slightly differently than the typical `content` prop since
+ * the wrapping ListContent is not used when there's no icon or image.
+ *
+ * If you pass content as:
+ * - an element/literal, it's treated as the sibling node to
+ * header/description (whether wrapped in Item.Content or not).
+ * - a props object, it forces the presence of Item.Content and passes those
+ * props to it. If you pass a content prop within that props object, it
+ * will be treated as the sibling node to header/description.
+ */
+ content: customPropTypes.itemShorthand,
+
+ /** Shorthand for ListDescription. */
+ description: customPropTypes.itemShorthand,
+
+ /** A list item can disabled. */
+ disabled: PropTypes.bool,
+
+ /** Shorthand for ListHeader. */
+ header: customPropTypes.itemShorthand,
+
+ /** Shorthand for ListIcon. */
+ icon: customPropTypes.every([customPropTypes.disallow(['image']), customPropTypes.itemShorthand]),
+
+ /** Shorthand for Image. */
+ image: customPropTypes.every([customPropTypes.disallow(['icon']), customPropTypes.itemShorthand]),
+
+ /** A ListItem can be clicked */
+ onClick: PropTypes.func,
+
+ /** A value for an ordered list. */
+ value: PropTypes.string,
+}
ListItem.create = createShorthandFactory(ListItem, (content) => ({ content }))
export default ListItem
diff --git a/src/elements/Step/Step.d.ts b/src/elements/Step/Step.d.ts
index 5c57ec56be..b09d752bda 100644
--- a/src/elements/Step/Step.d.ts
+++ b/src/elements/Step/Step.d.ts
@@ -3,9 +3,9 @@ import * as React from 'react'
import { SemanticShorthandContent, SemanticShorthandItem } from '../../generic'
import { IconProps } from '../Icon'
import StepContent from './StepContent'
-import { default as StepDescription, StepDescriptionProps } from './StepDescription'
+import StepDescription, { StepDescriptionProps } from './StepDescription'
import StepGroup from './StepGroup'
-import { default as StepTitle, StepTitleProps } from './StepTitle'
+import StepTitle, { StepTitleProps } from './StepTitle'
export interface StepProps extends StrictStepProps {
[key: string]: any
diff --git a/src/elements/Step/Step.js b/src/elements/Step/Step.js
index 1069b301c6..e13bc24d8c 100644
--- a/src/elements/Step/Step.js
+++ b/src/elements/Step/Step.js
@@ -21,61 +21,6 @@ import StepTitle from './StepTitle'
* A step shows the completion status of an activity in a series of activities.
*/
class Step extends Component {
- static propTypes = {
- /** An element type to render as (string or function). */
- as: PropTypes.elementType,
-
- /** A step can be highlighted as active. */
- active: PropTypes.bool,
-
- /** Primary content. */
- children: PropTypes.node,
-
- /** Additional classes. */
- className: PropTypes.string,
-
- /** A step can show that a user has completed it. */
- completed: PropTypes.bool,
-
- /** Shorthand for primary content. */
- content: customPropTypes.contentShorthand,
-
- /** Shorthand for StepDescription. */
- description: customPropTypes.itemShorthand,
-
- /** Show that the Loader is inactive. */
- disabled: PropTypes.bool,
-
- /** Render as an `a` tag instead of a `div` and adds the href attribute. */
- href: PropTypes.string,
-
- /** Shorthand for Icon. */
- icon: customPropTypes.itemShorthand,
-
- /** A step can be link. */
- link: PropTypes.bool,
-
- /**
- * Called on click. When passed, the component will render as an `a`
- * tag by default instead of a `div`.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onClick: PropTypes.func,
-
- /** A step can show a ordered sequence of steps. Passed from StepGroup. */
- ordered: PropTypes.bool,
-
- /** Shorthand for StepTitle. */
- title: customPropTypes.itemShorthand,
- }
-
- static Content = StepContent
- static Description = StepDescription
- static Group = StepGroup
- static Title = StepTitle
-
computeElementType = () => {
const { onClick } = this.props
@@ -139,6 +84,61 @@ class Step extends Component {
}
}
+Step.propTypes = {
+ /** An element type to render as (string or function). */
+ as: PropTypes.elementType,
+
+ /** A step can be highlighted as active. */
+ active: PropTypes.bool,
+
+ /** Primary content. */
+ children: PropTypes.node,
+
+ /** Additional classes. */
+ className: PropTypes.string,
+
+ /** A step can show that a user has completed it. */
+ completed: PropTypes.bool,
+
+ /** Shorthand for primary content. */
+ content: customPropTypes.contentShorthand,
+
+ /** Shorthand for StepDescription. */
+ description: customPropTypes.itemShorthand,
+
+ /** Show that the Loader is inactive. */
+ disabled: PropTypes.bool,
+
+ /** Render as an `a` tag instead of a `div` and adds the href attribute. */
+ href: PropTypes.string,
+
+ /** Shorthand for Icon. */
+ icon: customPropTypes.itemShorthand,
+
+ /** A step can be link. */
+ link: PropTypes.bool,
+
+ /**
+ * Called on click. When passed, the component will render as an `a`
+ * tag by default instead of a `div`.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onClick: PropTypes.func,
+
+ /** A step can show a ordered sequence of steps. Passed from StepGroup. */
+ ordered: PropTypes.bool,
+
+ /** Shorthand for StepTitle. */
+ title: customPropTypes.itemShorthand,
+}
+
+Step.Content = StepContent
+Step.Description = StepDescription
+Step.Group = StepGroup
+Step.Title = StepTitle
+
Step.create = createShorthandFactory(Step, (content) => ({ content }))
export default Step
diff --git a/src/generic.d.ts b/src/generic.d.ts
index 9d0e11317f..7de8911d7d 100644
--- a/src/generic.d.ts
+++ b/src/generic.d.ts
@@ -126,14 +126,7 @@ type SemanticDIRECTIONALTRANSITIONS =
| 'swing left'
| 'swing right'
| 'zoom'
-type SemanticSTATICTRANSITIONS =
- | 'jiggle'
- | 'flash'
- | 'shake'
- | 'pulse'
- | 'tada'
- | 'bounce'
- | 'glow'
+type SemanticSTATICTRANSITIONS = 'jiggle' | 'flash' | 'shake' | 'pulse' | 'tada' | 'bounce' | 'glow'
export type SemanticTRANSITIONS = SemanticDIRECTIONALTRANSITIONS | SemanticSTATICTRANSITIONS
diff --git a/src/lib/customPropTypes.js b/src/lib/customPropTypes.js
index 2aed4fd21a..cf6f3fef50 100644
--- a/src/lib/customPropTypes.js
+++ b/src/lib/customPropTypes.js
@@ -62,12 +62,7 @@ export const suggest = (suggestions) => {
// way of looking up a value in the map, i.e. we can sort the words in the
// incoming propValue and look that up without having to check all permutations.
const suggestionsLookup = suggestions.reduce((acc, key) => {
- acc[
- key
- .split(' ')
- .sort()
- .join(' ')
- ] = true
+ acc[key.split(' ').sort().join(' ')] = true
return acc
}, {})
@@ -80,10 +75,7 @@ export const suggest = (suggestions) => {
// check if the words were correct but ordered differently.
// Since we're matching for classNames we need to allow any word order
// to pass validation, e.g. `left chevron` vs `chevron left`.
- const propValueSorted = propValue
- .split(' ')
- .sort()
- .join(' ')
+ const propValueSorted = propValue.split(' ').sort().join(' ')
if (suggestionsLookup[propValueSorted]) return
// find best suggestions
diff --git a/src/modules/Accordion/Accordion.d.ts b/src/modules/Accordion/Accordion.d.ts
index b0b926c1d7..69dcb3c36e 100644
--- a/src/modules/Accordion/Accordion.d.ts
+++ b/src/modules/Accordion/Accordion.d.ts
@@ -1,6 +1,6 @@
import * as React from 'react'
-import { default as AccordionAccordion, StrictAccordionAccordionProps } from './AccordionAccordion'
+import AccordionAccordion, { StrictAccordionAccordionProps } from './AccordionAccordion'
import AccordionContent from './AccordionContent'
import AccordionPanel from './AccordionPanel'
import AccordionTitle from './AccordionTitle'
diff --git a/src/modules/Accordion/AccordionAccordion.js b/src/modules/Accordion/AccordionAccordion.js
index 9642a21450..6f5fdd2ced 100644
--- a/src/modules/Accordion/AccordionAccordion.js
+++ b/src/modules/Accordion/AccordionAccordion.js
@@ -30,57 +30,6 @@ const warnIfPropsAreInvalid = (props, state) => {
* An Accordion can contain sub-accordions.
*/
export default class AccordionAccordion extends Component {
- static propTypes = {
- /** An element type to render as (string or function). */
- as: PropTypes.elementType,
-
- /** Index of the currently active panel. */
- activeIndex: customPropTypes.every([
- customPropTypes.disallow(['children']),
- PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.number), PropTypes.number]),
- ]),
-
- /** Primary content. */
- children: PropTypes.node,
-
- /** Additional classes. */
- className: PropTypes.string,
-
- /** Initial activeIndex value. */
- defaultActiveIndex: customPropTypes.every([
- customPropTypes.disallow(['children']),
- PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.number), PropTypes.number]),
- ]),
-
- /** Only allow one panel open at a time. */
- exclusive: PropTypes.bool,
-
- /**
- * Called when a panel title is clicked.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All item props.
- */
- onTitleClick: customPropTypes.every([customPropTypes.disallow(['children']), PropTypes.func]),
-
- /** Shorthand array of props for Accordion. */
- panels: customPropTypes.every([
- customPropTypes.disallow(['children']),
- PropTypes.arrayOf(
- PropTypes.shape({
- content: customPropTypes.itemShorthand,
- title: customPropTypes.itemShorthand,
- }),
- ),
- ]),
- }
-
- static defaultProps = {
- exclusive: true,
- }
-
- static autoControlledProps = ['activeIndex']
-
getInitialAutoControlledState({ exclusive }) {
return { activeIndex: exclusive ? -1 : [] }
}
@@ -146,4 +95,55 @@ export default class AccordionAccordion extends Component {
}
}
+AccordionAccordion.propTypes = {
+ /** An element type to render as (string or function). */
+ as: PropTypes.elementType,
+
+ /** Index of the currently active panel. */
+ activeIndex: customPropTypes.every([
+ customPropTypes.disallow(['children']),
+ PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.number), PropTypes.number]),
+ ]),
+
+ /** Primary content. */
+ children: PropTypes.node,
+
+ /** Additional classes. */
+ className: PropTypes.string,
+
+ /** Initial activeIndex value. */
+ defaultActiveIndex: customPropTypes.every([
+ customPropTypes.disallow(['children']),
+ PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.number), PropTypes.number]),
+ ]),
+
+ /** Only allow one panel open at a time. */
+ exclusive: PropTypes.bool,
+
+ /**
+ * Called when a panel title is clicked.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All item props.
+ */
+ onTitleClick: customPropTypes.every([customPropTypes.disallow(['children']), PropTypes.func]),
+
+ /** Shorthand array of props for Accordion. */
+ panels: customPropTypes.every([
+ customPropTypes.disallow(['children']),
+ PropTypes.arrayOf(
+ PropTypes.shape({
+ content: customPropTypes.itemShorthand,
+ title: customPropTypes.itemShorthand,
+ }),
+ ),
+ ]),
+}
+
+AccordionAccordion.defaultProps = {
+ exclusive: true,
+}
+
+AccordionAccordion.autoControlledProps = ['activeIndex']
+
AccordionAccordion.create = createShorthandFactory(AccordionAccordion, (content) => ({ content }))
diff --git a/src/modules/Accordion/AccordionPanel.d.ts b/src/modules/Accordion/AccordionPanel.d.ts
index 0e81975f33..b537d4daac 100644
--- a/src/modules/Accordion/AccordionPanel.d.ts
+++ b/src/modules/Accordion/AccordionPanel.d.ts
@@ -30,6 +30,6 @@ export interface StrictAccordionPanelProps {
title?: SemanticShorthandItem
}
-declare class AccordionPanel extends React.Component {}
+declare class AccordionPanel extends React.Component {}
export default AccordionPanel
diff --git a/src/modules/Accordion/AccordionPanel.js b/src/modules/Accordion/AccordionPanel.js
index 816ef673bc..b66acce997 100644
--- a/src/modules/Accordion/AccordionPanel.js
+++ b/src/modules/Accordion/AccordionPanel.js
@@ -1,6 +1,6 @@
import _ from 'lodash'
import PropTypes from 'prop-types'
-import React, { Component, Fragment } from 'react'
+import React, { Component } from 'react'
import { createShorthandFactory, customPropTypes } from '../../lib'
import AccordionTitle from './AccordionTitle'
@@ -10,28 +10,6 @@ import AccordionContent from './AccordionContent'
* A panel sub-component for Accordion component.
*/
class AccordionPanel extends Component {
- static propTypes = {
- /** Whether or not the title is in the open state. */
- active: PropTypes.bool,
-
- /** A shorthand for Accordion.Content. */
- content: customPropTypes.itemShorthand,
-
- /** A panel index. */
- index: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
-
- /**
- * Called when a panel title is clicked.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All item props.
- */
- onTitleClick: PropTypes.func,
-
- /** A shorthand for Accordion.Title. */
- title: customPropTypes.itemShorthand,
- }
-
handleTitleOverrides = (predefinedProps) => ({
onClick: (e, titleProps) => {
_.invoke(predefinedProps, 'onClick', e, titleProps)
@@ -43,7 +21,7 @@ class AccordionPanel extends Component {
const { active, content, index, title } = this.props
return (
-
+ <>
{AccordionTitle.create(title, {
autoGenerateKey: false,
defaultProps: { active, index },
@@ -53,11 +31,33 @@ class AccordionPanel extends Component {
autoGenerateKey: false,
defaultProps: { active },
})}
-
+ >
)
}
}
+AccordionPanel.propTypes = {
+ /** Whether or not the title is in the open state. */
+ active: PropTypes.bool,
+
+ /** A shorthand for Accordion.Content. */
+ content: customPropTypes.itemShorthand,
+
+ /** A panel index. */
+ index: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
+
+ /**
+ * Called when a panel title is clicked.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All item props.
+ */
+ onTitleClick: PropTypes.func,
+
+ /** A shorthand for Accordion.Title. */
+ title: customPropTypes.itemShorthand,
+}
+
AccordionPanel.create = createShorthandFactory(AccordionPanel, null)
export default AccordionPanel
diff --git a/src/modules/Accordion/AccordionTitle.js b/src/modules/Accordion/AccordionTitle.js
index c0a1c63bc4..c324ddad23 100644
--- a/src/modules/Accordion/AccordionTitle.js
+++ b/src/modules/Accordion/AccordionTitle.js
@@ -17,37 +17,6 @@ import Icon from '../../elements/Icon'
* A title sub-component for Accordion component.
*/
export default class AccordionTitle extends Component {
- static propTypes = {
- /** An element type to render as (string or function). */
- as: PropTypes.elementType,
-
- /** Whether or not the title is in the open state. */
- active: PropTypes.bool,
-
- /** Primary content. */
- children: PropTypes.node,
-
- /** Additional classes. */
- className: PropTypes.string,
-
- /** Shorthand for primary content. */
- content: customPropTypes.contentShorthand,
-
- /** Shorthand for Icon. */
- icon: customPropTypes.itemShorthand,
-
- /** AccordionTitle index inside Accordion. */
- index: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
-
- /**
- * Called on click.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onClick: PropTypes.func,
- }
-
handleClick = (e) => _.invoke(this.props, 'onClick', e, this.props)
render() {
@@ -75,4 +44,34 @@ export default class AccordionTitle extends Component {
}
}
+AccordionTitle.propTypes = {
+ /** An element type to render as (string or function). */
+ as: PropTypes.elementType,
+
+ /** Whether or not the title is in the open state. */
+ active: PropTypes.bool,
+
+ /** Primary content. */
+ children: PropTypes.node,
+
+ /** Additional classes. */
+ className: PropTypes.string,
+
+ /** Shorthand for primary content. */
+ content: customPropTypes.contentShorthand,
+
+ /** Shorthand for Icon. */
+ icon: customPropTypes.itemShorthand,
+
+ /** AccordionTitle index inside Accordion. */
+ index: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
+
+ /**
+ * Called on click.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onClick: PropTypes.func,
+}
AccordionTitle.create = createShorthandFactory(AccordionTitle, (content) => ({ content }))
diff --git a/src/modules/Checkbox/Checkbox.js b/src/modules/Checkbox/Checkbox.js
index 4c5ef7d84a..d2bf1b1b20 100644
--- a/src/modules/Checkbox/Checkbox.js
+++ b/src/modules/Checkbox/Checkbox.js
@@ -24,100 +24,6 @@ const debug = makeDebugger('checkbox')
* @see Radio
*/
export default class Checkbox extends Component {
- static propTypes = {
- /** An element type to render as (string or function). */
- as: PropTypes.elementType,
-
- /** Whether or not checkbox is checked. */
- checked: PropTypes.bool,
-
- /** Additional classes. */
- className: PropTypes.string,
-
- /** The initial value of checked. */
- defaultChecked: PropTypes.bool,
-
- /** Whether or not checkbox is indeterminate. */
- defaultIndeterminate: PropTypes.bool,
-
- /** A checkbox can appear disabled and be unable to change states */
- disabled: PropTypes.bool,
-
- /** Removes padding for a label. Auto applied when there is no label. */
- fitted: PropTypes.bool,
-
- /** A unique identifier. */
- id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
-
- /** Whether or not checkbox is indeterminate. */
- indeterminate: PropTypes.bool,
-
- /** The text of the associated label element. */
- label: customPropTypes.itemShorthand,
-
- /** The HTML input name. */
- name: PropTypes.string,
-
- /**
- * Called when the user attempts to change the checked state.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props and proposed checked/indeterminate state.
- */
- onChange: PropTypes.func,
-
- /**
- * Called when the checkbox or label is clicked.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props and current checked/indeterminate state.
- */
- onClick: PropTypes.func,
-
- /**
- * Called when the user presses down on the mouse.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props and current checked/indeterminate state.
- */
- onMouseDown: PropTypes.func,
-
- /**
- * Called when the user releases the mouse.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props and current checked/indeterminate state.
- */
- onMouseUp: PropTypes.func,
-
- /** Format as a radio element. This means it is an exclusive option. */
- radio: customPropTypes.every([PropTypes.bool, customPropTypes.disallow(['slider', 'toggle'])]),
-
- /** A checkbox can be read-only and unable to change states. */
- readOnly: PropTypes.bool,
-
- /** Format to emphasize the current selection state. */
- slider: customPropTypes.every([PropTypes.bool, customPropTypes.disallow(['radio', 'toggle'])]),
-
- /** A checkbox can receive focus. */
- tabIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
-
- /** Format to show an on or off choice. */
- toggle: customPropTypes.every([PropTypes.bool, customPropTypes.disallow(['radio', 'slider'])]),
-
- /** HTML input type, either checkbox or radio. */
- type: PropTypes.oneOf(['checkbox', 'radio']),
-
- /** The HTML input value. */
- value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
- }
-
- static defaultProps = {
- type: 'checkbox',
- }
-
- static autoControlledProps = ['checked', 'indeterminate']
-
inputRef = createRef()
labelRef = createRef()
@@ -308,3 +214,97 @@ export default class Checkbox extends Component {
)
}
}
+
+Checkbox.propTypes = {
+ /** An element type to render as (string or function). */
+ as: PropTypes.elementType,
+
+ /** Whether or not checkbox is checked. */
+ checked: PropTypes.bool,
+
+ /** Additional classes. */
+ className: PropTypes.string,
+
+ /** The initial value of checked. */
+ defaultChecked: PropTypes.bool,
+
+ /** Whether or not checkbox is indeterminate. */
+ defaultIndeterminate: PropTypes.bool,
+
+ /** A checkbox can appear disabled and be unable to change states */
+ disabled: PropTypes.bool,
+
+ /** Removes padding for a label. Auto applied when there is no label. */
+ fitted: PropTypes.bool,
+
+ /** A unique identifier. */
+ id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
+
+ /** Whether or not checkbox is indeterminate. */
+ indeterminate: PropTypes.bool,
+
+ /** The text of the associated label element. */
+ label: customPropTypes.itemShorthand,
+
+ /** The HTML input name. */
+ name: PropTypes.string,
+
+ /**
+ * Called when the user attempts to change the checked state.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props and proposed checked/indeterminate state.
+ */
+ onChange: PropTypes.func,
+
+ /**
+ * Called when the checkbox or label is clicked.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props and current checked/indeterminate state.
+ */
+ onClick: PropTypes.func,
+
+ /**
+ * Called when the user presses down on the mouse.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props and current checked/indeterminate state.
+ */
+ onMouseDown: PropTypes.func,
+
+ /**
+ * Called when the user releases the mouse.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props and current checked/indeterminate state.
+ */
+ onMouseUp: PropTypes.func,
+
+ /** Format as a radio element. This means it is an exclusive option. */
+ radio: customPropTypes.every([PropTypes.bool, customPropTypes.disallow(['slider', 'toggle'])]),
+
+ /** A checkbox can be read-only and unable to change states. */
+ readOnly: PropTypes.bool,
+
+ /** Format to emphasize the current selection state. */
+ slider: customPropTypes.every([PropTypes.bool, customPropTypes.disallow(['radio', 'toggle'])]),
+
+ /** A checkbox can receive focus. */
+ tabIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
+
+ /** Format to show an on or off choice. */
+ toggle: customPropTypes.every([PropTypes.bool, customPropTypes.disallow(['radio', 'slider'])]),
+
+ /** HTML input type, either checkbox or radio. */
+ type: PropTypes.oneOf(['checkbox', 'radio']),
+
+ /** The HTML input value. */
+ value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
+}
+
+Checkbox.defaultProps = {
+ type: 'checkbox',
+}
+
+Checkbox.autoControlledProps = ['checked', 'indeterminate']
diff --git a/src/modules/Dimmer/Dimmer.js b/src/modules/Dimmer/Dimmer.js
index 16cd20ffa0..9972452f74 100644
--- a/src/modules/Dimmer/Dimmer.js
+++ b/src/modules/Dimmer/Dimmer.js
@@ -10,17 +10,6 @@ import DimmerInner from './DimmerInner'
* A dimmer hides distractions to focus attention on particular content.
*/
export default class Dimmer extends Component {
- static propTypes = {
- /** An active dimmer will dim its parent container. */
- active: PropTypes.bool,
-
- /** A dimmer can be formatted to be fixed to the page. */
- page: PropTypes.bool,
- }
-
- static Dimmable = DimmerDimmable
- static Inner = DimmerInner
-
handlePortalMount = () => {
if (!isBrowser()) return
@@ -60,4 +49,15 @@ export default class Dimmer extends Component {
}
}
+Dimmer.propTypes = {
+ /** An active dimmer will dim its parent container. */
+ active: PropTypes.bool,
+
+ /** A dimmer can be formatted to be fixed to the page. */
+ page: PropTypes.bool,
+}
+
+Dimmer.Dimmable = DimmerDimmable
+Dimmer.Inner = DimmerInner
+
Dimmer.create = createShorthandFactory(Dimmer, (value) => ({ content: value }))
diff --git a/src/modules/Dimmer/DimmerInner.d.ts b/src/modules/Dimmer/DimmerInner.d.ts
index a9ccf29e3a..3a667cf5e1 100644
--- a/src/modules/Dimmer/DimmerInner.d.ts
+++ b/src/modules/Dimmer/DimmerInner.d.ts
@@ -53,6 +53,6 @@ export interface StrictDimmerInnerProps {
verticalAlign?: 'bottom' | 'top'
}
-declare class DimmerInner extends React.Component {}
+declare class DimmerInner extends React.Component {}
export default DimmerInner
diff --git a/src/modules/Dimmer/DimmerInner.js b/src/modules/Dimmer/DimmerInner.js
index 0377ee9502..81cdd157fb 100644
--- a/src/modules/Dimmer/DimmerInner.js
+++ b/src/modules/Dimmer/DimmerInner.js
@@ -18,54 +18,6 @@ import {
* An inner element for a Dimmer.
*/
export default class DimmerInner extends Component {
- static propTypes = {
- /** An element type to render as (string or function). */
- as: PropTypes.elementType,
-
- /** An active dimmer will dim its parent container. */
- active: PropTypes.bool,
-
- /** Primary content. */
- children: PropTypes.node,
-
- /** Additional classes. */
- className: PropTypes.string,
-
- /** Shorthand for primary content. */
- content: customPropTypes.contentShorthand,
-
- /** A disabled dimmer cannot be activated */
- disabled: PropTypes.bool,
-
- /**
- * Called on click.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onClick: PropTypes.func,
-
- /**
- * Handles click outside Dimmer's content, but inside Dimmer area.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onClickOutside: PropTypes.func,
-
- /** A dimmer can be formatted to have its colors inverted. */
- inverted: PropTypes.bool,
-
- /** A dimmer can be formatted to be fixed to the page. */
- page: PropTypes.bool,
-
- /** A dimmer can be controlled with simple prop. */
- simple: PropTypes.bool,
-
- /** A dimmer can have its content top or bottom aligned. */
- verticalAlign: PropTypes.oneOf(['bottom', 'top']),
- }
-
containerRef = createRef()
contentRef = createRef()
@@ -87,7 +39,7 @@ export default class DimmerInner extends Component {
_.invoke(this.props, 'onClick', e, this.props)
- if (contentRef && (contentRef !== e.target && doesNodeContainClick(contentRef, e))) {
+ if (contentRef && contentRef !== e.target && doesNodeContainClick(contentRef, e)) {
return
}
@@ -147,3 +99,51 @@ export default class DimmerInner extends Component {
)
}
}
+
+DimmerInner.propTypes = {
+ /** An element type to render as (string or function). */
+ as: PropTypes.elementType,
+
+ /** An active dimmer will dim its parent container. */
+ active: PropTypes.bool,
+
+ /** Primary content. */
+ children: PropTypes.node,
+
+ /** Additional classes. */
+ className: PropTypes.string,
+
+ /** Shorthand for primary content. */
+ content: customPropTypes.contentShorthand,
+
+ /** A disabled dimmer cannot be activated */
+ disabled: PropTypes.bool,
+
+ /**
+ * Called on click.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onClick: PropTypes.func,
+
+ /**
+ * Handles click outside Dimmer's content, but inside Dimmer area.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onClickOutside: PropTypes.func,
+
+ /** A dimmer can be formatted to have its colors inverted. */
+ inverted: PropTypes.bool,
+
+ /** A dimmer can be formatted to be fixed to the page. */
+ page: PropTypes.bool,
+
+ /** A dimmer can be controlled with simple prop. */
+ simple: PropTypes.bool,
+
+ /** A dimmer can have its content top or bottom aligned. */
+ verticalAlign: PropTypes.oneOf(['bottom', 'top']),
+}
diff --git a/src/modules/Dropdown/Dropdown.d.ts b/src/modules/Dropdown/Dropdown.d.ts
index 35bf0f1edc..a4b8529351 100644
--- a/src/modules/Dropdown/Dropdown.d.ts
+++ b/src/modules/Dropdown/Dropdown.d.ts
@@ -3,7 +3,7 @@ import * as React from 'react'
import { LabelProps } from '../../elements/Label'
import DropdownDivider from './DropdownDivider'
import DropdownHeader from './DropdownHeader'
-import { default as DropdownItem, DropdownItemProps } from './DropdownItem'
+import DropdownItem, { DropdownItemProps } from './DropdownItem'
import DropdownMenu from './DropdownMenu'
import DropdownSearchInput from './DropdownSearchInput'
@@ -74,7 +74,7 @@ export interface StrictDropdownProps {
defaultUpward?: boolean
/** Initial value or value array if multiple. */
- defaultValue?: string | number | boolean | (number | string | boolean)[]
+ defaultValue?: string | number | boolean | number | string | boolean[]
/** A dropdown menu can open to the left or to the right. */
direction?: 'left' | 'right'
@@ -246,7 +246,7 @@ export interface StrictDropdownProps {
* A selection dropdown can allow a user to search through a large list of choices.
* Pass a function here to replace the default search.
*/
- search?: boolean | ((options: DropdownItemProps[], value: string) => DropdownItemProps[])
+ search?: (options: DropdownItemProps[], value: string) => DropdownItemProps[] | boolean
/** A shorthand for a search input. */
searchInput?: any
@@ -279,7 +279,7 @@ export interface StrictDropdownProps {
trigger?: React.ReactNode
/** Current value or value array if multiple. Creates a controlled component. */
- value?: boolean | number | string | (boolean | number | string)[]
+ value?: boolean | number | string | boolean | number | string[]
/** Controls whether the dropdown will open upward. */
upward?: boolean
diff --git a/src/modules/Dropdown/Dropdown.js b/src/modules/Dropdown/Dropdown.js
index 2a20b53c1d..4d5df6ea85 100644
--- a/src/modules/Dropdown/Dropdown.js
+++ b/src/modules/Dropdown/Dropdown.js
@@ -42,351 +42,6 @@ const getKeyAndValues = (options) =>
* @see Menu
*/
export default class Dropdown extends Component {
- static propTypes = {
- /** An element type to render as (string or function). */
- as: PropTypes.elementType,
-
- /** Label prefixed to an option added by a user. */
- additionLabel: PropTypes.oneOfType([PropTypes.element, PropTypes.string]),
-
- /** Position of the `Add: ...` option in the dropdown list ('top' or 'bottom'). */
- additionPosition: PropTypes.oneOf(['top', 'bottom']),
-
- /**
- * Allow user additions to the list of options (boolean).
- * Requires the use of `selection`, `options` and `search`.
- */
- allowAdditions: customPropTypes.every([
- customPropTypes.demand(['options', 'selection', 'search']),
- PropTypes.bool,
- ]),
-
- /** A Dropdown can reduce its complexity. */
- basic: PropTypes.bool,
-
- /** Format the Dropdown to appear as a button. */
- button: PropTypes.bool,
-
- /** Primary content. */
- children: customPropTypes.every([
- customPropTypes.disallow(['options', 'selection']),
- customPropTypes.givenProps(
- { children: PropTypes.any.isRequired },
- PropTypes.element.isRequired,
- ),
- ]),
-
- /** Additional classes. */
- className: PropTypes.string,
-
- /** Using the clearable setting will let users remove their selection from a dropdown. */
- clearable: PropTypes.bool,
-
- /** Whether or not the menu should close when the dropdown is blurred. */
- closeOnBlur: PropTypes.bool,
-
- /** Whether or not the dropdown should close when the escape key is pressed. */
- closeOnEscape: PropTypes.bool,
-
- /**
- * Whether or not the menu should close when a value is selected from the dropdown.
- * By default, multiple selection dropdowns will remain open on change, while single
- * selection dropdowns will close on change.
- */
- closeOnChange: PropTypes.bool,
-
- /** A compact dropdown has no minimum width. */
- compact: PropTypes.bool,
-
- /** Whether or not the dropdown should strip diacritics in options and input search */
- deburr: PropTypes.bool,
-
- /** Initial value of open. */
- defaultOpen: PropTypes.bool,
-
- /** Initial value of searchQuery. */
- defaultSearchQuery: PropTypes.string,
-
- /** Currently selected label in multi-select. */
- defaultSelectedLabel: customPropTypes.every([
- customPropTypes.demand(['multiple']),
- PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
- ]),
-
- /** Initial value of upward. */
- defaultUpward: PropTypes.bool,
-
- /** Initial value or value array if multiple. */
- defaultValue: PropTypes.oneOfType([
- PropTypes.number,
- PropTypes.string,
- PropTypes.bool,
- PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool])),
- ]),
-
- /** A dropdown menu can open to the left or to the right. */
- direction: PropTypes.oneOf(['left', 'right']),
-
- /** A disabled dropdown menu or item does not allow user interaction. */
- disabled: PropTypes.bool,
-
- /** An errored dropdown can alert a user to a problem. */
- error: PropTypes.bool,
-
- /** A dropdown menu can contain floated content. */
- floating: PropTypes.bool,
-
- /** A dropdown can take the full width of its parent */
- fluid: PropTypes.bool,
-
- /** A dropdown menu can contain a header. */
- header: PropTypes.node,
-
- /** Shorthand for Icon. */
- icon: PropTypes.oneOfType([PropTypes.node, PropTypes.object]),
-
- /** A dropdown can be formatted to appear inline in other content. */
- inline: PropTypes.bool,
-
- /** A dropdown can be formatted as a Menu item. */
- item: PropTypes.bool,
-
- /** A dropdown can be labeled. */
- labeled: PropTypes.bool,
-
- /** A dropdown can defer rendering its options until it is open. */
- lazyLoad: PropTypes.bool,
-
- /** A dropdown can show that it is currently loading data. */
- loading: PropTypes.bool,
-
- /** The minimum characters for a search to begin showing results. */
- minCharacters: PropTypes.number,
-
- /** A selection dropdown can allow multiple selections. */
- multiple: PropTypes.bool,
-
- /** Message to display when there are no results. */
- noResultsMessage: PropTypes.node,
-
- /**
- * Called when a user adds a new item. Use this to update the options list.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props and the new item's value.
- */
- onAddItem: PropTypes.func,
-
- /**
- * Called on blur.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onBlur: PropTypes.func,
-
- /**
- * Called when the user attempts to change the value.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props and proposed value.
- */
- onChange: PropTypes.func,
-
- /**
- * Called on click.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onClick: PropTypes.func,
-
- /**
- * Called when a close event happens.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onClose: PropTypes.func,
-
- /**
- * Called on focus.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onFocus: PropTypes.func,
-
- /**
- * Called when a multi-select label is clicked.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All label props.
- */
- onLabelClick: PropTypes.func,
-
- /**
- * Called on mousedown.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onMouseDown: PropTypes.func,
-
- /**
- * Called when an open event happens.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onOpen: PropTypes.func,
-
- /**
- * Called on search input change.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props, includes current value of searchQuery.
- */
- onSearchChange: PropTypes.func,
-
- /** Controls whether or not the dropdown menu is displayed. */
- open: PropTypes.bool,
-
- /** Whether or not the menu should open when the dropdown is focused. */
- openOnFocus: PropTypes.bool,
-
- /** Array of Dropdown.Item props e.g. `{ text: '', value: '' }` */
- options: customPropTypes.every([
- customPropTypes.disallow(['children']),
- PropTypes.arrayOf(PropTypes.shape(DropdownItem.propTypes)),
- ]),
-
- /** Placeholder text. */
- placeholder: PropTypes.string,
-
- /** A dropdown can be formatted so that its menu is pointing. */
- pointing: PropTypes.oneOfType([
- PropTypes.bool,
- PropTypes.oneOf([
- 'left',
- 'right',
- 'top',
- 'top left',
- 'top right',
- 'bottom',
- 'bottom left',
- 'bottom right',
- ]),
- ]),
-
- /**
- * Mapped over the active items and returns shorthand for the active item Labels.
- * Only applies to `multiple` Dropdowns.
- *
- * @param {object} item - A currently active dropdown item.
- * @param {number} index - The current index.
- * @param {object} defaultLabelProps - The default props for an active item Label.
- * @returns {*} Shorthand for a Label.
- */
- renderLabel: PropTypes.func,
-
- /** A dropdown can have its menu scroll. */
- scrolling: PropTypes.bool,
-
- /**
- * A selection dropdown can allow a user to search through a large list of choices.
- * Pass a function here to replace the default search.
- */
- search: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]),
-
- /** A shorthand for a search input. */
- searchInput: PropTypes.oneOfType([PropTypes.array, PropTypes.node, PropTypes.object]),
-
- /** Current value of searchQuery. Creates a controlled component. */
- searchQuery: PropTypes.string,
-
- // TODO 'searchInMenu' or 'search='in menu' or ??? How to handle this markup and functionality?
-
- /** Define whether the highlighted item should be selected on blur. */
- selectOnBlur: PropTypes.bool,
-
- /**
- * Whether or not to change the value when navigating the menu using arrow keys.
- * Setting to false will require enter or left click to confirm a choice.
- */
- selectOnNavigation: PropTypes.bool,
-
- /** Currently selected label in multi-select. */
- selectedLabel: customPropTypes.every([
- customPropTypes.demand(['multiple']),
- PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
- ]),
-
- /** A dropdown can be used to select between choices in a form. */
- selection: customPropTypes.every([
- customPropTypes.disallow(['children']),
- customPropTypes.demand(['options']),
- PropTypes.bool,
- ]),
-
- /** A simple dropdown can open without Javascript. */
- simple: PropTypes.bool,
-
- /** A dropdown can receive focus. */
- tabIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
-
- /** The text displayed in the dropdown, usually for the active item. */
- text: PropTypes.string,
-
- /** Custom element to trigger the menu to become visible. Takes place of 'text'. */
- trigger: customPropTypes.every([
- customPropTypes.disallow(['selection', 'text']),
- PropTypes.node,
- ]),
-
- /** Current value or value array if multiple. Creates a controlled component. */
- value: PropTypes.oneOfType([
- PropTypes.bool,
- PropTypes.string,
- PropTypes.number,
- PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.bool, PropTypes.string, PropTypes.number])),
- ]),
-
- /** Controls whether the dropdown will open upward. */
- upward: PropTypes.bool,
-
- /**
- * A dropdown will go to the last element when ArrowUp is pressed on the first,
- * or go to the first when ArrowDown is pressed on the last( aka infinite selection )
- */
- wrapSelection: PropTypes.bool,
- }
-
- static defaultProps = {
- additionLabel: 'Add ',
- additionPosition: 'top',
- closeOnBlur: true,
- closeOnEscape: true,
- deburr: false,
- icon: 'dropdown',
- minCharacters: 1,
- noResultsMessage: 'No results found.',
- openOnFocus: true,
- renderLabel: ({ text }) => text,
- searchInput: 'text',
- selectOnBlur: true,
- selectOnNavigation: true,
- wrapSelection: true,
- }
-
- static autoControlledProps = ['open', 'searchQuery', 'selectedLabel', 'value', 'upward']
-
- static Divider = DropdownDivider
- static Header = DropdownHeader
- static Item = DropdownItem
- static Menu = DropdownMenu
- static SearchInput = DropdownSearchInput
-
searchRef = createRef()
sizerRef = createRef()
ref = createRef()
@@ -1390,3 +1045,345 @@ export default class Dropdown extends Component {
)
}
}
+
+Dropdown.propTypes = {
+ /** An element type to render as (string or function). */
+ as: PropTypes.elementType,
+
+ /** Label prefixed to an option added by a user. */
+ additionLabel: PropTypes.oneOfType([PropTypes.element, PropTypes.string]),
+
+ /** Position of the `Add: ...` option in the dropdown list ('top' or 'bottom'). */
+ additionPosition: PropTypes.oneOf(['top', 'bottom']),
+
+ /**
+ * Allow user additions to the list of options (boolean).
+ * Requires the use of `selection`, `options` and `search`.
+ */
+ allowAdditions: customPropTypes.every([
+ customPropTypes.demand(['options', 'selection', 'search']),
+ PropTypes.bool,
+ ]),
+
+ /** A Dropdown can reduce its complexity. */
+ basic: PropTypes.bool,
+
+ /** Format the Dropdown to appear as a button. */
+ button: PropTypes.bool,
+
+ /** Primary content. */
+ children: customPropTypes.every([
+ customPropTypes.disallow(['options', 'selection']),
+ customPropTypes.givenProps(
+ { children: PropTypes.any.isRequired },
+ PropTypes.element.isRequired,
+ ),
+ ]),
+
+ /** Additional classes. */
+ className: PropTypes.string,
+
+ /** Using the clearable setting will let users remove their selection from a dropdown. */
+ clearable: PropTypes.bool,
+
+ /** Whether or not the menu should close when the dropdown is blurred. */
+ closeOnBlur: PropTypes.bool,
+
+ /** Whether or not the dropdown should close when the escape key is pressed. */
+ closeOnEscape: PropTypes.bool,
+
+ /**
+ * Whether or not the menu should close when a value is selected from the dropdown.
+ * By default, multiple selection dropdowns will remain open on change, while single
+ * selection dropdowns will close on change.
+ */
+ closeOnChange: PropTypes.bool,
+
+ /** A compact dropdown has no minimum width. */
+ compact: PropTypes.bool,
+
+ /** Whether or not the dropdown should strip diacritics in options and input search */
+ deburr: PropTypes.bool,
+
+ /** Initial value of open. */
+ defaultOpen: PropTypes.bool,
+
+ /** Initial value of searchQuery. */
+ defaultSearchQuery: PropTypes.string,
+
+ /** Currently selected label in multi-select. */
+ defaultSelectedLabel: customPropTypes.every([
+ customPropTypes.demand(['multiple']),
+ PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
+ ]),
+
+ /** Initial value of upward. */
+ defaultUpward: PropTypes.bool,
+
+ /** Initial value or value array if multiple. */
+ defaultValue: PropTypes.oneOfType([
+ PropTypes.number,
+ PropTypes.string,
+ PropTypes.bool,
+ PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool])),
+ ]),
+
+ /** A dropdown menu can open to the left or to the right. */
+ direction: PropTypes.oneOf(['left', 'right']),
+
+ /** A disabled dropdown menu or item does not allow user interaction. */
+ disabled: PropTypes.bool,
+
+ /** An errored dropdown can alert a user to a problem. */
+ error: PropTypes.bool,
+
+ /** A dropdown menu can contain floated content. */
+ floating: PropTypes.bool,
+
+ /** A dropdown can take the full width of its parent */
+ fluid: PropTypes.bool,
+
+ /** A dropdown menu can contain a header. */
+ header: PropTypes.node,
+
+ /** Shorthand for Icon. */
+ icon: PropTypes.oneOfType([PropTypes.node, PropTypes.object]),
+
+ /** A dropdown can be formatted to appear inline in other content. */
+ inline: PropTypes.bool,
+
+ /** A dropdown can be formatted as a Menu item. */
+ item: PropTypes.bool,
+
+ /** A dropdown can be labeled. */
+ labeled: PropTypes.bool,
+
+ /** A dropdown can defer rendering its options until it is open. */
+ lazyLoad: PropTypes.bool,
+
+ /** A dropdown can show that it is currently loading data. */
+ loading: PropTypes.bool,
+
+ /** The minimum characters for a search to begin showing results. */
+ minCharacters: PropTypes.number,
+
+ /** A selection dropdown can allow multiple selections. */
+ multiple: PropTypes.bool,
+
+ /** Message to display when there are no results. */
+ noResultsMessage: PropTypes.node,
+
+ /**
+ * Called when a user adds a new item. Use this to update the options list.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props and the new item's value.
+ */
+ onAddItem: PropTypes.func,
+
+ /**
+ * Called on blur.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onBlur: PropTypes.func,
+
+ /**
+ * Called when the user attempts to change the value.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props and proposed value.
+ */
+ onChange: PropTypes.func,
+
+ /**
+ * Called on click.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onClick: PropTypes.func,
+
+ /**
+ * Called when a close event happens.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onClose: PropTypes.func,
+
+ /**
+ * Called on focus.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onFocus: PropTypes.func,
+
+ /**
+ * Called when a multi-select label is clicked.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All label props.
+ */
+ onLabelClick: PropTypes.func,
+
+ /**
+ * Called on mousedown.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onMouseDown: PropTypes.func,
+
+ /**
+ * Called when an open event happens.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onOpen: PropTypes.func,
+
+ /**
+ * Called on search input change.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props, includes current value of searchQuery.
+ */
+ onSearchChange: PropTypes.func,
+
+ /** Controls whether or not the dropdown menu is displayed. */
+ open: PropTypes.bool,
+
+ /** Whether or not the menu should open when the dropdown is focused. */
+ openOnFocus: PropTypes.bool,
+
+ /** Array of Dropdown.Item props e.g. `{ text: '', value: '' }` */
+ options: customPropTypes.every([
+ customPropTypes.disallow(['children']),
+ PropTypes.arrayOf(PropTypes.shape(DropdownItem.propTypes)),
+ ]),
+
+ /** Placeholder text. */
+ placeholder: PropTypes.string,
+
+ /** A dropdown can be formatted so that its menu is pointing. */
+ pointing: PropTypes.oneOfType([
+ PropTypes.bool,
+ PropTypes.oneOf([
+ 'left',
+ 'right',
+ 'top',
+ 'top left',
+ 'top right',
+ 'bottom',
+ 'bottom left',
+ 'bottom right',
+ ]),
+ ]),
+
+ /**
+ * Mapped over the active items and returns shorthand for the active item Labels.
+ * Only applies to `multiple` Dropdowns.
+ *
+ * @param {object} item - A currently active dropdown item.
+ * @param {number} index - The current index.
+ * @param {object} defaultLabelProps - The default props for an active item Label.
+ * @returns {*} Shorthand for a Label.
+ */
+ renderLabel: PropTypes.func,
+
+ /** A dropdown can have its menu scroll. */
+ scrolling: PropTypes.bool,
+
+ /**
+ * A selection dropdown can allow a user to search through a large list of choices.
+ * Pass a function here to replace the default search.
+ */
+ search: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]),
+
+ /** A shorthand for a search input. */
+ searchInput: PropTypes.oneOfType([PropTypes.array, PropTypes.node, PropTypes.object]),
+
+ /** Current value of searchQuery. Creates a controlled component. */
+ searchQuery: PropTypes.string,
+
+ // TODO 'searchInMenu' or 'search='in menu' or ??? How to handle this markup and functionality?
+
+ /** Define whether the highlighted item should be selected on blur. */
+ selectOnBlur: PropTypes.bool,
+
+ /**
+ * Whether or not to change the value when navigating the menu using arrow keys.
+ * Setting to false will require enter or left click to confirm a choice.
+ */
+ selectOnNavigation: PropTypes.bool,
+
+ /** Currently selected label in multi-select. */
+ selectedLabel: customPropTypes.every([
+ customPropTypes.demand(['multiple']),
+ PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
+ ]),
+
+ /** A dropdown can be used to select between choices in a form. */
+ selection: customPropTypes.every([
+ customPropTypes.disallow(['children']),
+ customPropTypes.demand(['options']),
+ PropTypes.bool,
+ ]),
+
+ /** A simple dropdown can open without Javascript. */
+ simple: PropTypes.bool,
+
+ /** A dropdown can receive focus. */
+ tabIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
+
+ /** The text displayed in the dropdown, usually for the active item. */
+ text: PropTypes.string,
+
+ /** Custom element to trigger the menu to become visible. Takes place of 'text'. */
+ trigger: customPropTypes.every([customPropTypes.disallow(['selection', 'text']), PropTypes.node]),
+
+ /** Current value or value array if multiple. Creates a controlled component. */
+ value: PropTypes.oneOfType([
+ PropTypes.bool,
+ PropTypes.string,
+ PropTypes.number,
+ PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.bool, PropTypes.string, PropTypes.number])),
+ ]),
+
+ /** Controls whether the dropdown will open upward. */
+ upward: PropTypes.bool,
+
+ /**
+ * A dropdown will go to the last element when ArrowUp is pressed on the first,
+ * or go to the first when ArrowDown is pressed on the last( aka infinite selection )
+ */
+ wrapSelection: PropTypes.bool,
+}
+
+Dropdown.defaultProps = {
+ additionLabel: 'Add ',
+ additionPosition: 'top',
+ closeOnBlur: true,
+ closeOnEscape: true,
+ deburr: false,
+ icon: 'dropdown',
+ minCharacters: 1,
+ noResultsMessage: 'No results found.',
+ openOnFocus: true,
+ renderLabel: ({ text }) => text,
+ searchInput: 'text',
+ selectOnBlur: true,
+ selectOnNavigation: true,
+ wrapSelection: true,
+}
+
+Dropdown.autoControlledProps = ['open', 'searchQuery', 'selectedLabel', 'value', 'upward']
+
+Dropdown.Divider = DropdownDivider
+Dropdown.Header = DropdownHeader
+Dropdown.Item = DropdownItem
+Dropdown.Menu = DropdownMenu
+Dropdown.SearchInput = DropdownSearchInput
diff --git a/src/modules/Dropdown/DropdownItem.js b/src/modules/Dropdown/DropdownItem.js
index aca2647dba..02b54c5a1a 100644
--- a/src/modules/Dropdown/DropdownItem.js
+++ b/src/modules/Dropdown/DropdownItem.js
@@ -21,61 +21,6 @@ import Label from '../../elements/Label'
* An item sub-component for Dropdown component.
*/
class DropdownItem extends Component {
- static propTypes = {
- /** An element type to render as (string or function). */
- as: PropTypes.elementType,
-
- /** Style as the currently chosen item. */
- active: PropTypes.bool,
-
- /** Primary content. */
- children: PropTypes.node,
-
- /** Additional classes. */
- className: PropTypes.string,
-
- /** Shorthand for primary content. */
- content: customPropTypes.contentShorthand,
-
- /** Additional text with less emphasis. */
- description: customPropTypes.itemShorthand,
-
- /** A dropdown item can be disabled. */
- disabled: PropTypes.bool,
-
- /** Shorthand for Flag. */
- flag: customPropTypes.itemShorthand,
-
- /** Shorthand for Icon. */
- icon: customPropTypes.itemShorthand,
-
- /** Shorthand for Image. */
- image: customPropTypes.itemShorthand,
-
- /** Shorthand for Label. */
- label: customPropTypes.itemShorthand,
-
- /**
- * Called on click.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onClick: PropTypes.func,
-
- /**
- * The item currently selected by keyboard shortcut.
- * This is not the active item.
- */
- selected: PropTypes.bool,
-
- /** Display text. */
- text: customPropTypes.contentShorthand,
-
- /** Stored value. */
- value: PropTypes.oneOfType([PropTypes.bool, PropTypes.number, PropTypes.string]),
- }
-
handleClick = (e) => {
_.invoke(this.props, 'onClick', e, this.props)
}
@@ -152,6 +97,61 @@ class DropdownItem extends Component {
}
}
+DropdownItem.propTypes = {
+ /** An element type to render as (string or function). */
+ as: PropTypes.elementType,
+
+ /** Style as the currently chosen item. */
+ active: PropTypes.bool,
+
+ /** Primary content. */
+ children: PropTypes.node,
+
+ /** Additional classes. */
+ className: PropTypes.string,
+
+ /** Shorthand for primary content. */
+ content: customPropTypes.contentShorthand,
+
+ /** Additional text with less emphasis. */
+ description: customPropTypes.itemShorthand,
+
+ /** A dropdown item can be disabled. */
+ disabled: PropTypes.bool,
+
+ /** Shorthand for Flag. */
+ flag: customPropTypes.itemShorthand,
+
+ /** Shorthand for Icon. */
+ icon: customPropTypes.itemShorthand,
+
+ /** Shorthand for Image. */
+ image: customPropTypes.itemShorthand,
+
+ /** Shorthand for Label. */
+ label: customPropTypes.itemShorthand,
+
+ /**
+ * Called on click.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onClick: PropTypes.func,
+
+ /**
+ * The item currently selected by keyboard shortcut.
+ * This is not the active item.
+ */
+ selected: PropTypes.bool,
+
+ /** Display text. */
+ text: customPropTypes.contentShorthand,
+
+ /** Stored value. */
+ value: PropTypes.oneOfType([PropTypes.bool, PropTypes.number, PropTypes.string]),
+}
+
DropdownItem.create = createShorthandFactory(DropdownItem, (opts) => opts)
export default DropdownItem
diff --git a/src/modules/Dropdown/DropdownSearchInput.js b/src/modules/Dropdown/DropdownSearchInput.js
index e22bf28522..391a29497c 100644
--- a/src/modules/Dropdown/DropdownSearchInput.js
+++ b/src/modules/Dropdown/DropdownSearchInput.js
@@ -9,31 +9,6 @@ import { createShorthandFactory, getUnhandledProps } from '../../lib'
* A search item sub-component for Dropdown component.
*/
class DropdownSearchInput extends Component {
- static propTypes = {
- /** An element type to render as (string or function). */
- as: PropTypes.elementType,
-
- /** An input can have the auto complete. */
- autoComplete: PropTypes.string,
-
- /** Additional classes. */
- className: PropTypes.string,
-
- /** An input can receive focus. */
- tabIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
-
- /** The HTML input type. */
- type: PropTypes.string,
-
- /** Stored value. */
- value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
- }
-
- static defaultProps = {
- autoComplete: 'off',
- type: 'text',
- }
-
handleChange = (e) => {
const value = _.get(e, 'target.value')
@@ -60,6 +35,31 @@ class DropdownSearchInput extends Component {
}
}
+DropdownSearchInput.propTypes = {
+ /** An element type to render as (string or function). */
+ as: PropTypes.elementType,
+
+ /** An input can have the auto complete. */
+ autoComplete: PropTypes.string,
+
+ /** Additional classes. */
+ className: PropTypes.string,
+
+ /** An input can receive focus. */
+ tabIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
+
+ /** The HTML input type. */
+ type: PropTypes.string,
+
+ /** Stored value. */
+ value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
+}
+
+DropdownSearchInput.defaultProps = {
+ autoComplete: 'off',
+ type: 'text',
+}
+
DropdownSearchInput.create = createShorthandFactory(DropdownSearchInput, (type) => ({ type }))
export default DropdownSearchInput
diff --git a/src/modules/Dropdown/index.d.ts b/src/modules/Dropdown/index.d.ts
index be06fc2ca9..78624e0b19 100644
--- a/src/modules/Dropdown/index.d.ts
+++ b/src/modules/Dropdown/index.d.ts
@@ -1,6 +1 @@
-export {
- default,
- DropdownProps,
- StrictDropdownProps,
- DropdownOnSearchChangeData,
-} from './Dropdown'
+export { default, DropdownProps, StrictDropdownProps, DropdownOnSearchChangeData } from './Dropdown'
diff --git a/src/modules/Embed/Embed.js b/src/modules/Embed/Embed.js
index ef570e5882..fe99f6c8b8 100644
--- a/src/modules/Embed/Embed.js
+++ b/src/modules/Embed/Embed.js
@@ -17,75 +17,6 @@ import Icon from '../../elements/Icon'
* An embed displays content from other websites like YouTube videos or Google Maps.
*/
export default class Embed extends Component {
- static propTypes = {
- /** An element type to render as (string or function). */
- as: PropTypes.elementType,
-
- /** An embed can be active. */
- active: PropTypes.bool,
-
- /** An embed can specify an alternative aspect ratio. */
- aspectRatio: PropTypes.oneOf(['4:3', '16:9', '21:9']),
-
- /** Setting to true or false will force autoplay. */
- autoplay: customPropTypes.every([customPropTypes.demand(['source']), PropTypes.bool]),
-
- /** Whether to show networks branded UI like title cards, or after video calls to action. */
- brandedUI: customPropTypes.every([customPropTypes.demand(['source']), PropTypes.bool]),
-
- /** Primary content. */
- children: PropTypes.node,
-
- /** Additional classes. */
- className: PropTypes.string,
-
- /** Specifies a default chrome color with Vimeo or YouTube. */
- color: customPropTypes.every([customPropTypes.demand(['source']), PropTypes.string]),
-
- /** Shorthand for primary content. */
- content: customPropTypes.contentShorthand,
-
- /** Initial value of active. */
- defaultActive: PropTypes.bool,
-
- /** Whether to prefer HD content. */
- hd: customPropTypes.every([customPropTypes.demand(['source']), PropTypes.bool]),
-
- /** Specifies an icon to use with placeholder content. */
- icon: customPropTypes.itemShorthand,
-
- /** Specifies an id for source. */
- id: customPropTypes.every([customPropTypes.demand(['source']), PropTypes.string]),
-
- /** Shorthand for HTML iframe. */
- iframe: customPropTypes.every([
- customPropTypes.demand(['source']),
- customPropTypes.itemShorthand,
- ]),
-
- /**
- * Сalled on click.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props and proposed value.
- */
- onClick: PropTypes.func,
-
- /** A placeholder image for embed. */
- placeholder: PropTypes.string,
-
- /** Specifies a source to use. */
- source: customPropTypes.every([
- customPropTypes.disallow(['sourceUrl']),
- PropTypes.oneOf(['youtube', 'vimeo']),
- ]),
-
- /** Specifies a url to use for embed. */
- url: customPropTypes.every([customPropTypes.disallow(['source']), PropTypes.string]),
- }
-
- static autoControlledProps = ['active']
-
getSrc() {
const {
autoplay = true,
@@ -178,3 +109,72 @@ export default class Embed extends Component {
)
}
}
+
+Embed.propTypes = {
+ /** An element type to render as (string or function). */
+ as: PropTypes.elementType,
+
+ /** An embed can be active. */
+ active: PropTypes.bool,
+
+ /** An embed can specify an alternative aspect ratio. */
+ aspectRatio: PropTypes.oneOf(['4:3', '16:9', '21:9']),
+
+ /** Setting to true or false will force autoplay. */
+ autoplay: customPropTypes.every([customPropTypes.demand(['source']), PropTypes.bool]),
+
+ /** Whether to show networks branded UI like title cards, or after video calls to action. */
+ brandedUI: customPropTypes.every([customPropTypes.demand(['source']), PropTypes.bool]),
+
+ /** Primary content. */
+ children: PropTypes.node,
+
+ /** Additional classes. */
+ className: PropTypes.string,
+
+ /** Specifies a default chrome color with Vimeo or YouTube. */
+ color: customPropTypes.every([customPropTypes.demand(['source']), PropTypes.string]),
+
+ /** Shorthand for primary content. */
+ content: customPropTypes.contentShorthand,
+
+ /** Initial value of active. */
+ defaultActive: PropTypes.bool,
+
+ /** Whether to prefer HD content. */
+ hd: customPropTypes.every([customPropTypes.demand(['source']), PropTypes.bool]),
+
+ /** Specifies an icon to use with placeholder content. */
+ icon: customPropTypes.itemShorthand,
+
+ /** Specifies an id for source. */
+ id: customPropTypes.every([customPropTypes.demand(['source']), PropTypes.string]),
+
+ /** Shorthand for HTML iframe. */
+ iframe: customPropTypes.every([
+ customPropTypes.demand(['source']),
+ customPropTypes.itemShorthand,
+ ]),
+
+ /**
+ * Сalled on click.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props and proposed value.
+ */
+ onClick: PropTypes.func,
+
+ /** A placeholder image for embed. */
+ placeholder: PropTypes.string,
+
+ /** Specifies a source to use. */
+ source: customPropTypes.every([
+ customPropTypes.disallow(['sourceUrl']),
+ PropTypes.oneOf(['youtube', 'vimeo']),
+ ]),
+
+ /** Specifies a url to use for embed. */
+ url: customPropTypes.every([customPropTypes.disallow(['source']), PropTypes.string]),
+}
+
+Embed.autoControlledProps = ['active']
diff --git a/src/modules/Modal/Modal.d.ts b/src/modules/Modal/Modal.d.ts
index cb8dff22ef..5872583089 100644
--- a/src/modules/Modal/Modal.d.ts
+++ b/src/modules/Modal/Modal.d.ts
@@ -2,10 +2,10 @@ import * as React from 'react'
import { SemanticShorthandItem } from '../../generic'
import { StrictPortalProps } from '../../addons/Portal'
-import { default as ModalActions, ModalActionsProps } from './ModalActions'
-import { default as ModalContent, ModalContentProps } from './ModalContent'
+import ModalActions, { ModalActionsProps } from './ModalActions'
+import ModalContent, { ModalContentProps } from './ModalContent'
import ModalDescription from './ModalDescription'
-import { default as ModalHeader, ModalHeaderProps } from './ModalHeader'
+import ModalHeader, { ModalHeaderProps } from './ModalHeader'
export interface ModalProps extends StrictModalProps {
[key: string]: any
diff --git a/src/modules/Modal/Modal.js b/src/modules/Modal/Modal.js
index 731d66b8ad..d0288c8e21 100644
--- a/src/modules/Modal/Modal.js
+++ b/src/modules/Modal/Modal.js
@@ -2,7 +2,7 @@ import { Ref } from '@stardust-ui/react-component-ref'
import cx from 'classnames'
import _ from 'lodash'
import PropTypes from 'prop-types'
-import React, { createRef, Fragment, isValidElement } from 'react'
+import React, { createRef, isValidElement } from 'react'
import shallowEqual from 'shallowequal'
import {
@@ -34,125 +34,6 @@ const debug = makeDebugger('modal')
* @see Portal
*/
class Modal extends Component {
- static propTypes = {
- /** An element type to render as (string or function). */
- as: PropTypes.elementType,
-
- /** Shorthand for Modal.Actions. Typically an array of button shorthand. */
- actions: customPropTypes.itemShorthand,
-
- /** A modal can reduce its complexity */
- basic: PropTypes.bool,
-
- /** A modal can be vertically centered in the viewport */
- centered: PropTypes.bool,
-
- /** Primary content. */
- children: PropTypes.node,
-
- /** Additional classes. */
- className: PropTypes.string,
-
- /** Shorthand for the close icon. Closes the modal on click. */
- closeIcon: PropTypes.oneOfType([PropTypes.node, PropTypes.object, PropTypes.bool]),
-
- /** Whether or not the Modal should close when the dimmer is clicked. */
- closeOnDimmerClick: PropTypes.bool,
-
- /** Whether or not the Modal should close when the document is clicked. */
- closeOnDocumentClick: PropTypes.bool,
-
- /** Simple text content for the Modal. */
- content: customPropTypes.itemShorthand,
-
- /** Initial value of open. */
- defaultOpen: PropTypes.bool,
-
- /** A Modal can appear in a dimmer. */
- dimmer: PropTypes.oneOf([true, 'inverted', 'blurring']),
-
- /** Event pool namespace that is used to handle component events */
- eventPool: PropTypes.string,
-
- /** Modal displayed above the content in bold. */
- header: customPropTypes.itemShorthand,
-
- /** The node where the modal should mount. Defaults to document.body. */
- mountNode: PropTypes.any,
-
- /**
- * Action onClick handler when using shorthand `actions`.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onActionClick: PropTypes.func,
-
- /**
- * Called when a close event happens.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onClose: PropTypes.func,
-
- /**
- * Called when the portal is mounted on the DOM.
- *
- * @param {null}
- * @param {object} data - All props.
- */
- onMount: PropTypes.func,
-
- /**
- * Called when an open event happens.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onOpen: PropTypes.func,
-
- /**
- * Called when the portal is unmounted from the DOM.
- *
- * @param {null}
- * @param {object} data - All props.
- */
- onUnmount: PropTypes.func,
-
- /** Controls whether or not the Modal is displayed. */
- open: PropTypes.bool,
-
- /** A modal can vary in size */
- size: PropTypes.oneOf(['mini', 'tiny', 'small', 'large', 'fullscreen']),
-
- /** Custom styles. */
- style: PropTypes.object,
-
- /** Element to be rendered in-place where the portal is defined. */
- trigger: PropTypes.node,
-
- /**
- * NOTE: Any unhandled props that are defined in Portal are passed-through
- * to the wrapping Portal.
- */
- }
-
- static defaultProps = {
- centered: true,
- dimmer: true,
- closeOnDimmerClick: true,
- closeOnDocumentClick: false,
- eventPool: 'Modal',
- }
-
- static autoControlledProps = ['open']
-
- static Header = ModalHeader
- static Content = ModalContent
- static Description = ModalDescription
- static Actions = ModalActions
-
legacy = isBrowser() && isLegacy()
ref = createRef()
dimmerRef = createRef()
@@ -333,11 +214,11 @@ class Modal extends Component {
{closeIconJSX}
{childrenUtils.isNil(children) ? (
-
+ <>
{ModalHeader.create(header, { autoGenerateKey: false })}
{ModalContent.create(content, { autoGenerateKey: false })}
{ModalActions.create(actions, { overrideProps: this.handleActionsOverrides })}
-
+ >
) : (
children
)}
@@ -410,4 +291,123 @@ class Modal extends Component {
}
}
+Modal.propTypes = {
+ /** An element type to render as (string or function). */
+ as: PropTypes.elementType,
+
+ /** Shorthand for Modal.Actions. Typically an array of button shorthand. */
+ actions: customPropTypes.itemShorthand,
+
+ /** A modal can reduce its complexity */
+ basic: PropTypes.bool,
+
+ /** A modal can be vertically centered in the viewport */
+ centered: PropTypes.bool,
+
+ /** Primary content. */
+ children: PropTypes.node,
+
+ /** Additional classes. */
+ className: PropTypes.string,
+
+ /** Shorthand for the close icon. Closes the modal on click. */
+ closeIcon: PropTypes.oneOfType([PropTypes.node, PropTypes.object, PropTypes.bool]),
+
+ /** Whether or not the Modal should close when the dimmer is clicked. */
+ closeOnDimmerClick: PropTypes.bool,
+
+ /** Whether or not the Modal should close when the document is clicked. */
+ closeOnDocumentClick: PropTypes.bool,
+
+ /** Simple text content for the Modal. */
+ content: customPropTypes.itemShorthand,
+
+ /** Initial value of open. */
+ defaultOpen: PropTypes.bool,
+
+ /** A Modal can appear in a dimmer. */
+ dimmer: PropTypes.oneOf([true, 'inverted', 'blurring']),
+
+ /** Event pool namespace that is used to handle component events */
+ eventPool: PropTypes.string,
+
+ /** Modal displayed above the content in bold. */
+ header: customPropTypes.itemShorthand,
+
+ /** The node where the modal should mount. Defaults to document.body. */
+ mountNode: PropTypes.any,
+
+ /**
+ * Action onClick handler when using shorthand `actions`.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onActionClick: PropTypes.func,
+
+ /**
+ * Called when a close event happens.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onClose: PropTypes.func,
+
+ /**
+ * Called when the portal is mounted on the DOM.
+ *
+ * @param {null}
+ * @param {object} data - All props.
+ */
+ onMount: PropTypes.func,
+
+ /**
+ * Called when an open event happens.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onOpen: PropTypes.func,
+
+ /**
+ * Called when the portal is unmounted from the DOM.
+ *
+ * @param {null}
+ * @param {object} data - All props.
+ */
+ onUnmount: PropTypes.func,
+
+ /** Controls whether or not the Modal is displayed. */
+ open: PropTypes.bool,
+
+ /** A modal can vary in size */
+ size: PropTypes.oneOf(['mini', 'tiny', 'small', 'large', 'fullscreen']),
+
+ /** Custom styles. */
+ style: PropTypes.object,
+
+ /** Element to be rendered in-place where the portal is defined. */
+ trigger: PropTypes.node,
+
+ /**
+ * NOTE: Any unhandled props that are defined in Portal are passed-through
+ * to the wrapping Portal.
+ */
+}
+
+Modal.defaultProps = {
+ centered: true,
+ dimmer: true,
+ closeOnDimmerClick: true,
+ closeOnDocumentClick: false,
+ eventPool: 'Modal',
+}
+
+Modal.autoControlledProps = ['open']
+
+Modal.Header = ModalHeader
+Modal.Content = ModalContent
+Modal.Description = ModalDescription
+Modal.Actions = ModalActions
+
export default Modal
diff --git a/src/modules/Modal/ModalActions.js b/src/modules/Modal/ModalActions.js
index 5404b54210..1d69f2537a 100644
--- a/src/modules/Modal/ModalActions.js
+++ b/src/modules/Modal/ModalActions.js
@@ -16,31 +16,6 @@ import Button from '../../elements/Button'
* A modal can contain a row of actions.
*/
export default class ModalActions extends Component {
- static propTypes = {
- /** An element type to render as (string or function). */
- as: PropTypes.elementType,
-
- /** Array of shorthand buttons. */
- actions: customPropTypes.collectionShorthand,
-
- /** Primary content. */
- children: PropTypes.node,
-
- /** Additional classes. */
- className: PropTypes.string,
-
- /** Shorthand for primary content. */
- content: customPropTypes.contentShorthand,
-
- /**
- * Action onClick handler when using shorthand `actions`.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props from the clicked action.
- */
- onActionClick: customPropTypes.every([customPropTypes.disallow(['children']), PropTypes.func]),
- }
-
handleButtonOverrides = (predefinedProps) => ({
onClick: (e, buttonProps) => {
_.invoke(predefinedProps, 'onClick', e, buttonProps)
@@ -79,4 +54,29 @@ export default class ModalActions extends Component {
}
}
+ModalActions.propTypes = {
+ /** An element type to render as (string or function). */
+ as: PropTypes.elementType,
+
+ /** Array of shorthand buttons. */
+ actions: customPropTypes.collectionShorthand,
+
+ /** Primary content. */
+ children: PropTypes.node,
+
+ /** Additional classes. */
+ className: PropTypes.string,
+
+ /** Shorthand for primary content. */
+ content: customPropTypes.contentShorthand,
+
+ /**
+ * Action onClick handler when using shorthand `actions`.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props from the clicked action.
+ */
+ onActionClick: customPropTypes.every([customPropTypes.disallow(['children']), PropTypes.func]),
+}
+
ModalActions.create = createShorthandFactory(ModalActions, (actions) => ({ actions }))
diff --git a/src/modules/Popup/Popup.d.ts b/src/modules/Popup/Popup.d.ts
index ac91b25f60..745997961b 100644
--- a/src/modules/Popup/Popup.d.ts
+++ b/src/modules/Popup/Popup.d.ts
@@ -2,8 +2,8 @@ import * as React from 'react'
import { SemanticShorthandItem } from '../../generic'
import { StrictPortalProps } from '../../addons/Portal'
-import { default as PopupContent, PopupContentProps } from './PopupContent'
-import { default as PopupHeader, PopupHeaderProps } from './PopupHeader'
+import PopupContent, { PopupContentProps } from './PopupContent'
+import PopupHeader, { PopupHeaderProps } from './PopupHeader'
export interface PopupProps extends StrictPopupProps {
[key: string]: any
@@ -26,7 +26,7 @@ export interface StrictPopupProps extends StrictPortalProps {
content?: SemanticShorthandItem
/** Existing element the pop-up should be bound to. */
- context?: object | React.RefObject
+ context?: Document | Window | HTMLElement | React.RefObject
/** A disabled popup only renders its trigger. */
disabled?: boolean
@@ -59,7 +59,7 @@ export interface StrictPopupProps extends StrictPortalProps {
offset?: number | string
/** Events triggering the popup. */
- on?: 'hover' | 'click' | 'focus' | ('hover' | 'click' | 'focus')[]
+ on?: 'hover' | 'click' | 'focus' | 'hover' | 'click' | 'focus'[]
/**
* Called when a close event happens.
@@ -111,7 +111,7 @@ export interface StrictPopupProps extends StrictPortalProps {
positionFixed?: boolean
/** An object containing custom settings for the Popper.js modifiers. */
- popperModifiers?: object
+ popperModifiers?: Record
/** A popup can have dependencies which update will schedule a position update. */
popperDependencies?: any[]
@@ -120,7 +120,7 @@ export interface StrictPopupProps extends StrictPortalProps {
size?: 'mini' | 'tiny' | 'small' | 'large' | 'huge'
/** Custom Popup style. */
- style?: Object
+ style?: React.CSSProperties
/** Element to be rendered in-place where the popup is defined. */
trigger?: React.ReactNode
diff --git a/src/modules/Popup/Popup.js b/src/modules/Popup/Popup.js
index 11ddaf6e08..8b8c71d8d4 100644
--- a/src/modules/Popup/Popup.js
+++ b/src/modules/Popup/Popup.js
@@ -30,137 +30,6 @@ const debug = makeDebugger('popup')
* A Popup displays additional information on top of a page.
*/
export default class Popup extends Component {
- static propTypes = {
- /** An element type to render as (string or function). */
- as: PropTypes.elementType,
-
- /** Display the popup without the pointing arrow. */
- basic: PropTypes.bool,
-
- /** Primary content. */
- children: PropTypes.node,
-
- /** Additional classes. */
- className: PropTypes.string,
-
- /** Simple text content for the popover. */
- content: customPropTypes.itemShorthand,
-
- /** Existing element the pop-up should be bound to. */
- context: PropTypes.oneOfType([PropTypes.object, customPropTypes.refObject]),
-
- /** A disabled popup only renders its trigger. */
- disabled: PropTypes.bool,
-
- /** Enables the Popper.js event listeners. */
- eventsEnabled: PropTypes.bool,
-
- /** A flowing Popup has no maximum width and continues to flow to fit its content. */
- flowing: PropTypes.bool,
-
- /** Takes up the entire width of its offset container. */
- // TODO: implement the Popup fluid layout
- // fluid: PropTypes.bool,
-
- /** Header displayed above the content in bold. */
- header: customPropTypes.itemShorthand,
-
- /** Hide the Popup when scrolling the window. */
- hideOnScroll: PropTypes.bool,
-
- /** Whether the popup should not close on hover. */
- hoverable: PropTypes.bool,
-
- /** Invert the colors of the Popup. */
- inverted: PropTypes.bool,
-
- /** Offset value to apply to rendered popup. Accepts the following units:
- * - px or unit-less, interpreted as pixels
- * - %, percentage relative to the length of the trigger element
- * - %p, percentage relative to the length of the popup element
- * - vw, CSS viewport width unit
- * - vh, CSS viewport height unit
- */
- offset: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
-
- /** Events triggering the popup. */
- on: PropTypes.oneOfType([
- PropTypes.oneOf(['hover', 'click', 'focus']),
- PropTypes.arrayOf(PropTypes.oneOf(['hover', 'click', 'focus'])),
- ]),
-
- /**
- * Called when a close event happens.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onClose: PropTypes.func,
-
- /**
- * Called when the portal is mounted on the DOM.
- *
- * @param {null}
- * @param {object} data - All props.
- */
- onMount: PropTypes.func,
-
- /**
- * Called when an open event happens.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onOpen: PropTypes.func,
-
- /**
- * Called when the portal is unmounted from the DOM.
- *
- * @param {null}
- * @param {object} data - All props.
- */
- onUnmount: PropTypes.func,
-
- /** Disables automatic repositioning of the component, it will always be placed according to the position value. */
- pinned: PropTypes.bool,
-
- /** Position for the popover. */
- position: PropTypes.oneOf(positions),
-
- /** Tells `Popper.js` to use the `position: fixed` strategy to position the popover. */
- positionFixed: PropTypes.bool,
-
- /** An object containing custom settings for the Popper.js modifiers. */
- popperModifiers: PropTypes.object,
-
- /** A popup can have dependencies which update will schedule a position update. */
- popperDependencies: PropTypes.array,
-
- /** Popup size. */
- size: PropTypes.oneOf(_.without(SUI.SIZES, 'medium', 'big', 'massive')),
-
- /** Custom Popup style. */
- style: PropTypes.object,
-
- /** Element to be rendered in-place where the popup is defined. */
- trigger: PropTypes.node,
-
- /** Popup width. */
- wide: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['very'])]),
- }
-
- static defaultProps = {
- disabled: false,
- eventsEnabled: true,
- offset: 0,
- on: ['click', 'hover'],
- pinned: false,
- position: 'top left',
- }
-
- static Content = PopupContent
- static Header = PopupHeader
-
state = {}
open = false
@@ -314,10 +183,10 @@ export default class Popup extends Component {
[
]
{childrenUtils.isNil(children) ? (
-
+ <>
{PopupHeader.create(header, { autoGenerateKey: false })}
{PopupContent.create(content, { autoGenerateKey: false })}
-
+ >
) : (
children
)}
@@ -384,3 +253,134 @@ export default class Popup extends Component {
)
}
}
+
+Popup.propTypes = {
+ /** An element type to render as (string or function). */
+ as: PropTypes.elementType,
+
+ /** Display the popup without the pointing arrow. */
+ basic: PropTypes.bool,
+
+ /** Primary content. */
+ children: PropTypes.node,
+
+ /** Additional classes. */
+ className: PropTypes.string,
+
+ /** Simple text content for the popover. */
+ content: customPropTypes.itemShorthand,
+
+ /** Existing element the pop-up should be bound to. */
+ context: PropTypes.oneOfType([PropTypes.object, customPropTypes.refObject]),
+
+ /** A disabled popup only renders its trigger. */
+ disabled: PropTypes.bool,
+
+ /** Enables the Popper.js event listeners. */
+ eventsEnabled: PropTypes.bool,
+
+ /** A flowing Popup has no maximum width and continues to flow to fit its content. */
+ flowing: PropTypes.bool,
+
+ /** Takes up the entire width of its offset container. */
+ // TODO: implement the Popup fluid layout
+ // fluid: PropTypes.bool,
+
+ /** Header displayed above the content in bold. */
+ header: customPropTypes.itemShorthand,
+
+ /** Hide the Popup when scrolling the window. */
+ hideOnScroll: PropTypes.bool,
+
+ /** Whether the popup should not close on hover. */
+ hoverable: PropTypes.bool,
+
+ /** Invert the colors of the Popup. */
+ inverted: PropTypes.bool,
+
+ /** Offset value to apply to rendered popup. Accepts the following units:
+ * - px or unit-less, interpreted as pixels
+ * - %, percentage relative to the length of the trigger element
+ * - %p, percentage relative to the length of the popup element
+ * - vw, CSS viewport width unit
+ * - vh, CSS viewport height unit
+ */
+ offset: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
+
+ /** Events triggering the popup. */
+ on: PropTypes.oneOfType([
+ PropTypes.oneOf(['hover', 'click', 'focus']),
+ PropTypes.arrayOf(PropTypes.oneOf(['hover', 'click', 'focus'])),
+ ]),
+
+ /**
+ * Called when a close event happens.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onClose: PropTypes.func,
+
+ /**
+ * Called when the portal is mounted on the DOM.
+ *
+ * @param {null}
+ * @param {object} data - All props.
+ */
+ onMount: PropTypes.func,
+
+ /**
+ * Called when an open event happens.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onOpen: PropTypes.func,
+
+ /**
+ * Called when the portal is unmounted from the DOM.
+ *
+ * @param {null}
+ * @param {object} data - All props.
+ */
+ onUnmount: PropTypes.func,
+
+ /** Disables automatic repositioning of the component, it will always be placed according to the position value. */
+ pinned: PropTypes.bool,
+
+ /** Position for the popover. */
+ position: PropTypes.oneOf(positions),
+
+ /** Tells `Popper.js` to use the `position: fixed` strategy to position the popover. */
+ positionFixed: PropTypes.bool,
+
+ /** An object containing custom settings for the Popper.js modifiers. */
+ popperModifiers: PropTypes.object,
+
+ /** A popup can have dependencies which update will schedule a position update. */
+ popperDependencies: PropTypes.array,
+
+ /** Popup size. */
+ size: PropTypes.oneOf(_.without(SUI.SIZES, 'medium', 'big', 'massive')),
+
+ /** Custom Popup style. */
+ style: PropTypes.object,
+
+ /** Element to be rendered in-place where the popup is defined. */
+ trigger: PropTypes.node,
+
+ /** Popup width. */
+ wide: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['very'])]),
+}
+
+Popup.defaultProps = {
+ disabled: false,
+ eventsEnabled: true,
+ offset: 0,
+ on: ['click', 'hover'],
+ pinned: false,
+ position: 'top left',
+}
+
+Popup.Content = PopupContent
+Popup.Header = PopupHeader
diff --git a/src/modules/Progress/Progress.js b/src/modules/Progress/Progress.js
index 8430ef64ee..a7a97d7a7f 100644
--- a/src/modules/Progress/Progress.js
+++ b/src/modules/Progress/Progress.js
@@ -18,81 +18,6 @@ import {
* A progress bar shows the progression of a task.
*/
class Progress extends Component {
- static propTypes = {
- /** An element type to render as (string or function). */
- as: PropTypes.elementType,
-
- /** A progress bar can show activity. */
- active: PropTypes.bool,
-
- /** A progress bar can attach to and show the progress of an element (i.e. Card or Segment). */
- attached: PropTypes.oneOf(['top', 'bottom']),
-
- /** Whether success state should automatically trigger when progress completes. */
- autoSuccess: PropTypes.bool,
-
- /** Primary content. */
- children: PropTypes.node,
-
- /** Additional classes. */
- className: PropTypes.string,
-
- /** A progress bar can have different colors. */
- color: PropTypes.oneOf(SUI.COLORS),
-
- /** Shorthand for primary content. */
- content: customPropTypes.contentShorthand,
-
- /** A progress bar be disabled. */
- disabled: PropTypes.bool,
-
- /** A progress bar can show a error state. */
- error: PropTypes.bool,
-
- /** An indicating progress bar visually indicates the current level of progress of a task. */
- indicating: PropTypes.bool,
-
- /** A progress bar can have its colors inverted. */
- inverted: PropTypes.bool,
-
- /** Can be set to either to display progress as percent or ratio. */
- label: customPropTypes.itemShorthand,
-
- /** Current percent complete. */
- percent: customPropTypes.every([
- customPropTypes.disallow(['total', 'value']),
- PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
- ]),
-
- /** Decimal point precision for calculated progress. */
- precision: PropTypes.number,
-
- /** A progress bar can contain a text value indicating current progress. */
- progress: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['percent', 'ratio', 'value'])]),
-
- /** A progress bar can vary in size. */
- size: PropTypes.oneOf(_.without(SUI.SIZES, 'mini', 'huge', 'massive')),
-
- /** A progress bar can show a success state. */
- success: PropTypes.bool,
-
- /** For use with value. Together, these will calculate the percent. Mutually excludes percent. */
- total: customPropTypes.every([
- customPropTypes.demand(['value']),
- customPropTypes.disallow(['percent']),
- PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
- ]),
-
- /** For use with total. Together, these will calculate the percent. Mutually excludes percent. */
- value: customPropTypes.every([
- customPropTypes.disallow(['percent']),
- PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
- ]),
-
- /** A progress bar can show a warning state. */
- warning: PropTypes.bool,
- }
-
calculatePercent = () => {
const { percent, total, value } = this.props
@@ -189,4 +114,79 @@ class Progress extends Component {
}
}
+Progress.propTypes = {
+ /** An element type to render as (string or function). */
+ as: PropTypes.elementType,
+
+ /** A progress bar can show activity. */
+ active: PropTypes.bool,
+
+ /** A progress bar can attach to and show the progress of an element (i.e. Card or Segment). */
+ attached: PropTypes.oneOf(['top', 'bottom']),
+
+ /** Whether success state should automatically trigger when progress completes. */
+ autoSuccess: PropTypes.bool,
+
+ /** Primary content. */
+ children: PropTypes.node,
+
+ /** Additional classes. */
+ className: PropTypes.string,
+
+ /** A progress bar can have different colors. */
+ color: PropTypes.oneOf(SUI.COLORS),
+
+ /** Shorthand for primary content. */
+ content: customPropTypes.contentShorthand,
+
+ /** A progress bar be disabled. */
+ disabled: PropTypes.bool,
+
+ /** A progress bar can show a error state. */
+ error: PropTypes.bool,
+
+ /** An indicating progress bar visually indicates the current level of progress of a task. */
+ indicating: PropTypes.bool,
+
+ /** A progress bar can have its colors inverted. */
+ inverted: PropTypes.bool,
+
+ /** Can be set to either to display progress as percent or ratio. */
+ label: customPropTypes.itemShorthand,
+
+ /** Current percent complete. */
+ percent: customPropTypes.every([
+ customPropTypes.disallow(['total', 'value']),
+ PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
+ ]),
+
+ /** Decimal point precision for calculated progress. */
+ precision: PropTypes.number,
+
+ /** A progress bar can contain a text value indicating current progress. */
+ progress: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['percent', 'ratio', 'value'])]),
+
+ /** A progress bar can vary in size. */
+ size: PropTypes.oneOf(_.without(SUI.SIZES, 'mini', 'huge', 'massive')),
+
+ /** A progress bar can show a success state. */
+ success: PropTypes.bool,
+
+ /** For use with value. Together, these will calculate the percent. Mutually excludes percent. */
+ total: customPropTypes.every([
+ customPropTypes.demand(['value']),
+ customPropTypes.disallow(['percent']),
+ PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
+ ]),
+
+ /** For use with total. Together, these will calculate the percent. Mutually excludes percent. */
+ value: customPropTypes.every([
+ customPropTypes.disallow(['percent']),
+ PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
+ ]),
+
+ /** A progress bar can show a warning state. */
+ warning: PropTypes.bool,
+}
+
export default Progress
diff --git a/src/modules/Rating/Rating.js b/src/modules/Rating/Rating.js
index de01ed94bc..093e7ccdfd 100644
--- a/src/modules/Rating/Rating.js
+++ b/src/modules/Rating/Rating.js
@@ -16,56 +16,6 @@ import RatingIcon from './RatingIcon'
* A rating indicates user interest in content.
*/
export default class Rating extends Component {
- static propTypes = {
- /** An element type to render as (string or function). */
- as: PropTypes.elementType,
-
- /** Additional classes. */
- className: PropTypes.string,
-
- /**
- * You can clear the rating by clicking on the current start rating.
- * By default a rating will be only clearable if there is 1 icon.
- * Setting to `true`/`false` will allow or disallow a user to clear their rating.
- */
- clearable: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['auto'])]),
-
- /** The initial rating value. */
- defaultRating: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
-
- /** You can disable or enable interactive rating. Makes a read-only rating. */
- disabled: PropTypes.bool,
-
- /** A rating can use a set of star or heart icons. */
- icon: PropTypes.oneOf(['star', 'heart']),
-
- /** The total number of icons. */
- maxRating: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
-
- /**
- * Called after user selects a new rating.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props and proposed rating.
- */
- onRate: PropTypes.func,
-
- /** The current number of active icons. */
- rating: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
-
- /** A progress bar can vary in size. */
- size: PropTypes.oneOf(_.without(SUI.SIZES, 'medium', 'big')),
- }
-
- static autoControlledProps = ['rating']
-
- static defaultProps = {
- clearable: 'auto',
- maxRating: 1,
- }
-
- static Icon = RatingIcon
-
handleIconClick = (e, { index }) => {
const { clearable, disabled, maxRating, onRate } = this.props
const { rating } = this.state
@@ -142,3 +92,53 @@ export default class Rating extends Component {
)
}
}
+
+Rating.propTypes = {
+ /** An element type to render as (string or function). */
+ as: PropTypes.elementType,
+
+ /** Additional classes. */
+ className: PropTypes.string,
+
+ /**
+ * You can clear the rating by clicking on the current start rating.
+ * By default a rating will be only clearable if there is 1 icon.
+ * Setting to `true`/`false` will allow or disallow a user to clear their rating.
+ */
+ clearable: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['auto'])]),
+
+ /** The initial rating value. */
+ defaultRating: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
+
+ /** You can disable or enable interactive rating. Makes a read-only rating. */
+ disabled: PropTypes.bool,
+
+ /** A rating can use a set of star or heart icons. */
+ icon: PropTypes.oneOf(['star', 'heart']),
+
+ /** The total number of icons. */
+ maxRating: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
+
+ /**
+ * Called after user selects a new rating.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props and proposed rating.
+ */
+ onRate: PropTypes.func,
+
+ /** The current number of active icons. */
+ rating: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
+
+ /** A progress bar can vary in size. */
+ size: PropTypes.oneOf(_.without(SUI.SIZES, 'medium', 'big')),
+}
+
+Rating.autoControlledProps = ['rating']
+
+Rating.defaultProps = {
+ clearable: 'auto',
+ maxRating: 1,
+}
+
+Rating.Icon = RatingIcon
diff --git a/src/modules/Rating/RatingIcon.js b/src/modules/Rating/RatingIcon.js
index 2450394e83..b0992e61f2 100644
--- a/src/modules/Rating/RatingIcon.js
+++ b/src/modules/Rating/RatingIcon.js
@@ -10,51 +10,6 @@ import { getElementType, getUnhandledProps, useKeyOnly } from '../../lib'
* An internal icon sub-component for Rating component
*/
export default class RatingIcon extends Component {
- static propTypes = {
- /** An element type to render as (string or function). */
- as: PropTypes.elementType,
-
- /** Indicates activity of an icon. */
- active: PropTypes.bool,
-
- /** Additional classes. */
- className: PropTypes.string,
-
- /** An index of icon inside Rating. */
- index: PropTypes.number,
-
- /**
- * Called on click.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onClick: PropTypes.func,
-
- /**
- * Called on keyup.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onKeyUp: PropTypes.func,
-
- /**
- * Called on mouseenter.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onMouseEnter: PropTypes.func,
-
- /** Indicates selection of an icon. */
- selected: PropTypes.bool,
- }
-
- static defaultProps = {
- as: 'i',
- }
-
handleClick = (e) => {
_.invoke(this.props, 'onClick', e, this.props)
}
@@ -99,3 +54,48 @@ export default class RatingIcon extends Component {
)
}
}
+
+RatingIcon.propTypes = {
+ /** An element type to render as (string or function). */
+ as: PropTypes.elementType,
+
+ /** Indicates activity of an icon. */
+ active: PropTypes.bool,
+
+ /** Additional classes. */
+ className: PropTypes.string,
+
+ /** An index of icon inside Rating. */
+ index: PropTypes.number,
+
+ /**
+ * Called on click.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onClick: PropTypes.func,
+
+ /**
+ * Called on keyup.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onKeyUp: PropTypes.func,
+
+ /**
+ * Called on mouseenter.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onMouseEnter: PropTypes.func,
+
+ /** Indicates selection of an icon. */
+ selected: PropTypes.bool,
+}
+
+RatingIcon.defaultProps = {
+ as: 'i',
+}
diff --git a/src/modules/Search/Search.d.ts b/src/modules/Search/Search.d.ts
index 7b9240f725..2959800a8b 100644
--- a/src/modules/Search/Search.d.ts
+++ b/src/modules/Search/Search.d.ts
@@ -2,8 +2,8 @@ import * as React from 'react'
import { SemanticShorthandItem } from '../../generic'
import { InputProps } from '../../elements/Input'
-import { default as SearchCategory, SearchCategoryProps } from './SearchCategory'
-import { default as SearchResult, SearchResultProps } from './SearchResult'
+import SearchCategory, { SearchCategoryProps } from './SearchCategory'
+import SearchResult, { SearchResultProps } from './SearchResult'
import SearchResults from './SearchResults'
export interface SearchProps extends StrictSearchProps {
@@ -44,7 +44,7 @@ export interface StrictSearchProps {
* - array of Search.Result props e.g. `{ title: '', description: '' }` or
* - object of categories e.g. `{ name: '', results: [{ title: '', description: '' }]`
*/
- results?: any[] | Object
+ results?: any[] | Record
/** Whether the search should automatically select the first result after searching. */
selectFirstResult?: boolean
diff --git a/src/modules/Search/Search.js b/src/modules/Search/Search.js
index edabc2fced..5af6b7f33e 100644
--- a/src/modules/Search/Search.js
+++ b/src/modules/Search/Search.js
@@ -44,175 +44,6 @@ const overrideSearchInputProps = (predefinedProps) => {
* A search module allows a user to query for results from a selection of data
*/
export default class Search extends Component {
- static propTypes = {
- /** An element type to render as (string or function). */
- as: PropTypes.elementType,
-
- // ------------------------------------
- // Behavior
- // ------------------------------------
-
- /** Initial value of open. */
- defaultOpen: PropTypes.bool,
-
- /** Initial value. */
- defaultValue: PropTypes.string,
-
- /** Shorthand for Icon. */
- icon: PropTypes.oneOfType([PropTypes.node, PropTypes.object]),
-
- /** Minimum characters to query for results */
- minCharacters: PropTypes.number,
-
- /** Additional text for "No Results" message with less emphasis. */
- noResultsDescription: PropTypes.node,
-
- /** Message to display when there are no results. */
- noResultsMessage: PropTypes.node,
-
- /** Controls whether or not the results menu is displayed. */
- open: PropTypes.bool,
-
- /**
- * One of:
- * - array of Search.Result props e.g. `{ title: '', description: '' }` or
- * - object of categories e.g. `{ name: '', results: [{ title: '', description: '' }]`
- */
- results: PropTypes.oneOfType([
- PropTypes.arrayOf(PropTypes.shape(SearchResult.propTypes)),
- PropTypes.shape(SearchCategory.propTypes),
- ]),
-
- /** Whether the search should automatically select the first result after searching. */
- selectFirstResult: PropTypes.bool,
-
- /** Whether a "no results" message should be shown if no results are found. */
- showNoResults: PropTypes.bool,
-
- /** Current value of the search input. Creates a controlled component. */
- value: PropTypes.string,
-
- // ------------------------------------
- // Rendering
- // ------------------------------------
-
- /**
- * Renders the SearchCategory layout.
- *
- * @param {object} categoryContent - The Renderable SearchCategory contents.
- * @param {object} resultsContent - The Renderable SearchResult contents.
- * @returns {*} - Renderable SearchCategory layout.
- */
- categoryLayoutRenderer: PropTypes.func,
-
- /**
- * Renders the SearchCategory contents.
- *
- * @param {object} props - The SearchCategory props object.
- * @returns {*} - Renderable SearchCategory contents.
- */
- categoryRenderer: PropTypes.func,
-
- /**
- * Renders the SearchResult contents.
- *
- * @param {object} props - The SearchResult props object.
- * @returns {*} - Renderable SearchResult contents.
- */
- resultRenderer: PropTypes.func,
-
- // ------------------------------------
- // Callbacks
- // ------------------------------------
-
- /**
- * Called on blur.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onBlur: PropTypes.func,
-
- /**
- * Called on focus.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onFocus: PropTypes.func,
-
- /**
- * Called on mousedown.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onMouseDown: PropTypes.func,
-
- /**
- * Called when a result is selected.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onResultSelect: PropTypes.func,
-
- /**
- * Called on search input change.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props, includes current value of search input.
- */
- onSearchChange: PropTypes.func,
-
- /**
- * Called when the active selection index is changed.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onSelectionChange: PropTypes.func,
-
- // ------------------------------------
- // Style
- // ------------------------------------
-
- /** A search can have its results aligned to its left or right container edge. */
- aligned: PropTypes.string,
-
- /** A search can display results from remote content ordered by categories. */
- category: PropTypes.bool,
-
- /** Additional classes. */
- className: PropTypes.string,
-
- /** A search can have its results take up the width of its container. */
- fluid: PropTypes.bool,
-
- /** Shorthand for input element. */
- input: customPropTypes.itemShorthand,
-
- /** A search can show a loading indicator. */
- loading: PropTypes.bool,
-
- /** A search can have different sizes. */
- size: PropTypes.oneOf(_.without(SUI.SIZES, 'medium')),
- }
-
- static defaultProps = {
- icon: 'search',
- input: 'text',
- minCharacters: 1,
- noResultsMessage: 'No results found.',
- showNoResults: true,
- }
-
- static autoControlledProps = ['open', 'value']
-
- static Category = SearchCategory
- static Result = SearchResult
- static Results = SearchResults
-
static getAutoControlledStateFromProps(props, state) {
debug('getAutoControlledStateFromProps()')
@@ -679,3 +510,172 @@ export default class Search extends Component {
)
}
}
+
+Search.propTypes = {
+ /** An element type to render as (string or function). */
+ as: PropTypes.elementType,
+
+ // ------------------------------------
+ // Behavior
+ // ------------------------------------
+
+ /** Initial value of open. */
+ defaultOpen: PropTypes.bool,
+
+ /** Initial value. */
+ defaultValue: PropTypes.string,
+
+ /** Shorthand for Icon. */
+ icon: PropTypes.oneOfType([PropTypes.node, PropTypes.object]),
+
+ /** Minimum characters to query for results */
+ minCharacters: PropTypes.number,
+
+ /** Additional text for "No Results" message with less emphasis. */
+ noResultsDescription: PropTypes.node,
+
+ /** Message to display when there are no results. */
+ noResultsMessage: PropTypes.node,
+
+ /** Controls whether or not the results menu is displayed. */
+ open: PropTypes.bool,
+
+ /**
+ * One of:
+ * - array of Search.Result props e.g. `{ title: '', description: '' }` or
+ * - object of categories e.g. `{ name: '', results: [{ title: '', description: '' }]`
+ */
+ results: PropTypes.oneOfType([
+ PropTypes.arrayOf(PropTypes.shape(SearchResult.propTypes)),
+ PropTypes.shape(SearchCategory.propTypes),
+ ]),
+
+ /** Whether the search should automatically select the first result after searching. */
+ selectFirstResult: PropTypes.bool,
+
+ /** Whether a "no results" message should be shown if no results are found. */
+ showNoResults: PropTypes.bool,
+
+ /** Current value of the search input. Creates a controlled component. */
+ value: PropTypes.string,
+
+ // ------------------------------------
+ // Rendering
+ // ------------------------------------
+
+ /**
+ * Renders the SearchCategory layout.
+ *
+ * @param {object} categoryContent - The Renderable SearchCategory contents.
+ * @param {object} resultsContent - The Renderable SearchResult contents.
+ * @returns {*} - Renderable SearchCategory layout.
+ */
+ categoryLayoutRenderer: PropTypes.func,
+
+ /**
+ * Renders the SearchCategory contents.
+ *
+ * @param {object} props - The SearchCategory props object.
+ * @returns {*} - Renderable SearchCategory contents.
+ */
+ categoryRenderer: PropTypes.func,
+
+ /**
+ * Renders the SearchResult contents.
+ *
+ * @param {object} props - The SearchResult props object.
+ * @returns {*} - Renderable SearchResult contents.
+ */
+ resultRenderer: PropTypes.func,
+
+ // ------------------------------------
+ // Callbacks
+ // ------------------------------------
+
+ /**
+ * Called on blur.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onBlur: PropTypes.func,
+
+ /**
+ * Called on focus.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onFocus: PropTypes.func,
+
+ /**
+ * Called on mousedown.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onMouseDown: PropTypes.func,
+
+ /**
+ * Called when a result is selected.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onResultSelect: PropTypes.func,
+
+ /**
+ * Called on search input change.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props, includes current value of search input.
+ */
+ onSearchChange: PropTypes.func,
+
+ /**
+ * Called when the active selection index is changed.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onSelectionChange: PropTypes.func,
+
+ // ------------------------------------
+ // Style
+ // ------------------------------------
+
+ /** A search can have its results aligned to its left or right container edge. */
+ aligned: PropTypes.string,
+
+ /** A search can display results from remote content ordered by categories. */
+ category: PropTypes.bool,
+
+ /** Additional classes. */
+ className: PropTypes.string,
+
+ /** A search can have its results take up the width of its container. */
+ fluid: PropTypes.bool,
+
+ /** Shorthand for input element. */
+ input: customPropTypes.itemShorthand,
+
+ /** A search can show a loading indicator. */
+ loading: PropTypes.bool,
+
+ /** A search can have different sizes. */
+ size: PropTypes.oneOf(_.without(SUI.SIZES, 'medium')),
+}
+
+Search.defaultProps = {
+ icon: 'search',
+ input: 'text',
+ minCharacters: 1,
+ noResultsMessage: 'No results found.',
+ showNoResults: true,
+}
+
+Search.autoControlledProps = ['open', 'value']
+
+Search.Category = SearchCategory
+Search.Result = SearchResult
+Search.Results = SearchResults
diff --git a/src/modules/Search/SearchCategory.d.ts b/src/modules/Search/SearchCategory.d.ts
index b7615b9b5a..6fcde7848c 100644
--- a/src/modules/Search/SearchCategory.d.ts
+++ b/src/modules/Search/SearchCategory.d.ts
@@ -47,7 +47,7 @@ export interface StrictSearchCategoryProps {
renderer?: (props: SearchCategoryProps) => React.ReactElement
/** Array of Search.Result props. */
- results?: (typeof SearchResult)[]
+ results?: typeof SearchResult[]
}
declare const SearchCategory: React.StatelessComponent
diff --git a/src/modules/Search/SearchResult.js b/src/modules/Search/SearchResult.js
index 4281774db7..cf4a488830 100644
--- a/src/modules/Search/SearchResult.js
+++ b/src/modules/Search/SearchResult.js
@@ -31,55 +31,6 @@ const defaultRenderer = ({ image, price, title, description }) => [
]
export default class SearchResult extends Component {
- static propTypes = {
- /** An element type to render as (string or function). */
- as: PropTypes.elementType,
-
- /** The item currently selected by keyboard shortcut. */
- active: PropTypes.bool,
-
- /** Additional classes. */
- className: PropTypes.string,
-
- /** Shorthand for primary content. */
- content: customPropTypes.contentShorthand,
-
- /** Additional text with less emphasis. */
- description: PropTypes.string,
-
- /** A unique identifier. */
- id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
-
- /** Add an image to the item. */
- image: PropTypes.string,
-
- /**
- * Called on click.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onClick: PropTypes.func,
-
- /** Customized text for price. */
- price: PropTypes.string,
-
- /**
- * Renders the result contents.
- *
- * @param {object} props - The SearchResult props object.
- * @returns {*} - Renderable result contents.
- */
- renderer: PropTypes.func,
-
- /** Display title. */
- title: PropTypes.string.isRequired,
- }
-
- static defaultProps = {
- renderer: defaultRenderer,
- }
-
handleClick = (e) => {
const { onClick } = this.props
@@ -104,3 +55,52 @@ export default class SearchResult extends Component {
)
}
}
+
+SearchResult.propTypes = {
+ /** An element type to render as (string or function). */
+ as: PropTypes.elementType,
+
+ /** The item currently selected by keyboard shortcut. */
+ active: PropTypes.bool,
+
+ /** Additional classes. */
+ className: PropTypes.string,
+
+ /** Shorthand for primary content. */
+ content: customPropTypes.contentShorthand,
+
+ /** Additional text with less emphasis. */
+ description: PropTypes.string,
+
+ /** A unique identifier. */
+ id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
+
+ /** Add an image to the item. */
+ image: PropTypes.string,
+
+ /**
+ * Called on click.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onClick: PropTypes.func,
+
+ /** Customized text for price. */
+ price: PropTypes.string,
+
+ /**
+ * Renders the result contents.
+ *
+ * @param {object} props - The SearchResult props object.
+ * @returns {*} - Renderable result contents.
+ */
+ renderer: PropTypes.func,
+
+ /** Display title. */
+ title: PropTypes.string.isRequired,
+}
+
+SearchResult.defaultProps = {
+ renderer: defaultRenderer,
+}
diff --git a/src/modules/Sidebar/Sidebar.d.ts b/src/modules/Sidebar/Sidebar.d.ts
index 94b8ba2c07..5f17e16be7 100644
--- a/src/modules/Sidebar/Sidebar.d.ts
+++ b/src/modules/Sidebar/Sidebar.d.ts
@@ -60,7 +60,7 @@ export interface StrictSidebarProps {
onVisible?: (event: React.MouseEvent, data: SidebarProps) => void
/** A sidebar can handle clicks on the passed element. */
- target?: object | React.RefObject
+ target?: Document | Window | HTMLElement | React.RefObject
/** Controls whether or not the sidebar is visible on the page. */
visible?: boolean
diff --git a/src/modules/Sidebar/Sidebar.js b/src/modules/Sidebar/Sidebar.js
index 0348ce128f..8fce6454d6 100644
--- a/src/modules/Sidebar/Sidebar.js
+++ b/src/modules/Sidebar/Sidebar.js
@@ -20,86 +20,6 @@ import SidebarPusher from './SidebarPusher'
* A sidebar hides additional content beside a page.
*/
class Sidebar extends Component {
- static propTypes = {
- /** An element type to render as (string or function). */
- as: PropTypes.elementType,
-
- /** Animation style. */
- animation: PropTypes.oneOf([
- 'overlay',
- 'push',
- 'scale down',
- 'uncover',
- 'slide out',
- 'slide along',
- ]),
-
- /** Primary content. */
- children: PropTypes.node,
-
- /** Additional classes. */
- className: PropTypes.string,
-
- /** Shorthand for primary content. */
- content: customPropTypes.contentShorthand,
-
- /** Direction the sidebar should appear on. */
- direction: PropTypes.oneOf(['top', 'right', 'bottom', 'left']),
-
- /**
- * Called before a sidebar begins to animate out.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onHide: PropTypes.func,
-
- /**
- * Called after a sidebar has finished animating out.
- *
- * @param {null}
- * @param {object} data - All props.
- */
- onHidden: PropTypes.func,
-
- /**
- * Called when a sidebar has finished animating in.
- *
- * @param {null}
- * @param {object} data - All props.
- */
- onShow: PropTypes.func,
-
- /**
- * Called when a sidebar begins animating in.
- *
- * @param {null}
- * @param {object} data - All props.
- */
- onVisible: PropTypes.func,
-
- /** A sidebar can handle clicks on the passed element. */
- target: PropTypes.oneOfType([customPropTypes.domNode, customPropTypes.refObject]),
-
- /** Controls whether or not the sidebar is visible on the page. */
- visible: PropTypes.bool,
-
- /** Sidebar width. */
- width: PropTypes.oneOf(['very thin', 'thin', 'wide', 'very wide']),
- }
-
- static defaultProps = {
- direction: 'left',
- target: documentRef,
- visible: false,
- }
-
- static animationDuration = 500
- static autoControlledProps = ['visible']
-
- static Pushable = SidebarPushable
- static Pusher = SidebarPusher
-
ref = createRef()
constructor(props) {
@@ -201,4 +121,84 @@ class Sidebar extends Component {
}
}
+Sidebar.propTypes = {
+ /** An element type to render as (string or function). */
+ as: PropTypes.elementType,
+
+ /** Animation style. */
+ animation: PropTypes.oneOf([
+ 'overlay',
+ 'push',
+ 'scale down',
+ 'uncover',
+ 'slide out',
+ 'slide along',
+ ]),
+
+ /** Primary content. */
+ children: PropTypes.node,
+
+ /** Additional classes. */
+ className: PropTypes.string,
+
+ /** Shorthand for primary content. */
+ content: customPropTypes.contentShorthand,
+
+ /** Direction the sidebar should appear on. */
+ direction: PropTypes.oneOf(['top', 'right', 'bottom', 'left']),
+
+ /**
+ * Called before a sidebar begins to animate out.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onHide: PropTypes.func,
+
+ /**
+ * Called after a sidebar has finished animating out.
+ *
+ * @param {null}
+ * @param {object} data - All props.
+ */
+ onHidden: PropTypes.func,
+
+ /**
+ * Called when a sidebar has finished animating in.
+ *
+ * @param {null}
+ * @param {object} data - All props.
+ */
+ onShow: PropTypes.func,
+
+ /**
+ * Called when a sidebar begins animating in.
+ *
+ * @param {null}
+ * @param {object} data - All props.
+ */
+ onVisible: PropTypes.func,
+
+ /** A sidebar can handle clicks on the passed element. */
+ target: PropTypes.oneOfType([customPropTypes.domNode, customPropTypes.refObject]),
+
+ /** Controls whether or not the sidebar is visible on the page. */
+ visible: PropTypes.bool,
+
+ /** Sidebar width. */
+ width: PropTypes.oneOf(['very thin', 'thin', 'wide', 'very wide']),
+}
+
+Sidebar.defaultProps = {
+ direction: 'left',
+ target: documentRef,
+ visible: false,
+}
+
+Sidebar.animationDuration = 500
+Sidebar.autoControlledProps = ['visible']
+
+Sidebar.Pushable = SidebarPushable
+Sidebar.Pusher = SidebarPusher
+
export default Sidebar
diff --git a/src/modules/Sticky/Sticky.d.ts b/src/modules/Sticky/Sticky.d.ts
index 0376b2a4bb..24a7b80daa 100644
--- a/src/modules/Sticky/Sticky.d.ts
+++ b/src/modules/Sticky/Sticky.d.ts
@@ -21,7 +21,7 @@ export interface StrictStickyProps {
className?: string
/** Context which sticky element should stick to. */
- context?: object | React.Ref
+ context?: Document | Window | HTMLElement | React.Ref
/** Offset in pixels from the top of the screen when fixing element to viewport. */
offset?: number
@@ -62,10 +62,10 @@ export interface StrictStickyProps {
pushing?: boolean
/** Context which sticky should attach onscroll events. */
- scrollContext?: object | React.Ref
+ scrollContext?: Document | Window | HTMLElement | React.Ref
/** Custom style for sticky element. */
- styleElement?: object
+ styleElement?: React.CSSProperties
}
declare const Sticky: React.ComponentClass
diff --git a/src/modules/Sticky/Sticky.js b/src/modules/Sticky/Sticky.js
index f68b764c36..73dc349b99 100644
--- a/src/modules/Sticky/Sticky.js
+++ b/src/modules/Sticky/Sticky.js
@@ -16,77 +16,6 @@ import {
* Sticky content stays fixed to the browser viewport while another column of content is visible on the page.
*/
export default class Sticky extends Component {
- static propTypes = {
- /** An element type to render as (string or function). */
- as: PropTypes.elementType,
-
- /** A Sticky can be active. */
- active: PropTypes.bool,
-
- /** Offset in pixels from the bottom of the screen when fixing element to viewport. */
- bottomOffset: PropTypes.number,
-
- /** Primary content. */
- children: PropTypes.node,
-
- /** Additional classes. */
- className: PropTypes.string,
-
- /** Context which sticky element should stick to. */
- context: PropTypes.oneOfType([customPropTypes.domNode, customPropTypes.refObject]),
-
- /** Offset in pixels from the top of the screen when fixing element to viewport. */
- offset: PropTypes.number,
-
- /**
- * Callback when element is bound to bottom of parent container.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onBottom: PropTypes.func,
-
- /**
- * Callback when element is fixed to page.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onStick: PropTypes.func,
-
- /**
- * Callback when element is bound to top of parent container.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onTop: PropTypes.func,
-
- /**
- * Callback when element is unfixed from page.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onUnstick: PropTypes.func,
-
- /** Whether element should be "pushed" by the viewport, attaching to the bottom of the screen when scrolling up. */
- pushing: PropTypes.bool,
-
- /** Context which sticky should attach onscroll events. */
- scrollContext: PropTypes.oneOfType([customPropTypes.domNode, customPropTypes.refObject]),
-
- /** Custom style for sticky element. */
- styleElement: PropTypes.object,
- }
-
- static defaultProps = {
- active: true,
- bottomOffset: 0,
- offset: 0,
- scrollContext: isBrowser() ? window : null,
- }
-
state = {
active: true,
sticky: false,
@@ -332,3 +261,74 @@ export default class Sticky extends Component {
)
}
}
+
+Sticky.propTypes = {
+ /** An element type to render as (string or function). */
+ as: PropTypes.elementType,
+
+ /** A Sticky can be active. */
+ active: PropTypes.bool,
+
+ /** Offset in pixels from the bottom of the screen when fixing element to viewport. */
+ bottomOffset: PropTypes.number,
+
+ /** Primary content. */
+ children: PropTypes.node,
+
+ /** Additional classes. */
+ className: PropTypes.string,
+
+ /** Context which sticky element should stick to. */
+ context: PropTypes.oneOfType([customPropTypes.domNode, customPropTypes.refObject]),
+
+ /** Offset in pixels from the top of the screen when fixing element to viewport. */
+ offset: PropTypes.number,
+
+ /**
+ * Callback when element is bound to bottom of parent container.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onBottom: PropTypes.func,
+
+ /**
+ * Callback when element is fixed to page.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onStick: PropTypes.func,
+
+ /**
+ * Callback when element is bound to top of parent container.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onTop: PropTypes.func,
+
+ /**
+ * Callback when element is unfixed from page.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onUnstick: PropTypes.func,
+
+ /** Whether element should be "pushed" by the viewport, attaching to the bottom of the screen when scrolling up. */
+ pushing: PropTypes.bool,
+
+ /** Context which sticky should attach onscroll events. */
+ scrollContext: PropTypes.oneOfType([customPropTypes.domNode, customPropTypes.refObject]),
+
+ /** Custom style for sticky element. */
+ styleElement: PropTypes.object,
+}
+
+Sticky.defaultProps = {
+ active: true,
+ bottomOffset: 0,
+ offset: 0,
+ scrollContext: isBrowser() ? window : null,
+}
diff --git a/src/modules/Tab/Tab.d.ts b/src/modules/Tab/Tab.d.ts
index 4f15a30c7c..223a5a4e3a 100644
--- a/src/modules/Tab/Tab.d.ts
+++ b/src/modules/Tab/Tab.d.ts
@@ -1,7 +1,7 @@
import * as React from 'react'
import { SemanticShorthandItem } from '../../generic'
-import { default as TabPane, TabPaneProps } from './TabPane'
+import TabPane, { TabPaneProps } from './TabPane'
export interface TabProps extends StrictTabProps {
[key: string]: any
@@ -49,9 +49,9 @@ export interface StrictTabProps {
* }
*/
panes?: {
- pane?: SemanticShorthandItem;
- menuItem?: any;
- render?: () => React.ReactNode;
+ pane?: SemanticShorthandItem
+ menuItem?: any
+ render?: () => React.ReactNode
}[]
/** A Tab can render only active pane. */
diff --git a/src/modules/Tab/Tab.js b/src/modules/Tab/Tab.js
index 3091e18073..ff865909e3 100644
--- a/src/modules/Tab/Tab.js
+++ b/src/modules/Tab/Tab.js
@@ -19,65 +19,6 @@ import TabPane from './TabPane'
* @see Segment
*/
class Tab extends Component {
- static propTypes = {
- /** An element type to render as (string or function). */
- as: PropTypes.elementType,
-
- /** The initial activeIndex. */
- defaultActiveIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
-
- /** Index of the currently active tab. */
- activeIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
-
- /**
- * Shorthand props for the Menu.
- * tabular, if true, will derive final value from `menuPosition`, otherwise set 'left' or 'right' explicitly.
- */
- menu: PropTypes.object,
-
- /** Align vertical menu */
- menuPosition: PropTypes.oneOf(['left', 'right']),
-
- /** Shorthand props for the Grid. */
- grid: PropTypes.object,
-
- /**
- * Called on tab change.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props and proposed new activeIndex.
- * @param {object} data.activeIndex - The new proposed activeIndex.
- */
- onTabChange: PropTypes.func,
-
- /**
- * Array of objects describing each Menu.Item and Tab.Pane:
- * { menuItem: 'Home', render: () => }
- * or
- * { menuItem: 'Home', pane: 'Welcome' }
- */
- panes: PropTypes.arrayOf(
- PropTypes.shape({
- menuItem: customPropTypes.itemShorthand,
- pane: customPropTypes.itemShorthand,
- render: PropTypes.func,
- }),
- ),
-
- /** A Tab can render only active pane. */
- renderActiveOnly: PropTypes.bool,
- }
-
- static autoControlledProps = ['activeIndex']
-
- static defaultProps = {
- grid: { paneWidth: 12, tabWidth: 4 },
- menu: { attached: true, tabular: true },
- renderActiveOnly: true,
- }
-
- static Pane = TabPane
-
getInitialAutoControlledState() {
return { activeIndex: 0 }
}
@@ -162,4 +103,63 @@ class Tab extends Component {
}
}
+Tab.propTypes = {
+ /** An element type to render as (string or function). */
+ as: PropTypes.elementType,
+
+ /** The initial activeIndex. */
+ defaultActiveIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
+
+ /** Index of the currently active tab. */
+ activeIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
+
+ /**
+ * Shorthand props for the Menu.
+ * tabular, if true, will derive final value from `menuPosition`, otherwise set 'left' or 'right' explicitly.
+ */
+ menu: PropTypes.object,
+
+ /** Align vertical menu */
+ menuPosition: PropTypes.oneOf(['left', 'right']),
+
+ /** Shorthand props for the Grid. */
+ grid: PropTypes.object,
+
+ /**
+ * Called on tab change.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props and proposed new activeIndex.
+ * @param {object} data.activeIndex - The new proposed activeIndex.
+ */
+ onTabChange: PropTypes.func,
+
+ /**
+ * Array of objects describing each Menu.Item and Tab.Pane:
+ * { menuItem: 'Home', render: () => }
+ * or
+ * { menuItem: 'Home', pane: 'Welcome' }
+ */
+ panes: PropTypes.arrayOf(
+ PropTypes.shape({
+ menuItem: customPropTypes.itemShorthand,
+ pane: customPropTypes.itemShorthand,
+ render: PropTypes.func,
+ }),
+ ),
+
+ /** A Tab can render only active pane. */
+ renderActiveOnly: PropTypes.bool,
+}
+
+Tab.autoControlledProps = ['activeIndex']
+
+Tab.defaultProps = {
+ grid: { paneWidth: 12, tabWidth: 4 },
+ menu: { attached: true, tabular: true },
+ renderActiveOnly: true,
+}
+
+Tab.Pane = TabPane
+
export default Tab
diff --git a/src/modules/Transition/Transition.js b/src/modules/Transition/Transition.js
index 792a366dd5..969ba9dbc2 100644
--- a/src/modules/Transition/Transition.js
+++ b/src/modules/Transition/Transition.js
@@ -30,84 +30,7 @@ const TRANSITION_STYLE_TYPE = {
* A transition is an animation usually used to move content in or out of view.
*/
export default class Transition extends Component {
- static propTypes = {
- /** Named animation event to used. Must be defined in CSS. */
- animation: PropTypes.oneOfType([PropTypes.oneOf(SUI.TRANSITIONS), PropTypes.string]),
-
- /** Primary content. */
- children: PropTypes.element.isRequired,
-
- /** Whether it is directional animation event or not. Use it only for custom transitions. */
- directional: PropTypes.bool,
-
- /** Duration of the CSS transition animation in milliseconds. */
- duration: PropTypes.oneOfType([
- PropTypes.number,
- PropTypes.shape({
- hide: PropTypes.number,
- show: PropTypes.number,
- }),
- PropTypes.string,
- ]),
-
- /** Show the component; triggers the enter or exit animation. */
- visible: PropTypes.bool,
-
- /** Wait until the first "enter" transition to mount the component (add it to the DOM). */
- mountOnShow: PropTypes.bool,
-
- /**
- * Callback on each transition that changes visibility to shown.
- *
- * @param {null}
- * @param {object} data - All props with status.
- */
- onComplete: PropTypes.func,
-
- /**
- * Callback on each transition that changes visibility to hidden.
- *
- * @param {null}
- * @param {object} data - All props with status.
- */
- onHide: PropTypes.func,
-
- /**
- * Callback on each transition that changes visibility to shown.
- *
- * @param {null}
- * @param {object} data - All props with status.
- */
- onShow: PropTypes.func,
-
- /**
- * Callback on animation start.
- *
- * @param {null}
- * @param {object} data - All props with status.
- */
- onStart: PropTypes.func,
-
- /** React's key of the element. */
- reactKey: PropTypes.string,
-
- /** Run the enter animation when the component mounts, if it is initially shown. */
- transitionOnMount: PropTypes.bool,
-
- /** Unmount the component (remove it from the DOM) when it is not shown. */
- unmountOnHide: PropTypes.bool,
- }
-
- static defaultProps = {
- animation: 'fade',
- duration: 500,
- visible: true,
- mountOnShow: true,
- transitionOnMount: false,
- unmountOnHide: false,
- }
-
- /** @deprecated Static properties will be removed in v1 */
+ /** @deprecated Static properties will be removed in v2. */
static INITIAL = TRANSITION_STATUS_INITIAL
static ENTERED = TRANSITION_STATUS_ENTERED
static ENTERING = TRANSITION_STATUS_ENTERING
@@ -249,3 +172,80 @@ export default class Transition extends Component {
})
}
}
+
+Transition.propTypes = {
+ /** Named animation event to used. Must be defined in CSS. */
+ animation: PropTypes.oneOfType([PropTypes.oneOf(SUI.TRANSITIONS), PropTypes.string]),
+
+ /** Primary content. */
+ children: PropTypes.element.isRequired,
+
+ /** Whether it is directional animation event or not. Use it only for custom transitions. */
+ directional: PropTypes.bool,
+
+ /** Duration of the CSS transition animation in milliseconds. */
+ duration: PropTypes.oneOfType([
+ PropTypes.number,
+ PropTypes.shape({
+ hide: PropTypes.number,
+ show: PropTypes.number,
+ }),
+ PropTypes.string,
+ ]),
+
+ /** Show the component; triggers the enter or exit animation. */
+ visible: PropTypes.bool,
+
+ /** Wait until the first "enter" transition to mount the component (add it to the DOM). */
+ mountOnShow: PropTypes.bool,
+
+ /**
+ * Callback on each transition that changes visibility to shown.
+ *
+ * @param {null}
+ * @param {object} data - All props with status.
+ */
+ onComplete: PropTypes.func,
+
+ /**
+ * Callback on each transition that changes visibility to hidden.
+ *
+ * @param {null}
+ * @param {object} data - All props with status.
+ */
+ onHide: PropTypes.func,
+
+ /**
+ * Callback on each transition that changes visibility to shown.
+ *
+ * @param {null}
+ * @param {object} data - All props with status.
+ */
+ onShow: PropTypes.func,
+
+ /**
+ * Callback on animation start.
+ *
+ * @param {null}
+ * @param {object} data - All props with status.
+ */
+ onStart: PropTypes.func,
+
+ /** React's key of the element. */
+ reactKey: PropTypes.string,
+
+ /** Run the enter animation when the component mounts, if it is initially shown. */
+ transitionOnMount: PropTypes.bool,
+
+ /** Unmount the component (remove it from the DOM) when it is not shown. */
+ unmountOnHide: PropTypes.bool,
+}
+
+Transition.defaultProps = {
+ animation: 'fade',
+ duration: 500,
+ visible: true,
+ mountOnShow: true,
+ transitionOnMount: false,
+ unmountOnHide: false,
+}
diff --git a/src/modules/Transition/TransitionGroup.js b/src/modules/Transition/TransitionGroup.js
index 70a9f32ce4..4716c903ce 100644
--- a/src/modules/Transition/TransitionGroup.js
+++ b/src/modules/Transition/TransitionGroup.js
@@ -12,36 +12,6 @@ const debug = makeDebugger('transition_group')
* A Transition.Group animates children as they mount and unmount.
*/
export default class TransitionGroup extends React.Component {
- static propTypes = {
- /** An element type to render as (string or function). */
- as: PropTypes.elementType,
-
- /** Named animation event to used. Must be defined in CSS. */
- animation: PropTypes.oneOfType([PropTypes.oneOf(SUI.TRANSITIONS), PropTypes.string]),
-
- /** Primary content. */
- children: PropTypes.node,
-
- /** Whether it is directional animation event or not. Use it only for custom transitions. */
- directional: PropTypes.bool,
-
- /** Duration of the CSS transition animation in milliseconds. */
- duration: PropTypes.oneOfType([
- PropTypes.number,
- PropTypes.shape({
- hide: PropTypes.number.isRequired,
- show: PropTypes.number.isRequired,
- }),
- PropTypes.string,
- ]),
- }
-
- static defaultProps = {
- as: React.Fragment,
- animation: 'fade',
- duration: 500,
- }
-
state = {
// Keeping a callback under the state is a hack to make it accessible under getDerivedStateFromProps()
handleOnHide: (nothing, childProps) => {
@@ -137,3 +107,33 @@ export default class TransitionGroup extends React.Component {
return {_.values(children)}
}
}
+
+TransitionGroup.propTypes = {
+ /** An element type to render as (string or function). */
+ as: PropTypes.elementType,
+
+ /** Named animation event to used. Must be defined in CSS. */
+ animation: PropTypes.oneOfType([PropTypes.oneOf(SUI.TRANSITIONS), PropTypes.string]),
+
+ /** Primary content. */
+ children: PropTypes.node,
+
+ /** Whether it is directional animation event or not. Use it only for custom transitions. */
+ directional: PropTypes.bool,
+
+ /** Duration of the CSS transition animation in milliseconds. */
+ duration: PropTypes.oneOfType([
+ PropTypes.number,
+ PropTypes.shape({
+ hide: PropTypes.number.isRequired,
+ show: PropTypes.number.isRequired,
+ }),
+ PropTypes.string,
+ ]),
+}
+
+TransitionGroup.defaultProps = {
+ as: React.Fragment,
+ animation: 'fade',
+ duration: 500,
+}
diff --git a/src/views/Card/Card.d.ts b/src/views/Card/Card.d.ts
index 3153695e7c..a23b366532 100644
--- a/src/views/Card/Card.d.ts
+++ b/src/views/Card/Card.d.ts
@@ -3,10 +3,10 @@ import * as React from 'react'
import { SemanticCOLORS, SemanticShorthandContent, SemanticShorthandItem } from '../../generic'
import { ImageProps } from '../../elements/Image'
import CardContent from './CardContent'
-import { default as CardDescription, CardDescriptionProps } from './CardDescription'
+import CardDescription, { CardDescriptionProps } from './CardDescription'
import CardGroup from './CardGroup'
-import { default as CardHeader, CardHeaderProps } from './CardHeader'
-import { default as CardMeta, CardMetaProps } from './CardMeta'
+import CardHeader, { CardHeaderProps } from './CardHeader'
+import CardMeta, { CardMetaProps } from './CardMeta'
export interface CardProps extends StrictCardProps {
[key: string]: any
diff --git a/src/views/Card/Card.js b/src/views/Card/Card.js
index bcf2c58e3c..88c302826c 100644
--- a/src/views/Card/Card.js
+++ b/src/views/Card/Card.js
@@ -21,68 +21,6 @@ import CardMeta from './CardMeta'
* A card displays site content in a manner similar to a playing card.
*/
export default class Card extends Component {
- static propTypes = {
- /** An element type to render as (string or function). */
- as: PropTypes.elementType,
-
- /** A Card can center itself inside its container. */
- centered: PropTypes.bool,
-
- /** Primary content. */
- children: PropTypes.node,
-
- /** Additional classes. */
- className: PropTypes.string,
-
- /** A Card can be formatted to display different colors. */
- color: PropTypes.oneOf(SUI.COLORS),
-
- /** Shorthand for primary content. */
- content: customPropTypes.contentShorthand,
-
- /** Shorthand for CardDescription. */
- description: customPropTypes.itemShorthand,
-
- /** Shorthand for primary content of CardContent. */
- extra: customPropTypes.contentShorthand,
-
- /** A Card can be formatted to take up the width of its container. */
- fluid: PropTypes.bool,
-
- /** Shorthand for CardHeader. */
- header: customPropTypes.itemShorthand,
-
- /** Render as an `a` tag instead of a `div` and adds the href attribute. */
- href: PropTypes.string,
-
- /** A card can contain an Image component. */
- image: customPropTypes.itemShorthand,
-
- /** A card can be formatted to link to other content. */
- link: PropTypes.bool,
-
- /** Shorthand for CardMeta. */
- meta: customPropTypes.itemShorthand,
-
- /**
- * Called on click. When passed, the component renders as an `a`
- * tag by default instead of a `div`.
- *
- * @param {SyntheticEvent} event - React's original SyntheticEvent.
- * @param {object} data - All props.
- */
- onClick: PropTypes.func,
-
- /** A Card can be formatted to raise above the page. */
- raised: PropTypes.bool,
- }
-
- static Content = CardContent
- static Description = CardDescription
- static Group = CardGroup
- static Header = CardHeader
- static Meta = CardMeta
-
handleClick = (e) => {
const { onClick } = this.props
@@ -155,3 +93,65 @@ export default class Card extends Component {
)
}
}
+
+Card.propTypes = {
+ /** An element type to render as (string or function). */
+ as: PropTypes.elementType,
+
+ /** A Card can center itself inside its container. */
+ centered: PropTypes.bool,
+
+ /** Primary content. */
+ children: PropTypes.node,
+
+ /** Additional classes. */
+ className: PropTypes.string,
+
+ /** A Card can be formatted to display different colors. */
+ color: PropTypes.oneOf(SUI.COLORS),
+
+ /** Shorthand for primary content. */
+ content: customPropTypes.contentShorthand,
+
+ /** Shorthand for CardDescription. */
+ description: customPropTypes.itemShorthand,
+
+ /** Shorthand for primary content of CardContent. */
+ extra: customPropTypes.contentShorthand,
+
+ /** A Card can be formatted to take up the width of its container. */
+ fluid: PropTypes.bool,
+
+ /** Shorthand for CardHeader. */
+ header: customPropTypes.itemShorthand,
+
+ /** Render as an `a` tag instead of a `div` and adds the href attribute. */
+ href: PropTypes.string,
+
+ /** A card can contain an Image component. */
+ image: customPropTypes.itemShorthand,
+
+ /** A card can be formatted to link to other content. */
+ link: PropTypes.bool,
+
+ /** Shorthand for CardMeta. */
+ meta: customPropTypes.itemShorthand,
+
+ /**
+ * Called on click. When passed, the component renders as an `a`
+ * tag by default instead of a `div`.
+ *
+ * @param {SyntheticEvent} event - React's original SyntheticEvent.
+ * @param {object} data - All props.
+ */
+ onClick: PropTypes.func,
+
+ /** A Card can be formatted to raise above the page. */
+ raised: PropTypes.bool,
+}
+
+Card.Content = CardContent
+Card.Description = CardDescription
+Card.Group = CardGroup
+Card.Header = CardHeader
+Card.Meta = CardMeta
diff --git a/src/views/Feed/Feed.d.ts b/src/views/Feed/Feed.d.ts
index a2b1be6353..210cafb42d 100644
--- a/src/views/Feed/Feed.d.ts
+++ b/src/views/Feed/Feed.d.ts
@@ -3,7 +3,7 @@ import * as React from 'react'
import { SemanticShorthandCollection } from '../../generic'
import FeedContent from './FeedContent'
import FeedDate from './FeedDate'
-import { default as FeedEvent, FeedEventProps } from './FeedEvent'
+import FeedEvent, { FeedEventProps } from './FeedEvent'
import FeedExtra from './FeedExtra'
import FeedLabel from './FeedLabel'
import FeedMeta from './FeedMeta'
diff --git a/src/views/Item/Item.d.ts b/src/views/Item/Item.d.ts
index 7972d3623f..4c1485b0be 100644
--- a/src/views/Item/Item.d.ts
+++ b/src/views/Item/Item.d.ts
@@ -2,12 +2,12 @@ import * as React from 'react'
import { SemanticShorthandContent, SemanticShorthandItem } from '../../generic'
import ItemContent from './ItemContent'
-import { default as ItemDescription, ItemDescriptionProps } from './ItemDescription'
-import { default as ItemExtra, ItemExtraProps } from './ItemExtra'
+import ItemDescription, { ItemDescriptionProps } from './ItemDescription'
+import ItemExtra, { ItemExtraProps } from './ItemExtra'
import ItemGroup from './ItemGroup'
-import { default as ItemHeader, ItemHeaderProps } from './ItemHeader'
-import { default as ItemImage, ItemImageProps } from './ItemImage'
-import { default as ItemMeta, ItemMetaProps } from './ItemMeta'
+import ItemHeader, { ItemHeaderProps } from './ItemHeader'
+import ItemImage, { ItemImageProps } from './ItemImage'
+import ItemMeta, { ItemMetaProps } from './ItemMeta'
export interface ItemProps extends StrictItemProps {
[key: string]: any
diff --git a/test/.eslintrc b/test/.eslintrc
index bee9bdcef1..a1d2680ef4 100644
--- a/test/.eslintrc
+++ b/test/.eslintrc
@@ -11,11 +11,12 @@
"shallow": false,
"render": false
},
- "plugins": [
- "mocha"
- ],
+ "plugins": ["mocha"],
"rules": {
- "jsx-a11y/alt-text": 0,
- "jsx-a11y/tabindex-no-positive": 0
+ "jsx-a11y/alt-text": "off",
+ "jsx-a11y/control-has-associated-label": "off",
+ "jsx-a11y/tabindex-no-positive": "off",
+ "react/forbid-foreign-prop-types": "off",
+ "react/prop-types": "off"
}
}
diff --git a/test/specs/addons/Pagination/Pagination-test.js b/test/specs/addons/Pagination/Pagination-test.js
index 214049d611..800c53fe91 100644
--- a/test/specs/addons/Pagination/Pagination-test.js
+++ b/test/specs/addons/Pagination/Pagination-test.js
@@ -58,10 +58,7 @@ describe('Pagination', () => {
/>,
)
- wrapper
- .find('PaginationItem')
- .at(0)
- .simulate('click')
+ wrapper.find('PaginationItem').at(0).simulate('click')
onPageChange.should.have.not.been.called()
})
@@ -77,10 +74,7 @@ describe('Pagination', () => {
/>,
)
- wrapper
- .find('PaginationItem')
- .at(1)
- .simulate('click')
+ wrapper.find('PaginationItem').at(1).simulate('click')
onPageChange.should.have.not.been.called()
})
})
diff --git a/test/specs/addons/Portal/Portal-test.js b/test/specs/addons/Portal/Portal-test.js
index d8f95462d5..205dca5a84 100644
--- a/test/specs/addons/Portal/Portal-test.js
+++ b/test/specs/addons/Portal/Portal-test.js
@@ -11,10 +11,6 @@ let wrapper
const createHandlingComponent = (eventName) =>
class HandlingComponent extends React.Component {
- static propTypes = {
- handler: PropTypes.func,
- }
-
handleEvent = (e) => this.props.handler(e, this.props)
render() {
diff --git a/test/specs/behaviors/Visibility/Visibility-test.js b/test/specs/behaviors/Visibility/Visibility-test.js
index 6291e94c19..4d75f07fc2 100644
--- a/test/specs/behaviors/Visibility/Visibility-test.js
+++ b/test/specs/behaviors/Visibility/Visibility-test.js
@@ -34,35 +34,63 @@ const expectations = [
name: 'topPassed',
callbackName: 'onTopPassed',
reversible: true,
- truthy: [[-1, 100], [-100, -1]],
- falsy: [[0, 100], [window.innerHeight + 100, window.innerHeight + 300]],
+ truthy: [
+ [-1, 100],
+ [-100, -1],
+ ],
+ falsy: [
+ [0, 100],
+ [window.innerHeight + 100, window.innerHeight + 300],
+ ],
},
{
name: 'bottomPassed',
callbackName: 'onBottomPassed',
reversible: true,
- truthy: [[-100, -1], [-100, -10]],
- falsy: [[-10, 0], [-100, window.innerHeight]],
+ truthy: [
+ [-100, -1],
+ [-100, -10],
+ ],
+ falsy: [
+ [-10, 0],
+ [-100, window.innerHeight],
+ ],
},
{
name: 'topVisible',
callbackName: 'onTopVisible',
reversible: true,
- truthy: [[0, 100], [window.innerHeight, window.innerHeight]],
- falsy: [[-1, 100], [window.innerHeight + 1, window.innerHeight + 2]],
+ truthy: [
+ [0, 100],
+ [window.innerHeight, window.innerHeight],
+ ],
+ falsy: [
+ [-1, 100],
+ [window.innerHeight + 1, window.innerHeight + 2],
+ ],
},
{
name: 'bottomVisible',
callbackName: 'onBottomVisible',
reversible: true,
- truthy: [[-100, 0], [-100, window.innerHeight]],
- falsy: [[-100, -1], [0, window.innerHeight + 1]],
+ truthy: [
+ [-100, 0],
+ [-100, window.innerHeight],
+ ],
+ falsy: [
+ [-100, -1],
+ [0, window.innerHeight + 1],
+ ],
},
{
name: 'passing',
callbackName: 'onPassing',
reversible: true,
- truthy: [[-1, window.innerHeight + 1], [-1, window.innerHeight - 1], [-1, 0]],
+ truthy: [
+ [-1, window.innerHeight + 1],
+ [-1, window.innerHeight - 1],
+ [-1, 0],
+ ],
falsy: [
[0, window.innerHeight],
[1, window.innerHeight + 1],
@@ -79,12 +107,18 @@ const expectations = [
[-1, window.innerHeight],
[0, window.innerHeight + 1],
],
- falsy: [[-2, -1], [window.innerHeight + 1, window.innerHeight + 2]],
+ falsy: [
+ [-2, -1],
+ [window.innerHeight + 1, window.innerHeight + 2],
+ ],
},
{
name: 'offScreen',
callbackName: 'onOffScreen',
- truthy: [[-2, -1], [window.innerHeight + 1, window.innerHeight + 2]],
+ truthy: [
+ [-2, -1],
+ [window.innerHeight + 1, window.innerHeight + 2],
+ ],
falsy: [
[0, window.innerHeight],
[-1, window.innerHeight + 1],
@@ -95,7 +129,11 @@ const expectations = [
{
name: 'fits',
truthy: [[0, window.innerHeight]],
- falsy: [[-1, window.innerHeight + 1], [0, window.innerHeight + 1], [-1, window.innerHeight]],
+ falsy: [
+ [-1, window.innerHeight + 1],
+ [0, window.innerHeight + 1],
+ [-1, window.innerHeight],
+ ],
},
]
@@ -103,10 +141,7 @@ describe('Visibility', () => {
common.isConformant(Visibility)
beforeEach(() => {
- sandbox
- .stub(window, 'requestAnimationFrame')
- .callsArg(0)
- .returns(1)
+ sandbox.stub(window, 'requestAnimationFrame').callsArg(0).returns(1)
wrapper = undefined
})
diff --git a/test/specs/collections/Menu/Menu-test.js b/test/specs/collections/Menu/Menu-test.js
index 19bf85beda..83982bc55b 100644
--- a/test/specs/collections/Menu/Menu-test.js
+++ b/test/specs/collections/Menu/Menu-test.js
@@ -48,7 +48,10 @@ describe('Menu', () => {
})
describe('activeIndex', () => {
- const items = [{ key: 'home', name: 'home' }, { key: 'users', name: 'users' }]
+ const items = [
+ { key: 'home', name: 'home' },
+ { key: 'users', name: 'users' },
+ ]
it('is null by default', () => {
shallow( ).should.not.have.descendants('.active')
@@ -57,16 +60,10 @@ describe('Menu', () => {
it('is set when clicking an item', () => {
const wrapper = mount( )
- wrapper
- .find('MenuItem')
- .at(1)
- .simulate('click')
+ wrapper.find('MenuItem').at(1).simulate('click')
// must re-query for the menu items or we get a cached copy
- wrapper
- .find('MenuItem')
- .at(1)
- .should.have.prop('active', true)
+ wrapper.find('MenuItem').at(1).should.have.prop('active', true)
})
it('works as a string', () => {
diff --git a/test/specs/collections/Message/MessageList-test.js b/test/specs/collections/Message/MessageList-test.js
index 75124c7613..19a03f6a8d 100644
--- a/test/specs/collections/Message/MessageList-test.js
+++ b/test/specs/collections/Message/MessageList-test.js
@@ -24,20 +24,11 @@ describe('MessageList', () => {
wrapper.should.have.exactly(3).descendants('MessageItem')
- wrapper
- .childAt(0)
- .shallow()
- .should.have.text(items[0])
-
- wrapper
- .childAt(1)
- .shallow()
- .should.have.text(items[1])
-
- wrapper
- .childAt(2)
- .shallow()
- .should.have.text(items[2])
+ wrapper.childAt(0).shallow().should.have.text(items[0])
+
+ wrapper.childAt(1).shallow().should.have.text(items[1])
+
+ wrapper.childAt(2).shallow().should.have.text(items[2])
})
})
})
diff --git a/test/specs/collections/Table/Table-test.js b/test/specs/collections/Table/Table-test.js
index c39bccafe6..d65894082a 100644
--- a/test/specs/collections/Table/Table-test.js
+++ b/test/specs/collections/Table/Table-test.js
@@ -143,25 +143,15 @@ describe('Table', () => {
thead.should.have.lengthOf(1)
thead.find('tr').should.have.lengthOf(1)
- thead
- .find('tr')
- .find('th')
- .should.have.lengthOf(headerRow.length)
+ thead.find('tr').find('th').should.have.lengthOf(headerRow.length)
tbody.should.have.lengthOf(1)
tbody.find('tr').should.have.lengthOf(tableData.length)
- tbody
- .find('tr')
- .first()
- .find('td')
- .should.have.lengthOf(3)
+ tbody.find('tr').first().find('td').should.have.lengthOf(3)
tfoot.should.have.lengthOf(1)
tfoot.find('tr').should.have.lengthOf(1)
- tfoot
- .find('tr')
- .find('td')
- .should.have.lengthOf(footerRow.length)
+ tfoot.find('tr').find('td').should.have.lengthOf(footerRow.length)
})
it('renders the table with 2 lines header', () => {
@@ -169,31 +159,16 @@ describe('Table', () => {
thead.should.have.lengthOf(1)
thead.find('tr').should.have.lengthOf(2)
- thead
- .find('tr')
- .at(0)
- .find('th')
- .should.have.lengthOf(3)
- thead
- .find('tr')
- .at(1)
- .find('th')
- .should.have.lengthOf(2)
+ thead.find('tr').at(0).find('th').should.have.lengthOf(3)
+ thead.find('tr').at(1).find('th').should.have.lengthOf(2)
tbody.should.have.lengthOf(1)
tbody.find('tr').should.have.lengthOf(tableData.length)
- tbody
- .find('tr')
- .first()
- .find('td')
- .should.have.lengthOf(4)
+ tbody.find('tr').first().find('td').should.have.lengthOf(4)
tfoot.should.have.lengthOf(1)
tfoot.find('tr').should.have.lengthOf(1)
- tfoot
- .find('tr')
- .find('td')
- .should.have.lengthOf(footerRow.length)
+ tfoot.find('tr').find('td').should.have.lengthOf(footerRow.length)
})
})
})
diff --git a/test/specs/commonTests/tsHelpers.js b/test/specs/commonTests/tsHelpers.js
index eca5646c9a..eae8103b80 100644
--- a/test/specs/commonTests/tsHelpers.js
+++ b/test/specs/commonTests/tsHelpers.js
@@ -77,7 +77,7 @@ export const hasAnySignature = (nodes) => {
export const requireTs = (tsPath) => {
try {
- return require(`!raw-loader!../../../src/${tsPath}`)
+ return require(`!raw-loader!../../../src/${tsPath}`).default
} catch (e) {
return false
}
diff --git a/test/specs/elements/Button/Button-test.js b/test/specs/elements/Button/Button-test.js
index 30b07e56ca..a73a1ee83d 100644
--- a/test/specs/elements/Button/Button-test.js
+++ b/test/specs/elements/Button/Button-test.js
@@ -199,40 +199,22 @@ describe('Button', () => {
const wrapper = shallow( )
wrapper.should.have.exactly(1).descendants('Label[pointing="right"]')
- wrapper
- .childAt(0)
- .shallow()
- .should.match('.ui.label')
- wrapper
- .childAt(1)
- .childAt(0)
- .should.match('button')
+ wrapper.childAt(0).shallow().should.match('.ui.label')
+ wrapper.childAt(1).childAt(0).should.match('button')
})
it('is after the button and pointing="left" when labelPosition="right"', () => {
const wrapper = shallow( )
wrapper.should.have.exactly(1).descendants('Label[pointing="left"]')
- wrapper
- .childAt(0)
- .childAt(0)
- .should.match('button')
- wrapper
- .childAt(1)
- .shallow()
- .should.match('.ui.label')
+ wrapper.childAt(0).childAt(0).should.match('button')
+ wrapper.childAt(1).shallow().should.match('.ui.label')
})
it('is after the button and pointing="left" by default', () => {
const wrapper = shallow( )
wrapper.should.have.exactly(1).descendants('Label[pointing="left"]')
- wrapper
- .childAt(0)
- .childAt(0)
- .should.match('button')
- wrapper
- .childAt(1)
- .shallow()
- .should.match('.ui.label')
+ wrapper.childAt(0).childAt(0).should.match('button')
+ wrapper.childAt(1).shallow().should.match('.ui.label')
})
})
diff --git a/test/specs/elements/Input/Input-test.js b/test/specs/elements/Input/Input-test.js
index 8cdcda613b..429c68192d 100644
--- a/test/specs/elements/Input/Input-test.js
+++ b/test/specs/elements/Input/Input-test.js
@@ -174,10 +174,7 @@ describe('Input', () => {
const wrapper = mount( , { attachTo: mountNode })
wrapper.instance().select()
- window
- .getSelection()
- .toString()
- .should.equal(value)
+ window.getSelection().toString().should.equal(value)
wrapper.detach()
document.body.removeChild(mountNode)
diff --git a/test/specs/lib/factories-test.js b/test/specs/lib/factories-test.js
index 0ccd69604e..acf8216d05 100644
--- a/test/specs/lib/factories-test.js
+++ b/test/specs/lib/factories-test.js
@@ -51,9 +51,7 @@ const itAppliesDefaultProps = (value) => {
it('applies defaultProps', () => {
const defaultProps = { some: 'defaults' }
- shallow(getShorthand({ value, defaultProps }))
- .props()
- .should.deep.equal(defaultProps)
+ shallow(getShorthand({ value, defaultProps })).props().should.deep.equal(defaultProps)
})
}
@@ -81,9 +79,7 @@ const itMergesClassNames = (classNameSource, extraClassName, shorthandConfig) =>
const itAppliesProps = (propsSource, expectedProps, shorthandConfig) => {
it(`applies props from the ${propsSource} props`, () => {
- shallow(getShorthand(shorthandConfig))
- .props()
- .should.deep.equal(expectedProps)
+ shallow(getShorthand(shorthandConfig)).props().should.deep.equal(expectedProps)
})
}
@@ -117,7 +113,11 @@ describe('factories', () => {
})
it('does not throw if passed a function Component', () => {
- const goodUsage = () => createShorthandFactory(() =>
, () => ({}))
+ const goodUsage = () =>
+ createShorthandFactory(
+ () =>
,
+ () => ({}),
+ )
expect(goodUsage).not.to.throw()
})
@@ -145,7 +145,11 @@ describe('factories', () => {
})
it('does not throw if passed a function Component', () => {
- const goodUsage = () => createShorthand(() =>
, () => ({}))
+ const goodUsage = () =>
+ createShorthand(
+ () =>
,
+ () => ({}),
+ )
expect(goodUsage).not.to.throw()
})
diff --git a/test/specs/lib/isBrowser-test.js b/test/specs/lib/isBrowser-test.js
index 918c934be0..d6d6c6731f 100644
--- a/test/specs/lib/isBrowser-test.js
+++ b/test/specs/lib/isBrowser-test.js
@@ -8,19 +8,19 @@ describe('isBrowser', () => {
})
it('should return false when there is no document', () => {
- require('imports-loader?document=>undefined!src/lib/isBrowser')
+ require('imports-loader?additionalCode=var%20document=undefined;!src/lib/isBrowser')
.default()
.should.be.false()
- require('imports-loader?document=>null!src/lib/isBrowser')
+ require('imports-loader?additionalCode=var%20document=null;!src/lib/isBrowser')
.default()
.should.be.false()
})
it('should return false when there is no window', () => {
- require('imports-loader?window=>undefined!src/lib/isBrowser')
+ require('imports-loader?additionalCode=var%20window=undefined;!src/lib/isBrowser')
.default()
.should.be.false()
- require('imports-loader?window=>null!src/lib/isBrowser')
+ require('imports-loader?additionalCode=var%20window=null;!src/lib/isBrowser')
.default()
.should.be.false()
})
diff --git a/test/specs/modules/Accordion/AccordionAccordion-test.js b/test/specs/modules/Accordion/AccordionAccordion-test.js
index a4f7692922..af6db9a6ce 100644
--- a/test/specs/modules/Accordion/AccordionAccordion-test.js
+++ b/test/specs/modules/Accordion/AccordionAccordion-test.js
@@ -42,16 +42,10 @@ describe('AccordionAccordion', () => {
it('is toggled to -1 when clicking Title a second time', () => {
const wrapper = mount( )
- wrapper
- .find(AccordionTitle)
- .at(0)
- .simulate('click')
+ wrapper.find(AccordionTitle).at(0).simulate('click')
wrapper.should.have.state('activeIndex', 0)
- wrapper
- .find(AccordionTitle)
- .at(0)
- .simulate('click')
+ wrapper.find(AccordionTitle).at(0).simulate('click')
wrapper.should.have.state('activeIndex', -1)
})
@@ -105,16 +99,10 @@ describe('AccordionAccordion', () => {
it('can be inclusive and can open multiple panels by clicking', () => {
const wrapper = mount( )
- wrapper
- .find(AccordionTitle)
- .at(0)
- .simulate('click')
+ wrapper.find(AccordionTitle).at(0).simulate('click')
wrapper.should.have.state('activeIndex').that.includes(0)
- wrapper
- .find(AccordionTitle)
- .at(1)
- .simulate('click')
+ wrapper.find(AccordionTitle).at(1).simulate('click')
wrapper.should.have.state('activeIndex').that.includes(0, 1)
})
@@ -123,16 +111,10 @@ describe('AccordionAccordion', () => {
,
)
- wrapper
- .find(AccordionTitle)
- .at(0)
- .simulate('click')
+ wrapper.find(AccordionTitle).at(0).simulate('click')
wrapper.should.have.state('activeIndex').that.includes(1)
- wrapper
- .find(AccordionTitle)
- .at(1)
- .simulate('click')
+ wrapper.find(AccordionTitle).at(1).simulate('click')
wrapper.should.have.state('activeIndex').that.is.empty()
})
@@ -165,7 +147,10 @@ describe('AccordionAccordion', () => {
const event = { target: null }
const onClick = sandbox.spy()
const onTitleClick = sandbox.spy()
- const panels = [{ key: 'A', title: { content: 'A', onClick } }, { key: 'B', title: 'B' }]
+ const panels = [
+ { key: 'A', title: { content: 'A', onClick } },
+ { key: 'B', title: 'B' },
+ ]
it('is called with (e, titleProps) when clicked', () => {
mount( )
@@ -207,10 +192,7 @@ describe('AccordionAccordion', () => {
})
it('passes onClick handler', () => {
- children
- .find(AccordionTitle)
- .at(0)
- .simulate('click', event)
+ children.find(AccordionTitle).at(0).simulate('click', event)
onClick.should.have.been.calledOnce()
onClick.should.have.been.calledWithMatch(event, { content: 'A', index: 0 })
diff --git a/test/specs/modules/Dimmer/DimmerInner-test.js b/test/specs/modules/Dimmer/DimmerInner-test.js
index d8dcd882ec..26965d4c53 100644
--- a/test/specs/modules/Dimmer/DimmerInner-test.js
+++ b/test/specs/modules/Dimmer/DimmerInner-test.js
@@ -51,10 +51,7 @@ describe('DimmerInner', () => {
},
)
- wrapper
- .find('div.content')
- .childAt(0)
- .simulate('click')
+ wrapper.find('div.content').childAt(0).simulate('click')
onClickOutside.should.have.not.been.called()
wrapper.unmount()
diff --git a/test/specs/modules/Dropdown/Dropdown-test.js b/test/specs/modules/Dropdown/Dropdown-test.js
index d2b8d631e3..8d9f60d1ab 100644
--- a/test/specs/modules/Dropdown/Dropdown-test.js
+++ b/test/specs/modules/Dropdown/Dropdown-test.js
@@ -288,10 +288,7 @@ describe('Dropdown', () => {
describe('aria', () => {
it('should label normal dropdown as a listbox', () => {
wrapperMount( )
- wrapper
- .find('div')
- .at(0)
- .should.have.prop('role', 'listbox')
+ wrapper.find('div').at(0).should.have.prop('role', 'listbox')
})
it('should render an aria-live region with aria-atomic', () => {
wrapperMount( )
@@ -302,10 +299,7 @@ describe('Dropdown', () => {
})
it('should label search dropdown as a combobox', () => {
wrapperMount( )
- wrapper
- .find('div')
- .at(0)
- .should.have.prop('role', 'combobox')
+ wrapper.find('div').at(0).should.have.prop('role', 'combobox')
})
it('should label search dropdownMenu as a listbox', () => {
wrapperMount( )
@@ -321,52 +315,31 @@ describe('Dropdown', () => {
})
it('should label disabled dropdown as aria-disabled', () => {
wrapperMount( )
- wrapper
- .find('div')
- .at(0)
- .should.have.prop('aria-disabled', true)
+ wrapper.find('div').at(0).should.have.prop('aria-disabled', true)
})
it('should label normal dropdown without aria-disabled', () => {
wrapperMount( )
- wrapper
- .find('div')
- .at(0)
- .should.not.have.prop('aria-disabled')
+ wrapper.find('div').at(0).should.not.have.prop('aria-disabled')
})
it('should label multiple dropdown as aria-multiselectable', () => {
wrapperMount( )
- wrapper
- .find('div')
- .at(0)
- .should.have.prop('aria-multiselectable', true)
+ wrapper.find('div').at(0).should.have.prop('aria-multiselectable', true)
})
it('should not label multiple search dropdown as aria-multiselectable', () => {
wrapperMount( )
- wrapper
- .find('div')
- .at(0)
- .should.not.have.prop('aria-multiselectable')
+ wrapper.find('div').at(0).should.not.have.prop('aria-multiselectable')
})
it('should label normal dropdown without aria-multiselectable', () => {
wrapperMount( )
- wrapper
- .find('div')
- .at(0)
- .should.not.have.prop('aria-multiselectable')
+ wrapper.find('div').at(0).should.not.have.prop('aria-multiselectable')
})
it('should label loading dropdown as aria-busy', () => {
wrapperMount( )
- wrapper
- .find('div')
- .at(0)
- .should.have.prop('aria-busy', true)
+ wrapper.find('div').at(0).should.have.prop('aria-busy', true)
})
it('should label normal dropdown without aria-busy', () => {
wrapperMount( )
- wrapper
- .find('div')
- .at(0)
- .should.not.have.prop('aria-busy')
+ wrapper.find('div').at(0).should.not.have.prop('aria-busy')
})
it('should label search dropdown input aria-autocomplete=list', () => {
wrapperMount( )
@@ -546,10 +519,7 @@ describe('Dropdown', () => {
wrapper.simulate('click')
dropdownMenuIsOpen()
- wrapper
- .find('DropdownItem')
- .first()
- .simulate('click')
+ wrapper.find('DropdownItem').first().simulate('click')
wrapper.should.have.state('value', options[0].value)
dropdownMenuIsClosed()
@@ -572,10 +542,7 @@ describe('Dropdown', () => {
dropdownMenuIsOpen()
- wrapper
- .find('DropdownItem')
- .first()
- .simulate('click', nativeEvent)
+ wrapper.find('DropdownItem').first().simulate('click', nativeEvent)
dropdownMenuIsClosed()
})
@@ -585,10 +552,7 @@ describe('Dropdown', () => {
dropdownMenuIsOpen()
- wrapper
- .find('DropdownItem')
- .first()
- .simulate('click', nativeEvent)
+ wrapper.find('DropdownItem').first().simulate('click', nativeEvent)
dropdownMenuIsOpen()
})
@@ -736,15 +700,9 @@ describe('Dropdown', () => {
wrapperShallow( )
// selection moved to second item
- wrapper
- .find('DropdownItem')
- .first()
- .should.have.prop('selected', false)
+ wrapper.find('DropdownItem').first().should.have.prop('selected', false)
- wrapper
- .find('DropdownItem')
- .at(1)
- .should.have.prop('selected', true)
+ wrapper.find('DropdownItem').at(1).should.have.prop('selected', true)
})
it('defaults to selected item when options are initially empty', () => {
const randomIndex = 1 + _.random(options.length - 2)
@@ -754,10 +712,7 @@ describe('Dropdown', () => {
wrapper.setProps({ options, value })
- wrapper
- .find('DropdownItem')
- .at(randomIndex)
- .should.have.prop('selected', true)
+ wrapper.find('DropdownItem').at(randomIndex).should.have.prop('selected', true)
})
it('is null when all options disabled', () => {
const disabledOptions = options.map((o) => ({ ...o, disabled: true }))
@@ -771,14 +726,8 @@ describe('Dropdown', () => {
const randomIndex = 1 + _.random(options.length - 2)
wrapperMount( )
- wrapper
- .find('DropdownItem')
- .at(randomIndex)
- .simulate('click')
- wrapper
- .find('DropdownItem')
- .at(randomIndex)
- .should.have.prop('selected', true)
+ wrapper.find('DropdownItem').at(randomIndex).simulate('click')
+ wrapper.find('DropdownItem').at(randomIndex).should.have.prop('selected', true)
})
it('is ignored when clicking a disabled item', () => {
// random item, skip the first as it's selected by default
@@ -807,34 +756,21 @@ describe('Dropdown', () => {
wrapper.update()
// selection moved to second item
- wrapper
- .find('DropdownItem')
- .first()
- .should.have.prop('selected', false)
- wrapper
- .find('DropdownItem')
- .at(1)
- .should.have.prop('selected', true)
+ wrapper.find('DropdownItem').first().should.have.prop('selected', false)
+ wrapper.find('DropdownItem').at(1).should.have.prop('selected', true)
})
it('moves up on arrow up when open', () => {
wrapperMount( )
// open
- wrapper
- .simulate('click')
- .find('DropdownItem')
- .first()
- .should.have.prop('selected', true)
+ wrapper.simulate('click').find('DropdownItem').first().should.have.prop('selected', true)
// arrow down
domEvent.keyDown(document, { key: 'ArrowUp' })
wrapper.update()
// selection moved to last item
- wrapper
- .find('DropdownItem')
- .first()
- .should.have.prop('selected', false)
+ wrapper.find('DropdownItem').first().should.have.prop('selected', false)
wrapper
.find('DropdownItem')
.at(options.length - 1)
@@ -942,18 +878,12 @@ describe('Dropdown', () => {
wrapper.should.not.have.descendants('.message')
- wrapper.should.have
- .exactly(1)
- .descendants('.selected')
- .which.contain.text('a1')
+ wrapper.should.have.exactly(1).descendants('.selected').which.contain.text('a1')
// move selection down
domEvent.keyDown(document, { key: 'ArrowDown' })
- wrapper.should.have
- .exactly(1)
- .descendants('.selected')
- .which.contain.text('a2')
+ wrapper.should.have.exactly(1).descendants('.selected').which.contain.text('a2')
})
it('skips over disabled items', () => {
const opts = [
@@ -1043,40 +973,28 @@ describe('Dropdown', () => {
wrapper.simulate('click')
// initial item props
- wrapper
- .find('DropdownItem')
- .at(1)
- .should.have.props({ selected: false, active: false })
+ wrapper.find('DropdownItem').at(1).should.have.props({ selected: false, active: false })
// select and make active
domEvent.keyDown(document, { key: 'ArrowDown' })
domEvent.keyDown(document, { key: 'Enter' })
wrapper.update()
- wrapper
- .find('DropdownItem')
- .at(1)
- .should.have.props({ selected: true, active: true })
+ wrapper.find('DropdownItem').at(1).should.have.props({ selected: true, active: true })
})
it('becomes active on spacebar when open', () => {
wrapperMount( )
wrapper.simulate('click')
// initial item props
- wrapper
- .find('DropdownItem')
- .at(1)
- .should.have.props({ selected: false, active: false })
+ wrapper.find('DropdownItem').at(1).should.have.props({ selected: false, active: false })
// select and make active
domEvent.keyDown(document, { key: 'ArrowDown' })
domEvent.keyDown(document, { key: 'Spacebar' })
wrapper.update()
- wrapper
- .find('DropdownItem')
- .at(1)
- .should.have.props({ selected: true, active: true })
+ wrapper.find('DropdownItem').at(1).should.have.props({ selected: true, active: true })
})
it('closes the menu on ENTER key', () => {
wrapperMount( ).simulate('click')
@@ -1152,19 +1070,13 @@ describe('Dropdown', () => {
wrapperMount( )
// initial active item
- wrapper
- .find('DropdownItem')
- .find({ value })
- .should.have.prop('active', true)
+ wrapper.find('DropdownItem').find({ value }).should.have.prop('active', true)
// change value
wrapper.setProps({ value: next })
// next active item
- wrapper
- .find('DropdownItem')
- .find({ value: next })
- .should.have.prop('active', true)
+ wrapper.find('DropdownItem').find({ value: next }).should.have.prop('active', true)
})
it('updates text when value changed', () => {
@@ -1242,7 +1154,10 @@ describe('Dropdown', () => {
wrapper.find('div.text').should.contain.text(item.text())
})
it('is updated on item enter if multiple search results present', () => {
- const searchOptions = [{ value: 0, text: 'foo' }, { value: 1, text: 'foe' }]
+ const searchOptions = [
+ { value: 0, text: 'foo' },
+ { value: 1, text: 'foe' },
+ ]
wrapperMount( )
// open and simulate search
@@ -1578,20 +1493,14 @@ describe('Dropdown', () => {
wrapper.update()
wrapper.should.have.exactly(options.length).descendants('DropdownItem')
- wrapper
- .find('DropdownItem')
- .last()
- .should.have.prop('selected', true)
+ wrapper.find('DropdownItem').last().should.have.prop('selected', true)
domEvent.keyDown(document, { key: 'Enter' })
wrapper.update()
// one item should be gone, and the _new_ last item should be selected
wrapper.should.have.exactly(options.length - 1).descendants('DropdownItem')
- wrapper
- .find('DropdownItem')
- .last()
- .should.have.prop('selected', true)
+ wrapper.find('DropdownItem').last().should.have.prop('selected', true)
})
it('has labels with delete icons', () => {
// add a value so we have a label
@@ -1645,10 +1554,7 @@ describe('Dropdown', () => {
.at(randomIndex)
.simulate('click', nativeEvent)
- wrapper
- .find('Label')
- .at(randomIndex)
- .should.have.prop('active', true)
+ wrapper.find('Label').at(randomIndex).should.have.prop('active', true)
})
it('calls onLabelClick', () => {
@@ -1688,10 +1594,7 @@ describe('Dropdown', () => {
const spy = sandbox.spy()
wrapperMount( )
- wrapper
- .find('.delete.icon')
- .at(randomIndex)
- .simulate('click')
+ wrapper.find('.delete.icon').at(randomIndex).simulate('click')
spy.should.have.been.calledOnce()
spy.should.have.been.calledWithMatch({}, { value: expected })
@@ -1803,21 +1706,13 @@ describe('Dropdown', () => {
it('is not called when value is not changed on item click', () => {
wrapperMount( )
- wrapper
- .simulate('click')
- .find('DropdownItem')
- .at(0)
- .simulate('click')
+ wrapper.simulate('click').find('DropdownItem').at(0).simulate('click')
spy.should.have.been.calledOnce()
// TODO: try reenable after Enzyme update
// https://github.com/Semantic-Org/Semantic-UI-React/pull/3747#issuecomment-522018329
// dropdownMenuIsClosed()
- wrapper
- .simulate('click')
- .find('DropdownItem')
- .at(0)
- .simulate('click')
+ wrapper.simulate('click').find('DropdownItem').at(0).simulate('click')
spy.should.have.been.calledOnce()
// TODO: try reenable after Enzyme update
// dropdownMenuIsClosed()
@@ -2053,18 +1948,9 @@ describe('Dropdown', () => {
wrapperShallow( )
const items = wrapper.find('DropdownItem')
- items
- .at(0)
- .key()
- .should.equal('0')
- items
- .at(1)
- .key()
- .should.equal('bar')
- items
- .at(2)
- .key()
- .should.equal('baz')
+ items.at(0).key().should.equal('0')
+ items.at(1).key().should.equal('bar')
+ items.at(2).key().should.equal('baz')
})
})
@@ -2126,10 +2012,7 @@ describe('Dropdown', () => {
wrapper.simulate('click').setState({ searchQuery })
// click first item (we searched for exact text)
- wrapper
- .find('DropdownItem')
- .first()
- .simulate('click')
+ wrapper.find('DropdownItem').first().simulate('click')
// bye bye search query
wrapper.should.have.state('searchQuery', '')
@@ -2214,10 +2097,7 @@ describe('Dropdown', () => {
wrapper.simulate('click')
dropdownMenuIsOpen()
- wrapper
- .find('DropdownItem')
- .at(0)
- .should.have.prop('selected', true)
+ wrapper.find('DropdownItem').at(0).should.have.prop('selected', true)
// blur, focus, open, move item selection down
wrapper.simulate('blur')
@@ -2225,14 +2105,8 @@ describe('Dropdown', () => {
domEvent.keyDown(document, { key: 'ArrowDown' })
wrapper.update()
- wrapper
- .find('DropdownItem')
- .at(0)
- .should.have.prop('selected', false)
- wrapper
- .find('DropdownItem')
- .at(1)
- .should.have.prop('selected', true)
+ wrapper.find('DropdownItem').at(0).should.have.prop('selected', false)
+ wrapper.find('DropdownItem').at(1).should.have.prop('selected', true)
// blur, focus, open, move item selection up
wrapper.simulate('blur')
@@ -2240,14 +2114,8 @@ describe('Dropdown', () => {
domEvent.keyDown(document, { key: 'ArrowUp' })
wrapper.update()
- wrapper
- .find('DropdownItem')
- .at(0)
- .should.have.prop('selected', true)
- wrapper
- .find('DropdownItem')
- .at(1)
- .should.not.have.prop('selected', true)
+ wrapper.find('DropdownItem').at(0).should.have.prop('selected', true)
+ wrapper.find('DropdownItem').at(1).should.not.have.prop('selected', true)
})
it('does not close the menu when options are empty', () => {
@@ -2556,10 +2424,7 @@ describe('Dropdown', () => {
wrapper.find('DropdownItem').should.have.lengthOf(4)
- wrapper
- .find('DropdownItem')
- .first()
- .should.have.prop('value', 'a')
+ wrapper.find('DropdownItem').first().should.have.prop('value', 'a')
})
it('uses default additionLabel', () => {
@@ -2571,10 +2436,7 @@ describe('Dropdown', () => {
wrapper.find('DropdownItem').should.have.lengthOf(1)
- wrapper
- .find('DropdownItem')
- .last()
- .should.have.prop('className', 'addition')
+ wrapper.find('DropdownItem').last().should.have.prop('className', 'addition')
const text = wrapper.find('DropdownItem').prop('text')
@@ -2591,10 +2453,7 @@ describe('Dropdown', () => {
wrapper.find('DropdownItem').should.have.lengthOf(1)
- wrapper
- .find('DropdownItem')
- .last()
- .should.have.prop('className', 'addition')
+ wrapper.find('DropdownItem').last().should.have.prop('className', 'addition')
const text = wrapper.find('DropdownItem').prop('text')
@@ -2617,10 +2476,7 @@ describe('Dropdown', () => {
wrapper.find('DropdownItem').should.have.lengthOf(1)
- wrapper
- .find('DropdownItem')
- .last()
- .should.have.prop('className', 'addition')
+ wrapper.find('DropdownItem').last().should.have.prop('className', 'addition')
const text = wrapper.find('DropdownItem').prop('text')
@@ -2637,10 +2493,7 @@ describe('Dropdown', () => {
wrapper.find('DropdownItem').should.have.lengthOf(1)
- wrapper
- .find('DropdownItem')
- .last()
- .should.have.prop('className', 'addition')
+ wrapper.find('DropdownItem').last().should.have.prop('className', 'addition')
const text = wrapper.find('DropdownItem').prop('text')
@@ -2663,19 +2516,13 @@ describe('Dropdown', () => {
wrapper.find('DropdownItem').should.have.lengthOf(4)
- wrapper
- .find('DropdownItem')
- .last()
- .should.have.prop('value', 'a')
+ wrapper.find('DropdownItem').last().should.have.prop('value', 'a')
wrapper.setProps({ options: [...customOptions, { text: 'bar', value: 'bar' }] })
wrapper.find('DropdownItem').should.have.lengthOf(5)
- wrapper
- .find('DropdownItem')
- .last()
- .should.have.prop('value', 'a')
+ wrapper.find('DropdownItem').last().should.have.prop('value', 'a')
})
it('keeps custom value option (top) when options change', () => {
@@ -2687,19 +2534,13 @@ describe('Dropdown', () => {
wrapper.find('DropdownItem').should.have.lengthOf(4)
- wrapper
- .find('DropdownItem')
- .first()
- .should.have.prop('value', 'a')
+ wrapper.find('DropdownItem').first().should.have.prop('value', 'a')
wrapper.setProps({ options: [...customOptions, { text: 'bar', value: 'bar' }] })
wrapper.find('DropdownItem').should.have.lengthOf(5)
- wrapper
- .find('DropdownItem')
- .first()
- .should.have.prop('value', 'a')
+ wrapper.find('DropdownItem').first().should.have.prop('value', 'a')
})
it('calls onAddItem prop when clicking new value', () => {
@@ -2718,10 +2559,7 @@ describe('Dropdown', () => {
search.simulate('change', { target: { value: 'boo' } })
- wrapper
- .find('DropdownItem')
- .first()
- .simulate('click')
+ wrapper.find('DropdownItem').first().simulate('click')
onChange.should.have.been.calledOnce()
onAddItem.should.have.been.calledOnce()
@@ -2858,11 +2696,7 @@ describe('Dropdown', () => {
wrapperMount( )
// open
- wrapper
- .simulate('click')
- .find('DropdownItem')
- .first()
- .should.have.prop('selected', true)
+ wrapper.simulate('click').find('DropdownItem').first().should.have.prop('selected', true)
// arrow up
domEvent.keyDown(document, { key: 'ArrowUp' })
@@ -2870,10 +2704,7 @@ describe('Dropdown', () => {
// selection should not move to last item
// should keep on first instead
- wrapper
- .find('DropdownItem')
- .first()
- .should.have.prop('selected', true)
+ wrapper.find('DropdownItem').first().should.have.prop('selected', true)
wrapper
.find('DropdownItem')
.at(options.length - 1)
@@ -2897,10 +2728,7 @@ describe('Dropdown', () => {
// selection should not move to first item
// should keep on last instead
- wrapper
- .find('DropdownItem')
- .first()
- .should.have.prop('selected', false)
+ wrapper.find('DropdownItem').first().should.have.prop('selected', false)
wrapper
.find('DropdownItem')
.at(options.length - 1)
diff --git a/test/specs/modules/Popup/Popup-test.js b/test/specs/modules/Popup/Popup-test.js
index b2512929ae..eb31650289 100644
--- a/test/specs/modules/Popup/Popup-test.js
+++ b/test/specs/modules/Popup/Popup-test.js
@@ -311,10 +311,7 @@ describe('Popup', () => {
}
wrapperMount( )
- wrapper
- .find('Popper')
- .should.have.prop('modifiers')
- .deep.include(modifiers)
+ wrapper.find('Popper').should.have.prop('modifiers').deep.include(modifiers)
})
})
diff --git a/test/specs/modules/Rating/Rating-test.js b/test/specs/modules/Rating/Rating-test.js
index 60ff65f4bb..38d7c5aec3 100644
--- a/test/specs/modules/Rating/Rating-test.js
+++ b/test/specs/modules/Rating/Rating-test.js
@@ -19,10 +19,7 @@ describe('Rating', () => {
it('makes icons active up to and including the clicked icon', () => {
const wrapper = mount( )
- wrapper
- .find('RatingIcon')
- .at(1)
- .simulate('click')
+ wrapper.find('RatingIcon').at(1).simulate('click')
const icons = wrapper.find('RatingIcon')
@@ -42,10 +39,7 @@ describe('Rating', () => {
it('makes the clicked icon aria-checked', () => {
const wrapper = mount( )
- wrapper
- .find('RatingIcon')
- .at(1)
- .simulate('click')
+ wrapper.find('RatingIcon').at(1).simulate('click')
const icons = wrapper.find('RatingIcon')
@@ -57,10 +51,7 @@ describe('Rating', () => {
it('set aria-setsize on each rating icon', () => {
const wrapper = mount( )
- wrapper
- .find('RatingIcon')
- .at(1)
- .simulate('click')
+ wrapper.find('RatingIcon').at(1).simulate('click')
const icons = wrapper.find('RatingIcon')
@@ -72,10 +63,7 @@ describe('Rating', () => {
it('sets aria-posinset on each rating icon', () => {
const wrapper = mount( )
- wrapper
- .find('RatingIcon')
- .at(1)
- .simulate('click')
+ wrapper.find('RatingIcon').at(1).simulate('click')
const icons = wrapper.find('RatingIcon')
@@ -87,11 +75,7 @@ describe('Rating', () => {
it('removes the "selected" prop', () => {
const wrapper = mount( )
- wrapper
- .find('RatingIcon')
- .last()
- .simulate('mouseEnter')
- .simulate('click')
+ wrapper.find('RatingIcon').last().simulate('mouseEnter').simulate('click')
wrapper.should.not.have.className('selected')
wrapper
.find('RatingIcon[selected=true]')
@@ -103,20 +87,14 @@ describe('Rating', () => {
it('adds the "selected" className to the Rating', () => {
const wrapper = mount( )
- wrapper
- .find('RatingIcon')
- .first()
- .simulate('mouseEnter')
+ wrapper.find('RatingIcon').first().simulate('mouseEnter')
wrapper.should.have.className('selected')
})
it('selects icons up to and including the hovered icon', () => {
const wrapper = mount( )
- wrapper
- .find('RatingIcon')
- .at(1)
- .simulate('mouseEnter')
+ wrapper.find('RatingIcon').at(1).simulate('mouseEnter')
const icons = wrapper.find('RatingIcon')
@@ -128,10 +106,7 @@ describe('Rating', () => {
it('unselects icons on mouse leave', () => {
const wrapper = mount( )
- wrapper
- .find('RatingIcon')
- .last()
- .simulate('mouseEnter')
+ wrapper.find('RatingIcon').last().simulate('mouseEnter')
wrapper.simulate('mouseLeave')
wrapper
@@ -144,10 +119,7 @@ describe('Rating', () => {
it('prevents clearing by default with multiple icons', () => {
const wrapper = mount( )
- wrapper
- .find('RatingIcon')
- .last()
- .simulate('click')
+ wrapper.find('RatingIcon').last().simulate('click')
wrapper
.find('RatingIcon[active=true]')
.should.have.length(5, 'Some RatingIcons did not retain their "active" prop')
@@ -156,45 +128,24 @@ describe('Rating', () => {
it('allows toggling when set to "auto" with a single icon', () => {
const wrapper = mount( )
- wrapper
- .find('RatingIcon')
- .at(0)
- .simulate('click')
- wrapper
- .find('RatingIcon')
- .at(0)
- .should.have.prop('active', true)
+ wrapper.find('RatingIcon').at(0).simulate('click')
+ wrapper.find('RatingIcon').at(0).should.have.prop('active', true)
- wrapper
- .find('RatingIcon')
- .at(0)
- .simulate('click')
- wrapper
- .find('RatingIcon')
- .at(0)
- .should.have.prop('active', false)
+ wrapper.find('RatingIcon').at(0).simulate('click')
+ wrapper.find('RatingIcon').at(0).should.have.prop('active', false)
})
it('allows clearing when true with a single icon', () => {
const wrapper = mount( )
- wrapper
- .find('RatingIcon')
- .at(0)
- .simulate('click')
- wrapper
- .find('RatingIcon')
- .at(0)
- .should.have.prop('active', false)
+ wrapper.find('RatingIcon').at(0).simulate('click')
+ wrapper.find('RatingIcon').at(0).should.have.prop('active', false)
})
it('allows clearing when true with multiple icons', () => {
const wrapper = mount( )
- wrapper
- .find('RatingIcon')
- .at(3)
- .simulate('click')
+ wrapper.find('RatingIcon').at(3).simulate('click')
wrapper
.find('RatingIcon[active=true]')
.should.have.length(0, 'Some RatingIcons did not remove their "active" prop')
@@ -211,10 +162,7 @@ describe('Rating', () => {
it('prevents clearing when false with multiple icons', () => {
const wrapper = mount( )
- wrapper
- .find('RatingIcon')
- .last()
- .simulate('click')
+ wrapper.find('RatingIcon').last().simulate('click')
wrapper
.find('RatingIcon[active=true]')
.should.have.length(5, 'Some RatingIcons did not retain their "active" prop')
@@ -239,10 +187,7 @@ describe('Rating', () => {
it('prevents the rating from being cleared', () => {
const wrapper = mount( )
- wrapper
- .find('RatingIcon')
- .last()
- .simulate('click')
+ wrapper.find('RatingIcon').last().simulate('click')
wrapper
.find('RatingIcon[active=true]')
.should.have.length(3, 'Some RatingIcons lost their "active" prop')
@@ -251,10 +196,7 @@ describe('Rating', () => {
it('prevents icons from becoming selected on mouse enter', () => {
const wrapper = mount( )
- wrapper
- .find('RatingIcon')
- .last()
- .simulate('mouseEnter')
+ wrapper.find('RatingIcon').last().simulate('mouseEnter')
wrapper
.find('RatingIcon[selected=true]')
.should.have.length(0, 'Some RatingIcons became "selected"')
@@ -263,10 +205,7 @@ describe('Rating', () => {
it('prevents icons from becoming unselected on mouse leave', () => {
const wrapper = mount( )
- wrapper
- .find('RatingIcon')
- .last()
- .simulate('mouseEnter')
+ wrapper.find('RatingIcon').last().simulate('mouseEnter')
wrapper
.find('RatingIcon[selected=true]')
.should.have.length(3, 'Not every RatingIcon was selected on mouseEnter')
@@ -281,10 +220,7 @@ describe('Rating', () => {
it('prevents icons from becoming active on click', () => {
const wrapper = mount( )
- wrapper
- .find('RatingIcon')
- .last()
- .simulate('click')
+ wrapper.find('RatingIcon').last().simulate('click')
wrapper
.find('RatingIcon[active=true]')
.should.have.length(0, 'Some RatingIcons became "active"')
diff --git a/test/specs/modules/Search/Search-test.js b/test/specs/modules/Search/Search-test.js
index c05d30ffec..1fb50f90d5 100644
--- a/test/specs/modules/Search/Search-test.js
+++ b/test/specs/modules/Search/Search-test.js
@@ -146,15 +146,9 @@ describe('Search', () => {
wrapper.update()
// selection moved to second item
- wrapper
- .find('SearchResult')
- .first()
- .should.have.prop('active', false)
+ wrapper.find('SearchResult').first().should.have.prop('active', false)
- wrapper
- .find('SearchResult')
- .at(1)
- .should.have.prop('active', true)
+ wrapper.find('SearchResult').at(1).should.have.prop('active', true)
})
it('moves up on arrow up when open', () => {
wrapperMount( )
@@ -168,10 +162,7 @@ describe('Search', () => {
wrapper.update()
// selection moved to last item
- wrapper
- .find('SearchResult')
- .first()
- .should.have.prop('active', false)
+ wrapper.find('SearchResult').first().should.have.prop('active', false)
wrapper
.find('SearchResult')
@@ -269,15 +260,9 @@ describe('Search', () => {
,
)
- wrapper
- .find('SearchCategory')
- .first()
- .should.have.prop('active', true)
+ wrapper.find('SearchCategory').first().should.have.prop('active', true)
- wrapper
- .find('SearchResult')
- .first()
- .should.have.prop('active', true)
+ wrapper.find('SearchResult').first().should.have.prop('active', true)
})
it('moves down on arrow down when open', () => {
wrapperMount(
@@ -293,25 +278,13 @@ describe('Search', () => {
wrapper.update()
// selection moved to second item
- wrapper
- .find('SearchCategory')
- .first()
- .should.have.prop('active', false)
+ wrapper.find('SearchCategory').first().should.have.prop('active', false)
- wrapper
- .find('SearchResult')
- .first()
- .should.have.prop('active', false)
+ wrapper.find('SearchResult').first().should.have.prop('active', false)
- wrapper
- .find('SearchCategory')
- .at(1)
- .should.have.prop('active', true)
+ wrapper.find('SearchCategory').at(1).should.have.prop('active', true)
- wrapper
- .find('SearchResult')
- .at(categoryResultsLength)
- .should.have.prop('active', true)
+ wrapper.find('SearchResult').at(categoryResultsLength).should.have.prop('active', true)
})
it('moves up on arrow up when open', () => {
wrapperMount( )
@@ -325,15 +298,9 @@ describe('Search', () => {
wrapper.update()
// selection moved to last item
- wrapper
- .find('SearchCategory')
- .first()
- .should.have.prop('active', false)
+ wrapper.find('SearchCategory').first().should.have.prop('active', false)
- wrapper
- .find('SearchResult')
- .first()
- .should.have.prop('active', false)
+ wrapper.find('SearchResult').first().should.have.prop('active', false)
wrapper
.find('SearchCategory')
@@ -392,10 +359,7 @@ describe('Search', () => {
.find('.prompt')
.should.have.value(initialValue)
- wrapper
- .setProps({ value: nextValue })
- .find('.prompt')
- .should.have.value(nextValue)
+ wrapper.setProps({ value: nextValue }).find('.prompt').should.have.value(nextValue)
})
})
@@ -527,10 +491,7 @@ describe('Search', () => {
wrapperMount( )
openSearchResults()
- wrapper
- .find('SearchResult')
- .at('0')
- .simulate('click', nativeEvent)
+ wrapper.find('SearchResult').at('0').simulate('click', nativeEvent)
onBlur.should.have.not.been.called()
})
})
@@ -560,10 +521,7 @@ describe('Search', () => {
openSearchResults()
searchResultsIsOpen()
- wrapper
- .find('SearchResult')
- .at(randomIndex)
- .simulate('click', nativeEvent)
+ wrapper.find('SearchResult').at(randomIndex).simulate('click', nativeEvent)
spy.should.have.been.calledOnce()
spy.should.have.been.calledWithMatch(
diff --git a/test/specs/modules/Sticky/Sticky-test.js b/test/specs/modules/Sticky/Sticky-test.js
index 784c098a56..4c17134209 100644
--- a/test/specs/modules/Sticky/Sticky-test.js
+++ b/test/specs/modules/Sticky/Sticky-test.js
@@ -133,20 +133,14 @@ describe('Sticky', () => {
)
_.forEach(['ui', 'sticky', 'fixed', 'top'], (className) =>
- wrapper
- .childAt(0)
- .childAt(1)
- .should.have.className(className),
+ wrapper.childAt(0).childAt(1).should.have.className(className),
)
onStick.should.have.been.calledOnce()
onStick.should.have.been.calledWithMatch(undefined, positions)
wrapper.setProps({ active: false })
scrollToTop()
- wrapper
- .childAt(0)
- .childAt(1)
- .should.have.not.className('fixed')
+ wrapper.childAt(0).childAt(1).should.have.not.className('fixed')
onUnStick.should.not.have.been.called()
})
})
@@ -171,15 +165,9 @@ describe('Sticky', () => {
scrollAfterTrigger()
_.forEach(['ui', 'sticky', 'fixed', 'top'], (className) =>
- wrapper
- .childAt(0)
- .childAt(1)
- .should.have.className(className),
+ wrapper.childAt(0).childAt(1).should.have.className(className),
)
- wrapper
- .childAt(0)
- .childAt(1)
- .should.have.style('top', '12px')
+ wrapper.childAt(0).childAt(1).should.have.style('top', '12px')
})
it('should stick to bottom of context', () => {
@@ -189,15 +177,9 @@ describe('Sticky', () => {
scrollAfterContext()
_.forEach(['ui', 'sticky', 'bound', 'bottom'], (className) =>
- wrapper
- .childAt(0)
- .childAt(1)
- .should.have.className(className),
+ wrapper.childAt(0).childAt(1).should.have.className(className),
)
- wrapper
- .childAt(0)
- .childAt(1)
- .should.have.style('bottom', '0px')
+ wrapper.childAt(0).childAt(1).should.have.style('bottom', '0px')
})
it('should preserve sticky element height', () => {
@@ -208,10 +190,7 @@ describe('Sticky', () => {
// Scroll after trigger
scrollAfterTrigger()
- wrapper
- .childAt(0)
- .childAt(0)
- .should.have.style('height', '100px')
+ wrapper.childAt(0).childAt(0).should.have.style('height', '100px')
})
})
describe('onBottom', () => {
@@ -294,33 +273,18 @@ describe('Sticky', () => {
domEvent.scroll(window)
_.forEach(['ui', 'sticky', 'bound', 'bottom'], (className) =>
- wrapper
- .childAt(0)
- .childAt(1)
- .should.have.className(className),
+ wrapper.childAt(0).childAt(1).should.have.className(className),
)
- wrapper
- .childAt(0)
- .childAt(1)
- .should.have.style('bottom', '0px')
+ wrapper.childAt(0).childAt(1).should.have.style('bottom', '0px')
// Scroll a bit before the top: component should stick to screen bottom
scrollAfterTrigger()
- wrapper
- .childAt(0)
- .childAt(1)
- .should.have.style('bottom', '30px')
+ wrapper.childAt(0).childAt(1).should.have.style('bottom', '30px')
_.forEach(['ui', 'sticky', 'fixed', 'bottom'], (className) =>
- wrapper
- .childAt(0)
- .childAt(1)
- .should.have.className(className),
+ wrapper.childAt(0).childAt(1).should.have.className(className),
)
- wrapper
- .childAt(0)
- .childAt(1)
- .should.not.have.style('top')
+ wrapper.childAt(0).childAt(1).should.not.have.style('top')
})
it('should stop pushing when reaching top', () => {
@@ -335,15 +299,9 @@ describe('Sticky', () => {
// Component should stick again to the top
_.forEach(['ui', 'sticky', 'fixed', 'top'], (className) =>
- wrapper
- .childAt(0)
- .childAt(1)
- .should.have.className(className),
+ wrapper.childAt(0).childAt(1).should.have.className(className),
)
- wrapper
- .childAt(0)
- .childAt(1)
- .should.have.style('top', '10px')
+ wrapper.childAt(0).childAt(1).should.have.style('top', '10px')
})
it('should return true if oversized', () => {
@@ -352,10 +310,7 @@ describe('Sticky', () => {
wrapperMount( )
scrollAfterTrigger()
- wrapper
- .instance()
- .isOversized()
- .should.be.equal(true)
+ wrapper.instance().isOversized().should.be.equal(true)
})
})
diff --git a/test/specs/modules/Tab/Tab-test.js b/test/specs/modules/Tab/Tab-test.js
index 42f948dce4..5350952638 100644
--- a/test/specs/modules/Tab/Tab-test.js
+++ b/test/specs/modules/Tab/Tab-test.js
@@ -29,37 +29,22 @@ describe('Tab', () => {
.find('MenuItem')
items.should.have.lengthOf(3)
- items
- .at(0)
- .shallow()
- .should.contain.text('Tab 1')
- items
- .at(1)
- .shallow()
- .should.contain.text('Tab 2')
- items
- .at(2)
- .shallow()
- .should.contain.text('Tab 3')
+ items.at(0).shallow().should.contain.text('Tab 1')
+ items.at(1).shallow().should.contain.text('Tab 2')
+ items.at(2).shallow().should.contain.text('Tab 3')
})
it('renders above the pane by default', () => {
const wrapper = shallow( )
wrapper.childAt(0).should.match('Menu')
- wrapper
- .childAt(1)
- .shallow()
- .should.match('Segment')
+ wrapper.childAt(1).shallow().should.match('Segment')
})
it("renders below the pane when attached='bottom'", () => {
const wrapper = shallow( )
- wrapper
- .childAt(0)
- .shallow()
- .should.match('Segment')
+ wrapper.childAt(0).shallow().should.match('Segment')
wrapper.childAt(1).should.match('Menu')
})
@@ -68,18 +53,8 @@ describe('Tab', () => {
const wrapper = shallow( )
wrapper.childAt(0).should.match('Grid')
- wrapper
- .childAt(0)
- .shallow()
- .childAt(1)
- .should.match('GridColumn')
- wrapper
- .childAt(0)
- .shallow()
- .childAt(1)
- .shallow()
- .childAt(0)
- .should.match('Menu')
+ wrapper.childAt(0).shallow().childAt(1).should.match('GridColumn')
+ wrapper.childAt(0).shallow().childAt(1).shallow().childAt(0).should.match('Menu')
wrapper.find('Menu').should.have.prop('tabular', 'right')
})
@@ -88,18 +63,8 @@ describe('Tab', () => {
const wrapper = shallow( )
wrapper.childAt(0).should.match('Grid')
- wrapper
- .childAt(0)
- .shallow()
- .childAt(0)
- .should.match('GridColumn')
- wrapper
- .childAt(0)
- .shallow()
- .childAt(0)
- .shallow()
- .childAt(0)
- .should.match('Menu')
+ wrapper.childAt(0).shallow().childAt(0).should.match('GridColumn')
+ wrapper.childAt(0).shallow().childAt(0).shallow().childAt(0).should.match('Menu')
wrapper.find('Menu').should.have.prop('tabular', 'right')
})
@@ -108,31 +73,10 @@ describe('Tab', () => {
const wrapper = shallow( )
wrapper.childAt(0).should.match('Grid')
- wrapper
- .childAt(0)
- .shallow()
- .childAt(0)
- .should.match('GridColumn')
- wrapper
- .childAt(0)
- .shallow()
- .childAt(0)
- .shallow()
- .childAt(0)
- .shallow()
- .should.match('Segment')
- wrapper
- .childAt(0)
- .shallow()
- .childAt(1)
- .should.match('GridColumn')
- wrapper
- .childAt(0)
- .shallow()
- .childAt(1)
- .shallow()
- .childAt(0)
- .should.match('Menu')
+ wrapper.childAt(0).shallow().childAt(0).should.match('GridColumn')
+ wrapper.childAt(0).shallow().childAt(0).shallow().childAt(0).shallow().should.match('Segment')
+ wrapper.childAt(0).shallow().childAt(1).should.match('GridColumn')
+ wrapper.childAt(0).shallow().childAt(1).shallow().childAt(0).should.match('Menu')
})
})
@@ -142,31 +86,10 @@ describe('Tab', () => {
const wrapper = shallow( )
wrapper.childAt(0).should.match('Grid')
- wrapper
- .childAt(0)
- .shallow()
- .childAt(0)
- .should.match('GridColumn')
- wrapper
- .childAt(0)
- .shallow()
- .childAt(0)
- .shallow()
- .childAt(0)
- .should.match('Menu')
- wrapper
- .childAt(0)
- .shallow()
- .childAt(1)
- .should.match('GridColumn')
- wrapper
- .childAt(0)
- .shallow()
- .childAt(1)
- .shallow()
- .childAt(0)
- .shallow()
- .should.match('Segment')
+ wrapper.childAt(0).shallow().childAt(0).should.match('GridColumn')
+ wrapper.childAt(0).shallow().childAt(0).shallow().childAt(0).should.match('Menu')
+ wrapper.childAt(0).shallow().childAt(1).should.match('GridColumn')
+ wrapper.childAt(0).shallow().childAt(1).shallow().childAt(0).shallow().should.match('Segment')
})
it("renders left of the pane when set 'left', even if tabular is right", () => {
@@ -174,31 +97,10 @@ describe('Tab', () => {
const wrapper = shallow( )
wrapper.childAt(0).should.match('Grid')
- wrapper
- .childAt(0)
- .shallow()
- .childAt(0)
- .should.match('GridColumn')
- wrapper
- .childAt(0)
- .shallow()
- .childAt(0)
- .shallow()
- .childAt(0)
- .should.match('Menu')
- wrapper
- .childAt(0)
- .shallow()
- .childAt(1)
- .should.match('GridColumn')
- wrapper
- .childAt(0)
- .shallow()
- .childAt(1)
- .shallow()
- .childAt(0)
- .shallow()
- .should.match('Segment')
+ wrapper.childAt(0).shallow().childAt(0).should.match('GridColumn')
+ wrapper.childAt(0).shallow().childAt(0).shallow().childAt(0).should.match('Menu')
+ wrapper.childAt(0).shallow().childAt(1).should.match('GridColumn')
+ wrapper.childAt(0).shallow().childAt(1).shallow().childAt(0).shallow().should.match('Segment')
})
it("renders right of the pane when set 'right'", () => {
@@ -206,31 +108,10 @@ describe('Tab', () => {
const wrapper = shallow( )
wrapper.childAt(0).should.match('Grid')
- wrapper
- .childAt(0)
- .shallow()
- .childAt(0)
- .should.match('GridColumn')
- wrapper
- .childAt(0)
- .shallow()
- .childAt(0)
- .shallow()
- .childAt(0)
- .shallow()
- .should.match('Segment')
- wrapper
- .childAt(0)
- .shallow()
- .childAt(1)
- .should.match('GridColumn')
- wrapper
- .childAt(0)
- .shallow()
- .childAt(1)
- .shallow()
- .childAt(0)
- .should.match('Menu')
+ wrapper.childAt(0).shallow().childAt(0).should.match('GridColumn')
+ wrapper.childAt(0).shallow().childAt(0).shallow().childAt(0).shallow().should.match('Segment')
+ wrapper.childAt(0).shallow().childAt(1).should.match('GridColumn')
+ wrapper.childAt(0).shallow().childAt(1).shallow().childAt(0).should.match('Menu')
})
})
@@ -246,10 +127,7 @@ describe('Tab', () => {
wrapper.find('TabPane[active]').should.contain.text('Tab 1 Content')
- wrapper
- .find('MenuItem')
- .at(1)
- .simulate('click')
+ wrapper.find('MenuItem').at(1).simulate('click')
wrapper.find('TabPane[active]').should.contain.text('Tab 2 Content')
})
diff --git a/test/specs/modules/Transition/TransitionGroup-test.js b/test/specs/modules/Transition/TransitionGroup-test.js
index 6f5fe0cd5b..46b8ebed48 100644
--- a/test/specs/modules/Transition/TransitionGroup-test.js
+++ b/test/specs/modules/Transition/TransitionGroup-test.js
@@ -75,14 +75,8 @@ describe('TransitionGroup', () => {
wrapper.setProps({ children: [
, '',
] })
wrapper.children().should.have.length(2)
- wrapper
- .childAt(0)
- .key()
- .should.equal('.$first')
- wrapper
- .childAt(1)
- .key()
- .should.equal('.$second')
+ wrapper.childAt(0).key().should.equal('.$first')
+ wrapper.childAt(1).key().should.equal('.$second')
})
it('sets visible to false when child was removed', () => {
@@ -95,15 +89,9 @@ describe('TransitionGroup', () => {
wrapper.setProps({ children: [
] })
wrapper.children().should.have.length(2)
- wrapper
- .childAt(0)
- .type()
- .should.equal(Transition)
+ wrapper.childAt(0).type().should.equal(Transition)
wrapper.childAt(0).should.have.prop('visible', true)
- wrapper
- .childAt(1)
- .type()
- .should.equal(Transition)
+ wrapper.childAt(1).type().should.equal(Transition)
wrapper.childAt(1).should.have.prop('visible', false)
})
@@ -120,10 +108,7 @@ describe('TransitionGroup', () => {
wrapper.update()
wrapper.children().should.have.length(1)
- wrapper
- .childAt(0)
- .key()
- .should.equal('.$first')
+ wrapper.childAt(0).key().should.equal('.$first')
done()
}, 0)
diff --git a/test/specs/views/Card/CardGroup-test.js b/test/specs/views/Card/CardGroup-test.js
index 3121347ff4..fd114d491b 100644
--- a/test/specs/views/Card/CardGroup-test.js
+++ b/test/specs/views/Card/CardGroup-test.js
@@ -27,14 +27,8 @@ describe('CardGroup', () => {
const wrapper = mount( ).find('Card')
- wrapper
- .first()
- .find('CardHeader')
- .should.contain.text(firstText)
- wrapper
- .last()
- .find('CardHeader')
- .should.contain.text(secondText)
+ wrapper.first().find('CardHeader').should.contain.text(firstText)
+ wrapper.last().find('CardHeader').should.contain.text(secondText)
})
})
})
diff --git a/test/specs/views/Item/ItemGroup-test.js b/test/specs/views/Item/ItemGroup-test.js
index 6bb73e1bc4..97f993a8e3 100644
--- a/test/specs/views/Item/ItemGroup-test.js
+++ b/test/specs/views/Item/ItemGroup-test.js
@@ -25,14 +25,8 @@ describe('ItemGroup', () => {
const itemWrappers = wrapper.find('Item')
wrapper.should.have.exactly(2).descendants('Item')
- itemWrappers
- .first()
- .find('ItemContent')
- .should.contain.text(firstText)
- itemWrappers
- .last()
- .find('ItemContent')
- .should.contain.text(secondText)
+ itemWrappers.first().find('ItemContent').should.contain.text(firstText)
+ itemWrappers.last().find('ItemContent').should.contain.text(secondText)
})
})
})
diff --git a/test/typings.tsx b/test/typings.tsx
index 7cb797fb25..336f72c78c 100644
--- a/test/typings.tsx
+++ b/test/typings.tsx
@@ -1,13 +1,13 @@
import * as React from 'react'
import { Button, Dropdown } from '../index'
-const BasicAssert = () =>
+export const BasicAssert = () =>
-const ShorthandItemElementAssert = () => (
+export const ShorthandItemElementAssert = () => (
Custom Language: } />
)
-const ShorthandItemFuncAssert = () => (
+export const ShorthandItemFuncAssert = () => (
(
@@ -18,7 +18,7 @@ const ShorthandItemFuncAssert = () => (
/>
)
-const ShorthandItemFuncChildren = () => (
+export const ShorthandItemFuncChildren = () => (
(
@@ -29,6 +29,4 @@ const ShorthandItemFuncChildren = () => (
/>
)
-const ShorthandItemFuncNullAssert = () => null} />
-
-export default BasicAssert
+export const ShorthandItemFuncNullAssert = () => null} />
diff --git a/test/utils/assertBodyClasses.js b/test/utils/assertBodyClasses.js
index 5f4f85a67e..082c23a09a 100644
--- a/test/utils/assertBodyClasses.js
+++ b/test/utils/assertBodyClasses.js
@@ -5,10 +5,7 @@
* @param {boolean} [hasClasses=true] Indicating whether to assert "has" or "does not have" classes
*/
const assertBodyClasses = (classes, hasClasses = true) => {
- const classesArr = []
- .concat(classes)
- .join(' ')
- .split(' ')
+ const classesArr = [].concat(classes).join(' ').split(' ')
classesArr.forEach((className) => {
const didFind = document.body.classList.contains(className)
diff --git a/tslint.json b/tslint.json
deleted file mode 100644
index 1438cada42..0000000000
--- a/tslint.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "extends": "tslint-config-airbnb",
- "rules": {
- "align": [false],
- "semicolon": [true, "never"],
- "no-increment-decrement": false,
- "import-name": [false],
- "max-line-length": [false],
- "object-curly-spacing": [false],
- "variable-name": false,
- "quotemark": [false],
- "arrow-parens": false,
- "ter-arrow-parens": [false],
- "ter-computed-property-spacing": [false],
- "ter-indent": [false]
- }
-}
diff --git a/yarn.lock b/yarn.lock
index 590793476b..97ac808fc5 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,22 +2,21 @@
# yarn lockfile v1
-"@babel/cli@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.4.4.tgz#5454bb7112f29026a4069d8e6f0e1794e651966c"
- integrity sha512-XGr5YjQSjgTa6OzQZY57FAJsdeVSAKR/u/KA5exWIz66IKtv/zXtHy+fIZcMry/EgYegwuHE7vzGnrFhjdIAsQ==
+"@babel/cli@^7.10.5":
+ version "7.10.5"
+ resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.10.5.tgz#57df2987c8cf89d0fc7d4b157ec59d7619f1b77a"
+ integrity sha512-j9H9qSf3kLdM0Ao3aGPbGZ73mEA9XazuupcS6cDGWuiyAcANoguhP0r2Lx32H5JGw4sSSoHG3x/mxVnHgvOoyA==
dependencies:
- commander "^2.8.1"
+ commander "^4.0.1"
convert-source-map "^1.1.0"
fs-readdir-recursive "^1.1.0"
glob "^7.0.0"
- lodash "^4.17.11"
- mkdirp "^0.5.1"
- output-file-sync "^2.0.0"
+ lodash "^4.17.19"
+ make-dir "^2.1.0"
slash "^2.0.0"
source-map "^0.5.0"
optionalDependencies:
- chokidar "^2.0.4"
+ chokidar "^2.1.8"
"@babel/code-frame@7.0.0-beta.51":
version "7.0.0-beta.51"
@@ -26,29 +25,40 @@
dependencies:
"@babel/highlight" "7.0.0-beta.51"
-"@babel/code-frame@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8"
- integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==
+"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a"
+ integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==
dependencies:
- "@babel/highlight" "^7.0.0"
+ "@babel/highlight" "^7.10.4"
-"@babel/core@^7.0.0", "@babel/core@^7.4.5":
- version "7.4.5"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.4.5.tgz#081f97e8ffca65a9b4b0fdc7e274e703f000c06a"
- integrity sha512-OvjIh6aqXtlsA8ujtGKfC7LYWksYSX8yQcM8Ay3LuvVeQ63lcOKgoZWVqcpFwkd29aYU9rVx7jxhfhiEDV9MZA==
+"@babel/compat-data@^7.10.4":
+ version "7.10.5"
+ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.10.5.tgz#d38425e67ea96b1480a3f50404d1bf85676301a6"
+ integrity sha512-mPVoWNzIpYJHbWje0if7Ck36bpbtTvIxOi9+6WSK9wjGEXearAqlwBoTQvVjsAY2VIwgcs8V940geY3okzRCEw==
dependencies:
- "@babel/code-frame" "^7.0.0"
- "@babel/generator" "^7.4.4"
- "@babel/helpers" "^7.4.4"
- "@babel/parser" "^7.4.5"
- "@babel/template" "^7.4.4"
- "@babel/traverse" "^7.4.5"
- "@babel/types" "^7.4.4"
- convert-source-map "^1.1.0"
+ browserslist "^4.12.0"
+ invariant "^2.2.4"
+ semver "^5.5.0"
+
+"@babel/core@^7.0.0", "@babel/core@^7.10.5", "@babel/core@^7.7.5":
+ version "7.10.5"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.10.5.tgz#1f15e2cca8ad9a1d78a38ddba612f5e7cdbbd330"
+ integrity sha512-O34LQooYVDXPl7QWCdW9p4NR+QlzOr7xShPPJz8GsuCU3/8ua/wqTr7gmnxXv+WBESiGU/G5s16i6tUvHkNb+w==
+ dependencies:
+ "@babel/code-frame" "^7.10.4"
+ "@babel/generator" "^7.10.5"
+ "@babel/helper-module-transforms" "^7.10.5"
+ "@babel/helpers" "^7.10.4"
+ "@babel/parser" "^7.10.5"
+ "@babel/template" "^7.10.4"
+ "@babel/traverse" "^7.10.5"
+ "@babel/types" "^7.10.5"
+ convert-source-map "^1.7.0"
debug "^4.1.0"
- json5 "^2.1.0"
- lodash "^4.17.11"
+ gensync "^1.0.0-beta.1"
+ json5 "^2.1.2"
+ lodash "^4.17.19"
resolve "^1.3.2"
semver "^5.4.1"
source-map "^0.5.0"
@@ -64,77 +74,95 @@
source-map "^0.5.0"
trim-right "^1.0.1"
-"@babel/generator@^7.4.0", "@babel/generator@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.4.4.tgz#174a215eb843fc392c7edcaabeaa873de6e8f041"
- integrity sha512-53UOLK6TVNqKxf7RUh8NE851EHRxOOeVXKbK2bivdb+iziMyk03Sr4eaE9OELCbyZAAafAKPDwF2TPUES5QbxQ==
+"@babel/generator@^7.10.5":
+ version "7.10.5"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.10.5.tgz#1b903554bc8c583ee8d25f1e8969732e6b829a69"
+ integrity sha512-3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig==
dependencies:
- "@babel/types" "^7.4.4"
+ "@babel/types" "^7.10.5"
jsesc "^2.5.1"
- lodash "^4.17.11"
source-map "^0.5.0"
- trim-right "^1.0.1"
-"@babel/helper-annotate-as-pure@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32"
- integrity sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==
+"@babel/helper-annotate-as-pure@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz#5bf0d495a3f757ac3bda48b5bf3b3ba309c72ba3"
+ integrity sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==
dependencies:
- "@babel/types" "^7.0.0"
+ "@babel/types" "^7.10.4"
-"@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0":
- version "7.1.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz#6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f"
- integrity sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==
+"@babel/helper-builder-binary-assignment-operator-visitor@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz#bb0b75f31bf98cbf9ff143c1ae578b87274ae1a3"
+ integrity sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==
dependencies:
- "@babel/helper-explode-assignable-expression" "^7.1.0"
- "@babel/types" "^7.0.0"
+ "@babel/helper-explode-assignable-expression" "^7.10.4"
+ "@babel/types" "^7.10.4"
-"@babel/helper-builder-react-jsx@^7.3.0":
- version "7.3.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.3.0.tgz#a1ac95a5d2b3e88ae5e54846bf462eeb81b318a4"
- integrity sha512-MjA9KgwCuPEkQd9ncSXvSyJ5y+j2sICHyrI0M3L+6fnS4wMSNDc1ARXsbTfbb2cXHn17VisSnU/sHFTCxVxSMw==
+"@babel/helper-builder-react-jsx-experimental@^7.10.4":
+ version "7.10.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.10.5.tgz#f35e956a19955ff08c1258e44a515a6d6248646b"
+ integrity sha512-Buewnx6M4ttG+NLkKyt7baQn7ScC/Td+e99G914fRU8fGIUivDDgVIQeDHFa5e4CRSJQt58WpNHhsAZgtzVhsg==
dependencies:
- "@babel/types" "^7.3.0"
- esutils "^2.0.0"
+ "@babel/helper-annotate-as-pure" "^7.10.4"
+ "@babel/helper-module-imports" "^7.10.4"
+ "@babel/types" "^7.10.5"
-"@babel/helper-call-delegate@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz#87c1f8ca19ad552a736a7a27b1c1fcf8b1ff1f43"
- integrity sha512-l79boDFJ8S1c5hvQvG+rc+wHw6IuH7YldmRKsYtpbawsxURu/paVy57FZMomGK22/JckepaikOkY0MoAmdyOlQ==
+"@babel/helper-builder-react-jsx@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz#8095cddbff858e6fa9c326daee54a2f2732c1d5d"
+ integrity sha512-5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg==
dependencies:
- "@babel/helper-hoist-variables" "^7.4.4"
- "@babel/traverse" "^7.4.4"
- "@babel/types" "^7.4.4"
+ "@babel/helper-annotate-as-pure" "^7.10.4"
+ "@babel/types" "^7.10.4"
-"@babel/helper-create-class-features-plugin@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.4.4.tgz#fc3d690af6554cc9efc607364a82d48f58736dba"
- integrity sha512-UbBHIa2qeAGgyiNR9RszVF7bUHEdgS4JAUNT8SiqrAN6YJVxlOxeLr5pBzb5kan302dejJ9nla4RyKcR1XT6XA==
+"@babel/helper-compilation-targets@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz#804ae8e3f04376607cc791b9d47d540276332bd2"
+ integrity sha512-a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ==
dependencies:
- "@babel/helper-function-name" "^7.1.0"
- "@babel/helper-member-expression-to-functions" "^7.0.0"
- "@babel/helper-optimise-call-expression" "^7.0.0"
- "@babel/helper-plugin-utils" "^7.0.0"
- "@babel/helper-replace-supers" "^7.4.4"
- "@babel/helper-split-export-declaration" "^7.4.4"
+ "@babel/compat-data" "^7.10.4"
+ browserslist "^4.12.0"
+ invariant "^2.2.4"
+ levenary "^1.1.1"
+ semver "^5.5.0"
-"@babel/helper-define-map@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.4.4.tgz#6969d1f570b46bdc900d1eba8e5d59c48ba2c12a"
- integrity sha512-IX3Ln8gLhZpSuqHJSnTNBWGDE9kdkTEWl21A/K7PQ00tseBwbqCHTvNLHSBd9M0R5rER4h5Rsvj9vw0R5SieBg==
+"@babel/helper-create-class-features-plugin@^7.10.4":
+ version "7.10.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz#9f61446ba80e8240b0a5c85c6fdac8459d6f259d"
+ integrity sha512-0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A==
dependencies:
- "@babel/helper-function-name" "^7.1.0"
- "@babel/types" "^7.4.4"
- lodash "^4.17.11"
+ "@babel/helper-function-name" "^7.10.4"
+ "@babel/helper-member-expression-to-functions" "^7.10.5"
+ "@babel/helper-optimise-call-expression" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/helper-replace-supers" "^7.10.4"
+ "@babel/helper-split-export-declaration" "^7.10.4"
-"@babel/helper-explode-assignable-expression@^7.1.0":
- version "7.1.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz#537fa13f6f1674df745b0c00ec8fe4e99681c8f6"
- integrity sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==
+"@babel/helper-create-regexp-features-plugin@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz#fdd60d88524659a0b6959c0579925e425714f3b8"
+ integrity sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.10.4"
+ "@babel/helper-regex" "^7.10.4"
+ regexpu-core "^4.7.0"
+
+"@babel/helper-define-map@^7.10.4":
+ version "7.10.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz#b53c10db78a640800152692b13393147acb9bb30"
+ integrity sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==
+ dependencies:
+ "@babel/helper-function-name" "^7.10.4"
+ "@babel/types" "^7.10.5"
+ lodash "^4.17.19"
+
+"@babel/helper-explode-assignable-expression@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.4.tgz#40a1cd917bff1288f699a94a75b37a1a2dbd8c7c"
+ integrity sha512-4K71RyRQNPRrR85sr5QY4X3VwG4wtVoXZB9+L3r1Gp38DhELyHCtovqydRi7c1Ovb17eRGiQ/FD5s8JdU0Uy5A==
dependencies:
- "@babel/traverse" "^7.1.0"
- "@babel/types" "^7.0.0"
+ "@babel/traverse" "^7.10.4"
+ "@babel/types" "^7.10.4"
"@babel/helper-function-name@7.0.0-beta.51":
version "7.0.0-beta.51"
@@ -145,14 +173,14 @@
"@babel/template" "7.0.0-beta.51"
"@babel/types" "7.0.0-beta.51"
-"@babel/helper-function-name@^7.1.0":
- version "7.1.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53"
- integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==
+"@babel/helper-function-name@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz#d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a"
+ integrity sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==
dependencies:
- "@babel/helper-get-function-arity" "^7.0.0"
- "@babel/template" "^7.1.0"
- "@babel/types" "^7.0.0"
+ "@babel/helper-get-function-arity" "^7.10.4"
+ "@babel/template" "^7.10.4"
+ "@babel/types" "^7.10.4"
"@babel/helper-get-function-arity@7.0.0-beta.51":
version "7.0.0-beta.51"
@@ -161,93 +189,94 @@
dependencies:
"@babel/types" "7.0.0-beta.51"
-"@babel/helper-get-function-arity@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3"
- integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==
+"@babel/helper-get-function-arity@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz#98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2"
+ integrity sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==
dependencies:
- "@babel/types" "^7.0.0"
+ "@babel/types" "^7.10.4"
-"@babel/helper-hoist-variables@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz#0298b5f25c8c09c53102d52ac4a98f773eb2850a"
- integrity sha512-VYk2/H/BnYbZDDg39hr3t2kKyifAm1W6zHRfhx8jGjIHpQEBv9dry7oQ2f3+J703TLu69nYdxsovl0XYfcnK4w==
+"@babel/helper-hoist-variables@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz#d49b001d1d5a68ca5e6604dda01a6297f7c9381e"
+ integrity sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==
dependencies:
- "@babel/types" "^7.4.4"
+ "@babel/types" "^7.10.4"
-"@babel/helper-member-expression-to-functions@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz#8cd14b0a0df7ff00f009e7d7a436945f47c7a16f"
- integrity sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg==
+"@babel/helper-member-expression-to-functions@^7.10.4", "@babel/helper-member-expression-to-functions@^7.10.5":
+ version "7.10.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.5.tgz#172f56e7a63e78112f3a04055f24365af702e7ee"
+ integrity sha512-HiqJpYD5+WopCXIAbQDG0zye5XYVvcO9w/DHp5GsaGkRUaamLj2bEtu6i8rnGGprAhHM3qidCMgp71HF4endhA==
dependencies:
- "@babel/types" "^7.0.0"
+ "@babel/types" "^7.10.5"
-"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.0.0-beta.49":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d"
- integrity sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==
+"@babel/helper-module-imports@^7.0.0-beta.49", "@babel/helper-module-imports@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz#4c5c54be04bd31670a7382797d75b9fa2e5b5620"
+ integrity sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==
dependencies:
- "@babel/types" "^7.0.0"
+ "@babel/types" "^7.10.4"
-"@babel/helper-module-transforms@^7.1.0", "@babel/helper-module-transforms@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.4.4.tgz#96115ea42a2f139e619e98ed46df6019b94414b8"
- integrity sha512-3Z1yp8TVQf+B4ynN7WoHPKS8EkdTbgAEy0nU0rs/1Kw4pDgmvYH3rz3aI11KgxKCba2cn7N+tqzV1mY2HMN96w==
+"@babel/helper-module-transforms@^7.10.4", "@babel/helper-module-transforms@^7.10.5":
+ version "7.10.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.10.5.tgz#120c271c0b3353673fcdfd8c053db3c544a260d6"
+ integrity sha512-4P+CWMJ6/j1W915ITJaUkadLObmCRRSC234uctJfn/vHrsLNxsR8dwlcXv9ZhJWzl77awf+mWXSZEKt5t0OnlA==
dependencies:
- "@babel/helper-module-imports" "^7.0.0"
- "@babel/helper-simple-access" "^7.1.0"
- "@babel/helper-split-export-declaration" "^7.4.4"
- "@babel/template" "^7.4.4"
- "@babel/types" "^7.4.4"
- lodash "^4.17.11"
+ "@babel/helper-module-imports" "^7.10.4"
+ "@babel/helper-replace-supers" "^7.10.4"
+ "@babel/helper-simple-access" "^7.10.4"
+ "@babel/helper-split-export-declaration" "^7.10.4"
+ "@babel/template" "^7.10.4"
+ "@babel/types" "^7.10.5"
+ lodash "^4.17.19"
-"@babel/helper-optimise-call-expression@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz#a2920c5702b073c15de51106200aa8cad20497d5"
- integrity sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==
+"@babel/helper-optimise-call-expression@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz#50dc96413d594f995a77905905b05893cd779673"
+ integrity sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==
dependencies:
- "@babel/types" "^7.0.0"
+ "@babel/types" "^7.10.4"
-"@babel/helper-plugin-utils@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250"
- integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==
+"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375"
+ integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==
-"@babel/helper-regex@^7.0.0", "@babel/helper-regex@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.4.4.tgz#a47e02bc91fb259d2e6727c2a30013e3ac13c4a2"
- integrity sha512-Y5nuB/kESmR3tKjU8Nkn1wMGEx1tjJX076HBMeL3XLQCu6vA/YRzuTW0bbb+qRnXvQGn+d6Rx953yffl8vEy7Q==
+"@babel/helper-regex@^7.10.4":
+ version "7.10.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.10.5.tgz#32dfbb79899073c415557053a19bd055aae50ae0"
+ integrity sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==
dependencies:
- lodash "^4.17.11"
+ lodash "^4.17.19"
-"@babel/helper-remap-async-to-generator@^7.1.0":
- version "7.1.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz#361d80821b6f38da75bd3f0785ece20a88c5fe7f"
- integrity sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==
- dependencies:
- "@babel/helper-annotate-as-pure" "^7.0.0"
- "@babel/helper-wrap-function" "^7.1.0"
- "@babel/template" "^7.1.0"
- "@babel/traverse" "^7.1.0"
- "@babel/types" "^7.0.0"
-
-"@babel/helper-replace-supers@^7.1.0", "@babel/helper-replace-supers@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.4.4.tgz#aee41783ebe4f2d3ab3ae775e1cc6f1a90cefa27"
- integrity sha512-04xGEnd+s01nY1l15EuMS1rfKktNF+1CkKmHoErDppjAAZL+IUBZpzT748x262HF7fibaQPhbvWUl5HeSt1EXg==
- dependencies:
- "@babel/helper-member-expression-to-functions" "^7.0.0"
- "@babel/helper-optimise-call-expression" "^7.0.0"
- "@babel/traverse" "^7.4.4"
- "@babel/types" "^7.4.4"
+"@babel/helper-remap-async-to-generator@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.4.tgz#fce8bea4e9690bbe923056ded21e54b4e8b68ed5"
+ integrity sha512-86Lsr6NNw3qTNl+TBcF1oRZMaVzJtbWTyTko+CQL/tvNvcGYEFKbLXDPxtW0HKk3McNOk4KzY55itGWCAGK5tg==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.10.4"
+ "@babel/helper-wrap-function" "^7.10.4"
+ "@babel/template" "^7.10.4"
+ "@babel/traverse" "^7.10.4"
+ "@babel/types" "^7.10.4"
-"@babel/helper-simple-access@^7.1.0":
- version "7.1.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c"
- integrity sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==
+"@babel/helper-replace-supers@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz#d585cd9388ea06e6031e4cd44b6713cbead9e6cf"
+ integrity sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==
+ dependencies:
+ "@babel/helper-member-expression-to-functions" "^7.10.4"
+ "@babel/helper-optimise-call-expression" "^7.10.4"
+ "@babel/traverse" "^7.10.4"
+ "@babel/types" "^7.10.4"
+
+"@babel/helper-simple-access@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz#0f5ccda2945277a2a7a2d3a821e15395edcf3461"
+ integrity sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==
dependencies:
- "@babel/template" "^7.1.0"
- "@babel/types" "^7.0.0"
+ "@babel/template" "^7.10.4"
+ "@babel/types" "^7.10.4"
"@babel/helper-split-export-declaration@7.0.0-beta.51":
version "7.0.0-beta.51"
@@ -256,31 +285,36 @@
dependencies:
"@babel/types" "7.0.0-beta.51"
-"@babel/helper-split-export-declaration@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz#ff94894a340be78f53f06af038b205c49d993677"
- integrity sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==
+"@babel/helper-split-export-declaration@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz#2c70576eaa3b5609b24cb99db2888cc3fc4251d1"
+ integrity sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg==
dependencies:
- "@babel/types" "^7.4.4"
+ "@babel/types" "^7.10.4"
-"@babel/helper-wrap-function@^7.1.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz#c4e0012445769e2815b55296ead43a958549f6fa"
- integrity sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ==
+"@babel/helper-validator-identifier@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2"
+ integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==
+
+"@babel/helper-wrap-function@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz#8a6f701eab0ff39f765b5a1cfef409990e624b87"
+ integrity sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug==
dependencies:
- "@babel/helper-function-name" "^7.1.0"
- "@babel/template" "^7.1.0"
- "@babel/traverse" "^7.1.0"
- "@babel/types" "^7.2.0"
+ "@babel/helper-function-name" "^7.10.4"
+ "@babel/template" "^7.10.4"
+ "@babel/traverse" "^7.10.4"
+ "@babel/types" "^7.10.4"
-"@babel/helpers@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.4.4.tgz#868b0ef59c1dd4e78744562d5ce1b59c89f2f2a5"
- integrity sha512-igczbR/0SeuPR8RFfC7tGrbdTbFL3QTvH6D+Z6zNxnTe//GyqmtHmDkzrqDmyZ3eSwPqB/LhyKoU5DXsp+Vp2A==
+"@babel/helpers@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.10.4.tgz#2abeb0d721aff7c0a97376b9e1f6f65d7a475044"
+ integrity sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==
dependencies:
- "@babel/template" "^7.4.4"
- "@babel/traverse" "^7.4.4"
- "@babel/types" "^7.4.4"
+ "@babel/template" "^7.10.4"
+ "@babel/traverse" "^7.10.4"
+ "@babel/types" "^7.10.4"
"@babel/highlight@7.0.0-beta.51":
version "7.0.0-beta.51"
@@ -291,13 +325,13 @@
esutils "^2.0.2"
js-tokens "^3.0.0"
-"@babel/highlight@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4"
- integrity sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==
+"@babel/highlight@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143"
+ integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==
dependencies:
+ "@babel/helper-validator-identifier" "^7.10.4"
chalk "^2.0.0"
- esutils "^2.0.2"
js-tokens "^4.0.0"
"@babel/parser@7.0.0-beta.51":
@@ -305,518 +339,647 @@
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.0.0-beta.51.tgz#27cec2df409df60af58270ed8f6aa55409ea86f6"
integrity sha1-J87C30Cd9gr1gnDtj2qlVAnqhvY=
-"@babel/parser@^7.0.0", "@babel/parser@^7.4.3", "@babel/parser@^7.4.4", "@babel/parser@^7.4.5":
- version "7.4.5"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.4.5.tgz#04af8d5d5a2b044a2a1bffacc1e5e6673544e872"
- integrity sha512-9mUqkL1FF5T7f0WDFfAoDdiMVPWsdD1gZYzSnaXsxUCUqzuch/8of9G3VUSNiZmMBoRxT3neyVsqeiL/ZPcjew==
+"@babel/parser@^7.10.4", "@babel/parser@^7.10.5", "@babel/parser@^7.7.0":
+ version "7.10.5"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.10.5.tgz#e7c6bf5a7deff957cec9f04b551e2762909d826b"
+ integrity sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==
-"@babel/plugin-proposal-async-generator-functions@^7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz#b289b306669dce4ad20b0252889a15768c9d417e"
- integrity sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ==
+"@babel/plugin-proposal-async-generator-functions@^7.10.4":
+ version "7.10.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz#3491cabf2f7c179ab820606cec27fed15e0e8558"
+ integrity sha512-cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
- "@babel/helper-remap-async-to-generator" "^7.1.0"
- "@babel/plugin-syntax-async-generators" "^7.2.0"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/helper-remap-async-to-generator" "^7.10.4"
+ "@babel/plugin-syntax-async-generators" "^7.8.0"
-"@babel/plugin-proposal-class-properties@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.4.4.tgz#93a6486eed86d53452ab9bab35e368e9461198ce"
- integrity sha512-WjKTI8g8d5w1Bc9zgwSz2nfrsNQsXcCf9J9cdCvrJV6RF56yztwm4TmJC0MgJ9tvwO9gUA/mcYe89bLdGfiXFg==
+"@babel/plugin-proposal-class-properties@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz#a33bf632da390a59c7a8c570045d1115cd778807"
+ integrity sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg==
dependencies:
- "@babel/helper-create-class-features-plugin" "^7.4.4"
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-create-class-features-plugin" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
-"@babel/plugin-proposal-export-default-from@^7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.2.0.tgz#737b0da44b9254b6152fe29bb99c64e5691f6f68"
- integrity sha512-NVfNe7F6nsasG1FnvcFxh2FN0l04ZNe75qTOAVOILWPam0tw9a63RtT/Dab8dPjedZa4fTQaQ83yMMywF9OSug==
+"@babel/plugin-proposal-dynamic-import@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz#ba57a26cb98b37741e9d5bca1b8b0ddf8291f17e"
+ integrity sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
- "@babel/plugin-syntax-export-default-from" "^7.2.0"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-dynamic-import" "^7.8.0"
-"@babel/plugin-proposal-export-namespace-from@^7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.2.0.tgz#308fd4d04ff257fc3e4be090550840eeabad5dd9"
- integrity sha512-DZUxbHYxQ5fUFIkMEnh75ogEdBLPfL+mQUqrO2hNY2LGm+tqFnxE924+mhAcCOh/8za8AaZsWHbq6bBoS3TAzA==
+"@babel/plugin-proposal-export-default-from@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.10.4.tgz#08f66eef0067cbf6a7bc036977dcdccecaf0c6c5"
+ integrity sha512-G1l00VvDZ7Yk2yRlC5D8Ybvu3gmeHS3rCHoUYdjrqGYUtdeOBoRypnvDZ5KQqxyaiiGHWnVDeSEzA5F9ozItig==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
- "@babel/plugin-syntax-export-namespace-from" "^7.2.0"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-export-default-from" "^7.10.4"
-"@babel/plugin-proposal-json-strings@^7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz#568ecc446c6148ae6b267f02551130891e29f317"
- integrity sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg==
+"@babel/plugin-proposal-export-namespace-from@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.10.4.tgz#570d883b91031637b3e2958eea3c438e62c05f54"
+ integrity sha512-aNdf0LY6/3WXkhh0Fdb6Zk9j1NMD8ovj3F6r0+3j837Pn1S1PdNtcwJ5EG9WkVPNHPxyJDaxMaAOVq4eki0qbg==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
- "@babel/plugin-syntax-json-strings" "^7.2.0"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
-"@babel/plugin-proposal-object-rest-spread@^7.3.2", "@babel/plugin-proposal-object-rest-spread@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.4.4.tgz#1ef173fcf24b3e2df92a678f027673b55e7e3005"
- integrity sha512-dMBG6cSPBbHeEBdFXeQ2QLc5gUpg4Vkaz8octD4aoW/ISO+jBOcsuxYL7bsb5WSu8RLP6boxrBIALEHgoHtO9g==
+"@babel/plugin-proposal-json-strings@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz#593e59c63528160233bd321b1aebe0820c2341db"
+ integrity sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
- "@babel/plugin-syntax-object-rest-spread" "^7.2.0"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-json-strings" "^7.8.0"
-"@babel/plugin-proposal-optional-catch-binding@^7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz#135d81edb68a081e55e56ec48541ece8065c38f5"
- integrity sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g==
+"@babel/plugin-proposal-nullish-coalescing-operator@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz#02a7e961fc32e6d5b2db0649e01bf80ddee7e04a"
+ integrity sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
- "@babel/plugin-syntax-optional-catch-binding" "^7.2.0"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0"
-"@babel/plugin-proposal-unicode-property-regex@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.4.tgz#501ffd9826c0b91da22690720722ac7cb1ca9c78"
- integrity sha512-j1NwnOqMG9mFUOH58JTFsA/+ZYzQLUZ/drqWUqxCYLGeu2JFZL8YrNC9hBxKmWtAuOCHPcRpgv7fhap09Fb4kA==
+"@babel/plugin-proposal-numeric-separator@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz#ce1590ff0a65ad12970a609d78855e9a4c1aef06"
+ integrity sha512-73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
- "@babel/helper-regex" "^7.4.4"
- regexpu-core "^4.5.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-numeric-separator" "^7.10.4"
-"@babel/plugin-syntax-async-generators@^7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz#69e1f0db34c6f5a0cf7e2b3323bf159a76c8cb7f"
- integrity sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg==
+"@babel/plugin-proposal-object-rest-spread@^7.10.4", "@babel/plugin-proposal-object-rest-spread@^7.3.2":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.4.tgz#50129ac216b9a6a55b3853fdd923e74bf553a4c0"
+ integrity sha512-6vh4SqRuLLarjgeOf4EaROJAHjvu9Gl+/346PbDH9yWbJyfnJ/ah3jmYKYtswEyCoWZiidvVHjHshd4WgjB9BA==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-object-rest-spread" "^7.8.0"
+ "@babel/plugin-transform-parameters" "^7.10.4"
-"@babel/plugin-syntax-dynamic-import@^7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz#69c159ffaf4998122161ad8ebc5e6d1f55df8612"
- integrity sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w==
+"@babel/plugin-proposal-optional-catch-binding@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz#31c938309d24a78a49d68fdabffaa863758554dd"
+ integrity sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-optional-catch-binding" "^7.8.0"
-"@babel/plugin-syntax-export-default-from@^7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.2.0.tgz#edd83b7adc2e0d059e2467ca96c650ab6d2f3820"
- integrity sha512-c7nqUnNST97BWPtoe+Ssi+fJukc9P9/JMZ71IOMNQWza2E+Psrd46N6AEvtw6pqK+gt7ChjXyrw4SPDO79f3Lw==
+"@babel/plugin-proposal-optional-chaining@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.10.4.tgz#750f1255e930a1f82d8cdde45031f81a0d0adff7"
+ integrity sha512-ZIhQIEeavTgouyMSdZRap4VPPHqJJ3NEs2cuHs5p0erH+iz6khB0qfgU8g7UuJkG88+fBMy23ZiU+nuHvekJeQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-optional-chaining" "^7.8.0"
-"@babel/plugin-syntax-export-namespace-from@^7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.2.0.tgz#8d257838c6b3b779db52c0224443459bd27fb039"
- integrity sha512-1zGA3UNch6A+A11nIzBVEaE3DDJbjfB+eLIcf0GGOh/BJr/8NxL3546MGhV/r0RhH4xADFIEso39TKCfEMlsGA==
+"@babel/plugin-proposal-private-methods@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz#b160d972b8fdba5c7d111a145fc8c421fc2a6909"
+ integrity sha512-wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-create-class-features-plugin" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
-"@babel/plugin-syntax-json-strings@^7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz#72bd13f6ffe1d25938129d2a186b11fd62951470"
- integrity sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg==
+"@babel/plugin-proposal-unicode-property-regex@^7.10.4", "@babel/plugin-proposal-unicode-property-regex@^7.4.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz#4483cda53041ce3413b7fe2f00022665ddfaa75d"
+ integrity sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-create-regexp-features-plugin" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
-"@babel/plugin-syntax-jsx@^7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz#0b85a3b4bc7cdf4cc4b8bf236335b907ca22e7c7"
- integrity sha512-VyN4QANJkRW6lDBmENzRszvZf3/4AXaj9YR7GwrWeeN9tEBPuXbmDYVU9bYBN0D70zCWVwUy0HWq2553VCb6Hw==
+"@babel/plugin-syntax-async-generators@^7.8.0":
+ version "7.8.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d"
+ integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.8.0"
-"@babel/plugin-syntax-object-rest-spread@^7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e"
- integrity sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==
+"@babel/plugin-syntax-class-properties@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz#6644e6a0baa55a61f9e3231f6c9eeb6ee46c124c"
+ integrity sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.10.4"
-"@babel/plugin-syntax-optional-catch-binding@^7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz#a94013d6eda8908dfe6a477e7f9eda85656ecf5c"
- integrity sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w==
+"@babel/plugin-syntax-dynamic-import@^7.8.0", "@babel/plugin-syntax-dynamic-import@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3"
+ integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.8.0"
-"@babel/plugin-transform-arrow-functions@^7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz#9aeafbe4d6ffc6563bf8f8372091628f00779550"
- integrity sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg==
+"@babel/plugin-syntax-export-default-from@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.10.4.tgz#e5494f95006355c10292a0ff1ce42a5746002ec8"
+ integrity sha512-79V6r6Pgudz0RnuMGp5xidu6Z+bPFugh8/Q9eDHonmLp4wKFAZDwygJwYgCzuDu8lFA/sYyT+mc5y2wkd7bTXA==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.10.4"
-"@babel/plugin-transform-async-to-generator@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.4.4.tgz#a3f1d01f2f21cadab20b33a82133116f14fb5894"
- integrity sha512-YiqW2Li8TXmzgbXw+STsSqPBPFnGviiaSp6CYOq55X8GQ2SGVLrXB6pNid8HkqkZAzOH6knbai3snhP7v0fNwA==
+"@babel/plugin-syntax-export-namespace-from@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a"
+ integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==
dependencies:
- "@babel/helper-module-imports" "^7.0.0"
- "@babel/helper-plugin-utils" "^7.0.0"
- "@babel/helper-remap-async-to-generator" "^7.1.0"
+ "@babel/helper-plugin-utils" "^7.8.3"
-"@babel/plugin-transform-block-scoped-functions@^7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz#5d3cc11e8d5ddd752aa64c9148d0db6cb79fd190"
- integrity sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w==
+"@babel/plugin-syntax-json-strings@^7.8.0":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a"
+ integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.8.0"
-"@babel/plugin-transform-block-scoping@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.4.4.tgz#c13279fabf6b916661531841a23c4b7dae29646d"
- integrity sha512-jkTUyWZcTrwxu5DD4rWz6rDB5Cjdmgz6z7M7RLXOJyCUkFBawssDGcGh8M/0FTSB87avyJI1HsTwUXp9nKA1PA==
+"@babel/plugin-syntax-jsx@^7.10.4", "@babel/plugin-syntax-jsx@^7.2.0":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz#39abaae3cbf710c4373d8429484e6ba21340166c"
+ integrity sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
- lodash "^4.17.11"
+ "@babel/helper-plugin-utils" "^7.10.4"
-"@babel/plugin-transform-classes@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.4.4.tgz#0ce4094cdafd709721076d3b9c38ad31ca715eb6"
- integrity sha512-/e44eFLImEGIpL9qPxSRat13I5QNRgBLu2hOQJCF7VLy/otSM/sypV1+XaIw5+502RX/+6YaSAPmldk+nhHDPw==
+"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9"
+ integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==
dependencies:
- "@babel/helper-annotate-as-pure" "^7.0.0"
- "@babel/helper-define-map" "^7.4.4"
- "@babel/helper-function-name" "^7.1.0"
- "@babel/helper-optimise-call-expression" "^7.0.0"
- "@babel/helper-plugin-utils" "^7.0.0"
- "@babel/helper-replace-supers" "^7.4.4"
- "@babel/helper-split-export-declaration" "^7.4.4"
- globals "^11.1.0"
+ "@babel/helper-plugin-utils" "^7.8.0"
-"@babel/plugin-transform-computed-properties@^7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz#83a7df6a658865b1c8f641d510c6f3af220216da"
- integrity sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA==
+"@babel/plugin-syntax-numeric-separator@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97"
+ integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.10.4"
-"@babel/plugin-transform-destructuring@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.4.4.tgz#9d964717829cc9e4b601fc82a26a71a4d8faf20f"
- integrity sha512-/aOx+nW0w8eHiEHm+BTERB2oJn5D127iye/SUQl7NjHy0lf+j7h4MKMMSOwdazGq9OxgiNADncE+SRJkCxjZpQ==
+"@babel/plugin-syntax-object-rest-spread@^7.8.0":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871"
+ integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.8.0"
-"@babel/plugin-transform-dotall-regex@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.4.4.tgz#361a148bc951444312c69446d76ed1ea8e4450c3"
- integrity sha512-P05YEhRc2h53lZDjRPk/OektxCVevFzZs2Gfjd545Wde3k+yFDbXORgl2e0xpbq8mLcKJ7Idss4fAg0zORN/zg==
+"@babel/plugin-syntax-optional-catch-binding@^7.8.0":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1"
+ integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
- "@babel/helper-regex" "^7.4.4"
- regexpu-core "^4.5.4"
+ "@babel/helper-plugin-utils" "^7.8.0"
-"@babel/plugin-transform-duplicate-keys@^7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.2.0.tgz#d952c4930f312a4dbfff18f0b2914e60c35530b3"
- integrity sha512-q+yuxW4DsTjNceUiTzK0L+AfQ0zD9rWaTLiUqHA8p0gxx7lu1EylenfzjeIWNkPy6e/0VG/Wjw9uf9LueQwLOw==
+"@babel/plugin-syntax-optional-chaining@^7.8.0":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a"
+ integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.8.0"
-"@babel/plugin-transform-exponentiation-operator@^7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz#a63868289e5b4007f7054d46491af51435766008"
- integrity sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==
+"@babel/plugin-syntax-top-level-await@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz#4bbeb8917b54fcf768364e0a81f560e33a3ef57d"
+ integrity sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ==
dependencies:
- "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0"
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.10.4"
-"@babel/plugin-transform-for-of@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz#0267fc735e24c808ba173866c6c4d1440fc3c556"
- integrity sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ==
+"@babel/plugin-transform-arrow-functions@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz#e22960d77e697c74f41c501d44d73dbf8a6a64cd"
+ integrity sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.10.4"
-"@babel/plugin-transform-function-name@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz#e1436116abb0610c2259094848754ac5230922ad"
- integrity sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA==
+"@babel/plugin-transform-async-to-generator@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz#41a5017e49eb6f3cda9392a51eef29405b245a37"
+ integrity sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ==
dependencies:
- "@babel/helper-function-name" "^7.1.0"
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-module-imports" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/helper-remap-async-to-generator" "^7.10.4"
-"@babel/plugin-transform-literals@^7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz#690353e81f9267dad4fd8cfd77eafa86aba53ea1"
- integrity sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg==
+"@babel/plugin-transform-block-scoped-functions@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz#1afa595744f75e43a91af73b0d998ecfe4ebc2e8"
+ integrity sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.10.4"
-"@babel/plugin-transform-member-expression-literals@^7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz#fa10aa5c58a2cb6afcf2c9ffa8cb4d8b3d489a2d"
- integrity sha512-HiU3zKkSU6scTidmnFJ0bMX8hz5ixC93b4MHMiYebmk2lUVNGOboPsqQvx5LzooihijUoLR/v7Nc1rbBtnc7FA==
+"@babel/plugin-transform-block-scoping@^7.10.4":
+ version "7.10.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.5.tgz#b81b8aafefbfe68f0f65f7ef397b9ece68a6037d"
+ integrity sha512-6Ycw3hjpQti0qssQcA6AMSFDHeNJ++R6dIMnpRqUjFeBBTmTDPa8zgF90OVfTvAo11mXZTlVUViY1g8ffrURLg==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.10.4"
-"@babel/plugin-transform-modules-amd@^7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.2.0.tgz#82a9bce45b95441f617a24011dc89d12da7f4ee6"
- integrity sha512-mK2A8ucqz1qhrdqjS9VMIDfIvvT2thrEsIQzbaTdc5QFzhDjQv2CkJJ5f6BXIkgbmaoax3zBr2RyvV/8zeoUZw==
+"@babel/plugin-transform-classes@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz#405136af2b3e218bc4a1926228bc917ab1a0adc7"
+ integrity sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA==
dependencies:
- "@babel/helper-module-transforms" "^7.1.0"
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-annotate-as-pure" "^7.10.4"
+ "@babel/helper-define-map" "^7.10.4"
+ "@babel/helper-function-name" "^7.10.4"
+ "@babel/helper-optimise-call-expression" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/helper-replace-supers" "^7.10.4"
+ "@babel/helper-split-export-declaration" "^7.10.4"
+ globals "^11.1.0"
-"@babel/plugin-transform-modules-commonjs@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.4.4.tgz#0bef4713d30f1d78c2e59b3d6db40e60192cac1e"
- integrity sha512-4sfBOJt58sEo9a2BQXnZq+Q3ZTSAUXyK3E30o36BOGnJ+tvJ6YSxF0PG6kERvbeISgProodWuI9UVG3/FMY6iw==
+"@babel/plugin-transform-computed-properties@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz#9ded83a816e82ded28d52d4b4ecbdd810cdfc0eb"
+ integrity sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw==
dependencies:
- "@babel/helper-module-transforms" "^7.4.4"
- "@babel/helper-plugin-utils" "^7.0.0"
- "@babel/helper-simple-access" "^7.1.0"
+ "@babel/helper-plugin-utils" "^7.10.4"
-"@babel/plugin-transform-modules-systemjs@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.4.4.tgz#dc83c5665b07d6c2a7b224c00ac63659ea36a405"
- integrity sha512-MSiModfILQc3/oqnG7NrP1jHaSPryO6tA2kOMmAQApz5dayPxWiHqmq4sWH2xF5LcQK56LlbKByCd8Aah/OIkQ==
+"@babel/plugin-transform-destructuring@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz#70ddd2b3d1bea83d01509e9bb25ddb3a74fc85e5"
+ integrity sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA==
dependencies:
- "@babel/helper-hoist-variables" "^7.4.4"
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.10.4"
-"@babel/plugin-transform-modules-umd@^7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz#7678ce75169f0877b8eb2235538c074268dd01ae"
- integrity sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw==
+"@babel/plugin-transform-dotall-regex@^7.10.4", "@babel/plugin-transform-dotall-regex@^7.4.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz#469c2062105c1eb6a040eaf4fac4b488078395ee"
+ integrity sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA==
dependencies:
- "@babel/helper-module-transforms" "^7.1.0"
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-create-regexp-features-plugin" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
-"@babel/plugin-transform-named-capturing-groups-regex@^7.4.5":
- version "7.4.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.4.5.tgz#9d269fd28a370258199b4294736813a60bbdd106"
- integrity sha512-z7+2IsWafTBbjNsOxU/Iv5CvTJlr5w4+HGu1HovKYTtgJ362f7kBcQglkfmlspKKZ3bgrbSGvLfNx++ZJgCWsg==
+"@babel/plugin-transform-duplicate-keys@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz#697e50c9fee14380fe843d1f306b295617431e47"
+ integrity sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA==
dependencies:
- regexp-tree "^0.1.6"
+ "@babel/helper-plugin-utils" "^7.10.4"
-"@babel/plugin-transform-new-target@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz#18d120438b0cc9ee95a47f2c72bc9768fbed60a5"
- integrity sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA==
+"@babel/plugin-transform-exponentiation-operator@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz#5ae338c57f8cf4001bdb35607ae66b92d665af2e"
+ integrity sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
-"@babel/plugin-transform-object-super@^7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz#b35d4c10f56bab5d650047dad0f1d8e8814b6598"
- integrity sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg==
+"@babel/plugin-transform-for-of@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz#c08892e8819d3a5db29031b115af511dbbfebae9"
+ integrity sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
- "@babel/helper-replace-supers" "^7.1.0"
+ "@babel/helper-plugin-utils" "^7.10.4"
-"@babel/plugin-transform-parameters@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz#7556cf03f318bd2719fe4c922d2d808be5571e16"
- integrity sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw==
+"@babel/plugin-transform-function-name@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz#6a467880e0fc9638514ba369111811ddbe2644b7"
+ integrity sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg==
dependencies:
- "@babel/helper-call-delegate" "^7.4.4"
- "@babel/helper-get-function-arity" "^7.0.0"
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-function-name" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
-"@babel/plugin-transform-property-literals@^7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz#03e33f653f5b25c4eb572c98b9485055b389e905"
- integrity sha512-9q7Dbk4RhgcLp8ebduOpCbtjh7C0itoLYHXd9ueASKAG/is5PQtMR5VJGka9NKqGhYEGn5ITahd4h9QeBMylWQ==
+"@babel/plugin-transform-literals@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz#9f42ba0841100a135f22712d0e391c462f571f3c"
+ integrity sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.10.4"
-"@babel/plugin-transform-react-display-name@^7.0.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.2.0.tgz#ebfaed87834ce8dc4279609a4f0c324c156e3eb0"
- integrity sha512-Htf/tPa5haZvRMiNSQSFifK12gtr/8vwfr+A9y69uF0QcU77AVu4K7MiHEkTxF7lQoHOL0F9ErqgfNEAKgXj7A==
+"@babel/plugin-transform-member-expression-literals@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz#b1ec44fcf195afcb8db2c62cd8e551c881baf8b7"
+ integrity sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.10.4"
-"@babel/plugin-transform-react-jsx-self@^7.0.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.2.0.tgz#461e21ad9478f1031dd5e276108d027f1b5240ba"
- integrity sha512-v6S5L/myicZEy+jr6ielB0OR8h+EH/1QFx/YJ7c7Ua+7lqsjj/vW6fD5FR9hB/6y7mGbfT4vAURn3xqBxsUcdg==
+"@babel/plugin-transform-modules-amd@^7.10.4":
+ version "7.10.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz#1b9cddaf05d9e88b3aad339cb3e445c4f020a9b1"
+ integrity sha512-elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
- "@babel/plugin-syntax-jsx" "^7.2.0"
+ "@babel/helper-module-transforms" "^7.10.5"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ babel-plugin-dynamic-import-node "^2.3.3"
-"@babel/plugin-transform-react-jsx-source@^7.0.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.2.0.tgz#20c8c60f0140f5dd3cd63418d452801cf3f7180f"
- integrity sha512-A32OkKTp4i5U6aE88GwwcuV4HAprUgHcTq0sSafLxjr6AW0QahrCRCjxogkbbcdtpbXkuTOlgpjophCxb6sh5g==
+"@babel/plugin-transform-modules-commonjs@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz#66667c3eeda1ebf7896d41f1f16b17105a2fbca0"
+ integrity sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
- "@babel/plugin-syntax-jsx" "^7.2.0"
+ "@babel/helper-module-transforms" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/helper-simple-access" "^7.10.4"
+ babel-plugin-dynamic-import-node "^2.3.3"
-"@babel/plugin-transform-react-jsx@^7.0.0":
- version "7.3.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.3.0.tgz#f2cab99026631c767e2745a5368b331cfe8f5290"
- integrity sha512-a/+aRb7R06WcKvQLOu4/TpjKOdvVEKRLWFpKcNuHhiREPgGRB4TQJxq07+EZLS8LFVYpfq1a5lDUnuMdcCpBKg==
+"@babel/plugin-transform-modules-systemjs@^7.10.4":
+ version "7.10.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz#6270099c854066681bae9e05f87e1b9cadbe8c85"
+ integrity sha512-f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw==
dependencies:
- "@babel/helper-builder-react-jsx" "^7.3.0"
- "@babel/helper-plugin-utils" "^7.0.0"
- "@babel/plugin-syntax-jsx" "^7.2.0"
+ "@babel/helper-hoist-variables" "^7.10.4"
+ "@babel/helper-module-transforms" "^7.10.5"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ babel-plugin-dynamic-import-node "^2.3.3"
-"@babel/plugin-transform-regenerator@^7.4.5":
- version "7.4.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz#629dc82512c55cee01341fb27bdfcb210354680f"
- integrity sha512-gBKRh5qAaCWntnd09S8QC7r3auLCqq5DI6O0DlfoyDjslSBVqBibrMdsqO+Uhmx3+BlOmE/Kw1HFxmGbv0N9dA==
+"@babel/plugin-transform-modules-umd@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz#9a8481fe81b824654b3a0b65da3df89f3d21839e"
+ integrity sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA==
dependencies:
- regenerator-transform "^0.14.0"
+ "@babel/helper-module-transforms" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
-"@babel/plugin-transform-reserved-words@^7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.2.0.tgz#4792af87c998a49367597d07fedf02636d2e1634"
- integrity sha512-fz43fqW8E1tAB3DKF19/vxbpib1fuyCwSPE418ge5ZxILnBhWyhtPgz8eh1RCGGJlwvksHkyxMxh0eenFi+kFw==
+"@babel/plugin-transform-named-capturing-groups-regex@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz#78b4d978810b6f3bcf03f9e318f2fc0ed41aecb6"
+ integrity sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-create-regexp-features-plugin" "^7.10.4"
-"@babel/plugin-transform-runtime@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.4.4.tgz#a50f5d16e9c3a4ac18a1a9f9803c107c380bce08"
- integrity sha512-aMVojEjPszvau3NRg+TIH14ynZLvPewH4xhlCW1w6A3rkxTS1m4uwzRclYR9oS+rl/dr+kT+pzbfHuAWP/lc7Q==
+"@babel/plugin-transform-new-target@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz#9097d753cb7b024cb7381a3b2e52e9513a9c6888"
+ integrity sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw==
dependencies:
- "@babel/helper-module-imports" "^7.0.0"
- "@babel/helper-plugin-utils" "^7.0.0"
- resolve "^1.8.1"
- semver "^5.5.1"
+ "@babel/helper-plugin-utils" "^7.10.4"
-"@babel/plugin-transform-shorthand-properties@^7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz#6333aee2f8d6ee7e28615457298934a3b46198f0"
- integrity sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg==
+"@babel/plugin-transform-object-super@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz#d7146c4d139433e7a6526f888c667e314a093894"
+ integrity sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/helper-replace-supers" "^7.10.4"
-"@babel/plugin-transform-spread@^7.2.0":
- version "7.2.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz#3103a9abe22f742b6d406ecd3cd49b774919b406"
- integrity sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w==
+"@babel/plugin-transform-parameters@^7.10.4":
+ version "7.10.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz#59d339d58d0b1950435f4043e74e2510005e2c4a"
+ integrity sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-get-function-arity" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
-"@babel/plugin-transform-sticky-regex@^7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz#a1e454b5995560a9c1e0d537dfc15061fd2687e1"
- integrity sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw==
+"@babel/plugin-transform-property-literals@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz#f6fe54b6590352298785b83edd815d214c42e3c0"
+ integrity sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
- "@babel/helper-regex" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.10.4"
-"@babel/plugin-transform-template-literals@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz#9d28fea7bbce637fb7612a0750989d8321d4bcb0"
- integrity sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g==
+"@babel/plugin-transform-react-display-name@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.10.4.tgz#b5795f4e3e3140419c3611b7a2a3832b9aef328d"
+ integrity sha512-Zd4X54Mu9SBfPGnEcaGcOrVAYOtjT2on8QZkLKEq1S/tHexG39d9XXGZv19VfRrDjPJzFmPfTAqOQS1pfFOujw==
dependencies:
- "@babel/helper-annotate-as-pure" "^7.0.0"
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.10.4"
-"@babel/plugin-transform-typeof-symbol@^7.2.0":
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz#117d2bcec2fbf64b4b59d1f9819894682d29f2b2"
- integrity sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw==
+"@babel/plugin-transform-react-jsx-development@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.10.4.tgz#6ec90f244394604623880e15ebc3c34c356258ba"
+ integrity sha512-RM3ZAd1sU1iQ7rI2dhrZRZGv0aqzNQMbkIUCS1txYpi9wHQ2ZHNjo5TwX+UD6pvFW4AbWqLVYvKy5qJSAyRGjQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/helper-builder-react-jsx-experimental" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-jsx" "^7.10.4"
-"@babel/plugin-transform-unicode-regex@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.4.tgz#ab4634bb4f14d36728bf5978322b35587787970f"
- integrity sha512-il+/XdNw01i93+M9J9u4T7/e/Ue/vWfNZE4IRUQjplu2Mqb/AFTDimkw2tdEdSH50wuQXZAbXSql0UphQke+vA==
+"@babel/plugin-transform-react-jsx-self@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.10.4.tgz#cd301a5fed8988c182ed0b9d55e9bd6db0bd9369"
+ integrity sha512-yOvxY2pDiVJi0axdTWHSMi5T0DILN+H+SaeJeACHKjQLezEzhLx9nEF9xgpBLPtkZsks9cnb5P9iBEi21En3gg==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
- "@babel/helper-regex" "^7.4.4"
- regexpu-core "^4.5.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-jsx" "^7.10.4"
+
+"@babel/plugin-transform-react-jsx-source@^7.10.4":
+ version "7.10.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.10.5.tgz#34f1779117520a779c054f2cdd9680435b9222b4"
+ integrity sha512-wTeqHVkN1lfPLubRiZH3o73f4rfon42HpgxUSs86Nc+8QIcm/B9s8NNVXu/gwGcOyd7yDib9ikxoDLxJP0UiDA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-jsx" "^7.10.4"
+
+"@babel/plugin-transform-react-jsx@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.4.tgz#673c9f913948764a4421683b2bef2936968fddf2"
+ integrity sha512-L+MfRhWjX0eI7Js093MM6MacKU4M6dnCRa/QPDwYMxjljzSCzzlzKzj9Pk4P3OtrPcxr2N3znR419nr3Xw+65A==
+ dependencies:
+ "@babel/helper-builder-react-jsx" "^7.10.4"
+ "@babel/helper-builder-react-jsx-experimental" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-syntax-jsx" "^7.10.4"
+
+"@babel/plugin-transform-react-pure-annotations@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.10.4.tgz#3eefbb73db94afbc075f097523e445354a1c6501"
+ integrity sha512-+njZkqcOuS8RaPakrnR9KvxjoG1ASJWpoIv/doyWngId88JoFlPlISenGXjrVacZUIALGUr6eodRs1vmPnF23A==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
-"@babel/preset-env-standalone@7.4.5":
- version "7.4.5"
- resolved "https://registry.yarnpkg.com/@babel/preset-env-standalone/-/preset-env-standalone-7.4.5.tgz#515e465f895560a4247ebccb69fd4dae1effc18a"
- integrity sha512-rZDAGUkUoegHu3nP2q61rhMBmcrquFHMNnE+xWnuhh/zufcTzWNHGlLYlDfnWXidqGO+mQ9IqELh0F7iTDNVLw==
+"@babel/plugin-transform-regenerator@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz#2015e59d839074e76838de2159db421966fd8b63"
+ integrity sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw==
+ dependencies:
+ regenerator-transform "^0.14.2"
-"@babel/preset-env@^7.4.5":
- version "7.4.5"
- resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.4.5.tgz#2fad7f62983d5af563b5f3139242755884998a58"
- integrity sha512-f2yNVXM+FsR5V8UwcFeIHzHWgnhXg3NpRmy0ADvALpnhB0SLbCvrCRr4BLOUYbQNLS+Z0Yer46x9dJXpXewI7w==
+"@babel/plugin-transform-reserved-words@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz#8f2682bcdcef9ed327e1b0861585d7013f8a54dd"
+ integrity sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-transform-runtime@^7.10.5":
+ version "7.10.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.10.5.tgz#3b39b7b24830e0c2d8ff7a4489fe5cf99fbace86"
+ integrity sha512-tV4V/FjElJ9lQtyjr5xD2IFFbgY46r7EeVu5a8CpEKT5laheHKSlFeHjpkPppW3PqzGLAuv5k2qZX5LgVZIX5w==
+ dependencies:
+ "@babel/helper-module-imports" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ resolve "^1.8.1"
+ semver "^5.5.1"
+
+"@babel/plugin-transform-shorthand-properties@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz#9fd25ec5cdd555bb7f473e5e6ee1c971eede4dd6"
+ integrity sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-transform-spread@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.4.tgz#4e2c85ea0d6abaee1b24dcfbbae426fe8d674cff"
+ integrity sha512-1e/51G/Ni+7uH5gktbWv+eCED9pP8ZpRhZB3jOaI3mmzfvJTWHkuyYTv0Z5PYtyM+Tr2Ccr9kUdQxn60fI5WuQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-transform-sticky-regex@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz#8f3889ee8657581130a29d9cc91d7c73b7c4a28d"
+ integrity sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/helper-regex" "^7.10.4"
+
+"@babel/plugin-transform-template-literals@^7.10.4":
+ version "7.10.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz#78bc5d626a6642db3312d9d0f001f5e7639fde8c"
+ integrity sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-transform-typeof-symbol@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz#9509f1a7eec31c4edbffe137c16cc33ff0bc5bfc"
+ integrity sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-transform-unicode-escapes@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz#feae523391c7651ddac115dae0a9d06857892007"
+ integrity sha512-y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-transform-unicode-regex@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz#e56d71f9282fac6db09c82742055576d5e6d80a8"
+ integrity sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/preset-env-standalone@7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/preset-env-standalone/-/preset-env-standalone-7.8.3.tgz#1639985aa65bbb6b58c4338618f53ea3ce21f26e"
+ integrity sha512-P1fZYglZGF+CbvNjxFQxILwuDbOJevtUavBDGJ0yELxYWyVmkkZh/T9+w8VL08xUcPdT9eoNRlItqH0lEF20cg==
+
+"@babel/preset-env@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.10.4.tgz#fbf57f9a803afd97f4f32e4f798bb62e4b2bef5f"
+ integrity sha512-tcmuQ6vupfMZPrLrc38d0sF2OjLT3/bZ0dry5HchNCQbrokoQi4reXqclvkkAT5b+gWc23meVWpve5P/7+w/zw==
+ dependencies:
+ "@babel/compat-data" "^7.10.4"
+ "@babel/helper-compilation-targets" "^7.10.4"
+ "@babel/helper-module-imports" "^7.10.4"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-proposal-async-generator-functions" "^7.10.4"
+ "@babel/plugin-proposal-class-properties" "^7.10.4"
+ "@babel/plugin-proposal-dynamic-import" "^7.10.4"
+ "@babel/plugin-proposal-json-strings" "^7.10.4"
+ "@babel/plugin-proposal-nullish-coalescing-operator" "^7.10.4"
+ "@babel/plugin-proposal-numeric-separator" "^7.10.4"
+ "@babel/plugin-proposal-object-rest-spread" "^7.10.4"
+ "@babel/plugin-proposal-optional-catch-binding" "^7.10.4"
+ "@babel/plugin-proposal-optional-chaining" "^7.10.4"
+ "@babel/plugin-proposal-private-methods" "^7.10.4"
+ "@babel/plugin-proposal-unicode-property-regex" "^7.10.4"
+ "@babel/plugin-syntax-async-generators" "^7.8.0"
+ "@babel/plugin-syntax-class-properties" "^7.10.4"
+ "@babel/plugin-syntax-dynamic-import" "^7.8.0"
+ "@babel/plugin-syntax-json-strings" "^7.8.0"
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0"
+ "@babel/plugin-syntax-numeric-separator" "^7.10.4"
+ "@babel/plugin-syntax-object-rest-spread" "^7.8.0"
+ "@babel/plugin-syntax-optional-catch-binding" "^7.8.0"
+ "@babel/plugin-syntax-optional-chaining" "^7.8.0"
+ "@babel/plugin-syntax-top-level-await" "^7.10.4"
+ "@babel/plugin-transform-arrow-functions" "^7.10.4"
+ "@babel/plugin-transform-async-to-generator" "^7.10.4"
+ "@babel/plugin-transform-block-scoped-functions" "^7.10.4"
+ "@babel/plugin-transform-block-scoping" "^7.10.4"
+ "@babel/plugin-transform-classes" "^7.10.4"
+ "@babel/plugin-transform-computed-properties" "^7.10.4"
+ "@babel/plugin-transform-destructuring" "^7.10.4"
+ "@babel/plugin-transform-dotall-regex" "^7.10.4"
+ "@babel/plugin-transform-duplicate-keys" "^7.10.4"
+ "@babel/plugin-transform-exponentiation-operator" "^7.10.4"
+ "@babel/plugin-transform-for-of" "^7.10.4"
+ "@babel/plugin-transform-function-name" "^7.10.4"
+ "@babel/plugin-transform-literals" "^7.10.4"
+ "@babel/plugin-transform-member-expression-literals" "^7.10.4"
+ "@babel/plugin-transform-modules-amd" "^7.10.4"
+ "@babel/plugin-transform-modules-commonjs" "^7.10.4"
+ "@babel/plugin-transform-modules-systemjs" "^7.10.4"
+ "@babel/plugin-transform-modules-umd" "^7.10.4"
+ "@babel/plugin-transform-named-capturing-groups-regex" "^7.10.4"
+ "@babel/plugin-transform-new-target" "^7.10.4"
+ "@babel/plugin-transform-object-super" "^7.10.4"
+ "@babel/plugin-transform-parameters" "^7.10.4"
+ "@babel/plugin-transform-property-literals" "^7.10.4"
+ "@babel/plugin-transform-regenerator" "^7.10.4"
+ "@babel/plugin-transform-reserved-words" "^7.10.4"
+ "@babel/plugin-transform-shorthand-properties" "^7.10.4"
+ "@babel/plugin-transform-spread" "^7.10.4"
+ "@babel/plugin-transform-sticky-regex" "^7.10.4"
+ "@babel/plugin-transform-template-literals" "^7.10.4"
+ "@babel/plugin-transform-typeof-symbol" "^7.10.4"
+ "@babel/plugin-transform-unicode-escapes" "^7.10.4"
+ "@babel/plugin-transform-unicode-regex" "^7.10.4"
+ "@babel/preset-modules" "^0.1.3"
+ "@babel/types" "^7.10.4"
+ browserslist "^4.12.0"
+ core-js-compat "^3.6.2"
+ invariant "^2.2.2"
+ levenary "^1.1.1"
+ semver "^5.5.0"
+
+"@babel/preset-modules@^0.1.3":
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.3.tgz#13242b53b5ef8c883c3cf7dddd55b36ce80fbc72"
+ integrity sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==
dependencies:
- "@babel/helper-module-imports" "^7.0.0"
"@babel/helper-plugin-utils" "^7.0.0"
- "@babel/plugin-proposal-async-generator-functions" "^7.2.0"
- "@babel/plugin-proposal-json-strings" "^7.2.0"
- "@babel/plugin-proposal-object-rest-spread" "^7.4.4"
- "@babel/plugin-proposal-optional-catch-binding" "^7.2.0"
"@babel/plugin-proposal-unicode-property-regex" "^7.4.4"
- "@babel/plugin-syntax-async-generators" "^7.2.0"
- "@babel/plugin-syntax-json-strings" "^7.2.0"
- "@babel/plugin-syntax-object-rest-spread" "^7.2.0"
- "@babel/plugin-syntax-optional-catch-binding" "^7.2.0"
- "@babel/plugin-transform-arrow-functions" "^7.2.0"
- "@babel/plugin-transform-async-to-generator" "^7.4.4"
- "@babel/plugin-transform-block-scoped-functions" "^7.2.0"
- "@babel/plugin-transform-block-scoping" "^7.4.4"
- "@babel/plugin-transform-classes" "^7.4.4"
- "@babel/plugin-transform-computed-properties" "^7.2.0"
- "@babel/plugin-transform-destructuring" "^7.4.4"
"@babel/plugin-transform-dotall-regex" "^7.4.4"
- "@babel/plugin-transform-duplicate-keys" "^7.2.0"
- "@babel/plugin-transform-exponentiation-operator" "^7.2.0"
- "@babel/plugin-transform-for-of" "^7.4.4"
- "@babel/plugin-transform-function-name" "^7.4.4"
- "@babel/plugin-transform-literals" "^7.2.0"
- "@babel/plugin-transform-member-expression-literals" "^7.2.0"
- "@babel/plugin-transform-modules-amd" "^7.2.0"
- "@babel/plugin-transform-modules-commonjs" "^7.4.4"
- "@babel/plugin-transform-modules-systemjs" "^7.4.4"
- "@babel/plugin-transform-modules-umd" "^7.2.0"
- "@babel/plugin-transform-named-capturing-groups-regex" "^7.4.5"
- "@babel/plugin-transform-new-target" "^7.4.4"
- "@babel/plugin-transform-object-super" "^7.2.0"
- "@babel/plugin-transform-parameters" "^7.4.4"
- "@babel/plugin-transform-property-literals" "^7.2.0"
- "@babel/plugin-transform-regenerator" "^7.4.5"
- "@babel/plugin-transform-reserved-words" "^7.2.0"
- "@babel/plugin-transform-shorthand-properties" "^7.2.0"
- "@babel/plugin-transform-spread" "^7.2.0"
- "@babel/plugin-transform-sticky-regex" "^7.2.0"
- "@babel/plugin-transform-template-literals" "^7.4.4"
- "@babel/plugin-transform-typeof-symbol" "^7.2.0"
- "@babel/plugin-transform-unicode-regex" "^7.4.4"
"@babel/types" "^7.4.4"
- browserslist "^4.6.0"
- core-js-compat "^3.1.1"
- invariant "^2.2.2"
- js-levenshtein "^1.1.3"
- semver "^5.5.0"
+ esutils "^2.0.2"
-"@babel/preset-react@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.0.0.tgz#e86b4b3d99433c7b3e9e91747e2653958bc6b3c0"
- integrity sha512-oayxyPS4Zj+hF6Et11BwuBkmpgT/zMxyuZgFrMeZID6Hdh3dGlk4sHCAhdBCpuCKW2ppBfl2uCCetlrUIJRY3w==
+"@babel/preset-react@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.10.4.tgz#92e8a66d816f9911d11d4cc935be67adfc82dbcf"
+ integrity sha512-BrHp4TgOIy4M19JAfO1LhycVXOPWdDbTRep7eVyatf174Hff+6Uk53sDyajqZPu8W1qXRBiYOfIamek6jA7YVw==
dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
- "@babel/plugin-transform-react-display-name" "^7.0.0"
- "@babel/plugin-transform-react-jsx" "^7.0.0"
- "@babel/plugin-transform-react-jsx-self" "^7.0.0"
- "@babel/plugin-transform-react-jsx-source" "^7.0.0"
+ "@babel/helper-plugin-utils" "^7.10.4"
+ "@babel/plugin-transform-react-display-name" "^7.10.4"
+ "@babel/plugin-transform-react-jsx" "^7.10.4"
+ "@babel/plugin-transform-react-jsx-development" "^7.10.4"
+ "@babel/plugin-transform-react-jsx-self" "^7.10.4"
+ "@babel/plugin-transform-react-jsx-source" "^7.10.4"
+ "@babel/plugin-transform-react-pure-annotations" "^7.10.4"
-"@babel/register@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.4.4.tgz#370a68ba36f08f015a8b35d4864176c6b65d7a23"
- integrity sha512-sn51H88GRa00+ZoMqCVgOphmswG4b7mhf9VOB0LUBAieykq2GnRFerlN+JQkO/ntT7wz4jaHNSRPg9IdMPEUkA==
+"@babel/register@^7.10.5":
+ version "7.10.5"
+ resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.10.5.tgz#354f3574895f1307f79efe37a51525e52fd38d89"
+ integrity sha512-eYHdLv43nyvmPn9bfNfrcC4+iYNwdQ8Pxk1MFJuU/U5LpSYl/PH4dFMazCYZDFVi8ueG3shvO+AQfLrxpYulQw==
dependencies:
- core-js "^3.0.0"
find-cache-dir "^2.0.0"
- lodash "^4.17.11"
- mkdirp "^0.5.1"
+ lodash "^4.17.19"
+ make-dir "^2.1.0"
pirates "^4.0.0"
- source-map-support "^0.5.9"
+ source-map-support "^0.5.16"
-"@babel/runtime@7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.0.0.tgz#adeb78fedfc855aa05bc041640f3f6f98e85424c"
- integrity sha512-7hGhzlcmg01CvH1EHdSPVXYX1aJ8KCEyz6I9xYIi/asDtzBPMyMhVibhM/K6g/5qnKBwjZtp10bNZIEFTRW1MA==
+"@babel/runtime-corejs3@^7.10.2":
+ version "7.10.5"
+ resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.10.5.tgz#a57fe6c13045ca33768a2aa527ead795146febe1"
+ integrity sha512-RMafpmrNB5E/bwdSphLr8a8++9TosnyJp98RZzI6VOx2R2CCMpsXXXRvmI700O9oEKpXdZat6oEK68/F0zjd4A==
dependencies:
- regenerator-runtime "^0.12.0"
+ core-js-pure "^3.0.0"
+ regenerator-runtime "^0.13.4"
-"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.4.5":
- version "7.4.5"
- resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.4.5.tgz#582bb531f5f9dc67d2fcb682979894f75e253f12"
- integrity sha512-TuI4qpWZP6lGOGIuGWtp9sPluqYICmbk8T/1vpSysqJxRPkudh/ofFWyqdcMsDf2s7KvDL4/YHgKyvcS3g9CJQ==
+"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.5", "@babel/runtime@^7.4.5", "@babel/runtime@^7.8.4":
+ version "7.10.5"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.10.5.tgz#303d8bd440ecd5a491eae6117fd3367698674c5c"
+ integrity sha512-otddXKhdNn7d0ptoFRHtMLa8LqDxLYwTjB4nYgM1yy5N6gU/MUf8zqyyLltCH3yAVitBzmwK4us+DD0l/MauAg==
dependencies:
- regenerator-runtime "^0.13.2"
+ regenerator-runtime "^0.13.4"
-"@babel/standalone@^7.4.5":
- version "7.4.5"
- resolved "https://registry.yarnpkg.com/@babel/standalone/-/standalone-7.4.5.tgz#60ded549756cf749eb6db0a54c21b4c48c7e18e5"
- integrity sha512-Ddjq6OS+NxpJdvMEMiKVU4BCg/2IOpbP+2JNM9ZY1HULxlZGTyNXKIqXHRqzV0N6e+51zmTwQg+c1Lfs44bBHg==
+"@babel/standalone@^7.10.5":
+ version "7.10.5"
+ resolved "https://registry.yarnpkg.com/@babel/standalone/-/standalone-7.10.5.tgz#4ee38dc79fda10a2a0da0897f09e270310151314"
+ integrity sha512-PERGHqhQ7H3TrdglvSW4pEHULywMJEdytnzaR0VPF1HN45aS+3FcE62efb90XPKS9TlgrEUkYDvYMt+0m6G0YA==
"@babel/template@7.0.0-beta.51":
version "7.0.0-beta.51"
@@ -828,14 +991,14 @@
"@babel/types" "7.0.0-beta.51"
lodash "^4.17.5"
-"@babel/template@^7.1.0", "@babel/template@^7.4.0", "@babel/template@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.4.tgz#f4b88d1225689a08f5bc3a17483545be9e4ed237"
- integrity sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw==
+"@babel/template@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278"
+ integrity sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==
dependencies:
- "@babel/code-frame" "^7.0.0"
- "@babel/parser" "^7.4.4"
- "@babel/types" "^7.4.4"
+ "@babel/code-frame" "^7.10.4"
+ "@babel/parser" "^7.10.4"
+ "@babel/types" "^7.10.4"
"@babel/traverse@7.0.0-beta.51":
version "7.0.0-beta.51"
@@ -853,20 +1016,20 @@
invariant "^2.2.0"
lodash "^4.17.5"
-"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.4.4", "@babel/traverse@^7.4.5":
- version "7.4.5"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.4.5.tgz#4e92d1728fd2f1897dafdd321efbff92156c3216"
- integrity sha512-Vc+qjynwkjRmIFGxy0KYoPj4FdVDxLej89kMHFsWScq999uX+pwcX4v9mWRjW0KcAYTPAuVQl2LKP1wEVLsp+A==
- dependencies:
- "@babel/code-frame" "^7.0.0"
- "@babel/generator" "^7.4.4"
- "@babel/helper-function-name" "^7.1.0"
- "@babel/helper-split-export-declaration" "^7.4.4"
- "@babel/parser" "^7.4.5"
- "@babel/types" "^7.4.4"
+"@babel/traverse@^7.10.4", "@babel/traverse@^7.10.5", "@babel/traverse@^7.7.0":
+ version "7.10.5"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.10.5.tgz#77ce464f5b258be265af618d8fddf0536f20b564"
+ integrity sha512-yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ==
+ dependencies:
+ "@babel/code-frame" "^7.10.4"
+ "@babel/generator" "^7.10.5"
+ "@babel/helper-function-name" "^7.10.4"
+ "@babel/helper-split-export-declaration" "^7.10.4"
+ "@babel/parser" "^7.10.5"
+ "@babel/types" "^7.10.5"
debug "^4.1.0"
globals "^11.1.0"
- lodash "^4.17.11"
+ lodash "^4.17.19"
"@babel/types@7.0.0-beta.51":
version "7.0.0-beta.51"
@@ -877,33 +1040,30 @@
lodash "^4.17.5"
to-fast-properties "^2.0.0"
-"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.4.4.tgz#8db9e9a629bb7c29370009b4b779ed93fe57d5f0"
- integrity sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==
+"@babel/types@^7.0.0-beta.49", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.7.2":
+ version "7.10.5"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.10.5.tgz#d88ae7e2fde86bfbfe851d4d81afa70a997b5d15"
+ integrity sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==
dependencies:
- esutils "^2.0.2"
- lodash "^4.17.11"
+ "@babel/helper-validator-identifier" "^7.10.4"
+ lodash "^4.17.19"
to-fast-properties "^2.0.0"
-"@fimbul/bifrost@^0.17.0":
- version "0.17.0"
- resolved "https://registry.yarnpkg.com/@fimbul/bifrost/-/bifrost-0.17.0.tgz#f0383ba7e40992e3193dc87e2ddfde2ad62a9cf4"
- integrity sha512-gVTkJAOef5HtN6LPmrtt5fAUmBywwlgmObsU3FBhPoNeXPLaIl2zywXkJEtvvVLQnaFmtff3x+wIj5lHRCDE3Q==
+"@istanbuljs/load-nyc-config@^1.0.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced"
+ integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==
dependencies:
- "@fimbul/ymir" "^0.17.0"
- get-caller-file "^2.0.0"
- tslib "^1.8.1"
- tsutils "^3.5.0"
+ camelcase "^5.3.1"
+ find-up "^4.1.0"
+ get-package-type "^0.1.0"
+ js-yaml "^3.13.1"
+ resolve-from "^5.0.0"
-"@fimbul/ymir@^0.17.0":
- version "0.17.0"
- resolved "https://registry.yarnpkg.com/@fimbul/ymir/-/ymir-0.17.0.tgz#4f28389b9f804d1cd202e11983af1743488b7815"
- integrity sha512-xMXM9KTXRLHLVS6dnX1JhHNEkmWHcAVCQ/4+DA1KKwC/AFnGHzu/7QfQttEPgw3xplT+ILf9e3i64jrFwB3JtA==
- dependencies:
- inversify "^5.0.0"
- reflect-metadata "^0.1.12"
- tslib "^1.8.1"
+"@istanbuljs/schema@^0.1.2":
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd"
+ integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==
"@mdx-js/loader@^0.20.3":
version "0.20.3"
@@ -965,12 +1125,6 @@
dependencies:
mkdirp "^1.0.4"
-"@samverschueren/stream-to-observable@^0.3.0":
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz#ecdf48d532c58ea477acfcab80348424f8d0662f"
- dependencies:
- any-observable "^0.3.0"
-
"@semantic-ui-react/event-stack@^3.1.0":
version "3.1.0"
resolved "https://registry.yarnpkg.com/@semantic-ui-react/event-stack/-/event-stack-3.1.0.tgz#aadbe4a28b0dd7703c5f451640d0fefe66dd9208"
@@ -979,29 +1133,36 @@
exenv "^1.2.2"
prop-types "^15.6.2"
-"@sinonjs/commons@^1", "@sinonjs/commons@^1.0.2", "@sinonjs/commons@^1.3.1":
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.4.0.tgz#7b3ec2d96af481d7a0321252e7b1c94724ec5a78"
- integrity sha512-9jHK3YF/8HtJ9wCAbG+j8cD0i0+ATS9A7gXFqS36TblLPNy6rEEc+SB0imo91eCboGaBYGV/MT1/br/J+EE7Tw==
+"@sinonjs/commons@^1", "@sinonjs/commons@^1.6.0", "@sinonjs/commons@^1.7.0", "@sinonjs/commons@^1.7.2":
+ version "1.8.1"
+ resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.1.tgz#e7df00f98a203324f6dc7cc606cad9d4a8ab2217"
+ integrity sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==
dependencies:
type-detect "4.0.8"
-"@sinonjs/formatio@^3.1.0", "@sinonjs/formatio@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-3.2.1.tgz#52310f2f9bcbc67bdac18c94ad4901b95fde267e"
- integrity sha512-tsHvOB24rvyvV2+zKMmPkZ7dXX6LSLKZ7aOtXY6Edklp0uRcgGpOsQTTGTcWViFyx4uhWc6GV8QdnALbIbIdeQ==
+"@sinonjs/fake-timers@^6.0.0", "@sinonjs/fake-timers@^6.0.1":
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40"
+ integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==
+ dependencies:
+ "@sinonjs/commons" "^1.7.0"
+
+"@sinonjs/formatio@^5.0.1":
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-5.0.1.tgz#f13e713cb3313b1ab965901b01b0828ea6b77089"
+ integrity sha512-KaiQ5pBf1MpS09MuA0kp6KBQt2JUOQycqVG1NZXvzeaXe5LGFqAKueIS0bw4w0P9r7KuBSVdUk5QjXsUdu2CxQ==
dependencies:
"@sinonjs/commons" "^1"
- "@sinonjs/samsam" "^3.1.0"
+ "@sinonjs/samsam" "^5.0.2"
-"@sinonjs/samsam@^3.1.0", "@sinonjs/samsam@^3.2.0":
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-3.3.0.tgz#9557ea89cd39dbc94ffbd093c8085281cac87416"
- integrity sha512-beHeJM/RRAaLLsMJhsCvHK31rIqZuobfPLa/80yGH5hnD8PV1hyh9xJBJNFfNmO7yWqm+zomijHsXpI6iTQJfQ==
+"@sinonjs/samsam@^5.0.2", "@sinonjs/samsam@^5.0.3":
+ version "5.0.3"
+ resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-5.0.3.tgz#86f21bdb3d52480faf0892a480c9906aa5a52938"
+ integrity sha512-QucHkc2uMJ0pFGjJUDP3F9dq5dx8QIaqISl9QgwLOh6P9yv877uONPGXh/OH/0zmM3tW1JjuJltAZV2l7zU+uQ==
dependencies:
- "@sinonjs/commons" "^1.0.2"
- array-from "^2.1.1"
- lodash "^4.17.11"
+ "@sinonjs/commons" "^1.6.0"
+ lodash.get "^4.4.2"
+ type-detect "^4.0.8"
"@sinonjs/text-encoding@^0.7.1":
version "0.7.1"
@@ -1066,18 +1227,29 @@
resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0"
integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==
+"@types/eslint-visitor-keys@^1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d"
+ integrity sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==
+
"@types/history@*":
version "4.6.2"
resolved "https://registry.yarnpkg.com/@types/history/-/history-4.6.2.tgz#12cfaba693ba20f114ed5765467ff25fdf67ddb0"
-"@types/json-schema@^7.0.4":
+"@types/json-schema@^7.0.3", "@types/json-schema@^7.0.4":
version "7.0.5"
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.5.tgz#dcce4430e64b443ba8945f0290fb564ad5bac6dd"
integrity sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ==
+"@types/json5@^0.0.29":
+ version "0.0.29"
+ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee"
+ integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4=
+
"@types/node@*":
- version "8.0.53"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-8.0.53.tgz#396b35af826fa66aad472c8cb7b8d5e277f4e6d8"
+ version "14.0.26"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.26.tgz#22a3b8a46510da8944b67bfc27df02c34a35331c"
+ integrity sha512-W+fpe5s91FBGE0pEa0lnqGLL4USgpLgs4nokw16SrBBco/gQxuua7KnArSEOd5iaMqbbSHV10vUDkJYJJqpXKA==
"@types/normalize-package-data@^2.4.0":
version "2.4.0"
@@ -1114,10 +1286,10 @@
"@types/history" "*"
"@types/react" "*"
-"@types/react@*", "@types/react@^16.0.18", "@types/react@^16.8.25":
- version "16.9.2"
- resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.2.tgz#6d1765431a1ad1877979013906731aae373de268"
- integrity sha512-jYP2LWwlh+FTqGd9v7ynUKZzjj98T8x7Yclz479QdRhHfuW9yQ+0jjnD31eXSXutmBpppj5PYNLYLRfnZJvcfg==
+"@types/react@*", "@types/react@^16.0.18", "@types/react@^16.9.43":
+ version "16.9.43"
+ resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.43.tgz#c287f23f6189666ee3bebc2eb8d0f84bcb6cdb6b"
+ integrity sha512-PxshAFcnJqIWYpJbLPriClH53Z2WlJcVZE+NP2etUtWQs2s7yIMj3/LDKZT/5CHJ/F62iyjVCDu2H3jHEXIxSg==
dependencies:
"@types/prop-types" "*"
csstype "^2.2.0"
@@ -1144,6 +1316,73 @@
"@types/unist" "*"
"@types/vfile-message" "*"
+"@types/yauzl@^2.9.1":
+ version "2.9.1"
+ resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.1.tgz#d10f69f9f522eef3cf98e30afb684a1e1ec923af"
+ integrity sha512-A1b8SU4D10uoPjwb0lnHmmu8wZhR9d+9o2PKBQT2jU5YPTKsxac6M2qGAdY7VcL+dHHhARVUDmeg0rOrcd9EjA==
+ dependencies:
+ "@types/node" "*"
+
+"@typescript-eslint/eslint-plugin@^3.7.1":
+ version "3.7.1"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.7.1.tgz#d144c49a9a0ffe8dd704bb179c243df76c111bc9"
+ integrity sha512-3DB9JDYkMrc8Au00rGFiJLK2Ja9CoMP6Ut0sHsXp3ZtSugjNxvSSHTnKLfo4o+QmjYBJqEznDqsG1zj4F2xnsg==
+ dependencies:
+ "@typescript-eslint/experimental-utils" "3.7.1"
+ debug "^4.1.1"
+ functional-red-black-tree "^1.0.1"
+ regexpp "^3.0.0"
+ semver "^7.3.2"
+ tsutils "^3.17.1"
+
+"@typescript-eslint/experimental-utils@3.7.1":
+ version "3.7.1"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-3.7.1.tgz#ab036caaed4c870d22531d41f9352f3147364d61"
+ integrity sha512-TqE97pv7HrqWcGJbLbZt1v59tcqsSVpWTOf1AqrWK7n8nok2sGgVtYRuGXeNeLw3wXlLEbY1MKP3saB2HsO/Ng==
+ dependencies:
+ "@types/json-schema" "^7.0.3"
+ "@typescript-eslint/types" "3.7.1"
+ "@typescript-eslint/typescript-estree" "3.7.1"
+ eslint-scope "^5.0.0"
+ eslint-utils "^2.0.0"
+
+"@typescript-eslint/parser@^3.7.1":
+ version "3.7.1"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-3.7.1.tgz#5d9ccecb116d12d9c6073e9861c57c9b1aa88128"
+ integrity sha512-W4QV/gXvfIsccN8225784LNOorcm7ch68Fi3V4Wg7gmkWSQRKevO4RrRqWo6N/Z/myK1QAiGgeaXN57m+R/8iQ==
+ dependencies:
+ "@types/eslint-visitor-keys" "^1.0.0"
+ "@typescript-eslint/experimental-utils" "3.7.1"
+ "@typescript-eslint/types" "3.7.1"
+ "@typescript-eslint/typescript-estree" "3.7.1"
+ eslint-visitor-keys "^1.1.0"
+
+"@typescript-eslint/types@3.7.1":
+ version "3.7.1"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-3.7.1.tgz#90375606b2fd73c1224fe9e397ee151e28fa1e0c"
+ integrity sha512-PZe8twm5Z4b61jt7GAQDor6KiMhgPgf4XmUb9zdrwTbgtC/Sj29gXP1dws9yEn4+aJeyXrjsD9XN7AWFhmnUfg==
+
+"@typescript-eslint/typescript-estree@3.7.1":
+ version "3.7.1"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-3.7.1.tgz#ce1ffbd0fa53f34d4ce851a7a364e392432f6eb3"
+ integrity sha512-m97vNZkI08dunYOr2lVZOHoyfpqRs0KDpd6qkGaIcLGhQ2WPtgHOd/eVbsJZ0VYCQvupKrObAGTOvk3tfpybYA==
+ dependencies:
+ "@typescript-eslint/types" "3.7.1"
+ "@typescript-eslint/visitor-keys" "3.7.1"
+ debug "^4.1.1"
+ glob "^7.1.6"
+ is-glob "^4.0.1"
+ lodash "^4.17.15"
+ semver "^7.3.2"
+ tsutils "^3.17.1"
+
+"@typescript-eslint/visitor-keys@3.7.1":
+ version "3.7.1"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-3.7.1.tgz#b90191e74efdee656be8c5a30f428ed16dda46d1"
+ integrity sha512-xn22sQbEya+Utj2IqJHGLA3i1jDzR43RzWupxojbSWnj3nnPLavaQmWe5utw03CwYao3r00qzXfgJMGNkrzrAA==
+ dependencies:
+ eslint-visitor-keys "^1.1.0"
+
"@webassemblyjs/ast@1.9.0":
version "1.9.0"
resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964"
@@ -1303,10 +1542,6 @@ abbrev@1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
-abbrev@1.0.x:
- version "1.0.9"
- resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135"
-
accepts@~1.3.4, accepts@~1.3.7:
version "1.3.7"
resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
@@ -1327,10 +1562,10 @@ acorn-jsx@^3.0.0:
dependencies:
acorn "^3.0.4"
-acorn-jsx@^5.0.0:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.1.tgz#32a064fd925429216a09b141102bfdd185fae40e"
- integrity sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==
+acorn-jsx@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe"
+ integrity sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==
acorn-walk@^7.1.1:
version "7.2.0"
@@ -1350,12 +1585,12 @@ acorn@^5.0.0, acorn@^5.3.0, acorn@^5.5.0:
resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279"
integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==
-acorn@^6.0.7, acorn@^6.4.1:
+acorn@^6.4.1:
version "6.4.1"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474"
integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==
-acorn@^7.1.1:
+acorn@^7.1.1, acorn@^7.3.1:
version "7.3.1"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.3.1.tgz#85010754db53c3fbaf3b9ea3e083aa5c5d147ffd"
integrity sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==
@@ -1368,11 +1603,10 @@ after@0.8.2:
version "0.8.2"
resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f"
-agent-base@^4.1.0:
- version "4.1.2"
- resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.1.2.tgz#80fa6cde440f4dcf9af2617cf246099b5d99f0c8"
- dependencies:
- es6-promisify "^5.0.0"
+agent-base@5:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-5.1.1.tgz#e8fb3f242959db44d63be665db7a8e739537a32c"
+ integrity sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==
aggregate-error@^3.0.0:
version "3.0.1"
@@ -1382,21 +1616,20 @@ aggregate-error@^3.0.0:
clean-stack "^2.0.0"
indent-string "^4.0.0"
-airbnb-prop-types@^2.13.2:
- version "2.14.0"
- resolved "https://registry.yarnpkg.com/airbnb-prop-types/-/airbnb-prop-types-2.14.0.tgz#3d45cb1459f4ce78fdf1240563d1aa2315391168"
- integrity sha512-Yb09vUkr3KP9r9NqfRuYtDYZG76wt8mhTUi2Vfzsghk+qkg01/gOc9NU8n63ZcMCLzpAdMEXyKjCHlxV62yN1A==
+airbnb-prop-types@^2.15.0:
+ version "2.16.0"
+ resolved "https://registry.yarnpkg.com/airbnb-prop-types/-/airbnb-prop-types-2.16.0.tgz#b96274cefa1abb14f623f804173ee97c13971dc2"
+ integrity sha512-7WHOFolP/6cS96PhKNrslCLMYAI8yB1Pp6u6XmxozQOiZbsI5ycglZr5cHhBFfuRcQQjzCMith5ZPZdYiJCxUg==
dependencies:
- array.prototype.find "^2.1.0"
- function.prototype.name "^1.1.1"
- has "^1.0.3"
- is-regex "^1.0.4"
- object-is "^1.0.1"
+ array.prototype.find "^2.1.1"
+ function.prototype.name "^1.1.2"
+ is-regex "^1.1.0"
+ object-is "^1.1.2"
object.assign "^4.1.0"
- object.entries "^1.1.0"
+ object.entries "^1.1.2"
prop-types "^15.7.2"
prop-types-exact "^1.2.0"
- react-is "^16.8.6"
+ react-is "^16.13.1"
ajv-errors@^1.0.0:
version "1.0.1"
@@ -1428,7 +1661,7 @@ ajv@^5.0.0, ajv@^5.2.3, ajv@^5.3.0:
fast-json-stable-stringify "^2.0.0"
json-schema-traverse "^0.3.0"
-ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.9.1:
+ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.9.1:
version "6.12.3"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.3.tgz#18c5af38a111ddeb4f2697bd78d68abc1cabd706"
integrity sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==
@@ -1454,10 +1687,10 @@ amdefine@>=0.0.4:
version "1.0.1"
resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
-anchor-js@^4.2.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/anchor-js/-/anchor-js-4.2.0.tgz#6360fcec75074de2361dc67525cbf6882a765687"
- integrity sha512-qIh35DLc0YNlRD6k39ULIPNI6iHxFFhtaJr02I7ttsh31bhZjeSa3jjEUx1/sQ4zPOyxrUhuXGuWl981ZLNzBQ==
+anchor-js@^4.2.2:
+ version "4.2.2"
+ resolved "https://registry.yarnpkg.com/anchor-js/-/anchor-js-4.2.2.tgz#e4edd682752cb2afaecdbc03df5c7b31e3c02922"
+ integrity sha512-Rg1tGaG4K3avYqDh7rOYCE/odWxpUiHStnlKL/bGOt9cl6NjR06zhPGVQcCAjE5PT48oQeHVgqNmLzxh0Kuk4A==
anchor-markdown-header@^0.5.5:
version "0.5.7"
@@ -1471,10 +1704,10 @@ ansi-align@^2.0.0:
dependencies:
string-width "^2.0.0"
-ansi-colors@3.2.3, ansi-colors@^3.0.0:
- version "3.2.3"
- resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813"
- integrity sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==
+ansi-colors@4.1.1, ansi-colors@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348"
+ integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==
ansi-colors@^1.0.1:
version "1.1.0"
@@ -1482,15 +1715,27 @@ ansi-colors@^1.0.1:
dependencies:
ansi-wrap "^0.1.0"
+ansi-colors@^3.0.0:
+ version "3.2.3"
+ resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813"
+ integrity sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==
+
ansi-escapes@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-2.0.0.tgz#5bae52be424878dd9783e8910e3fc2922e83c81b"
-ansi-escapes@^3.0.0, ansi-escapes@^3.2.0:
+ansi-escapes@^3.0.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b"
integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==
+ansi-escapes@^4.3.0:
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61"
+ integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==
+ dependencies:
+ type-fest "^0.11.0"
+
ansi-gray@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251"
@@ -1529,7 +1774,7 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1:
dependencies:
color-convert "^1.9.0"
-ansi-styles@^4.1.0:
+ansi-styles@^4.0.0, ansi-styles@^4.1.0:
version "4.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359"
integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==
@@ -1541,10 +1786,6 @@ ansi-wrap@0.1.0, ansi-wrap@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf"
-any-observable@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b"
-
any-promise@^1.0.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
@@ -1615,13 +1856,13 @@ args@4.0.0:
leven "2.1.0"
mri "1.1.0"
-aria-query@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-3.0.0.tgz#65b3fcc1ca1155a8c9ae64d6eee297f15d5133cc"
- integrity sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=
+aria-query@^4.2.2:
+ version "4.2.2"
+ resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-4.2.2.tgz#0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b"
+ integrity sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==
dependencies:
- ast-types-flow "0.0.7"
- commander "^2.11.0"
+ "@babel/runtime" "^7.10.2"
+ "@babel/runtime-corejs3" "^7.10.2"
arr-diff@^2.0.0:
version "2.0.0"
@@ -1682,17 +1923,14 @@ array-flatten@^2.1.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.1.tgz#426bb9da84090c1838d812c8150af20a8331e296"
-array-from@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/array-from/-/array-from-2.1.1.tgz#cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195"
- integrity sha1-z+nYwmYoudxa7MYqn12PHzUsEZU=
-
-array-includes@^3.0.3:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d"
+array-includes@^3.0.3, array-includes@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.1.tgz#cdd67e6852bdf9c1215460786732255ed2459348"
+ integrity sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==
dependencies:
- define-properties "^1.1.2"
- es-abstract "^1.7.0"
+ define-properties "^1.1.3"
+ es-abstract "^1.17.0"
+ is-string "^1.0.5"
array-initial@^1.0.0:
version "1.0.1"
@@ -1750,27 +1988,46 @@ array-unique@^0.3.2:
version "0.3.2"
resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
-array.prototype.find@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.1.0.tgz#630f2eaf70a39e608ac3573e45cf8ccd0ede9ad7"
- integrity sha512-Wn41+K1yuO5p7wRZDl7890c3xvv5UBrfVXTVIe28rSQb6LS0fZMDrQB6PAcxQFRFy6vJTLDc3A2+3CjQdzVKRg==
+array.prototype.find@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.1.1.tgz#3baca26108ca7affb08db06bf0be6cb3115a969c"
+ integrity sha512-mi+MYNJYLTx2eNYy+Yh6raoQacCsNeeMUaspFPh9Y141lFSsWxxB8V9mM2ye+eqiRs917J6/pJ4M9ZPzenWckA==
dependencies:
define-properties "^1.1.3"
- es-abstract "^1.13.0"
+ es-abstract "^1.17.4"
-array.prototype.flat@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.1.tgz#812db8f02cad24d3fab65dd67eabe3b8903494a4"
+array.prototype.flat@^1.2.3:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz#0de82b426b0318dbfdb940089e38b043d37f6c7b"
+ integrity sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==
dependencies:
- define-properties "^1.1.2"
- es-abstract "^1.10.0"
+ define-properties "^1.1.3"
+ es-abstract "^1.17.0-next.1"
+
+array.prototype.flatmap@^1.2.3:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.3.tgz#1c13f84a178566042dd63de4414440db9222e443"
+ integrity sha512-OOEk+lkePcg+ODXIpvuU9PAryCikCJyo7GlDG1upleEpQRx6mzL9puEBkozQ5iAx20KV0l3DbyQwqciJtqe5Pg==
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.17.0-next.1"
function-bind "^1.1.1"
+array.prototype.map@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/array.prototype.map/-/array.prototype.map-1.0.2.tgz#9a4159f416458a23e9483078de1106b2ef68f8ec"
+ integrity sha512-Az3OYxgsa1g7xDYp86l0nnN4bcmuEITGe1rbdEBVkrqkzMgDcbdQ2R7r41pNzti+4NMces3H8gMmuioZUilLgw==
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.17.0-next.1"
+ es-array-method-boxes-properly "^1.0.0"
+ is-string "^1.0.4"
+
arraybuffer.slice@~0.0.7:
version "0.0.7"
resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675"
-arrify@^1.0.0, arrify@^1.0.1:
+arrify@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
@@ -1801,7 +2058,7 @@ assign-symbols@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
-ast-types-flow@0.0.7, ast-types-flow@^0.0.7:
+ast-types-flow@^0.0.7:
version "0.0.7"
resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad"
@@ -1815,6 +2072,11 @@ astral-regex@^1.0.0:
resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==
+astral-regex@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
+ integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
+
async-done@^1.2.0, async-done@^1.2.2:
version "1.2.3"
resolved "https://registry.yarnpkg.com/async-done/-/async-done-1.2.3.tgz#6c7abc7d61ca27fe6f1f2ba3206ea9ae60a43983"
@@ -1845,11 +2107,11 @@ async-settle@^1.0.0:
dependencies:
async-done "^1.2.2"
-async@1.x, async@^1.4.0, async@^1.5.2:
+async@^1.4.0, async@^1.5.2:
version "1.5.2"
resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
-async@^2.0.0, async@^2.1.2, async@^2.1.4, async@^2.4.1, async@^2.5.0, async@^2.6.1:
+async@^2.1.2, async@^2.1.4, async@^2.4.1, async@^2.5.0, async@^2.6.1:
version "2.6.2"
resolved "https://registry.yarnpkg.com/async/-/async-2.6.2.tgz#18330ea7e6e313887f5d2f2a904bac6fe4dd5381"
integrity sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==
@@ -1887,6 +2149,11 @@ autoprefixer@^7.1.5:
postcss "^6.0.17"
postcss-value-parser "^3.2.3"
+axe-core@^3.5.4:
+ version "3.5.5"
+ resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-3.5.5.tgz#84315073b53fa3c0c51676c588d59da09a192227"
+ integrity sha512-5P0QZ6J5xGikH780pghEdbEKijCTrruK9KxtPZCFWUpef0f6GipO+xEZ5GKCb020mmqgbiNO6TcA55CriL784Q==
+
axios@^0.15.2:
version "0.15.3"
resolved "https://registry.yarnpkg.com/axios/-/axios-0.15.3.tgz#2c9d638b2e191a08ea1d6cc988eadd6ba5bdc053"
@@ -1900,12 +2167,10 @@ axios@^0.16.2:
follow-redirects "^1.2.3"
is-buffer "^1.1.5"
-axobject-query@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.0.2.tgz#ea187abe5b9002b377f925d8bf7d1c561adf38f9"
- integrity sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==
- dependencies:
- ast-types-flow "0.0.7"
+axobject-query@^2.1.2:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be"
+ integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==
babel-cli@^6.26.0:
version "6.26.0"
@@ -1960,17 +2225,17 @@ babel-core@^6.26.0:
slash "^1.0.0"
source-map "^0.5.7"
-babel-eslint@^10.0.2:
- version "10.0.2"
- resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.0.2.tgz#182d5ac204579ff0881684b040560fdcc1558456"
- integrity sha512-UdsurWPtgiPgpJ06ryUnuaSXC2s0WoSZnQmEpbAH65XZSdwowgN5MvyP7e88nW07FYXv72erVtpBkxyDVKhH1Q==
+babel-eslint@^10.1.0:
+ version "10.1.0"
+ resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232"
+ integrity sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==
dependencies:
"@babel/code-frame" "^7.0.0"
- "@babel/parser" "^7.0.0"
- "@babel/traverse" "^7.0.0"
- "@babel/types" "^7.0.0"
- eslint-scope "3.7.1"
+ "@babel/parser" "^7.7.0"
+ "@babel/traverse" "^7.7.0"
+ "@babel/types" "^7.7.0"
eslint-visitor-keys "^1.0.0"
+ resolve "^1.12.0"
babel-eslint@^8.2.2:
version "8.2.4"
@@ -2130,15 +2395,16 @@ babel-loader@^7.1.2:
loader-utils "^1.0.2"
mkdirp "^0.5.1"
-babel-loader@^8.0.6:
- version "8.0.6"
- resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.6.tgz#e33bdb6f362b03f4bb141a0c21ab87c501b70dfb"
- integrity sha512-4BmWKtBOBm13uoUwd08UwjZlaw3O9GWf456R9j+5YykFZ6LUIjIKLc0zEZf+hauxPOJs96C8k6FvYD09vWzhYw==
+babel-loader@^8.1.0:
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3"
+ integrity sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==
dependencies:
- find-cache-dir "^2.0.0"
- loader-utils "^1.0.2"
- mkdirp "^0.5.1"
+ find-cache-dir "^2.1.0"
+ loader-utils "^1.4.0"
+ mkdirp "^0.5.3"
pify "^4.0.1"
+ schema-utils "^2.6.5"
babel-messages@^6.23.0:
version "6.23.0"
@@ -2152,22 +2418,31 @@ babel-plugin-check-es2015-constants@^6.22.0:
dependencies:
babel-runtime "^6.22.0"
-babel-plugin-filter-imports@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-filter-imports/-/babel-plugin-filter-imports-3.0.0.tgz#a849683837ad29960da17492fb32789ab6b09a11"
- integrity sha512-p/chjzVTgCxUqyLM0q/pfWVZS7IJTwGQMwNg0LOvuQpKiTftQgZDtkGB8XvETnUw19rRcL7bJCTopSwibTN2tA==
+babel-plugin-dynamic-import-node@^2.3.3:
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3"
+ integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==
dependencies:
- "@babel/types" "^7.4.0"
- lodash "^4.17.11"
+ object.assign "^4.1.0"
-babel-plugin-istanbul@^5.1.4:
- version "5.1.4"
- resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-5.1.4.tgz#841d16b9a58eeb407a0ddce622ba02fe87a752ba"
- integrity sha512-dySz4VJMH+dpndj0wjJ8JPs/7i1TdSPb1nRrn56/92pKOF9VKC1FMFJmMXjzlGGusnCAqujP6PBCiKq0sVA+YQ==
+babel-plugin-filter-imports@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-filter-imports/-/babel-plugin-filter-imports-4.0.0.tgz#068f8da15236a96a9602c36dc6f4a6eeca70a4f4"
+ integrity sha512-jDLlxI8QnfKd7PtieH6pl4tZJzymzfCDCPGdTq/grgbiYAikwDPp/oL0IlFJn0HQjLpcLkyYhPKkUVneRESw5w==
dependencies:
- find-up "^3.0.0"
- istanbul-lib-instrument "^3.3.0"
- test-exclude "^5.2.3"
+ "@babel/types" "^7.7.2"
+ lodash "^4.17.15"
+
+babel-plugin-istanbul@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz#e159ccdc9af95e0b570c75b4573b7c34d671d765"
+ integrity sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+ "@istanbuljs/load-nyc-config" "^1.0.0"
+ "@istanbuljs/schema" "^0.1.2"
+ istanbul-lib-instrument "^4.0.0"
+ test-exclude "^6.0.0"
babel-plugin-lodash@^3.3.4:
version "3.3.4"
@@ -2495,10 +2770,10 @@ babel-plugin-transform-react-display-name@^6.23.0:
dependencies:
babel-runtime "^6.22.0"
-babel-plugin-transform-react-handled-props@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-handled-props/-/babel-plugin-transform-react-handled-props-2.0.0.tgz#4192e6a0230a4a1cfb618aedd8b7725c2962aaa2"
- integrity sha512-dDVWxNjhedW9MoE5P2itDKnCdB04icfGkgaWIhfJM9kdTnh7Fl8CjJBKSCxBThdIlkirNpXsAaA82grjzzk+jw==
+babel-plugin-transform-react-handled-props@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-handled-props/-/babel-plugin-transform-react-handled-props-2.1.0.tgz#11ca76679f7143637d418579f7f021879d4f721e"
+ integrity sha512-Bm7Eqw+hBsKZPyRB6QnnH7FOln/kR2Wgpt9G7pl5S7Nw5Dy5U1DUijLzLwHtOw3/YNc9nvccpCf+QhyA/i0HoA==
dependencies:
"@babel/types" "^7.4.4"
lodash "^4.17.11"
@@ -2735,6 +3010,7 @@ balanced-match@^0.4.2:
balanced-match@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
+ integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
base64-arraybuffer@0.1.5:
version "0.1.5"
@@ -2744,9 +3020,10 @@ base64-js@^1.0.2:
version "1.2.1"
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.1.tgz#a91947da1f4a516ea38e5b4ec0ec3773675e0886"
-base64id@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6"
+base64id@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6"
+ integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==
base@^0.11.1:
version "0.11.2"
@@ -2823,15 +3100,25 @@ bl@^1.0.0:
readable-stream "^2.3.5"
safe-buffer "^5.1.1"
-blob@0.0.4:
- version "0.0.4"
- resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921"
+bl@^4.0.1:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/bl/-/bl-4.0.2.tgz#52b71e9088515d0606d9dd9cc7aa48dc1f98e73a"
+ integrity sha512-j4OH8f6Qg2bGuWfRiltT2HYGx0e1QcBTrK9KAHNMwMZdQnDZFk0ZSYIpADjYCB3U12nicC5tVJwSIhwOWjb4RQ==
+ dependencies:
+ buffer "^5.5.0"
+ inherits "^2.0.4"
+ readable-stream "^3.4.0"
+
+blob@0.0.5:
+ version "0.0.5"
+ resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683"
+ integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==
bluebird@3.5.1:
version "3.5.1"
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9"
-bluebird@^3.3.0, bluebird@^3.3.3, bluebird@^3.4.7, bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.5:
+bluebird@^3.3.3, bluebird@^3.4.7, bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.5:
version "3.7.2"
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
@@ -2840,7 +3127,7 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0:
version "4.11.8"
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f"
-body-parser@1.19.0, body-parser@^1.16.1:
+body-parser@1.19.0, body-parser@^1.19.0:
version "1.19.0"
resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a"
integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==
@@ -2890,6 +3177,7 @@ boxen@1.3.0, boxen@^1.2.1:
brace-expansion@^1.0.0, brace-expansion@^1.1.7:
version "1.1.11"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
+ integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
dependencies:
balanced-match "^1.0.0"
concat-map "0.0.1"
@@ -2921,7 +3209,7 @@ braces@^2.3.1, braces@^2.3.2:
split-string "^3.0.2"
to-regex "^3.0.1"
-braces@^3.0.1, braces@~3.0.2:
+braces@^3.0.1, braces@^3.0.2, braces@~3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
@@ -3009,7 +3297,7 @@ browserslist@^3.2.6:
caniuse-lite "^1.0.30000844"
electron-to-chromium "^1.3.47"
-browserslist@^4.6.0, browserslist@^4.6.2:
+browserslist@^4.12.0, browserslist@^4.8.5:
version "4.13.0"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.13.0.tgz#42556cba011e1b0a2775b611cba6a8eca18e940d"
integrity sha512-MINatJ5ZNrLnQ6blGvePd/QOz9Xtu+Ne+x29iQSCHfkU5BugKVJwZKn/iiL8UbpIpa3JhviKjz+XxMo0m2caFQ==
@@ -3062,7 +3350,7 @@ buffer@^4.3.0:
ieee754 "^1.1.4"
isarray "^1.0.0"
-buffer@^5.2.1:
+buffer@^5.2.1, buffer@^5.5.0:
version "5.6.0"
resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786"
integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==
@@ -3070,10 +3358,6 @@ buffer@^5.2.1:
base64-js "^1.0.2"
ieee754 "^1.1.4"
-builtin-modules@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
-
builtin-status-codes@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
@@ -3165,26 +3449,12 @@ cache-base@^1.0.1:
union-value "^1.0.0"
unset-value "^1.0.0"
-caller-callsite@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134"
- integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=
- dependencies:
- callsites "^2.0.0"
-
caller-path@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f"
dependencies:
callsites "^0.2.0"
-caller-path@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4"
- integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=
- dependencies:
- caller-callsite "^2.0.0"
-
callsite@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20"
@@ -3193,11 +3463,6 @@ callsites@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca"
-callsites@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50"
- integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=
-
callsites@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.0.0.tgz#fb7eb569b72ad7a45812f93fd9430a3e410b3dd3"
@@ -3237,7 +3502,7 @@ camelcase@^4.0.0, camelcase@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
-camelcase@^5.0.0:
+camelcase@^5.0.0, camelcase@^5.3.1:
version "5.3.1"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
@@ -3341,7 +3606,7 @@ chalk@2.4.1:
escape-string-regexp "^1.0.5"
supports-color "^5.3.0"
-chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.4.1, chalk@^2.4.2:
+chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2:
version "2.4.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
@@ -3358,6 +3623,14 @@ chalk@^3.0.0:
ansi-styles "^4.1.0"
supports-color "^7.1.0"
+chalk@^4.0.0, chalk@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a"
+ integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==
+ dependencies:
+ ansi-styles "^4.1.0"
+ supports-color "^7.1.0"
+
change-case@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/change-case/-/change-case-3.0.2.tgz#fd48746cce02f03f0a672577d1d3a8dc2eceb037"
@@ -3397,11 +3670,6 @@ chardet@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.0.tgz#0bbe1355ac44d7a3ed4a925707c4ef70f8190f6c"
-chardet@^0.7.0:
- version "0.7.0"
- resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
- integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==
-
check-error@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82"
@@ -3416,17 +3684,33 @@ check-types@^8.0.3:
resolved "https://registry.yarnpkg.com/check-types/-/check-types-8.0.3.tgz#3356cca19c889544f2d7a95ed49ce508a0ecf552"
integrity sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ==
-cheerio@^1.0.0-rc.2:
- version "1.0.0-rc.2"
- resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.2.tgz#4b9f53a81b27e4d5dac31c0ffd0cfa03cc6830db"
+cheerio@^1.0.0-rc.3:
+ version "1.0.0-rc.3"
+ resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.3.tgz#094636d425b2e9c0f4eb91a46c05630c9a1a8bf6"
+ integrity sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==
dependencies:
css-select "~1.2.0"
- dom-serializer "~0.1.0"
+ dom-serializer "~0.1.1"
entities "~1.1.1"
htmlparser2 "^3.9.1"
lodash "^4.15.0"
parse5 "^3.0.1"
+chokidar@3.3.1:
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.3.1.tgz#c84e5b3d18d9a4d77558fef466b1bf16bbeb3450"
+ integrity sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg==
+ dependencies:
+ anymatch "~3.1.1"
+ braces "~3.0.2"
+ glob-parent "~5.1.0"
+ is-binary-path "~2.1.0"
+ is-glob "~4.0.1"
+ normalize-path "~3.0.0"
+ readdirp "~3.3.0"
+ optionalDependencies:
+ fsevents "~2.1.2"
+
chokidar@^1.6.1:
version "1.7.0"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468"
@@ -3442,7 +3726,7 @@ chokidar@^1.6.1:
optionalDependencies:
fsevents "^1.0.0"
-chokidar@^2.0.0, chokidar@^2.0.3, chokidar@^2.0.4, chokidar@^2.1.8:
+chokidar@^2.0.0, chokidar@^2.1.8:
version "2.1.8"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917"
integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==
@@ -3461,7 +3745,7 @@ chokidar@^2.0.0, chokidar@^2.0.3, chokidar@^2.0.4, chokidar@^2.1.8:
optionalDependencies:
fsevents "^1.2.7"
-chokidar@^3.4.1:
+chokidar@^3.0.0, chokidar@^3.4.1:
version "3.4.1"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.1.tgz#e905bdecf10eaa0a0b1db0c664481cc4cbc22ba1"
integrity sha512-TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g==
@@ -3556,7 +3840,7 @@ cli-boxes@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143"
-cli-cursor@^2.0.0, cli-cursor@^2.1.0:
+cli-cursor@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
dependencies:
@@ -3574,12 +3858,13 @@ cli-spinners@^2.2.0:
resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.4.0.tgz#c6256db216b878cfba4720e719cec7cf72685d7f"
integrity sha512-sJAofoarcm76ZGpuooaO0eDy8saEy+YoZBLjC4h8srt4jeBnkYeOgqxgsJQTpyt2LjI5PTfLJHSL+41Yu4fEJA==
-cli-truncate@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574"
+cli-truncate@2.1.0, cli-truncate@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7"
+ integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==
dependencies:
- slice-ansi "0.0.4"
- string-width "^1.0.1"
+ slice-ansi "^3.0.0"
+ string-width "^4.2.0"
cli-width@^2.0.0:
version "2.2.0"
@@ -3617,19 +3902,37 @@ cliui@^3.2.0:
strip-ansi "^3.0.1"
wrap-ansi "^2.0.0"
-cliui@^4.0.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49"
- integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==
+cliui@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5"
+ integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==
dependencies:
- string-width "^2.1.1"
- strip-ansi "^4.0.0"
- wrap-ansi "^2.0.0"
+ string-width "^3.1.0"
+ strip-ansi "^5.2.0"
+ wrap-ansi "^5.1.0"
+
+cliui@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1"
+ integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==
+ dependencies:
+ string-width "^4.2.0"
+ strip-ansi "^6.0.0"
+ wrap-ansi "^6.2.0"
clone-buffer@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58"
+clone-deep@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387"
+ integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==
+ dependencies:
+ is-plain-object "^2.0.4"
+ kind-of "^6.0.2"
+ shallow-clone "^3.0.0"
+
clone-stats@^0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1"
@@ -3756,7 +4059,12 @@ colors@0.5.x:
version "0.5.1"
resolved "https://registry.yarnpkg.com/colors/-/colors-0.5.1.tgz#7d0023eaeb154e8ee9fce75dcb923d0ed1667774"
-colors@^1.1.0, colors@~1.1.2:
+colors@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78"
+ integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==
+
+colors@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63"
@@ -3778,11 +4086,21 @@ commander@2.11.x, commander@~2.11.0:
version "2.11.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563"
-commander@^2.11.0, commander@^2.12.1, commander@^2.13.0, commander@^2.14.1, commander@^2.18.0, commander@^2.19.0, commander@^2.20.0, commander@^2.8.1, commander@^2.9.0:
+commander@^2.11.0, commander@^2.13.0, commander@^2.14.1, commander@^2.18.0, commander@^2.19.0, commander@^2.20.0:
version "2.20.3"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
+commander@^4.0.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
+ integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
+
+commander@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae"
+ integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==
+
commander@~2.8.1:
version "2.8.1"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4"
@@ -3793,14 +4111,24 @@ commondir@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
+compare-versions@^3.6.0:
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62"
+ integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==
+
component-bind@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1"
-component-emitter@1.2.1, component-emitter@^1.2.1:
+component-emitter@1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6"
+component-emitter@^1.2.1, component-emitter@~1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
+ integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==
+
component-inherit@0.0.3:
version "0.0.3"
resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143"
@@ -3826,8 +4154,9 @@ compression@^1.5.2, compression@^1.6.2:
concat-map@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+ integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
-concat-stream@1.6.2, concat-stream@^1.4.7, concat-stream@^1.5.0, concat-stream@^1.6.0:
+concat-stream@^1.4.7, concat-stream@^1.5.0, concat-stream@^1.6.0:
version "1.6.2"
resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
dependencies:
@@ -3854,17 +4183,23 @@ configstore@^3.0.0:
write-file-atomic "^2.0.0"
xdg-basedir "^3.0.0"
+confusing-browser-globals@^1.0.9:
+ version "1.0.9"
+ resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz#72bc13b483c0276801681871d4898516f8f54fdd"
+ integrity sha512-KbS1Y0jMtyPgIxjO7ZzMAuUpAKMt1SzCL9fsrKsX6b0zJPTaT0SiSPmewwVZg9UAO83HVIlEhZF84LIjZ0lmAw==
+
connect-history-api-fallback@^1.3.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz#b06873934bc5e344fef611a196a6faae0aee015a"
-connect@^3.6.0:
- version "3.6.5"
- resolved "https://registry.yarnpkg.com/connect/-/connect-3.6.5.tgz#fb8dde7ba0763877d0ec9df9dac0b4b40e72c7da"
+connect@^3.7.0:
+ version "3.7.0"
+ resolved "https://registry.yarnpkg.com/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8"
+ integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==
dependencies:
debug "2.6.9"
- finalhandler "1.0.6"
- parseurl "~1.3.2"
+ finalhandler "1.1.2"
+ parseurl "~1.3.3"
utils-merge "1.0.1"
console-browserify@^1.1.0:
@@ -3903,9 +4238,12 @@ content-type@1.0.4, content-type@~1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
-convert-source-map@^1.1.0, convert-source-map@^1.5.0, convert-source-map@^1.5.1:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5"
+convert-source-map@^1.1.0, convert-source-map@^1.5.0, convert-source-map@^1.5.1, 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==
+ dependencies:
+ safe-buffer "~5.1.1"
cookie-signature@1.0.6:
version "1.0.6"
@@ -3943,40 +4281,34 @@ copy-props@^2.0.1:
each-props "^1.3.0"
is-plain-object "^2.0.1"
-copy-to-clipboard@^3.0.8, copy-to-clipboard@^3.2.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.2.0.tgz#d2724a3ccbfed89706fac8a894872c979ac74467"
- integrity sha512-eOZERzvCmxS8HWzugj4Uxl8OJxa7T2k1Gi0X5qavwydHIfuSHq2dTD09LOg/XyGq4Zpb5IsR/2OJ5lbOegz78w==
+copy-to-clipboard@^3.2.0, copy-to-clipboard@^3.3.1:
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz#115aa1a9998ffab6196f93076ad6da3b913662ae"
+ integrity sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==
dependencies:
toggle-selection "^1.0.6"
-core-js-compat@^3.1.1:
- version "3.1.4"
- resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.1.4.tgz#e4d0c40fbd01e65b1d457980fe4112d4358a7408"
- integrity sha512-Z5zbO9f1d0YrJdoaQhphVAnKPimX92D6z8lCGphH89MNRxlL1prI9ExJPqVwP0/kgkQCv8c4GJGT8X16yUncOg==
+core-js-compat@^3.6.2:
+ version "3.6.5"
+ resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.5.tgz#2a51d9a4e25dfd6e690251aa81f99e3c05481f1c"
+ integrity sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==
dependencies:
- browserslist "^4.6.2"
- core-js-pure "3.1.4"
- semver "^6.1.1"
+ browserslist "^4.8.5"
+ semver "7.0.0"
-core-js-pure@3.1.4:
- version "3.1.4"
- resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.1.4.tgz#5fa17dc77002a169a3566cc48dc774d2e13e3769"
- integrity sha512-uJ4Z7iPNwiu1foygbcZYJsJs1jiXrTTCvxfLDXNhI/I+NHbSIEyr548y4fcsCEyWY0XgfAG/qqaunJ1SThHenA==
+core-js-pure@^3.0.0:
+ version "3.6.5"
+ resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.6.5.tgz#c79e75f5e38dbc85a662d91eea52b8256d53b813"
+ integrity sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA==
core-js@^1.0.0:
version "1.2.7"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636"
-core-js@^2.2.0, core-js@^2.4.0, core-js@^2.5.0:
+core-js@^2.4.0, core-js@^2.5.0:
version "2.5.7"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz#f972608ff0cead68b841a16a932d0b183791814e"
-core-js@^3.0.0:
- version "3.1.4"
- resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.1.4.tgz#3a2837fc48e582e1ae25907afcd6cf03b0cc7a07"
- integrity sha512-YNZN8lt82XIMLnLirj9MhKDFZHalwzzrL9YLt6eb0T5D0EDl4IQ90IGkua8mHbnxNrkj1d8hbdizMc0Qmg1WnQ==
-
core-util-is@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
@@ -4000,16 +4332,6 @@ cosmiconfig@^2.1.0, cosmiconfig@^2.1.1:
parse-json "^2.2.0"
require-from-string "^1.1.0"
-cosmiconfig@^5.0.2, cosmiconfig@^5.0.7:
- version "5.2.1"
- resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a"
- integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==
- dependencies:
- import-fresh "^2.0.0"
- is-directory "^0.3.1"
- js-yaml "^3.13.1"
- parse-json "^4.0.0"
-
cosmiconfig@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982"
@@ -4069,12 +4391,12 @@ create-react-context@^0.3.0:
gud "^1.0.0"
warning "^4.0.3"
-cross-env@^5.2.0:
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-5.2.0.tgz#6ecd4c015d5773e614039ee529076669b9d126f2"
+cross-env@^7.0.2:
+ version "7.0.2"
+ resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.2.tgz#bd5ed31339a93a3418ac4f3ca9ca3403082ae5f9"
+ integrity sha512-KZP/bMEOJEDCkDQAyRhu3RL2ZO/SUVrxQVI0G3YEQ+OLbRA3c6zgixe8Mq8a/z7+HKlNEjo8oiLUs8iRijY2Rw==
dependencies:
- cross-spawn "^6.0.5"
- is-windows "^1.0.0"
+ cross-spawn "^7.0.1"
cross-spawn@5.1.0, cross-spawn@^5.0.1, cross-spawn@^5.1.0:
version "5.1.0"
@@ -4084,7 +4406,7 @@ cross-spawn@5.1.0, cross-spawn@^5.0.1, cross-spawn@^5.1.0:
shebang-command "^1.2.0"
which "^1.2.9"
-cross-spawn@^6.0.0, cross-spawn@^6.0.5:
+cross-spawn@^6.0.5:
version "6.0.5"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
dependencies:
@@ -4094,6 +4416,15 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5:
shebang-command "^1.2.0"
which "^1.2.9"
+cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2:
+ version "7.0.3"
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
+ integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
+ dependencies:
+ path-key "^3.1.0"
+ shebang-command "^2.0.0"
+ which "^2.0.1"
+
crypto-browserify@^3.11.0:
version "3.12.0"
resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec"
@@ -4241,34 +4572,29 @@ d@1:
dependencies:
es5-ext "^0.10.9"
-damerau-levenshtein@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz#03191c432cb6eea168bb77f3a55ffdccb8978514"
+damerau-levenshtein@^1.0.6:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz#143c1641cb3d85c60c32329e26899adea8701791"
+ integrity sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==
dargs@5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/dargs/-/dargs-5.1.0.tgz#ec7ea50c78564cd36c9d5ec18f66329fade27829"
-date-fns@^1.27.2:
- version "1.29.0"
- resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.29.0.tgz#12e609cdcb935127311d04d33334e2960a2a54e6"
+date-format@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/date-format/-/date-format-2.1.0.tgz#31d5b5ea211cf5fd764cd38baf9d033df7e125cf"
+ integrity sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==
-date-format@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/date-format/-/date-format-2.0.0.tgz#7cf7b172f1ec564f0003b39ea302c5498fb98c8f"
- integrity sha512-M6UqVvZVgFYqZL1SfHsRGIQSz3ZL+qgbsV5Lp1Vj61LZVYuEwcMXYay7DRDtYs2HQQBK5hQtQ0fD9aEJ89V0LA==
+date-format@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/date-format/-/date-format-3.0.0.tgz#eb8780365c7d2b1511078fb491e6479780f3ad95"
+ integrity sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==
date-now@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
-dateformat@^1.0.6:
- version "1.0.12"
- resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.12.tgz#9f124b67594c937ff706932e4a642cca8dbbfee9"
- dependencies:
- get-stdin "^4.0.1"
- meow "^3.3.0"
-
dateformat@^2.0.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.2.0.tgz#4065e2013cf9fb916ddfd82efb506ad4c6769062"
@@ -4286,7 +4612,7 @@ debug@3.2.6, debug@^3.1.0:
dependencies:
ms "^2.1.1"
-debug@^4.0.1, debug@^4.1.0, debug@^4.1.1:
+debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@~4.1.0:
version "4.1.1"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==
@@ -4366,16 +4692,24 @@ deep-eql@^3.0.1:
dependencies:
type-detect "^4.0.0"
-deep-equal@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
+deep-equal@^1.0.1, deep-equal@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a"
+ integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==
+ dependencies:
+ is-arguments "^1.0.4"
+ is-date-object "^1.0.1"
+ is-regex "^1.0.4"
+ object-is "^1.0.1"
+ object-keys "^1.1.1"
+ regexp.prototype.flags "^1.2.0"
deep-extend@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
-deep-is@~0.1.3:
+deep-is@^0.1.3, deep-is@~0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
@@ -4492,12 +4826,6 @@ detab@^2.0.0:
dependencies:
repeat-string "^1.5.4"
-detect-file@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-0.1.0.tgz#4935dedfd9488648e006b0129566e9386711ea63"
- dependencies:
- fs-exists-sync "^0.1.0"
-
detect-file@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7"
@@ -4530,6 +4858,11 @@ detect-port@1.2.3:
address "^1.0.1"
debug "^2.6.0"
+devtools-protocol@0.0.781568:
+ version "0.0.781568"
+ resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.781568.tgz#4cdca90a952d2c77831096ff6cd32695d8715a04"
+ integrity sha512-9Uqnzy6m6zEStluH9iyJ3iHyaQziFnMnLeC8vK0eN6smiJmIx7+yB64d67C2lH/LZra+5cGscJAJsNXO+MdPMg==
+
di@^0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c"
@@ -4542,9 +4875,10 @@ diff-match-patch@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/diff-match-patch/-/diff-match-patch-1.0.4.tgz#6ac4b55237463761c4daf0dc603eb869124744b1"
-diff@3.5.0, diff@^3.2.0, diff@^3.5.0:
- version "3.5.0"
- resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12"
+diff@4.0.2, diff@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
+ integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
diffie-hellman@^5.0.0:
version "5.0.2"
@@ -4598,13 +4932,6 @@ doctoc@^1.4.0:
underscore "~1.8.3"
update-section "^0.3.0"
-doctrine@0.7.2:
- version "0.7.2"
- resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-0.7.2.tgz#7cb860359ba3be90e040b26b729ce4bfa654c523"
- dependencies:
- esutils "^1.1.6"
- isarray "0.0.1"
-
doctrine@1.5.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa"
@@ -4631,21 +4958,23 @@ dom-converter@~0.1:
dependencies:
utila "~0.3"
-dom-serialize@^2.2.0:
+dom-serialize@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b"
+ integrity sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=
dependencies:
custom-event "~1.0.0"
ent "~2.2.0"
extend "^3.0.0"
void-elements "^2.0.0"
-dom-serializer@0, dom-serializer@~0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82"
+dom-serializer@0, dom-serializer@~0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0"
+ integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==
dependencies:
- domelementtype "~1.1.1"
- entities "~1.1.1"
+ domelementtype "^1.3.0"
+ entities "^1.1.1"
dom-walk@^0.1.0:
version "0.1.1"
@@ -4659,10 +4988,6 @@ domelementtype@1, domelementtype@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2"
-domelementtype@~1.1.1:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b"
-
domhandler@2.1:
version "2.1.0"
resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.1.0.tgz#d2646f5e57f6c3bab11cf6cb05d3c0acf7412594"
@@ -4777,10 +5102,6 @@ electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.30, electron-to-chromium@
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.509.tgz#830fcb89cd66dc2984d18d794973b99e3f00584c"
integrity sha512-cN4lkjNRuTG8rtAqTOVgwpecEC2kbKA04PG6YijcKGHK/kD0xLjiqExcAOmLUwtXZRF8cBeam2I0VZcih919Ug==
-elegant-spinner@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e"
-
elliptic@^6.0.0:
version "6.4.0"
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df"
@@ -4798,11 +5119,21 @@ email-addresses@^3.0.1:
resolved "https://registry.yarnpkg.com/email-addresses/-/email-addresses-3.0.3.tgz#fc3c6952f68da24239914e982c8a7783bc2ed96d"
integrity sha512-kUlSC06PVvvjlMRpNIl3kR1NRXLEe86VQ7N0bQeaCZb2g+InShCeHQp/JvyYNTugMnRN2NvJhHlc3q12MWbbpg==
-emoji-regex@^7.0.1, emoji-regex@^7.0.2:
+emoji-regex@^7.0.1:
version "7.0.3"
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==
+emoji-regex@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
+ integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
+
+emoji-regex@^9.0.0:
+ version "9.0.0"
+ resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.0.0.tgz#48a2309cc8a1d2e9d23bc6a67c39b63032e76ea4"
+ integrity sha512-6p1NII1Vm62wni/VR/cUMauVQoxmLVb9csqQlvLz+hO2gk8U2UYDfXHQSUYIBKmZwAKz867IDqG7B+u0mj+M6w==
+
emoji-regex@~6.1.0:
version "6.1.3"
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-6.1.3.tgz#ec79a3969b02d2ecf2b72254279bf99bc7a83932"
@@ -4816,7 +5147,7 @@ emojis-list@^3.0.0:
resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78"
integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==
-encodeurl@~1.0.1, encodeurl@~1.0.2:
+encodeurl@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
@@ -4826,49 +5157,52 @@ encoding@^0.1.11:
dependencies:
iconv-lite "~0.4.13"
-end-of-stream@^1.0.0, end-of-stream@^1.1.0:
+end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1:
version "1.4.4"
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
dependencies:
once "^1.4.0"
-engine.io-client@~3.2.0:
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.2.1.tgz#6f54c0475de487158a1a7c77d10178708b6add36"
+engine.io-client@~3.4.0:
+ version "3.4.3"
+ resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.4.3.tgz#192d09865403e3097e3575ebfeb3861c4d01a66c"
+ integrity sha512-0NGY+9hioejTEJCaSJZfWZLk4FPI9dN+1H1C4+wj2iuFba47UgZbJzfWs4aNFajnX/qAaYKbe2lLTfEEWzCmcw==
dependencies:
- component-emitter "1.2.1"
+ component-emitter "~1.3.0"
component-inherit "0.0.3"
- debug "~3.1.0"
- engine.io-parser "~2.1.1"
+ debug "~4.1.0"
+ engine.io-parser "~2.2.0"
has-cors "1.1.0"
indexof "0.0.1"
parseqs "0.0.5"
parseuri "0.0.5"
- ws "~3.3.1"
+ ws "~6.1.0"
xmlhttprequest-ssl "~1.5.4"
yeast "0.1.2"
-engine.io-parser@~2.1.0, engine.io-parser@~2.1.1:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.2.tgz#4c0f4cff79aaeecbbdcfdea66a823c6085409196"
+engine.io-parser@~2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.2.0.tgz#312c4894f57d52a02b420868da7b5c1c84af80ed"
+ integrity sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w==
dependencies:
after "0.8.2"
arraybuffer.slice "~0.0.7"
base64-arraybuffer "0.1.5"
- blob "0.0.4"
+ blob "0.0.5"
has-binary2 "~1.0.2"
-engine.io@~3.2.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.2.0.tgz#54332506f42f2edc71690d2f2a42349359f3bf7d"
+engine.io@~3.4.0:
+ version "3.4.2"
+ resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.4.2.tgz#8fc84ee00388e3e228645e0a7d3dfaeed5bd122c"
+ integrity sha512-b4Q85dFkGw+TqgytGPrGgACRUhsdKc9S9ErRAXpPGy/CXKs4tYoHDkvIRdsseAF7NjfVwjRFIn6KTnbw7LwJZg==
dependencies:
accepts "~1.3.4"
- base64id "1.0.0"
+ base64id "2.0.0"
cookie "0.3.1"
- debug "~3.1.0"
- engine.io-parser "~2.1.0"
- ws "~3.3.1"
+ debug "~4.1.0"
+ engine.io-parser "~2.2.0"
+ ws "^7.1.2"
enhanced-resolve@^3.4.0:
version "3.4.1"
@@ -4879,7 +5213,7 @@ enhanced-resolve@^3.4.0:
object-assign "^4.0.1"
tapable "^0.2.7"
-enhanced-resolve@^4.1.0, enhanced-resolve@^4.3.0:
+enhanced-resolve@^4.1.1, enhanced-resolve@^4.3.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz#3b806f3bfafc1ec7de69551ef93cca46c1704126"
integrity sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==
@@ -4888,6 +5222,13 @@ enhanced-resolve@^4.1.0, enhanced-resolve@^4.3.0:
memory-fs "^0.5.0"
tapable "^1.0.0"
+enquirer@^2.3.5:
+ version "2.3.6"
+ resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d"
+ integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==
+ dependencies:
+ ansi-colors "^4.1.1"
+
ent@~2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d"
@@ -4896,58 +5237,68 @@ entities@^1.1.1, entities@~1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0"
-enzyme-adapter-react-16@^1.14.0:
- version "1.14.0"
- resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.14.0.tgz#204722b769172bcf096cb250d33e6795c1f1858f"
- integrity sha512-7PcOF7pb4hJUvjY7oAuPGpq3BmlCig3kxXGi2kFx0YzJHppqX1K8IIV9skT1IirxXlu8W7bneKi+oQ10QRnhcA==
+enzyme-adapter-react-16@^1.15.2:
+ version "1.15.2"
+ resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.2.tgz#b16db2f0ea424d58a808f9df86ab6212895a4501"
+ integrity sha512-SkvDrb8xU3lSxID8Qic9rB8pvevDbLybxPK6D/vW7PrT0s2Cl/zJYuXvsd1EBTz0q4o3iqG3FJhpYz3nUNpM2Q==
dependencies:
- enzyme-adapter-utils "^1.12.0"
+ enzyme-adapter-utils "^1.13.0"
+ enzyme-shallow-equal "^1.0.1"
has "^1.0.3"
object.assign "^4.1.0"
- object.values "^1.1.0"
+ object.values "^1.1.1"
prop-types "^15.7.2"
- react-is "^16.8.6"
+ react-is "^16.12.0"
react-test-renderer "^16.0.0-0"
semver "^5.7.0"
-enzyme-adapter-utils@^1.12.0:
- version "1.12.0"
- resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.12.0.tgz#96e3730d76b872f593e54ce1c51fa3a451422d93"
- integrity sha512-wkZvE0VxcFx/8ZsBw0iAbk3gR1d9hK447ebnSYBf95+r32ezBq+XDSAvRErkc4LZosgH8J7et7H7/7CtUuQfBA==
+enzyme-adapter-utils@^1.13.0:
+ version "1.13.0"
+ resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.13.0.tgz#01c885dde2114b4690bf741f8dc94cee3060eb78"
+ integrity sha512-YuEtfQp76Lj5TG1NvtP2eGJnFKogk/zT70fyYHXK2j3v6CtuHqc8YmgH/vaiBfL8K1SgVVbQXtTcgQZFwzTVyQ==
dependencies:
- airbnb-prop-types "^2.13.2"
- function.prototype.name "^1.1.0"
+ airbnb-prop-types "^2.15.0"
+ function.prototype.name "^1.1.2"
object.assign "^4.1.0"
- object.fromentries "^2.0.0"
+ object.fromentries "^2.0.2"
prop-types "^15.7.2"
- semver "^5.6.0"
+ semver "^5.7.1"
-enzyme@^3.10.0:
- version "3.10.0"
- resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.10.0.tgz#7218e347c4a7746e133f8e964aada4a3523452f6"
- integrity sha512-p2yy9Y7t/PFbPoTvrWde7JIYB2ZyGC+NgTNbVEGvZ5/EyoYSr9aG/2rSbVvyNvMHEhw9/dmGUJHWtfQIEiX9pg==
+enzyme-shallow-equal@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.1.tgz#7afe03db3801c9b76de8440694096412a8d9d49e"
+ integrity sha512-hGA3i1so8OrYOZSM9whlkNmVHOicJpsjgTzC+wn2JMJXhq1oO4kA4bJ5MsfzSIcC71aLDKzJ6gZpIxrqt3QTAQ==
dependencies:
- array.prototype.flat "^1.2.1"
- cheerio "^1.0.0-rc.2"
- function.prototype.name "^1.1.0"
has "^1.0.3"
- html-element-map "^1.0.0"
- is-boolean-object "^1.0.0"
- is-callable "^1.1.4"
- is-number-object "^1.0.3"
- is-regex "^1.0.4"
- is-string "^1.0.4"
+ object-is "^1.0.2"
+
+enzyme@^3.11.0:
+ version "3.11.0"
+ resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.11.0.tgz#71d680c580fe9349f6f5ac6c775bc3e6b7a79c28"
+ integrity sha512-Dw8/Gs4vRjxY6/6i9wU0V+utmQO9kvh9XLnz3LIudviOnVYDEe2ec+0k+NQoMamn1VrjKgCUOWj5jG/5M5M0Qw==
+ dependencies:
+ array.prototype.flat "^1.2.3"
+ cheerio "^1.0.0-rc.3"
+ enzyme-shallow-equal "^1.0.1"
+ function.prototype.name "^1.1.2"
+ has "^1.0.3"
+ html-element-map "^1.2.0"
+ is-boolean-object "^1.0.1"
+ is-callable "^1.1.5"
+ is-number-object "^1.0.4"
+ is-regex "^1.0.5"
+ is-string "^1.0.5"
is-subset "^0.1.1"
lodash.escape "^4.0.1"
lodash.isequal "^4.5.0"
- object-inspect "^1.6.0"
- object-is "^1.0.1"
+ object-inspect "^1.7.0"
+ object-is "^1.0.2"
object.assign "^4.1.0"
- object.entries "^1.0.4"
- object.values "^1.0.4"
- raf "^3.4.0"
+ object.entries "^1.1.1"
+ object.values "^1.1.1"
+ raf "^3.4.1"
rst-selector-parser "^2.2.3"
- string.prototype.trim "^1.1.2"
+ string.prototype.trim "^1.2.1"
errno@^0.1.3, errno@~0.1.7:
version "0.1.7"
@@ -4962,7 +5313,7 @@ error-ex@^1.2.0, error-ex@^1.3.1:
dependencies:
is-arrayish "^0.2.1"
-es-abstract@^1.10.0, es-abstract@^1.11.0, es-abstract@^1.12.0, es-abstract@^1.13.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.5, es-abstract@^1.5.0, es-abstract@^1.7.0:
+es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.4, es-abstract@^1.17.5:
version "1.17.6"
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.6.tgz#9142071707857b2cacc7b89ecb670316c3e2d52a"
integrity sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==
@@ -4979,6 +5330,24 @@ es-abstract@^1.10.0, es-abstract@^1.11.0, es-abstract@^1.12.0, es-abstract@^1.13
string.prototype.trimend "^1.0.1"
string.prototype.trimstart "^1.0.1"
+es-array-method-boxes-properly@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e"
+ integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==
+
+es-get-iterator@^1.0.2:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.0.tgz#bb98ad9d6d63b31aacdc8f89d5d0ee57bcb5b4c8"
+ integrity sha512-UfrmHuWQlNMTs35e1ypnvikg6jCz3SK8v8ImvmDsh36fCVUR1MqoFDiyn0/k52C8NqO3YsO8Oe0azeesNuqSsQ==
+ dependencies:
+ es-abstract "^1.17.4"
+ has-symbols "^1.0.1"
+ is-arguments "^1.0.4"
+ is-map "^2.0.1"
+ is-set "^2.0.1"
+ is-string "^1.0.5"
+ isarray "^2.0.5"
+
es-to-primitive@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a"
@@ -5014,16 +5383,6 @@ es6-map@^0.1.3:
es6-symbol "~3.1.1"
event-emitter "~0.3.5"
-es6-promise@^4.0.3:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.1.1.tgz#8811e90915d9a0dba36274f0b242dbda78f9c92a"
-
-es6-promisify@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203"
- dependencies:
- es6-promise "^4.0.3"
-
es6-set@~0.1.5:
version "0.1.5"
resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1"
@@ -5059,21 +5418,10 @@ escape-html@~1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
-escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.4, escape-string-regexp@^1.0.5:
+escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
-escodegen@1.8.x:
- version "1.8.1"
- resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018"
- dependencies:
- esprima "^2.7.1"
- estraverse "^1.9.1"
- esutils "^2.0.2"
- optionator "^0.8.1"
- optionalDependencies:
- source-map "~0.2.0"
-
escope@^3.6.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3"
@@ -5089,14 +5437,14 @@ eslint-config-airbnb-base@^12.1.0:
dependencies:
eslint-restricted-globals "^0.1.1"
-eslint-config-airbnb-base@^13.1.0:
- version "13.1.0"
- resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-13.1.0.tgz#b5a1b480b80dfad16433d6c4ad84e6605052c05c"
- integrity sha512-XWwQtf3U3zIoKO1BbHh6aUhJZQweOwSt4c2JrPDg9FP3Ltv3+YfEv7jIDB8275tVnO/qOHbfuYg3kzw6Je7uWw==
+eslint-config-airbnb-base@^14.2.0:
+ version "14.2.0"
+ resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.0.tgz#fe89c24b3f9dc8008c9c0d0d88c28f95ed65e9c4"
+ integrity sha512-Snswd5oC6nJaevs3nZoLSTvGJBvzTfnBqOIArkf3cbyTyq9UD79wOk8s+RiL6bhca0p/eRO6veczhf6A/7Jy8Q==
dependencies:
- eslint-restricted-globals "^0.1.1"
+ confusing-browser-globals "^1.0.9"
object.assign "^4.1.0"
- object.entries "^1.0.4"
+ object.entries "^1.1.2"
eslint-config-airbnb@16.1.0:
version "16.1.0"
@@ -5104,19 +5452,19 @@ eslint-config-airbnb@16.1.0:
dependencies:
eslint-config-airbnb-base "^12.1.0"
-eslint-config-airbnb@^17.1.0:
- version "17.1.0"
- resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-17.1.0.tgz#3964ed4bc198240315ff52030bf8636f42bc4732"
- integrity sha512-R9jw28hFfEQnpPau01NO5K/JWMGLi6aymiF6RsnMURjTk+MqZKllCqGK/0tOvHkPi/NWSSOU2Ced/GX++YxLnw==
+eslint-config-airbnb@^18.2.0:
+ version "18.2.0"
+ resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-18.2.0.tgz#8a82168713effce8fc08e10896a63f1235499dcd"
+ integrity sha512-Fz4JIUKkrhO0du2cg5opdyPKQXOI2MvF8KUvN2710nJMT6jaRUpRE2swrJftAjVGL7T1otLM5ieo5RqS1v9Udg==
dependencies:
- eslint-config-airbnb-base "^13.1.0"
+ eslint-config-airbnb-base "^14.2.0"
object.assign "^4.1.0"
- object.entries "^1.0.4"
+ object.entries "^1.1.2"
-eslint-config-prettier@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-4.1.0.tgz#181364895899fff9fd3605fecb5c4f20e7d5f395"
- integrity sha512-zILwX9/Ocz4SV2vX7ox85AsrAgXV3f2o2gpIicdMIOra48WYqgUnWNH/cR/iHtmD2Vb3dLSC3LiEJnS05Gkw7w==
+eslint-config-prettier@^6.11.0:
+ version "6.11.0"
+ resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.11.0.tgz#f6d2238c1290d01c859a8b5c1f7d352a0b0da8b1"
+ integrity sha512-oB8cpLWSAjOVFEJhhyMZh6NOEOtBVziaqdDQ86+qhDHFbZXoRTM7pNSvFRfW/W/L/LrQ38C99J5CGuRBBzBsdA==
dependencies:
get-stdin "^6.0.0"
@@ -5132,81 +5480,97 @@ eslint-config-react-tools@^1.2.3:
eslint-plugin-jsx-a11y "^6.0.3"
eslint-plugin-react "^7.7.0"
-eslint-import-resolver-node@^0.3.2:
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a"
- integrity sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==
+eslint-import-resolver-node@^0.3.3:
+ version "0.3.4"
+ resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz#85ffa81942c25012d8231096ddf679c03042c717"
+ integrity sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==
dependencies:
debug "^2.6.9"
- resolve "^1.5.0"
+ resolve "^1.13.1"
-eslint-module-utils@^2.3.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.3.0.tgz#546178dab5e046c8b562bbb50705e2456d7bda49"
- integrity sha512-lmDJgeOOjk8hObTysjqH7wyMi+nsHwwvfBykwfhjR1LNdd7C2uFJBvx4OpWYpXOw4df1yE1cDEVd1yLHitk34w==
+eslint-module-utils@^2.6.0:
+ version "2.6.0"
+ resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6"
+ integrity sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==
dependencies:
- debug "^2.6.8"
+ debug "^2.6.9"
pkg-dir "^2.0.0"
eslint-plugin-babel@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/eslint-plugin-babel/-/eslint-plugin-babel-4.1.2.tgz#79202a0e35757dd92780919b2336f1fa2fe53c1e"
-eslint-plugin-import@^2.16.0, eslint-plugin-import@^2.9.0:
- version "2.16.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.16.0.tgz#97ac3e75d0791c4fac0e15ef388510217be7f66f"
- integrity sha512-z6oqWlf1x5GkHIFgrSvtmudnqM6Q60KM4KvpWi5ubonMjycLjndvd5+8VAZIsTlHC03djdgJuyKG6XO577px6A==
+eslint-plugin-import@^2.22.0, eslint-plugin-import@^2.9.0:
+ version "2.22.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.22.0.tgz#92f7736fe1fde3e2de77623c838dd992ff5ffb7e"
+ integrity sha512-66Fpf1Ln6aIS5Gr/55ts19eUuoDhAbZgnr6UxK5hbDx6l/QgQgx61AePq+BV4PP2uXQFClgMVzep5zZ94qqsxg==
dependencies:
+ array-includes "^3.1.1"
+ array.prototype.flat "^1.2.3"
contains-path "^0.1.0"
debug "^2.6.9"
doctrine "1.5.0"
- eslint-import-resolver-node "^0.3.2"
- eslint-module-utils "^2.3.0"
+ eslint-import-resolver-node "^0.3.3"
+ eslint-module-utils "^2.6.0"
has "^1.0.3"
- lodash "^4.17.11"
minimatch "^3.0.4"
+ object.values "^1.1.1"
read-pkg-up "^2.0.0"
- resolve "^1.9.0"
+ resolve "^1.17.0"
+ tsconfig-paths "^3.9.0"
-eslint-plugin-jsx-a11y@^6.0.3, eslint-plugin-jsx-a11y@^6.2.1:
- version "6.2.1"
- resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.1.tgz#4ebba9f339b600ff415ae4166e3e2e008831cf0c"
- integrity sha512-cjN2ObWrRz0TTw7vEcGQrx+YltMvZoOEx4hWU8eEERDnBIU00OTq7Vr+jA7DFKxiwLNv4tTh5Pq2GUNEa8b6+w==
+eslint-plugin-jsx-a11y@^6.0.3, eslint-plugin-jsx-a11y@^6.3.1:
+ version "6.3.1"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.3.1.tgz#99ef7e97f567cc6a5b8dd5ab95a94a67058a2660"
+ integrity sha512-i1S+P+c3HOlBJzMFORRbC58tHa65Kbo8b52/TwCwSKLohwvpfT5rm2GjGWzOHTEuq4xxf2aRlHHTtmExDQOP+g==
dependencies:
- aria-query "^3.0.0"
- array-includes "^3.0.3"
+ "@babel/runtime" "^7.10.2"
+ aria-query "^4.2.2"
+ array-includes "^3.1.1"
ast-types-flow "^0.0.7"
- axobject-query "^2.0.2"
- damerau-levenshtein "^1.0.4"
- emoji-regex "^7.0.2"
+ axe-core "^3.5.4"
+ axobject-query "^2.1.2"
+ damerau-levenshtein "^1.0.6"
+ emoji-regex "^9.0.0"
has "^1.0.3"
- jsx-ast-utils "^2.0.1"
+ jsx-ast-utils "^2.4.1"
+ language-tags "^1.0.5"
-eslint-plugin-mocha@^5.3.0:
- version "5.3.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-mocha/-/eslint-plugin-mocha-5.3.0.tgz#cf3eb18ae0e44e433aef7159637095a7cb19b15b"
- integrity sha512-3uwlJVLijjEmBeNyH60nzqgA1gacUWLUmcKV8PIGNvj1kwP/CTgAWQHn2ayyJVwziX+KETkr9opNwT1qD/RZ5A==
+eslint-plugin-mocha@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-mocha/-/eslint-plugin-mocha-7.0.1.tgz#b2e9e8ebef7836f999a83f8bab25d0e0c05f0d28"
+ integrity sha512-zkQRW9UigRaayGm/pK9TD5RjccKXSgQksNtpsXbG9b6L5I+jNx7m98VUbZ4w1H1ArlNA+K7IOH+z8TscN6sOYg==
dependencies:
- ramda "^0.26.1"
+ eslint-utils "^2.0.0"
+ ramda "^0.27.0"
+
+eslint-plugin-react-hooks@^4.0.8:
+ version "4.0.8"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.0.8.tgz#a9b1e3d57475ccd18276882eff3d6cba00da7a56"
+ integrity sha512-6SSb5AiMCPd8FDJrzah+Z4F44P2CdOaK026cXFV+o/xSRzfOiV1FNFeLl2z6xm3yqWOQEZ5OfVgiec90qV2xrQ==
-eslint-plugin-react@^7.12.4, eslint-plugin-react@^7.7.0:
- version "7.12.4"
- resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.12.4.tgz#b1ecf26479d61aee650da612e425c53a99f48c8c"
- integrity sha512-1puHJkXJY+oS1t467MjbqjvX53uQ05HXwjqDgdbGBqf5j9eeydI54G3KwiJmWciQ0HTBacIKw2jgwSBSH3yfgQ==
+eslint-plugin-react@^7.20.4, eslint-plugin-react@^7.7.0:
+ version "7.20.4"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.20.4.tgz#c14d2631221ec694ddd84557d7152f44b66e4aa0"
+ integrity sha512-y4DOQ0LrzuDQFEAnYFGjJMRHQQqfTco02qiWI00eGQYikHTzC15S5aRHGWSffnThv8sBpsmFBLky3K5keniAJg==
dependencies:
- array-includes "^3.0.3"
+ array-includes "^3.1.1"
+ array.prototype.flatmap "^1.2.3"
doctrine "^2.1.0"
has "^1.0.3"
- jsx-ast-utils "^2.0.1"
- object.fromentries "^2.0.0"
- prop-types "^15.6.2"
- resolve "^1.9.0"
+ jsx-ast-utils "^2.4.1"
+ object.entries "^1.1.2"
+ object.fromentries "^2.0.2"
+ object.values "^1.1.1"
+ prop-types "^15.7.2"
+ resolve "^1.17.0"
+ string.prototype.matchall "^4.0.2"
eslint-restricted-globals@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz#35f0d5cbc64c2e3ed62e93b4b1a7af05ba7ed4d7"
-eslint-scope@3.7.1, eslint-scope@^3.7.1, eslint-scope@~3.7.1:
+eslint-scope@^3.7.1, eslint-scope@~3.7.1:
version "3.7.1"
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8"
dependencies:
@@ -5221,14 +5585,25 @@ eslint-scope@^4.0.3:
esrecurse "^4.1.0"
estraverse "^4.1.1"
-eslint-utils@^1.3.1:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.3.1.tgz#9a851ba89ee7c460346f97cf8939c7298827e512"
- integrity sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q==
+eslint-scope@^5.0.0, eslint-scope@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.0.tgz#d0f971dfe59c69e0cada684b23d49dbf82600ce5"
+ integrity sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==
+ dependencies:
+ esrecurse "^4.1.0"
+ estraverse "^4.1.1"
-eslint-visitor-keys@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d"
+eslint-utils@^2.0.0, eslint-utils@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27"
+ integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==
+ dependencies:
+ eslint-visitor-keys "^1.1.0"
+
+eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e"
+ integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
eslint@^4.19.1:
version "4.19.1"
@@ -5273,47 +5648,47 @@ eslint@^4.19.1:
table "4.0.2"
text-table "~0.2.0"
-eslint@^5.15.2:
- version "5.15.2"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.15.2.tgz#0237bbb2362f89f4effef2f191eb0fea5279c0a5"
- integrity sha512-I8VM4SILpMwUvsRt83bQVwIRQAJ2iPMXun1FVZ/lV1OHklH2tJaXqoDnNzdiFc6bnCtGKXvQIQNP3kj1eMskSw==
+eslint@^7.5.0:
+ version "7.5.0"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.5.0.tgz#9ecbfad62216d223b82ac9ffea7ef3444671d135"
+ integrity sha512-vlUP10xse9sWt9SGRtcr1LAC67BENcQMFeV+w5EvLEoFe3xJ8cF1Skd0msziRx/VMC+72B4DxreCE+OR12OA6Q==
dependencies:
"@babel/code-frame" "^7.0.0"
- ajv "^6.9.1"
- chalk "^2.1.0"
- cross-spawn "^6.0.5"
+ ajv "^6.10.0"
+ chalk "^4.0.0"
+ cross-spawn "^7.0.2"
debug "^4.0.1"
doctrine "^3.0.0"
- eslint-scope "^4.0.3"
- eslint-utils "^1.3.1"
- eslint-visitor-keys "^1.0.0"
- espree "^5.0.1"
- esquery "^1.0.1"
+ enquirer "^2.3.5"
+ eslint-scope "^5.1.0"
+ eslint-utils "^2.1.0"
+ eslint-visitor-keys "^1.3.0"
+ espree "^7.2.0"
+ esquery "^1.2.0"
esutils "^2.0.2"
file-entry-cache "^5.0.1"
functional-red-black-tree "^1.0.1"
- glob "^7.1.2"
- globals "^11.7.0"
+ glob-parent "^5.0.0"
+ globals "^12.1.0"
ignore "^4.0.6"
import-fresh "^3.0.0"
imurmurhash "^0.1.4"
- inquirer "^6.2.2"
- js-yaml "^3.12.0"
+ is-glob "^4.0.0"
+ js-yaml "^3.13.1"
json-stable-stringify-without-jsonify "^1.0.1"
- levn "^0.3.0"
- lodash "^4.17.11"
+ levn "^0.4.1"
+ lodash "^4.17.19"
minimatch "^3.0.4"
- mkdirp "^0.5.1"
natural-compare "^1.4.0"
- optionator "^0.8.2"
- path-is-inside "^1.0.2"
+ optionator "^0.9.1"
progress "^2.0.0"
- regexpp "^2.0.1"
- semver "^5.5.1"
- strip-ansi "^4.0.0"
- strip-json-comments "^2.0.1"
+ regexpp "^3.1.0"
+ semver "^7.2.1"
+ strip-ansi "^6.0.0"
+ strip-json-comments "^3.1.0"
table "^5.2.3"
text-table "^0.2.0"
+ v8-compile-cache "^2.0.3"
espree@^3.5.4:
version "3.5.4"
@@ -5322,16 +5697,16 @@ espree@^3.5.4:
acorn "^5.5.0"
acorn-jsx "^3.0.0"
-espree@^5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz#5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a"
- integrity sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==
+espree@^7.2.0:
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/espree/-/espree-7.2.0.tgz#1c263d5b513dbad0ac30c4991b93ac354e948d69"
+ integrity sha512-H+cQ3+3JYRMEIOl87e7QdHX70ocly5iW4+dttuR8iYSPr/hXKFb+7dBsZ7+u1adC4VrnPlTkv0+OwuPnDop19g==
dependencies:
- acorn "^6.0.7"
- acorn-jsx "^5.0.0"
- eslint-visitor-keys "^1.0.0"
+ acorn "^7.3.1"
+ acorn-jsx "^5.2.0"
+ eslint-visitor-keys "^1.3.0"
-esprima@2.7.x, esprima@^2.6.0, esprima@^2.7.1:
+esprima@^2.6.0:
version "2.7.3"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581"
@@ -5339,12 +5714,12 @@ esprima@^4.0.0, esprima@~4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804"
-esquery@^1.0.0, esquery@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708"
- integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==
+esquery@^1.0.0, esquery@^1.2.0:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57"
+ integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==
dependencies:
- estraverse "^4.0.0"
+ estraverse "^5.1.0"
esrecurse@^4.1.0:
version "4.2.0"
@@ -5353,19 +5728,16 @@ esrecurse@^4.1.0:
estraverse "^4.1.0"
object-assign "^4.0.1"
-estraverse@^1.9.1:
- version "1.9.3"
- resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44"
-
-estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1:
+estraverse@^4.1.0, estraverse@^4.1.1:
version "4.2.0"
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
-esutils@^1.1.6:
- version "1.1.6"
- resolved "https://registry.yarnpkg.com/esutils/-/esutils-1.1.6.tgz#c01ccaa9ae4b897c6d0c3e210ae52f3c7a844375"
+estraverse@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642"
+ integrity sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==
-esutils@^2.0.0, esutils@^2.0.2:
+esutils@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
@@ -5380,9 +5752,10 @@ event-emitter@~0.3.5:
d "1"
es5-ext "~0.10.14"
-eventemitter3@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.0.tgz#090b4d6cdbd645ed10bf750d4b5407942d7ba163"
+eventemitter3@^4.0.0:
+ version "4.0.4"
+ resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384"
+ integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==
events@^3.0.0:
version "3.2.0"
@@ -5426,18 +5799,20 @@ execa@^0.8.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"
- integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==
+execa@^4.0.1:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-4.0.3.tgz#0a34dabbad6d66100bd6f2c576c8669403f317f2"
+ integrity sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A==
dependencies:
- cross-spawn "^6.0.0"
- get-stream "^4.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"
+ cross-spawn "^7.0.0"
+ get-stream "^5.0.0"
+ human-signals "^1.1.1"
+ is-stream "^2.0.0"
+ merge-stream "^2.0.0"
+ npm-run-path "^4.0.0"
+ onetime "^5.1.0"
+ signal-exit "^3.0.2"
+ strip-final-newline "^2.0.0"
exenv@^1.2.1, exenv@^1.2.2:
version "1.2.2"
@@ -5467,12 +5842,6 @@ expand-range@^1.8.1:
dependencies:
fill-range "^2.1.0"
-expand-tilde@^1.2.2:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-1.2.2.tgz#0b81eba897e5a3d31d1c3d102f8f01441e559449"
- dependencies:
- os-homedir "^1.0.1"
-
expand-tilde@^2.0.0, expand-tilde@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502"
@@ -5541,15 +5910,6 @@ external-editor@^2.0.4:
iconv-lite "^0.4.17"
tmp "^0.0.33"
-external-editor@^3.0.3:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz#5866db29a97826dbe4bf3afd24070ead9ea43a27"
- integrity sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==
- dependencies:
- chardet "^0.7.0"
- 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"
@@ -5597,14 +5957,16 @@ extract-text-webpack-plugin@^3.0.1:
schema-utils "^0.3.0"
webpack-sources "^1.0.1"
-extract-zip@^1.6.6:
- version "1.6.7"
- resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.7.tgz#a840b4b8af6403264c8db57f4f1a74333ef81fe9"
+extract-zip@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a"
+ integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==
dependencies:
- concat-stream "1.6.2"
- debug "2.6.9"
- mkdirp "0.5.1"
- yauzl "2.4.1"
+ debug "^4.1.1"
+ get-stream "^5.1.0"
+ yauzl "^2.10.0"
+ optionalDependencies:
+ "@types/yauzl" "^2.9.1"
faker@^4.1.0:
version "4.1.0"
@@ -5689,12 +6051,6 @@ fbjs@^0.8.0:
setimmediate "^1.0.5"
ua-parser-js "^0.7.18"
-fd-slicer@~1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65"
- dependencies:
- pend "~1.2.0"
-
fd-slicer@~1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e"
@@ -5706,19 +6062,19 @@ figgy-pudding@^3.5.1:
resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790"
integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==
-figures@^1.7.0:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
- dependencies:
- escape-string-regexp "^1.0.5"
- object-assign "^4.1.0"
-
figures@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
dependencies:
escape-string-regexp "^1.0.5"
+figures@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af"
+ integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==
+ dependencies:
+ escape-string-regexp "^1.0.5"
+
file-entry-cache@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361"
@@ -5820,23 +6176,11 @@ fill-range@^4.0.0:
fill-range@^7.0.1:
version "7.0.1"
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
- integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
- dependencies:
- to-regex-range "^5.0.1"
-
-finalhandler@1.0.6:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.0.6.tgz#007aea33d1a4d3e42017f624848ad58d212f814f"
+ integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
dependencies:
- debug "2.6.9"
- encodeurl "~1.0.1"
- escape-html "~1.0.3"
- on-finished "~2.3.0"
- parseurl "~1.3.2"
- statuses "~1.3.1"
- unpipe "~1.0.0"
+ to-regex-range "^5.0.1"
-finalhandler@~1.1.2:
+finalhandler@1.1.2, finalhandler@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d"
integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==
@@ -5875,9 +6219,13 @@ find-cache-dir@^3.3.1:
make-dir "^3.0.2"
pkg-dir "^4.1.0"
-find-parent-dir@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.0.tgz#33c44b429ab2b2f0646299c5f9f718f376ff8d54"
+find-up@4.1.0, find-up@^4.0.0, find-up@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
+ integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
+ dependencies:
+ locate-path "^5.0.0"
+ path-exists "^4.0.0"
find-up@^1.0.0:
version "1.1.2"
@@ -5898,15 +6246,14 @@ find-up@^3.0.0:
dependencies:
locate-path "^3.0.0"
-find-up@^4.0.0, find-up@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
- integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
+find-versions@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-3.2.0.tgz#10297f98030a786829681690545ef659ed1d254e"
+ integrity sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==
dependencies:
- locate-path "^5.0.0"
- path-exists "^4.0.0"
+ semver-regex "^2.0.0"
-findup-sync@2.0.0, findup-sync@^2.0.0:
+findup-sync@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-2.0.0.tgz#9326b1488c22d1a6088650a86901b2d9a90a2cbc"
dependencies:
@@ -5915,14 +6262,25 @@ findup-sync@2.0.0, findup-sync@^2.0.0:
micromatch "^3.0.4"
resolve-dir "^1.0.1"
-findup-sync@^0.4.0:
- version "0.4.3"
- resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.4.3.tgz#40043929e7bc60adf0b7f4827c4c6e75a0deca12"
+findup-sync@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1"
+ integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==
dependencies:
- detect-file "^0.1.0"
- is-glob "^2.0.1"
- micromatch "^2.3.7"
- resolve-dir "^0.1.0"
+ detect-file "^1.0.0"
+ is-glob "^4.0.0"
+ micromatch "^3.0.4"
+ resolve-dir "^1.0.1"
+
+findup-sync@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-4.0.0.tgz#956c9cdde804052b881b428512905c4a5f2cdef0"
+ integrity sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==
+ dependencies:
+ detect-file "^1.0.0"
+ is-glob "^4.0.0"
+ micromatch "^4.0.2"
+ resolve-dir "^1.0.1"
fined@^1.0.1:
version "1.1.0"
@@ -5963,10 +6321,10 @@ flat@^4.1.0:
dependencies:
is-buffer "~2.0.3"
-flatted@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.0.tgz#55122b6536ea496b4b44893ee2608141d10d9916"
- integrity sha512-R+H8IZclI8AAkSBRQJLVOsxwAoHd6WC40b4QTNWIjzAa6BXOBfQcM587MXDTVPeYaopFNWHUFLx7eNmHDSxMWg==
+flatted@^2.0.0, flatted@^2.0.1, flatted@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138"
+ integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==
flatten@^1.0.2:
version "1.0.2"
@@ -5979,11 +6337,6 @@ flush-write-stream@^1.0.0, flush-write-stream@^1.0.2:
inherits "^2.0.1"
readable-stream "^2.0.4"
-fn-name@~2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/fn-name/-/fn-name-2.0.1.tgz#5214d7537a4d06a4a301c0cc262feb84188002e7"
- integrity sha1-UhTXU3pNBqSjAcDMJi/rhBiAAuc=
-
follow-redirects@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.0.0.tgz#8e34298cbd2e176f254effec75a1c78cc849fd37"
@@ -6048,20 +6401,10 @@ from2@^2.1.0:
inherits "^2.0.1"
readable-stream "^2.0.0"
-fs-access@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/fs-access/-/fs-access-1.0.1.tgz#d6a87f262271cefebec30c553407fb995da8777a"
- dependencies:
- null-check "^1.0.0"
-
fs-constants@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
-fs-exists-sync@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add"
-
fs-extra@6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-6.0.1.tgz#8abc128f7946e310135ddc93b98bddb410e7a34b"
@@ -6088,12 +6431,12 @@ fs-extra@^4.0.2:
jsonfile "^4.0.0"
universalify "^0.1.0"
-fs-extra@^7.0.0:
- version "7.0.1"
- resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9"
- integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==
+fs-extra@^8.1.0:
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
+ integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==
dependencies:
- graceful-fs "^4.1.2"
+ graceful-fs "^4.2.0"
jsonfile "^4.0.0"
universalify "^0.1.0"
@@ -6143,6 +6486,7 @@ fs-write-stream-atomic@^1.0.8:
fs.realpath@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
+ integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
fsevents@^1.0.0, fsevents@^1.2.7:
version "1.2.9"
@@ -6157,37 +6501,27 @@ fsevents@~2.1.2:
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e"
integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==
-function-bind@^1.0.2, function-bind@^1.1.1:
+function-bind@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
-function.prototype.name@^1.1.0, function.prototype.name@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.1.tgz#6d252350803085abc2ad423d4fe3be2f9cbda392"
- integrity sha512-e1NzkiJuw6xqVH7YSdiW/qDHebcmMhPNe6w+4ZYYEg0VA+LaLzx37RimbPLuonHhYGFGPx1ME2nSi74JiaCr/Q==
+function.prototype.name@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.2.tgz#5cdf79d7c05db401591dfde83e3b70c5123e9a45"
+ integrity sha512-C8A+LlHBJjB2AdcRPorc5JvJ5VUoWlXdEHLOJdCI7kjHEtGTpHQUiqMvCIKUwIsGwZX2jZJy761AXsn356bJQg==
dependencies:
define-properties "^1.1.3"
- function-bind "^1.1.1"
- functions-have-names "^1.1.1"
- is-callable "^1.1.4"
+ es-abstract "^1.17.0-next.1"
+ functions-have-names "^1.2.0"
functional-red-black-tree@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
-functions-have-names@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.1.1.tgz#79d35927f07b8e7103d819fed475b64ccf7225ea"
- integrity sha512-U0kNHUoxwPNPWOJaMG7Z00d4a/qZVrFtzWJRaK8V9goaVOCXBSQSJpt3MYGNtkScKEBKovxLjnNdC9MlXwo5Pw==
-
-g-status@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/g-status/-/g-status-2.0.2.tgz#270fd32119e8fc9496f066fe5fe88e0a6bc78b97"
- integrity sha512-kQoE9qH+T1AHKgSSD0Hkv98bobE90ILQcXAF4wvGgsr7uFqNvwmh8j+Lq3l0RVt3E3HjSbv2B9biEGcEtpHLCA==
- dependencies:
- arrify "^1.0.1"
- matcher "^1.0.0"
- simple-git "^1.85.0"
+functions-have-names@^1.2.0:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.1.tgz#a981ac397fa0c9964551402cdc5533d7a4d52f91"
+ integrity sha512-j48B/ZI7VKs3sgeI2cZp7WXWmZXu7Iq5pl5/vptV5N2mq+DGFuS/ulaDjtaoLpYzuD6u8UgrUKHfgo7fDTSiBA==
gauge@~2.7.3:
version "2.7.4"
@@ -6202,11 +6536,16 @@ gauge@~2.7.3:
strip-ansi "^3.0.1"
wide-align "^1.1.0"
+gensync@^1.0.0-beta.1:
+ version "1.0.0-beta.1"
+ resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269"
+ integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==
+
get-caller-file@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5"
-get-caller-file@^2.0.0:
+get-caller-file@^2.0.1:
version "2.0.5"
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
@@ -6215,9 +6554,15 @@ get-func-name@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41"
-get-own-enumerable-property-symbols@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-2.0.1.tgz#5c4ad87f2834c4b9b4e84549dc1e0650fb38c24b"
+get-own-enumerable-property-symbols@^3.0.0:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664"
+ integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==
+
+get-package-type@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a"
+ integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==
get-proxy@^2.0.0:
version "2.1.0"
@@ -6245,10 +6590,10 @@ get-stream@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
-get-stream@^4.0.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
- integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==
+get-stream@^5.0.0, get-stream@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9"
+ integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==
dependencies:
pump "^3.0.0"
@@ -6256,19 +6601,18 @@ get-value@^2.0.3, get-value@^2.0.6:
version "2.0.6"
resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
-gh-pages@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/gh-pages/-/gh-pages-2.0.1.tgz#aefe47a43b8d9d2aa3130576b33fe95641e29a2f"
- integrity sha512-uFlk3bukljeiWKQ2XvPfjcSi/ou7IfoDf2p+Fj672saLAr8bnOdFVqI/JSgrSgInKpCg5BksxEwGUl++dbg8Dg==
+gh-pages@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/gh-pages/-/gh-pages-3.1.0.tgz#ec3ed0f6a6e3fc3d888758fa018f08191c96bd55"
+ integrity sha512-3b1rly9kuf3/dXsT8+ZxP0UhNLOo1CItj+3e31yUVcaph/yDsJ9RzD7JOw5o5zpBTJVQLlJAASNkUfepi9fe2w==
dependencies:
async "^2.6.1"
commander "^2.18.0"
email-addresses "^3.0.1"
filenamify-url "^1.0.0"
- fs-extra "^7.0.0"
+ find-cache-dir "^3.3.1"
+ fs-extra "^8.1.0"
globby "^6.1.0"
- graceful-fs "^4.1.11"
- rimraf "^2.6.2"
git-clone@^0.1.0:
version "0.1.0"
@@ -6301,7 +6645,7 @@ glob-parent@^3.1.0:
is-glob "^3.1.0"
path-dirname "^1.0.0"
-glob-parent@^5.1.0, glob-parent@~5.1.0:
+glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@~5.1.0:
version "5.1.1"
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229"
integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==
@@ -6323,38 +6667,20 @@ glob-stream@^6.1.0:
to-absolute-glob "^2.0.0"
unique-stream "^2.0.2"
-glob-watcher@^5.0.0:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-5.0.1.tgz#239aaa621b6bd843b288fdf6b155f50963c7d7ea"
+glob-watcher@^5.0.3:
+ version "5.0.5"
+ resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-5.0.5.tgz#aa6bce648332924d9a8489be41e3e5c52d4186dc"
+ integrity sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==
dependencies:
+ anymatch "^2.0.0"
async-done "^1.2.0"
chokidar "^2.0.0"
+ is-negated-glob "^1.0.0"
just-debounce "^1.0.0"
+ normalize-path "^3.0.0"
object.defaults "^1.1.0"
-glob@7.1.3:
- version "7.1.3"
- resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1"
- integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==
- dependencies:
- fs.realpath "^1.0.0"
- inflight "^1.0.4"
- inherits "2"
- minimatch "^3.0.4"
- once "^1.3.0"
- path-is-absolute "^1.0.0"
-
-glob@^5.0.15:
- version "5.0.15"
- resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1"
- dependencies:
- inflight "^1.0.4"
- inherits "2"
- minimatch "2 || 3"
- once "^1.3.0"
- path-is-absolute "^1.0.0"
-
-glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4:
+glob@7.1.6, glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6:
version "7.1.6"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
@@ -6372,11 +6698,6 @@ global-dirs@^0.1.0:
dependencies:
ini "^1.3.4"
-global-modules-path@^2.3.0:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/global-modules-path/-/global-modules-path-2.3.1.tgz#e541f4c800a1a8514a990477b267ac67525b9931"
- integrity sha512-y+shkf4InI7mPRHSo2b/k6ix6+NLDtyccYv86whhxrSGX9wjPX1VMITmrDbE1eh7zkzhiWtW2sHklJYoQ62Cxg==
-
global-modules@1.0.0, global-modules@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea"
@@ -6385,21 +6706,12 @@ global-modules@1.0.0, global-modules@^1.0.0:
is-windows "^1.0.1"
resolve-dir "^1.0.0"
-global-modules@^0.2.3:
- version "0.2.3"
- resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-0.2.3.tgz#ea5a3bed42c6d6ce995a4f8a1269b5dae223828d"
- dependencies:
- global-prefix "^0.1.4"
- is-windows "^0.2.0"
-
-global-prefix@^0.1.4:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-0.1.5.tgz#8d3bc6b8da3ca8112a160d8d496ff0462bfef78f"
+global-modules@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780"
+ integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==
dependencies:
- homedir-polyfill "^1.0.0"
- ini "^1.3.4"
- is-windows "^0.2.0"
- which "^1.2.12"
+ global-prefix "^3.0.0"
global-prefix@^1.0.1:
version "1.0.2"
@@ -6411,6 +6723,15 @@ global-prefix@^1.0.1:
is-windows "^1.0.1"
which "^1.2.14"
+global-prefix@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97"
+ integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==
+ dependencies:
+ ini "^1.3.5"
+ kind-of "^6.0.2"
+ which "^1.3.1"
+
global@^4.3.0:
version "4.3.2"
resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f"
@@ -6418,11 +6739,18 @@ global@^4.3.0:
min-document "^2.19.0"
process "~0.5.1"
-globals@^11.0.1, globals@^11.1.0, globals@^11.7.0:
+globals@^11.0.1, globals@^11.1.0:
version "11.11.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-11.11.0.tgz#dcf93757fa2de5486fbeed7118538adf789e9c2e"
integrity sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==
+globals@^12.1.0:
+ version "12.4.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8"
+ integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==
+ dependencies:
+ type-fest "^0.8.1"
+
globals@^9.18.0:
version "9.18.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
@@ -6489,10 +6817,10 @@ got@^6.3.0, got@^6.7.1:
unzip-response "^2.0.1"
url-parse-lax "^1.0.0"
-graceful-fs@^4.0.0, graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.1.9:
- version "4.1.15"
- resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00"
- integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==
+graceful-fs@^4.0.0, graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.4:
+ version "4.2.4"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb"
+ integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==
"graceful-readlink@>= 1.0.0":
version "1.0.1"
@@ -6506,9 +6834,10 @@ gud@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/gud/-/gud-1.0.0.tgz#a489581b17e6a70beca9abe3ae57de7a499852c0"
-gulp-cli@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/gulp-cli/-/gulp-cli-2.0.1.tgz#7847e220cb3662f2be8a6d572bf14e17be5a994b"
+gulp-cli@^2.2.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/gulp-cli/-/gulp-cli-2.3.0.tgz#ec0d380e29e52aa45e47977f0d32e18fd161122f"
+ integrity sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==
dependencies:
ansi-colors "^1.0.1"
archy "^1.0.0"
@@ -6518,28 +6847,29 @@ gulp-cli@^2.0.0:
copy-props "^2.0.1"
fancy-log "^1.3.2"
gulplog "^1.0.0"
- interpret "^1.1.0"
+ interpret "^1.4.0"
isobject "^3.0.1"
- liftoff "^2.5.0"
+ liftoff "^3.1.0"
matchdep "^2.0.0"
mute-stdout "^1.0.0"
pretty-hrtime "^1.0.0"
replace-homedir "^1.0.0"
semver-greatest-satisfied-range "^1.1.0"
- v8flags "^3.0.1"
+ v8flags "^3.2.0"
yargs "^7.1.0"
-gulp-load-plugins@^1.5.0:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/gulp-load-plugins/-/gulp-load-plugins-1.5.0.tgz#4c419f7e5764d9a0e33061bab9618f81b73d4171"
+gulp-load-plugins@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/gulp-load-plugins/-/gulp-load-plugins-2.0.3.tgz#5f275c0b7f1925d8a1ce57cbd5c346d6af6b64fb"
+ integrity sha512-U/1Sml7UbyOu2kH6Fbpo+ka2xyp4DRH6+oDtHgC8oKsnlQRuiBQYQ/LS4k6HxBv1HJlucaNV/SdwZXtLBuvSqg==
dependencies:
- array-unique "^0.2.1"
+ array-unique "^0.3.2"
fancy-log "^1.2.0"
- findup-sync "^0.4.0"
+ findup-sync "^4.0.0"
gulplog "^1.0.0"
has-gulplog "^0.1.0"
- micromatch "^2.3.8"
- resolve "^1.1.7"
+ micromatch "^4.0.2"
+ resolve "^1.15.1"
gulp-util@^3.0.8:
version "3.0.8"
@@ -6564,13 +6894,14 @@ gulp-util@^3.0.8:
through2 "^2.0.0"
vinyl "^0.5.0"
-gulp@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/gulp/-/gulp-4.0.0.tgz#95766c601dade4a77ed3e7b2b6dc03881b596366"
+gulp@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/gulp/-/gulp-4.0.2.tgz#543651070fd0f6ab0a0650c6a3e6ff5a7cb09caa"
+ integrity sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==
dependencies:
- glob-watcher "^5.0.0"
- gulp-cli "^2.0.0"
- undertaker "^1.0.0"
+ glob-watcher "^5.0.3"
+ gulp-cli "^2.2.0"
+ undertaker "^1.2.1"
vinyl-fs "^3.0.0"
gulplog@^1.0.0:
@@ -6608,7 +6939,7 @@ handle-thing@^1.2.5:
version "1.2.5"
resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-1.2.5.tgz#fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4"
-handlebars@4.0.11, handlebars@^4.0.1:
+handlebars@4.0.11:
version "4.0.11"
resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.11.tgz#630a35dfe0294bc281edae6ffc5d329fc7982dcc"
dependencies:
@@ -6846,7 +7177,7 @@ home-or-tmp@^2.0.0:
os-homedir "^1.0.0"
os-tmpdir "^1.0.1"
-homedir-polyfill@^1.0.0, homedir-polyfill@^1.0.1:
+homedir-polyfill@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc"
dependencies:
@@ -6874,10 +7205,10 @@ html-comment-regex@^1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.1.tgz#668b93776eaae55ebde8f3ad464b307a4963625e"
-html-element-map@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/html-element-map/-/html-element-map-1.0.0.tgz#19a41940225153ecdfead74f8509154ff1cdc18b"
- integrity sha512-/SP6aOiM5Ai9zALvCxDubIeez0LvG3qP7R9GcRDnJEP/HBmv0A8A9K0o8+HFudcFt46+i921ANjzKsjPjb7Enw==
+html-element-map@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/html-element-map/-/html-element-map-1.2.0.tgz#dfbb09efe882806af63d990cf6db37993f099f22"
+ integrity sha512-0uXq8HsuG1v2TmQ8QkIhzbrqeskE4kn52Q18QJ9iAA/SnHoEKXWiUxHQtclRsCFWEUD2So34X+0+pZZu862nnw==
dependencies:
array-filter "^1.0.0"
@@ -6885,6 +7216,11 @@ html-entities@^1.2.0:
version "1.2.1"
resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f"
+html-escaper@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
+ integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==
+
html-minifier@^3.2.3:
version "3.5.6"
resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.6.tgz#7e4e661a09999599c7d8e8a2b8d7fb7430bb5c3e"
@@ -6988,11 +7324,12 @@ http-proxy-middleware@~0.17.4:
lodash "^4.17.2"
micromatch "^2.3.11"
-http-proxy@^1.13.0, http-proxy@^1.16.2:
- version "1.17.0"
- resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.17.0.tgz#7ad38494658f84605e2f6db4436df410f4e5be9a"
+http-proxy@^1.16.2, http-proxy@^1.18.1:
+ version "1.18.1"
+ resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549"
+ integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==
dependencies:
- eventemitter3 "^3.0.0"
+ eventemitter3 "^4.0.0"
follow-redirects "^1.0.0"
requires-port "^1.0.0"
@@ -7000,12 +7337,18 @@ https-browserify@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
-https-proxy-agent@^2.2.1:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0"
+https-proxy-agent@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz#702b71fb5520a132a66de1f67541d9e62154d82b"
+ integrity sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==
dependencies:
- agent-base "^4.1.0"
- debug "^3.1.0"
+ agent-base "5"
+ debug "4"
+
+human-signals@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3"
+ integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==
humanize-url@^1.0.0:
version "1.0.1"
@@ -7015,27 +7358,27 @@ humanize-url@^1.0.0:
normalize-url "^1.0.0"
strip-url-auth "^1.0.0"
-husky@^1.3.1:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/husky/-/husky-1.3.1.tgz#26823e399300388ca2afff11cfa8a86b0033fae0"
- integrity sha512-86U6sVVVf4b5NYSZ0yvv88dRgBSSXXmHaiq5pP4KDj5JVzdwKgBjEtUPOm8hcoytezFwbU+7gotXNhpHdystlg==
+husky@^4.2.5:
+ version "4.2.5"
+ resolved "https://registry.yarnpkg.com/husky/-/husky-4.2.5.tgz#2b4f7622673a71579f901d9885ed448394b5fa36"
+ integrity sha512-SYZ95AjKcX7goYVZtVZF2i6XiZcHknw50iXvY7b0MiGoj5RwdgRQNEHdb+gPDPCXKlzwrybjFjkL6FOj8uRhZQ==
dependencies:
- cosmiconfig "^5.0.7"
- execa "^1.0.0"
- find-up "^3.0.0"
- get-stdin "^6.0.0"
- is-ci "^2.0.0"
- pkg-dir "^3.0.0"
- please-upgrade-node "^3.1.1"
- read-pkg "^4.0.1"
- run-node "^1.0.0"
- slash "^2.0.0"
+ chalk "^4.0.0"
+ ci-info "^2.0.0"
+ compare-versions "^3.6.0"
+ cosmiconfig "^6.0.0"
+ find-versions "^3.2.0"
+ opencollective-postinstall "^2.0.2"
+ pkg-dir "^4.2.0"
+ please-upgrade-node "^3.2.0"
+ slash "^3.0.0"
+ which-pm-runs "^1.0.0"
iconv-lite@0.4.19:
version "0.4.19"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b"
-iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13:
+iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.4, iconv-lite@~0.4.13:
version "0.4.24"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
@@ -7087,14 +7430,6 @@ immutability-helper@^2.1.2:
dependencies:
invariant "^2.2.0"
-import-fresh@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546"
- integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY=
- dependencies:
- caller-path "^2.0.0"
- resolve-from "^3.0.0"
-
import-fresh@^3.0.0, import-fresh@^3.1.0:
version "3.2.1"
resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66"
@@ -7122,13 +7457,15 @@ import-local@^2.0.0:
pkg-dir "^3.0.0"
resolve-cwd "^2.0.0"
-imports-loader@^0.8.0:
- version "0.8.0"
- resolved "https://registry.yarnpkg.com/imports-loader/-/imports-loader-0.8.0.tgz#030ea51b8ca05977c40a3abfd9b4088fe0be9a69"
- integrity sha512-kXWL7Scp8KQ4552ZcdVTeaQCZSLW+e6nJfp3cwUMB673T7Hr98Xjx5JK+ql7ADlJUvj1JS5O01RLbKoutN5QDQ==
+imports-loader@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/imports-loader/-/imports-loader-1.1.0.tgz#1c3a388d0c5cd7f9eb08f3646d4aae3b70e57933"
+ integrity sha512-HcPM6rULdQ6EBLVq+5O+CF9xb7qiUjsRm6V28bTG/c3IU5sQkVZzUDwYY0r4jHvSAmVFdO9WA/vLAURR5WQSeQ==
dependencies:
- loader-utils "^1.0.2"
+ loader-utils "^2.0.0"
+ schema-utils "^2.7.0"
source-map "^0.6.1"
+ strip-comments "^2.0.1"
imurmurhash@^0.1.4:
version "0.1.4"
@@ -7140,10 +7477,6 @@ indent-string@^2.1.0:
dependencies:
repeating "^2.0.0"
-indent-string@^3.0.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289"
-
indent-string@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251"
@@ -7165,11 +7498,12 @@ infer-owner@^1.0.3, infer-owner@^1.0.4:
inflight@^1.0.4:
version "1.0.6"
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
+ integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
dependencies:
once "^1.3.0"
wrappy "1"
-inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3:
+inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3:
version "2.0.4"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
@@ -7182,7 +7516,7 @@ inherits@2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
-ini@^1.3.4, ini@~1.3.0:
+ini@^1.3.4, ini@^1.3.5, ini@~1.3.0:
version "1.3.5"
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
@@ -7236,55 +7570,36 @@ inquirer@3.3.0, inquirer@^3.0.6, inquirer@^3.3.0:
strip-ansi "^4.0.0"
through "^2.3.6"
-inquirer@^6.2.2:
- version "6.2.2"
- resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.2.tgz#46941176f65c9eb20804627149b743a218f25406"
- integrity sha512-Z2rREiXA6cHRR9KBOarR3WuLlFzlIfAEIiB45ll5SSadMg7WqOh1MKEjjndfuH5ewXdixWCxqnVfGOQzPeiztA==
- dependencies:
- ansi-escapes "^3.2.0"
- chalk "^2.4.2"
- cli-cursor "^2.1.0"
- cli-width "^2.0.0"
- external-editor "^3.0.3"
- figures "^2.0.0"
- lodash "^4.17.11"
- mute-stream "0.0.7"
- run-async "^2.2.0"
- rxjs "^6.4.0"
- string-width "^2.1.0"
- strip-ansi "^5.0.0"
- through "^2.3.6"
-
internal-ip@1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-1.2.0.tgz#ae9fbf93b984878785d50a8de1b356956058cf5c"
dependencies:
meow "^3.3.0"
-interpret@^1.0.0, interpret@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614"
+internal-slot@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.2.tgz#9c2e9fb3cd8e5e4256c6f45fe310067fcfa378a3"
+ integrity sha512-2cQNfwhAfJIkU4KZPkDI+Gj5yNNnbqi40W9Gge6dfnk4TocEVm00B3bdiL+JINrbGJil2TeHvM4rETGzk/f/0g==
+ dependencies:
+ es-abstract "^1.17.0-next.1"
+ has "^1.0.3"
+ side-channel "^1.0.2"
+
+interpret@^1.0.0, interpret@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e"
+ integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==
-invariant@^2.2.0, invariant@^2.2.2:
+invariant@^2.2.0, invariant@^2.2.2, invariant@^2.2.4:
version "2.2.4"
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
dependencies:
loose-envify "^1.0.0"
-inversify@^5.0.0:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/inversify/-/inversify-5.0.1.tgz#500d709b1434896ce5a0d58915c4a4210e34fb6e"
- integrity sha512-Ieh06s48WnEYGcqHepdsJUIJUXpwH5o5vodAX+DK2JA/gjy4EbEcQZxw+uFfzysmKjiLXGYwNG3qDZsKVMcINQ==
-
invert-kv@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
-invert-kv@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02"
- integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==
-
ip@1.1.5, ip@^1.1.0, ip@^1.1.5:
version "1.1.5"
resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a"
@@ -7335,6 +7650,11 @@ is-alphanumerical@^1.0.0:
is-alphabetical "^1.0.0"
is-decimal "^1.0.0"
+is-arguments@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3"
+ integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==
+
is-arrayish@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
@@ -7352,9 +7672,10 @@ is-binary-path@~2.1.0:
dependencies:
binary-extensions "^2.0.0"
-is-boolean-object@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.0.0.tgz#98f8b28030684219a95f375cfbd88ce3405dff93"
+is-boolean-object@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.0.1.tgz#10edc0900dd127697a92f6f9807c7617d68ac48e"
+ integrity sha512-TqZuVwa/sppcrhUCAYkGBk7w0yxfQQnxq28fjkO53tnK9FQXmdwz2JS5+GjsWQ6RByES1K40nI+yDic5c9/aAQ==
is-buffer@^1.1.4, is-buffer@^1.1.5:
version "1.1.6"
@@ -7365,7 +7686,7 @@ is-buffer@^2.0.0, is-buffer@~2.0.3:
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.3.tgz#4ecf3fcf749cbd1e472689e109ac66261a25e725"
integrity sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==
-is-callable@^1.1.4, is-callable@^1.2.0:
+is-callable@^1.1.4, is-callable@^1.1.5, is-callable@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.0.tgz#83336560b54a38e35e3a2df7afd0454d691468bb"
integrity sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==
@@ -7376,13 +7697,6 @@ is-ci@^1.0.10:
dependencies:
ci-info "^1.0.0"
-is-ci@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c"
- integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==
- dependencies:
- ci-info "^2.0.0"
-
is-data-descriptor@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
@@ -7467,6 +7781,11 @@ is-fullwidth-code-point@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
+is-fullwidth-code-point@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
+ integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
+
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"
@@ -7508,6 +7827,11 @@ is-lower-case@^1.1.0:
dependencies:
lower-case "^1.1.0"
+is-map@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.1.tgz#520dafc4307bb8ebc33b813de5ce7c9400d644a1"
+ integrity sha512-T/S49scO8plUiAOA2DBTBG3JHpn1yiw0kRp6dgiZ0v2/6twi5eiB0rHtHFH9ZIrvlWc6+4O+m4zg5+Z833aXgw==
+
is-natural-number@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/is-natural-number/-/is-natural-number-4.0.1.tgz#ab9d76e1db4ced51e35de0c72ebecf09f734cde8"
@@ -7520,9 +7844,10 @@ is-npm@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4"
-is-number-object@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.3.tgz#f265ab89a9f445034ef6aff15a8f00b00f551799"
+is-number-object@^1.0.4:
+ version "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"
@@ -7553,12 +7878,6 @@ is-object@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470"
-is-observable@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e"
- dependencies:
- symbol-observable "^1.1.0"
-
is-odd@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/is-odd/-/is-odd-2.0.0.tgz#7646624671fd7ea558ccd9a2795182f2958f1b24"
@@ -7607,7 +7926,7 @@ is-redirect@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24"
-is-regex@^1.0.4, is-regex@^1.1.0:
+is-regex@^1.0.4, is-regex@^1.0.5, is-regex@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.0.tgz#ece38e389e490df0dc21caea2bd596f987f767ff"
integrity sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==
@@ -7644,13 +7963,24 @@ is-root@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-root/-/is-root-1.0.0.tgz#07b6c233bc394cd9d02ba15c966bd6660d6342d5"
+is-set@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.1.tgz#d1604afdab1724986d30091575f54945da7e5f43"
+ integrity sha512-eJEzOtVyenDs1TMzSQ3kU3K+E0GUS9sno+F0OBT97xsgcJsF9nXMBtkT9/kut5JEpM7oL7X/0qxR17K3mcwIAA==
+
is-stream@1.1.0, is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
-is-string@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.4.tgz#cc3a9b69857d621e963725a24caeec873b826e64"
+is-stream@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3"
+ integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==
+
+is-string@^1.0.4, is-string@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6"
+ integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==
is-subset@^0.1.1:
version "0.1.1"
@@ -7703,7 +8033,7 @@ is-windows@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c"
-is-windows@^1.0.0, is-windows@^1.0.1, is-windows@^1.0.2:
+is-windows@^1.0.1, is-windows@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
@@ -7727,9 +8057,15 @@ isarray@2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e"
-isbinaryfile@^3.0.0:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.2.tgz#4a3e974ec0cba9004d3fc6cde7209ea69368a621"
+isarray@^2.0.5:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723"
+ integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==
+
+isbinaryfile@^4.0.6:
+ version "4.0.6"
+ resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.6.tgz#edcb62b224e2b4710830b67498c8e4e5a4d2610b"
+ integrity sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==
isexe@^2.0.0:
version "2.0.0"
@@ -7760,42 +8096,46 @@ isomorphic-unfetch@^2.0.0:
node-fetch "^2.1.2"
unfetch "^3.1.0"
-istanbul-lib-coverage@^2.0.5:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz#675f0ab69503fad4b1d849f736baaca803344f49"
- integrity sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==
+istanbul-lib-coverage@^3.0.0:
+ 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-instrument@^3.3.0:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz#a5f63d91f0bbc0c3e479ef4c5de027335ec6d630"
- integrity sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==
- dependencies:
- "@babel/generator" "^7.4.0"
- "@babel/parser" "^7.4.3"
- "@babel/template" "^7.4.0"
- "@babel/traverse" "^7.4.3"
- "@babel/types" "^7.4.0"
- istanbul-lib-coverage "^2.0.5"
- semver "^6.0.0"
+istanbul-lib-instrument@^4.0.0, istanbul-lib-instrument@^4.0.1:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d"
+ integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==
+ dependencies:
+ "@babel/core" "^7.7.5"
+ "@istanbuljs/schema" "^0.1.2"
+ istanbul-lib-coverage "^3.0.0"
+ semver "^6.3.0"
-istanbul@^0.4.0:
- version "0.4.5"
- resolved "https://registry.yarnpkg.com/istanbul/-/istanbul-0.4.5.tgz#65c7d73d4c4da84d4f3ac310b918fb0b8033733b"
- dependencies:
- abbrev "1.0.x"
- async "1.x"
- escodegen "1.8.x"
- esprima "2.7.x"
- glob "^5.0.15"
- handlebars "^4.0.1"
- js-yaml "3.x"
- mkdirp "0.5.x"
- nopt "3.x"
- once "1.x"
- resolve "1.1.x"
- supports-color "^3.1.0"
- which "^1.1.1"
- wordwrap "^1.0.0"
+istanbul-lib-report@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6"
+ integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==
+ dependencies:
+ istanbul-lib-coverage "^3.0.0"
+ make-dir "^3.0.0"
+ supports-color "^7.1.0"
+
+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"
+ integrity sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==
+ dependencies:
+ debug "^4.1.1"
+ istanbul-lib-coverage "^3.0.0"
+ source-map "^0.6.1"
+
+istanbul-reports@^3.0.0:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b"
+ integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==
+ dependencies:
+ html-escaper "^2.0.0"
+ istanbul-lib-report "^3.0.0"
isurl@^1.0.0-alpha5:
version "1.0.0"
@@ -7804,6 +8144,19 @@ isurl@^1.0.0-alpha5:
has-to-string-tag-x "^1.2.0"
is-object "^1.0.1"
+iterate-iterator@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/iterate-iterator/-/iterate-iterator-1.0.1.tgz#1693a768c1ddd79c969051459453f082fe82e9f6"
+ integrity sha512-3Q6tudGN05kbkDQDI4CqjaBf4qf85w6W6GnuZDtUVYwKgtC1q8yxYX7CZed7N+tLzQqS6roujWvszf13T+n9aw==
+
+iterate-value@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/iterate-value/-/iterate-value-1.0.2.tgz#935115bd37d006a52046535ebc8d07e9c9337f57"
+ integrity sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==
+ dependencies:
+ es-get-iterator "^1.0.2"
+ iterate-iterator "^1.0.1"
+
jest-worker@^26.1.0:
version "26.1.0"
resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.1.0.tgz#65d5641af74e08ccd561c240e7db61284f82f33d"
@@ -7820,10 +8173,6 @@ js-base64@^2.1.9:
version "2.4.5"
resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.5.tgz#e293cd3c7c82f070d700fc7a1ca0a2e69f101f92"
-js-levenshtein@^1.1.3:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.3.tgz#3ef627df48ec8cf24bacf05c0f184ff30ef413c5"
-
js-tokens@^3.0.0, js-tokens@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
@@ -7832,14 +8181,15 @@ js-tokens@^3.0.0, js-tokens@^3.0.2:
version "4.0.0"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
-js-yaml@3.12.0:
- version "3.12.0"
- resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1"
+js-yaml@3.13.1:
+ version "3.13.1"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
+ integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==
dependencies:
argparse "^1.0.7"
esprima "^4.0.0"
-js-yaml@3.x, js-yaml@^3.12.0, js-yaml@^3.13.1, js-yaml@^3.4.3, js-yaml@^3.7.0, js-yaml@^3.9.1:
+js-yaml@^3.13.1, js-yaml@^3.4.3, js-yaml@^3.9.1:
version "3.14.0"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482"
integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==
@@ -7907,7 +8257,7 @@ json5@^1.0.1:
dependencies:
minimist "^1.2.0"
-json5@^2.1.0:
+json5@^2.1.2:
version "2.1.3"
resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43"
integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==
@@ -7930,11 +8280,13 @@ jsonify@~0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
-jsx-ast-utils@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz#e801b1b39985e20fffc87b40e3748080e2dcac7f"
+jsx-ast-utils@^2.4.1:
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.4.1.tgz#1114a4c1209481db06c690c2b4f488cc665f657e"
+ integrity sha512-z1xSldJ6imESSzOjd3NNkieVJKRlKYSOtMG8SFyCj2FIrvSaSuli/WjpBkEzCBoR9bYYYFgqJw61Xhu7Lcgk+w==
dependencies:
- array-includes "^3.0.3"
+ array-includes "^3.1.1"
+ object.assign "^4.1.0"
just-debounce@^1.0.0:
version "1.0.0"
@@ -7945,11 +8297,11 @@ just-extend@^4.0.2:
resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.0.2.tgz#f3f47f7dfca0f989c55410a7ebc8854b07108afc"
integrity sha512-FrLwOgm+iXrPV+5zDU6Jqu4gCRXbWEQg2O3SKONsWE4w7AXFRkryS53bpWdaL9cNol+AmR3AEYz6kn+o0fCPnw==
-karma-chrome-launcher@^2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz#cf1b9d07136cc18fe239327d24654c3dbc368acf"
+karma-chrome-launcher@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-3.1.0.tgz#805a586799a4d05f4e54f72a204979f3f3066738"
+ integrity sha512-3dPs/n7vgz1rxxtynpzZTvb9y/GIaW8xjAwcIGttLbycqoFtI7yo1NGnQi6oFTherRE+GIhCAHZC4vEqWGhNvg==
dependencies:
- fs-access "^1.0.0"
which "^1.2.1"
karma-cli@^2.0.0:
@@ -7959,15 +8311,17 @@ karma-cli@^2.0.0:
dependencies:
resolve "^1.3.3"
-karma-coverage@^1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/karma-coverage/-/karma-coverage-1.1.2.tgz#cc09dceb589a83101aca5fe70c287645ef387689"
- dependencies:
- dateformat "^1.0.6"
- istanbul "^0.4.0"
- lodash "^4.17.0"
- minimatch "^3.0.0"
- source-map "^0.5.1"
+karma-coverage@^2.0.2:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/karma-coverage/-/karma-coverage-2.0.3.tgz#c10f4711f4cf5caaaa668b1d6f642e7da122d973"
+ integrity sha512-atDvLQqvPcLxhED0cmXYdsPMCQuh6Asa9FMZW1bhNqlVEhJoB9qyZ2BY1gu7D/rr5GLGb5QzYO4siQskxaWP/g==
+ dependencies:
+ istanbul-lib-coverage "^3.0.0"
+ istanbul-lib-instrument "^4.0.1"
+ istanbul-lib-report "^3.0.0"
+ istanbul-lib-source-maps "^4.0.0"
+ istanbul-reports "^3.0.0"
+ minimatch "^3.0.4"
karma-mocha-reporter@^2.2.5:
version "2.2.5"
@@ -7977,59 +8331,59 @@ karma-mocha-reporter@^2.2.5:
log-symbols "^2.1.0"
strip-ansi "^4.0.0"
-karma-mocha@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/karma-mocha/-/karma-mocha-1.3.0.tgz#eeaac7ffc0e201eb63c467440d2b69c7cf3778bf"
+karma-mocha@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/karma-mocha/-/karma-mocha-2.0.1.tgz#4b0254a18dfee71bdbe6188d9a6861bf86b0cd7d"
+ integrity sha512-Tzd5HBjm8his2OA4bouAsATYEpZrp9vC7z5E5j4C5Of5Rrs1jY67RAwXNcVmd/Bnk1wgvQRou0zGVLey44G4tQ==
dependencies:
- minimist "1.2.0"
+ minimist "^1.2.3"
-karma-webpack@^4.0.0-rc.6:
- version "4.0.0-rc.6"
- resolved "https://registry.yarnpkg.com/karma-webpack/-/karma-webpack-4.0.0-rc.6.tgz#02ac6a47c7fc166c8b208446069a424698082405"
- integrity sha512-fN3EfHc10bZxP7dqgsaIFdmkynABFsgMxqgVZJYqxzt0CDBH6j1LbHrMilnijnDYZ8fZDLtx/OKWshXiYyhIig==
+karma-webpack@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/karma-webpack/-/karma-webpack-4.0.2.tgz#23219bd95bdda853e3073d3874d34447c77bced0"
+ integrity sha512-970/okAsdUOmiMOCY8sb17A2I8neS25Ad9uhyK3GHgmRSIFJbDcNEFE8dqqUhNe9OHiCC9k3DMrSmtd/0ymP1A==
dependencies:
- async "^2.0.0"
+ clone-deep "^4.0.1"
loader-utils "^1.1.0"
- source-map "^0.5.6"
- webpack-dev-middleware "^3.2.0"
+ neo-async "^2.6.1"
+ schema-utils "^1.0.0"
+ source-map "^0.7.3"
+ webpack-dev-middleware "^3.7.0"
-karma@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/karma/-/karma-4.0.1.tgz#2581d6caa0d4cd28b65131561b47bad6d5478773"
- integrity sha512-ind+4s03BqIXas7ZmraV3/kc5+mnqwCd+VDX1FndS6jxbt03kQKX2vXrWxNLuCjVYmhMwOZosAEKMM0a2q7w7A==
- dependencies:
- bluebird "^3.3.0"
- body-parser "^1.16.1"
- braces "^2.3.2"
- chokidar "^2.0.3"
- colors "^1.1.0"
- connect "^3.6.0"
- core-js "^2.2.0"
+karma@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/karma/-/karma-5.1.0.tgz#deaa5f3939f75d7d78ded33283fa5f9bb67e9a05"
+ integrity sha512-I3aPbkuIbwuBo6wSog97P5WnnhCgUTsWTu/bEw1vZVQFbXmKO3PK+cfFhZioOgVtJAuQxoyauGNjnwXNHMCxbw==
+ dependencies:
+ body-parser "^1.19.0"
+ braces "^3.0.2"
+ chokidar "^3.0.0"
+ colors "^1.4.0"
+ connect "^3.7.0"
di "^0.0.1"
- dom-serialize "^2.2.0"
- flatted "^2.0.0"
- glob "^7.1.1"
- graceful-fs "^4.1.2"
- http-proxy "^1.13.0"
- isbinaryfile "^3.0.0"
- lodash "^4.17.11"
- log4js "^4.0.0"
- mime "^2.3.1"
- minimatch "^3.0.2"
- optimist "^0.6.1"
- qjobs "^1.1.4"
- range-parser "^1.2.0"
- rimraf "^2.6.0"
- safe-buffer "^5.0.1"
- socket.io "2.1.1"
+ dom-serialize "^2.2.1"
+ flatted "^2.0.2"
+ glob "^7.1.6"
+ graceful-fs "^4.2.4"
+ http-proxy "^1.18.1"
+ isbinaryfile "^4.0.6"
+ lodash "^4.17.15"
+ log4js "^6.2.1"
+ mime "^2.4.5"
+ minimatch "^3.0.4"
+ qjobs "^1.2.0"
+ range-parser "^1.2.1"
+ rimraf "^3.0.2"
+ socket.io "^2.3.0"
source-map "^0.6.1"
- tmp "0.0.33"
- useragent "2.3.0"
+ tmp "0.2.1"
+ ua-parser-js "0.7.21"
+ yargs "^15.3.1"
-keyboard-key@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/keyboard-key/-/keyboard-key-1.0.4.tgz#52d8fa07b7e17757072aa22a67fb4ae85e4c46b0"
- integrity sha512-my04dE6BCwPpwoe4KYKfPxWiwgDYQOHrVmtzn1CfzmoEsGG/ef4oZGaXCzi1+iFhG7CN5JkOuxmei5OABY8/ag==
+keyboard-key@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/keyboard-key/-/keyboard-key-1.1.0.tgz#6f2e8e37fa11475bb1f1d65d5174f1b35653f5b7"
+ integrity sha512-qkBzPTi3rlAKvX7k0/ub44sqOfXeLc/jcnGGmj5c7BJpU8eDrEVPyhCvNYAaoubbsLm9uGWwQJO1ytQK1a9/dQ==
killable@^1.0.0:
version "1.0.0"
@@ -8061,6 +8415,18 @@ klaw@^1.0.0:
optionalDependencies:
graceful-fs "^4.1.9"
+language-subtag-registry@~0.3.2:
+ version "0.3.20"
+ resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.20.tgz#a00a37121894f224f763268e431c55556b0c0755"
+ integrity sha512-KPMwROklF4tEx283Xw0pNKtfTj1gZ4UByp4EsIFWLgBavJltF4TiYPc39k06zSTsLzxTVXXDSpbwaQXaFB4Qeg==
+
+language-tags@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a"
+ integrity sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=
+ dependencies:
+ language-subtag-registry "~0.3.2"
+
last-run@^1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/last-run/-/last-run-1.1.1.tgz#45b96942c17b1c79c772198259ba943bebf8ca5b"
@@ -8090,13 +8456,6 @@ lcid@^1.0.0:
dependencies:
invert-kv "^1.0.0"
-lcid@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf"
- integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==
- dependencies:
- invert-kv "^2.0.0"
-
lead@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/lead/-/lead-1.0.0.tgz#6f14f99a37be3a9dd784f5495690e5903466ee42"
@@ -8107,10 +8466,17 @@ leven@2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580"
-leven@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/leven/-/leven-3.0.0.tgz#04e58837c50a6293af03b4dea25ad86ef2c19637"
- integrity sha512-SXxMC8wC6BkBibsNUC3CQPT8Ui7eA5D3FuYp9VTzB3TMufAcKwjuLZd6RzVKfHBaWmZjGnH/aGmOmOk+Ovd1dw==
+leven@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2"
+ integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==
+
+levenary@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/levenary/-/levenary-1.1.1.tgz#842a9ee98d2075aa7faeedbe32679e9205f46f77"
+ integrity sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==
+ dependencies:
+ leven "^3.1.0"
levn@^0.3.0, levn@~0.3.0:
version "0.3.0"
@@ -8119,12 +8485,21 @@ levn@^0.3.0, levn@~0.3.0:
prelude-ls "~1.1.2"
type-check "~0.3.2"
-liftoff@^2.5.0:
- version "2.5.0"
- resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-2.5.0.tgz#2009291bb31cea861bbf10a7c15a28caf75c31ec"
+levn@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
+ integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
+ dependencies:
+ prelude-ls "^1.2.1"
+ type-check "~0.4.0"
+
+liftoff@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-3.1.0.tgz#c9ba6081f908670607ee79062d700df062c52ed3"
+ integrity sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==
dependencies:
extend "^3.0.0"
- findup-sync "^2.0.0"
+ findup-sync "^3.0.0"
fined "^1.0.1"
flagged-respawn "^1.0.0"
is-plain-object "^2.0.4"
@@ -8132,89 +8507,45 @@ liftoff@^2.5.0:
rechoir "^0.6.2"
resolve "^1.1.7"
-lightercollective@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/lightercollective/-/lightercollective-0.1.0.tgz#70df102c530dcb8d0ccabfe6175a8d00d5f61300"
- integrity sha512-J9tg5uraYoQKaWbmrzDDexbG6hHnMcWS1qLYgJSWE+mpA3U5OCSeMUhb+K55otgZJ34oFdR0ECvdIb3xuO5JOQ==
-
lines-and-columns@^1.1.6:
version "1.1.6"
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00"
integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=
-lint-staged@^8.1.5:
- version "8.1.5"
- resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-8.1.5.tgz#372476fe1a58b8834eb562ed4c99126bd60bdd79"
- integrity sha512-e5ZavfnSLcBJE1BTzRTqw6ly8OkqVyO3GL2M6teSmTBYQ/2BuueD5GIt2RPsP31u/vjKdexUyDCxSyK75q4BDA==
+lint-staged@^10.2.11:
+ version "10.2.11"
+ resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.2.11.tgz#713c80877f2dc8b609b05bc59020234e766c9720"
+ integrity sha512-LRRrSogzbixYaZItE2APaS4l2eJMjjf5MbclRZpLJtcQJShcvUzKXsNeZgsLIZ0H0+fg2tL4B59fU9wHIHtFIA==
dependencies:
- chalk "^2.3.1"
- commander "^2.14.1"
- cosmiconfig "^5.0.2"
- debug "^3.1.0"
+ chalk "^4.0.0"
+ cli-truncate "2.1.0"
+ commander "^5.1.0"
+ cosmiconfig "^6.0.0"
+ debug "^4.1.1"
dedent "^0.7.0"
- del "^3.0.0"
- execa "^1.0.0"
- find-parent-dir "^0.3.0"
- g-status "^2.0.2"
- is-glob "^4.0.0"
- is-windows "^1.0.2"
- listr "^0.14.2"
- listr-update-renderer "^0.5.0"
- lodash "^4.17.11"
- log-symbols "^2.2.0"
- micromatch "^3.1.8"
- npm-which "^3.0.1"
- p-map "^1.1.1"
- path-is-inside "^1.0.2"
- pify "^3.0.0"
- please-upgrade-node "^3.0.2"
- staged-git-files "1.1.2"
- string-argv "^0.0.2"
- stringify-object "^3.2.2"
- yup "^0.26.10"
-
-listr-silent-renderer@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e"
-
-listr-update-renderer@^0.5.0:
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz#4ea8368548a7b8aecb7e06d8c95cb45ae2ede6a2"
- integrity sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA==
- dependencies:
- chalk "^1.1.3"
- cli-truncate "^0.2.1"
- elegant-spinner "^1.0.1"
- figures "^1.7.0"
- indent-string "^3.0.0"
- log-symbols "^1.0.2"
- log-update "^2.3.0"
- strip-ansi "^3.0.1"
-
-listr-verbose-renderer@^0.5.0:
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz#f1132167535ea4c1261102b9f28dac7cba1e03db"
- integrity sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==
- dependencies:
- chalk "^2.4.1"
- cli-cursor "^2.1.0"
- date-fns "^1.27.2"
- figures "^2.0.0"
+ enquirer "^2.3.5"
+ execa "^4.0.1"
+ listr2 "^2.1.0"
+ log-symbols "^4.0.0"
+ micromatch "^4.0.2"
+ normalize-path "^3.0.0"
+ please-upgrade-node "^3.2.0"
+ string-argv "0.3.1"
+ stringify-object "^3.3.0"
-listr@^0.14.2:
- version "0.14.3"
- resolved "https://registry.yarnpkg.com/listr/-/listr-0.14.3.tgz#2fea909604e434be464c50bddba0d496928fa586"
- integrity sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==
+listr2@^2.1.0:
+ version "2.3.6"
+ resolved "https://registry.yarnpkg.com/listr2/-/listr2-2.3.6.tgz#4248bbbfeb321357aff3587cf3c6dbae4942b83b"
+ integrity sha512-znchYUj4fahw/SxxJ2SOEytA7enDinu0HFeIS+Z+2o8h4sMyl6cUm6J9GBvF7ICwLjQJy7lDcphwYbjEDgJgcQ==
dependencies:
- "@samverschueren/stream-to-observable" "^0.3.0"
- is-observable "^1.1.0"
- is-promise "^2.1.0"
- is-stream "^1.1.0"
- listr-silent-renderer "^1.1.1"
- listr-update-renderer "^0.5.0"
- listr-verbose-renderer "^0.5.0"
- p-map "^2.0.0"
- rxjs "^6.3.3"
+ chalk "^4.1.0"
+ cli-truncate "^2.1.0"
+ figures "^3.2.0"
+ indent-string "^4.0.0"
+ log-update "^4.0.0"
+ p-map "^4.0.0"
+ rxjs "^6.6.0"
+ through "^2.3.8"
load-json-file@^1.0.0:
version "1.1.0"
@@ -8235,15 +8566,6 @@ load-json-file@^2.0.0:
pify "^2.0.0"
strip-bom "^3.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"
- dependencies:
- graceful-fs "^4.1.2"
- parse-json "^4.0.0"
- pify "^3.0.0"
- strip-bom "^3.0.0"
-
loader-runner@^2.3.0, loader-runner@^2.4.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357"
@@ -8258,7 +8580,7 @@ loader-utils@^0.2.16:
json5 "^0.5.0"
object-assign "^4.0.1"
-loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3:
+loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613"
integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==
@@ -8267,6 +8589,15 @@ loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3:
emojis-list "^3.0.0"
json5 "^1.0.1"
+loader-utils@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0"
+ integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==
+ dependencies:
+ big.js "^5.2.2"
+ 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"
@@ -8408,16 +8739,17 @@ lodash.uniq@^4.5.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
-lodash@^4.15.0, lodash@^4.17.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.15, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0:
- version "4.17.15"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
- integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
+lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0:
+ version "4.17.19"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b"
+ integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==
-log-symbols@2.2.0, log-symbols@^2.1.0, log-symbols@^2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a"
+log-symbols@3.0.0, log-symbols@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4"
+ integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==
dependencies:
- chalk "^2.0.1"
+ chalk "^2.4.2"
log-symbols@^1.0.2:
version "1.0.2"
@@ -8425,46 +8757,44 @@ log-symbols@^1.0.2:
dependencies:
chalk "^1.0.0"
-log-symbols@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4"
- integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==
+log-symbols@^2.1.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a"
dependencies:
- chalk "^2.4.2"
+ chalk "^2.0.1"
-log-update@^2.3.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz#88328fd7d1ce7938b29283746f0b1bc126b24708"
- integrity sha1-iDKP19HOeTiykoN0bwsbwSayRwg=
+log-symbols@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920"
+ integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==
dependencies:
- ansi-escapes "^3.0.0"
- cli-cursor "^2.0.0"
- wrap-ansi "^3.0.1"
+ chalk "^4.0.0"
-log4js@^4.0.0:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/log4js/-/log4js-4.0.2.tgz#0c73e623ca4448669653eb0e9f629beacc7fbbe3"
- integrity sha512-KE7HjiieVDPPdveA3bJZSuu0n8chMkFl8mIoisBFxwEJ9FmXe4YzNuiqSwYUiR1K8q8/5/8Yd6AClENY1RA9ww==
+log-update@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1"
+ integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==
dependencies:
- date-format "^2.0.0"
- debug "^3.1.0"
- flatted "^2.0.0"
- rfdc "^1.1.2"
- streamroller "^1.0.1"
+ ansi-escapes "^4.3.0"
+ cli-cursor "^3.1.0"
+ slice-ansi "^4.0.0"
+ wrap-ansi "^6.2.0"
+
+log4js@^6.2.1:
+ version "6.3.0"
+ resolved "https://registry.yarnpkg.com/log4js/-/log4js-6.3.0.tgz#10dfafbb434351a3e30277a00b9879446f715bcb"
+ integrity sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==
+ dependencies:
+ date-format "^3.0.0"
+ debug "^4.1.1"
+ flatted "^2.0.1"
+ rfdc "^1.1.4"
+ streamroller "^2.2.4"
loglevel@^1.4.1:
version "1.6.1"
resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.1.tgz#e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa"
-lolex@^2.3.2:
- version "2.7.0"
- resolved "https://registry.yarnpkg.com/lolex/-/lolex-2.7.0.tgz#9c087a69ec440e39d3f796767cf1b2cdc43d5ea5"
-
-lolex@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/lolex/-/lolex-3.1.0.tgz#1a7feb2fefd75b3e3a7f79f0e110d9476e294434"
- integrity sha512-zFo5MgCJ0rZ7gQg69S4pqBsLURbFw11X68C18OcJjJQbqaXm2NoTrGl1IMM3TIz0/BnN1tIs2tzmmqvCsOMMjw==
-
longest@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
@@ -8496,7 +8826,7 @@ lowercase-keys@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306"
-lru-cache@4.1.x, lru-cache@^4.0.1:
+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==
@@ -8529,7 +8859,7 @@ make-dir@^1.0.0:
dependencies:
pify "^3.0.0"
-make-dir@^2.0.0:
+make-dir@^2.0.0, make-dir@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==
@@ -8537,7 +8867,7 @@ make-dir@^2.0.0:
pify "^4.0.1"
semver "^5.6.0"
-make-dir@^3.0.2:
+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==
@@ -8550,13 +8880,6 @@ make-iterator@^1.0.0:
dependencies:
kind-of "^3.1.0"
-map-age-cleaner@^0.1.1:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a"
- integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==
- dependencies:
- p-defer "^1.0.0"
-
map-cache@^0.2.0, map-cache@^0.2.2:
version "0.2.2"
resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
@@ -8590,13 +8913,6 @@ matchdep@^2.0.0:
resolve "^1.4.0"
stack-trace "0.0.10"
-matcher@^1.0.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/matcher/-/matcher-1.1.1.tgz#51d8301e138f840982b338b116bb0c09af62c1c2"
- integrity sha512-+BmqxWIubKTRKNWx/ahnCkk3mG8m7OturVlqq6HiojGJTd5hVYbgZm6WzcYPCoB+KBT4Vd6R7WSRG2OADNaCjg==
- dependencies:
- escape-string-regexp "^1.0.4"
-
math-expression-evaluator@^1.2.14:
version "1.2.17"
resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac"
@@ -8651,15 +8967,6 @@ mem@^1.1.0:
dependencies:
mimic-fn "^1.0.0"
-mem@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/mem/-/mem-4.0.0.tgz#6437690d9471678f6cc83659c00cbafcd6b0cdaf"
- integrity sha512-WQxG/5xYc3tMbYLXoXPm81ET2WDULiU5FxbuIoNbJqLOOI8zehXFdZuiUEgfdrU2mVB1pxBZUGlYORSrpuJreA==
- dependencies:
- map-age-cleaner "^0.1.1"
- mimic-fn "^1.0.0"
- p-is-promise "^1.1.0"
-
memory-fs@^0.4.0, memory-fs@^0.4.1, memory-fs@~0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552"
@@ -8725,7 +9032,7 @@ micro@9.3.1:
is-stream "1.1.0"
raw-body "2.3.2"
-micromatch@^2.1.5, micromatch@^2.3.11, micromatch@^2.3.7, micromatch@^2.3.8:
+micromatch@^2.1.5, micromatch@^2.3.11:
version "2.3.11"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565"
dependencies:
@@ -8743,7 +9050,7 @@ micromatch@^2.1.5, micromatch@^2.3.11, micromatch@^2.3.7, micromatch@^2.3.8:
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.8:
+micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4:
version "3.1.10"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
dependencies:
@@ -8806,9 +9113,10 @@ mime@1.6.0, mime@^1.4.1, mime@^1.5.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
-mime@^2.0.3, mime@^2.3.1:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/mime/-/mime-2.3.1.tgz#b1621c54d63b97c47d3cfe7f7215f7d64517c369"
+mime@^2.0.3, mime@^2.4.4, mime@^2.4.5:
+ version "2.4.6"
+ resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz#e5b407c90db442f2beb5b162373d07b69affa4d1"
+ integrity sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==
mimic-fn@^1.0.0:
version "1.1.0"
@@ -8833,27 +9141,20 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
-"minimatch@2 || 3", minimatch@3.0.4, minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
- dependencies:
- brace-expansion "^1.1.7"
-
minimatch@3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774"
dependencies:
brace-expansion "^1.0.0"
-minimist@0.0.8:
- version "0.0.8"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
-
-minimist@1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
+minimatch@3.0.4, minimatch@^3.0.2, minimatch@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
+ integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
+ dependencies:
+ brace-expansion "^1.1.7"
-minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5, minimist@~1.2.0:
+minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@~1.2.0:
version "1.2.5"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
@@ -8934,11 +9235,10 @@ mixin-deep@^1.2.0:
for-in "^1.0.2"
is-extendable "^1.0.1"
-mkdirp@0.5.1:
- version "0.5.1"
- resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
- dependencies:
- minimist "0.0.8"
+mkdirp-classic@^0.5.2:
+ version "0.5.3"
+ resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113"
+ integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==
mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@~0.5.0, mkdirp@~0.5.1:
version "0.5.5"
@@ -8952,34 +9252,36 @@ mkdirp@^1.0.3, mkdirp@^1.0.4:
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
-mocha@^6.0.2:
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/mocha/-/mocha-6.0.2.tgz#cdc1a6fdf66472c079b5605bac59d29807702d2c"
- integrity sha512-RtTJsmmToGyeTznSOMoM6TPEk1A84FQaHIciKrRqARZx+B5ccJ5tXlmJzEKGBxZdqk9UjpRsesZTUkZmR5YnuQ==
+mocha@^8.0.1:
+ version "8.0.1"
+ resolved "https://registry.yarnpkg.com/mocha/-/mocha-8.0.1.tgz#fe01f0530362df271aa8f99510447bc38b88d8ed"
+ integrity sha512-vefaXfdYI8+Yo8nPZQQi0QO2o+5q9UIMX1jZ1XMmK3+4+CQjc7+B0hPdUeglXiTlr8IHMVRo63IhO9Mzt6fxOg==
dependencies:
- ansi-colors "3.2.3"
+ ansi-colors "4.1.1"
browser-stdout "1.3.1"
+ chokidar "3.3.1"
debug "3.2.6"
- diff "3.5.0"
+ diff "4.0.2"
escape-string-regexp "1.0.5"
- findup-sync "2.0.0"
- glob "7.1.3"
+ find-up "4.1.0"
+ glob "7.1.6"
growl "1.10.5"
he "1.2.0"
- js-yaml "3.12.0"
- log-symbols "2.2.0"
+ js-yaml "3.13.1"
+ log-symbols "3.0.0"
minimatch "3.0.4"
- mkdirp "0.5.1"
- ms "2.1.1"
- node-environment-flags "1.0.4"
+ ms "2.1.2"
object.assign "4.1.0"
- strip-json-comments "2.0.1"
- supports-color "6.0.0"
- which "1.3.1"
+ promise.allsettled "1.0.2"
+ serialize-javascript "3.0.0"
+ strip-json-comments "3.0.1"
+ supports-color "7.1.0"
+ which "2.0.2"
wide-align "1.1.3"
- yargs "12.0.5"
- yargs-parser "11.1.1"
- yargs-unparser "1.5.0"
+ workerpool "6.0.0"
+ yargs "13.3.2"
+ yargs-parser "13.1.2"
+ yargs-unparser "1.6.0"
move-concurrently@^1.0.1:
version "1.0.1"
@@ -9001,11 +9303,16 @@ ms@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
-ms@2.1.1, ms@^2.1.1:
+ms@2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==
+ms@2.1.2, ms@^2.1.1:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
+ integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
+
multicast-dns-service-types@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901"
@@ -9107,15 +9414,15 @@ nice-try@^1.0.4:
version "1.0.5"
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
-nise@^1.4.10:
- version "1.4.10"
- resolved "https://registry.yarnpkg.com/nise/-/nise-1.4.10.tgz#ae46a09a26436fae91a38a60919356ae6db143b6"
- integrity sha512-sa0RRbj53dovjc7wombHmVli9ZihXbXCQ2uH3TNm03DyvOSIQbxg+pbqDKrk2oxMK1rtLGVlKxcB9rrc6X5YjA==
+nise@^4.0.1:
+ version "4.0.4"
+ resolved "https://registry.yarnpkg.com/nise/-/nise-4.0.4.tgz#d73dea3e5731e6561992b8f570be9e363c4512dd"
+ integrity sha512-bTTRUNlemx6deJa+ZyoCUTRvH3liK5+N6VQZ4NIw90AgDXY6iPnsqplNFf6STcj+ePk0H/xqxnP75Lr0J0Fq3A==
dependencies:
- "@sinonjs/formatio" "^3.1.0"
+ "@sinonjs/commons" "^1.7.0"
+ "@sinonjs/fake-timers" "^6.0.0"
"@sinonjs/text-encoding" "^0.7.1"
just-extend "^4.0.2"
- lolex "^2.3.2"
path-to-regexp "^1.7.0"
no-case@^2.2.0, no-case@^2.3.2:
@@ -9130,13 +9437,6 @@ node-dir@^0.1.10:
dependencies:
minimatch "^3.0.2"
-node-environment-flags@1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/node-environment-flags/-/node-environment-flags-1.0.4.tgz#0b784a6551426bfc16d3b2208424dcbc2b2ff038"
- integrity sha512-M9rwCnWVLW7PX+NUWe3ejEdiLYinRpsEre9hMkU/6NS4h+EEulYaDH1gCEZ2gyXsmw+RXYDaV2JkkTNcsPDJ0Q==
- dependencies:
- object.getownpropertydescriptors "^2.0.3"
-
node-fetch@^1.0.1:
version "1.7.3"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef"
@@ -9218,12 +9518,6 @@ nomnom@~1.6.2:
colors "0.5.x"
underscore "~1.4.4"
-nopt@3.x:
- version "3.0.6"
- resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9"
- dependencies:
- abbrev "1"
-
nopt@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
@@ -9289,25 +9583,18 @@ npm-packlist@^1.1.6:
ignore-walk "^3.0.1"
npm-bundled "^1.0.1"
-npm-path@^2.0.2:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/npm-path/-/npm-path-2.0.4.tgz#c641347a5ff9d6a09e4d9bce5580c4f505278e64"
- dependencies:
- which "^1.2.10"
-
npm-run-path@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
dependencies:
path-key "^2.0.0"
-npm-which@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/npm-which/-/npm-which-3.0.1.tgz#9225f26ec3a285c209cae67c3b11a6b4ab7140aa"
+npm-run-path@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
+ integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
dependencies:
- commander "^2.9.0"
- npm-path "^2.0.2"
- which "^1.2.10"
+ path-key "^3.0.0"
npmlog@^4.0.2:
version "4.1.2"
@@ -9325,10 +9612,6 @@ nth-check@~1.0.1:
dependencies:
boolbase "~1.0.0"
-null-check@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/null-check/-/null-check-1.0.0.tgz#977dffd7176012b9ec30d2a39db5cf72a0439edd"
-
num2fraction@^1.2.2:
version "1.2.2"
resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede"
@@ -9357,14 +9640,18 @@ object-copy@^0.1.0:
define-property "^0.2.5"
kind-of "^3.0.3"
-object-inspect@^1.6.0, object-inspect@^1.7.0:
+object-inspect@^1.7.0:
version "1.8.0"
resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0"
integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==
-object-is@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6"
+object-is@^1.0.1, object-is@^1.0.2, object-is@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.2.tgz#c5d2e87ff9e119f78b7a088441519e2eec1573b6"
+ integrity sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ==
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.17.5"
object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1:
version "1.1.1"
@@ -9395,33 +9682,24 @@ object.defaults@^1.0.0, object.defaults@^1.1.0:
for-own "^1.0.0"
isobject "^3.0.0"
-object.entries@^1.0.4, object.entries@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.0.tgz#2024fc6d6ba246aee38bdb0ffd5cfbcf371b7519"
- integrity sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA==
+object.entries@^1.1.1, object.entries@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.2.tgz#bc73f00acb6b6bb16c203434b10f9a7e797d3add"
+ integrity sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA==
dependencies:
define-properties "^1.1.3"
- es-abstract "^1.12.0"
- function-bind "^1.1.1"
+ es-abstract "^1.17.5"
has "^1.0.3"
-object.fromentries@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.0.tgz#49a543d92151f8277b3ac9600f1e930b189d30ab"
- integrity sha512-9iLiI6H083uiqUuvzyY6qrlmc/Gz8hLQFOcb/Ri/0xXFkSNS3ctV+CbE6yM2+AnkYfOB3dGjdzC0wrMLIhQICA==
- dependencies:
- define-properties "^1.1.2"
- es-abstract "^1.11.0"
- function-bind "^1.1.1"
- has "^1.0.1"
-
-object.getownpropertydescriptors@^2.0.3:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649"
- integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==
+object.fromentries@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.2.tgz#4a09c9b9bb3843dd0f89acdb517a794d4f355ac9"
+ integrity sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ==
dependencies:
define-properties "^1.1.3"
es-abstract "^1.17.0-next.1"
+ function-bind "^1.1.1"
+ has "^1.0.3"
object.map@^1.0.0:
version "1.0.1"
@@ -9450,13 +9728,13 @@ object.reduce@^1.0.0:
for-own "^1.0.0"
make-iterator "^1.0.0"
-object.values@^1.0.4, object.values@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz#bf6810ef5da3e5325790eaaa2be213ea84624da9"
- integrity sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==
+object.values@^1.1.0, object.values@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e"
+ integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==
dependencies:
define-properties "^1.1.3"
- es-abstract "^1.12.0"
+ es-abstract "^1.17.0-next.1"
function-bind "^1.1.1"
has "^1.0.3"
@@ -9474,9 +9752,10 @@ on-headers@~1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7"
-once@1.x, once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.4.0:
+once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+ integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
dependencies:
wrappy "1"
@@ -9493,6 +9772,11 @@ onetime@^5.1.0:
dependencies:
mimic-fn "^2.1.0"
+opencollective-postinstall@^2.0.2:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259"
+ integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==
+
opener@^1.4.3, opener@^1.5.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz#6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed"
@@ -9525,7 +9809,7 @@ optimist@^0.6.1:
minimist "~0.0.1"
wordwrap "~0.0.2"
-optionator@^0.8.1, optionator@^0.8.2:
+optionator@^0.8.2:
version "0.8.2"
resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64"
dependencies:
@@ -9536,6 +9820,18 @@ optionator@^0.8.1, optionator@^0.8.2:
type-check "~0.3.2"
wordwrap "~1.0.0"
+optionator@^0.9.1:
+ version "0.9.1"
+ resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499"
+ integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==
+ dependencies:
+ deep-is "^0.1.3"
+ fast-levenshtein "^2.0.6"
+ levn "^0.4.1"
+ prelude-ls "^1.2.1"
+ type-check "^0.4.0"
+ word-wrap "^1.2.3"
+
ora@^4.0.4:
version "4.0.5"
resolved "https://registry.yarnpkg.com/ora/-/ora-4.0.5.tgz#7410b5cc2d99fa637fd5099bbb9f02bfbb5a361e"
@@ -9584,15 +9880,6 @@ os-locale@^2.0.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"
- integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==
- dependencies:
- execa "^1.0.0"
- lcid "^2.0.0"
- mem "^4.0.0"
-
os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
@@ -9612,28 +9899,10 @@ output-file-sync@^1.1.2:
mkdirp "^0.5.1"
object-assign "^4.1.0"
-output-file-sync@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-2.0.1.tgz#f53118282f5f553c2799541792b723a4c71430c0"
- dependencies:
- graceful-fs "^4.1.11"
- is-plain-obj "^1.1.0"
- mkdirp "^0.5.1"
-
-p-defer@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c"
- integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=
-
p-finally@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
-p-is-promise@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e"
- integrity sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=
-
p-limit@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.1.0.tgz#b07ff2d9a5d88bec806035895a2bab66a27988bc"
@@ -9675,11 +9944,6 @@ p-map@^1.1.1:
version "1.2.0"
resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b"
-p-map@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.0.0.tgz#be18c5a5adeb8e156460651421aceca56c213a50"
- integrity sha512-GO107XdrSUmtHxVoi60qc9tUl/KkNKm+X2CF4P9amalpGxv5YqVPJNfSb0wcA+syCopkZvYYIzW8OVTQW59x/w==
-
p-map@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b"
@@ -9770,13 +10034,6 @@ parse-json@^2.2.0:
dependencies:
error-ex "^1.2.0"
-parse-json@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
- dependencies:
- error-ex "^1.3.1"
- json-parse-better-errors "^1.0.1"
-
parse-json@^5.0.0:
version "5.0.1"
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.0.1.tgz#7cfe35c1ccd641bce3981467e6c2ece61b3b3878"
@@ -9868,6 +10125,7 @@ path-exists@^4.0.0:
path-is-absolute@^1.0.0, path-is-absolute@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
+ integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
path-is-inside@1.0.2, path-is-inside@^1.0.1, path-is-inside@^1.0.2:
version "1.0.2"
@@ -9877,6 +10135,11 @@ path-key@^2.0.0, path-key@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
+path-key@^3.0.0, path-key@^3.1.0:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
+ integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
+
path-parse@^1.0.6:
version "1.0.6"
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
@@ -9902,7 +10165,7 @@ path-to-regexp@^1.7.0:
dependencies:
isarray "0.0.1"
-path-type@3.0.0, path-type@^3.0.0:
+path-type@3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f"
dependencies:
@@ -9950,7 +10213,7 @@ performance-now@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
-picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1:
+picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.0.7, picomatch@^2.2.1:
version "2.2.2"
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==
@@ -9997,17 +10260,17 @@ pkg-dir@^3.0.0:
dependencies:
find-up "^3.0.0"
-pkg-dir@^4.1.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==
dependencies:
find-up "^4.0.0"
-please-upgrade-node@^3.0.2, please-upgrade-node@^3.1.1:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz#ed320051dfcc5024fae696712c8288993595e8ac"
- integrity sha512-KY1uHnQ2NlQHqIJQpnh/i54rKkuxCEBx+voJIS/Mvb+L2iYd2NMotwduhKTMjfC1uKoX3VXOxLjIYG66dfJTVQ==
+please-upgrade-node@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942"
+ integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==
dependencies:
semver-compare "^1.0.0"
@@ -10340,6 +10603,11 @@ preact@^8.2.7:
version "8.2.9"
resolved "https://registry.yarnpkg.com/preact/-/preact-8.2.9.tgz#813ba9dd45e5d97c5ea0d6c86d375b3be711cc40"
+prelude-ls@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
+ integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
+
prelude-ls@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
@@ -10352,10 +10620,10 @@ preserve@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
-prettier@^1.18.2:
- version "1.18.2"
- resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.18.2.tgz#6823e7c5900017b4bd3acf46fe9ac4b4d7bda9ea"
- integrity sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw==
+prettier@^2.0.5:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.0.5.tgz#d6d56282455243f2f92cc1716692c08aa31522d4"
+ integrity sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg==
pretty-error@^2.0.2, pretty-error@^2.1.1:
version "2.1.1"
@@ -10399,7 +10667,7 @@ process@~0.5.1:
version "0.5.2"
resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf"
-progress@^2.0.0:
+progress@^2.0.0, progress@^2.0.1:
version "2.0.3"
resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
@@ -10409,6 +10677,17 @@ promise-inflight@^1.0.1:
resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM=
+promise.allsettled@1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/promise.allsettled/-/promise.allsettled-1.0.2.tgz#d66f78fbb600e83e863d893e98b3d4376a9c47c9"
+ integrity sha512-UpcYW5S1RaNKT6pd+s9jp9K9rlQge1UXKskec0j6Mmuq7UJCvlS2J2/s/yuPN8ehftf9HXMxWlKiPbGGUzpoRg==
+ dependencies:
+ array.prototype.map "^1.0.1"
+ define-properties "^1.1.3"
+ es-abstract "^1.17.0-next.1"
+ function-bind "^1.1.1"
+ iterate-value "^1.0.0"
+
promise@^7.1.1:
version "7.3.1"
resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf"
@@ -10433,11 +10712,6 @@ prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.8, prop-types@^15.6.1,
object-assign "^4.1.1"
react-is "^16.8.1"
-property-expr@^1.5.0:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/property-expr/-/property-expr-1.5.1.tgz#22e8706894a0c8e28d58735804f6ba3a3673314f"
- integrity sha512-CGuc0VUTGthpJXL36ydB6jnbyOf/rAHFvmVrJlH+Rg0DqqLFQGAP6hIaxD/G0OAmBJPhXDHuEJigrp0e0wFV6g==
-
property-information@^5.0.0, property-information@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/property-information/-/property-information-5.0.1.tgz#c3b09f4f5750b1634c0b24205adbf78f18bdf94f"
@@ -10516,18 +10790,23 @@ punycode@^2.1.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
-puppeteer@^1.7.0:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-1.7.0.tgz#edcba2300a50847202c0f19fd15e7a96171ff3bd"
+puppeteer@^5.2.1:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-5.2.1.tgz#7f0564f0a5384f352a38c8cc42af875cd87f4ea6"
+ integrity sha512-PZoZG7u+T6N1GFWBQmGVG162Ak5MAy8nYSVpeeQrwJK2oYUlDWpHEJPcd/zopyuEMTv7DiztS1blgny1txR2qw==
dependencies:
- debug "^3.1.0"
- extract-zip "^1.6.6"
- https-proxy-agent "^2.2.1"
+ debug "^4.1.0"
+ devtools-protocol "0.0.781568"
+ extract-zip "^2.0.0"
+ https-proxy-agent "^4.0.0"
mime "^2.0.3"
- progress "^2.0.0"
+ pkg-dir "^4.2.0"
+ progress "^2.0.1"
proxy-from-env "^1.0.0"
- rimraf "^2.6.1"
- ws "^5.1.1"
+ rimraf "^3.0.2"
+ tar-fs "^2.0.0"
+ unbzip2-stream "^1.3.3"
+ ws "^7.2.3"
q@^1.1.2:
version "1.5.1"
@@ -10537,9 +10816,10 @@ q@~1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e"
-qjobs@^1.1.4:
- version "1.1.5"
- resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.1.5.tgz#659de9f2cf8dcc27a1481276f205377272382e73"
+qjobs@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.2.0.tgz#c45e9c61800bd087ef88d7e256423bdd49e5d071"
+ integrity sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==
qs@6.7.0:
version "6.7.0"
@@ -10565,9 +10845,10 @@ querystringify@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.0.0.tgz#fa3ed6e68eb15159457c89b37bc6472833195755"
-raf@^3.4.0:
- version "3.4.0"
- resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.0.tgz#a28876881b4bc2ca9117d4138163ddb80f781575"
+raf@^3.4.0, raf@^3.4.1:
+ version "3.4.1"
+ resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39"
+ integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==
dependencies:
performance-now "^2.1.0"
@@ -10575,10 +10856,10 @@ railroad-diagrams@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz#eb7e6267548ddedfb899c1b90e57374559cddb7e"
-ramda@^0.26.1:
- version "0.26.1"
- resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.26.1.tgz#8d41351eb8111c55353617fc3bbffad8e4d35d06"
- integrity sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ==
+ramda@^0.27.0:
+ version "0.27.0"
+ resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.27.0.tgz#915dc29865c0800bf3f69b8fd6c279898b59de43"
+ integrity sha512-pVzZdDpWwWqEVVLshWUHjNwuVP7SfcmPraYuqocJp1yo2U1R7P+5QAfDhdItkuoGqIBnBYrtPp7rEPqDn9HlZA==
randexp@^0.4.2:
version "0.4.6"
@@ -10608,7 +10889,7 @@ randomfill@^1.0.3:
randombytes "^2.0.5"
safe-buffer "^5.1.0"
-range-parser@^1.0.3, range-parser@^1.2.0, range-parser@~1.2.0, range-parser@~1.2.1:
+range-parser@^1.0.3, range-parser@^1.2.1, range-parser@~1.2.0, range-parser@~1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
@@ -10636,13 +10917,13 @@ raw-loader@^0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-0.5.1.tgz#0c3d0beaed8a01c966d9787bf778281252a979aa"
-raw-loader@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-1.0.0.tgz#3f9889e73dadbda9a424bce79809b4133ad46405"
- integrity sha512-Uqy5AqELpytJTRxYT4fhltcKPj0TyaEpzJDcGz7DFJi+pQOOi3GjR/DOdxTkTsF+NzhnldIoG6TORaBlInUuqA==
+raw-loader@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-4.0.1.tgz#14e1f726a359b68437e183d5a5b7d33a3eba6933"
+ integrity sha512-baolhQBSi3iNh1cglJjA0mYzga+wePk7vdEX//1dTFd+v4TsQlQE0jitJSNF1OIP82rdYulH7otaVmdlDaJ64A==
dependencies:
- loader-utils "^1.1.0"
- schema-utils "^1.0.0"
+ loader-utils "^2.0.0"
+ schema-utils "^2.6.5"
rc@^1.0.1, rc@^1.1.6, rc@^1.2.7:
version "1.2.8"
@@ -10761,10 +11042,10 @@ react-intersection-observer@^8.26.2:
dependencies:
tiny-invariant "^1.1.0"
-react-is@^16.6.0, react-is@^16.6.3, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.6, react-is@^16.9.0:
- version "16.9.0"
- resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.9.0.tgz#21ca9561399aad0ff1a7701c01683e8ca981edcb"
- integrity sha512-tJBzzzIgnnRfEm046qRcURvwQnZVXmuCbscxUO5RWrGTXpon2d4c8mI0D8WE6ydVIm29JiLB6+RslkIvym9Rjw==
+react-is@^16.12.0, react-is@^16.13.1, react-is@^16.6.0, react-is@^16.6.3, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.6:
+ version "16.13.1"
+ resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
+ integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
react-lifecycles-compat@^3.0.4:
version "3.0.4"
@@ -10775,13 +11056,14 @@ react-node-resolver@^1.0.1:
resolved "https://registry.yarnpkg.com/react-node-resolver/-/react-node-resolver-1.0.1.tgz#1798a729c0e218bf2f0e8ddf79c550d4af61d83a"
integrity sha1-F5inKcDiGL8vDo3fecVQ1K9h2Do=
-react-popper@^1.3.4:
- version "1.3.4"
- resolved "https://registry.yarnpkg.com/react-popper/-/react-popper-1.3.4.tgz#f0cd3b0d30378e1f663b0d79bcc8614221652ced"
- integrity sha512-9AcQB29V+WrBKk6X7p0eojd1f25/oJajVdMZkywIoAV6Ag7hzE1Mhyeup2Q1QnvFRtGQFQvtqfhlEoDAPfKAVA==
+react-popper@^1.3.7:
+ version "1.3.7"
+ resolved "https://registry.yarnpkg.com/react-popper/-/react-popper-1.3.7.tgz#f6a3471362ef1f0d10a4963673789de1baca2324"
+ integrity sha512-nmqYTx7QVjCm3WUZLeuOomna138R1luC4EqkW3hxJUrAe+3eNz3oFCLYdnPwILfn0mX1Ew2c3wctrjlUMYYUww==
dependencies:
"@babel/runtime" "^7.1.2"
create-react-context "^0.3.0"
+ deep-equal "^1.1.1"
popper.js "^1.14.4"
prop-types "^15.6.1"
typed-styles "^0.0.7"
@@ -10911,15 +11193,15 @@ react-static@^5.9.7:
webpack-flush-chunks "^1.2.3"
webpack-node-externals "^1.6.0"
-react-test-renderer@^16.0.0-0, react-test-renderer@^16.9.0:
- version "16.9.0"
- resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.9.0.tgz#7ed657a374af47af88f66f33a3ef99c9610c8ae9"
- integrity sha512-R62stB73qZyhrJo7wmCW9jgl/07ai+YzvouvCXIJLBkRlRqLx4j9RqcLEAfNfU3OxTGucqR2Whmn3/Aad6L3hQ==
+react-test-renderer@^16.0.0-0, react-test-renderer@^16.13.1:
+ version "16.13.1"
+ resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.13.1.tgz#de25ea358d9012606de51e012d9742e7f0deabc1"
+ integrity sha512-Sn2VRyOK2YJJldOqoh8Tn/lWQ+ZiKhyZTPtaO0Q6yNj+QDbmRkVFap6pZPy3YQk8DScRDfyqm/KxKYP9gCMRiQ==
dependencies:
object-assign "^4.1.1"
prop-types "^15.6.2"
- react-is "^16.9.0"
- scheduler "^0.15.0"
+ react-is "^16.8.6"
+ scheduler "^0.19.1"
react-universal-component@^2.8.1, react-universal-component@^3.0.3:
version "3.0.3"
@@ -10953,14 +11235,6 @@ read-pkg-up@^2.0.0:
find-up "^2.0.0"
read-pkg "^2.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"
- integrity sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==
- dependencies:
- find-up "^3.0.0"
- read-pkg "^3.0.0"
-
read-pkg-up@^7.0.1:
version "7.0.1"
resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507"
@@ -10988,24 +11262,6 @@ read-pkg@^2.0.0:
normalize-package-data "^2.3.2"
path-type "^2.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"
- integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=
- dependencies:
- load-json-file "^4.0.0"
- normalize-package-data "^2.3.2"
- path-type "^3.0.0"
-
-read-pkg@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-4.0.1.tgz#963625378f3e1c4d48c85872b5a6ec7d5d093237"
- integrity sha1-ljYlN48+HE1IyFhytabsfV0JMjc=
- dependencies:
- normalize-package-data "^2.3.2"
- parse-json "^4.0.0"
- pify "^3.0.0"
-
read-pkg@^5.2.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc"
@@ -11037,7 +11293,7 @@ readable-stream@1.0:
isarray "0.0.1"
string_decoder "~0.10.x"
-"readable-stream@2 || 3":
+"readable-stream@2 || 3", readable-stream@^3.1.1, readable-stream@^3.4.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
@@ -11064,6 +11320,13 @@ readdirp@^2.0.0, readdirp@^2.2.1:
micromatch "^3.1.10"
readable-stream "^2.0.2"
+readdirp@~3.3.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.3.0.tgz#984458d13a1e42e2e9f5841b129e162f369aff17"
+ integrity sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ==
+ dependencies:
+ picomatch "^2.0.7"
+
readdirp@~3.4.0:
version "3.4.0"
resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada"
@@ -11114,19 +11377,15 @@ reduce-function-call@^1.0.1:
dependencies:
balanced-match "^0.4.2"
-reflect-metadata@^0.1.12:
- version "0.1.12"
- resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.12.tgz#311bf0c6b63cd782f228a81abe146a2bfa9c56f2"
-
reflect.ownkeys@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/reflect.ownkeys/-/reflect.ownkeys-0.2.0.tgz#749aceec7f3fdf8b63f927a04809e90c5c0b3460"
integrity sha1-dJrO7H8/34tj+SegSAnpDFwLNGA=
-regenerate-unicode-properties@^8.0.2:
- version "8.1.0"
- resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e"
- integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==
+regenerate-unicode-properties@^8.2.0:
+ version "8.2.0"
+ resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec"
+ integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==
dependencies:
regenerate "^1.4.0"
@@ -11142,14 +11401,10 @@ regenerator-runtime@^0.11.0:
version "0.11.0"
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz#7e54fe5b5ccd5d6624ea6255c3473be090b802e1"
-regenerator-runtime@^0.12.0:
- version "0.12.1"
- resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de"
-
-regenerator-runtime@^0.13.2:
- version "0.13.2"
- resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz#32e59c9a6fb9b1a4aff09b4930ca2d4477343447"
- integrity sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA==
+regenerator-runtime@^0.13.4:
+ version "0.13.7"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55"
+ integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==
regenerator-transform@^0.10.0:
version "0.10.1"
@@ -11159,12 +11414,12 @@ regenerator-transform@^0.10.0:
babel-types "^6.19.0"
private "^0.1.6"
-regenerator-transform@^0.14.0:
- version "0.14.0"
- resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.0.tgz#2ca9aaf7a2c239dd32e4761218425b8c7a86ecaf"
- integrity sha512-rtOelq4Cawlbmq9xuMR5gdFmv7ku/sFoB7sRiywx7aq53bc52b4j6zvH7Te1Vt/X2YveDKnCGUbioieU7FEL3w==
+regenerator-transform@^0.14.2:
+ version "0.14.5"
+ resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4"
+ integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==
dependencies:
- private "^0.1.6"
+ "@babel/runtime" "^7.8.4"
regex-cache@^0.4.2:
version "0.4.4"
@@ -11179,19 +11434,22 @@ regex-not@^1.0.0, regex-not@^1.0.2:
extend-shallow "^3.0.2"
safe-regex "^1.1.0"
-regexp-tree@^0.1.6:
- version "0.1.10"
- resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.10.tgz#d837816a039c7af8a8d64d7a7c3cf6a1d93450bc"
- integrity sha512-K1qVSbcedffwuIslMwpe6vGlj+ZXRnGkvjAtFHfDZZZuEdA/h0dxljAPu9vhUo6Rrx2U2AwJ+nSQ6hK+lrP5MQ==
+regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75"
+ integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.17.0-next.1"
regexpp@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-1.1.0.tgz#0e3516dd0b7904f413d2d4193dce4618c3a689ab"
-regexpp@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f"
- integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==
+regexpp@^3.0.0, regexpp@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2"
+ integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==
regexpu-core@^1.0.0:
version "1.0.0"
@@ -11209,17 +11467,17 @@ regexpu-core@^2.0.0:
regjsgen "^0.2.0"
regjsparser "^0.1.4"
-regexpu-core@^4.5.4:
- version "4.5.4"
- resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.5.4.tgz#080d9d02289aa87fe1667a4f5136bc98a6aebaae"
- integrity sha512-BtizvGtFQKGPUcTy56o3nk1bGRp4SZOTYrDtGNlqCQufptV5IkkLN6Emw+yunAJjzf+C9FQFtvq7IoA3+oMYHQ==
+regexpu-core@^4.7.0:
+ version "4.7.0"
+ resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938"
+ integrity sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==
dependencies:
regenerate "^1.4.0"
- regenerate-unicode-properties "^8.0.2"
- regjsgen "^0.5.0"
- regjsparser "^0.6.0"
+ regenerate-unicode-properties "^8.2.0"
+ regjsgen "^0.5.1"
+ regjsparser "^0.6.4"
unicode-match-property-ecmascript "^1.0.4"
- unicode-match-property-value-ecmascript "^1.1.0"
+ unicode-match-property-value-ecmascript "^1.2.0"
registry-auth-token@3.3.2, registry-auth-token@^3.0.1:
version "3.3.2"
@@ -11238,10 +11496,10 @@ regjsgen@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7"
-regjsgen@^0.5.0:
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.0.tgz#a7634dc08f89209c2049adda3525711fb97265dd"
- integrity sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==
+regjsgen@^0.5.1:
+ version "0.5.2"
+ resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733"
+ integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==
regjsparser@^0.1.4:
version "0.1.5"
@@ -11249,10 +11507,10 @@ regjsparser@^0.1.4:
dependencies:
jsesc "~0.5.0"
-regjsparser@^0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c"
- integrity sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==
+regjsparser@^0.6.4:
+ version "0.6.4"
+ resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272"
+ integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==
dependencies:
jsesc "~0.5.0"
@@ -11412,13 +11670,6 @@ resolve-cwd@^2.0.0:
dependencies:
resolve-from "^3.0.0"
-resolve-dir@^0.1.0:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-0.1.1.tgz#b219259a5602fac5c5c496ad894a6e8cc430261e"
- dependencies:
- expand-tilde "^1.2.2"
- global-modules "^0.2.3"
-
resolve-dir@^1.0.0, resolve-dir@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43"
@@ -11439,6 +11690,11 @@ resolve-from@^4.0.0:
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
+resolve-from@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
+ integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
+
resolve-options@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/resolve-options/-/resolve-options-1.1.0.tgz#32bb9e39c06d67338dc9378c0d6d6074566ad131"
@@ -11453,11 +11709,7 @@ resolve-url@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
-resolve@1.1.x:
- version "1.1.7"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
-
-resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.3.2, resolve@^1.3.3, resolve@^1.4.0, resolve@^1.5.0, resolve@^1.8.1, resolve@^1.9.0:
+resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.15.1, resolve@^1.17.0, resolve@^1.3.2, resolve@^1.3.3, resolve@^1.4.0, resolve@^1.8.1:
version "1.17.0"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444"
integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==
@@ -11488,9 +11740,10 @@ reusify@^1.0.4:
resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
-rfdc@^1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.1.2.tgz#e6e72d74f5dc39de8f538f65e00c36c18018e349"
+rfdc@^1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.1.4.tgz#ba72cc1367a0ccd9cf81a870b3b58bd3ad07f8c2"
+ integrity sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug==
right-align@^0.1.1:
version "0.1.3"
@@ -11498,14 +11751,14 @@ right-align@^0.1.1:
dependencies:
align-text "^0.1.1"
-rimraf@2.6.3, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3:
+rimraf@2.6.3, rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3:
version "2.6.3"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==
dependencies:
glob "^7.1.3"
-rimraf@^3.0.2:
+rimraf@^3.0.0, rimraf@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
@@ -11530,12 +11783,7 @@ run-async@^2.2.0, run-async@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0"
dependencies:
- is-promise "^2.1.0"
-
-run-node@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/run-node/-/run-node-1.0.0.tgz#46b50b946a2aa2d4947ae1d886e9856fd9cabe5e"
- integrity sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A==
+ is-promise "^2.1.0"
run-parallel@^1.1.9:
version "1.1.9"
@@ -11559,10 +11807,10 @@ rx-lite@*, rx-lite@^4.0.8:
version "4.0.8"
resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444"
-rxjs@^6.3.3, rxjs@^6.4.0:
- version "6.4.0"
- resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.4.0.tgz#f3bb0fe7bda7fb69deac0c16f17b50b0b8790504"
- integrity sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==
+rxjs@^6.6.0:
+ version "6.6.0"
+ resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.0.tgz#af2901eedf02e3a83ffa7f886240ff9018bbec84"
+ integrity sha512-3HMA8z/Oz61DUHe+SdOiQyzIf4tOx5oQHmMir7IZEu6TMqCLHT4LRcmNaUS0NwOz8VLvmmBduMsoaUvMaIiqzg==
dependencies:
tslib "^1.9.0"
@@ -11607,6 +11855,14 @@ scheduler@^0.15.0:
loose-envify "^1.1.0"
object-assign "^4.1.1"
+scheduler@^0.19.1:
+ version "0.19.1"
+ resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196"
+ integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==
+ dependencies:
+ loose-envify "^1.1.0"
+ object-assign "^4.1.1"
+
schema-utils@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.3.0.tgz#f5877222ce3e931edae039f17eb3716e7137f8cf"
@@ -11630,7 +11886,7 @@ schema-utils@^1.0.0:
ajv-errors "^1.0.0"
ajv-keywords "^3.1.0"
-schema-utils@^2.6.6:
+schema-utils@^2.6.5, schema-utils@^2.6.6, schema-utils@^2.7.0:
version "2.7.0"
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7"
integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==
@@ -11682,17 +11938,27 @@ semver-greatest-satisfied-range@^1.1.0:
dependencies:
sver-compat "^1.5.0"
-"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:
- version "5.7.0"
- resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b"
- integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==
+semver-regex@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338"
+ integrity sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==
+
+"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:
+ version "5.7.1"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
+ integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
+
+semver@7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e"
+ integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==
-semver@7.3.2:
+semver@7.3.2, semver@^7.2.1, semver@^7.3.2:
version "7.3.2"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938"
integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==
-semver@^6.0.0, semver@^6.1.1:
+semver@^6.0.0, semver@^6.3.0:
version "6.3.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
@@ -11741,6 +12007,11 @@ sentence-case@^2.1.0:
no-case "^2.2.0"
upper-case-first "^1.1.2"
+serialize-javascript@3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-3.0.0.tgz#492e489a2d77b7b804ad391a5f5d97870952548e"
+ integrity sha512-skZcHYw2vEX4bw90nAr2iTTsz6x2SrHEnfxgKYmZlvJYBEZrvbKtobJWlQ20zczKb3bsHHXXTYt48zBA7ni9cw==
+
serialize-javascript@^1.4.0:
version "1.6.1"
resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.6.1.tgz#4d1f697ec49429a847ca6f442a2a755126c4d879"
@@ -11851,6 +12122,13 @@ sha.js@^2.4.0, sha.js@^2.4.8:
inherits "^2.0.1"
safe-buffer "^5.0.1"
+shallow-clone@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3"
+ integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==
+ dependencies:
+ kind-of "^6.0.2"
+
shallowequal@^1.0.1, shallowequal@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8"
@@ -11861,10 +12139,22 @@ shebang-command@^1.2.0:
dependencies:
shebang-regex "^1.0.0"
+shebang-command@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
+ integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
+ dependencies:
+ shebang-regex "^3.0.0"
+
shebang-regex@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
+shebang-regex@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
+ integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
+
shell-quote@1.6.1:
version "1.6.1"
resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767"
@@ -11890,38 +12180,39 @@ shorthash@^0.0.2:
version "0.0.2"
resolved "https://registry.yarnpkg.com/shorthash/-/shorthash-0.0.2.tgz#59b268eecbde59038b30da202bcfbddeb2c4a4eb"
+side-channel@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.2.tgz#df5d1abadb4e4bf4af1cd8852bf132d2f7876947"
+ integrity sha512-7rL9YlPHg7Ancea1S96Pa8/QWb4BtXL/TZvS6B8XFetGBeuhAsfmUspK6DokBeZ64+Kj9TCNRD/30pVz1BvQNA==
+ dependencies:
+ es-abstract "^1.17.0-next.1"
+ object-inspect "^1.7.0"
+
signal-exit@^3.0.0, signal-exit@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
-simple-git@^1.85.0:
- version "1.107.0"
- resolved "https://registry.yarnpkg.com/simple-git/-/simple-git-1.107.0.tgz#12cffaf261c14d6f450f7fdb86c21ccee968b383"
- integrity sha512-t4OK1JRlp4ayKRfcW6owrWcRVLyHRUlhGd0uN6ZZTqfDq8a5XpcUdOKiGRNobHEuMtNqzp0vcJNvhYWwh5PsQA==
- dependencies:
- debug "^4.0.1"
-
simulant@^0.2.2:
version "0.2.2"
resolved "https://registry.yarnpkg.com/simulant/-/simulant-0.2.2.tgz#f1bce52712b6a7a0da38ddfdda7e83b20b1da01e"
-sinon-chai@^3.3.0:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/sinon-chai/-/sinon-chai-3.3.0.tgz#8084ff99451064910fbe2c2cb8ab540c00b740ea"
- integrity sha512-r2JhDY7gbbmh5z3Q62pNbrjxZdOAjpsqW/8yxAZRSqLZqowmfGZPGUZPFf3UX36NLis0cv8VEM5IJh9HgkSOAA==
-
-sinon@^7.2.7:
- version "7.2.7"
- resolved "https://registry.yarnpkg.com/sinon/-/sinon-7.2.7.tgz#ee90f83ce87d9a6bac42cf32a3103d8c8b1bfb68"
- integrity sha512-rlrre9F80pIQr3M36gOdoCEWzFAMDgHYD8+tocqOw+Zw9OZ8F84a80Ds69eZfcjnzDqqG88ulFld0oin/6rG/g==
- dependencies:
- "@sinonjs/commons" "^1.3.1"
- "@sinonjs/formatio" "^3.2.1"
- "@sinonjs/samsam" "^3.2.0"
- diff "^3.5.0"
- lolex "^3.1.0"
- nise "^1.4.10"
- supports-color "^5.5.0"
+sinon-chai@^3.5.0:
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/sinon-chai/-/sinon-chai-3.5.0.tgz#c9a78304b0e15befe57ef68e8a85a00553f5c60e"
+ integrity sha512-IifbusYiQBpUxxFJkR3wTU68xzBN0+bxCScEaKMjBvAQERg6FnTTc1F17rseLb1tjmkJ23730AXpFI0c47FgAg==
+
+sinon@^9.0.2:
+ version "9.0.2"
+ resolved "https://registry.yarnpkg.com/sinon/-/sinon-9.0.2.tgz#b9017e24633f4b1c98dfb6e784a5f0509f5fd85d"
+ integrity sha512-0uF8Q/QHkizNUmbK3LRFqx5cpTttEVXudywY9Uwzy8bTfZUhljZ7ARzSxnRHWYWtVTeh4Cw+tTb3iU21FQVO9A==
+ dependencies:
+ "@sinonjs/commons" "^1.7.2"
+ "@sinonjs/fake-timers" "^6.0.1"
+ "@sinonjs/formatio" "^5.0.1"
+ "@sinonjs/samsam" "^5.0.3"
+ diff "^4.0.2"
+ nise "^4.0.1"
+ supports-color "^7.1.0"
size-limit@^4.5.5:
version "4.5.5"
@@ -11950,10 +12241,6 @@ slash@^3.0.0:
resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
-slice-ansi@0.0.4:
- version "0.0.4"
- resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35"
-
slice-ansi@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d"
@@ -11969,6 +12256,24 @@ slice-ansi@^2.1.0:
astral-regex "^1.0.0"
is-fullwidth-code-point "^2.0.0"
+slice-ansi@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787"
+ integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==
+ dependencies:
+ ansi-styles "^4.0.0"
+ astral-regex "^2.0.0"
+ is-fullwidth-code-point "^3.0.0"
+
+slice-ansi@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b"
+ integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==
+ dependencies:
+ ansi-styles "^4.0.0"
+ astral-regex "^2.0.0"
+ is-fullwidth-code-point "^3.0.0"
+
snake-case@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-2.1.0.tgz#41bdb1b73f30ec66a04d4e2cad1b76387d4d6d9f"
@@ -12006,43 +12311,55 @@ socket.io-adapter@~1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz#2a805e8a14d6372124dd9159ad4502f8cb07f06b"
-socket.io-client@2.1.1, socket.io-client@^2.1.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.1.1.tgz#dcb38103436ab4578ddb026638ae2f21b623671f"
+socket.io-client@2.3.0, socket.io-client@^2.1.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.3.0.tgz#14d5ba2e00b9bcd145ae443ab96b3f86cbcc1bb4"
+ integrity sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==
dependencies:
backo2 "1.0.2"
base64-arraybuffer "0.1.5"
component-bind "1.0.0"
component-emitter "1.2.1"
- debug "~3.1.0"
- engine.io-client "~3.2.0"
+ debug "~4.1.0"
+ engine.io-client "~3.4.0"
has-binary2 "~1.0.2"
has-cors "1.1.0"
indexof "0.0.1"
object-component "0.0.3"
parseqs "0.0.5"
parseuri "0.0.5"
- socket.io-parser "~3.2.0"
+ socket.io-parser "~3.3.0"
to-array "0.1.4"
-socket.io-parser@~3.2.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.2.0.tgz#e7c6228b6aa1f814e6148aea325b51aa9499e077"
+socket.io-parser@~3.3.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.0.tgz#2b52a96a509fdf31440ba40fed6094c7d4f1262f"
+ integrity sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==
dependencies:
component-emitter "1.2.1"
debug "~3.1.0"
isarray "2.0.1"
-socket.io@2.1.1, socket.io@^2.1.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.1.1.tgz#a069c5feabee3e6b214a75b40ce0652e1cfb9980"
+socket.io-parser@~3.4.0:
+ version "3.4.1"
+ resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.4.1.tgz#b06af838302975837eab2dc980037da24054d64a"
+ integrity sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==
dependencies:
- debug "~3.1.0"
- engine.io "~3.2.0"
+ component-emitter "1.2.1"
+ debug "~4.1.0"
+ isarray "2.0.1"
+
+socket.io@^2.1.0, socket.io@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.3.0.tgz#cd762ed6a4faeca59bc1f3e243c0969311eb73fb"
+ integrity sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg==
+ dependencies:
+ debug "~4.1.0"
+ engine.io "~3.4.0"
has-binary2 "~1.0.2"
socket.io-adapter "~1.1.0"
- socket.io-client "2.1.1"
- socket.io-parser "~3.2.0"
+ socket.io-client "2.3.0"
+ socket.io-parser "~3.4.0"
sockjs-client@1.1.4:
version "1.1.4"
@@ -12089,7 +12406,7 @@ source-map-support@^0.4.15:
dependencies:
source-map "^0.5.6"
-source-map-support@^0.5.9, source-map-support@~0.5.10, source-map-support@~0.5.12:
+source-map-support@^0.5.16, source-map-support@~0.5.10, source-map-support@~0.5.12:
version "0.5.19"
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==
@@ -12101,7 +12418,7 @@ source-map-url@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3"
-source-map@0.5.x, source-map@^0.5.0, source-map@^0.5.1, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1:
+source-map@0.5.x, source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1:
version "0.5.7"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
@@ -12123,13 +12440,6 @@ source-map@^0.7.3:
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
-source-map@~0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d"
- integrity sha1-2rc/vPwrqBm03gO9b26qSBZLP50=
- dependencies:
- amdefine ">=0.0.4"
-
space-separated-tokens@^1.0.0:
version "1.1.2"
resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.2.tgz#e95ab9d19ae841e200808cd96bc7bd0adbbb3412"
@@ -12206,11 +12516,6 @@ stack-trace@0.0.10:
version "0.0.10"
resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0"
-staged-git-files@1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/staged-git-files/-/staged-git-files-1.1.2.tgz#4326d33886dc9ecfa29a6193bf511ba90a46454b"
- integrity sha512-0Eyrk6uXW6tg9PYkhi/V/J4zHp33aNyi2hOCmhFLqLTIhbgqWn5jlSzI+IU0VqrZq6+DbHcabQl/WP6P3BG0QA==
-
standalone-react-addons-pure-render-mixin@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/standalone-react-addons-pure-render-mixin/-/standalone-react-addons-pure-render-mixin-0.1.1.tgz#3c7409f4c79c40de9ac72c616cf679a994f37551"
@@ -12231,10 +12536,6 @@ static-extend@^0.1.1:
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
-statuses@~1.3.1:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e"
-
statuses@~1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087"
@@ -12272,24 +12573,23 @@ stream-shift@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952"
-streamroller@^1.0.1:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-1.0.3.tgz#cb51e7e382f799a9381a5d7490ce3053b325fba3"
- integrity sha512-P7z9NwP51EltdZ81otaGAN3ob+/F88USJE546joNq7bqRNTe6jc74fTBDyynxP4qpIfKlt/CesEYicuMzI0yJg==
+streamroller@^2.2.4:
+ version "2.2.4"
+ resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-2.2.4.tgz#c198ced42db94086a6193608187ce80a5f2b0e53"
+ integrity sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==
dependencies:
- async "^2.6.1"
- date-format "^2.0.0"
- debug "^3.1.0"
- fs-extra "^7.0.0"
- lodash "^4.17.10"
+ date-format "^2.1.0"
+ debug "^4.1.1"
+ fs-extra "^8.1.0"
strict-uri-encode@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
-string-argv@^0.0.2:
- version "0.0.2"
- resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.0.2.tgz#dac30408690c21f3c3630a3ff3a05877bdcbd736"
+string-argv@0.3.1:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da"
+ integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==
string-width@^1.0.1, string-width@^1.0.2:
version "1.0.2"
@@ -12306,7 +12606,7 @@ string-width@^1.0.1, string-width@^1.0.2:
is-fullwidth-code-point "^2.0.0"
strip-ansi "^4.0.0"
-string-width@^3.0.0:
+string-width@^3.0.0, string-width@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==
@@ -12315,13 +12615,35 @@ string-width@^3.0.0:
is-fullwidth-code-point "^2.0.0"
strip-ansi "^5.1.0"
-string.prototype.trim@^1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz#d04de2c89e137f4d7d206f086b5ed2fae6be8cea"
+string-width@^4.1.0, string-width@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5"
+ integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==
dependencies:
- define-properties "^1.1.2"
- es-abstract "^1.5.0"
- function-bind "^1.0.2"
+ emoji-regex "^8.0.0"
+ is-fullwidth-code-point "^3.0.0"
+ strip-ansi "^6.0.0"
+
+string.prototype.matchall@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz#48bb510326fb9fdeb6a33ceaa81a6ea04ef7648e"
+ integrity sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg==
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.17.0"
+ has-symbols "^1.0.1"
+ internal-slot "^1.0.2"
+ regexp.prototype.flags "^1.3.0"
+ side-channel "^1.0.2"
+
+string.prototype.trim@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.1.tgz#141233dff32c82bfad80684d7e5f0869ee0fb782"
+ integrity sha512-MjGFEeqixw47dAMFMtgUro/I0+wNqZB5GKXGt1fFr24u3TzDXCPu7J9Buppzoe3r/LqkSDLDDJzE15RGWDGAVw==
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.17.0-next.1"
+ function-bind "^1.1.1"
string.prototype.trimend@^1.0.1:
version "1.0.1"
@@ -12356,11 +12678,12 @@ string_decoder@~1.1.1:
dependencies:
safe-buffer "~5.1.0"
-stringify-object@^3.2.2:
- version "3.2.2"
- resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.2.2.tgz#9853052e5a88fb605a44cd27445aa257ad7ffbcd"
+stringify-object@^3.3.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629"
+ integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==
dependencies:
- get-own-enumerable-property-symbols "^2.0.1"
+ get-own-enumerable-property-symbols "^3.0.0"
is-obj "^1.0.1"
is-regexp "^1.0.0"
@@ -12376,7 +12699,7 @@ strip-ansi@^4.0.0:
dependencies:
ansi-regex "^3.0.0"
-strip-ansi@^5.0.0, strip-ansi@^5.1.0:
+strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
@@ -12400,6 +12723,11 @@ strip-bom@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
+strip-comments@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/strip-comments/-/strip-comments-2.0.1.tgz#4ad11c3fbcac177a67a40ac224ca339ca1c1ba9b"
+ integrity sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==
+
strip-dirs@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/strip-dirs/-/strip-dirs-2.1.0.tgz#4987736264fc344cf20f6c34aca9d13d1d4ed6c5"
@@ -12410,13 +12738,28 @@ strip-eof@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
+strip-final-newline@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
+ integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
+
strip-indent@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2"
dependencies:
get-stdin "^4.0.1"
-strip-json-comments@2.0.1, strip-json-comments@^2.0.1, strip-json-comments@~2.0.1:
+strip-json-comments@3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7"
+ integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==
+
+strip-json-comments@^3.1.0:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
+ integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
+
+strip-json-comments@~2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
@@ -12458,18 +12801,18 @@ style-to-object@^0.2.1:
dependencies:
css "2.2.4"
-supports-color@6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.0.0.tgz#76cfe742cf1f41bb9b1c29ad03068c05b4c0e40a"
- integrity sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==
+supports-color@7.1.0, supports-color@^7.0.0, supports-color@^7.1.0:
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1"
+ integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==
dependencies:
- has-flag "^3.0.0"
+ has-flag "^4.0.0"
supports-color@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
-supports-color@^3.1.0, supports-color@^3.2.3:
+supports-color@^3.2.3:
version "3.2.3"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6"
dependencies:
@@ -12481,18 +12824,18 @@ supports-color@^4.2.1:
dependencies:
has-flag "^2.0.0"
-supports-color@^5.1.0, supports-color@^5.3.0, supports-color@^5.4.0, supports-color@^5.5.0:
+supports-color@^5.1.0, supports-color@^5.3.0, supports-color@^5.4.0:
version "5.5.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
dependencies:
has-flag "^3.0.0"
-supports-color@^7.0.0, supports-color@^7.1.0:
- version "7.1.0"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1"
- integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==
+supports-color@^6.1.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3"
+ integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==
dependencies:
- has-flag "^4.0.0"
+ has-flag "^3.0.0"
sver-compat@^1.5.0:
version "1.5.0"
@@ -12524,15 +12867,6 @@ swimmer@^1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/swimmer/-/swimmer-1.3.1.tgz#b781f443f951713fd144825f73ddcc86d7ef21c7"
-symbol-observable@^1.1.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804"
-
-synchronous-promise@^2.0.5:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/synchronous-promise/-/synchronous-promise-2.0.6.tgz#de76e0ea2b3558c1e673942e47e714a930fa64aa"
- integrity sha512-TyOuWLwkmtPL49LHCX1caIwHjRzcVd62+GF6h8W/jHOeZUFHpnd2XJDVuUlaTaLPH1nuu2M69mfHr5XbQJnf/g==
-
ta-scripts@^2.5.2:
version "2.5.2"
resolved "https://registry.yarnpkg.com/ta-scripts/-/ta-scripts-2.5.2.tgz#d06ab4d019299952d0b82cb577d13d1a8b24e4e9"
@@ -12574,6 +12908,16 @@ tapable@^1.0.0, tapable@^1.1.3:
resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2"
integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==
+tar-fs@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.0.tgz#d1cdd121ab465ee0eb9ccde2d35049d3f3daf0d5"
+ integrity sha512-9uW5iDvrIMCVpvasdFHW0wJPez0K4JnMZtsuIeDI7HyMGJNxmDZDOCQROr7lXyS+iL/QMpj07qcjGYTSdRFXUg==
+ dependencies:
+ chownr "^1.1.1"
+ mkdirp-classic "^0.5.2"
+ pump "^3.0.0"
+ tar-stream "^2.0.0"
+
tar-stream@^1.5.2:
version "1.6.1"
resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.1.tgz#f84ef1696269d6223ca48f6e1eeede3f7e81f395"
@@ -12586,6 +12930,17 @@ tar-stream@^1.5.2:
to-buffer "^1.1.0"
xtend "^4.0.0"
+tar-stream@^2.0.0:
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.3.tgz#1e2022559221b7866161660f118255e20fa79e41"
+ integrity sha512-Z9yri56Dih8IaK8gncVPx4Wqt86NDmQTSh49XLZgjWpGZL9GK9HKParS2scqHCC4w6X9Gh2jwaU45V47XTKwVA==
+ dependencies:
+ bl "^4.0.1"
+ end-of-stream "^1.4.1"
+ fs-constants "^1.0.0"
+ inherits "^2.0.3"
+ readable-stream "^3.1.1"
+
tar@^4:
version "4.4.2"
resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.2.tgz#60685211ba46b38847b1ae7ee1a24d744a2cd462"
@@ -12645,10 +13000,10 @@ terser-webpack-plugin@^1.4.3:
webpack-sources "^1.4.0"
worker-farm "^1.7.0"
-terser-webpack-plugin@^3.0.7:
- version "3.0.7"
- resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-3.0.7.tgz#db23b946dcca8954da3ebda3675360bceebdc78e"
- integrity sha512-5JqibUOctE6Ou4T00IVGYTQJBOhu24jz0PpqYeitQJJ3hlZY2ZKSwzzuqjmBH8MzbdWMgIefpmHwTkvwm6Q4CQ==
+terser-webpack-plugin@^3.0.8:
+ version "3.0.8"
+ resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-3.0.8.tgz#d1a53442a143e09e00c880e8d77c1e79cb05318b"
+ integrity sha512-ygwK8TYMRTYtSyLB2Mhnt90guQh989CIq/mL/2apwi6rA15Xys4ydNUiH4ah6EZCfQxSk26ZFQilZ4IQ6IZw6A==
dependencies:
cacache "^15.0.5"
find-cache-dir "^3.3.1"
@@ -12678,15 +13033,14 @@ terser@^4.1.2, terser@^4.8.0:
source-map "~0.6.1"
source-map-support "~0.5.12"
-test-exclude@^5.2.3:
- version "5.2.3"
- resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.3.tgz#c3d3e1e311eb7ee405e092dac10aefd09091eac0"
- integrity sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==
+test-exclude@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e"
+ integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==
dependencies:
- glob "^7.1.3"
+ "@istanbuljs/schema" "^0.1.2"
+ glob "^7.1.4"
minimatch "^3.0.4"
- read-pkg-up "^4.0.0"
- require-main-filename "^2.0.0"
text-table@0.2.0, text-table@^0.2.0, text-table@~0.2.0:
version "0.2.0"
@@ -12773,7 +13127,14 @@ title-case@^2.1.0:
no-case "^2.2.0"
upper-case "^1.0.3"
-tmp@0.0.33, tmp@0.0.x, tmp@^0.0.33:
+tmp@0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14"
+ integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==
+ dependencies:
+ rimraf "^3.0.0"
+
+tmp@^0.0.33:
version "0.0.33"
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
dependencies:
@@ -12859,11 +13220,6 @@ toposort@^1.0.0:
version "1.0.6"
resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.6.tgz#c31748e55d210effc00fdcdc7d6e68d7d7bb9cec"
-toposort@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/toposort/-/toposort-2.0.2.tgz#ae21768175d1559d48bef35420b2f4962f09c330"
- integrity sha1-riF2gXXRVZ1IvvNUILL0li8JwzA=
-
traverse@^0.6.6:
version "0.6.6"
resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137"
@@ -12907,83 +13263,29 @@ tryit@^1.0.1:
version "1.0.3"
resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb"
-tslib@1.9.0:
- version "1.9.0"
- resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.0.tgz#e37a86fda8cbbaf23a057f473c9f4dc64e5fc2e8"
-
-tslib@^1.7.1, tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0:
- version "1.9.3"
- resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286"
-
-tslint-config-airbnb@^5.11.1:
- version "5.11.1"
- resolved "https://registry.yarnpkg.com/tslint-config-airbnb/-/tslint-config-airbnb-5.11.1.tgz#51a27fbb8bf24c144d064a274a71da47e7ece617"
- integrity sha512-hkaittm2607vVMe8eotANGN1CimD5tor7uoY3ypg2VTtEcDB/KGWYbJOz58t8LI4cWSyWtgqYQ5F0HwKxxhlkQ==
- dependencies:
- tslint-consistent-codestyle "^1.14.1"
- tslint-eslint-rules "^5.4.0"
- tslint-microsoft-contrib "~5.2.1"
-
-tslint-consistent-codestyle@^1.14.1:
- version "1.15.1"
- resolved "https://registry.yarnpkg.com/tslint-consistent-codestyle/-/tslint-consistent-codestyle-1.15.1.tgz#a0c5cd5a5860d40b659c490d8013c5732e02af8c"
- integrity sha512-38Y3Dz4zcABe/PlPAQSGNEWPGVq0OzcIQR7SEU6dNujp/SgvhxhJOhIhI9gY4r0I3/TNtvVQwARWor9O9LPZWg==
- dependencies:
- "@fimbul/bifrost" "^0.17.0"
- tslib "^1.7.1"
- tsutils "^2.29.0"
-
-tslint-eslint-rules@^5.4.0:
- version "5.4.0"
- resolved "https://registry.yarnpkg.com/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz#e488cc9181bf193fe5cd7bfca213a7695f1737b5"
- dependencies:
- doctrine "0.7.2"
- tslib "1.9.0"
- tsutils "^3.0.0"
-
-tslint-microsoft-contrib@~5.2.1:
- version "5.2.1"
- resolved "https://registry.yarnpkg.com/tslint-microsoft-contrib/-/tslint-microsoft-contrib-5.2.1.tgz#a6286839f800e2591d041ea2800c77487844ad81"
- integrity sha512-PDYjvpo0gN9IfMULwKk0KpVOPMhU6cNoT9VwCOLeDl/QS8v8W2yspRpFFuUS7/c5EIH/n8ApMi8TxJAz1tfFUA==
- dependencies:
- tsutils "^2.27.2 <2.29.0"
-
-tslint@^5.14.0:
- version "5.14.0"
- resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.14.0.tgz#be62637135ac244fc9b37ed6ea5252c9eba1616e"
- integrity sha512-IUla/ieHVnB8Le7LdQFRGlVJid2T/gaJe5VkjzRVSRR6pA2ODYrnfR1hmxi+5+au9l50jBwpbBL34txgv4NnTQ==
+tsconfig-paths@^3.9.0:
+ version "3.9.0"
+ resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz#098547a6c4448807e8fcb8eae081064ee9a3c90b"
+ integrity sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==
dependencies:
- babel-code-frame "^6.22.0"
- builtin-modules "^1.1.1"
- chalk "^2.3.0"
- commander "^2.12.1"
- diff "^3.2.0"
- glob "^7.1.1"
- js-yaml "^3.7.0"
- minimatch "^3.0.4"
- mkdirp "^0.5.1"
- resolve "^1.3.2"
- semver "^5.3.0"
- tslib "^1.8.0"
- tsutils "^2.29.0"
+ "@types/json5" "^0.0.29"
+ json5 "^1.0.1"
+ minimist "^1.2.0"
+ strip-bom "^3.0.0"
-"tsutils@^2.27.2 <2.29.0":
- version "2.28.0"
- resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.28.0.tgz#6bd71e160828f9d019b6f4e844742228f85169a1"
- dependencies:
- tslib "^1.8.1"
+tslib@^1.8.1:
+ version "1.13.0"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043"
+ integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==
-tsutils@^2.29.0:
- version "2.29.0"
- resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99"
- integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==
- dependencies:
- tslib "^1.8.1"
+tslib@^1.9.0:
+ version "1.9.3"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286"
-tsutils@^3.0.0, tsutils@^3.5.0:
- version "3.9.1"
- resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.9.1.tgz#2a40dc742943c71eca6d5c1994fcf999956be387"
- integrity sha512-hrxVtLtPqQr//p8/msPT1X1UYXUjizqSit5d9AQ5k38TcV38NyecL5xODNxa73cLe/5sdiJ+w1FqzDhRBA/anA==
+tsutils@^3.17.1:
+ version "3.17.1"
+ resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759"
+ integrity sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==
dependencies:
tslib "^1.8.1"
@@ -12997,17 +13299,29 @@ tunnel-agent@^0.6.0:
dependencies:
safe-buffer "^5.0.1"
+type-check@^0.4.0, type-check@~0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
+ integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
+ dependencies:
+ prelude-ls "^1.2.1"
+
type-check@~0.3.2:
version "0.3.2"
resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
dependencies:
prelude-ls "~1.1.2"
-type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5:
+type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5, type-detect@^4.0.8:
version "4.0.8"
resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
+type-fest@^0.11.0:
+ version "0.11.0"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1"
+ integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==
+
type-fest@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b"
@@ -13035,14 +13349,15 @@ typedarray@^0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
-typescript@^3.3.3333:
- version "3.3.3333"
- resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.3.3333.tgz#171b2c5af66c59e9431199117a3bcadc66fdcfd6"
- integrity sha512-JjSKsAfuHBE/fB2oZ8NxtRTk5iGcg6hkYXMnZ3Wc+b2RSqejEqTaem11mHASMnFilHrax3sLK0GDzcJrekZYLw==
+typescript@^3.9.5:
+ version "3.9.7"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.7.tgz#98d600a5ebdc38f40cb277522f12dc800e9e25fa"
+ integrity sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==
-ua-parser-js@^0.7.18:
- version "0.7.18"
- resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.18.tgz#a7bfd92f56edfb117083b69e31d2aa8882d4b1ed"
+ua-parser-js@0.7.21, ua-parser-js@^0.7.18:
+ version "0.7.21"
+ resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.21.tgz#853cf9ce93f642f67174273cc34565ae6f308777"
+ integrity sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ==
uglify-js@3.1.x:
version "3.1.10"
@@ -13072,11 +13387,7 @@ uglifyjs-webpack-plugin@^0.4.6:
uglify-js "^2.8.29"
webpack-sources "^1.0.1"
-ultron@~1.1.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c"
-
-unbzip2-stream@^1.0.9:
+unbzip2-stream@^1.0.9, unbzip2-stream@^1.3.3:
version "1.4.3"
resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7"
integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==
@@ -13100,9 +13411,10 @@ undertaker-registry@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/undertaker-registry/-/undertaker-registry-1.0.1.tgz#5e4bda308e4a8a2ae584f9b9a4359a499825cc50"
-undertaker@^1.0.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/undertaker/-/undertaker-1.2.0.tgz#339da4646252d082dc378e708067299750e11b49"
+undertaker@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/undertaker/-/undertaker-1.2.1.tgz#701662ff8ce358715324dfd492a4f036055dfe4b"
+ integrity sha512-71WxIzDkgYk9ZS+spIB8iZXchFhAdEo2YU8xYqBYJ39DIUIqziK78ftm26eecoIY49X0J2MLhG4hr18Yp6/CMA==
dependencies:
arr-flatten "^1.0.1"
arr-map "^2.0.0"
@@ -13137,10 +13449,10 @@ unicode-match-property-ecmascript@^1.0.4:
unicode-canonical-property-names-ecmascript "^1.0.4"
unicode-property-aliases-ecmascript "^1.0.4"
-unicode-match-property-value-ecmascript@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277"
- integrity sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==
+unicode-match-property-value-ecmascript@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531"
+ integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==
unicode-property-aliases-ecmascript@^1.0.4:
version "1.0.4"
@@ -13373,14 +13685,6 @@ user-home@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190"
-useragent@2.3.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/useragent/-/useragent-2.3.0.tgz#217f943ad540cb2128658ab23fc960f6a88c9972"
- integrity sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw==
- dependencies:
- lru-cache "4.1.x"
- tmp "0.0.x"
-
util-deprecate@^1.0.1, util-deprecate@~1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
@@ -13415,10 +13719,10 @@ uuid@^3.0.1, uuid@^3.3.2:
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131"
integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==
-v8-compile-cache@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.2.tgz#a428b28bb26790734c4fc8bc9fa106fccebf6a6c"
- integrity sha512-1wFuMUIM16MDJRCrpbpuEPTUGmM5QMUg0cr3KFwra2XgOgFcPGDQHDh3CszSCD2Zewc/dh/pamNEW8CbfDebUw==
+v8-compile-cache@^2.0.3, v8-compile-cache@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz#54bc3cdd43317bca91e35dcaf305b1a7237de745"
+ integrity sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==
v8flags@^2.1.1:
version "2.1.1"
@@ -13426,9 +13730,10 @@ v8flags@^2.1.1:
dependencies:
user-home "^1.1.1"
-v8flags@^3.0.1:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-3.0.2.tgz#ad6a78a20a6b23d03a8debc11211e3cc23149477"
+v8flags@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-3.2.0.tgz#b243e3b4dfd731fa774e7492128109a0fe66d656"
+ integrity sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==
dependencies:
homedir-polyfill "^1.0.1"
@@ -13625,24 +13930,22 @@ webpack-bundle-analyzer@^3.8.0:
opener "^1.5.1"
ws "^6.0.0"
-webpack-cli@^3.2.1:
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.2.1.tgz#779c696c82482491f0803907508db2e276ed3b61"
- integrity sha512-jeJveHwz/vwpJ3B8bxEL5a/rVKIpRNJDsKggfKnxuYeohNDW4Y/wB9N/XHJA093qZyS0r6mYL+/crLsIol4WKA==
+webpack-cli@^3.3.12:
+ version "3.3.12"
+ resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.12.tgz#94e9ada081453cd0aa609c99e500012fd3ad2d4a"
+ integrity sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag==
dependencies:
- chalk "^2.4.1"
+ chalk "^2.4.2"
cross-spawn "^6.0.5"
- enhanced-resolve "^4.1.0"
- findup-sync "^2.0.0"
- global-modules "^1.0.0"
- global-modules-path "^2.3.0"
+ enhanced-resolve "^4.1.1"
+ findup-sync "^3.0.0"
+ global-modules "^2.0.0"
import-local "^2.0.0"
- interpret "^1.1.0"
- lightercollective "^0.1.0"
- loader-utils "^1.1.0"
- supports-color "^5.5.0"
- v8-compile-cache "^2.0.2"
- yargs "^12.0.4"
+ interpret "^1.4.0"
+ loader-utils "^1.4.0"
+ supports-color "^6.1.0"
+ v8-compile-cache "^2.1.1"
+ yargs "^13.3.2"
webpack-dev-middleware@1.12.2:
version "1.12.2"
@@ -13654,14 +13957,15 @@ webpack-dev-middleware@1.12.2:
range-parser "^1.0.3"
time-stamp "^2.0.0"
-webpack-dev-middleware@^3.2.0, webpack-dev-middleware@^3.5.0:
- version "3.6.1"
- resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.6.1.tgz#91f2531218a633a99189f7de36045a331a4b9cd4"
- integrity sha512-XQmemun8QJexMEvNFbD2BIg4eSKrmSIMrTfnl2nql2Sc6OGAYFyb8rwuYrCjl/IiEYYuyTEiimMscu7EXji/Dw==
+webpack-dev-middleware@^3.7.0, webpack-dev-middleware@^3.7.2:
+ version "3.7.2"
+ resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3"
+ integrity sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==
dependencies:
memory-fs "^0.4.1"
- mime "^2.3.1"
- range-parser "^1.0.3"
+ mime "^2.4.4"
+ mkdirp "^0.5.1"
+ range-parser "^1.2.1"
webpack-log "^2.0.0"
webpack-dev-server@^2.8.2:
@@ -13803,7 +14107,19 @@ which-module@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
-which@1.3.1, which@^1.1.1, which@^1.2.1, which@^1.2.10, which@^1.2.12, which@^1.2.14, which@^1.2.9:
+which-pm-runs@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb"
+ integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=
+
+which@2.0.2, which@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
+ integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
+ dependencies:
+ isexe "^2.0.0"
+
+which@^1.2.1, which@^1.2.14, which@^1.2.9, which@^1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
@@ -13831,18 +14147,23 @@ window-size@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075"
+word-wrap@^1.2.3:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
+ integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
+
wordwrap@0.0.2:
version "0.0.2"
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"
-wordwrap@^1.0.0, wordwrap@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
-
wordwrap@~0.0.2:
version "0.0.3"
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
+wordwrap@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
+
worker-farm@^1.5.2, worker-farm@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8"
@@ -13850,6 +14171,11 @@ worker-farm@^1.5.2, worker-farm@^1.7.0:
dependencies:
errno "~0.1.7"
+workerpool@6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.0.0.tgz#85aad67fa1a2c8ef9386a1b43539900f61d03d58"
+ integrity sha512-fU2OcNA/GVAJLLyKUoHkAgIhKb0JoCpSjLC/G2vYKxUjVmQwGbRVeoPJ1a8U4pnVofz4AQV5Y/NEw8oKqxEBtA==
+
wrap-ansi@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
@@ -13857,17 +14183,28 @@ wrap-ansi@^2.0.0:
string-width "^1.0.1"
strip-ansi "^3.0.1"
-wrap-ansi@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba"
- integrity sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo=
+wrap-ansi@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09"
+ integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==
dependencies:
- string-width "^2.1.1"
- strip-ansi "^4.0.0"
+ ansi-styles "^3.2.0"
+ string-width "^3.0.0"
+ strip-ansi "^5.0.0"
+
+wrap-ansi@^6.2.0:
+ version "6.2.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"
+ integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==
+ dependencies:
+ ansi-styles "^4.0.0"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
wrappy@1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+ integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
write-file-atomic@^2.0.0:
version "2.3.0"
@@ -13897,12 +14234,6 @@ ws@^4.0.0:
async-limiter "~1.0.0"
safe-buffer "~5.1.0"
-ws@^5.1.1:
- version "5.2.2"
- resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f"
- dependencies:
- async-limiter "~1.0.0"
-
ws@^6.0.0:
version "6.2.1"
resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb"
@@ -13910,13 +14241,17 @@ ws@^6.0.0:
dependencies:
async-limiter "~1.0.0"
-ws@~3.3.1:
- version "3.3.3"
- resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2"
+ws@^7.1.2, ws@^7.2.3:
+ version "7.3.1"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.1.tgz#d0547bf67f7ce4f12a72dfe31262c68d7dc551c8"
+ integrity sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==
+
+ws@~6.1.0:
+ version "6.1.4"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.4.tgz#5b5c8800afab925e94ccb29d153c8d02c1776ef9"
+ integrity sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==
dependencies:
async-limiter "~1.0.0"
- safe-buffer "~5.1.0"
- ultron "~1.1.0"
x-is-string@^0.1.0:
version "0.1.0"
@@ -13942,7 +14277,7 @@ y18n@^3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41"
-"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0:
+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==
@@ -13965,10 +14300,18 @@ yaml@^1.7.2:
resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e"
integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==
-yargs-parser@11.1.1, yargs-parser@^11.1.1:
- version "11.1.1"
- resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4"
- integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==
+yargs-parser@13.1.2, yargs-parser@^13.1.2:
+ version "13.1.2"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38"
+ integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==
+ dependencies:
+ camelcase "^5.0.0"
+ decamelize "^1.2.0"
+
+yargs-parser@^18.1.2:
+ version "18.1.3"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0"
+ integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==
dependencies:
camelcase "^5.0.0"
decamelize "^1.2.0"
@@ -13998,32 +14341,30 @@ yargs-parser@^7.0.0:
dependencies:
camelcase "^4.1.0"
-yargs-unparser@1.5.0:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-1.5.0.tgz#f2bb2a7e83cbc87bb95c8e572828a06c9add6e0d"
- integrity sha512-HK25qidFTCVuj/D1VfNiEndpLIeJN78aqgR23nL3y4N0U/91cOAzqfHlF8n2BvoNDcZmJKin3ddNSvOxSr8flw==
+yargs-unparser@1.6.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-1.6.0.tgz#ef25c2c769ff6bd09e4b0f9d7c605fb27846ea9f"
+ integrity sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==
dependencies:
flat "^4.1.0"
- lodash "^4.17.11"
- yargs "^12.0.5"
+ lodash "^4.17.15"
+ yargs "^13.3.0"
-yargs@12.0.5, yargs@^12.0.4, yargs@^12.0.5:
- version "12.0.5"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13"
- integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==
+yargs@13.3.2, yargs@^13.3.0, yargs@^13.3.2:
+ version "13.3.2"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd"
+ integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==
dependencies:
- cliui "^4.0.0"
- decamelize "^1.2.0"
+ cliui "^5.0.0"
find-up "^3.0.0"
- get-caller-file "^1.0.1"
- os-locale "^3.0.0"
+ get-caller-file "^2.0.1"
require-directory "^2.1.1"
- require-main-filename "^1.0.1"
+ require-main-filename "^2.0.0"
set-blocking "^2.0.0"
- string-width "^2.0.0"
+ string-width "^3.0.0"
which-module "^2.0.0"
- y18n "^3.2.1 || ^4.0.0"
- yargs-parser "^11.1.1"
+ y18n "^4.0.0"
+ yargs-parser "^13.1.2"
yargs@6.6.0:
version "6.6.0"
@@ -14043,6 +14384,23 @@ yargs@6.6.0:
y18n "^3.2.1"
yargs-parser "^4.2.0"
+yargs@^15.3.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==
+ dependencies:
+ cliui "^6.0.0"
+ decamelize "^1.2.0"
+ find-up "^4.1.0"
+ get-caller-file "^2.0.1"
+ require-directory "^2.1.1"
+ require-main-filename "^2.0.0"
+ set-blocking "^2.0.0"
+ string-width "^4.2.0"
+ which-module "^2.0.0"
+ y18n "^4.0.0"
+ yargs-parser "^18.1.2"
+
yargs@^4.7.1:
version "4.8.1"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-4.8.1.tgz#c0c42924ca4aaa6b0e6da1739dfb216439f9ddc0"
@@ -14107,13 +14465,7 @@ yargs@~3.10.0:
decamelize "^1.0.0"
window-size "0.1.0"
-yauzl@2.4.1:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005"
- dependencies:
- fd-slicer "~1.0.1"
-
-yauzl@^2.4.2:
+yauzl@^2.10.0, yauzl@^2.4.2:
version "2.10.0"
resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"
integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=
@@ -14125,18 +14477,6 @@ yeast@0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419"
-yup@^0.26.10:
- version "0.26.10"
- resolved "https://registry.yarnpkg.com/yup/-/yup-0.26.10.tgz#3545839663289038faf25facfc07e11fd67c0cb1"
- integrity sha512-keuNEbNSnsOTOuGCt3UJW69jDE3O4P+UHAakO7vSeFMnjaitcmlbij/a3oNb9g1Y1KvSKH/7O1R2PQ4m4TRylw==
- dependencies:
- "@babel/runtime" "7.0.0"
- fn-name "~2.0.1"
- lodash "^4.17.10"
- property-expr "^1.5.0"
- synchronous-promise "^2.0.5"
- toposort "^2.0.2"
-
zwitch@^1.0.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.3.tgz#159fae4b3f737db1e42bf321d3423e4c96688a18"
From 358d1420b897593dbee4fc83fb7a3af5299546a9 Mon Sep 17 00:00:00 2001
From: Oleksandr Fediashov
Date: Tue, 28 Jul 2020 13:33:55 +0200
Subject: [PATCH 44/60] chore: bump dependencies, minor fixes (#4001)
* chore: bump dependencies, minor fixes
* fix formatting errors
* fix formatting errors
* fix docs
---
.babel-preset.js | 18 ++-
.../src/components/CodeSnippet/CodeSnippet.js | 121 +++++++++++++++++-
.../CodeSnippet/CodeSnippetLabel.js | 61 +++++++++
docs/src/components/CodeSnippet/index.js | 13 +-
.../ExampleEditor/ExampleEditorMenu.js | 8 +-
docs/src/components/CopyToClipboard.js | 43 +++----
docs/src/components/Document.js | 5 +-
.../DocumentationPage/components.js | 3 +-
docs/src/pages/Theming.mdx | 4 +-
package.json | 5 +-
static.config.js | 1 -
static.webpack.js | 7 +-
yarn.lock | 68 +++-------
13 files changed, 247 insertions(+), 110 deletions(-)
create mode 100644 docs/src/components/CodeSnippet/CodeSnippetLabel.js
diff --git a/.babel-preset.js b/.babel-preset.js
index fcb3b86ec4..8dd10d83b4 100644
--- a/.babel-preset.js
+++ b/.babel-preset.js
@@ -39,13 +39,6 @@ const plugins = [
removeImport: isUMDBuild,
},
],
- // A plugin for react-static
- isDocsBuild && [
- 'universal-import',
- {
- disableWarnings: true,
- },
- ],
// A plugin for removal of debug in production builds
isLibBuild && [
'filter-imports',
@@ -79,4 +72,15 @@ module.exports = () => ({
plugins: [['istanbul', { include: ['src'] }]],
},
},
+ overrides: [
+ // A workaround to avoid collisions between "babel-plugin-dynamic-import-node" & "universal-import"
+ {
+ test: /react-static-routes.js/,
+ plugins: [
+ ['universal-import', { disableWarnings: true }],
+ '@babel/plugin-transform-modules-commonjs',
+ ],
+ presets: [['@babel/env', { modules: false }]],
+ },
+ ],
})
diff --git a/docs/src/components/CodeSnippet/CodeSnippet.js b/docs/src/components/CodeSnippet/CodeSnippet.js
index f62e75a0c7..ddee457829 100644
--- a/docs/src/components/CodeSnippet/CodeSnippet.js
+++ b/docs/src/components/CodeSnippet/CodeSnippet.js
@@ -1,12 +1,119 @@
-import { CodeSnippet as StardustCodeSnippet } from '@stardust-ui/docs-components'
+import _ from 'lodash'
+import * as Prism from 'prismjs/components/prism-core'
+import prettier from 'prettier/standalone'
+import babel from 'prettier/parser-babel'
+import html from 'prettier/parser-html'
+import PropTypes from 'prop-types'
import React from 'react'
-import NoSSR from '../NoSSR'
+// Order of PrismJS imports there is sensitive
+import 'prismjs/components/prism-clike'
+import 'prismjs/components/prism-json'
+import 'prismjs/components/prism-markup'
+import 'prismjs/components/prism-bash'
+import 'prismjs/components/prism-javascript'
+import 'prismjs/components/prism-jsx'
-const CodeSnippet = (props) => (
-
-
-
-)
+import CodeSnippetLabel from './CodeSnippetLabel'
+
+const prettierConfig = {
+ htmlWhitespaceSensitivity: 'ignore',
+ printWidth: 100,
+ tabWidth: 2,
+ semi: false,
+ singleQuote: true,
+ trailingComma: 'all',
+ plugins: {
+ babel,
+ html,
+ },
+}
+
+const normalizeToString = (value) => {
+ if (Array.isArray(value)) {
+ return value.join('\n')
+ }
+
+ return _.isObject(value) ? JSON.stringify(value, null, 2) : value
+}
+
+export const prettifyCode = (code, parser) => {
+ const formatted = prettier.format(code, {
+ ...prettierConfig,
+ // a narrower print width is more friendly to doc examples
+ parser,
+ })
+
+ return formatted.replace(/^; val.replace(/^/g, '$ '),
+ json: (val) => prettifyCode(val, 'json'),
+ js: (val = '') => prettifyCode(val, 'babel'),
+ jsx: (val = '') => prettifyCode(val, 'babel'),
+ html: (val = '') => prettifyCode(val, 'html'),
+}
+
+export const formatCode = (code, mode) => {
+ if (!code) return ''
+ const formatter = formatters[mode]
+
+ return (
+ formatter(normalizeToString(code))
+ // remove eof line break, they are not helpful for snippets
+ .replace(/\n$/, '')
+ )
+}
+
+const CodeSnippet = React.memo((props) => {
+ const {
+ className,
+ copyable = true,
+ fitted,
+ formattable = true,
+ label,
+ mode = 'jsx',
+ value,
+ } = props
+
+ const codeClassName = `language-${mode}`
+ const code = formattable ? formatCode(value, mode) : value
+ const codeRef = React.useRef(null)
+
+ React.useLayoutEffect(() => {
+ Prism.highlightElement(codeRef.current)
+ })
+
+ return (
+
+ )
+})
+
+CodeSnippet.propTypes = {
+ className: PropTypes.string,
+ copyable: PropTypes.bool,
+ fitted: PropTypes.bool,
+ formattable: PropTypes.bool,
+ label: PropTypes.oneOfType([PropTypes.element, PropTypes.bool]),
+ mode: PropTypes.oneOf(['bash', 'json', 'js', 'jsx', 'html']),
+ style: PropTypes.object,
+ value: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),
+}
export default CodeSnippet
diff --git a/docs/src/components/CodeSnippet/CodeSnippetLabel.js b/docs/src/components/CodeSnippet/CodeSnippetLabel.js
new file mode 100644
index 0000000000..fc070ea351
--- /dev/null
+++ b/docs/src/components/CodeSnippet/CodeSnippetLabel.js
@@ -0,0 +1,61 @@
+import PropTypes from 'prop-types'
+import * as React from 'react'
+
+import { useCopyToClipboard } from '../CopyToClipboard'
+
+const checkIcon = (
+
+
+
+)
+
+const copyIcon = (
+
+
+
+)
+
+const CodeSnippetLabel = (props) => {
+ const { copyable, label, mode, value } = props
+ const hasLabel = label !== false
+
+ const [active, onCopy] = useCopyToClipboard(value)
+
+ return (
+ hasLabel && (
+
+
{label || mode}
+ {copyable &&
{active ? checkIcon : copyIcon}
}
+
+ )
+ )
+}
+
+CodeSnippetLabel.propTypes = {
+ copyable: PropTypes.bool,
+ label: PropTypes.oneOfType([PropTypes.element, PropTypes.bool]),
+ mode: PropTypes.oneOf(['bash', 'json', 'js', 'jsx', 'html']),
+ value: PropTypes.string,
+}
+
+export default CodeSnippetLabel
diff --git a/docs/src/components/CodeSnippet/index.js b/docs/src/components/CodeSnippet/index.js
index 5116355cf9..e558a054b3 100644
--- a/docs/src/components/CodeSnippet/index.js
+++ b/docs/src/components/CodeSnippet/index.js
@@ -1 +1,12 @@
-export default from './CodeSnippet'
+import React from 'react'
+import DefaultCodeSnippet from './CodeSnippet'
+
+import NoSSR from '../NoSSR'
+
+const CodeSnippet = (props) => (
+
+
+
+)
+
+export default CodeSnippet
diff --git a/docs/src/components/ComponentDoc/ExampleEditor/ExampleEditorMenu.js b/docs/src/components/ComponentDoc/ExampleEditor/ExampleEditorMenu.js
index e5660abde7..9a5bbde753 100644
--- a/docs/src/components/ComponentDoc/ExampleEditor/ExampleEditorMenu.js
+++ b/docs/src/components/ComponentDoc/ExampleEditor/ExampleEditorMenu.js
@@ -89,17 +89,15 @@ class ExampleEditorMenu extends PureComponent {
- (
+
+ {(active, onClick) => (
)}
- timeout={1000}
- value={sourceCode}
- />
+
diff --git a/docs/src/components/CopyToClipboard.js b/docs/src/components/CopyToClipboard.js
index efee682a99..007d40724f 100644
--- a/docs/src/components/CopyToClipboard.js
+++ b/docs/src/components/CopyToClipboard.js
@@ -1,41 +1,30 @@
+import copyToClipboard from 'copy-to-clipboard'
import PropTypes from 'prop-types'
import React from 'react'
-import copyToClipboard from 'copy-to-clipboard'
-
-class CopyToClipboard extends React.Component {
- state = {
- active: false,
- }
- timeoutId
+export const useCopyToClipboard = (value, timeout = 3000) => {
+ const [active, setActive] = React.useState(false)
+ const onCopy = React.useCallback(() => {
+ copyToClipboard(typeof value === 'function' ? value() : value)
+ setActive(true)
- componentWillUnmount() {
- clearTimeout(this.timeoutId)
- }
+ const timeoutId = setTimeout(() => setActive(false), timeout)
- handleClick = () => {
- const { timeout, value } = this.props
+ return () => clearTimeout(timeoutId)
+ }, [timeout, value])
- clearTimeout(this.timeoutId)
-
- this.setState({ active: true })
- this.timeoutId = setTimeout(() => {
- this.setState({ active: false })
- }, timeout)
-
- copyToClipboard(value)
- }
+ return [active, onCopy]
+}
- render() {
- const { render } = this.props
- const { active } = this.state
+export const CopyToClipboard = (props) => {
+ const { children, timeout, value } = props
+ const [active, onCopy] = useCopyToClipboard(value, timeout)
- return render(active, this.handleClick)
- }
+ return children(active, onCopy)
}
CopyToClipboard.propTypes = {
- render: PropTypes.func.isRequired,
+ children: PropTypes.func.isRequired,
timeout: PropTypes.number,
value: PropTypes.string.isRequired,
}
diff --git a/docs/src/components/Document.js b/docs/src/components/Document.js
index 0b33232df1..5b4e9fc9d5 100644
--- a/docs/src/components/Document.js
+++ b/docs/src/components/Document.js
@@ -27,9 +27,6 @@ const Document = ({ Body, children, Head, Html, siteData: { dev, versions } }) =
-
+```
+
+## Custom themes
-
+Detailed documentation on Semantic UI theming is provided in our [Theming guide](/theming).
-## Bundling
+## Supported Bundling Options
Semantic UI React is fully supported by all modern JavaScript bundlers.
@@ -95,16 +72,11 @@ Semantic UI React is fully compatible with `create-react-app` and works out the
### Webpack 4
-Semantic UI React is fully supported by Webpack 4, including tree shaking as of `semantic-ui-react@0.81.2`.
-
-Please ensure that you build your app in production mode before release. Semantic UI React includes several optimizations in production mode, such as stripping `propTypes` from your build.
-
-
+Semantic UI React is fully supported by Webpack 4. Please ensure that you build your app in [production mode](https://webpack.js.org/guides/production/) before release. Semantic UI React includes several optimizations in production mode, such as stripping `propTypes` from your build.
## Examples
-For examples on how to import and use Semantic UI React components, click the code icon
-( ) next to any example. Here are a few direct links:
+For examples on how to import and use Semantic UI React components, click the code icon ( ) next to any example. Here are a few direct links:
- [Button](/elements/button#button-example-button)
- [List](/elements/list#list-example-list)
From cf945ccb4a0509e7587130d37a4e85052808d353 Mon Sep 17 00:00:00 2001
From: Yoshiaki Sugimoto
Date: Tue, 28 Jul 2020 21:25:41 +0900
Subject: [PATCH 46/60] fix(Search): fix an error when `showNoResults=false`
and arrow down is pressed (#3938)
Co-authored-by: Oleksandr Fediashov
---
src/modules/Search/Search.js | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/modules/Search/Search.js b/src/modules/Search/Search.js
index 5af6b7f33e..7e6c52ea07 100644
--- a/src/modules/Search/Search.js
+++ b/src/modules/Search/Search.js
@@ -328,6 +328,8 @@ export default class Search extends Component {
// Do not access document when server side rendering
if (!isBrowser()) return
const menu = document.querySelector('.ui.search.active.visible .results.visible')
+ if (!menu) return
+ debug(`menu (results): ${menu}`)
const item = menu.querySelector('.result.active')
if (!item) return
debug(`menu (results): ${menu}`)
From 28b5ffbf4125e42a3ef4eddb317cffaff5e901ac Mon Sep 17 00:00:00 2001
From: Oleksandr Fediashov
Date: Tue, 28 Jul 2020 14:27:51 +0200
Subject: [PATCH 47/60] docs(README): remove projects dropdown [ci skip]
---
README.md | 35 -----------------------------------
1 file changed, 35 deletions(-)
diff --git a/README.md b/README.md
index bc867155bd..5c98d2a4f9 100644
--- a/README.md
+++ b/README.md
@@ -38,47 +38,12 @@ See the [**Documentation**][2] for an introduction, usage information, and examp
-
-
-
- Amazon Publishing — the full-service publisher of Amazon — [APub.com](https://amazonpublishing.amazon.com)
- Netflix's Edge Developer Experience team's numerous [internal apps](https://github.com/Semantic-Org/Semantic-UI-React/issues/1604)
- Netflix's [flamescope][31]
- Microsoft's [Teams](https://products.office.com/en-US/microsoft-teams/group-chat-software) prototyping
-
- And many more...
-
-
-
## Example Projects
This is a listing of example projects and guides that will help you integrate Semantic UI React into your new or existing projects.
From 64dff6d7945ad7e0afbd17632f14733589c4374c Mon Sep 17 00:00:00 2001
From: Oleksandr Fediashov
Date: Tue, 28 Jul 2020 14:29:25 +0200
Subject: [PATCH 48/60] docs(README): add missing line break [ci skip]
---
README.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/README.md b/README.md
index 5c98d2a4f9..da4c32c613 100644
--- a/README.md
+++ b/README.md
@@ -38,6 +38,7 @@ See the [**Documentation**][2] for an introduction, usage information, and examp
+
- Amazon Publishing — the full-service publisher of Amazon — [APub.com](https://amazonpublishing.amazon.com)
- Netflix's Edge Developer Experience team's numerous [internal apps](https://github.com/Semantic-Org/Semantic-UI-React/issues/1604)
From de506d551afa2e51197a6543eb4dac5456af28c2 Mon Sep 17 00:00:00 2001
From: Oleksandr Fediashov
Date: Tue, 28 Jul 2020 14:59:22 +0200
Subject: [PATCH 49/60] docs(README): fix images layout [ci skip]
---
README.md | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/README.md b/README.md
index da4c32c613..0fb8875407 100644
--- a/README.md
+++ b/README.md
@@ -35,10 +35,11 @@ See the [**Documentation**][2] for an introduction, usage information, and examp
## Built With
-
-
-
-
+
+
+
+
+
- Amazon Publishing — the full-service publisher of Amazon — [APub.com](https://amazonpublishing.amazon.com)
- Netflix's Edge Developer Experience team's numerous [internal apps](https://github.com/Semantic-Org/Semantic-UI-React/issues/1604)
From b03ed50eff5eefb6511376c2abb0dcbe48e98a07 Mon Sep 17 00:00:00 2001
From: Eddy Varela
Date: Tue, 28 Jul 2020 09:21:02 -0400
Subject: [PATCH 50/60] docs(TableExampleSortable): your description (#3964)
* docs(TableExampleSortable): your description
Updated for react hooks
* Update TableExampleSortable.js
Co-authored-by: Oleksandr Fediashov
---
.../Table/Variations/TableExampleSortable.js | 122 +++++++++---------
1 file changed, 62 insertions(+), 60 deletions(-)
diff --git a/docs/src/examples/collections/Table/Variations/TableExampleSortable.js b/docs/src/examples/collections/Table/Variations/TableExampleSortable.js
index 73b3c17188..3dfc47f953 100644
--- a/docs/src/examples/collections/Table/Variations/TableExampleSortable.js
+++ b/docs/src/examples/collections/Table/Variations/TableExampleSortable.js
@@ -1,5 +1,5 @@
import _ from 'lodash'
-import React, { Component } from 'react'
+import React from 'react'
import { Table } from 'semantic-ui-react'
const tableData = [
@@ -9,69 +9,71 @@ const tableData = [
{ name: 'Ben', age: 70, gender: 'Male' },
]
-export default class TableExampleSortable extends Component {
- state = {
- column: null,
- data: tableData,
- direction: null,
- }
+function exampleReducer(state, action) {
+ switch (action.type) {
+ case 'CHANGE_SORT':
+ if (state.column === action.column) {
+ return {
+ ...state,
+ data: state.data.reverse(),
+ direction:
+ state.direction === 'ascending' ? 'descending' : 'ascending',
+ }
+ }
- handleSort = (clickedColumn) => () => {
- const { column, data, direction } = this.state
-
- if (column !== clickedColumn) {
- this.setState({
- column: clickedColumn,
- data: _.sortBy(data, [clickedColumn]),
+ return {
+ column: action.column,
+ data: _.sortBy(state.data, [action.column]),
direction: 'ascending',
- })
-
- return
- }
-
- this.setState({
- data: data.reverse(),
- direction: direction === 'ascending' ? 'descending' : 'ascending',
- })
+ }
+ default:
+ throw new Error()
}
+}
- render() {
- const { column, data, direction } = this.state
+function TableExampleSortable() {
+ const [state, dispatch] = React.useReducer(exampleReducer, {
+ column: null,
+ data: tableData,
+ direction: null,
+ })
+ const { column, data, direction } = state
- return (
-
-
-
-
- Name
-
-
- Age
-
-
- Gender
-
+ return (
+
+
+
+ dispatch({ type: 'CHANGE_SORT', column: 'name' })}
+ >
+ Name
+
+ dispatch({ type: 'CHANGE_SORT', column: 'age' })}
+ >
+ Age
+
+ dispatch({ type: 'CHANGE_SORT', column: 'gender' })}
+ >
+ Gender
+
+
+
+
+ {data.map(({ age, gender, name }) => (
+
+ {name}
+ {age}
+ {gender}
-
-
- {_.map(data, ({ age, gender, name }) => (
-
- {name}
- {age}
- {gender}
-
- ))}
-
-
- )
- }
+ ))}
+
+
+ )
}
+
+export default TableExampleSortable
From 0ecf576d9908e077d4bc42458881bcddcb656c87 Mon Sep 17 00:00:00 2001
From: Stefan Wrobel
Date: Tue, 28 Jul 2020 12:37:40 -0700
Subject: [PATCH 51/60] docs(Tab): add note that `grid` prop only applies to
vertical menu (#3957)
Co-authored-by: Oleksandr Fediashov
---
src/modules/Tab/Tab.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/modules/Tab/Tab.js b/src/modules/Tab/Tab.js
index ff865909e3..9e2a57973f 100644
--- a/src/modules/Tab/Tab.js
+++ b/src/modules/Tab/Tab.js
@@ -122,7 +122,7 @@ Tab.propTypes = {
/** Align vertical menu */
menuPosition: PropTypes.oneOf(['left', 'right']),
- /** Shorthand props for the Grid. */
+ /** Shorthand props for the Grid. Only applicable to vertical menus. */
grid: PropTypes.object,
/**
From 28eee26b2bd8104113dc71bd2badcfecdbe4d301 Mon Sep 17 00:00:00 2001
From: Oleksandr Fediashov
Date: Wed, 29 Jul 2020 14:11:10 +0200
Subject: [PATCH 52/60] fix(Dropdown): handle keyboard events for arrows, space
and enter keys locally (#4004)
* fix(Dropdown): handle keyboard events for arrows, space and enter keys locally
* remove only and usused returns
* fix `selectedIndex` on search
---
.../States/DropdownExampleDisabledItem.js | 2 +-
src/modules/Dropdown/Dropdown.js | 203 ++++++++------
test/specs/modules/Dropdown/Dropdown-test.js | 253 ++++++++++--------
3 files changed, 252 insertions(+), 206 deletions(-)
diff --git a/docs/src/examples/modules/Dropdown/States/DropdownExampleDisabledItem.js b/docs/src/examples/modules/Dropdown/States/DropdownExampleDisabledItem.js
index 3335622e5d..5907b169ee 100644
--- a/docs/src/examples/modules/Dropdown/States/DropdownExampleDisabledItem.js
+++ b/docs/src/examples/modules/Dropdown/States/DropdownExampleDisabledItem.js
@@ -8,7 +8,7 @@ const options = [
]
const DropdownExampleDisabledItem = () => (
-
+
)
export default DropdownExampleDisabledItem
diff --git a/src/modules/Dropdown/Dropdown.js b/src/modules/Dropdown/Dropdown.js
index 4d5df6ea85..e8ea5b9def 100644
--- a/src/modules/Dropdown/Dropdown.js
+++ b/src/modules/Dropdown/Dropdown.js
@@ -52,28 +52,17 @@ export default class Dropdown extends Component {
static getAutoControlledStateFromProps(nextProps, computedState, prevState) {
// These values are stored only for a comparison on next getAutoControlledStateFromProps()
- const derivedState = { __value: nextProps.value, __options: nextProps.options }
+ const derivedState = { __options: nextProps.options, __value: computedState.value }
- if (!shallowEqual(nextProps.value, prevState.__value)) {
- derivedState.selectedIndex = getSelectedIndex({
- additionLabel: nextProps.additionLabel,
- additionPosition: nextProps.additionPosition,
- allowAdditions: nextProps.allowAdditions,
- deburr: nextProps.deburr,
- multiple: nextProps.multiple,
- search: nextProps.search,
- selectedIndex: computedState.selectedIndex,
+ // The selected index is only dependent:
+ const shouldComputeSelectedIndex =
+ // On value change
+ !shallowEqual(prevState.__value, computedState.value) ||
+ // On option keys/values, we only check those properties to avoid recursive performance impacts.
+ // https://github.com/Semantic-Org/Semantic-UI-React/issues/3000
+ !_.isEqual(getKeyAndValues(nextProps.options), getKeyAndValues(prevState.__options))
- value: computedState.value,
- options: nextProps.options,
- searchQuery: computedState.searchQuery,
- })
- }
-
- // The selected index is only dependent on option keys/values.
- // We only check those properties to avoid recursive performance impacts.
- // https://github.com/Semantic-Org/Semantic-UI-React/issues/3000
- if (!_.isEqual(getKeyAndValues(nextProps.options), getKeyAndValues(prevState.__options))) {
+ if (shouldComputeSelectedIndex) {
derivedState.selectedIndex = getSelectedIndex({
additionLabel: nextProps.additionLabel,
additionPosition: nextProps.additionPosition,
@@ -94,9 +83,7 @@ export default class Dropdown extends Component {
componentDidMount() {
debug('componentDidMount()')
- const { open, value } = this.state
-
- this.setSelectedIndex(value)
+ const { open } = this.state
if (open) {
this.open(null, false)
@@ -160,6 +147,10 @@ export default class Dropdown extends Component {
} else if (prevState.open && !this.state.open) {
debug('dropdown closed')
}
+
+ if (prevState.selectedIndex !== this.state.selectedIndex) {
+ this.scrollSelectedItemIntoView()
+ }
}
// ----------------------------------------
@@ -177,7 +168,9 @@ export default class Dropdown extends Component {
const { closeOnChange, multiple } = this.props
const shouldClose = _.isUndefined(closeOnChange) ? !multiple : closeOnChange
- if (shouldClose) this.close(e, _.noop)
+ if (shouldClose) {
+ this.close(e, _.noop)
+ }
}
closeOnEscape = (e) => {
@@ -193,16 +186,30 @@ export default class Dropdown extends Component {
debug('moveSelectionOnKeyDown()', keyboardKey.getKey(e))
const { multiple, selectOnNavigation } = this.props
+ const { open } = this.state
+
+ if (!open) {
+ return
+ }
+
const moves = {
[keyboardKey.ArrowDown]: 1,
[keyboardKey.ArrowUp]: -1,
}
const move = moves[keyboardKey.getCode(e)]
- if (move === undefined) return
+ if (move === undefined) {
+ return
+ }
+
e.preventDefault()
- this.moveSelectionBy(move)
- if (!multiple && selectOnNavigation) this.makeSelectedItemActive(e)
+ const nextIndex = this.getSelectedIndexAfterMove(move)
+
+ if (!multiple && selectOnNavigation) {
+ this.makeSelectedItemActive(e, nextIndex)
+ }
+
+ this.setState({ selectedIndex: nextIndex })
}
openOnSpace = (e) => {
@@ -216,35 +223,38 @@ export default class Dropdown extends Component {
openOnArrow = (e) => {
debug('openOnArrow()')
+ const { focus, open } = this.state
- const code = keyboardKey.getCode(e)
- if (!_.includes([keyboardKey.ArrowDown, keyboardKey.ArrowUp], code)) return
- if (this.state.open) return
-
- e.preventDefault()
+ if (focus && !open) {
+ const code = keyboardKey.getCode(e)
- this.open(e)
+ if (code === keyboardKey.ArrowDown || code === keyboardKey.ArrowUp) {
+ e.preventDefault()
+ this.open(e)
+ }
+ }
}
- makeSelectedItemActive = (e) => {
+ makeSelectedItemActive = (e, selectedIndex) => {
const { open, value } = this.state
const { multiple } = this.props
- const item = this.getSelectedItem()
+ const item = this.getSelectedItem(selectedIndex)
const selectedValue = _.get(item, 'value')
// prevent selecting null if there was no selected item value
// prevent selecting duplicate items when the dropdown is closed
- if (_.isNil(selectedValue) || !open) return
+ if (_.isNil(selectedValue) || !open) {
+ return value
+ }
// state value may be undefined
- const newValue = multiple ? _.union(this.state.value, [selectedValue]) : selectedValue
+ const newValue = multiple ? _.union(value, [selectedValue]) : selectedValue
const valueHasChanged = multiple ? !!_.difference(newValue, value).length : newValue !== value
if (valueHasChanged) {
// notify the onChange prop that the user is trying to change value
this.setState({ value: newValue })
- this.setSelectedIndex(newValue)
this.handleChange(e, newValue)
// Heads up! This event handler should be called after `onChange`
@@ -253,18 +263,28 @@ export default class Dropdown extends Component {
_.invoke(this.props, 'onAddItem', e, { ...this.props, value: selectedValue })
}
}
+
+ return value
}
selectItemOnEnter = (e) => {
debug('selectItemOnEnter()', keyboardKey.getKey(e))
const { search } = this.props
+ const { open, selectedIndex } = this.state
+
+ if (!open) {
+ return
+ }
const shouldSelect =
keyboardKey.getCode(e) === keyboardKey.Enter ||
// https://github.com/Semantic-Org/Semantic-UI-React/pull/3766
(!search && keyboardKey.getCode(e) === keyboardKey.Spacebar)
- if (!shouldSelect) return
+ if (!shouldSelect) {
+ return
+ }
+
e.preventDefault()
const optionSize = _.size(
@@ -281,12 +301,36 @@ export default class Dropdown extends Component {
search: this.props.search,
}),
)
- if (search && optionSize === 0) return
- this.makeSelectedItemActive(e)
+ if (search && optionSize === 0) {
+ return
+ }
+
+ const nextValue = this.makeSelectedItemActive(e, selectedIndex)
+
+ // This is required as selected value may be the same
+ this.setState({
+ selectedIndex: getSelectedIndex({
+ additionLabel: this.props.additionLabel,
+ additionPosition: this.props.additionPosition,
+ allowAdditions: this.props.allowAdditions,
+ deburr: this.props.deburr,
+ multiple: this.props.multiple,
+ search: this.props.search,
+ selectedIndex,
+
+ value: nextValue,
+ options: this.props.options,
+ searchQuery: '',
+ }),
+ })
+
this.closeOnChange(e)
this.clearSearchQuery()
- if (search) _.invoke(this.searchRef.current, 'focus')
+
+ if (search) {
+ _.invoke(this.searchRef.current, 'focus')
+ }
}
removeItemOnBackspace = (e) => {
@@ -303,7 +347,6 @@ export default class Dropdown extends Component {
const newValue = _.dropRight(value)
this.setState({ value: newValue })
- this.setSelectedIndex(newValue)
this.handleChange(e, newValue)
}
@@ -385,9 +428,14 @@ export default class Dropdown extends Component {
// prevent toggle() in handleClick()
e.stopPropagation()
+
// prevent closeOnDocumentClick() if multiple or item is disabled
- if (multiple || item.disabled) e.nativeEvent.stopImmediatePropagation()
- if (item.disabled) return
+ if (multiple || item.disabled) {
+ e.nativeEvent.stopImmediatePropagation()
+ }
+ if (item.disabled) {
+ return
+ }
const isAdditionItem = item['data-additional']
const newValue = multiple ? _.union(this.state.value, [value]) : value
@@ -398,12 +446,10 @@ export default class Dropdown extends Component {
// notify the onChange prop that the user is trying to change value
if (valueHasChanged) {
this.setState({ value: newValue })
- this.setSelectedIndex(value)
-
this.handleChange(e, newValue)
}
- this.clearSearchQuery(value)
+ this.clearSearchQuery()
if (search) {
_.invoke(this.searchRef.current, 'focus')
@@ -415,7 +461,9 @@ export default class Dropdown extends Component {
// Heads up! This event handler should be called after `onChange`
// Notify the onAddItem prop if this is a new value
- if (isAdditionItem) _.invoke(this.props, 'onAddItem', e, { ...this.props, value })
+ if (isAdditionItem) {
+ _.invoke(this.props, 'onAddItem', e, { ...this.props, value })
+ }
}
handleFocus = (e) => {
@@ -443,7 +491,7 @@ export default class Dropdown extends Component {
_.invoke(this.props, 'onBlur', e, this.props)
if (selectOnBlur && !multiple) {
- this.makeSelectedItemActive(e)
+ this.makeSelectedItemActive(e, this.state.selectedIndex)
if (closeOnBlur) this.close()
}
@@ -474,12 +522,19 @@ export default class Dropdown extends Component {
if (open && minCharacters !== 1 && newQuery.length < minCharacters) this.close()
}
+ handleKeyDown = (e) => {
+ this.moveSelectionOnKeyDown(e)
+ this.openOnArrow(e)
+ this.selectItemOnEnter(e)
+
+ _.invoke(this.props, 'onKeyDown', e)
+ }
+
// ----------------------------------------
// Getters
// ----------------------------------------
- getSelectedItem = () => {
- const { selectedIndex } = this.state
+ getSelectedItem = (selectedIndex) => {
const options = getMenuOptions({
value: this.state.value,
options: this.props.options,
@@ -532,37 +587,13 @@ export default class Dropdown extends Component {
// Setters
// ----------------------------------------
- clearSearchQuery = (value) => {
+ clearSearchQuery = () => {
debug('clearSearchQuery()')
const { searchQuery } = this.state
if (searchQuery === undefined || searchQuery === '') return
this.setState({ searchQuery: '' })
- this.setSelectedIndex(value, undefined, '')
- }
-
- setSelectedIndex = (
- value = this.state.value,
- optionsProps = this.props.options,
- searchQuery = this.state.searchQuery,
- ) => {
- const newSelectedIndex = getSelectedIndex({
- additionLabel: this.props.additionLabel,
- additionPosition: this.props.additionPosition,
- allowAdditions: this.props.allowAdditions,
- deburr: this.props.deburr,
- multiple: this.props.multiple,
- search: this.props.search,
- // eslint-disable-next-line react/no-access-state-in-setstate
- selectedIndex: this.state.selectedIndex,
-
- value,
- options: optionsProps,
- searchQuery,
- })
-
- this.setState({ selectedIndex: newSelectedIndex })
}
handleLabelClick = (e, labelProps) => {
@@ -586,11 +617,10 @@ export default class Dropdown extends Component {
debug('new value:', newValue)
this.setState({ value: newValue })
- this.setSelectedIndex(newValue)
this.handleChange(e, newValue)
}
- moveSelectionBy = (offset, startIndex = this.state.selectedIndex) => {
+ getSelectedIndexAfterMove = (offset, startIndex = this.state.selectedIndex) => {
debug('moveSelectionBy()')
debug(`offset: ${offset}`)
@@ -627,12 +657,10 @@ export default class Dropdown extends Component {
}
if (options[nextIndex].disabled) {
- this.moveSelectionBy(offset, nextIndex)
- return
+ return this.getSelectedIndexAfterMove(offset, nextIndex)
}
- this.setState({ selectedIndex: nextIndex })
- this.scrollSelectedItemIntoView()
+ return nextIndex
}
// ----------------------------------------
@@ -661,7 +689,6 @@ export default class Dropdown extends Component {
const newValue = multiple ? [] : ''
this.setState({ value: newValue })
- this.setSelectedIndex(newValue)
this.handleChange(e, newValue)
}
@@ -806,7 +833,7 @@ export default class Dropdown extends Component {
renderText = () => {
const { multiple, placeholder, search, text } = this.props
- const { searchQuery, value, open } = this.state
+ const { searchQuery, selectedIndex, value, open } = this.state
const hasValue = this.hasValue()
const classes = cx(
@@ -819,7 +846,7 @@ export default class Dropdown extends Component {
if (text) {
_text = text
} else if (open && !multiple) {
- _text = _.get(this.getSelectedItem(), 'text')
+ _text = _.get(this.getSelectedItem(selectedIndex), 'text')
} else if (hasValue) {
_text = _.get(this.getItemByValue(value), 'text')
}
@@ -1017,6 +1044,7 @@ export default class Dropdown extends Component {
className={classes}
onBlur={this.handleBlur}
onClick={this.handleClick}
+ onKeyDown={this.handleKeyDown}
onMouseDown={this.handleMouseDown}
onFocus={this.handleFocus}
onChange={this.handleChange}
@@ -1033,12 +1061,9 @@ export default class Dropdown extends Component {
{this.renderMenu()}
{open && }
- {open && }
{open && }
- {open && }
{focus && }
- {focus && !open && }
{focus && !open && }
diff --git a/test/specs/modules/Dropdown/Dropdown-test.js b/test/specs/modules/Dropdown/Dropdown-test.js
index 8d9f60d1ab..df1428a642 100644
--- a/test/specs/modules/Dropdown/Dropdown-test.js
+++ b/test/specs/modules/Dropdown/Dropdown-test.js
@@ -432,17 +432,23 @@ describe('Dropdown', () => {
})
it('does not call handleChange if the value has not changed', () => {
- wrapperShallow( )
+ const onChange = sandbox.spy()
- const instance = wrapper.instance()
- wrapper.setState({ selectedIndex: 2, value: options[2].value })
- wrapper.childAt(0).simulate('click', { stopPropagation: _.noop })
+ wrapperMount( )
+
+ // focus, open and select an item
+ wrapper.simulate('click')
+ wrapper.simulate('focus')
dropdownMenuIsOpen()
- sandbox.spy(instance, 'handleChange')
- wrapper.childAt(0).simulate('blur')
+ wrapper.find('DropdownItem').at(2).simulate('click')
+ dropdownMenuIsClosed()
+ onChange.should.have.been.calledOnce()
- instance.handleChange.should.not.have.been.called()
+ wrapper.simulate('click')
+ wrapper.find('DropdownItem').at(2).simulate('click')
+ dropdownMenuIsClosed()
+ onChange.should.have.been.calledOnce()
})
it('sets focus state to false', () => {
@@ -592,7 +598,7 @@ describe('Dropdown', () => {
wrapperMount( )
wrapper.simulate('click')
- domEvent.keyDown(document, { key: 'ArrowDown' })
+ wrapper.simulate('keydown', { key: 'ArrowDown' })
wrapper.should.have.state('selectedIndex', 1)
wrapper.setProps({ options: [] })
@@ -603,7 +609,7 @@ describe('Dropdown', () => {
wrapperMount( )
wrapper.simulate('click')
- domEvent.keyDown(document, { key: 'ArrowDown' })
+ wrapper.simulate('keydown', { key: 'ArrowDown' })
wrapper.should.have.state('selectedIndex', 1)
wrapper.setProps({ options })
@@ -620,8 +626,11 @@ describe('Dropdown', () => {
// open, simulate search and select option
wrapper.simulate('click')
+ wrapper.simulate('keydown', { key: 'ArrowDown' })
+ wrapper.should.have.state('selectedIndex', 1)
+
input.simulate('change', { target: { value: option.text } })
- domEvent.keyDown(document, { key: 'Enter' })
+ wrapper.simulate('keydown', { key: 'Enter' })
wrapper.should.have.state('selectedIndex', 4)
@@ -629,6 +638,24 @@ describe('Dropdown', () => {
wrapper.simulate('click')
wrapper.should.have.state('selectedIndex', 4)
})
+
+ it('keeps "selectedIndex" when the same item was selected', () => {
+ const option = _.last(options)
+
+ wrapperMount( )
+ const input = wrapper.find('input.search')
+
+ // simulate search and select option
+ input.simulate('change', { target: { value: option.text } })
+ wrapper.simulate('keydown', { key: 'Enter' })
+
+ wrapper.should.have.state('selectedIndex', 4)
+
+ // select the same option again
+ input.simulate('change', { target: { value: option.text } })
+ wrapper.simulate('keydown', { key: 'Enter' })
+ wrapper.should.have.state('selectedIndex', 4)
+ })
})
describe('isMouseDown', () => {
@@ -752,8 +779,7 @@ describe('Dropdown', () => {
dropdownMenuIsOpen()
// arrow down
- domEvent.keyDown(document, { key: 'ArrowDown' })
- wrapper.update()
+ wrapper.simulate('keydown', { key: 'ArrowDown' })
// selection moved to second item
wrapper.find('DropdownItem').first().should.have.prop('selected', false)
@@ -766,8 +792,7 @@ describe('Dropdown', () => {
wrapper.simulate('click').find('DropdownItem').first().should.have.prop('selected', true)
// arrow down
- domEvent.keyDown(document, { key: 'ArrowUp' })
- wrapper.update()
+ wrapper.simulate('keydown', { key: 'ArrowUp' })
// selection moved to last item
wrapper.find('DropdownItem').first().should.have.prop('selected', false)
@@ -791,8 +816,7 @@ describe('Dropdown', () => {
wrapper.find('.selected').should.contain.text('a1')
// move selection down
- domEvent.keyDown(document, { key: 'ArrowDown' })
- wrapper.update()
+ wrapper.simulate('keydown', { key: 'ArrowDown' })
wrapper.find('.selected').should.contain.text('a2')
})
@@ -881,7 +905,7 @@ describe('Dropdown', () => {
wrapper.should.have.exactly(1).descendants('.selected').which.contain.text('a1')
// move selection down
- domEvent.keyDown(document, { key: 'ArrowDown' })
+ wrapper.simulate('keydown', { key: 'ArrowDown' })
wrapper.should.have.exactly(1).descendants('.selected').which.contain.text('a2')
})
@@ -898,25 +922,22 @@ describe('Dropdown', () => {
wrapper.find('.selected').should.contain.text('a1')
// move selection down
- domEvent.keyDown(document, { key: 'ArrowDown' })
- wrapper.update()
-
+ wrapper.simulate('keydown', { key: 'ArrowDown' })
wrapper.find('.selected').should.contain.text('a2')
})
it('does not enter an infinite loop when all items are disabled', () => {
+ const onChange = sandbox.spy()
const opts = [
{ text: '1', value: '1', disabled: true },
{ text: '2', value: '2', disabled: true },
]
- wrapperMount( ).simulate('click')
-
- const instance = wrapper.instance()
- sandbox.spy(instance, 'moveSelectionBy')
+ wrapperMount( )
+ wrapper.simulate('click')
// move selection down
- domEvent.keyDown(document, { key: 'ArrowDown' })
+ wrapper.simulate('keydown', { key: 'ArrowDown' })
- instance.moveSelectionBy.should.have.been.calledOnce()
+ onChange.should.have.not.been.called()
})
it('scrolls the selected item into view', () => {
// get enough options to make the menu scrollable
@@ -939,7 +960,7 @@ describe('Dropdown', () => {
wrapper.find('.selected').should.contain.text(opts[0].text)
// wrap selection to last item
- domEvent.keyDown(document, { key: 'ArrowUp' })
+ wrapper.simulate('keydown', { key: 'ArrowUp' })
// make sure last item is selected
wrapper.find('.selected').should.contain.text(_.tail(opts).text)
@@ -955,7 +976,7 @@ describe('Dropdown', () => {
//
// wrap selection to last item
- domEvent.keyDown(document, { key: 'ArrowDown' })
+ wrapper.simulate('keydown', { key: 'ArrowDown' })
// make sure first item is selected
wrapper.find('.selected').should.contain.text(opts[0].text)
@@ -976,9 +997,8 @@ describe('Dropdown', () => {
wrapper.find('DropdownItem').at(1).should.have.props({ selected: false, active: false })
// select and make active
- domEvent.keyDown(document, { key: 'ArrowDown' })
- domEvent.keyDown(document, { key: 'Enter' })
- wrapper.update()
+ wrapper.simulate('keydown', { key: 'ArrowDown' })
+ wrapper.simulate('keydown', { key: 'Enter' })
wrapper.find('DropdownItem').at(1).should.have.props({ selected: true, active: true })
})
@@ -990,9 +1010,8 @@ describe('Dropdown', () => {
wrapper.find('DropdownItem').at(1).should.have.props({ selected: false, active: false })
// select and make active
- domEvent.keyDown(document, { key: 'ArrowDown' })
- domEvent.keyDown(document, { key: 'Spacebar' })
- wrapper.update()
+ wrapper.simulate('keydown', { key: 'ArrowDown' })
+ wrapper.simulate('keydown', { key: 'Spacebar' })
wrapper.find('DropdownItem').at(1).should.have.props({ selected: true, active: true })
})
@@ -1002,7 +1021,7 @@ describe('Dropdown', () => {
dropdownMenuIsOpen()
// choose an item closes
- domEvent.keyDown(document, { key: 'Enter' })
+ wrapper.simulate('keydown', { key: 'Enter' })
dropdownMenuIsClosed()
})
it('closes the menu on SPACE key', () => {
@@ -1011,7 +1030,7 @@ describe('Dropdown', () => {
dropdownMenuIsOpen()
// choose an item closes
- domEvent.keyDown(document, { key: 'Spacebar' })
+ wrapper.simulate('keydown', { key: 'Spacebar' })
dropdownMenuIsClosed()
})
it('closes the Search menu on ENTER key', () => {
@@ -1020,7 +1039,7 @@ describe('Dropdown', () => {
dropdownMenuIsOpen()
// choose an item closes
- domEvent.keyDown(document, { key: 'Enter' })
+ wrapper.simulate('keydown', { key: 'Enter' })
dropdownMenuIsClosed()
})
it('does not close the Search menu on SPACE key', () => {
@@ -1029,7 +1048,7 @@ describe('Dropdown', () => {
dropdownMenuIsOpen()
// choose an item closes
- domEvent.keyDown(document, { key: 'Spacebar' })
+ wrapper.simulate('keydown', { key: 'Spacebar' })
dropdownMenuIsOpen()
})
it('keeps value of the searchQuery when selection is changed', () => {
@@ -1037,7 +1056,7 @@ describe('Dropdown', () => {
wrapper.setState({ searchQuery: 'foo' })
wrapper.simulate('click')
- domEvent.keyDown(document, { key: 'ArrowDown' })
+ wrapper.simulate('keydown', { key: 'ArrowDown' })
wrapper.should.have.state('searchQuery', 'foo')
})
@@ -1097,7 +1116,7 @@ describe('Dropdown', () => {
wrapperMount( )
wrapper.simulate('click')
- domEvent.keyDown(document, { key: 'ArrowDown' })
+ wrapper.simulate('keydown', { key: 'ArrowDown' })
wrapper.should.have.state('value', options[1].value)
})
@@ -1106,7 +1125,7 @@ describe('Dropdown', () => {
wrapperMount( )
wrapper.simulate('click')
- domEvent.keyDown(document, { key: 'ArrowUp' })
+ wrapper.simulate('keydown', { key: 'ArrowUp' })
wrapper.should.have.state('value', options[4].value)
})
@@ -1161,11 +1180,12 @@ describe('Dropdown', () => {
wrapperMount( )
// open and simulate search
- wrapper.simulate('click').setState({ searchQuery: 'fo' })
+ wrapper.simulate('click')
+ wrapper.setState({ searchQuery: 'fo' })
// arrow down
- domEvent.keyDown(document, { key: 'ArrowDown' })
- domEvent.keyDown(document, { key: 'Enter' })
+ wrapper.simulate('keydown', { key: 'ArrowDown' })
+ wrapper.simulate('keydown', { key: 'Enter' })
// text updated
wrapper.find('div.text').should.contain.text('foe')
@@ -1238,40 +1258,42 @@ describe('Dropdown', () => {
it('opens on arrow down when focused', () => {
wrapperMount( )
- // Note: This mousedown is necessary to get the Dropdown focused
- // without it being open.
- .simulate('mousedown')
- .simulate('focus')
+ // Note: This mousedown is necessary to get the Dropdown focused
+ // without it being open.
+ wrapper.simulate('mousedown')
+ wrapper.simulate('focus')
dropdownMenuIsClosed()
- domEvent.keyDown(document, { key: 'ArrowDown' })
+
+ wrapper.simulate('keydown', { key: 'ArrowDown' })
dropdownMenuIsOpen()
})
it('opens on space when focused', () => {
wrapperMount( )
- // Note: This mousedown is necessary to get the Dropdown focused
- // without it being open.
- .simulate('mousedown')
- .simulate('focus')
+ // Note: This mousedown is necessary to get the Dropdown focused
+ // without it being open.
+ wrapper.simulate('mousedown')
+ wrapper.simulate('focus')
dropdownMenuIsClosed()
+
domEvent.keyDown(document, { key: ' ' })
dropdownMenuIsOpen()
})
it('does not open on arrow down when not focused', () => {
wrapperMount( )
-
dropdownMenuIsClosed()
- domEvent.keyDown(document, { key: 'ArrowDown' })
+
+ wrapper.simulate('keydown', { key: 'ArrowDown' })
dropdownMenuIsClosed()
})
it('does not open on space when not focused', () => {
wrapperMount( )
-
dropdownMenuIsClosed()
+
domEvent.keyDown(document, { key: ' ' })
dropdownMenuIsClosed()
})
@@ -1364,7 +1386,7 @@ describe('Dropdown', () => {
const onOpen = sandbox.spy()
wrapperMount( )
- domEvent.keyDown(document, { key: 'ArrowDown' })
+ wrapper.simulate('keydown', { key: 'ArrowDown' })
onOpen.should.not.have.been.calledOnce()
})
@@ -1450,8 +1472,7 @@ describe('Dropdown', () => {
dropdownMenuIsOpen()
// choose an item keeps menu open
- domEvent.keyDown(document, { key: 'Enter' })
-
+ wrapper.simulate('keydown', { key: 'Enter' })
dropdownMenuIsOpen()
})
it('does not close the menu on clicking on an item', () => {
@@ -1489,14 +1510,12 @@ describe('Dropdown', () => {
dropdownMenuIsOpen()
// activate the last item, removing it from the list
- domEvent.keyDown(document, { key: 'ArrowUp' })
- wrapper.update()
+ wrapper.simulate('keydown', { key: 'ArrowUp' })
wrapper.should.have.exactly(options.length).descendants('DropdownItem')
wrapper.find('DropdownItem').last().should.have.prop('selected', true)
- domEvent.keyDown(document, { key: 'Enter' })
- wrapper.update()
+ wrapper.simulate('keydown', { key: 'Enter' })
// one item should be gone, and the _new_ last item should be selected
wrapper.should.have.exactly(options.length - 1).descendants('DropdownItem')
@@ -1721,7 +1740,7 @@ describe('Dropdown', () => {
const firstValue = options[0].value
wrapperMount( ).simulate('click')
- domEvent.keyDown(document, { key: 'Enter' })
+ wrapper.simulate('keydown', { key: 'Enter' })
spy.should.have.been.calledOnce()
spy.should.have.been.calledWithMatch({}, { value: firstValue })
@@ -1956,15 +1975,14 @@ describe('Dropdown', () => {
describe('search', () => {
it('does not add a search input when not defined', () => {
- wrapperShallow( ).should.not.have.descendants(
- 'input.search',
- )
+ wrapperShallow( )
+
+ wrapper.should.not.have.descendants('input.search')
})
it('adds a search input when present', () => {
wrapperShallow( )
- .should.have.exactly(1)
- .descendants(DropdownSearchInput)
+ wrapper.should.have.exactly(1).descendants(DropdownSearchInput)
})
it('sets focus to the search input on open', () => {
@@ -1981,8 +1999,8 @@ describe('Dropdown', () => {
wrapperMount(
,
)
- .find('.default.text')
- .simulate('click')
+
+ wrapper.find('.default.text').simulate('click')
const activeElement = document.activeElement
const searchIsFocused = activeElement === document.querySelector('input.search')
@@ -2030,13 +2048,13 @@ describe('Dropdown', () => {
})
it('does not call onChange on query change', () => {
- const onChangeSpy = sandbox.spy()
- wrapperMount( )
+ const onChange = sandbox.spy()
+ wrapperMount( )
// simulate search
wrapper.find('input.search').simulate('change', { target: { value: faker.hacker.noun() } })
- onChangeSpy.should.not.have.been.called()
+ onChange.should.not.have.been.called()
})
it('filters the items based on display text', () => {
@@ -2076,17 +2094,22 @@ describe('Dropdown', () => {
})
it('sets the selected item to the first search result', () => {
- const search = wrapperMount( ).find(
- 'input.search',
- )
+ const testOptions = [
+ { value: 'foo', key: 'foo', text: 'foo' },
+ { value: 'bar', key: 'bar', text: 'bar' },
+ { value: 'baz', key: 'baz', text: 'baz' },
+ { value: 'qux', key: 'qux', text: 'qux' },
+ ]
+
+ wrapperMount( )
// the first item is selected by default
// avoid it to prevent false positives
+ wrapper.simulate('click')
+ wrapper.simulate('keydown', { key: 'ArrowUp' })
+ wrapper.should.have.state('selectedIndex', 3)
- wrapper.setState({ selectedIndex: _.random(1, options.length - 2) })
-
- search.simulate('change', { target: { value: faker.hacker.noun() } })
-
+ wrapper.find('input.search').simulate('change', { target: { value: 'baz' } })
wrapper.should.have.state('selectedIndex', 0)
})
@@ -2102,8 +2125,7 @@ describe('Dropdown', () => {
// blur, focus, open, move item selection down
wrapper.simulate('blur')
wrapper.simulate('focus')
- domEvent.keyDown(document, { key: 'ArrowDown' })
- wrapper.update()
+ wrapper.simulate('keydown', { key: 'ArrowDown' })
wrapper.find('DropdownItem').at(0).should.have.prop('selected', false)
wrapper.find('DropdownItem').at(1).should.have.prop('selected', true)
@@ -2111,8 +2133,7 @@ describe('Dropdown', () => {
// blur, focus, open, move item selection up
wrapper.simulate('blur')
wrapper.simulate('focus')
- domEvent.keyDown(document, { key: 'ArrowUp' })
- wrapper.update()
+ wrapper.simulate('keydown', { key: 'ArrowUp' })
wrapper.find('DropdownItem').at(0).should.have.prop('selected', true)
wrapper.find('DropdownItem').at(1).should.not.have.prop('selected', true)
@@ -2123,7 +2144,7 @@ describe('Dropdown', () => {
wrapper.simulate('click')
wrapper.find('input.search').simulate('change', { target: { value: 'foo' } })
- domEvent.keyDown(document, { key: 'Enter' })
+ wrapper.simulate('keydown', { key: 'Enter' })
dropdownMenuIsOpen()
})
@@ -2570,7 +2591,8 @@ describe('Dropdown', () => {
it('calls onAddItem prop when pressing enter on new value', () => {
const onAddItem = sandbox.spy()
const onChange = sandbox.spy()
- const search = wrapperMount(
+
+ wrapperMount(
{
search
selection
/>,
- ).find('input.search')
+ )
+ const search = wrapper.find('input.search')
search.simulate('change', { target: { value: 'boo' } })
- domEvent.keyDown(document, { key: 'Enter' })
+ search.simulate('keydown', { key: 'Enter' })
onChange.should.have.been.calledOnce()
onAddItem.should.have.been.calledOnce()
@@ -2591,12 +2614,12 @@ describe('Dropdown', () => {
})
it('clears value of the searchQuery when selection is only option', () => {
- const search = wrapperMount(
- ,
- ).find('input.search')
+ wrapperMount( )
+
+ const search = wrapper.find('input.search')
search.simulate('change', { target: { value: 'boo' } })
- domEvent.keyDown(document, { key: 'Enter' })
+ search.simulate('keydown', { key: 'Enter' })
wrapper.should.have.state('searchQuery', '')
})
@@ -2655,21 +2678,22 @@ describe('Dropdown', () => {
describe('selectOnNavigation', () => {
it('is on by default', () => {
- const spy = sandbox.spy()
+ const onChange = sandbox.spy()
- wrapperMount( )
+ wrapperMount(
+ ,
+ )
// open
wrapper.simulate('click')
+ wrapper.simulate('keydown', { key: 'ArrowDown' })
- domEvent.keyDown(document, { key: 'ArrowDown' })
-
- spy.should.have.been.called()
+ onChange.should.have.been.called()
wrapper.should.have.state('value', options[1].value)
})
it('does not change value when set to false', () => {
- const spy = sandbox.spy()
+ const onChange = sandbox.spy()
const value = options[0].value
wrapperMount(
@@ -2677,16 +2701,15 @@ describe('Dropdown', () => {
options={options}
defaultValue={value}
selectOnNavigation={false}
- onChange={spy}
+ onChange={onChange}
/>,
)
// open
wrapper.simulate('click')
+ wrapper.simulate('keydown', { key: 'ArrowDown' })
- domEvent.keyDown(document, { key: 'ArrowDown' })
-
- spy.should.not.have.been.called()
+ onChange.should.not.have.been.called()
wrapper.should.have.state('value', value)
})
})
@@ -2699,8 +2722,7 @@ describe('Dropdown', () => {
wrapper.simulate('click').find('DropdownItem').first().should.have.prop('selected', true)
// arrow up
- domEvent.keyDown(document, { key: 'ArrowUp' })
- wrapper.update()
+ wrapper.simulate('keydown', { key: 'ArrowUp' })
// selection should not move to last item
// should keep on first instead
@@ -2713,22 +2735,21 @@ describe('Dropdown', () => {
it("does not move down on arrow down when last item is selected when open and 'wrapSelection' is false", () => {
wrapperMount( )
- // make last item selected
- wrapper.setState({ selectedIndex: options.length - 1 })
- // open
+ // open and make last item selected
+ wrapper.simulate('click')
+ wrapper.simulate('keydown', { key: 'ArrowDown' })
+ wrapper.simulate('keydown', { key: 'ArrowDown' })
+ wrapper.simulate('keydown', { key: 'ArrowDown' })
+ wrapper.simulate('keydown', { key: 'ArrowDown' })
+
wrapper
- .simulate('click')
.find('DropdownItem')
.at(options.length - 1)
.should.have.prop('selected', true)
- // arrow down
- domEvent.keyDown(document, { key: 'ArrowDown' })
- wrapper.update()
-
- // selection should not move to first item
- // should keep on last instead
- wrapper.find('DropdownItem').first().should.have.prop('selected', false)
+ // selection should not move to first item, should keep on last instead
+ wrapper.simulate('keydown', { key: 'ArrowDown' })
+ wrapper.find('DropdownItem').at(0).should.have.prop('selected', false)
wrapper
.find('DropdownItem')
.at(options.length - 1)
From 50ec408fb12e3b55753a37fd6ad5930980e3b94b Mon Sep 17 00:00:00 2001
From: Oleksandr Fediashov
Date: Wed, 29 Jul 2020 15:47:11 +0200
Subject: [PATCH 53/60] fix(Dropdown): compute proper `selectedIndex` in
`multiple` (#4006)
---
.../Dropdown/utils/getSelectedIndex.js | 14 +++++----
test/specs/modules/Dropdown/Dropdown-test.js | 31 +++++++++++++++++++
2 files changed, 39 insertions(+), 6 deletions(-)
diff --git a/src/modules/Dropdown/utils/getSelectedIndex.js b/src/modules/Dropdown/utils/getSelectedIndex.js
index 90cdfbf1e7..90443f49a8 100644
--- a/src/modules/Dropdown/utils/getSelectedIndex.js
+++ b/src/modules/Dropdown/utils/getSelectedIndex.js
@@ -27,7 +27,7 @@ export default function getSelectedIndex(config) {
multiple,
search,
})
- const enabledIndicies = _.reduce(
+ const enabledIndexes = _.reduce(
menuOptions,
(memo, item, index) => {
if (!item.disabled) memo.push(index)
@@ -40,30 +40,32 @@ export default function getSelectedIndex(config) {
// update the selected index
if (!selectedIndex || selectedIndex < 0) {
- const firstIndex = enabledIndicies[0]
+ const firstIndex = enabledIndexes[0]
// Select the currently active item, if none, use the first item.
// Multiple selects remove active items from the list,
// their initial selected index should be 0.
newSelectedIndex = multiple
? firstIndex
- : _.findIndex(menuOptions, ['value', value]) || enabledIndicies[0]
+ : _.findIndex(menuOptions, ['value', value]) || enabledIndexes[0]
} else if (multiple) {
+ newSelectedIndex = _.find(enabledIndexes, (index) => index >= selectedIndex)
+
// multiple selects remove options from the menu as they are made active
// keep the selected index within range of the remaining items
if (selectedIndex >= menuOptions.length - 1) {
- newSelectedIndex = enabledIndicies[enabledIndicies.length - 1]
+ newSelectedIndex = enabledIndexes[enabledIndexes.length - 1]
}
} else {
const activeIndex = _.findIndex(menuOptions, ['value', value])
// regular selects can only have one active item
// set the selected index to the currently active item
- newSelectedIndex = _.includes(enabledIndicies, activeIndex) ? activeIndex : undefined
+ newSelectedIndex = _.includes(enabledIndexes, activeIndex) ? activeIndex : undefined
}
if (!newSelectedIndex || newSelectedIndex < 0) {
- newSelectedIndex = enabledIndicies[0]
+ newSelectedIndex = enabledIndexes[0]
}
return newSelectedIndex
diff --git a/test/specs/modules/Dropdown/Dropdown-test.js b/test/specs/modules/Dropdown/Dropdown-test.js
index df1428a642..298c17ac3d 100644
--- a/test/specs/modules/Dropdown/Dropdown-test.js
+++ b/test/specs/modules/Dropdown/Dropdown-test.js
@@ -1521,6 +1521,37 @@ describe('Dropdown', () => {
wrapper.should.have.exactly(options.length - 1).descendants('DropdownItem')
wrapper.find('DropdownItem').last().should.have.prop('selected', true)
})
+ it('keeps the selection on the same index', () => {
+ wrapperMount( )
+
+ wrapper.simulate('click')
+ dropdownMenuIsOpen()
+
+ wrapper.simulate('keydown', { key: 'ArrowDown' })
+ wrapper.find('DropdownItem').at(1).should.have.prop('selected', true)
+
+ wrapper.simulate('keydown', { key: 'Enter' })
+ wrapper.find('DropdownItem').at(1).should.have.prop('selected', true)
+ })
+ it('skips disabled items in selection', () => {
+ const testOptions = [
+ { value: 'foo', key: 'foo', text: 'foo' },
+ { value: 'bar', key: 'bar', text: 'bar' },
+ { value: 'baz', key: 'baz', text: 'baz', disabled: true },
+ { value: 'qux', key: 'qux', text: 'qux' },
+ ]
+
+ wrapperMount( )
+
+ wrapper.simulate('click')
+ dropdownMenuIsOpen()
+
+ wrapper.simulate('keydown', { key: 'ArrowDown' })
+ wrapper.find('DropdownItem').at(1).should.have.prop('selected', true)
+
+ wrapper.simulate('keydown', { key: 'Enter' })
+ wrapper.find('DropdownItem').at(2).should.have.prop('selected', true)
+ })
it('has labels with delete icons', () => {
// add a value so we have a label
const value = [_.head(options).value]
From a2de6cd0e2a68c47ce90b2bf6383572179957c99 Mon Sep 17 00:00:00 2001
From: Oleksandr Fediashov
Date: Wed, 29 Jul 2020 17:18:59 +0200
Subject: [PATCH 54/60] feat(Dropdown): add support for images, icons and flags
in selected values (#4003)
* updating icon shown when option selected
* updated icons to show with selected item in dropdown elements.
* finalize changes
* fix UT
Co-authored-by: reefman001
---
.../Types/DropdownExampleClearableMultiple.js | 46 +++++++-------
src/index.js | 1 +
src/modules/Dropdown/Dropdown.js | 42 ++++++++++---
src/modules/Dropdown/DropdownText.d.ts | 24 +++++++
src/modules/Dropdown/DropdownText.js | 45 ++++++++++++++
test/specs/modules/Dropdown/Dropdown-test.js | 62 ++++++++++++-------
.../modules/Dropdown/DropdownText-test.js | 17 +++++
7 files changed, 184 insertions(+), 53 deletions(-)
create mode 100644 src/modules/Dropdown/DropdownText.d.ts
create mode 100644 src/modules/Dropdown/DropdownText.js
create mode 100644 test/specs/modules/Dropdown/DropdownText-test.js
diff --git a/docs/src/examples/modules/Dropdown/Types/DropdownExampleClearableMultiple.js b/docs/src/examples/modules/Dropdown/Types/DropdownExampleClearableMultiple.js
index 16c32c2baa..fc8fb204ce 100644
--- a/docs/src/examples/modules/Dropdown/Types/DropdownExampleClearableMultiple.js
+++ b/docs/src/examples/modules/Dropdown/Types/DropdownExampleClearableMultiple.js
@@ -2,29 +2,29 @@ import React from 'react'
import { Dropdown } from 'semantic-ui-react'
const countryOptions = [
- { key: 'af', value: 'af', text: 'Afghanistan' },
- { key: 'ax', value: 'ax', text: 'Aland Islands' },
- { key: 'al', value: 'al', text: 'Albania' },
- { key: 'dz', value: 'dz', text: 'Algeria' },
- { key: 'as', value: 'as', text: 'American Samoa' },
- { key: 'ad', value: 'ad', text: 'Andorra' },
- { key: 'ao', value: 'ao', text: 'Angola' },
- { key: 'ai', value: 'ai', text: 'Anguilla' },
- { key: 'ag', value: 'ag', text: 'Antigua' },
- { key: 'ar', value: 'ar', text: 'Argentina' },
- { key: 'am', value: 'am', text: 'Armenia' },
- { key: 'aw', value: 'aw', text: 'Aruba' },
- { key: 'au', value: 'au', text: 'Australia' },
- { key: 'at', value: 'at', text: 'Austria' },
- { key: 'az', value: 'az', text: 'Azerbaijan' },
- { key: 'bs', value: 'bs', text: 'Bahamas' },
- { key: 'bh', value: 'bh', text: 'Bahrain' },
- { key: 'bd', value: 'bd', text: 'Bangladesh' },
- { key: 'bb', value: 'bb', text: 'Barbados' },
- { key: 'by', value: 'by', text: 'Belarus' },
- { key: 'be', value: 'be', text: 'Belgium' },
- { key: 'bz', value: 'bz', text: 'Belize' },
- { key: 'bj', value: 'bj', text: 'Benin' },
+ { key: 'af', value: 'af', flag: 'af', text: 'Afghanistan' },
+ { key: 'ax', value: 'ax', flag: 'ax', text: 'Aland Islands' },
+ { key: 'al', value: 'al', flag: 'al', text: 'Albania' },
+ { key: 'dz', value: 'dz', flag: 'dz', text: 'Algeria' },
+ { key: 'as', value: 'as', flag: 'as', text: 'American Samoa' },
+ { key: 'ad', value: 'ad', flag: 'ad', text: 'Andorra' },
+ { key: 'ao', value: 'ao', flag: 'ao', text: 'Angola' },
+ { key: 'ai', value: 'ai', flag: 'ai', text: 'Anguilla' },
+ { key: 'ag', value: 'ag', flag: 'ag', text: 'Antigua' },
+ { key: 'ar', value: 'ar', flag: 'ar', text: 'Argentina' },
+ { key: 'am', value: 'am', flag: 'am', text: 'Armenia' },
+ { key: 'aw', value: 'aw', flag: 'aw', text: 'Aruba' },
+ { key: 'au', value: 'au', flag: 'au', text: 'Australia' },
+ { key: 'at', value: 'at', flag: 'at', text: 'Austria' },
+ { key: 'az', value: 'az', flag: 'az', text: 'Azerbaijan' },
+ { key: 'bs', value: 'bs', flag: 'bs', text: 'Bahamas' },
+ { key: 'bh', value: 'bh', flag: 'bh', text: 'Bahrain' },
+ { key: 'bd', value: 'bd', flag: 'bd', text: 'Bangladesh' },
+ { key: 'bb', value: 'bb', flag: 'bb', text: 'Barbados' },
+ { key: 'by', value: 'by', flag: 'by', text: 'Belarus' },
+ { key: 'be', value: 'be', flag: 'be', text: 'Belgium' },
+ { key: 'bz', value: 'bz', flag: 'bz', text: 'Belize' },
+ { key: 'bj', value: 'bj', flag: 'bj', text: 'Benin' },
]
const DropdownExampleClearableMultiple = () => (
diff --git a/src/index.js b/src/index.js
index c2b47d7df2..8e3864e0b5 100644
--- a/src/index.js
+++ b/src/index.js
@@ -134,6 +134,7 @@ export DropdownHeader from './modules/Dropdown/DropdownHeader'
export DropdownItem from './modules/Dropdown/DropdownItem'
export DropdownMenu from './modules/Dropdown/DropdownMenu'
export DropdownSearchInput from './modules/Dropdown/DropdownSearchInput'
+export DropdownText from './modules/Dropdown/DropdownText'
export Embed from './modules/Embed'
diff --git a/src/modules/Dropdown/Dropdown.js b/src/modules/Dropdown/Dropdown.js
index e8ea5b9def..0e14f6197f 100644
--- a/src/modules/Dropdown/Dropdown.js
+++ b/src/modules/Dropdown/Dropdown.js
@@ -21,11 +21,14 @@ import {
} from '../../lib'
import Icon from '../../elements/Icon'
import Label from '../../elements/Label'
+import Flag from '../../elements/Flag'
+import Image from '../../elements/Image'
import DropdownDivider from './DropdownDivider'
import DropdownItem from './DropdownItem'
import DropdownHeader from './DropdownHeader'
import DropdownMenu from './DropdownMenu'
import DropdownSearchInput from './DropdownSearchInput'
+import DropdownText from './DropdownText'
import getMenuOptions from './utils/getMenuOptions'
import getSelectedIndex from './utils/getSelectedIndex'
@@ -35,6 +38,27 @@ const getKeyOrValue = (key, value) => (_.isNil(key) ? value : key)
const getKeyAndValues = (options) =>
options ? options.map((option) => _.pick(option, ['key', 'value'])) : options
+function renderItemContent(item) {
+ const { flag, image, text } = item
+
+ // TODO: remove this in v2
+ // This maintains compatibility with Shorthand API in v1 as this might be called in "Label.create()"
+ if (React.isValidElement(text) || _.isFunction(text)) {
+ return text
+ }
+
+ return {
+ content: (
+ <>
+ {Flag.create(flag)}
+ {Image.create(image)}
+
+ {text}
+ >
+ ),
+ }
+}
+
/**
* A dropdown allows a user to select a value from a series of options.
* @see Form
@@ -842,20 +866,21 @@ export default class Dropdown extends Component {
search && searchQuery && 'filtered',
)
let _text = placeholder
+ let selectedItem
if (text) {
_text = text
} else if (open && !multiple) {
- _text = _.get(this.getSelectedItem(selectedIndex), 'text')
+ selectedItem = this.getSelectedItem(selectedIndex)
} else if (hasValue) {
- _text = _.get(this.getItemByValue(value), 'text')
+ selectedItem = this.getItemByValue(value)
}
- return (
-
- {_text}
-
- )
+ return DropdownText.create(selectedItem ? renderItemContent(selectedItem) : _text, {
+ defaultProps: {
+ className: classes,
+ },
+ })
}
renderSearchInput = () => {
@@ -1398,7 +1423,7 @@ Dropdown.defaultProps = {
minCharacters: 1,
noResultsMessage: 'No results found.',
openOnFocus: true,
- renderLabel: ({ text }) => text,
+ renderLabel: renderItemContent,
searchInput: 'text',
selectOnBlur: true,
selectOnNavigation: true,
@@ -1412,3 +1437,4 @@ Dropdown.Header = DropdownHeader
Dropdown.Item = DropdownItem
Dropdown.Menu = DropdownMenu
Dropdown.SearchInput = DropdownSearchInput
+Dropdown.Text = DropdownText
diff --git a/src/modules/Dropdown/DropdownText.d.ts b/src/modules/Dropdown/DropdownText.d.ts
new file mode 100644
index 0000000000..c2cb85509c
--- /dev/null
+++ b/src/modules/Dropdown/DropdownText.d.ts
@@ -0,0 +1,24 @@
+import * as React from 'react'
+import { SemanticShorthandContent } from '../../generic'
+
+export interface DropdownTextProps extends StrictDropdownTextProps {
+ [key: string]: any
+}
+
+export interface StrictDropdownTextProps {
+ /** An element type to render as (string or function). */
+ as?: any
+
+ /** Primary content. */
+ children?: React.ReactNode
+
+ /** Additional classes. */
+ className?: string
+
+ /** Shorthand for primary content. */
+ content?: SemanticShorthandContent
+}
+
+declare const DropdownText: React.FunctionComponent
+
+export default DropdownText
diff --git a/src/modules/Dropdown/DropdownText.js b/src/modules/Dropdown/DropdownText.js
new file mode 100644
index 0000000000..cd44643b9f
--- /dev/null
+++ b/src/modules/Dropdown/DropdownText.js
@@ -0,0 +1,45 @@
+import cx from 'classnames'
+import PropTypes from 'prop-types'
+import React from 'react'
+
+import {
+ childrenUtils,
+ createShorthandFactory,
+ customPropTypes,
+ getElementType,
+ getUnhandledProps,
+} from '../../lib'
+
+/**
+ * A dropdown contains a selected value.
+ */
+function DropdownText(props) {
+ const { children, className, content } = props
+ const classes = cx('divider', className)
+ const rest = getUnhandledProps(DropdownText, props)
+ const ElementType = getElementType(DropdownText, props)
+
+ return (
+
+ {childrenUtils.isNil(children) ? content : children}
+
+ )
+}
+
+DropdownText.propTypes = {
+ /** An element type to render as (string or function). */
+ as: PropTypes.elementType,
+
+ /** Primary content. */
+ children: PropTypes.node,
+
+ /** Additional classes. */
+ className: PropTypes.string,
+
+ /** Shorthand for primary content. */
+ content: customPropTypes.contentShorthand,
+}
+
+DropdownText.create = createShorthandFactory(DropdownText, (val) => ({ content: val }))
+
+export default DropdownText
diff --git a/test/specs/modules/Dropdown/Dropdown-test.js b/test/specs/modules/Dropdown/Dropdown-test.js
index 298c17ac3d..f5d40a4a7e 100644
--- a/test/specs/modules/Dropdown/Dropdown-test.js
+++ b/test/specs/modules/Dropdown/Dropdown-test.js
@@ -4,12 +4,14 @@ import React from 'react'
import * as common from 'test/specs/commonTests'
import { consoleUtil, domEvent, sandbox } from 'test/utils'
+import Label from 'src/elements/Label/Label'
import Dropdown from 'src/modules/Dropdown/Dropdown'
import DropdownDivider from 'src/modules/Dropdown/DropdownDivider'
import DropdownHeader from 'src/modules/Dropdown/DropdownHeader'
import DropdownItem from 'src/modules/Dropdown/DropdownItem'
import DropdownMenu from 'src/modules/Dropdown/DropdownMenu'
import DropdownSearchInput from 'src/modules/Dropdown/DropdownSearchInput'
+import DropdownText from 'src/modules/Dropdown/DropdownText'
let attachTo
let options
@@ -92,6 +94,7 @@ describe('Dropdown', () => {
DropdownItem,
DropdownMenu,
DropdownSearchInput,
+ DropdownText,
])
common.implementsIconProp(Dropdown, {
@@ -290,13 +293,6 @@ describe('Dropdown', () => {
wrapperMount( )
wrapper.find('div').at(0).should.have.prop('role', 'listbox')
})
- it('should render an aria-live region with aria-atomic', () => {
- wrapperMount( )
- wrapper
- .find('div')
- .at(1)
- .should.have.props({ 'aria-live': 'polite', 'aria-atomic': true, role: 'alert' })
- })
it('should label search dropdown as a combobox', () => {
wrapperMount( )
wrapper.find('div').at(0).should.have.prop('role', 'combobox')
@@ -1103,13 +1099,10 @@ describe('Dropdown', () => {
const nextItem = _.sample(_.without(options, initialItem))
wrapperMount( )
- .find('div.text')
- .should.contain.text(initialItem.text)
+ wrapper.find(DropdownText).should.contain.text(initialItem.text)
- wrapper
- .setProps({ value: nextItem.value })
- .find('div.text')
- .should.contain.text(nextItem.text)
+ wrapper.setProps({ value: nextItem.value })
+ wrapper.find(DropdownText).should.contain.text(nextItem.text)
})
it('updates value on down arrow', () => {
@@ -1487,18 +1480,43 @@ describe('Dropdown', () => {
it('filters active options out of the list', () => {
// make all the items active, expect to see none in the list
const value = _.map(options, 'value')
- wrapperShallow(
- ,
- ).should.not.have.descendants('DropdownItem')
+
+ wrapperShallow( )
+ wrapper.should.not.have.descendants('DropdownItem')
})
it('displays a label for active items', () => {
// select a random item, expect a label with the item's text
- const activeItem = _.sample(options)
- wrapperShallow(
- ,
- ).should.have.descendants('Label')
+ const testOptions = [
+ { value: 'foo', text: 'foo' },
+ { value: 'bar', text: 'bar', image: 'bar.jpg' },
+ { value: 'baz', text: baz },
+ {
+ value: 'qux',
+ text: () => (
+
+ qux
+
+ ),
+ },
+ ]
+
+ consoleUtil.disableOnce()
+ wrapperMount(
+ option.value)}
+ />,
+ )
+
+ expect(wrapper.find(Label).at(0).getDOMNode().innerText).to.include('foo')
+
+ expect(wrapper.find(Label).at(1).getDOMNode().innerText).to.include('bar')
+ wrapper.find(Label).at(1).find('Image').should.have.prop('src', 'bar.jpg')
- wrapper.find('Label').should.have.prop('content', activeItem.text)
+ wrapper.find('span.baz').should.contain.text('baz')
+ wrapper.find('span.qux').should.contain.text('qux')
})
it('keeps the selection within the range of remaining options', () => {
// items are removed as they are made active
@@ -2031,7 +2049,7 @@ describe('Dropdown', () => {
,
)
- wrapper.find('.default.text').simulate('click')
+ wrapper.find(DropdownText).simulate('click')
const activeElement = document.activeElement
const searchIsFocused = activeElement === document.querySelector('input.search')
diff --git a/test/specs/modules/Dropdown/DropdownText-test.js b/test/specs/modules/Dropdown/DropdownText-test.js
new file mode 100644
index 0000000000..cdf1297a74
--- /dev/null
+++ b/test/specs/modules/Dropdown/DropdownText-test.js
@@ -0,0 +1,17 @@
+import React from 'react'
+
+import DropdownText from 'src/modules/Dropdown/DropdownText'
+import * as common from 'test/specs/commonTests'
+
+describe('DropdownText', () => {
+ common.isConformant(DropdownText)
+ common.rendersChildren(DropdownText)
+
+ it('aria attributes', () => {
+ const wrapper = shallow( )
+
+ wrapper.should.have.prop('aria-live', 'polite')
+ wrapper.should.have.prop('aria-atomic', true)
+ wrapper.should.have.prop('role', 'alert')
+ })
+})
From bb4841090ce86b81e74765d661f0455ed3787dce Mon Sep 17 00:00:00 2001
From: Oleksandr Fediashov
Date: Thu, 30 Jul 2020 13:47:52 +0200
Subject: [PATCH 55/60] docs: fix IE11 issues in docs (#4009)
---
.../src/components/CodeSnippet/CodeSnippet.js | 34 +++----------------
docs/src/components/Document.js | 9 +----
docs/src/utils/formatCode.js | 4 ++-
static.config.js | 1 -
static.webpack.js | 6 +---
5 files changed, 9 insertions(+), 45 deletions(-)
diff --git a/docs/src/components/CodeSnippet/CodeSnippet.js b/docs/src/components/CodeSnippet/CodeSnippet.js
index 9bdfa654b5..430356a5b1 100644
--- a/docs/src/components/CodeSnippet/CodeSnippet.js
+++ b/docs/src/components/CodeSnippet/CodeSnippet.js
@@ -1,8 +1,5 @@
import _ from 'lodash'
import * as Prism from 'prismjs/components/prism-core'
-import prettier from 'prettier/standalone'
-import babel from 'prettier/parser-babel'
-import html from 'prettier/parser-html'
import PropTypes from 'prop-types'
import React from 'react'
@@ -16,19 +13,6 @@ import 'prismjs/components/prism-jsx'
import CodeSnippetLabel from './CodeSnippetLabel'
-const prettierConfig = {
- htmlWhitespaceSensitivity: 'ignore',
- printWidth: 100,
- tabWidth: 2,
- semi: false,
- singleQuote: true,
- trailingComma: 'all',
- plugins: {
- babel,
- html,
- },
-}
-
const normalizeToString = (value) => {
if (Array.isArray(value)) {
return value.join('\n')
@@ -37,22 +21,12 @@ const normalizeToString = (value) => {
return _.isObject(value) ? JSON.stringify(value, null, 2) : value
}
-export const prettifyCode = (code, parser) => {
- const formatted = prettier.format(code, {
- ...prettierConfig,
- // a narrower print width is more friendly to doc examples
- parser,
- })
-
- return formatted.replace(/^; val.replace(/^[\w]/gm, '$$ $&'),
- json: (val) => prettifyCode(val, 'json'),
- js: (val = '') => prettifyCode(val, 'babel'),
- jsx: (val = '') => prettifyCode(val, 'babel'),
- html: (val = '') => prettifyCode(val, 'html'),
+ json: (val) => val,
+ js: (val = '') => val,
+ jsx: (val = '') => val,
+ html: (val = '') => val,
}
export const formatCode = (code, mode) => {
diff --git a/docs/src/components/Document.js b/docs/src/components/Document.js
index 5b4e9fc9d5..656657ca36 100644
--- a/docs/src/components/Document.js
+++ b/docs/src/components/Document.js
@@ -21,6 +21,7 @@ const Document = ({ Body, children, Head, Html, siteData: { dev, versions } }) =
/>
+
@@ -29,14 +30,6 @@ const Document = ({ Body, children, Head, Html, siteData: { dev, versions } }) =
/>
-
-