diff --git a/CHANGELOG.md b/CHANGELOG.md index d12efbd0663..c326eee1f35 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ ## [`master`](https://github.com/elastic/eui/tree/master) -- Replaced `react-focus-lock` with `react-focus-on` ([#3631](https://github.com/elastic/eui/pull/3631)) +No public interface changes since `27.1.0`. ## [`27.1.0`](https://github.com/elastic/eui/tree/v27.1.0) diff --git a/package.json b/package.json index 5addf191fd2..76d3b9c271a 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ "prop-types": "^15.6.0", "react-ace": "^7.0.5", "react-beautiful-dnd": "^13.0.0", - "react-focus-on": "^3.4.1", + "react-focus-lock": "^1.17.7", "react-input-autosize": "^2.2.2", "react-is": "~16.3.0", "react-view": "^2.3.2", diff --git a/src-docs/src/views/focus_trap/focus_trap.js b/src-docs/src/views/focus_trap/focus_trap.js index 6272c0a441e..3d77dae2281 100644 --- a/src-docs/src/views/focus_trap/focus_trap.js +++ b/src-docs/src/views/focus_trap/focus_trap.js @@ -12,7 +12,7 @@ import { import FormExample from '../form_compressed/form_compressed'; export default () => { - const [isDisabled, changeDisabled] = useState(true); + const [isDisabled, changeDisabled] = useState(false); const toggleDisabled = () => changeDisabled(!isDisabled); diff --git a/src-docs/src/views/focus_trap/focus_trap_example.js b/src-docs/src/views/focus_trap/focus_trap_example.js index 844ec9b175a..89de1fad48f 100644 --- a/src-docs/src/views/focus_trap/focus_trap_example.js +++ b/src-docs/src/views/focus_trap/focus_trap_example.js @@ -47,10 +47,6 @@ export const FocusTrapExample = { Use clickOutsideDisables to disable the focus trap when the user clicks outside the trap.

-

- Use noIsolation=false when pointer events on - outside elements should be disallowed. -

), props: { EuiFocusTrap }, diff --git a/src/components/collapsible_nav/__snapshots__/collapsible_nav.test.tsx.snap b/src/components/collapsible_nav/__snapshots__/collapsible_nav.test.tsx.snap index 63f6bd526d4..84072d95094 100644 --- a/src/components/collapsible_nav/__snapshots__/collapsible_nav.test.tsx.snap +++ b/src/components/collapsible_nav/__snapshots__/collapsible_nav.test.tsx.snap @@ -6,12 +6,12 @@ Array [
, @@ -37,12 +37,12 @@ Array [
, @@ -90,12 +90,12 @@ Array [
, @@ -148,12 +148,12 @@ Array [
, @@ -198,12 +198,12 @@ Array [
, @@ -248,12 +248,12 @@ Array [
, @@ -345,12 +345,12 @@ Array [
, @@ -400,12 +400,12 @@ Array [
, diff --git a/src/components/collapsible_nav/collapsible_nav.test.tsx b/src/components/collapsible_nav/collapsible_nav.test.tsx index 980559a5562..32f0c401bfa 100644 --- a/src/components/collapsible_nav/collapsible_nav.test.tsx +++ b/src/components/collapsible_nav/collapsible_nav.test.tsx @@ -18,8 +18,8 @@ */ import React from 'react'; -import { render, mount } from 'enzyme'; -import { requiredProps, takeMountedSnapshot } from '../../test'; +import { render } from 'enzyme'; +import { requiredProps } from '../../test/required_props'; import { EuiCollapsibleNav } from './collapsible_nav'; @@ -33,28 +33,20 @@ const propsNeededToRender = { id: 'id', isOpen: true }; describe('EuiCollapsibleNav', () => { test('is rendered', () => { - const component = mount( + const component = render( ); - expect( - takeMountedSnapshot(component, { - hasArrayOutput: true, - }) - ).toMatchSnapshot(); + expect(component).toMatchSnapshot(); }); describe('props', () => { test('onClose', () => { - const component = mount( + const component = render( {}} /> ); - expect( - takeMountedSnapshot(component, { - hasArrayOutput: true, - }) - ).toMatchSnapshot(); + expect(component).toMatchSnapshot(); }); test('isDocked', () => { @@ -66,31 +58,23 @@ describe('EuiCollapsibleNav', () => { }); test('dockedBreakpoint', () => { - const component = mount( + const component = render( ); - expect( - takeMountedSnapshot(component, { - hasArrayOutput: true, - }) - ).toMatchSnapshot(); + expect(component).toMatchSnapshot(); }); test('button', () => { - const component = mount( + const component = render( } /> ); - expect( - takeMountedSnapshot(component, { - hasArrayOutput: true, - }) - ).toMatchSnapshot(); + expect(component).toMatchSnapshot(); }); test('showButtonIfDocked', () => { - const component = mount( + const component = render( } @@ -99,55 +83,39 @@ describe('EuiCollapsibleNav', () => { /> ); - expect( - takeMountedSnapshot(component, { - hasArrayOutput: true, - }) - ).toMatchSnapshot(); + expect(component).toMatchSnapshot(); }); test('can alter mask props with maskProps without throwing error', () => { - const component = mount( + const component = render( ); - expect( - takeMountedSnapshot(component, { - hasArrayOutput: true, - }) - ).toMatchSnapshot(); + expect(component).toMatchSnapshot(); }); }); describe('close button', () => { test('can be hidden', () => { - const component = mount( + const component = render( ); - expect( - takeMountedSnapshot(component, { - hasArrayOutput: true, - }) - ).toMatchSnapshot(); + expect(component).toMatchSnapshot(); }); test('extends EuiButtonEmpty', () => { - const component = mount( + const component = render( ); - expect( - takeMountedSnapshot(component, { - hasArrayOutput: true, - }) - ).toMatchSnapshot(); + expect(component).toMatchSnapshot(); }); }); diff --git a/src/components/color_picker/color_palette_picker/__snapshots__/color_palette_picker.test.tsx.snap b/src/components/color_picker/color_palette_picker/__snapshots__/color_palette_picker.test.tsx.snap index bdd9ae741e0..4f5462bd6dd 100644 --- a/src/components/color_picker/color_palette_picker/__snapshots__/color_palette_picker.test.tsx.snap +++ b/src/components/color_picker/color_palette_picker/__snapshots__/color_palette_picker.test.tsx.snap @@ -404,3 +404,1503 @@ exports[`EuiColorPalettePicker more props are propagated to each option 1`] = `
`; + +exports[`EuiColorPalettePicker more props are propagated to each option 2`] = ` + + +
+ Palette 1 +
+
+
, + "inputDisplay":
, + "value": "paletteFixed", + }, + Object { + "className": "paletteLinearClass", + "data-test-subj": "gradient-data-test-subj", + "dropdownDisplay":
+
+ Linear Gradient +
+
+
, + "inputDisplay":
, + "value": "paletteLinear", + }, + Object { + "data-test-subj": "gradient-with-stops-data-test-subj", + "dropdownDisplay":
+
+ Linear Gradient with stops +
+
+
, + "inputDisplay":
, + "value": "paletteLinearStops", + }, + Object { + "data-test-subj": "text-data-test-subj", + "dropdownDisplay":
+ Plain text as a custom option +
, + "inputDisplay": "Plain text as a custom option", + "value": "custom", + }, + ] + } + readOnly={false} + valueOfSelected="paletteFixed" + > + +
+ Palette 1 +
+
+
, + "inputDisplay":
, + "value": "paletteFixed", + }, + Object { + "className": "paletteLinearClass", + "data-test-subj": "gradient-data-test-subj", + "dropdownDisplay":
+
+ Linear Gradient +
+
+
, + "inputDisplay":
, + "value": "paletteLinear", + }, + Object { + "data-test-subj": "gradient-with-stops-data-test-subj", + "dropdownDisplay":
+
+ Linear Gradient with stops +
+
+
, + "inputDisplay":
, + "value": "paletteLinearStops", + }, + Object { + "data-test-subj": "text-data-test-subj", + "dropdownDisplay":
+ Plain text as a custom option +
, + "inputDisplay": "Plain text as a custom option", + "value": "custom", + }, + ] + } + readOnly={false} + value="paletteFixed" + /> + } + buttonRef={[Function]} + className="euiSuperSelect" + closePopover={[Function]} + display="block" + hasArrow={false} + isOpen={true} + ownFocus={false} + panelClassName="euiSuperSelect__popoverPanel" + panelPaddingSize="none" + popoverRef={[Function]} + > + +
+
+ +
+ Palette 1 +
+
+
, + "inputDisplay":
, + "value": "paletteFixed", + }, + Object { + "className": "paletteLinearClass", + "data-test-subj": "gradient-data-test-subj", + "dropdownDisplay":
+
+ Linear Gradient +
+
+
, + "inputDisplay":
, + "value": "paletteLinear", + }, + Object { + "data-test-subj": "gradient-with-stops-data-test-subj", + "dropdownDisplay":
+
+ Linear Gradient with stops +
+
+
, + "inputDisplay":
, + "value": "paletteLinearStops", + }, + Object { + "data-test-subj": "text-data-test-subj", + "dropdownDisplay":
+ Plain text as a custom option +
, + "inputDisplay": "Plain text as a custom option", + "value": "custom", + }, + ] + } + readOnly={false} + value="paletteFixed" + > + + +
+
+ + + , + } + } + > + + } + > + Select an option: +
+ , is selected + + + + + + +
+ + +
+
+ + +
+ + +
+
+
+
+ +
+
+
+ } + > + + + +
+ +
+
+
+ + + } + onActivation={[Function]} + onDeactivation={[Function]} + persistentFocus={false} + > + + + } + onActivation={[Function]} + onDeactivation={[Function]} + persistentFocus={false} + /> + + +
+
+ +
+ +

+ + You are in a form selector of 4 items and must select a single option. Use the up and down keys to navigate or escape to close. + +

+
+
+ + + + + + + + + + + + +
+
+
+
+ +
+
+ +
+ + + + + +
+ + + + +`; diff --git a/src/components/color_picker/color_palette_picker/color_palette_picker.test.tsx b/src/components/color_picker/color_palette_picker/color_palette_picker.test.tsx index e1f9a288678..1d0fcc2a189 100644 --- a/src/components/color_picker/color_palette_picker/color_palette_picker.test.tsx +++ b/src/components/color_picker/color_palette_picker/color_palette_picker.test.tsx @@ -174,5 +174,7 @@ describe('EuiColorPalettePicker', () => { .simulate('click'); expect(takeMountedSnapshot(component)).toMatchSnapshot(); + + expect(component).toMatchSnapshot(); }); }); diff --git a/src/components/datagrid/__snapshots__/data_grid.test.tsx.snap b/src/components/datagrid/__snapshots__/data_grid.test.tsx.snap index 054fefd80b1..d6ce0c353e1 100644 --- a/src/components/datagrid/__snapshots__/data_grid.test.tsx.snap +++ b/src/components/datagrid/__snapshots__/data_grid.test.tsx.snap @@ -178,6 +178,7 @@ Array [ />,
,
,
,
@@ -48,12 +48,12 @@ exports[`EuiFlyout props accepts div props 1`] = `
@@ -91,12 +91,12 @@ exports[`EuiFlyout props close button is not rendered 1`] = `
@@ -120,12 +120,12 @@ exports[`EuiFlyout props max width can be set to a custom number 1`] = `
+ + +
+ + + + +
+ +
+
+
+ + + } + onActivation={[Function]} + onDeactivation={[Function]} + persistentFocus={false} + > + + + } + onActivation={[Function]} + onDeactivation={[Function]} + persistentFocus={false} + /> + + +
+
+ +
+ +

+ + You are in a form selector of 2 items and must select a single option. Use the up and down keys to navigate or escape to close. + +

+
+
+ + + + + + +
+
+
+
+ +
+
+ +
+ + + + +
+ + + +`; + exports[`EuiSuperSelect props options are rendered when select is open 1`] = `
{ component.find('button[data-test-subj="superSelect"]').simulate('click'); expect(takeMountedSnapshot(component)).toMatchSnapshot(); + + expect(component).toMatchSnapshot(); }); }); }); diff --git a/src/components/modal/__snapshots__/confirm_modal.test.tsx.snap b/src/components/modal/__snapshots__/confirm_modal.test.tsx.snap index 110dc3f5ba2..e2a2116bf26 100644 --- a/src/components/modal/__snapshots__/confirm_modal.test.tsx.snap +++ b/src/components/modal/__snapshots__/confirm_modal.test.tsx.snap @@ -4,12 +4,12 @@ exports[`EuiConfirmModal renders EuiConfirmModal 1`] = ` Array [
,
,
,
, ] @@ -110,12 +110,12 @@ exports[`EuiConfirmModal renders EuiConfirmModal without EuiModalBody, if empty Array [
,
,
,
, ] diff --git a/src/components/modal/__snapshots__/modal.test.tsx.snap b/src/components/modal/__snapshots__/modal.test.tsx.snap index 81b29c3435b..f6a48707fd4 100644 --- a/src/components/modal/__snapshots__/modal.test.tsx.snap +++ b/src/components/modal/__snapshots__/modal.test.tsx.snap @@ -4,12 +4,12 @@ exports[`renders EuiModal 1`] = ` Array [
,
,
,
, ] diff --git a/src/components/modal/confirm_modal.test.tsx b/src/components/modal/confirm_modal.test.tsx index ec643169249..84bad6a0013 100644 --- a/src/components/modal/confirm_modal.test.tsx +++ b/src/components/modal/confirm_modal.test.tsx @@ -18,13 +18,9 @@ */ import React from 'react'; -import { mount } from 'enzyme'; +import { mount, render } from 'enzyme'; -import { - findTestSubject, - requiredProps, - takeMountedSnapshot, -} from '../../test'; +import { findTestSubject, requiredProps } from '../../test'; import { keys } from '../../services'; import { @@ -43,7 +39,7 @@ beforeEach(() => { describe('EuiConfirmModal', () => { test('renders EuiConfirmModal', () => { - const component = mount( + const component = render( {}} @@ -54,13 +50,11 @@ describe('EuiConfirmModal', () => { This is a confirmation modal example ); - expect( - takeMountedSnapshot(component, { hasArrayOutput: true }) - ).toMatchSnapshot(); + expect(component).toMatchSnapshot(); }); test('renders EuiConfirmModal without EuiModalBody, if empty', () => { - const component = mount( + const component = render( {}} @@ -70,9 +64,7 @@ describe('EuiConfirmModal', () => { {...requiredProps} /> ); - expect( - takeMountedSnapshot(component, { hasArrayOutput: true }) - ).toMatchSnapshot(); + expect(component).toMatchSnapshot(); }); test('onConfirm', () => { diff --git a/src/components/modal/modal.test.tsx b/src/components/modal/modal.test.tsx index 18680529aee..ba4fc0fa4d4 100644 --- a/src/components/modal/modal.test.tsx +++ b/src/components/modal/modal.test.tsx @@ -18,8 +18,8 @@ */ import React from 'react'; -import { mount } from 'enzyme'; -import { requiredProps, takeMountedSnapshot } from '../../test'; +import { render } from 'enzyme'; +import { requiredProps } from '../../test/required_props'; import { EuiModal } from './modal'; @@ -30,7 +30,5 @@ test('renders EuiModal', () => { ); - expect( - takeMountedSnapshot(mount(component), { hasArrayOutput: true }) - ).toMatchSnapshot(); + expect(render(component)).toMatchSnapshot(); }); diff --git a/src/components/popover/popover.tsx b/src/components/popover/popover.tsx index e96f718ddbf..d67f8982af0 100644 --- a/src/components/popover/popover.tsx +++ b/src/components/popover/popover.tsx @@ -30,7 +30,7 @@ import tabbable from 'tabbable'; import { CommonProps, NoArgCallback } from '../common'; import { FocusTarget, EuiFocusTrap } from '../focus_trap'; -import { ReactFocusOnProps } from 'react-focus-on/dist/es5/types'; +import { Props as ReactFocusLockProps } from 'react-focus-lock'; // eslint-disable-line import/named import { cascadingMenuKeys, @@ -140,7 +140,7 @@ export interface EuiPopoverProps { /** * Function callback for when the focus trap is deactivated */ - onTrapDeactivation?: ReactFocusOnProps['onDeactivation']; + onTrapDeactivation?: ReactFocusLockProps['onDeactivation']; /** * Distance away from the anchor that the popover will render. diff --git a/src/test/take_mounted_snapshot.ts b/src/test/take_mounted_snapshot.ts index a845b81b4e8..6a319cb7711 100644 --- a/src/test/take_mounted_snapshot.ts +++ b/src/test/take_mounted_snapshot.ts @@ -20,10 +20,6 @@ import { ReactWrapper } from 'enzyme'; import { Component } from 'react'; -interface TakeMountedSnapshotOptions { - hasArrayOutput?: boolean; -} - /** * Use this function to generate a Jest snapshot of components that have been fully rendered * using Enzyme's `mount` method. Typically, a mounted component will result in a snapshot @@ -31,23 +27,10 @@ interface TakeMountedSnapshotOptions { * leaving only HTML elements in the snapshot. */ export const takeMountedSnapshot = ( - mountedComponent: ReactWrapper<{}, {}, Component>, - options: TakeMountedSnapshotOptions = {} + mountedComponent: ReactWrapper<{}, {}, Component> ) => { - const opts: TakeMountedSnapshotOptions = { - hasArrayOutput: false, - ...options, - }; const html = mountedComponent.html(); const template = document.createElement('template'); template.innerHTML = html; - const snapshot = template.content.firstChild; - if (opts.hasArrayOutput) { - const snapshotArray: ChildNode[] = []; - template.content.childNodes.forEach(el => { - snapshotArray.push(el); - }); - return snapshotArray; - } - return snapshot; + return template.content.firstChild; }; diff --git a/yarn.lock b/yarn.lock index cc794f6dabf..62e83aa6687 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2314,13 +2314,6 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" -aria-hidden@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/aria-hidden/-/aria-hidden-1.1.1.tgz#0c356026d3f65e2bd487a3adb73f0c586be2c37e" - integrity sha512-M7zYxCcOQPOaxGHoMTKUFD2UNcVFTp9ycrdStLcTPLf8zgTXC3+YcGe+UuzSh5X1BX/0/PtS8xTNy4xyH/6xtw== - dependencies: - tslib "^1.0.0" - aria-query@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-3.0.0.tgz#65b3fcc1ca1155a8c9ae64d6eee297f15d5133cc" @@ -6903,10 +6896,10 @@ flush-write-stream@^1.0.0: inherits "^2.0.1" readable-stream "^2.0.4" -focus-lock@^0.6.7: - version "0.6.8" - resolved "https://registry.yarnpkg.com/focus-lock/-/focus-lock-0.6.8.tgz#61985fadfa92f02f2ee1d90bc738efaf7f3c9f46" - integrity sha512-vkHTluRCoq9FcsrldC0ulQHiyBYgVJB2CX53I8r0nTC6KnEij7Of0jpBspjt3/CuNb6fyoj3aOh9J2HgQUM0og== +focus-lock@^0.5.2: + version "0.5.4" + resolved "https://registry.yarnpkg.com/focus-lock/-/focus-lock-0.5.4.tgz#537644d61b9e90fd97075aa680b8add1de24e819" + integrity sha512-A9ngdb0NyI6UygBQ0eD+p8SpLWTkdEDn67I3EGUUcDUfxH694mLA/xBWwhWhoj/2YLtsv2EoQdAx9UOKs8d/ZQ== follow-redirects@1.5.10: version "1.5.10" @@ -7252,11 +7245,6 @@ get-func-name@^2.0.0: resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= -get-nonce@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/get-nonce/-/get-nonce-1.0.1.tgz#fdf3f0278073820d2ce9426c18f07481b1e0cdf3" - integrity sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q== - get-port@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" @@ -13510,12 +13498,13 @@ react-beautiful-dnd@^13.0.0: redux "^4.0.4" use-memo-one "^1.1.1" -react-clientside-effect@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/react-clientside-effect/-/react-clientside-effect-1.2.2.tgz#6212fb0e07b204e714581dd51992603d1accc837" - integrity sha512-nRmoyxeok5PBO6ytPvSjKp9xwXg9xagoTK1mMjwnQxqM9Hd7MNPl+LS1bOSOe+CV2+4fnEquc7H/S8QD3q697A== +react-clientside-effect@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/react-clientside-effect/-/react-clientside-effect-1.2.0.tgz#db823695f75e9616a5e4dd6d908e5ea627fb2516" + integrity sha512-cVIsGG7SNHsQsCP4+fw7KFUB0HiYiU8hbvL640XaLCbZ31aK8/lj0qOKJ2K+xRjuQz/IM4Q4qclI0aEqTtcXtA== dependencies: "@babel/runtime" "^7.0.0" + shallowequal "^1.1.0" react-docgen@^4.1.0: version "4.1.1" @@ -13540,29 +13529,15 @@ react-dom@^16.12.0: prop-types "^15.6.2" scheduler "^0.18.0" -react-focus-lock@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/react-focus-lock/-/react-focus-lock-2.3.1.tgz#9d5d85899773609c7eefa4fc54fff6a0f5f2fc47" - integrity sha512-j15cWLPzH0gOmRrUg01C09Peu8qbcdVqr6Bjyfxj80cNZmH+idk/bNBYEDSmkAtwkXI+xEYWSmHYqtaQhZ8iUQ== +react-focus-lock@^1.17.7: + version "1.17.7" + resolved "https://registry.yarnpkg.com/react-focus-lock/-/react-focus-lock-1.17.7.tgz#ea7fd05d88d0e32833cad241f9333c124c35ba9a" + integrity sha512-zDCqkIhuuHCCmWzJghAz6EM6ROx8/sHhQJWjmO6oteQRHX+xTCE5FWIu3zLB5UiUa5eLd66tTh4Fs8YDp0G+6Q== dependencies: "@babel/runtime" "^7.0.0" - focus-lock "^0.6.7" + focus-lock "^0.5.2" prop-types "^15.6.2" - react-clientside-effect "^1.2.2" - use-callback-ref "^1.2.1" - use-sidecar "^1.0.1" - -react-focus-on@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/react-focus-on/-/react-focus-on-3.4.1.tgz#e184f3c44185e341598c5d9d44b2987ad459b240" - integrity sha512-KGRIl0iAu+1k1dcX7eQCXF5ZR/nl+XyXN5Ukw/OY80vLaK2b6vDzNqnX0HdYbY5xSUhIRUvMWEzSsdEyPjvk/Q== - dependencies: - aria-hidden "^1.1.1" - react-focus-lock "^2.3.1" - react-remove-scroll "^2.3.0" - react-style-singleton "^2.1.0" - use-callback-ref "^1.2.3" - use-sidecar "^1.0.1" + react-clientside-effect "^1.2.0" react-input-autosize@^2.2.2: version "2.2.2" @@ -13627,25 +13602,6 @@ react-redux@^7.1.1: prop-types "^15.7.2" react-is "^16.9.0" -react-remove-scroll-bar@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/react-remove-scroll-bar/-/react-remove-scroll-bar-2.1.0.tgz#edafe9b42a42c0dad9bdd10712772a1f9a39d7b9" - integrity sha512-5X5Y5YIPjIPrAoMJxf6Pfa7RLNGCgwZ95TdnVPgPuMftRfO8DaC7F4KP1b5eiO8hHbe7u+wZNDbYN5WUTpv7+g== - dependencies: - react-style-singleton "^2.1.0" - tslib "^1.0.0" - -react-remove-scroll@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/react-remove-scroll/-/react-remove-scroll-2.3.0.tgz#3af06fe2f7130500704b676cdef94452c08fe593" - integrity sha512-UqVimLeAe+5EHXKfsca081hAkzg3WuDmoT9cayjBegd6UZVhlTEchleNp9J4TMGkb/ftLve7ARB5Wph+HJ7A5g== - dependencies: - react-remove-scroll-bar "^2.1.0" - react-style-singleton "^2.1.0" - tslib "^1.0.0" - use-callback-ref "^1.2.3" - use-sidecar "^1.0.1" - react-router-dom@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.2.0.tgz#9e65a4d0c45e13289e66c7b17c7e175d0ea15662" @@ -13685,15 +13641,6 @@ react-simple-code-editor@^0.10.0: resolved "https://registry.yarnpkg.com/react-simple-code-editor/-/react-simple-code-editor-0.10.0.tgz#73e7ac550a928069715482aeb33ccba36efe2373" integrity sha512-bL5W5mAxSW6+cLwqqVWY47Silqgy2DKDTR4hDBrLrUqC5BXc29YVx17l2IZk5v36VcDEq1Bszu2oHm1qBwKqBA== -react-style-singleton@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/react-style-singleton/-/react-style-singleton-2.1.0.tgz#7396885332e9729957f9df51f08cadbfc164e1c4" - integrity sha512-DH4ED+YABC1dhvSDYGGreAHmfuTXj6+ezT3CmHoqIEfxNgEYfIMoOtmbRp42JsUst3IPqBTDL+8r4TF7EWhIHw== - dependencies: - get-nonce "^1.0.0" - invariant "^2.2.4" - tslib "^1.0.0" - react-test-renderer@^16.0.0-0: version "16.8.2" resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.8.2.tgz#3ce0bf12aa211116612fda01a886d6163c9c459b" @@ -15029,6 +14976,11 @@ shallow-clone@^1.0.0: kind-of "^5.0.0" mixin-object "^2.0.1" +shallowequal@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" + integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== + shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" @@ -16289,16 +16241,16 @@ ts-debounce@^1.0.0: resolved "https://registry.yarnpkg.com/ts-debounce/-/ts-debounce-1.0.0.tgz#e433301744ba75fe25466f7f23e1382c646aae6a" integrity sha512-V+IzWj418IoqqxVJD6I0zjPtgIyvAJ8VyViqzcxZ0JRiJXsi5mCmy1yUKkWd2gUygT28a8JsVFCgqdrf2pLUHQ== -tslib@^1.0.0, tslib@^1.9.1: - version "1.13.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" - integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== - tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: version "1.9.3" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== +tslib@^1.9.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@^3.17.1: version "3.17.1" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759" @@ -16668,24 +16620,11 @@ url@^0.11.0, url@~0.11.0: punycode "1.3.2" querystring "0.2.0" -use-callback-ref@^1.2.1, use-callback-ref@^1.2.3: - version "1.2.4" - resolved "https://registry.yarnpkg.com/use-callback-ref/-/use-callback-ref-1.2.4.tgz#d86d1577bfd0b955b6e04aaf5971025f406bea3c" - integrity sha512-rXpsyvOnqdScyied4Uglsp14qzag1JIemLeTWGKbwpotWht57hbP78aNT+Q4wdFKQfQibbUX4fb6Qb4y11aVOQ== - use-memo-one@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/use-memo-one/-/use-memo-one-1.1.1.tgz#39e6f08fe27e422a7d7b234b5f9056af313bd22c" integrity sha512-oFfsyun+bP7RX8X2AskHNTxu+R3QdE/RC5IefMbqptmACAA/gfol1KDD5KRzPsGMa62sWxGZw+Ui43u6x4ddoQ== -use-sidecar@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/use-sidecar/-/use-sidecar-1.0.2.tgz#e72f582a75842f7de4ef8becd6235a4720ad8af6" - integrity sha512-287RZny6m5KNMTb/Kq9gmjafi7lQL0YHO1lYolU6+tY1h9+Z3uCtkJJ3OSOq3INwYf2hBryCcDh4520AhJibMA== - dependencies: - detect-node "^2.0.4" - tslib "^1.9.3" - use@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/use/-/use-2.0.2.tgz#ae28a0d72f93bf22422a18a2e379993112dec8e8"