From 6cde0eaf11531d10667d9f4d78bbcb9b3d51763f Mon Sep 17 00:00:00 2001 From: Dmitriy Kovalenko Date: Mon, 25 May 2020 16:59:48 +0300 Subject: [PATCH] Global theme default props support (#1796) * Support empty dates for the DatePicker * Support empty dates for TimePicker * Support empty dates for mobile toobars * Support empty dates in YearSelection * Introduce `toolbarPlaceholder` prop for customization of empty date text * Add tests * Do not dispatch `changeFocusedDay` on each mount * Fix crashes when rendering empty date with luxon and moment * [TimePicker] Do not throw validation error if value={null} * Update props description for TimePicker validation props * Rename text props to match convention for built-in localization * Update using props in examples * Implement withDefaultProps HO * Fix not working CSS overrides typescript example * Add tests for overrides typings * Implement typings for global overrides * Implement default props support for all Pickers components * Add default props support for all the components * Fix build errors and properly reexport all props * Remove duplicated `renderInput` prop * Annulate date-io linked type for documentation * Run typescript tests on CI --- .circleci/config.yml | 3 + docs/layout/PageWithContext.tsx | 4 +- docs/package.json | 2 +- .../MinMaxDateRangePicker.example.tsx | 1 + .../timepicker/TimeValidation.example.jsx | 4 +- ...s.example.jsx => CssOverrides.example.tsx} | 14 +- .../guides/FormikOurValidation.example.tsx | 1 + .../guides/FormikValidationSchema.example.tsx | 1 + docs/pages/guides/css-overrides.mdx | 11 +- docs/pages/regression/Regression.tsx | 19 +- docs/prop-types.json | 55 +- docs/tsconfig.js.json | 13 - docs/tsconfig.json | 3 +- docs/typings.d.ts | 28 +- lib/.size-snapshot.json | 24 +- lib/package.json | 15 +- lib/rollup.config.js | 4 +- lib/src/DatePicker/DatePicker.tsx | 33 +- lib/src/DatePicker/DatePickerToolbar.tsx | 108 +- .../DateRangePicker/DateRangeDelimiter.tsx | 12 +- lib/src/DateRangePicker/DateRangePicker.tsx | 47 +- .../DateRangePickerToolbar.tsx | 97 +- lib/src/DateTimePicker/DateTimePicker.tsx | 48 +- .../DateTimePicker/DateTimePickerToolbar.tsx | 196 +-- lib/src/LocalizationProvider.tsx | 5 +- lib/src/Picker/Picker.tsx | 9 +- lib/src/Picker/makePickerWithState.tsx | 22 +- lib/src/TimePicker/TimePicker.tsx | 49 +- lib/src/TimePicker/TimePickerToolbar.tsx | 226 +-- lib/src/__tests__/DatePicker.test.tsx | 2 +- lib/src/__tests__/tsconfig.json | 7 +- lib/src/__tests__/typescript/Overrides.tsx | 55 + .../typescript/ThemeDefaultProps.tsx | 46 + lib/src/__tests__/typings.d.ts | 9 + lib/src/_shared/PickerModalDialog.tsx | 5 +- lib/src/_shared/withDefaultProps.tsx | 19 + lib/src/constants/prop-types.ts | 4 +- lib/src/index.ts | 29 +- lib/src/typings/index.ts | 3 + lib/src/typings/overrides.ts | 24 +- lib/src/typings/props.ts | 58 + lib/src/views/Calendar/Calendar.tsx | 314 +++-- lib/src/views/Calendar/CalendarView.tsx | 270 ++-- lib/src/views/Calendar/Day.tsx | 7 +- lib/src/views/Clock/Clock.tsx | 284 ++-- lib/src/views/Clock/ClockView.tsx | 354 ++--- lib/src/wrappers/Wrapper.tsx | 2 +- yarn.lock | 1212 ++++++++++------- 48 files changed, 2129 insertions(+), 1629 deletions(-) rename docs/pages/guides/{CssOverrides.example.jsx => CssOverrides.example.tsx} (77%) delete mode 100644 docs/tsconfig.js.json create mode 100644 lib/src/__tests__/typescript/Overrides.tsx create mode 100644 lib/src/__tests__/typescript/ThemeDefaultProps.tsx create mode 100644 lib/src/__tests__/typings.d.ts create mode 100644 lib/src/_shared/withDefaultProps.tsx create mode 100644 lib/src/typings/index.ts create mode 100644 lib/src/typings/props.ts diff --git a/.circleci/config.yml b/.circleci/config.yml index e0ba57ea2bd300..5d576386d0f3b2 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -65,6 +65,9 @@ jobs: - run: name: Typescript command: yarn workspaces run build:typescript + - run: + name: Run typescript tests + command: yarn workspace @material-ui/pickers run test:typescript - run: name: Build and analyze bundlesize command: yarn workspace @material-ui/pickers build:analyze diff --git a/docs/layout/PageWithContext.tsx b/docs/layout/PageWithContext.tsx index a7b0bc1134d8fc..1604d807357a2a 100644 --- a/docs/layout/PageWithContext.tsx +++ b/docs/layout/PageWithContext.tsx @@ -37,6 +37,8 @@ const createCustomMuiTheme = (theme: ThemeType, direction: Theme['direction']) = secondary: orange, type: theme, }, + overrides: {}, + props: {}, }); }; @@ -105,7 +107,7 @@ export const PageWithContexts: React.SFC = ({ > - + diff --git a/docs/package.json b/docs/package.json index 5eece25bdd70a8..36d97aea688c0e 100644 --- a/docs/package.json +++ b/docs/package.json @@ -8,7 +8,7 @@ "build": "next build", "start": "next start -p 3001", "generate-backers": "node scripts/generate-backers.js", - "build:typescript": "tsc -p tsconfig.json && tsc -p tsconfig.js.json" + "build:typescript": "tsc" }, "keywords": [], "author": "", diff --git a/docs/pages/demo/daterangepicker/MinMaxDateRangePicker.example.tsx b/docs/pages/demo/daterangepicker/MinMaxDateRangePicker.example.tsx index 43aaaec67f3e73..0d8516b697693d 100644 --- a/docs/pages/demo/daterangepicker/MinMaxDateRangePicker.example.tsx +++ b/docs/pages/demo/daterangepicker/MinMaxDateRangePicker.example.tsx @@ -19,6 +19,7 @@ function MinMaxDateRangePicker() { handleDateChange(date)} renderInput={(startProps, endProps) => ( diff --git a/docs/pages/demo/timepicker/TimeValidation.example.jsx b/docs/pages/demo/timepicker/TimeValidation.example.jsx index 0fa70da59640d0..7e9771568976d6 100644 --- a/docs/pages/demo/timepicker/TimeValidation.example.jsx +++ b/docs/pages/demo/timepicker/TimeValidation.example.jsx @@ -29,6 +29,8 @@ function TimeValidation() { renderInput={props => } ampm={false} label="Disable odd hours" + value={selectedDate} + onChange={date => handleDateChange(date)} shouldDisableTime={(timeValue, clockType) => { if (clockType === 'hours' && timeValue % 2) { return true; @@ -36,8 +38,6 @@ function TimeValidation() { return false; }} - value={selectedDate} - onChange={date => handleDateChange(date)} /> ); diff --git a/docs/pages/guides/CssOverrides.example.jsx b/docs/pages/guides/CssOverrides.example.tsx similarity index 77% rename from docs/pages/guides/CssOverrides.example.jsx rename to docs/pages/guides/CssOverrides.example.tsx index b55476df0e7617..0248a21b91598d 100644 --- a/docs/pages/guides/CssOverrides.example.jsx +++ b/docs/pages/guides/CssOverrides.example.tsx @@ -1,9 +1,8 @@ -// @ts-nocheck import React, { useState } from 'react'; import lightBlue from '@material-ui/core/colors/lightBlue'; import { TextField } from '@material-ui/core'; -import { DatePicker } from '@material-ui/pickers'; import { createMuiTheme, ThemeProvider } from '@material-ui/core'; +import { DatePicker, DatePickerProps } from '@material-ui/pickers'; const materialTheme = createMuiTheme({ overrides: { @@ -28,11 +27,11 @@ const materialTheme = createMuiTheme({ dayDisabled: { color: lightBlue['100'], }, - current: { + today: { color: lightBlue['900'], }, }, - MuiPickersModal: { + MuiPickersModalDialog: { dialogAction: { color: lightBlue['400'], }, @@ -41,7 +40,7 @@ const materialTheme = createMuiTheme({ }); function CssOverrides() { - const [selectedDate, handleDateChange] = useState(new Date()); + const [selectedDate, handleDateChange] = useState(new Date()); return ( @@ -49,8 +48,9 @@ function CssOverrides() { renderInput={props => } label="Light blue picker" value={selectedDate} - onChange={handleDateChange} - shouldDisableDate={day => day.getDay() === 0} + onChange={date => handleDateChange(date)} + // @ts-ignore + shouldDisableDate={day => day && day.getDay() === 0} /> ); diff --git a/docs/pages/guides/FormikOurValidation.example.tsx b/docs/pages/guides/FormikOurValidation.example.tsx index c0ad1ff421a26e..5d58c56550dc43 100644 --- a/docs/pages/guides/FormikOurValidation.example.tsx +++ b/docs/pages/guides/FormikOurValidation.example.tsx @@ -1,3 +1,4 @@ +// @ts-nocheck import React from 'react'; import Grid from '@material-ui/core/Grid'; import TextField from '@material-ui/core/TextField'; diff --git a/docs/pages/guides/FormikValidationSchema.example.tsx b/docs/pages/guides/FormikValidationSchema.example.tsx index d22059640a63c2..f97b4da26e07e3 100644 --- a/docs/pages/guides/FormikValidationSchema.example.tsx +++ b/docs/pages/guides/FormikValidationSchema.example.tsx @@ -1,3 +1,4 @@ +// @ts-nocheck import React from 'react'; import { date, object } from 'yup'; import { Grid } from '@material-ui/core'; diff --git a/docs/pages/guides/css-overrides.mdx b/docs/pages/guides/css-overrides.mdx index 253d604fcc868b..e7ab9fd91c6a09 100644 --- a/docs/pages/guides/css-overrides.mdx +++ b/docs/pages/guides/css-overrides.mdx @@ -43,15 +43,12 @@ This will also autocomplete classnames. Add the following to a TypeScript declaration file in your project, such as `overrides-mui.d.ts`: -```typescript -import { Overrides } from '@material-ui/core/styles/overrides'; -import { MuiPickersOverrides } from '@material-ui/pickers/typings/overrides'; + -type overridesNameToClassKey = { - [P in keyof MuiPickersOverrides]: keyof MuiPickersOverrides[P]; -}; +```typescript +import { MuiPickersComponentsToClassName } from '@material-ui/pickers/src/typings/overrides'; declare module '@material-ui/core/styles/overrides' { - export interface ComponentNameToClassKey extends overridesNameToClassKey {} + export interface ComponentNameToClassKey extends MuiPickersComponentsToClassName {} } ``` diff --git a/docs/pages/regression/Regression.tsx b/docs/pages/regression/Regression.tsx index e78fd572dbf028..ae437564867da6 100644 --- a/docs/pages/regression/Regression.tsx +++ b/docs/pages/regression/Regression.tsx @@ -6,7 +6,6 @@ import { TextField, TextFieldProps } from '@material-ui/core'; import { createRegressionDay as createRegressionDayRenderer } from './RegressionDay'; import { MuiPickersContext, DateRangePicker, DateRangeDelimiter } from '@material-ui/pickers'; import { - DateRange, MobileDatePicker, DesktopDatePicker, MobileTimePicker, @@ -19,8 +18,8 @@ const makeRenderInputProp = (overrideProps: Omit, 'varia function Regression() { const utils = useContext(MuiPickersContext); - const [range, changeRange] = useState([new Date('2019-01-01T00:00:00.000'), null]); - const [date, changeDate] = useState(new Date('2019-01-01T00:00:00.000')); + const [range, changeRange] = useState([new Date('2019-01-01T00:00:00.000'), null]); + const [date, changeDate] = useState(new Date('2019-01-01T00:00:00.000')); const sharedProps = { value: date, @@ -60,18 +59,8 @@ function Regression() { {...sharedProps} mask="__" /> - } - disabled - {...makeRenderInputProp({ id: 'disabled' })} - {...sharedProps} - /> - } - readOnly - {...makeRenderInputProp({ id: 'readonly' })} - {...sharedProps} - /> + + diff --git a/docs/prop-types.json b/docs/prop-types.json index a615e066608e41..2d4cd5a12c616b 100644 --- a/docs/prop-types.json +++ b/docs/prop-types.json @@ -1883,7 +1883,7 @@ "name": "hideTabs", "parent": { "fileName": "material-ui-pickers/lib/src/DateTimePicker/DateTimePicker.tsx", - "name": "DateTimePickerProps" + "name": "BaseDateTimePickerProps" }, "required": false, "type": { @@ -1896,7 +1896,7 @@ "name": "dateRangeIcon", "parent": { "fileName": "material-ui-pickers/lib/src/DateTimePicker/DateTimePicker.tsx", - "name": "DateTimePickerProps" + "name": "BaseDateTimePickerProps" }, "required": false, "type": { @@ -1909,7 +1909,7 @@ "name": "timeIcon", "parent": { "fileName": "material-ui-pickers/lib/src/DateTimePicker/DateTimePicker.tsx", - "name": "DateTimePickerProps" + "name": "BaseDateTimePickerProps" }, "required": false, "type": { @@ -1922,7 +1922,7 @@ "name": "minDateTime", "parent": { "fileName": "material-ui-pickers/lib/src/DateTimePicker/DateTimePicker.tsx", - "name": "DateTimePickerProps" + "name": "BaseDateTimePickerProps" }, "required": false, "type": { @@ -1935,7 +1935,7 @@ "name": "maxDateTime", "parent": { "fileName": "material-ui-pickers/lib/src/DateTimePicker/DateTimePicker.tsx", - "name": "DateTimePickerProps" + "name": "BaseDateTimePickerProps" }, "required": false, "type": { @@ -1948,7 +1948,7 @@ "name": "toolbarFormat", "parent": { "fileName": "material-ui-pickers/lib/src/DateTimePicker/DateTimePicker.tsx", - "name": "DateTimePickerProps" + "name": "BaseDateTimePickerProps" }, "required": false, "type": { @@ -2929,7 +2929,7 @@ "name": "startText", "parent": { "fileName": "material-ui-pickers/lib/src/DateRangePicker/DateRangePicker.tsx", - "name": "DateRangePickerProps" + "name": "BaseDateRangePickerProps" }, "required": false, "type": { @@ -2944,7 +2944,7 @@ "name": "endText", "parent": { "fileName": "material-ui-pickers/lib/src/DateRangePicker/DateRangePicker.tsx", - "name": "DateRangePickerProps" + "name": "BaseDateRangePickerProps" }, "required": false, "type": { @@ -3334,7 +3334,7 @@ }, "required": false, "type": { - "name": "((date: DateIOType) => void) & ((date: DateRange) => void)" + "name": "(date: DateIOType) => void) | ((date: DateRange) => void" } }, "onOpen": { @@ -3821,6 +3821,21 @@ } } }, + "DateRangeDelimiter": { + "classes": { + "defaultValue": null, + "description": "Override or extend the styles applied to the component.", + "name": "classes", + "parent": { + "fileName": "material-ui-pickers/node_modules/@material-ui/styles/withStyles/withStyles.d.ts", + "name": "StyledComponentProps" + }, + "required": false, + "type": { + "name": "Partial>" + } + } + }, "Calendar": { "onChange": { "defaultValue": null, @@ -4135,9 +4150,7 @@ } }, "getHoursClockNumberText": { - "defaultValue": { - "value": null - }, + "defaultValue": null, "description": "Get clock number aria-text for hours.", "name": "getHoursClockNumberText", "parent": { @@ -4150,9 +4163,7 @@ } }, "getMinutesClockNumberText": { - "defaultValue": { - "value": null - }, + "defaultValue": null, "description": "Get clock number aria-text for minutes.", "name": "getMinutesClockNumberText", "parent": { @@ -4165,9 +4176,7 @@ } }, "getSecondsClockNumberText": { - "defaultValue": { - "value": null - }, + "defaultValue": null, "description": "Get clock number aria-text for seconds.", "name": "getSecondsClockNumberText", "parent": { @@ -4196,7 +4205,7 @@ }, "minutesStep": { "defaultValue": { - "value": 1 + "value": "1" }, "description": "Step over minutes", "name": "minutesStep", @@ -4320,9 +4329,7 @@ } }, "leftArrowButtonText": { - "defaultValue": { - "value": "open previous view" - }, + "defaultValue": null, "description": "Left arrow icon aria-label text", "name": "leftArrowButtonText", "parent": { @@ -4335,9 +4342,7 @@ } }, "rightArrowButtonText": { - "defaultValue": { - "value": "open next view" - }, + "defaultValue": null, "description": "Right arrow icon aria-label text", "name": "rightArrowButtonText", "parent": { diff --git a/docs/tsconfig.js.json b/docs/tsconfig.js.json deleted file mode 100644 index e9ce7f5882c285..00000000000000 --- a/docs/tsconfig.js.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "target": "esnext", - "checkJs": true, - "noEmit": true, - "strict": true, - "baseUrl": ".", - "noImplicitAny": false, - "resolveJsonModule": true - }, - "include": ["./typings.d.ts", "./pages/**/*.jsx"] -} diff --git a/docs/tsconfig.json b/docs/tsconfig.json index bd91fd82a45bb1..637ce87d1270cd 100644 --- a/docs/tsconfig.json +++ b/docs/tsconfig.json @@ -15,9 +15,10 @@ "skipLibCheck": true, "sourceMap": true, "strict": true, + "esModuleInterop": true, "rootDir": ".", "target": "esnext", "resolveJsonModule": true }, - "include": ["../docs/**/*.ts*", "./typings.d.ts", "../lib/typings.d.ts"] + "include": ["./typings.d.ts", "../docs/**/*.ts*"] } diff --git a/docs/typings.d.ts b/docs/typings.d.ts index dffc2b9f558869..d52356f0ddd4ce 100644 --- a/docs/typings.d.ts +++ b/docs/typings.d.ts @@ -1,13 +1,17 @@ -// import { MuiPickersOverrides } from '@material-ui/pickers/typings/overrides'; -// import '@material-ui/core/styles/overrides'; +import { ParsableDate } from '@material-ui/pickers/src/constants/prop-types'; +import { + MuiPickersComponentsToClassName, + MuiPickersComponentsPropsList, + MaterialUiPickersDate, +} from '@material-ui/pickers/src/typings'; -// declare module '@material-ui/core/styles/overrides' { -// type overridesNameToClassKey = { -// [P in keyof MuiPickersOverrides]: keyof MuiPickersOverrides[P]; -// }; +declare module '@material-ui/core/styles/overrides' { + export interface ComponentNameToClassKey extends MuiPickersComponentsToClassName {} +} -// export interface ComponentNameToClassKey extends overridesNameToClassKey {} -// } +declare module '@material-ui/core/styles/props' { + export interface ComponentsPropsList extends MuiPickersComponentsPropsList {} +} interface NavigatorClipboard { clipboard: { @@ -25,3 +29,11 @@ declare module '*.mdx' { declare module '@date-io/type' { export type DateType = any; } + +declare module '@material-ui/pickers/src/typings/BasePicker' { + // In order to display user readable code in the examples we must not use `Date | Moment | DayJS | DateTime` type. + interface BasePickerProps { + value: any; + onChange: (value: any) => void; + } +} diff --git a/lib/.size-snapshot.json b/lib/.size-snapshot.json index e8fdb3592e5b11..9143fd57d7cad5 100644 --- a/lib/.size-snapshot.json +++ b/lib/.size-snapshot.json @@ -1,26 +1,26 @@ { "build/dist/material-ui-pickers.esm.js": { - "bundled": 193070, - "minified": 103465, - "gzipped": 26909, + "bundled": 199500, + "minified": 106760, + "gzipped": 27594, "treeshaked": { "rollup": { - "code": 84376, - "import_statements": 2121 + "code": 86536, + "import_statements": 2171 }, "webpack": { - "code": 93852 + "code": 96183 } } }, "build/dist/material-ui-pickers.umd.js": { - "bundled": 304179, - "minified": 118690, - "gzipped": 33810 + "bundled": 316507, + "minified": 121778, + "gzipped": 34781 }, "build/dist/material-ui-pickers.umd.min.js": { - "bundled": 261655, - "minified": 108931, - "gzipped": 30904 + "bundled": 271768, + "minified": 111933, + "gzipped": 31830 } } diff --git a/lib/package.json b/lib/package.json index 43c195de077c47..567d99f81e9cbe 100644 --- a/lib/package.json +++ b/lib/package.json @@ -43,7 +43,6 @@ } }, "dependencies": { - "@babel/runtime": "^7.8.4", "@date-io/date-fns": "^2.6.0", "@date-io/dayjs": "^2.6.0", "@date-io/luxon": "^2.6.0", @@ -55,6 +54,7 @@ }, "scripts": { "test": "jest", + "test:typescript": "tsc -p src/__tests__/tsconfig.json", "test:date-fns": "UTILS=date-fns yarn test", "test:luxon": "UTILS=luxon yarn test", "test:moment": "UTILS=moment yarn test", @@ -68,17 +68,19 @@ "release": "yarn test && yarn version && yarn build && yarn publish --non-interactive --tag next build" }, "devDependencies": { - "@babel/core": "^7.6.0", - "@babel/node": "^7.6.1", - "@babel/plugin-proposal-class-properties": "^7.5.5", + "@babel/core": "^7.9.6", + "@babel/node": "^7.8.7", + "@babel/plugin-proposal-class-properties": "^7.8.3", "@babel/plugin-transform-object-assign": "^7.8.3", "@babel/plugin-transform-react-constant-elements": "^7.7.4", "@babel/plugin-transform-runtime": "~7.6.0", - "@babel/preset-env": "^7.6.0", - "@babel/preset-react": "^7.0.0", + "@babel/preset-env": "^7.9.6", + "@babel/preset-react": "^7.9.4", + "@babel/runtime": "^7.9.6", "@cypress/webpack-preprocessor": "^4.1.1", "@material-ui/core": "^4.9.14", "@material-ui/icons": "^4.9.1", + "@rollup/plugin-babel": "^5.0.2", "@types/enzyme": "^3.10.5", "@types/enzyme-adapter-react-16": "^1.0.3", "@types/fs-extra": "^8.1.0", @@ -109,7 +111,6 @@ "react": "^16.13.0", "react-dom": "^16.13.0", "rollup": "^2.10.2", - "rollup-plugin-babel": "^4.3.3", "rollup-plugin-commonjs": "^10.1.0", "rollup-plugin-node-resolve": "^5.2.0", "rollup-plugin-size-snapshot": "^0.10.0", diff --git a/lib/rollup.config.js b/lib/rollup.config.js index 1199b0a53abd21..a911f40c8fcdde 100644 --- a/lib/rollup.config.js +++ b/lib/rollup.config.js @@ -3,7 +3,7 @@ import reactIs from 'react-is'; import pkg from './package.json'; // named exports detectors import propTypes from 'prop-types'; -import babel from 'rollup-plugin-babel'; +import babel from '@rollup/plugin-babel'; import replace from 'rollup-plugin-replace'; import commonjs from 'rollup-plugin-commonjs'; import nodeResolve from 'rollup-plugin-node-resolve'; @@ -47,7 +47,7 @@ const extensions = ['.ts', '.tsx', '.js']; const getBabelOptions = ({ useESModules }) => ({ exclude: /node_modules/, - runtimeHelpers: true, + babelHelpers: 'runtime', extensions, plugins: [['@babel/plugin-transform-runtime', { useESModules }]], }); diff --git a/lib/src/DatePicker/DatePicker.tsx b/lib/src/DatePicker/DatePicker.tsx index 881474b7447d08..1130cbca25f15e 100644 --- a/lib/src/DatePicker/DatePicker.tsx +++ b/lib/src/DatePicker/DatePicker.tsx @@ -4,7 +4,7 @@ import { WithViewsProps } from '../Picker/SharedPickerProps'; import { ResponsiveWrapper } from '../wrappers/ResponsiveWrapper'; import { useParsedDate } from '../_shared/hooks/date-helpers-hooks'; import { ExportedCalendarViewProps } from '../views/Calendar/CalendarView'; -import { ModalWrapper, InlineWrapper, StaticWrapper } from '../wrappers/Wrapper'; +import { MobileWrapper, DesktopWrapper, StaticWrapper } from '../wrappers/Wrapper'; import { makeValidationHook, ValidationProps } from '../_shared/hooks/useValidation'; import { ParsableDate, defaultMinDate, defaultMaxDate } from '../constants/prop-types'; import { getFormatByViews, validateDate, DateValidationError } from '../_helpers/date-utils'; @@ -45,30 +45,33 @@ const datePickerConfig = { }, }; -export const DatePicker = makePickerWithStateAndWrapper( - ResponsiveWrapper, - datePickerConfig -); +export const DatePicker = makePickerWithStateAndWrapper(ResponsiveWrapper, { + name: 'MuiPickersDatePicker', + ...datePickerConfig, +}); export type DatePickerProps = React.ComponentProps; -export const MobileDatePicker = makePickerWithStateAndWrapper( - ModalWrapper, - datePickerConfig -); +export const MobileDatePicker = makePickerWithStateAndWrapper(MobileWrapper, { + name: 'MuiPickersMobileDatePicker', + ...datePickerConfig, +}); export type MobileDatePickerProps = React.ComponentProps; export const DesktopDatePicker = makePickerWithStateAndWrapper( - InlineWrapper, - datePickerConfig + DesktopWrapper, + { + name: 'MuiPickersDesktopDatePicker', + ...datePickerConfig, + } ); export type DesktopDatePickerProps = React.ComponentProps; -export const StaticDatePicker = makePickerWithStateAndWrapper( - StaticWrapper, - datePickerConfig -); +export const StaticDatePicker = makePickerWithStateAndWrapper(StaticWrapper, { + name: 'MuiPickersStaticDatePicker', + ...datePickerConfig, +}); export type StaticDatePickerProps = React.ComponentProps; diff --git a/lib/src/DatePicker/DatePickerToolbar.tsx b/lib/src/DatePicker/DatePickerToolbar.tsx index 306f5f16c6bda2..613bf89be88147 100644 --- a/lib/src/DatePicker/DatePickerToolbar.tsx +++ b/lib/src/DatePicker/DatePickerToolbar.tsx @@ -6,8 +6,11 @@ import { DatePickerView } from './DatePicker'; import { useUtils } from '../_shared/hooks/useUtils'; import { makeStyles } from '@material-ui/core/styles'; import { ToolbarComponentProps } from '../Picker/Picker'; +import { withDefaultProps } from '../_shared/withDefaultProps'; import { isYearAndMonthViews, isYearOnlyView } from '../_helpers/date-utils'; +const muiPickersComponentConfig = { name: 'MuiPickersDatePickerToolbar' }; + export const useStyles = makeStyles( { dateTitleLandscape: { @@ -18,62 +21,65 @@ export const useStyles = makeStyles( top: 4, }, }, - { name: 'MuiPickersDatePickerRoot' } + muiPickersComponentConfig ); -export const DatePickerToolbar: React.FC = ({ - date, - views, - isLandscape, - isMobileKeyboardViewOpen, - toggleMobileKeyboardView, - toolbarFormat, - toolbarPlaceholder = '––', - toolbarTitle = 'SELECT DATE', -}) => { - const utils = useUtils(); - const classes = useStyles(); +export const DatePickerToolbar: React.FC = withDefaultProps( + muiPickersComponentConfig, + ({ + date, + views, + isLandscape, + isMobileKeyboardViewOpen, + toggleMobileKeyboardView, + toolbarFormat, + toolbarPlaceholder = '––', + toolbarTitle = 'SELECT DATE', + }) => { + const utils = useUtils(); + const classes = useStyles(); - const dateText = React.useMemo(() => { - if (!date) { - return toolbarPlaceholder; - } + const dateText = React.useMemo(() => { + if (!date) { + return toolbarPlaceholder; + } - if (toolbarFormat) { - return utils.formatByString(date, toolbarFormat); - } + if (toolbarFormat) { + return utils.formatByString(date, toolbarFormat); + } - if (isYearOnlyView(views as DatePickerView[])) { - return utils.format(date, 'year'); - } + if (isYearOnlyView(views as DatePickerView[])) { + return utils.format(date, 'year'); + } - if (isYearAndMonthViews(views as DatePickerView[])) { - return utils.format(date, 'month'); - } + if (isYearAndMonthViews(views as DatePickerView[])) { + return utils.format(date, 'month'); + } - // Little localization hack (Google is doing the same for android native pickers): - // For english localization it is convenient to include weekday into the date "Mon, Jun 1" - // For other locales using strings like "June 1", without weekday - return /en/.test(utils.getCurrentLocaleCode()) - ? utils.format(date, 'normalDateWithWeekday') - : utils.format(date, 'normalDate'); - }, [date, toolbarFormat, toolbarPlaceholder, utils, views]); + // Little localization hack (Google is doing the same for android native pickers): + // For english localization it is convenient to include weekday into the date "Mon, Jun 1" + // For other locales using strings like "June 1", without weekday + return /en/.test(utils.getCurrentLocaleCode()) + ? utils.format(date, 'normalDateWithWeekday') + : utils.format(date, 'normalDate'); + }, [date, toolbarFormat, toolbarPlaceholder, utils, views]); - return ( - - - - ); -}; + return ( + + + + ); + } +); diff --git a/lib/src/DateRangePicker/DateRangeDelimiter.tsx b/lib/src/DateRangePicker/DateRangeDelimiter.tsx index 9d9dc2ff3204f3..cc0751e5ba96d5 100644 --- a/lib/src/DateRangePicker/DateRangeDelimiter.tsx +++ b/lib/src/DateRangePicker/DateRangeDelimiter.tsx @@ -1,6 +1,12 @@ import Typography from '@material-ui/core/Typography'; import { styled } from '@material-ui/core/styles'; +import { withDefaultProps } from '../_shared/withDefaultProps'; -export const DateRangeDelimiter = styled(Typography)({ - margin: '0 16px', -}); +export const DateRangeDelimiter = withDefaultProps( + { name: 'MuiPickersDateRangeDelimiter' }, + styled(Typography)({ + margin: '0 16px', + }) +); + +export type DateRangeDelimiterProps = React.ComponentProps; diff --git a/lib/src/DateRangePicker/DateRangePicker.tsx b/lib/src/DateRangePicker/DateRangePicker.tsx index 177c1a3cc69279..81f188cb7ea83d 100644 --- a/lib/src/DateRangePicker/DateRangePicker.tsx +++ b/lib/src/DateRangePicker/DateRangePicker.tsx @@ -4,7 +4,9 @@ import { date } from '../constants/prop-types'; import { useUtils } from '../_shared/hooks/useUtils'; import { MobileWrapper } from '../wrappers/MobileWrapper'; import { DateRangeInputProps } from './DateRangePickerInput'; +import { withDefaultProps } from '../_shared/withDefaultProps'; import { useParsedDate } from '../_shared/hooks/date-helpers-hooks'; +import { withDateAdapterProp } from '../_shared/withDateAdapterProp'; import { DesktopPopperWrapper } from '../wrappers/DesktopPopperWrapper'; import { makeWrapperComponent } from '../wrappers/makeWrapperComponent'; import { ResponsivePopperWrapper } from '../wrappers/ResponsiveWrapper'; @@ -25,7 +27,7 @@ import { DateRangeValidationError, } from '../_helpers/date-utils'; -export interface DateRangePickerProps +export interface BaseDateRangePickerProps extends ExportedDateRangePickerViewProps, ValidationProps, ExportedDateRangePickerInputProps { @@ -44,13 +46,13 @@ export interface DateRangePickerProps export const useDateRangeValidation = makeValidationHook< DateRangeValidationError, RangeInput, - DateRangePickerProps + BaseDateRangePickerProps >(validateDateRange, { defaultValidationError: [null, null], isSameError: (a, b) => a[1] === b[1] && a[0] === b[0], }); -export function makeRangePicker(Wrapper: TWrapper) { +export function makeRangePicker(name: string, Wrapper: TWrapper) { const WrapperComponent = makeWrapperComponent( Wrapper, { @@ -76,7 +78,7 @@ export function makeRangePicker(Wrapper: TWrapper) minDate: __minDate = defaultMinDate, maxDate: __maxDate = defaultMaxDate, ...other - }: DateRangePickerProps & AllSharedDateRangePickerProps & ExtendWrapper) { + }: BaseDateRangePickerProps & AllSharedDateRangePickerProps & ExtendWrapper) { const utils = useUtils(); const minDate = useParsedDate(__minDate); const maxDate = useParsedDate(__maxDate); @@ -137,23 +139,48 @@ export function makeRangePicker(Wrapper: TWrapper) onChange: PropTypes.func.isRequired, startText: PropTypes.node, endText: PropTypes.node, - }; + } as any; + + const FinalPickerComponent = withDefaultProps( + { name }, + withDateAdapterProp(RangePickerWithStateAndWrapper) + ); return React.forwardRef< HTMLDivElement, React.ComponentProps - >((props, ref) => ); + >((props, ref) => ); } // TODO replace with new export type syntax export type DateRange = DateRangeType; -export const DateRangePicker = makeRangePicker(ResponsivePopperWrapper); +export const DateRangePicker = makeRangePicker( + 'MuiPickersDateRangePicker', + ResponsivePopperWrapper +); + +export type DateRangePickerProps = React.ComponentProps; + +export const DesktopDateRangePicker = makeRangePicker( + 'MuiPickersDesktopDateRangePicker', + DesktopPopperWrapper +); + +export type DesktopDateRangePickerProps = React.ComponentProps; + +export const MobileDateRangePicker = makeRangePicker( + 'MuiPickersMobileDateRangePicker', + MobileWrapper +); -export const DesktopDateRangePicker = makeRangePicker(DesktopPopperWrapper); +export type MobileDateRangePickerProps = React.ComponentProps; -export const MobileDateRangePicker = makeRangePicker(MobileWrapper); +export const StaticDateRangePicker = makeRangePicker( + 'MuiPickersStaticDateRangePicker', + StaticWrapper +); -export const StaticDateRangePicker = makeRangePicker(StaticWrapper); +export type StaticDateRangePickerProps = React.ComponentProps; export { DateRangeDelimiter } from './DateRangeDelimiter'; diff --git a/lib/src/DateRangePicker/DateRangePickerToolbar.tsx b/lib/src/DateRangePicker/DateRangePickerToolbar.tsx index 2dae52594a4d3d..deafd2de21d14c 100644 --- a/lib/src/DateRangePicker/DateRangePickerToolbar.tsx +++ b/lib/src/DateRangePicker/DateRangePickerToolbar.tsx @@ -5,8 +5,10 @@ import { useUtils } from '../_shared/hooks/useUtils'; import { makeStyles } from '@material-ui/core/styles'; import { ToolbarComponentProps } from '../Picker/Picker'; import { ToolbarButton } from '../_shared/ToolbarButton'; +import { withDefaultProps } from '../_shared/withDefaultProps'; import { DateRange, CurrentlySelectingRangeEndProps } from './RangeTypes'; +const muiComponentConfig = { name: 'MuiPickersDateRangePickerToolbarProps' }; export const useStyles = makeStyles( { penIcon: { @@ -17,7 +19,7 @@ export const useStyles = makeStyles( display: 'flex', }, }, - { name: 'MuiPickersDatePickerRoot' } + muiComponentConfig ); interface DateRangePickerToolbarProps @@ -33,51 +35,54 @@ interface DateRangePickerToolbarProps setCurrentlySelectingRangeEnd: (newSelectingEnd: 'start' | 'end') => void; } -export const DateRangePickerToolbar: React.FC = ({ - date: [start, end], - toolbarFormat, - isMobileKeyboardViewOpen, - toggleMobileKeyboardView, - currentlySelectingRangeEnd, - setCurrentlySelectingRangeEnd, - startText, - endText, - toolbarTitle = 'SELECT DATE RANGE', -}) => { - const utils = useUtils(); - const classes = useStyles(); +export const DateRangePickerToolbar: React.FC = withDefaultProps( + muiComponentConfig, + ({ + date: [start, end], + toolbarFormat, + isMobileKeyboardViewOpen, + toggleMobileKeyboardView, + currentlySelectingRangeEnd, + setCurrentlySelectingRangeEnd, + startText, + endText, + toolbarTitle = 'SELECT DATE RANGE', + }) => { + const utils = useUtils(); + const classes = useStyles(); - const startDateValue = start - ? utils.formatByString(start, toolbarFormat || utils.formats.shortDate) - : startText; + const startDateValue = start + ? utils.formatByString(start, toolbarFormat || utils.formats.shortDate) + : startText; - const endDateValue = end - ? utils.formatByString(end, toolbarFormat || utils.formats.shortDate) - : endText; + const endDateValue = end + ? utils.formatByString(end, toolbarFormat || utils.formats.shortDate) + : endText; - return ( - -
- setCurrentlySelectingRangeEnd('start')} - /> -  {'–'}  - setCurrentlySelectingRangeEnd('end')} - /> -
-
- ); -}; + return ( + +
+ setCurrentlySelectingRangeEnd('start')} + /> +  {'–'}  + setCurrentlySelectingRangeEnd('end')} + /> +
+
+ ); + } +); diff --git a/lib/src/DateTimePicker/DateTimePicker.tsx b/lib/src/DateTimePicker/DateTimePicker.tsx index 9a29ecda665fcf..ee268e45ecf5a8 100644 --- a/lib/src/DateTimePicker/DateTimePicker.tsx +++ b/lib/src/DateTimePicker/DateTimePicker.tsx @@ -6,7 +6,7 @@ import { pick12hOr24hFormat } from '../_helpers/text-field-helper'; import { useParsedDate } from '../_shared/hooks/date-helpers-hooks'; import { ExportedCalendarViewProps } from '../views/Calendar/CalendarView'; import { makePickerWithStateAndWrapper } from '../Picker/makePickerWithState'; -import { InlineWrapper, ModalWrapper, StaticWrapper } from '../wrappers/Wrapper'; +import { DesktopWrapper, MobileWrapper, StaticWrapper } from '../wrappers/Wrapper'; import { WithViewsProps, AllSharedPickerProps } from '../Picker/SharedPickerProps'; import { DateAndTimeValidationError, validateDateAndTime } from './date-time-utils'; import { makeValidationHook, ValidationProps } from '../_shared/hooks/useValidation'; @@ -14,7 +14,7 @@ import { ParsableDate, defaultMinDate, defaultMaxDate } from '../constants/prop- export type DateTimePickerView = 'year' | 'date' | 'month' | 'hours' | 'minutes' | 'seconds'; -export interface DateTimePickerProps +export interface BaseDateTimePickerProps extends WithViewsProps<'year' | 'date' | 'month' | 'hours' | 'minutes'>, ValidationProps, ExportedClockViewProps, @@ -59,7 +59,7 @@ function useInterceptProps({ openTo = 'date', views = ['year', 'date', 'hours', 'minutes'], ...other -}: DateTimePickerProps & AllSharedPickerProps) { +}: BaseDateTimePickerProps & AllSharedPickerProps) { const utils = useUtils(); const minTime = useParsedDate(__minTime); const maxTime = useParsedDate(__maxTime); @@ -100,7 +100,7 @@ function useInterceptProps({ const useValidation = makeValidationHook< DateAndTimeValidationError, ParsableDate, - DateTimePickerProps + BaseDateTimePickerProps >(validateDateAndTime); const dateTimePickerConfig = { @@ -109,22 +109,42 @@ const dateTimePickerConfig = { DefaultToolbarComponent: DateTimePickerToolbar, }; -export const DateTimePicker = makePickerWithStateAndWrapper( +export const DateTimePicker = makePickerWithStateAndWrapper( ResponsiveWrapper, - dateTimePickerConfig + { + name: 'MuiPickersDateTimePicker', + ...dateTimePickerConfig, + } ); -export const DesktopDateTimePicker = makePickerWithStateAndWrapper( - InlineWrapper, - dateTimePickerConfig +export type DateTimePickerProps = React.ComponentProps; + +export const DesktopDateTimePicker = makePickerWithStateAndWrapper( + DesktopWrapper, + { + name: 'MuiPickersDesktopDateTimePicker', + ...dateTimePickerConfig, + } ); -export const MobileDateTimePicker = makePickerWithStateAndWrapper( - ModalWrapper, - dateTimePickerConfig +export type DesktopDateTimePickerProps = React.ComponentProps; + +export const MobileDateTimePicker = makePickerWithStateAndWrapper( + MobileWrapper, + { + name: 'MuiPickersMobileDateTimePicker', + ...dateTimePickerConfig, + } ); -export const StaticDateTimePicker = makePickerWithStateAndWrapper( +export type MobileDateTimePickerProps = React.ComponentProps; + +export const StaticDateTimePicker = makePickerWithStateAndWrapper( StaticWrapper, - dateTimePickerConfig + { + name: 'MuiPickersStaticDateTimePicker', + ...dateTimePickerConfig, + } ); + +export type StaticDateTimePickerProps = React.ComponentProps; diff --git a/lib/src/DateTimePicker/DateTimePickerToolbar.tsx b/lib/src/DateTimePicker/DateTimePickerToolbar.tsx index f7ff26cf08ad7e..2752d0fed78045 100644 --- a/lib/src/DateTimePicker/DateTimePickerToolbar.tsx +++ b/lib/src/DateTimePicker/DateTimePickerToolbar.tsx @@ -8,8 +8,11 @@ import { DateTimePickerView } from './DateTimePicker'; import { makeStyles } from '@material-ui/core/styles'; import { MaterialUiPickersDate } from '../typings/date'; import { ToolbarComponentProps } from '../Picker/Picker'; +import { withDefaultProps } from '../_shared/withDefaultProps'; import { WrapperVariantContext } from '../wrappers/WrapperVariantContext'; +const muiComponentConfig = { name: 'MuiPickersDateTimePickerToolbar' }; + export const useStyles = makeStyles( { toolbar: { @@ -36,110 +39,113 @@ export const useStyles = makeStyles( right: 8, }, }, - { name: 'MuiPickerDTToolbar' } + muiComponentConfig ); -export const DateTimePickerToolbar: React.FC = ({ - date, - openView, - setOpenView, - ampm, - hideTabs, - dateRangeIcon, - timeIcon, - toolbarFormat, - toolbarPlaceholder = '––', - isMobileKeyboardViewOpen, - toggleMobileKeyboardView, - toolbarTitle = 'SELECT DATE & TIME', -}) => { - const utils = useUtils(); - const classes = useStyles(); - const wrapperVariant = React.useContext(WrapperVariantContext); - const showTabs = - wrapperVariant === 'desktop' - ? true - : !hideTabs && typeof window !== 'undefined' && window.innerHeight > 667; +export const DateTimePickerToolbar: React.FC = withDefaultProps( + muiComponentConfig, + ({ + date, + openView, + setOpenView, + ampm, + hideTabs, + dateRangeIcon, + timeIcon, + toolbarFormat, + toolbarPlaceholder = '––', + isMobileKeyboardViewOpen, + toggleMobileKeyboardView, + toolbarTitle = 'SELECT DATE & TIME', + }) => { + const utils = useUtils(); + const classes = useStyles(); + const wrapperVariant = React.useContext(WrapperVariantContext); + const showTabs = + wrapperVariant === 'desktop' + ? true + : !hideTabs && typeof window !== 'undefined' && window.innerHeight > 667; - const formatHours = (time: MaterialUiPickersDate) => - ampm ? utils.format(time, 'hours12h') : utils.format(time, 'hours24h'); + const formatHours = (time: MaterialUiPickersDate) => + ampm ? utils.format(time, 'hours12h') : utils.format(time, 'hours24h'); - const dateText = React.useMemo(() => { - if (!date) { - return toolbarPlaceholder; - } + const dateText = React.useMemo(() => { + if (!date) { + return toolbarPlaceholder; + } - if (toolbarFormat) { - return utils.formatByString(date, toolbarFormat); - } + if (toolbarFormat) { + return utils.formatByString(date, toolbarFormat); + } - return utils.format(date, 'shortDate'); - }, [date, toolbarFormat, toolbarPlaceholder, utils]); + return utils.format(date, 'shortDate'); + }, [date, toolbarFormat, toolbarPlaceholder, utils]); - return ( - <> - {wrapperVariant !== 'desktop' && ( - -
- setOpenView('year')} - selected={openView === 'year'} - value={date ? utils.format(date, 'year') : '–'} - /> + return ( + <> + {wrapperVariant !== 'desktop' && ( + +
+ setOpenView('year')} + selected={openView === 'year'} + value={date ? utils.format(date, 'year') : '–'} + /> - setOpenView('date')} - selected={openView === 'date'} - value={dateText} - /> -
+ setOpenView('date')} + selected={openView === 'date'} + value={dateText} + /> +
-
- setOpenView('hours')} - selected={openView === 'hours'} - value={date ? formatHours(date) : '--'} - typographyClassName={classes.timeTypography} - /> +
+ setOpenView('hours')} + selected={openView === 'hours'} + value={date ? formatHours(date) : '--'} + typographyClassName={classes.timeTypography} + /> - + - setOpenView('minutes')} - selected={openView === 'minutes'} - value={date ? utils.format(date, 'minutes') : '--'} - typographyClassName={classes.timeTypography} - /> -
- - )} + setOpenView('minutes')} + selected={openView === 'minutes'} + value={date ? utils.format(date, 'minutes') : '--'} + typographyClassName={classes.timeTypography} + /> +
+
+ )} - {showTabs && ( - - )} - - ); -}; + {showTabs && ( + + )} + + ); + } +); diff --git a/lib/src/LocalizationProvider.tsx b/lib/src/LocalizationProvider.tsx index afd2c233cb3a8e..cff0a697114f89 100644 --- a/lib/src/LocalizationProvider.tsx +++ b/lib/src/LocalizationProvider.tsx @@ -2,6 +2,7 @@ import * as React from 'react'; import * as PropTypes from 'prop-types'; import { DateIOFormats } from '@date-io/core/IUtils'; import { MuiPickersAdapter } from './_shared/hooks/useUtils'; +import { withDefaultProps } from './_shared/withDefaultProps'; export const MuiPickersAdapterContext = React.createContext(null); @@ -13,7 +14,7 @@ export interface LocalizationProviderProps { dateFormats?: Partial; } -export const LocalizationProvider: React.FC = ({ +const LocalizationProvider: React.FC = ({ dateAdapter: Utils, children, locale, @@ -37,4 +38,4 @@ LocalizationProvider.propTypes = { children: PropTypes.node.isRequired, } as any; -export default LocalizationProvider; +export default withDefaultProps({ name: 'MuiPickersLocalizationProvider' }, LocalizationProvider); diff --git a/lib/src/Picker/Picker.tsx b/lib/src/Picker/Picker.tsx index c5d6e061df2ae0..d407eddac5bba8 100644 --- a/lib/src/Picker/Picker.tsx +++ b/lib/src/Picker/Picker.tsx @@ -7,6 +7,7 @@ import { ParsableDate } from '../constants/prop-types'; import { BasePickerProps } from '../typings/BasePicker'; import { MaterialUiPickersDate } from '../typings/date'; import { DatePickerView } from '../DatePicker/DatePicker'; +import { withDefaultProps } from '../_shared/withDefaultProps'; import { KeyboardDateInput } from '../_shared/KeyboardDateInput'; import { useIsLandscape } from '../_shared/hooks/useIsLandscape'; import { DIALOG_WIDTH, VIEW_HEIGHT } from '../constants/dimensions'; @@ -57,6 +58,8 @@ export type PickerProps< TDateValue = MaterialUiPickersDate > = ExportedPickerProps & SharedPickerProps; +const muiComponentConfig = { name: 'MuiPickersBasePicker' }; + export const useStyles = makeStyles( { container: { @@ -78,7 +81,7 @@ export const useStyles = makeStyles( padding: '0 8px', }, }, - { name: 'MuiPickersBasePicker' } + muiComponentConfig ); const MobileKeyboardTextFieldProps = { fullWidth: true }; @@ -86,7 +89,7 @@ const MobileKeyboardTextFieldProps = { fullWidth: true }; const isTimePickerByViews = (views: DateTimePickerView[]) => !views.some(view => view === 'year' || view === 'month' || view === 'date'); -export function Picker({ +function Picker({ date, openTo = 'date', views = ['year', 'month', 'date', 'hours', 'minutes', 'seconds'], @@ -196,4 +199,4 @@ export function Picker({ ); } -Picker.displayName = 'Picker'; +export default withDefaultProps(muiComponentConfig, Picker); diff --git a/lib/src/Picker/makePickerWithState.tsx b/lib/src/Picker/makePickerWithState.tsx index 11da1f6a45d2e4..b0d0c8671564fe 100644 --- a/lib/src/Picker/makePickerWithState.tsx +++ b/lib/src/Picker/makePickerWithState.tsx @@ -1,17 +1,18 @@ import * as React from 'react'; +import Picker, { ToolbarComponentProps, ExportedPickerProps } from './Picker'; import { ParsableDate } from '../constants/prop-types'; import { MaterialUiPickersDate } from '../typings/date'; import { MuiPickersAdapter } from '../_shared/hooks/useUtils'; import { parsePickerInputValue } from '../_helpers/date-utils'; +import { withDefaultProps } from '../_shared/withDefaultProps'; import { KeyboardDateInput } from '../_shared/KeyboardDateInput'; +import { SomeWrapper, ExtendWrapper } from '../wrappers/Wrapper'; import { ResponsiveWrapper } from '../wrappers/ResponsiveWrapper'; import { withDateAdapterProp } from '../_shared/withDateAdapterProp'; import { makeWrapperComponent } from '../wrappers/makeWrapperComponent'; import { PureDateInput, DateInputProps } from '../_shared/PureDateInput'; import { AnyPickerView, AllSharedPickerProps } from './SharedPickerProps'; -import { SomeWrapper, ExtendWrapper, WrapperProps } from '../wrappers/Wrapper'; import { usePickerState, PickerStateValueManager } from '../_shared/hooks/usePickerState'; -import { Picker, ToolbarComponentProps, ExportedPickerProps, PickerProps } from './Picker'; type AllAvailableForOverrideProps = ExportedPickerProps; @@ -20,6 +21,7 @@ export type AllPickerProps = T & ExtendWrapper; export interface MakePickerOptions { + name: string; /** * Hook that running validation for the `value` and input. */ @@ -43,7 +45,7 @@ export function makePickerWithStateAndWrapper< TWrapper extends SomeWrapper = typeof ResponsiveWrapper >( Wrapper: TWrapper, - { useInterceptProps, useValidation, DefaultToolbarComponent }: MakePickerOptions + { name, useInterceptProps, useValidation, DefaultToolbarComponent }: MakePickerOptions ) { const PickerWrapper = makeWrapperComponent( Wrapper, @@ -65,26 +67,22 @@ export function makePickerWithStateAndWrapper< // Note that we are passing down all the value without spread. // It saves us >1kb gzip and make any prop available automatically on any level down. const { value, onChange, ...other } = allProps; - const DateInputProps = { ...inputProps, ...other, validationError }; + const AllDateInputProps = { ...inputProps, ...other, validationError }; return ( - + )} + DateInputProps={AllDateInputProps} + {...other} /> ); } - const FinalPickerComponent = withDateAdapterProp(PickerWithState); + const FinalPickerComponent = withDefaultProps({ name }, withDateAdapterProp(PickerWithState)); return React.forwardRef>( (props, ref) => ); diff --git a/lib/src/TimePicker/TimePicker.tsx b/lib/src/TimePicker/TimePicker.tsx index c581da7bae5d39..b790e855171488 100644 --- a/lib/src/TimePicker/TimePicker.tsx +++ b/lib/src/TimePicker/TimePicker.tsx @@ -9,11 +9,11 @@ import { useParsedDate } from '../_shared/hooks/date-helpers-hooks'; import { useUtils, MuiPickersAdapter } from '../_shared/hooks/useUtils'; import { validateTime, TimeValidationError } from '../_helpers/time-utils'; import { makePickerWithStateAndWrapper } from '../Picker/makePickerWithState'; -import { ModalWrapper, InlineWrapper, StaticWrapper } from '../wrappers/Wrapper'; +import { MobileWrapper, DesktopWrapper, StaticWrapper } from '../wrappers/Wrapper'; import { WithViewsProps, AllSharedPickerProps } from '../Picker/SharedPickerProps'; import { ValidationProps, makeValidationHook } from '../_shared/hooks/useValidation'; -export interface TimePickerProps +export interface BaseTimePickerProps extends ExportedClockViewProps, ValidationProps, WithViewsProps<'hours' | 'minutes' | 'seconds'> {} @@ -33,7 +33,7 @@ function useInterceptProps({ openTo = 'hours', views = ['hours', 'minutes'], ...other -}: TimePickerProps & AllSharedPickerProps) { +}: BaseTimePickerProps & AllSharedPickerProps) { const utils = useUtils(); const minTime = useParsedDate(__minTime); @@ -61,28 +61,39 @@ function useInterceptProps({ const timePickerConfig = { useInterceptProps, - useValidation: makeValidationHook( + useValidation: makeValidationHook( validateTime ), DefaultToolbarComponent: TimePickerToolbar, }; -export const TimePicker = makePickerWithStateAndWrapper( - ResponsiveWrapper, - timePickerConfig -); +export const TimePicker = makePickerWithStateAndWrapper(ResponsiveWrapper, { + name: 'MuiPickersTimePicker', + ...timePickerConfig, +}); -export const DesktopTimePicker = makePickerWithStateAndWrapper( - InlineWrapper, - timePickerConfig -); +export type TimePickerProps = React.ComponentProps; -export const MobileTimePicker = makePickerWithStateAndWrapper( - ModalWrapper, - timePickerConfig +export const DesktopTimePicker = makePickerWithStateAndWrapper( + DesktopWrapper, + { + name: 'MuiPickersDesktopTimePicker', + ...timePickerConfig, + } ); -export const StaticTimePicker = makePickerWithStateAndWrapper( - StaticWrapper, - timePickerConfig -); +export type DesktopTimePickerProps = React.ComponentProps; + +export const MobileTimePicker = makePickerWithStateAndWrapper(MobileWrapper, { + name: 'MuiPickersMobileTimePicker', + ...timePickerConfig, +}); + +export type MobileTimePickerProps = React.ComponentProps; + +export const StaticTimePicker = makePickerWithStateAndWrapper(StaticWrapper, { + name: 'MuiPickersStaticTimePicker', + ...timePickerConfig, +}); + +export type StaticTimePickerProps = React.ComponentProps; diff --git a/lib/src/TimePicker/TimePickerToolbar.tsx b/lib/src/TimePicker/TimePickerToolbar.tsx index 44e37cdadb5ecf..8fa947ce81fd2a 100644 --- a/lib/src/TimePicker/TimePickerToolbar.tsx +++ b/lib/src/TimePicker/TimePickerToolbar.tsx @@ -7,9 +7,12 @@ import { arrayIncludes } from '../_helpers/utils'; import { useUtils } from '../_shared/hooks/useUtils'; import { MaterialUiPickersDate } from '../typings/date'; import { ToolbarComponentProps } from '../Picker/Picker'; +import { withDefaultProps } from '../_shared/withDefaultProps'; import { useTheme, makeStyles } from '@material-ui/core/styles'; import { convertToMeridiem, getMeridiem } from '../_helpers/time-utils'; +const muiComponentConfig = { name: 'MuiPickersTimePickerToolbar' }; + export const useStyles = makeStyles( { separator: { @@ -47,7 +50,7 @@ export const useStyles = makeStyles( marginTop: 'auto', }, }, - { name: 'MuiPickersTimePickerToolbar' } + muiComponentConfig ); export function useMeridiemMode( @@ -71,119 +74,122 @@ export function useMeridiemMode( const clockTypographyVariant = 'h3'; -export const TimePickerToolbar: React.FC = ({ - date, - views, - ampm, - openView, - onChange, - isLandscape, - setOpenView, - ampmInClock, - isMobileKeyboardViewOpen, - toggleMobileKeyboardView, - toolbarTitle = 'SELECT TIME', -}) => { - const utils = useUtils(); - const theme = useTheme(); - const classes = useStyles(); - const showAmPmControl = Boolean(ampm && !ampmInClock); - const { meridiemMode, handleMeridiemChange } = useMeridiemMode(date, ampm, onChange); - - const formatHours = (time: MaterialUiPickersDate) => - ampm ? utils.format(time, 'hours12h') : utils.format(time, 'hours24h'); - - const separator = ( - - ); - - return ( - -
= withDefaultProps( + muiComponentConfig, + ({ + date, + views, + ampm, + openView, + onChange, + isLandscape, + setOpenView, + ampmInClock, + isMobileKeyboardViewOpen, + toggleMobileKeyboardView, + toolbarTitle = 'SELECT TIME', + }) => { + const utils = useUtils(); + const theme = useTheme(); + const classes = useStyles(); + const showAmPmControl = Boolean(ampm && !ampmInClock); + const { meridiemMode, handleMeridiemChange } = useMeridiemMode(date, ampm, onChange); + + const formatHours = (time: MaterialUiPickersDate) => + ampm ? utils.format(time, 'hours12h') : utils.format(time, 'hours24h'); + + const separator = ( + + ); + + return ( + - {arrayIncludes(views, 'hours') && ( - setOpenView('hours')} - selected={openView === 'hours'} - value={date ? formatHours(date) : '--'} - /> - )} - - {arrayIncludes(views, ['hours', 'minutes']) && separator} - - {arrayIncludes(views, 'minutes') && ( - setOpenView('minutes')} - selected={openView === 'minutes'} - value={date ? utils.format(date, 'minutes') : '--'} - /> - )} - - {arrayIncludes(views, ['minutes', 'seconds']) && separator} - - {arrayIncludes(views, 'seconds') && ( - setOpenView('seconds')} - selected={openView === 'seconds'} - value={date ? utils.format(date, 'seconds') : '--'} - /> - )} -
- - {showAmPmControl && (
- handleMeridiemChange('am')} - /> - - handleMeridiemChange('pm')} - /> + {arrayIncludes(views, 'hours') && ( + setOpenView('hours')} + selected={openView === 'hours'} + value={date ? formatHours(date) : '--'} + /> + )} + + {arrayIncludes(views, ['hours', 'minutes']) && separator} + + {arrayIncludes(views, 'minutes') && ( + setOpenView('minutes')} + selected={openView === 'minutes'} + value={date ? utils.format(date, 'minutes') : '--'} + /> + )} + + {arrayIncludes(views, ['minutes', 'seconds']) && separator} + + {arrayIncludes(views, 'seconds') && ( + setOpenView('seconds')} + selected={openView === 'seconds'} + value={date ? utils.format(date, 'seconds') : '--'} + /> + )}
- )} -
- ); -}; + + {showAmPmControl && ( +
+ handleMeridiemChange('am')} + /> + + handleMeridiemChange('pm')} + /> +
+ )} + + ); + } +); export default TimePickerToolbar; diff --git a/lib/src/__tests__/DatePicker.test.tsx b/lib/src/__tests__/DatePicker.test.tsx index 91eb3cd864bc0c..86abd333f00b2d 100644 --- a/lib/src/__tests__/DatePicker.test.tsx +++ b/lib/src/__tests__/DatePicker.test.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; +import Picker from '../Picker/Picker'; import { ReactWrapper } from 'enzyme'; -import { Picker } from '../Picker/Picker'; import { TextField } from '@material-ui/core'; import { MaterialUiPickersDate } from '../typings/date'; import { mount, utilsToUse, mountPickerWithState } from './test-utils'; diff --git a/lib/src/__tests__/tsconfig.json b/lib/src/__tests__/tsconfig.json index 9283d45cc50d23..56648f53a2968a 100644 --- a/lib/src/__tests__/tsconfig.json +++ b/lib/src/__tests__/tsconfig.json @@ -1,5 +1,8 @@ { "extends": "../../tsconfig.json", - "include": ["../../typings.d.ts", "./**/*.tsx", "./**/*.ts"], - "exclude": [] + "exclude": [], + "include": ["../../typings.d.ts", "./typings.d.ts", "./**/*.tsx", "./**/*.ts", "./typescript/*"], + "compilerOptions": { + // "baseUrl": ".", + } } diff --git a/lib/src/__tests__/typescript/Overrides.tsx b/lib/src/__tests__/typescript/Overrides.tsx new file mode 100644 index 00000000000000..94f1c6aa6c15a5 --- /dev/null +++ b/lib/src/__tests__/typescript/Overrides.tsx @@ -0,0 +1,55 @@ +// Related: ../../__tests__/typings.d.ts + +import { createMuiTheme } from '@material-ui/core'; + +createMuiTheme({ + overrides: { + MuiPickersClock: { + clock: { + display: 'flex', + }, + }, + MuiPickersMonth: { + root: { + color: 'red', + }, + }, + }, +}); + +// Allows to mix overrides for both pickers and core components +createMuiTheme({ + overrides: { + MuiPickersClock: { + clock: { + display: 'flex', + }, + }, + MuiButton: { + root: { + color: 'red', + }, + }, + }, +}); + +// Throws error if class key is invalid +createMuiTheme({ + overrides: { + MuiPickersClock: { + // @ts-expect-error: Throws error if class key is invalid + click: { + display: 'flex', + }, + }, + MuiPickersCalendarView: { + viewTransitionContainer: { + marginRight: 15, + }, + // @ts-expect-error: Throws error if class key is invalid + somethingInvalid: { + color: 'blacl', + }, + }, + }, +}); diff --git a/lib/src/__tests__/typescript/ThemeDefaultProps.tsx b/lib/src/__tests__/typescript/ThemeDefaultProps.tsx new file mode 100644 index 00000000000000..69459ba63e7faf --- /dev/null +++ b/lib/src/__tests__/typescript/ThemeDefaultProps.tsx @@ -0,0 +1,46 @@ +// Related: ../../__tests__/typings.d.ts +import { createMuiTheme } from '@material-ui/core'; + +createMuiTheme({ + props: { + MuiPickersDatePicker: { + disableMaskedInput: true, + }, + MuiPickersTimePicker: { + ampmInClock: true, + }, + MuiPickersDay: { + showDaysOutsideCurrentMonth: true, + }, + MuiPickersCalendarView: { + reduceAnimations: true, + }, + }, +}); + +// Allows to mix overrides for both pickers and core components +createMuiTheme({ + props: { + MuiPickersCalendarView: { + reduceAnimations: true, + }, + MuiPopover: { + open: false, + }, + }, +}); + +// Throws error if class key is invalid +createMuiTheme({ + props: { + MuiPickersCalendarView: { + // @ts-expect-error: Throws error if class key is invalid + somethingInvalid: 123, + }, + MuiPickersDay: { + onSuspend: () => {}, + // @ts-expect-error: Throws error if class key is invalid + showDaysOutsideCurrentMonthTypo: false, + }, + }, +}); diff --git a/lib/src/__tests__/typings.d.ts b/lib/src/__tests__/typings.d.ts new file mode 100644 index 00000000000000..daacbb7193f815 --- /dev/null +++ b/lib/src/__tests__/typings.d.ts @@ -0,0 +1,9 @@ +import { MuiPickersComponentsToClassName, MuiPickersComponentsPropsList } from '../../src/typings'; + +declare module '@material-ui/core/styles/overrides' { + export interface ComponentNameToClassKey extends MuiPickersComponentsToClassName {} +} + +declare module '@material-ui/core/styles/props' { + export interface ComponentsPropsList extends MuiPickersComponentsPropsList {} +} diff --git a/lib/src/_shared/PickerModalDialog.tsx b/lib/src/_shared/PickerModalDialog.tsx index deae2a23ab0aea..d0e2721c01542e 100644 --- a/lib/src/_shared/PickerModalDialog.tsx +++ b/lib/src/_shared/PickerModalDialog.tsx @@ -70,6 +70,9 @@ export const useStyles = makeStyles( padding: 0, }, }, + dialogAction: { + // requested for overrides + }, withAdditionalAction: { // set justifyContent to default value to fix IE11 layout bug // see https://github.com/mui-org/material-ui-pickers/pull/267 @@ -116,7 +119,7 @@ export const PickerModalDialog: React.FC = ({ diff --git a/lib/src/_shared/withDefaultProps.tsx b/lib/src/_shared/withDefaultProps.tsx new file mode 100644 index 00000000000000..e431aa9935b24a --- /dev/null +++ b/lib/src/_shared/withDefaultProps.tsx @@ -0,0 +1,19 @@ +import * as React from 'react'; +import getThemeProps from '@material-ui/styles/getThemeProps'; +import { useTheme } from '@material-ui/core/styles'; + +export function withDefaultProps( + { name }: { name: string }, + Component: React.ComponentType +): React.FC { + return ({ ...props }) => { + const theme = useTheme(); + const propsWithDefault = getThemeProps({ + props, + theme, + name, + }); + + return ; + }; +} diff --git a/lib/src/constants/prop-types.ts b/lib/src/constants/prop-types.ts index eed9ec155bf06f..6fd47fb1922164 100644 --- a/lib/src/constants/prop-types.ts +++ b/lib/src/constants/prop-types.ts @@ -14,6 +14,6 @@ export type ParsableDate = string | number | Date | null | undefined | MaterialU export const DomainPropTypes = { date, datePickerView }; -export const defaultMinDate = new Date('1900-01-01'); +export const defaultMinDate = new Date('1900-01-01') as any; -export const defaultMaxDate = new Date('2100-01-01'); +export const defaultMaxDate = new Date('2100-01-01') as any; diff --git a/lib/src/index.ts b/lib/src/index.ts index 0f8e1e483a4675..2017b791c79f6f 100644 --- a/lib/src/index.ts +++ b/lib/src/index.ts @@ -1,5 +1,3 @@ -import { DayProps as DayPropsType } from './views/Calendar/Day'; - export * from './DatePicker'; export { DatePickerToolbar } from './DatePicker/DatePickerToolbar'; @@ -18,25 +16,34 @@ export { DateRangePickerToolbar } from './DateRangePicker/DateRangePickerToolbar export { Calendar } from './views/Calendar/Calendar'; -export * from './views/Calendar/CalendarView'; +export { CalendarView } from './views/Calendar/CalendarView'; export { Day } from './views/Calendar/Day'; -export type DayProps = DayPropsType; - -export { default as TimePickerView, ClockView } from './views/Clock/ClockView'; - -export { default as Clock } from './views/Clock/Clock'; +export { ClockView } from './views/Clock/ClockView'; -export { Picker } from './Picker/Picker'; +export { Clock } from './views/Clock/Clock'; -export { makePickerWithStateAndWrapper as makePickerWithState } from './Picker/makePickerWithState'; +export { default as Picker } from './Picker/Picker'; export { useUtils } from './_shared/hooks/useUtils'; export { usePickerState } from './_shared/hooks/usePickerState'; +export * from './typings/date'; + export { - LocalizationProvider, + default as LocalizationProvider, MuiPickersAdapterContext as MuiPickersContext, } from './LocalizationProvider'; + +// TODO replace the following syntax with new ts export type { } syntax when will be supported by rollup + +export type CalendarProps = import('./views/Calendar/Calendar').CalendarProps; +export type CalendarViewProps = import('./views/Calendar/CalendarView').CalendarViewProps; +export type DayProps = import('./views/Calendar/Day').DayProps; +export type ClockViewProps = import('./views/Clock/ClockView').ClockViewProps; +export type ClockProps = import('./views/Clock/Clock').ClockProps; +export type ToolbarComponentProps = import('./Picker/Picker').ToolbarComponentProps; +export type DateRangeDelimiterProps = import('./DateRangePicker/DateRangeDelimiter').DateRangeDelimiterProps; +export type LocalizationProviderProps = import('./LocalizationProvider').LocalizationProviderProps; diff --git a/lib/src/typings/index.ts b/lib/src/typings/index.ts new file mode 100644 index 00000000000000..45e992ec62318f --- /dev/null +++ b/lib/src/typings/index.ts @@ -0,0 +1,3 @@ +export * from './date'; +export * from './overrides'; +export * from './props'; diff --git a/lib/src/typings/overrides.ts b/lib/src/typings/overrides.ts index 891ccfdf13846a..aa1d4d0a6ed142 100644 --- a/lib/src/typings/overrides.ts +++ b/lib/src/typings/overrides.ts @@ -23,21 +23,17 @@ import { useStyles as MuiPickerDTToolbarStyles } from '../DateTimePicker/DateTim type StylesHook = (props?: any) => Record; -type Classes = Partial< - StyleRules< - T extends string - ? T - : T extends StylesHook - ? C - : T extends StyleRulesCallback - ? K - : T extends StyleRules - ? D - : never - > ->; +type Classes = T extends string + ? T + : T extends StylesHook + ? C + : T extends StyleRulesCallback + ? K + : T extends StyleRules + ? D + : never; -export interface MuiPickersOverrides { +export interface MuiPickersComponentsToClassName { MuiPickersDay?: Classes; MuiPickerDTHeader?: Classes; MuiPickerDTTabs?: Classes; diff --git a/lib/src/typings/props.ts b/lib/src/typings/props.ts new file mode 100644 index 00000000000000..5ff1c8d4826ea5 --- /dev/null +++ b/lib/src/typings/props.ts @@ -0,0 +1,58 @@ +import { PickerProps } from '../Picker/Picker'; +import { DateRangeDelimiterProps } from '../DateRangePicker/DateRangeDelimiter'; +import { + ToolbarComponentProps, + LocalizationProviderProps, + ClockViewProps, + CalendarProps, + ClockProps, + DayProps, + DatePickerProps, + MobileDatePickerProps, + DesktopDatePickerProps, + StaticDatePickerProps, + CalendarViewProps, + TimePickerProps, + MobileTimePickerProps, + DesktopTimePickerProps, + StaticTimePickerProps, + DateTimePickerProps, + MobileDateTimePickerProps, + DesktopDateTimePickerProps, + StaticDateTimePickerProps, + DateRangePickerProps, + MobileDateRangePickerProps, + DesktopDateRangePickerProps, + StaticDateRangePickerProps, +} from '..'; + +export interface MuiPickersComponentsPropsList { + MuiPickersDay: DayProps; + MuiPickersCalendarView: CalendarViewProps; + MuiPickersDatePicker: DatePickerProps; + MuiPickersMobileDatePicker: MobileDatePickerProps; + MuiPickersDesktopDatePicker: DesktopDatePickerProps; + MuiPickersStaticDatePicker: StaticDatePickerProps; + MuiPickersTimePicker: TimePickerProps; + MuiPickersMobileTimePicker: MobileTimePickerProps; + MuiPickersDesktopTimePicker: DesktopTimePickerProps; + MuiPickersStaticTimePicker: StaticTimePickerProps; + MuiPickersDateTimePicker: DateTimePickerProps; + MuiPickersMobileDateTimePicker: MobileDateTimePickerProps; + MuiPickersDesktopDateTimePicker: DesktopDateTimePickerProps; + MuiPickersStaticDateTimePicker: StaticDateTimePickerProps; + MuiPickersCalendar: CalendarProps; + MuiPickersClockView: ClockViewProps; + MuiPickersClock: ClockProps; + MuiPickersBasePicker: PickerProps; + MuiPickersLocalizationProvider: LocalizationProviderProps; + MuiPickersTimePickerToolbar: ToolbarComponentProps; + MuiPickersDatePickerToolbar: ToolbarComponentProps; + MuiPickersDateTimePickerToolbar: ToolbarComponentProps; + MuiPickersDateRangePickerToolbarProps: ToolbarComponentProps; + MuiPickersDateRangePicker: DateRangePickerProps; + MuiPickersDesktopDateRangePicker: DesktopDateRangePickerProps; + MuiPickersMobileDateRangePicker: MobileDateRangePickerProps; + MuiPickersStaticDateRangePicker: StaticDateRangePickerProps; + MuiPickersDateRangeDelimiter: DateRangeDelimiterProps; +} diff --git a/lib/src/views/Calendar/Calendar.tsx b/lib/src/views/Calendar/Calendar.tsx index be4a7c188e27ba..180eff8fc0c7fc 100644 --- a/lib/src/views/Calendar/Calendar.tsx +++ b/lib/src/views/Calendar/Calendar.tsx @@ -7,6 +7,7 @@ import { useUtils, useNow } from '../../_shared/hooks/useUtils'; import { PickerOnChangeFn } from '../../_shared/hooks/useViews'; import { makeStyles, useTheme } from '@material-ui/core/styles'; import { DAY_SIZE, DAY_MARGIN } from '../../constants/dimensions'; +import { withDefaultProps } from '../../_shared/withDefaultProps'; import { useGlobalKeyDown, keycode } from '../../_shared/hooks/useKeyDown'; import { SlideTransition, SlideDirection, SlideTransitionProps } from './SlideTransition'; @@ -49,164 +50,177 @@ export interface CalendarProps extends ExportedCalendarProps { TransitionProps?: Partial; } -export const useStyles = makeStyles(theme => ({ - transitionContainer: { - minHeight: (DAY_SIZE + DAY_MARGIN * 4) * 6, - }, - transitionContainerOverflowAllowed: { - overflowX: 'visible', - }, - progressContainer: { - width: '100%', - height: '100%', - display: 'flex', - justifyContent: 'center', - alignItems: 'center', - }, - weekContainer: { - overflow: 'hidden', - }, - week: { - margin: `${DAY_MARGIN}px 0`, - display: 'flex', - justifyContent: 'center', - }, - iconButton: { - zIndex: 1, - backgroundColor: theme.palette.background.paper, - }, - previousMonthButton: { - marginRight: 12, - }, - daysHeader: { - display: 'flex', - justifyContent: 'center', - alignItems: 'center', - }, - weekDayLabel: { - width: 36, - height: 40, - margin: '0 2px', - textAlign: 'center', - display: 'flex', - justifyContent: 'center', - alignItems: 'center', - color: theme.palette.text.hint, - }, -})); - -export const Calendar: React.FC = ({ - date, - isMonthSwitchingAnimating, - onMonthSwitchingAnimationEnd, - focusedDay, - changeFocusedDay, - onChange, - slideDirection, - currentMonth, - renderDay, - reduceAnimations, - allowKeyboardControl, - isDateDisabled, - disableHighlightToday, - showDaysOutsideCurrentMonth, - className, - TransitionProps, -}) => { - const now = useNow(); - const utils = useUtils(); - const theme = useTheme(); - const classes = useStyles(); - - const handleDaySelect = React.useCallback( - (day: MaterialUiPickersDate, isFinish: boolean | symbol = true) => { - onChange(Array.isArray(date) ? day : utils.mergeDateAndTime(day, date || now), isFinish); +const muiComponentConfig = { name: 'MuiPickersCalendar' }; +export const useStyles = makeStyles( + theme => ({ + transitionContainer: { + minHeight: (DAY_SIZE + DAY_MARGIN * 4) * 6, }, - [date, now, onChange, utils] - ); - - const initialDate = Array.isArray(date) ? date[0] : date; + transitionContainerOverflowAllowed: { + overflowX: 'visible', + }, + progressContainer: { + width: '100%', + height: '100%', + display: 'flex', + justifyContent: 'center', + alignItems: 'center', + }, + weekContainer: { + overflow: 'hidden', + }, + week: { + margin: `${DAY_MARGIN}px 0`, + display: 'flex', + justifyContent: 'center', + }, + iconButton: { + zIndex: 1, + backgroundColor: theme.palette.background.paper, + }, + previousMonthButton: { + marginRight: 12, + }, + daysHeader: { + display: 'flex', + justifyContent: 'center', + alignItems: 'center', + }, + weekDayLabel: { + width: 36, + height: 40, + margin: '0 2px', + textAlign: 'center', + display: 'flex', + justifyContent: 'center', + alignItems: 'center', + color: theme.palette.text.hint, + }, + }), + muiComponentConfig +); - const nowFocusedDay = focusedDay || initialDate || now; - useGlobalKeyDown(Boolean(allowKeyboardControl), { - [keycode.ArrowUp]: () => changeFocusedDay(utils.addDays(nowFocusedDay, -7)), - [keycode.ArrowDown]: () => changeFocusedDay(utils.addDays(nowFocusedDay, 7)), - [keycode.ArrowLeft]: () => - changeFocusedDay(utils.addDays(nowFocusedDay, theme.direction === 'ltr' ? -1 : 1)), - [keycode.ArrowRight]: () => - changeFocusedDay(utils.addDays(nowFocusedDay, theme.direction === 'ltr' ? 1 : -1)), - [keycode.Home]: () => changeFocusedDay(utils.startOfWeek(nowFocusedDay)), - [keycode.End]: () => changeFocusedDay(utils.endOfWeek(nowFocusedDay)), - [keycode.PageUp]: () => changeFocusedDay(utils.getNextMonth(nowFocusedDay)), - [keycode.PageDown]: () => changeFocusedDay(utils.getPreviousMonth(nowFocusedDay)), - }); +export const Calendar: React.FC = withDefaultProps( + muiComponentConfig, + ({ + date, + isMonthSwitchingAnimating, + onMonthSwitchingAnimationEnd, + focusedDay, + changeFocusedDay, + onChange, + slideDirection, + currentMonth, + renderDay, + reduceAnimations, + allowKeyboardControl, + isDateDisabled, + disableHighlightToday, + showDaysOutsideCurrentMonth, + className, + TransitionProps, + }) => { + const now = useNow(); + const utils = useUtils(); + const theme = useTheme(); + const classes = useStyles(); - const currentMonthNumber = utils.getMonth(currentMonth); - const selectedDates = (Array.isArray(date) ? date : [date]) - .filter(Boolean) - .map(selectedDateItem => utils.startOfDay(selectedDateItem)); + const handleDaySelect = React.useCallback( + (day: MaterialUiPickersDate, isFinish: boolean | symbol = true) => { + onChange(Array.isArray(date) ? day : utils.mergeDateAndTime(day, date || now), isFinish); + }, + [date, now, onChange, utils] + ); - return ( - <> -
- {utils.getWeekdays().map((day, i) => ( - - ))} -
+ const initialDate = Array.isArray(date) ? date[0] : date; - -
- {utils.getWeekArray(currentMonth).map(week => ( -
- {week.map(day => { - const disabled = isDateDisabled(day); - const isDayInCurrentMonth = utils.getMonth(day) === currentMonthNumber; + const nowFocusedDay = focusedDay || initialDate || now; + useGlobalKeyDown(Boolean(allowKeyboardControl), { + [keycode.ArrowUp]: () => changeFocusedDay(utils.addDays(nowFocusedDay, -7)), + [keycode.ArrowDown]: () => changeFocusedDay(utils.addDays(nowFocusedDay, 7)), + [keycode.ArrowLeft]: () => + changeFocusedDay(utils.addDays(nowFocusedDay, theme.direction === 'ltr' ? -1 : 1)), + [keycode.ArrowRight]: () => + changeFocusedDay(utils.addDays(nowFocusedDay, theme.direction === 'ltr' ? 1 : -1)), + [keycode.Home]: () => changeFocusedDay(utils.startOfWeek(nowFocusedDay)), + [keycode.End]: () => changeFocusedDay(utils.endOfWeek(nowFocusedDay)), + [keycode.PageUp]: () => changeFocusedDay(utils.getNextMonth(nowFocusedDay)), + [keycode.PageDown]: () => changeFocusedDay(utils.getPreviousMonth(nowFocusedDay)), + }); - const dayProps: DayProps = { - key: (day as any)?.toString(), - day: day, - role: 'cell', - isAnimating: isMonthSwitchingAnimating, - disabled: disabled, - allowKeyboardControl: allowKeyboardControl, - focused: - allowKeyboardControl && Boolean(focusedDay) && utils.isSameDay(day, focusedDay), - today: utils.isSameDay(day, now), - inCurrentMonth: isDayInCurrentMonth, - selected: selectedDates.some(selectedDate => utils.isSameDay(selectedDate, day)), - disableHighlightToday, - showDaysOutsideCurrentMonth, - focusable: - allowKeyboardControl && - Boolean(nowFocusedDay) && - utils.toJsDate(nowFocusedDay).getDate() === utils.toJsDate(day).getDate(), - onDayFocus: changeFocusedDay, - onDaySelect: handleDaySelect, - }; + const currentMonthNumber = utils.getMonth(currentMonth); + const selectedDates = (Array.isArray(date) ? date : [date]) + .filter(Boolean) + .map(selectedDateItem => utils.startOfDay(selectedDateItem)); - return renderDay ? renderDay(day, selectedDates, dayProps) : ; - })} -
+ return ( + <> +
+ {utils.getWeekdays().map((day, i) => ( + ))}
- - - ); -}; -Calendar.displayName = 'Calendar'; + +
+ {utils.getWeekArray(currentMonth).map(week => ( +
+ {week.map(day => { + const disabled = isDateDisabled(day); + const isDayInCurrentMonth = utils.getMonth(day) === currentMonthNumber; -export default Calendar; + const dayProps: DayProps = { + key: (day as any)?.toString(), + day: day, + role: 'cell', + isAnimating: isMonthSwitchingAnimating, + disabled: disabled, + allowKeyboardControl: allowKeyboardControl, + focused: + allowKeyboardControl && + Boolean(focusedDay) && + utils.isSameDay(day, focusedDay), + today: utils.isSameDay(day, now), + inCurrentMonth: isDayInCurrentMonth, + selected: selectedDates.some(selectedDate => + utils.isSameDay(selectedDate, day) + ), + disableHighlightToday, + showDaysOutsideCurrentMonth, + focusable: + allowKeyboardControl && + Boolean(nowFocusedDay) && + utils.toJsDate(nowFocusedDay).getDate() === utils.toJsDate(day).getDate(), + onDayFocus: changeFocusedDay, + onDaySelect: handleDaySelect, + }; + + return renderDay ? ( + renderDay(day, selectedDates, dayProps) + ) : ( + + ); + })} +
+ ))} +
+
+ + ); + } +); + +Calendar.displayName = 'Calendar'; diff --git a/lib/src/views/Calendar/CalendarView.tsx b/lib/src/views/Calendar/CalendarView.tsx index 9e6b0de68b7853..a318b213ad7711 100644 --- a/lib/src/views/Calendar/CalendarView.tsx +++ b/lib/src/views/Calendar/CalendarView.tsx @@ -11,6 +11,7 @@ import { MaterialUiPickersDate } from '../../typings/date'; import { FadeTransitionGroup } from './FadeTransitionGroup'; import { Calendar, ExportedCalendarProps } from './Calendar'; import { PickerOnChangeFn } from '../../_shared/hooks/useViews'; +import { withDefaultProps } from '../../_shared/withDefaultProps'; import { CalendarHeader, CalendarHeaderProps } from './CalendarHeader'; import { YearSelection, ExportedYearSelectionProps } from './YearSelection'; import { defaultMinDate, defaultMaxDate } from '../../constants/prop-types'; @@ -54,6 +55,8 @@ export type ExportedCalendarViewProps = Omit< 'date' | 'view' | 'views' | 'onChange' | 'changeView' | 'slideDirection' | 'currentMonth' >; +const muiComponentConfig = { name: 'MuiPickersCalendarView' }; + export const useStyles = makeStyles( { viewTransitionContainer: { @@ -65,151 +68,154 @@ export const useStyles = makeStyles( height: '100%', }, }, - { name: 'MuiPickersCalendarView' } + muiComponentConfig ); export const defaultReduceAnimations = typeof navigator !== 'undefined' && /(android)/i.test(navigator.userAgent); -export const CalendarView: React.FC = ({ - date, - view, - onChange, - changeView, - onMonthChange, - minDate: __minDate, - maxDate: __maxDate, - reduceAnimations = defaultReduceAnimations, - loadingIndicator = , - shouldDisableDate, - allowKeyboardControl: __allowKeyboardControlProp, - disablePast, - disableFuture, - shouldDisableYear, - ...other -}) => { - const utils = useUtils(); - const classes = useStyles(); - const isStatic = React.useContext(IsStaticVariantContext); - const allowKeyboardControl = __allowKeyboardControlProp ?? !isStatic; - - const minDate = __minDate || utils.date(defaultMinDate); - const maxDate = __maxDate || utils.date(defaultMaxDate); - - const { - loadingQueue, - calendarState, - changeFocusedDay, - changeMonth, - isDateDisabled, - handleChangeMonth, - onMonthSwitchingAnimationEnd, - } = useCalendarState({ +export const CalendarView: React.FC = withDefaultProps( + muiComponentConfig, + ({ date, - reduceAnimations, + view, + onChange, + changeView, onMonthChange, - minDate, - maxDate, + minDate: __minDate, + maxDate: __maxDate, + reduceAnimations = defaultReduceAnimations, + loadingIndicator = , shouldDisableDate, + allowKeyboardControl: __allowKeyboardControlProp, disablePast, disableFuture, - }); - - React.useEffect(() => { - if (date && isDateDisabled(date)) { - const closestEnabledDate = findClosestEnabledDate({ - utils, - date, - minDate: utils.date(minDate), - maxDate: utils.date(maxDate), - disablePast: Boolean(disablePast), - disableFuture: Boolean(disableFuture), - shouldDisableDate: isDateDisabled, - }); - - onChange(closestEnabledDate, false); - } - // This call is too expensive to run it on each prop change. - // So just ensure that we are not rendering disabled as selected on mount. - }, []); // eslint-disable-line - - React.useEffect(() => { - changeMonth(date); - }, [date]); // eslint-disable-line - - return ( - <> - handleChangeMonth({ newMonth, direction })} - minDate={minDate} - maxDate={maxDate} - disablePast={disablePast} - disableFuture={disableFuture} - reduceAnimations={reduceAnimations} - /> - - -
- {view === 'year' && ( - - )} - - {view === 'month' && ( - - )} - - {view === 'date' && - (loadingQueue > 0 ? ( - - {loadingIndicator} - - ) : ( - { + const utils = useUtils(); + const classes = useStyles(); + const isStatic = React.useContext(IsStaticVariantContext); + const allowKeyboardControl = __allowKeyboardControlProp ?? !isStatic; + + const minDate = __minDate || utils.date(defaultMinDate); + const maxDate = __maxDate || utils.date(defaultMaxDate); + + const { + loadingQueue, + calendarState, + changeFocusedDay, + changeMonth, + isDateDisabled, + handleChangeMonth, + onMonthSwitchingAnimationEnd, + } = useCalendarState({ + date, + reduceAnimations, + onMonthChange, + minDate, + maxDate, + shouldDisableDate, + disablePast, + disableFuture, + }); + + React.useEffect(() => { + if (date && isDateDisabled(date)) { + const closestEnabledDate = findClosestEnabledDate({ + utils, + date, + minDate: utils.date(minDate), + maxDate: utils.date(maxDate), + disablePast: Boolean(disablePast), + disableFuture: Boolean(disableFuture), + shouldDisableDate: isDateDisabled, + }); + + onChange(closestEnabledDate, false); + } + // This call is too expensive to run it on each prop change. + // So just ensure that we are not rendering disabled as selected on mount. + }, []); // eslint-disable-line + + React.useEffect(() => { + changeMonth(date); + }, [date]); // eslint-disable-line + + return ( + <> + handleChangeMonth({ newMonth, direction })} + minDate={minDate} + maxDate={maxDate} + disablePast={disablePast} + disableFuture={disableFuture} + reduceAnimations={reduceAnimations} + /> + + +
+ {view === 'year' && ( + + )} + + {view === 'month' && ( + - ))} -
-
- - ); -}; + )} + + {view === 'date' && + (loadingQueue > 0 ? ( + + {loadingIndicator} + + ) : ( + + ))} +
+
+ + ); + } +); diff --git a/lib/src/views/Calendar/Day.tsx b/lib/src/views/Calendar/Day.tsx index 76496a417638b9..4311e3e785ae5d 100644 --- a/lib/src/views/Calendar/Day.tsx +++ b/lib/src/views/Calendar/Day.tsx @@ -8,8 +8,11 @@ import { useUtils } from '../../_shared/hooks/useUtils'; import { MaterialUiPickersDate } from '../../typings/date'; import { makeStyles, fade } from '@material-ui/core/styles'; import { DAY_SIZE, DAY_MARGIN } from '../../constants/dimensions'; +import { withDefaultProps } from '../../_shared/withDefaultProps'; import { FORCE_FINISH_PICKER } from '../../_shared/hooks/usePickerState'; +const muiComponentConfig = { name: 'MuiPickersDay' }; + export const useStyles = makeStyles( theme => ({ day: { @@ -67,7 +70,7 @@ export const useStyles = makeStyles( // need for overrides }, }), - { name: 'MuiPickersDay' } + muiComponentConfig ); export interface DayProps extends ExtendMui { @@ -243,7 +246,7 @@ export const areDayPropsEqual = (prevProps: DayProps, nextProps: DayProps) => { ); }; -export const Day = React.memo(PureDay, areDayPropsEqual); +export const Day = withDefaultProps(muiComponentConfig, React.memo(PureDay, areDayPropsEqual)); PureDay.displayName = 'Day'; diff --git a/lib/src/views/Clock/Clock.tsx b/lib/src/views/Clock/Clock.tsx index d0f95f33a9b34c..4eaa23e0368e78 100644 --- a/lib/src/views/Clock/Clock.tsx +++ b/lib/src/views/Clock/Clock.tsx @@ -11,6 +11,7 @@ import { ClockViewType } from '../../constants/ClockType'; import { MaterialUiPickersDate } from '../../typings/date'; import { PickerOnChangeFn } from '../../_shared/hooks/useViews'; import { getHours, getMinutes } from '../../_helpers/time-utils'; +import { withDefaultProps } from '../../_shared/withDefaultProps'; import { useMeridiemMode } from '../../TimePicker/TimePickerToolbar'; import { useGlobalKeyDown, keycode } from '../../_shared/hooks/useKeyDown'; import { WrapperVariantContext } from '../../wrappers/WrapperVariantContext'; @@ -29,6 +30,10 @@ export interface ClockProps extends ReturnType { allowKeyboardControl?: boolean; } +const muiComponentConfig = { + name: 'MuiPickersClock', +}; + export const useStyles = makeStyles( theme => ({ container: { @@ -88,170 +93,171 @@ export const useStyles = makeStyles( }, }, }), - { - name: 'MuiPickersClock', - } + muiComponentConfig ); -export const Clock: React.FC = ({ - date, - ampmInClock = false, - value, - children: numbersElementsArray, - type, - ampm, - isTimeDisabled, - minutesStep = 1, - allowKeyboardControl, - onChange, - meridiemMode, - handleMeridiemChange, -}) => { - const utils = useUtils(); - const classes = useStyles(); - const wrapperVariant = React.useContext(WrapperVariantContext); - const isMoving = React.useRef(false); +export const Clock: React.FC = withDefaultProps( + muiComponentConfig, + ({ + date, + ampmInClock = false, + value, + children: numbersElementsArray, + type, + ampm, + isTimeDisabled, + minutesStep = 1, + allowKeyboardControl, + onChange, + meridiemMode, + handleMeridiemChange, + }) => { + const utils = useUtils(); + const classes = useStyles(); + const wrapperVariant = React.useContext(WrapperVariantContext); + const isMoving = React.useRef(false); - const isSelectedTimeDisabled = isTimeDisabled(value, type); - const isPointerInner = !ampm && type === 'hours' && (value < 1 || value > 12); + const isSelectedTimeDisabled = isTimeDisabled(value, type); + const isPointerInner = !ampm && type === 'hours' && (value < 1 || value > 12); - const handleValueChange = (newValue: number, isFinish: boolean) => { - if (isTimeDisabled(newValue, type)) { - return; - } + const handleValueChange = (newValue: number, isFinish: boolean) => { + if (isTimeDisabled(newValue, type)) { + return; + } - onChange(newValue, isFinish); - }; + onChange(newValue, isFinish); + }; - const setTime = (e: any, isFinish = false) => { - let { offsetX, offsetY } = e; + const setTime = (e: any, isFinish = false) => { + let { offsetX, offsetY } = e; - if (typeof offsetX === 'undefined') { - const rect = e.target.getBoundingClientRect(); + if (typeof offsetX === 'undefined') { + const rect = e.target.getBoundingClientRect(); - offsetX = e.changedTouches[0].clientX - rect.left; - offsetY = e.changedTouches[0].clientY - rect.top; - } + offsetX = e.changedTouches[0].clientX - rect.left; + offsetY = e.changedTouches[0].clientY - rect.top; + } - const value = - type === 'seconds' || type === 'minutes' - ? getMinutes(offsetX, offsetY, minutesStep) - : getHours(offsetX, offsetY, Boolean(ampm)); + const value = + type === 'seconds' || type === 'minutes' + ? getMinutes(offsetX, offsetY, minutesStep) + : getHours(offsetX, offsetY, Boolean(ampm)); - handleValueChange(value, isFinish); - }; + handleValueChange(value, isFinish); + }; - const handleTouchMove = (e: React.TouchEvent) => { - isMoving.current = true; - setTime(e); - }; + const handleTouchMove = (e: React.TouchEvent) => { + isMoving.current = true; + setTime(e); + }; - const handleTouchEnd = (e: React.TouchEvent) => { - if (isMoving.current) { - setTime(e, true); - isMoving.current = false; - } - }; + const handleTouchEnd = (e: React.TouchEvent) => { + if (isMoving.current) { + setTime(e, true); + isMoving.current = false; + } + }; - const handleMouseMove = (e: React.MouseEvent) => { - e.preventDefault(); - e.stopPropagation(); - // MouseEvent.which is deprecated, but MouseEvent.buttons is not supported in Safari - const isButtonPressed = - typeof e.buttons === 'undefined' ? e.nativeEvent.which === 1 : e.buttons === 1; + const handleMouseMove = (e: React.MouseEvent) => { + e.preventDefault(); + e.stopPropagation(); + // MouseEvent.which is deprecated, but MouseEvent.buttons is not supported in Safari + const isButtonPressed = + typeof e.buttons === 'undefined' ? e.nativeEvent.which === 1 : e.buttons === 1; - if (isButtonPressed) { - setTime(e.nativeEvent, false); - } - }; + if (isButtonPressed) { + setTime(e.nativeEvent, false); + } + }; - const handleMouseUp = (e: React.MouseEvent) => { - if (isMoving.current) { - isMoving.current = false; - } + const handleMouseUp = (e: React.MouseEvent) => { + if (isMoving.current) { + isMoving.current = false; + } - setTime(e.nativeEvent, true); - }; + setTime(e.nativeEvent, true); + }; - const hasSelected = React.useMemo(() => { - if (type === 'hours') { - return true; - } + const hasSelected = React.useMemo(() => { + if (type === 'hours') { + return true; + } - return value % 5 === 0; - }, [type, value]); + return value % 5 === 0; + }, [type, value]); - const keyboardControlStep = type === 'minutes' ? minutesStep : 1; - useGlobalKeyDown( - Boolean(allowKeyboardControl ?? wrapperVariant !== 'static') && !isMoving.current, - { - [keycode.Home]: () => handleValueChange(0, false), // annulate both hours and minutes - [keycode.End]: () => handleValueChange(type === 'minutes' ? 59 : 23, false), - [keycode.ArrowUp]: () => handleValueChange(value + keyboardControlStep, false), - [keycode.ArrowDown]: () => handleValueChange(value - keyboardControlStep, false), - } - ); + const keyboardControlStep = type === 'minutes' ? minutesStep : 1; + useGlobalKeyDown( + Boolean(allowKeyboardControl ?? wrapperVariant !== 'static') && !isMoving.current, + { + [keycode.Home]: () => handleValueChange(0, false), // annulate both hours and minutes + [keycode.End]: () => handleValueChange(type === 'minutes' ? 59 : 23, false), + [keycode.ArrowUp]: () => handleValueChange(value + keyboardControlStep, false), + [keycode.ArrowDown]: () => handleValueChange(value - keyboardControlStep, false), + } + ); - return ( -
-
-
+ return ( +
+
+
- {!isSelectedTimeDisabled && ( - <> -
+ {!isSelectedTimeDisabled && ( + <> +
+ + {date && ( + + )} + + )} + + {numbersElementsArray} +
- {date && ( - - )} + {ampm && (wrapperVariant === 'desktop' || ampmInClock) && ( + <> + handleMeridiemChange('am')} + disabled={meridiemMode === null} + className={clsx(classes.amButton, { + [classes.meridiemButtonSelected]: meridiemMode === 'am', + })} + > + AM + + handleMeridiemChange('pm')} + className={clsx(classes.pmButton, { + [classes.meridiemButtonSelected]: meridiemMode === 'pm', + })} + > + PM + )} - - {numbersElementsArray}
- - {ampm && (wrapperVariant === 'desktop' || ampmInClock) && ( - <> - handleMeridiemChange('am')} - disabled={meridiemMode === null} - className={clsx(classes.amButton, { - [classes.meridiemButtonSelected]: meridiemMode === 'am', - })} - > - AM - - handleMeridiemChange('pm')} - className={clsx(classes.pmButton, { - [classes.meridiemButtonSelected]: meridiemMode === 'pm', - })} - > - PM - - - )} -
- ); -}; + ); + } +); Clock.defaultProps = { ampm: PropTypes.bool, diff --git a/lib/src/views/Clock/ClockView.tsx b/lib/src/views/Clock/ClockView.tsx index 111ad2e3ca9562..24150ded7223ed 100644 --- a/lib/src/views/Clock/ClockView.tsx +++ b/lib/src/views/Clock/ClockView.tsx @@ -6,6 +6,7 @@ import { makeStyles } from '@material-ui/core/styles'; import { MaterialUiPickersDate } from '../../typings/date'; import { useUtils, useNow } from '../../_shared/hooks/useUtils'; import { PickerOnChangeFn } from '../../_shared/hooks/useViews'; +import { withDefaultProps } from '../../_shared/withDefaultProps'; import { getHourNumbers, getMinutesNumbers } from './ClockNumbers'; import { useMeridiemMode } from '../../TimePicker/TimePickerToolbar'; import { ArrowSwitcher, ExportedArrowSwitcherProps } from '../../_shared/ArrowSwitcher'; @@ -74,6 +75,8 @@ export interface ClockViewProps extends ExportedClockViewProps, ExportedArrowSwi showViewSwitcher?: boolean; } +const muiPickersComponentConfig = { name: 'MuiPickersClockView' }; + export const useStyles = makeStyles( () => ({ arrowSwitcher: { @@ -82,206 +85,209 @@ export const useStyles = makeStyles( top: 8, }, }), - { name: 'MuiPickersClockView' } + muiPickersComponentConfig ); -const getHoursAriaText = (hour: string) => `${hour} hours`; const getMinutesAriaText = (minute: string) => `${minute} minutes`; +const getHoursAriaText = (hour: string) => `${hour} hours`; const getSecondsAriaText = (seconds: string) => `${seconds} seconds`; -export const ClockView: React.FC = ({ - type, - onDateChange, - onChange, - ampm, - date, - minutesStep = 1, - ampmInClock, - minTime, - maxTime, - allowKeyboardControl, - shouldDisableTime, - getHoursClockNumberText = getHoursAriaText, - getMinutesClockNumberText = getMinutesAriaText, - getSecondsClockNumberText = getSecondsAriaText, - leftArrowButtonProps, - rightArrowButtonProps, - leftArrowIcon, - rightArrowIcon, - leftArrowButtonText = 'open previous view', - rightArrowButtonText = 'open next view', - openNextView, - openPreviousView, - nextViewAvailable, - showViewSwitcher, - previousViewAvailable, - disableTimeValidationIgnoreDatePart, -}) => { - const now = useNow(); - const utils = useUtils(); - const classes = useStyles(); - const { meridiemMode, handleMeridiemChange } = useMeridiemMode(date, ampm, onDateChange); +export const ClockView: React.FC = withDefaultProps( + muiPickersComponentConfig, + ({ + type, + onDateChange, + onChange, + ampm, + date, + minutesStep = 1, + ampmInClock, + minTime, + maxTime, + allowKeyboardControl, + shouldDisableTime, + getHoursClockNumberText = getHoursAriaText, + getMinutesClockNumberText = getMinutesAriaText, + getSecondsClockNumberText = getSecondsAriaText, + leftArrowButtonProps, + rightArrowButtonProps, + leftArrowIcon, + rightArrowIcon, + leftArrowButtonText = 'open previous view', + rightArrowButtonText = 'open next view', + openNextView, + openPreviousView, + nextViewAvailable, + showViewSwitcher, + previousViewAvailable, + disableTimeValidationIgnoreDatePart, + }) => { + const now = useNow(); + const utils = useUtils(); + const classes = useStyles(); + const { meridiemMode, handleMeridiemChange } = useMeridiemMode(date, ampm, onDateChange); - const isTimeDisabled = React.useCallback( - (rawValue: number, type: 'hours' | 'minutes' | 'seconds') => { - const validateTimeValue = ( - getRequestedTimePoint: (when: 'start' | 'end') => MaterialUiPickersDate - ) => { - const isAfterComparingFn = createIsAfterIgnoreDatePart( - Boolean(disableTimeValidationIgnoreDatePart), - utils - ); + const isTimeDisabled = React.useCallback( + (rawValue: number, type: 'hours' | 'minutes' | 'seconds') => { + const validateTimeValue = ( + getRequestedTimePoint: (when: 'start' | 'end') => MaterialUiPickersDate + ) => { + const isAfterComparingFn = createIsAfterIgnoreDatePart( + Boolean(disableTimeValidationIgnoreDatePart), + utils + ); - // prettier-ignore - return Boolean( + // prettier-ignore + return Boolean( (minTime && isAfterComparingFn(minTime, getRequestedTimePoint('end'))) || (maxTime && isAfterComparingFn(getRequestedTimePoint('start'), maxTime)) || (shouldDisableTime && shouldDisableTime(rawValue, type)) ); - }; + }; + + switch (type) { + case 'hours': + const hoursWithMeridiem = convertValueToMeridiem(rawValue, meridiemMode, Boolean(ampm)); + return validateTimeValue((when: 'start' | 'end') => + pipe( + currentDate => utils.setHours(currentDate, hoursWithMeridiem), + dateWithHours => utils.setMinutes(dateWithHours, when === 'start' ? 0 : 59), + dateWithMinutes => utils.setSeconds(dateWithMinutes, when === 'start' ? 0 : 59) + )(date) + ); + case 'minutes': + return validateTimeValue((when: 'start' | 'end') => + pipe( + currentDate => utils.setMinutes(currentDate, rawValue), + dateWithMinutes => utils.setSeconds(dateWithMinutes, when === 'start' ? 0 : 59) + )(date) + ); + case 'seconds': + return validateTimeValue(() => utils.setSeconds(date, rawValue)); + } + }, + [ + ampm, + date, + disableTimeValidationIgnoreDatePart, + maxTime, + meridiemMode, + minTime, + shouldDisableTime, + utils, + ] + ); + const dateOrNow = date || now; + const viewProps = React.useMemo(() => { switch (type) { case 'hours': - const hoursWithMeridiem = convertValueToMeridiem(rawValue, meridiemMode, Boolean(ampm)); - return validateTimeValue((when: 'start' | 'end') => - pipe( - currentDate => utils.setHours(currentDate, hoursWithMeridiem), - dateWithHours => utils.setMinutes(dateWithHours, when === 'start' ? 0 : 59), - dateWithMinutes => utils.setSeconds(dateWithMinutes, when === 'start' ? 0 : 59) - )(date) - ); - case 'minutes': - return validateTimeValue((when: 'start' | 'end') => - pipe( - currentDate => utils.setMinutes(currentDate, rawValue), - dateWithMinutes => utils.setSeconds(dateWithMinutes, when === 'start' ? 0 : 59) - )(date) - ); - case 'seconds': - return validateTimeValue(() => utils.setSeconds(date, rawValue)); - } - }, - [ - ampm, - date, - disableTimeValidationIgnoreDatePart, - maxTime, - meridiemMode, - minTime, - shouldDisableTime, - utils, - ] - ); + const handleHoursChange = (value: number, isFinish?: boolean | symbol) => { + const valueWithMeridiem = convertValueToMeridiem(value, meridiemMode, Boolean(ampm)); + onChange(utils.setHours(dateOrNow, valueWithMeridiem), isFinish); + }; - const dateOrNow = date || now; - const viewProps = React.useMemo(() => { - switch (type) { - case 'hours': - const handleHoursChange = (value: number, isFinish?: boolean | symbol) => { - const valueWithMeridiem = convertValueToMeridiem(value, meridiemMode, Boolean(ampm)); - onChange(utils.setHours(dateOrNow, valueWithMeridiem), isFinish); - }; - - return { - onChange: handleHoursChange, - value: utils.getHours(dateOrNow), - children: getHourNumbers({ - date, - utils, - ampm: Boolean(ampm), + return { onChange: handleHoursChange, - getClockNumberText: getHoursClockNumberText, - isDisabled: value => isTimeDisabled(value, 'hours'), - }), - }; + value: utils.getHours(dateOrNow), + children: getHourNumbers({ + date, + utils, + ampm: Boolean(ampm), + onChange: handleHoursChange, + getClockNumberText: getHoursClockNumberText, + isDisabled: value => isTimeDisabled(value, 'hours'), + }), + }; - case 'minutes': - const minutesValue = utils.getMinutes(dateOrNow); - const handleMinutesChange = (value: number, isFinish?: boolean | symbol) => { - onChange(utils.setMinutes(dateOrNow, value), isFinish); - }; + case 'minutes': + const minutesValue = utils.getMinutes(dateOrNow); + const handleMinutesChange = (value: number, isFinish?: boolean | symbol) => { + onChange(utils.setMinutes(dateOrNow, value), isFinish); + }; - return { - value: minutesValue, - onChange: handleMinutesChange, - children: getMinutesNumbers({ - utils, + return { value: minutesValue, onChange: handleMinutesChange, - getClockNumberText: getMinutesClockNumberText, - isDisabled: value => isTimeDisabled(value, 'minutes'), - }), - }; + children: getMinutesNumbers({ + utils, + value: minutesValue, + onChange: handleMinutesChange, + getClockNumberText: getMinutesClockNumberText, + isDisabled: value => isTimeDisabled(value, 'minutes'), + }), + }; - case 'seconds': - const secondsValue = utils.getSeconds(dateOrNow); - const handleSecondsChange = (value: number, isFinish?: boolean | symbol) => { - onChange(utils.setSeconds(dateOrNow, value), isFinish); - }; + case 'seconds': + const secondsValue = utils.getSeconds(dateOrNow); + const handleSecondsChange = (value: number, isFinish?: boolean | symbol) => { + onChange(utils.setSeconds(dateOrNow, value), isFinish); + }; - return { - value: secondsValue, - onChange: handleSecondsChange, - children: getMinutesNumbers({ - utils, + return { value: secondsValue, onChange: handleSecondsChange, - getClockNumberText: getSecondsClockNumberText, - isDisabled: value => isTimeDisabled(value, 'seconds'), - }), - }; + children: getMinutesNumbers({ + utils, + value: secondsValue, + onChange: handleSecondsChange, + getClockNumberText: getSecondsClockNumberText, + isDisabled: value => isTimeDisabled(value, 'seconds'), + }), + }; - default: - throw new Error('You must provide the type for ClockView'); - } - }, [ - type, - utils, - date, - ampm, - getHoursClockNumberText, - getMinutesClockNumberText, - getSecondsClockNumberText, - meridiemMode, - onChange, - dateOrNow, - isTimeDisabled, - ]); + default: + throw new Error('You must provide the type for ClockView'); + } + }, [ + type, + utils, + date, + ampm, + getHoursClockNumberText, + getMinutesClockNumberText, + getSecondsClockNumberText, + meridiemMode, + onChange, + dateOrNow, + isTimeDisabled, + ]); - return ( - <> - {showViewSwitcher && ( - - )} + return ( + <> + {showViewSwitcher && ( + + )} - - - ); -}; + + + ); + } +); ClockView.propTypes = { ampm: PropTypes.bool, @@ -292,5 +298,3 @@ ClockView.propTypes = { } as any; ClockView.displayName = 'ClockView'; - -export default React.memo(ClockView); diff --git a/lib/src/wrappers/Wrapper.tsx b/lib/src/wrappers/Wrapper.tsx index 765354e830cc8a..9dfa8146a03947 100644 --- a/lib/src/wrappers/Wrapper.tsx +++ b/lib/src/wrappers/Wrapper.tsx @@ -61,4 +61,4 @@ export function getWrapperVariant(wrapper: SomeWrapper) { export type WrapperVariant = ReturnType; -export { StaticWrapper, MobileWrapper as ModalWrapper, DesktopWrapper as InlineWrapper }; +export { StaticWrapper, MobileWrapper, DesktopWrapper }; diff --git a/yarn.lock b/yarn.lock index 4e9ccf9a87a35e..29994204c43bfd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,20 +2,22 @@ # yarn lockfile v1 -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" - integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw== - dependencies: - "@babel/highlight" "^7.0.0" - -"@babel/code-frame@^7.8.3": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5", "@babel/code-frame@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== dependencies: "@babel/highlight" "^7.8.3" +"@babel/compat-data@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.9.6.tgz#3f604c40e420131affe6f2c8052e9a275ae2049b" + integrity sha512-5QPTrNen2bm7RBc7dsOmcA5hbrS4O2Vhmk5XOL4zWW/zD/hV0iinpefDlkm+tBBy8kDtFaaeEvmAqt+nURAV2g== + dependencies: + browserslist "^4.11.1" + invariant "^2.2.4" + semver "^5.5.0" + "@babel/core@7.1.2": version "7.1.2" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.1.2.tgz#f8d2a9ceb6832887329a7b60f9d035791400ba4e" @@ -56,7 +58,7 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/core@^7.0.1", "@babel/core@^7.6.0": +"@babel/core@^7.0.1": version "7.7.2" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.7.2.tgz#ea5b99693bcfc058116f42fa1dd54da412b29d91" integrity sha512-eeD7VEZKfhK1KUXGiyPFettgF3m513f8FoBSWiQ1xTvl1RAopLs42Wp9+Ze911I6H0N9lNqJMDgoZT7gHsipeQ== @@ -117,7 +119,29 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.1.2", "@babel/generator@^7.6.0", "@babel/generator@^7.6.2", "@babel/generator@^7.7.2": +"@babel/core@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.6.tgz#d9aa1f580abf3b2286ef40b6904d390904c63376" + integrity sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/generator" "^7.9.6" + "@babel/helper-module-transforms" "^7.9.0" + "@babel/helpers" "^7.9.6" + "@babel/parser" "^7.9.6" + "@babel/template" "^7.8.6" + "@babel/traverse" "^7.9.6" + "@babel/types" "^7.9.6" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.1" + json5 "^2.1.2" + lodash "^4.17.13" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/generator@^7.1.2", "@babel/generator@^7.6.0", "@babel/generator@^7.6.2": version "7.7.2" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.7.2.tgz#2f4852d04131a5e17ea4f6645488b5da66ebf3af" integrity sha512-WthSArvAjYLz4TcbKOi88me+KmDJdKSlfwwN8CnUYn9jBkzhq0ZEPuBfkAWIvjJ3AdEV1Cf/+eSQTnp3IDJKlQ== @@ -137,6 +161,16 @@ lodash "^4.17.13" source-map "^0.5.0" +"@babel/generator@^7.7.2", "@babel/generator@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.6.tgz#5408c82ac5de98cda0d77d8124e99fa1f2170a43" + integrity sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ== + dependencies: + "@babel/types" "^7.9.6" + jsesc "^2.5.1" + lodash "^4.17.13" + source-map "^0.5.0" + "@babel/generator@^7.8.6", "@babel/generator@^7.8.7": version "7.8.7" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.8.7.tgz#870b3cf7984f5297998152af625c4f3e341400f7" @@ -147,51 +181,57 @@ lodash "^4.17.13" source-map "^0.5.0" -"@babel/helper-annotate-as-pure@^7.0.0", "@babel/helper-annotate-as-pure@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.7.0.tgz#efc54032d43891fe267679e63f6860aa7dbf4a5e" - integrity sha512-k50CQxMlYTYo+GGyUGFwpxKVtxVJi9yh61sXZji3zYHccK9RYliZGSTOgci85T+r+0VFN2nWbGM04PIqwfrpMg== - dependencies: - "@babel/types" "^7.7.0" - -"@babel/helper-annotate-as-pure@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.7.4.tgz#bb3faf1e74b74bd547e867e48f551fa6b098b6ce" - integrity sha512-2BQmQgECKzYKFPpiycoF9tlb5HA4lrVyAmLLVK177EcQAqjVLciUb2/R+n1boQ9y5ENV3uz2ZqiNw7QMBBw1Og== - dependencies: - "@babel/types" "^7.7.4" - -"@babel/helper-annotate-as-pure@^7.8.3": +"@babel/helper-annotate-as-pure@^7.0.0", "@babel/helper-annotate-as-pure@^7.7.0", "@babel/helper-annotate-as-pure@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz#60bc0bc657f63a0924ff9a4b4a0b24a13cf4deee" integrity sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw== dependencies: "@babel/types" "^7.8.3" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.7.0.tgz#32dd9551d6ed3a5fc2edc50d6912852aa18274d9" - integrity sha512-Cd8r8zs4RKDwMG/92lpZcnn5WPQ3LAMQbCw42oqUh4s7vsSN5ANUZjMel0OOnxDLq57hoDDbai+ryygYfCTOsw== +"@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0", "@babel/helper-builder-binary-assignment-operator-visitor@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz#c84097a427a061ac56a1c30ebf54b7b22d241503" + integrity sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw== dependencies: - "@babel/helper-explode-assignable-expression" "^7.7.0" - "@babel/types" "^7.7.0" + "@babel/helper-explode-assignable-expression" "^7.8.3" + "@babel/types" "^7.8.3" -"@babel/helper-builder-react-jsx@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.7.0.tgz#c6b8254d305bacd62beb648e4dea7d3ed79f352d" - integrity sha512-LSln3cexwInTMYYoFeVLKnYPPMfWNJ8PubTBs3hkh7wCu9iBaqq1OOyW+xGmEdLxT1nhsl+9SJ+h2oUDYz0l2A== +"@babel/helper-builder-react-jsx-experimental@^7.9.0": + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.9.5.tgz#0b4b3e04e6123f03b404ca4dfd6528fe6bb92fe3" + integrity sha512-HAagjAC93tk748jcXpZ7oYRZH485RCq/+yEv9SIWezHRPv9moZArTnkUNciUNzvwHUABmiWKlcxJvMcu59UwTg== dependencies: - "@babel/types" "^7.7.0" - esutils "^2.0.0" + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/helper-module-imports" "^7.8.3" + "@babel/types" "^7.9.5" + +"@babel/helper-builder-react-jsx@^7.7.0", "@babel/helper-builder-react-jsx@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.9.0.tgz#16bf391990b57732700a3278d4d9a81231ea8d32" + integrity sha512-weiIo4gaoGgnhff54GQ3P5wsUQmnSwpkvU0r6ZHq6TzoSzKy4JxHEgnxNytaKbov2a9z/CVNyzliuCOUPEX3Jw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/types" "^7.9.0" "@babel/helper-call-delegate@^7.4.4": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.7.0.tgz#df8942452c2c1a217335ca7e393b9afc67f668dc" - integrity sha512-Su0Mdq7uSSWGZayGMMQ+z6lnL00mMCnGAbO/R0ZO9odIdB/WNU/VfQKqMQU0fdIsxQYbRjDM4BixIa93SQIpvw== + version "7.8.7" + resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.8.7.tgz#28a279c2e6c622a6233da548127f980751324cab" + integrity sha512-doAA5LAKhsFCR0LAFIf+r2RSMmC+m8f/oQ+URnUET/rWeEzC0yTRmAGyWkD4sSu3xwbS7MYQ2u+xlt1V5R56KQ== dependencies: - "@babel/helper-hoist-variables" "^7.7.0" - "@babel/traverse" "^7.7.0" - "@babel/types" "^7.7.0" + "@babel/helper-hoist-variables" "^7.8.3" + "@babel/traverse" "^7.8.3" + "@babel/types" "^7.8.7" + +"@babel/helper-compilation-targets@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.9.6.tgz#1e05b7ccc9d38d2f8b40b458b380a04dcfadd38a" + integrity sha512-x2Nvu0igO0ejXzx09B/1fGBxY9NXQlBW2kZsSxCJft+KHN8t9XWzIvFxtPHnBOAXpVsdxZKZFbRUC8TsNKajMw== + dependencies: + "@babel/compat-data" "^7.9.6" + browserslist "^4.11.1" + invariant "^2.2.4" + levenary "^1.1.1" + semver "^5.5.0" "@babel/helper-create-class-features-plugin@^7.3.0": version "7.9.5" @@ -217,25 +257,17 @@ "@babel/helper-replace-supers" "^7.5.5" "@babel/helper-split-export-declaration" "^7.4.4" -"@babel/helper-create-class-features-plugin@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.7.0.tgz#bcdc223abbfdd386f94196ae2544987f8df775e8" - integrity sha512-MZiB5qvTWoyiFOgootmRSDV1udjIqJW/8lmxgzKq6oDqxdmHUjeP2ZUOmgHdYjmUVNABqRrHjYAYRvj8Eox/UA== - dependencies: - "@babel/helper-function-name" "^7.7.0" - "@babel/helper-member-expression-to-functions" "^7.7.0" - "@babel/helper-optimise-call-expression" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.7.0" - "@babel/helper-split-export-declaration" "^7.7.0" - -"@babel/helper-create-regexp-features-plugin@^7.7.0": - version "7.7.2" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.7.2.tgz#6f20443778c8fce2af2ff4206284afc0ced65db6" - integrity sha512-pAil/ZixjTlrzNpjx+l/C/wJk002Wo7XbbZ8oujH/AoJ3Juv0iN/UTcPUHXKMFLqsfS0Hy6Aow8M31brUYBlQQ== +"@babel/helper-create-class-features-plugin@^7.8.3": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.9.6.tgz#965c8b0a9f051801fd9d3b372ca0ccf200a90897" + integrity sha512-6N9IeuyHvMBRyjNYOMJHrhwtu4WJMrYf8hVbEHD3pbbbmNOk1kmXSQs7bA4dYDUaIx4ZEzdnvo6NwC3WHd/Qow== dependencies: - "@babel/helper-regex" "^7.4.4" - regexpu-core "^4.6.0" + "@babel/helper-function-name" "^7.9.5" + "@babel/helper-member-expression-to-functions" "^7.8.3" + "@babel/helper-optimise-call-expression" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-replace-supers" "^7.9.6" + "@babel/helper-split-export-declaration" "^7.8.3" "@babel/helper-create-regexp-features-plugin@^7.8.3", "@babel/helper-create-regexp-features-plugin@^7.8.8": version "7.8.8" @@ -246,7 +278,7 @@ "@babel/helper-regex" "^7.8.3" regexpu-core "^4.7.0" -"@babel/helper-define-map@^7.5.5", "@babel/helper-define-map@^7.7.0": +"@babel/helper-define-map@^7.5.5": version "7.7.0" resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.7.0.tgz#60b0e9fd60def9de5054c38afde8c8ee409c7529" integrity sha512-kPKWPb0dMpZi+ov1hJiwse9dWweZsz3V9rP4KdytnX1E7z3cTNmFGglwklzFPuqIcHLIY3bgKSs4vkwXXdflQA== @@ -264,15 +296,15 @@ "@babel/types" "^7.8.3" lodash "^4.17.13" -"@babel/helper-explode-assignable-expression@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.7.0.tgz#db2a6705555ae1f9f33b4b8212a546bc7f9dc3ef" - integrity sha512-CDs26w2shdD1urNUAji2RJXyBFCaR+iBEGnFz3l7maizMkQe3saVw9WtjG1tz8CwbjvlFnaSLVhgnu1SWaherg== +"@babel/helper-explode-assignable-expression@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz#a728dc5b4e89e30fc2dfc7d04fa28a930653f982" + integrity sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw== dependencies: - "@babel/traverse" "^7.7.0" - "@babel/types" "^7.7.0" + "@babel/traverse" "^7.8.3" + "@babel/types" "^7.8.3" -"@babel/helper-function-name@^7.1.0", "@babel/helper-function-name@^7.7.0": +"@babel/helper-function-name@^7.1.0": version "7.7.0" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.7.0.tgz#44a5ad151cfff8ed2599c91682dda2ec2c8430a3" integrity sha512-tDsJgMUAP00Ugv8O2aGEua5I2apkaQO7lBGUq1ocwN3G23JE5Dcq0uh3GvFTChPa4b40AWiAsLvCZOA2rdnQ7Q== @@ -281,16 +313,7 @@ "@babel/template" "^7.7.0" "@babel/types" "^7.7.0" -"@babel/helper-function-name@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz#eeeb665a01b1f11068e9fb86ad56a1cb1a824cca" - integrity sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA== - dependencies: - "@babel/helper-get-function-arity" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helper-function-name@^7.9.5": +"@babel/helper-function-name@^7.7.0", "@babel/helper-function-name@^7.9.5": version "7.9.5" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz#2b53820d35275120e1874a82e5aabe1376920a5c" integrity sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw== @@ -299,21 +322,23 @@ "@babel/template" "^7.8.3" "@babel/types" "^7.9.5" -"@babel/helper-get-function-arity@^7.0.0", "@babel/helper-get-function-arity@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.0.tgz#c604886bc97287a1d1398092bc666bc3d7d7aa2d" - integrity sha512-tLdojOTz4vWcEnHWHCuPN5P85JLZWbm5Fx5ZsMEMPhF3Uoe3O7awrbM2nQ04bDOUToH/2tH/ezKEOR8zEYzqyw== +"@babel/helper-function-name@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz#eeeb665a01b1f11068e9fb86ad56a1cb1a824cca" + integrity sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA== dependencies: - "@babel/types" "^7.7.0" + "@babel/helper-get-function-arity" "^7.8.3" + "@babel/template" "^7.8.3" + "@babel/types" "^7.8.3" -"@babel/helper-get-function-arity@^7.8.3": +"@babel/helper-get-function-arity@^7.0.0", "@babel/helper-get-function-arity@^7.7.0", "@babel/helper-get-function-arity@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5" integrity sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA== dependencies: "@babel/types" "^7.8.3" -"@babel/helper-hoist-variables@^7.4.4", "@babel/helper-hoist-variables@^7.7.0": +"@babel/helper-hoist-variables@^7.4.4": version "7.7.0" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.7.0.tgz#b4552e4cfe5577d7de7b183e193e84e4ec538c81" integrity sha512-LUe/92NqsDAkJjjCEWkNe+/PcpnisvnqdlRe19FahVapa4jndeuJ+FBiTX1rcAKWKcJGE+C3Q3tuEuxkSmCEiQ== @@ -334,7 +359,7 @@ dependencies: "@babel/types" "^7.5.5" -"@babel/helper-member-expression-to-functions@^7.5.5", "@babel/helper-member-expression-to-functions@^7.7.0": +"@babel/helper-member-expression-to-functions@^7.5.5": version "7.7.0" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.7.0.tgz#472b93003a57071f95a541ea6c2b098398bcad8a" integrity sha512-QaCZLO2RtBcmvO/ekOLp8p7R5X2JriKRizeDpm5ChATAFWrrYDcDxPuCIBXKyBjY+i1vYSdcUTMIb8psfxHDPA== @@ -348,33 +373,21 @@ dependencies: "@babel/types" "^7.8.3" -"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.7.0": +"@babel/helper-module-imports@^7.0.0": version "7.7.0" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.7.0.tgz#99c095889466e5f7b6d66d98dffc58baaf42654d" integrity sha512-Dv3hLKIC1jyfTkClvyEkYP2OlkzNvWs5+Q8WgPbxM5LMeorons7iPP91JM+DU7tRbhqA1ZeooPaMFvQrn23RHw== dependencies: "@babel/types" "^7.7.0" -"@babel/helper-module-imports@^7.8.3": +"@babel/helper-module-imports@^7.7.0", "@babel/helper-module-imports@^7.7.4", "@babel/helper-module-imports@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz#7fe39589b39c016331b6b8c3f441e8f0b1419498" integrity sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg== dependencies: "@babel/types" "^7.8.3" -"@babel/helper-module-transforms@^7.1.0", "@babel/helper-module-transforms@^7.4.4", "@babel/helper-module-transforms@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.7.0.tgz#154a69f0c5b8fd4d39e49750ff7ac4faa3f36786" - integrity sha512-rXEefBuheUYQyX4WjV19tuknrJFwyKw0HgzRwbkyTbB+Dshlq7eqkWbyjzToLrMZk/5wKVKdWFluiAsVkHXvuQ== - dependencies: - "@babel/helper-module-imports" "^7.7.0" - "@babel/helper-simple-access" "^7.7.0" - "@babel/helper-split-export-declaration" "^7.7.0" - "@babel/template" "^7.7.0" - "@babel/types" "^7.7.0" - lodash "^4.17.13" - -"@babel/helper-module-transforms@^7.9.0": +"@babel/helper-module-transforms@^7.1.0", "@babel/helper-module-transforms@^7.9.0": version "7.9.0" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz#43b34dfe15961918707d247327431388e9fe96e5" integrity sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA== @@ -387,7 +400,19 @@ "@babel/types" "^7.9.0" lodash "^4.17.13" -"@babel/helper-optimise-call-expression@^7.0.0", "@babel/helper-optimise-call-expression@^7.7.0": +"@babel/helper-module-transforms@^7.4.4": + version "7.7.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.7.0.tgz#154a69f0c5b8fd4d39e49750ff7ac4faa3f36786" + integrity sha512-rXEefBuheUYQyX4WjV19tuknrJFwyKw0HgzRwbkyTbB+Dshlq7eqkWbyjzToLrMZk/5wKVKdWFluiAsVkHXvuQ== + dependencies: + "@babel/helper-module-imports" "^7.7.0" + "@babel/helper-simple-access" "^7.7.0" + "@babel/helper-split-export-declaration" "^7.7.0" + "@babel/template" "^7.7.0" + "@babel/types" "^7.7.0" + lodash "^4.17.13" + +"@babel/helper-optimise-call-expression@^7.0.0": version "7.7.0" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.7.0.tgz#4f66a216116a66164135dc618c5d8b7a959f9365" integrity sha512-48TeqmbazjNU/65niiiJIJRc5JozB8acui1OS7bSd6PgxfuovWsvjfWSzlgx+gPFdVveNzUdpdIg5l56Pl5jqg== @@ -406,21 +431,14 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz#9ea293be19babc0f52ff8ca88b34c3611b208670" integrity sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ== -"@babel/helper-regex@^7.0.0", "@babel/helper-regex@^7.4.4": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.5.5.tgz#0aa6824f7100a2e0e89c1527c23936c152cab351" - integrity sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw== - dependencies: - lodash "^4.17.13" - -"@babel/helper-regex@^7.8.3": +"@babel/helper-regex@^7.0.0", "@babel/helper-regex@^7.4.4", "@babel/helper-regex@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.8.3.tgz#139772607d51b93f23effe72105b319d2a4c6965" integrity sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ== dependencies: lodash "^4.17.13" -"@babel/helper-remap-async-to-generator@^7.1.0", "@babel/helper-remap-async-to-generator@^7.7.0": +"@babel/helper-remap-async-to-generator@^7.1.0": version "7.7.0" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.7.0.tgz#4d69ec653e8bff5bce62f5d33fc1508f223c75a7" integrity sha512-pHx7RN8X0UNHPB/fnuDnRXVZ316ZigkO8y8D835JlZ2SSdFKb6yH9MIYRU4fy/KPe5sPHDFOPvf8QLdbAGGiyw== @@ -452,15 +470,15 @@ "@babel/traverse" "^7.5.5" "@babel/types" "^7.5.5" -"@babel/helper-replace-supers@^7.5.5", "@babel/helper-replace-supers@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.7.0.tgz#d5365c8667fe7cbd13b8ddddceb9bd7f2b387512" - integrity sha512-5ALYEul5V8xNdxEeWvRsBzLMxQksT7MaStpxjJf9KsnLxpAKBtfw5NeMKZJSYDa0lKdOcy0g+JT/f5mPSulUgg== +"@babel/helper-replace-supers@^7.5.5", "@babel/helper-replace-supers@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.9.6.tgz#03149d7e6a5586ab6764996cd31d6981a17e1444" + integrity sha512-qX+chbxkbArLyCImk3bWV+jB5gTNU/rsze+JlcF6Nf8tVTigPJSI1o1oBow/9Resa1yehUO9lIipsmu9oG4RzA== dependencies: - "@babel/helper-member-expression-to-functions" "^7.7.0" - "@babel/helper-optimise-call-expression" "^7.7.0" - "@babel/traverse" "^7.7.0" - "@babel/types" "^7.7.0" + "@babel/helper-member-expression-to-functions" "^7.8.3" + "@babel/helper-optimise-call-expression" "^7.8.3" + "@babel/traverse" "^7.9.6" + "@babel/types" "^7.9.6" "@babel/helper-replace-supers@^7.8.3", "@babel/helper-replace-supers@^7.8.6": version "7.8.6" @@ -472,7 +490,7 @@ "@babel/traverse" "^7.8.6" "@babel/types" "^7.8.6" -"@babel/helper-simple-access@^7.1.0", "@babel/helper-simple-access@^7.7.0": +"@babel/helper-simple-access@^7.1.0": version "7.7.0" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.7.0.tgz#97a8b6c52105d76031b86237dc1852b44837243d" integrity sha512-AJ7IZD7Eem3zZRuj5JtzFAptBw7pMlS3y8Qv09vaBWoFsle0d1kAn5Wq6Q9MyBXITPOKnxwkZKoAm4bopmv26g== @@ -480,7 +498,7 @@ "@babel/template" "^7.7.0" "@babel/types" "^7.7.0" -"@babel/helper-simple-access@^7.8.3": +"@babel/helper-simple-access@^7.7.0", "@babel/helper-simple-access@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz#7f8109928b4dab4654076986af575231deb639ae" integrity sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw== @@ -488,14 +506,14 @@ "@babel/template" "^7.8.3" "@babel/types" "^7.8.3" -"@babel/helper-split-export-declaration@^7.4.4", "@babel/helper-split-export-declaration@^7.7.0": +"@babel/helper-split-export-declaration@^7.4.4": version "7.7.0" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.0.tgz#1365e74ea6c614deeb56ebffabd71006a0eb2300" integrity sha512-HgYSI8rH08neWlAH3CcdkFg9qX9YsZysZI5GD8LjhQib/mM0jGOZOVkoUiiV2Hu978fRtjtsGsW6w0pKHUWtqA== dependencies: "@babel/types" "^7.7.0" -"@babel/helper-split-export-declaration@^7.8.3": +"@babel/helper-split-export-declaration@^7.7.0", "@babel/helper-split-export-declaration@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9" integrity sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA== @@ -507,17 +525,7 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz#90977a8e6fbf6b431a7dc31752eee233bf052d80" integrity sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g== -"@babel/helper-wrap-function@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.7.0.tgz#15af3d3e98f8417a60554acbb6c14e75e0b33b74" - integrity sha512-sd4QjeMgQqzshSjecZjOp8uKfUtnpmCyQhKQrVJBBgeHAB/0FPi33h3AbVlVp07qQtMD4QgYSzaMI7VwncNK/w== - dependencies: - "@babel/helper-function-name" "^7.7.0" - "@babel/template" "^7.7.0" - "@babel/traverse" "^7.7.0" - "@babel/types" "^7.7.0" - -"@babel/helper-wrap-function@^7.8.3": +"@babel/helper-wrap-function@^7.7.0", "@babel/helper-wrap-function@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz#9dbdb2bb55ef14aaa01fe8c99b629bd5352d8610" integrity sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ== @@ -545,7 +553,7 @@ "@babel/traverse" "^7.9.0" "@babel/types" "^7.9.0" -"@babel/helpers@^7.6.0", "@babel/helpers@^7.7.0": +"@babel/helpers@^7.6.0": version "7.7.0" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.7.0.tgz#359bb5ac3b4726f7c1fde0ec75f64b3f4275d60b" integrity sha512-VnNwL4YOhbejHb7x/b5F39Zdg5vIQpUUNzJwx0ww1EcVRt41bbGRZWhAURrfY32T5zTT3qwNOQFWpn+P0i0a2g== @@ -554,6 +562,15 @@ "@babel/traverse" "^7.7.0" "@babel/types" "^7.7.0" +"@babel/helpers@^7.7.0", "@babel/helpers@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.9.6.tgz#092c774743471d0bb6c7de3ad465ab3d3486d580" + integrity sha512-tI4bUbldloLcHWoRUMAj4g1bF313M/o6fBKhIsb3QnGVPwRm9JsNf/gqMkQ7zjqReABiffPV6RWj7hEglID5Iw== + dependencies: + "@babel/template" "^7.8.3" + "@babel/traverse" "^7.9.6" + "@babel/types" "^7.9.6" + "@babel/helpers@^7.8.4": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.8.4.tgz#754eb3ee727c165e0a240d6c207de7c455f36f73" @@ -563,15 +580,6 @@ "@babel/traverse" "^7.8.4" "@babel/types" "^7.8.3" -"@babel/highlight@^7.0.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540" - integrity sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ== - dependencies: - chalk "^2.0.0" - esutils "^2.0.2" - js-tokens "^4.0.0" - "@babel/highlight@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.8.3.tgz#28f173d04223eaaa59bc1d439a3836e6d1265797" @@ -581,17 +589,18 @@ esutils "^2.0.2" js-tokens "^4.0.0" -"@babel/node@^7.6.1": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/node/-/node-7.7.0.tgz#fba73fdaf75ab1a0eaf03923f5f4ce7fa41c9974" - integrity sha512-CZFTjfCGysChOJ90ksndqct5bXkByzV5Ef8YgYS3A513MhyFQgsXJMRu2QyGOlfoP3hBZ3AmDd37ARyv/L1Zvw== +"@babel/node@^7.8.7": + version "7.8.7" + resolved "https://registry.yarnpkg.com/@babel/node/-/node-7.8.7.tgz#4213ea99f0c86cc1cf460e61131e7acbb723e13a" + integrity sha512-o8cBT3cfRPLwoPh7VBYonSeZypIawGUeVfOIt1xSDgcDdirRGDPZ7/x+FLhhgQmKp3PKbz5Juh9/BNP4Jzrr9Q== dependencies: - "@babel/register" "^7.7.0" - commander "^2.8.1" + "@babel/register" "^7.8.3" + commander "^4.0.1" core-js "^3.2.1" lodash "^4.17.13" node-environment-flags "^1.0.5" - regenerator-runtime "^0.13.3" + regenerator-runtime "^0.13.4" + resolve "^1.13.1" v8flags "^3.1.1" "@babel/parser@^7.1.0", "@babel/parser@^7.1.2": @@ -604,11 +613,16 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.4.tgz#68a35e6b0319bbc014465be43828300113f2f2e8" integrity sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA== -"@babel/parser@^7.6.0", "@babel/parser@^7.7.0", "@babel/parser@^7.7.2": +"@babel/parser@^7.6.0": version "7.7.3" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.3.tgz#5fad457c2529de476a248f75b0f090b3060af043" integrity sha512-bqv+iCo9i+uLVbI0ILzKkvMorqxouI+GbV13ivcARXn9NNEabi2IEz912IgNpT/60BNXac5dgcfjb94NjsF33A== +"@babel/parser@^7.7.0", "@babel/parser@^7.7.2", "@babel/parser@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.6.tgz#3b1bbb30dabe600cd72db58720998376ff653bc7" + integrity sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q== + "@babel/parser@^7.7.5", "@babel/parser@^7.8.6", "@babel/parser@^7.8.7": version "7.8.7" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.7.tgz#7b8facf95d25fef9534aad51c4ffecde1a61e26a" @@ -623,7 +637,7 @@ "@babel/helper-remap-async-to-generator" "^7.1.0" "@babel/plugin-syntax-async-generators" "^7.2.0" -"@babel/plugin-proposal-async-generator-functions@^7.2.0": +"@babel/plugin-proposal-async-generator-functions@^7.2.0", "@babel/plugin-proposal-async-generator-functions@^7.7.0", "@babel/plugin-proposal-async-generator-functions@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz#bad329c670b382589721b27540c7d288601c6e6f" integrity sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw== @@ -632,15 +646,6 @@ "@babel/helper-remap-async-to-generator" "^7.8.3" "@babel/plugin-syntax-async-generators" "^7.8.0" -"@babel/plugin-proposal-async-generator-functions@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.7.0.tgz#83ef2d6044496b4c15d8b4904e2219e6dccc6971" - integrity sha512-ot/EZVvf3mXtZq0Pd0+tSOfGWMizqmOohXmNZg6LNFjHOV+wOPv7BvVYh8oPR8LhpIP3ye8nNooKL50YRWxpYA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-remap-async-to-generator" "^7.7.0" - "@babel/plugin-syntax-async-generators" "^7.2.0" - "@babel/plugin-proposal-class-properties@7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.1.0.tgz#9af01856b1241db60ec8838d84691aa0bd1e8df4" @@ -661,23 +666,23 @@ "@babel/helper-create-class-features-plugin" "^7.3.0" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-proposal-class-properties@^7.5.5": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.7.0.tgz#ac54e728ecf81d90e8f4d2a9c05a890457107917" - integrity sha512-tufDcFA1Vj+eWvwHN+jvMN6QsV5o+vUlytNKrbMiCeDL0F2j92RURzUsUMWE5EJkLyWxjdUslCsMQa9FWth16A== +"@babel/plugin-proposal-class-properties@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.8.3.tgz#5e06654af5cd04b608915aada9b2a6788004464e" + integrity sha512-EqFhbo7IosdgPgZggHaNObkmO1kNUe3slaKu54d5OWvy+p9QIKOzK1GAEpAIsZtWVtPXUHSMcT4smvDrCfY4AA== dependencies: - "@babel/helper-create-class-features-plugin" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-create-class-features-plugin" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-proposal-dynamic-import@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.7.0.tgz#dc02a8bad8d653fb59daf085516fa416edd2aa7f" - integrity sha512-7poL3Xi+QFPC7sGAzEIbXUyYzGJwbc2+gSD0AkiC5k52kH2cqHdqxm5hNFfLW3cRSTcx9bN0Fl7/6zWcLLnKAQ== +"@babel/plugin-proposal-dynamic-import@^7.7.0", "@babel/plugin-proposal-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz#38c4fe555744826e97e2ae930b0fb4cc07e66054" + integrity sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-dynamic-import" "^7.2.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" -"@babel/plugin-proposal-json-strings@^7.0.0", "@babel/plugin-proposal-json-strings@^7.2.0": +"@babel/plugin-proposal-json-strings@^7.0.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== @@ -685,6 +690,14 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-json-strings" "^7.2.0" +"@babel/plugin-proposal-json-strings@^7.2.0", "@babel/plugin-proposal-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz#da5216b238a98b58a1e05d6852104b10f9a70d6b" + integrity sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.0" + "@babel/plugin-proposal-nullish-coalescing-operator@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz#e4572253fdeed65cddeecfdab3f928afeb2fd5d2" @@ -693,6 +706,14 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" +"@babel/plugin-proposal-numeric-separator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz#5d6769409699ec9b3b68684cd8116cedff93bad8" + integrity sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-proposal-object-rest-spread@7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.0.0.tgz#9a17b547f64d0676b6c9cecd4edf74a82ab85e7e" @@ -726,15 +747,16 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.0" "@babel/plugin-transform-parameters" "^7.9.5" -"@babel/plugin-proposal-object-rest-spread@^7.6.2": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.6.2.tgz#8ffccc8f3a6545e9f78988b6bf4fe881b88e8096" - integrity sha512-LDBXlmADCsMZV1Y9OQwMc0MyGZ8Ta/zlD9N67BfQT8uYwkRswiu2hU6nJKrjrt/58aH/vqfQlR/9yId/7A2gWw== +"@babel/plugin-proposal-object-rest-spread@^7.6.2", "@babel/plugin-proposal-object-rest-spread@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.6.tgz#7a093586fcb18b08266eb1a7177da671ac575b63" + integrity sha512-Ga6/fhGqA9Hj+y6whNpPv8psyaK5xzrQwSPsGPloVkvmH+PqW1ixdnfJ9uIO06OjQNYol3PMnfmJ8vfZtkzF+A== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-object-rest-spread" "^7.2.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-transform-parameters" "^7.9.5" -"@babel/plugin-proposal-optional-catch-binding@^7.0.0", "@babel/plugin-proposal-optional-catch-binding@^7.2.0": +"@babel/plugin-proposal-optional-catch-binding@^7.0.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== @@ -742,6 +764,14 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" +"@babel/plugin-proposal-optional-catch-binding@^7.2.0", "@babel/plugin-proposal-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz#9dee96ab1650eed88646ae9734ca167ac4a9c5c9" + integrity sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" + "@babel/plugin-proposal-optional-chaining@^7.9.0": version "7.9.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz#31db16b154c39d6b8a645292472b98394c292a58" @@ -759,7 +789,7 @@ "@babel/helper-regex" "^7.4.4" regexpu-core "^4.5.4" -"@babel/plugin-proposal-unicode-property-regex@^7.4.4": +"@babel/plugin-proposal-unicode-property-regex@^7.4.4", "@babel/plugin-proposal-unicode-property-regex@^7.7.0", "@babel/plugin-proposal-unicode-property-regex@^7.8.3": version "7.8.8" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz#ee3a95e90cdc04fe8cd92ec3279fa017d68a0d1d" integrity sha512-EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A== @@ -767,22 +797,14 @@ "@babel/helper-create-regexp-features-plugin" "^7.8.8" "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-proposal-unicode-property-regex@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.0.tgz#549fe1717a1bd0a2a7e63163841cb37e78179d5d" - integrity sha512-mk34H+hp7kRBWJOOAR0ZMGCydgKMD4iN9TpDRp3IIcbunltxEY89XSimc6WbtSLCDrwcdy/EEw7h5CFCzxTchw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-async-generators@^7.0.0", "@babel/plugin-syntax-async-generators@^7.2.0": +"@babel/plugin-syntax-async-generators@^7.0.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz#69e1f0db34c6f5a0cf7e2b3323bf159a76c8cb7f" integrity sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-syntax-async-generators@^7.8.0": +"@babel/plugin-syntax-async-generators@^7.2.0", "@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== @@ -810,26 +832,26 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-syntax-dynamic-import@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz#69c159ffaf4998122161ad8ebc5e6d1f55df8612" - integrity sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w== +"@babel/plugin-syntax-dynamic-import@^7.2.0", "@babel/plugin-syntax-dynamic-import@^7.8.0": + 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-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-syntax-json-strings@^7.2.0", "@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-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-jsx@^7.2.0", "@babel/plugin-syntax-jsx@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.3.tgz#521b06c83c40480f1e58b4fd33b92eceb1d6ea94" + integrity sha512-WxdW9xyLgBdefoo0Ynn3MRSkhe5tFVxxKNVdnZSh318WrG2e2jH+E9wd/++JsqcLJZPfz87njQJ8j2Upjm0M0A== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0": version "7.8.3" @@ -838,27 +860,41 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.2.0": +"@babel/plugin-syntax-numeric-separator@^7.8.0", "@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz#0e3fb63e09bea1b11e96467271c8308007e7c41f" + integrity sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-object-rest-spread@^7.0.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e" integrity sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-syntax-object-rest-spread@^7.8.0": +"@babel/plugin-syntax-object-rest-spread@^7.2.0", "@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.8.0" -"@babel/plugin-syntax-optional-catch-binding@^7.0.0", "@babel/plugin-syntax-optional-catch-binding@^7.2.0": +"@babel/plugin-syntax-optional-catch-binding@^7.0.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz#a94013d6eda8908dfe6a477e7f9eda85656ecf5c" integrity sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w== dependencies: "@babel/helper-plugin-utils" "^7.0.0" +"@babel/plugin-syntax-optional-catch-binding@^7.2.0", "@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.8.0" + "@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" @@ -866,12 +902,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-top-level-await@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.7.0.tgz#f5699549f50bbe8d12b1843a4e82f0a37bb65f4d" - integrity sha512-hi8FUNiFIY1fnUI2n1ViB1DR0R4QeK4iHcTlW6aJkrPoTdb8Rf1EMQ6GT3f67DDkYyWgew9DFoOZ6gOoEsdzTA== +"@babel/plugin-syntax-top-level-await@^7.7.0", "@babel/plugin-syntax-top-level-await@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz#3acdece695e6b13aaf57fc291d1a800950c71391" + integrity sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-typescript@^7.2.0": version "7.3.3" @@ -880,13 +916,20 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-arrow-functions@^7.0.0", "@babel/plugin-transform-arrow-functions@^7.2.0": +"@babel/plugin-transform-arrow-functions@^7.0.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz#9aeafbe4d6ffc6563bf8f8372091628f00779550" integrity sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" +"@babel/plugin-transform-arrow-functions@^7.2.0", "@babel/plugin-transform-arrow-functions@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz#82776c2ed0cd9e1a49956daeb896024c9473b8b6" + integrity sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-transform-async-to-generator@^7.1.0": version "7.5.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz#89a3848a0166623b5bc481164b5936ab947e887e" @@ -896,7 +939,7 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-remap-async-to-generator" "^7.1.0" -"@babel/plugin-transform-async-to-generator@^7.4.4": +"@babel/plugin-transform-async-to-generator@^7.4.4", "@babel/plugin-transform-async-to-generator@^7.7.0", "@babel/plugin-transform-async-to-generator@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz#4308fad0d9409d71eafb9b1a6ee35f9d64b64086" integrity sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ== @@ -905,22 +948,20 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/helper-remap-async-to-generator" "^7.8.3" -"@babel/plugin-transform-async-to-generator@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.7.0.tgz#e2b84f11952cf5913fe3438b7d2585042772f492" - integrity sha512-vLI2EFLVvRBL3d8roAMqtVY0Bm9C1QzLkdS57hiKrjUBSqsQYrBsMCeOg/0KK7B0eK9V71J5mWcha9yyoI2tZw== - dependencies: - "@babel/helper-module-imports" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-remap-async-to-generator" "^7.7.0" - -"@babel/plugin-transform-block-scoped-functions@^7.0.0", "@babel/plugin-transform-block-scoped-functions@^7.2.0": +"@babel/plugin-transform-block-scoped-functions@^7.0.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz#5d3cc11e8d5ddd752aa64c9148d0db6cb79fd190" integrity sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w== dependencies: "@babel/helper-plugin-utils" "^7.0.0" +"@babel/plugin-transform-block-scoped-functions@^7.2.0", "@babel/plugin-transform-block-scoped-functions@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz#437eec5b799b5852072084b3ae5ef66e8349e8a3" + integrity sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-transform-block-scoping@^7.0.0": version "7.6.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.0.tgz#c49e21228c4bbd4068a35667e6d951c75439b1dc" @@ -929,7 +970,7 @@ "@babel/helper-plugin-utils" "^7.0.0" lodash "^4.17.13" -"@babel/plugin-transform-block-scoping@^7.4.4": +"@babel/plugin-transform-block-scoping@^7.4.4", "@babel/plugin-transform-block-scoping@^7.6.3", "@babel/plugin-transform-block-scoping@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz#97d35dab66857a437c166358b91d09050c868f3a" integrity sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w== @@ -937,14 +978,6 @@ "@babel/helper-plugin-utils" "^7.8.3" lodash "^4.17.13" -"@babel/plugin-transform-block-scoping@^7.6.3": - version "7.6.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.3.tgz#6e854e51fbbaa84351b15d4ddafe342f3a5d542a" - integrity sha512-7hvrg75dubcO3ZI2rjYTzUrEuh1E9IyDEhhB6qfcooxhDA33xx2MasuLVgdxzcP6R/lipAC6n9ub9maNW6RKdw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - lodash "^4.17.13" - "@babel/plugin-transform-classes@^7.1.0": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz#d094299d9bd680a14a2a0edae38305ad60fb4de9" @@ -959,7 +992,7 @@ "@babel/helper-split-export-declaration" "^7.4.4" globals "^11.1.0" -"@babel/plugin-transform-classes@^7.4.4": +"@babel/plugin-transform-classes@^7.4.4", "@babel/plugin-transform-classes@^7.7.0", "@babel/plugin-transform-classes@^7.9.5": version "7.9.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.5.tgz#800597ddb8aefc2c293ed27459c1fcc935a26c2c" integrity sha512-x2kZoIuLC//O5iA7PEvecB105o7TLzZo8ofBVhP79N+DO3jaX+KYfww9TQcfBEZD0nikNyYcGB1IKtRq36rdmg== @@ -973,35 +1006,28 @@ "@babel/helper-split-export-declaration" "^7.8.3" globals "^11.1.0" -"@babel/plugin-transform-classes@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.7.0.tgz#b411ecc1b8822d24b81e5d184f24149136eddd4a" - integrity sha512-/b3cKIZwGeUesZheU9jNYcwrEA7f/Bo4IdPmvp7oHgvks2majB5BoT5byAql44fiNQYOPzhk2w8DbgfuafkMoA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.7.0" - "@babel/helper-define-map" "^7.7.0" - "@babel/helper-function-name" "^7.7.0" - "@babel/helper-optimise-call-expression" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.7.0" - "@babel/helper-split-export-declaration" "^7.7.0" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.0.0", "@babel/plugin-transform-computed-properties@^7.2.0": +"@babel/plugin-transform-computed-properties@^7.0.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz#83a7df6a658865b1c8f641d510c6f3af220216da" integrity sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-destructuring@^7.0.0", "@babel/plugin-transform-destructuring@^7.6.0": +"@babel/plugin-transform-computed-properties@^7.2.0", "@babel/plugin-transform-computed-properties@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz#96d0d28b7f7ce4eb5b120bb2e0e943343c86f81b" + integrity sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-destructuring@^7.0.0": version "7.6.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.6.0.tgz#44bbe08b57f4480094d57d9ffbcd96d309075ba6" integrity sha512-2bGIS5P1v4+sWTCnKNDZDxbGvEqi0ijeqM/YqHtVGrvG2y0ySgnEEhXErvE9dA0bnIzY9bIzdFK0jFA46ASIIQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-destructuring@^7.4.4": +"@babel/plugin-transform-destructuring@^7.4.4", "@babel/plugin-transform-destructuring@^7.6.0", "@babel/plugin-transform-destructuring@^7.9.5": version "7.9.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.9.5.tgz#72c97cf5f38604aea3abf3b935b0e17b1db76a50" integrity sha512-j3OEsGel8nHL/iusv/mRd5fYZ3DrOxWC82x0ogmdN/vHfAP4MYw+AFKYanzWlktNwikKvlzUV//afBW5FTp17Q== @@ -1017,7 +1043,7 @@ "@babel/helper-regex" "^7.4.4" regexpu-core "^4.5.4" -"@babel/plugin-transform-dotall-regex@^7.4.4": +"@babel/plugin-transform-dotall-regex@^7.4.4", "@babel/plugin-transform-dotall-regex@^7.7.0", "@babel/plugin-transform-dotall-regex@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz#c3c6ec5ee6125c6993c5cbca20dc8621a9ea7a6e" integrity sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw== @@ -1025,29 +1051,21 @@ "@babel/helper-create-regexp-features-plugin" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-dotall-regex@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.0.tgz#c5c9ecacab3a5e0c11db6981610f0c32fd698b3b" - integrity sha512-3QQlF7hSBnSuM1hQ0pS3pmAbWLax/uGNCbPBND9y+oJ4Y776jsyujG2k0Sn2Aj2a0QwVOiOFL5QVPA7spjvzSA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-duplicate-keys@^7.0.0", "@babel/plugin-transform-duplicate-keys@^7.5.0": +"@babel/plugin-transform-duplicate-keys@^7.0.0": version "7.5.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz#c5dbf5106bf84cdf691222c0974c12b1df931853" integrity sha512-igcziksHizyQPlX9gfSjHkE2wmoCH3evvD2qR5w29/Dk0SMKE/eOI7f1HhBdNhR/zxJDqrgpoDTq5YSLH/XMsQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-duplicate-keys@^7.2.0": +"@babel/plugin-transform-duplicate-keys@^7.2.0", "@babel/plugin-transform-duplicate-keys@^7.5.0", "@babel/plugin-transform-duplicate-keys@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz#8d12df309aa537f272899c565ea1768e286e21f1" integrity sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ== dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-exponentiation-operator@^7.1.0", "@babel/plugin-transform-exponentiation-operator@^7.2.0": +"@babel/plugin-transform-exponentiation-operator@^7.1.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== @@ -1055,13 +1073,28 @@ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-for-of@^7.0.0", "@babel/plugin-transform-for-of@^7.4.4": +"@babel/plugin-transform-exponentiation-operator@^7.2.0", "@babel/plugin-transform-exponentiation-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz#581a6d7f56970e06bf51560cd64f5e947b70d7b7" + integrity sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-for-of@^7.0.0": 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== dependencies: "@babel/helper-plugin-utils" "^7.0.0" +"@babel/plugin-transform-for-of@^7.4.4", "@babel/plugin-transform-for-of@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz#0f260e27d3e29cd1bb3128da5e76c761aa6c108e" + integrity sha512-lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-transform-function-name@^7.1.0": version "7.4.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz#e1436116abb0610c2259094848754ac5230922ad" @@ -1070,7 +1103,7 @@ "@babel/helper-function-name" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-function-name@^7.4.4": +"@babel/plugin-transform-function-name@^7.4.4", "@babel/plugin-transform-function-name@^7.7.0", "@babel/plugin-transform-function-name@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz#279373cb27322aaad67c2683e776dfc47196ed8b" integrity sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ== @@ -1078,29 +1111,28 @@ "@babel/helper-function-name" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-function-name@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.7.0.tgz#0fa786f1eef52e3b7d4fc02e54b2129de8a04c2a" - integrity sha512-P5HKu0d9+CzZxP5jcrWdpe7ZlFDe24bmqP6a6X8BHEBl/eizAsY8K6LX8LASZL0Jxdjm5eEfzp+FIrxCm/p8bA== - dependencies: - "@babel/helper-function-name" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-literals@^7.0.0", "@babel/plugin-transform-literals@^7.2.0": +"@babel/plugin-transform-literals@^7.0.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz#690353e81f9267dad4fd8cfd77eafa86aba53ea1" integrity sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-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-literals@^7.2.0", "@babel/plugin-transform-literals@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz#aef239823d91994ec7b68e55193525d76dbd5dc1" + integrity sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-modules-amd@^7.1.0", "@babel/plugin-transform-modules-amd@^7.5.0": +"@babel/plugin-transform-member-expression-literals@^7.2.0", "@babel/plugin-transform-member-expression-literals@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz#963fed4b620ac7cbf6029c755424029fa3a40410" + integrity sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-modules-amd@^7.1.0": version "7.5.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz#ef00435d46da0a5961aa728a1d2ecff063e4fb91" integrity sha512-n20UsQMKnWrltocZZm24cRURxQnWIvsABPJlw/fvoy9c6AgHZzoelAIzajDHAQrDpuKFFPPcFGd7ChsYuIUMpg== @@ -1118,6 +1150,15 @@ "@babel/helper-plugin-utils" "^7.8.3" babel-plugin-dynamic-import-node "^2.3.0" +"@babel/plugin-transform-modules-amd@^7.5.0", "@babel/plugin-transform-modules-amd@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.6.tgz#8539ec42c153d12ea3836e0e3ac30d5aae7b258e" + integrity sha512-zoT0kgC3EixAyIAU+9vfaUVKTv9IxBDSabgHoUCBP6FqEJ+iNiN7ip7NBKcYqbfUDfuC2mFCbM7vbu4qJgOnDw== + dependencies: + "@babel/helper-module-transforms" "^7.9.0" + "@babel/helper-plugin-utils" "^7.8.3" + babel-plugin-dynamic-import-node "^2.3.3" + "@babel/plugin-transform-modules-commonjs@7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.1.0.tgz#0a9d86451cbbfb29bd15186306897c67f6f9a05c" @@ -1147,15 +1188,15 @@ "@babel/helper-simple-access" "^7.8.3" babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-modules-commonjs@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.0.tgz#3e5ffb4fd8c947feede69cbe24c9554ab4113fe3" - integrity sha512-KEMyWNNWnjOom8vR/1+d+Ocz/mILZG/eyHHO06OuBQ2aNhxT62fr4y6fGOplRx+CxCSp3IFwesL8WdINfY/3kg== +"@babel/plugin-transform-modules-commonjs@^7.7.0", "@babel/plugin-transform-modules-commonjs@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.6.tgz#64b7474a4279ee588cacd1906695ca721687c277" + integrity sha512-7H25fSlLcn+iYimmsNe3uK1at79IE6SKW9q0/QeEHTMC9MdOZ+4bA+T1VFB5fgOqBWoqlifXRzYD0JPdmIrgSQ== dependencies: - "@babel/helper-module-transforms" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-simple-access" "^7.7.0" - babel-plugin-dynamic-import-node "^2.3.0" + "@babel/helper-module-transforms" "^7.9.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-simple-access" "^7.8.3" + babel-plugin-dynamic-import-node "^2.3.3" "@babel/plugin-transform-modules-systemjs@^7.0.0": version "7.5.0" @@ -1176,14 +1217,15 @@ "@babel/helper-plugin-utils" "^7.8.3" babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-modules-systemjs@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.7.0.tgz#9baf471213af9761c1617bb12fd278e629041417" - integrity sha512-ZAuFgYjJzDNv77AjXRqzQGlQl4HdUM6j296ee4fwKVZfhDR9LAGxfvXjBkb06gNETPnN0sLqRm9Gxg4wZH6dXg== +"@babel/plugin-transform-modules-systemjs@^7.7.0", "@babel/plugin-transform-modules-systemjs@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.6.tgz#207f1461c78a231d5337a92140e52422510d81a4" + integrity sha512-NW5XQuW3N2tTHim8e1b7qGy7s0kZ2OH3m5octc49K1SdAKGxYxeIx7hiIz05kS1R2R+hOWcsr1eYwcGhrdHsrg== dependencies: - "@babel/helper-hoist-variables" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - babel-plugin-dynamic-import-node "^2.3.0" + "@babel/helper-hoist-variables" "^7.8.3" + "@babel/helper-module-transforms" "^7.9.0" + "@babel/helper-plugin-utils" "^7.8.3" + babel-plugin-dynamic-import-node "^2.3.3" "@babel/plugin-transform-modules-umd@^7.1.0": version "7.2.0" @@ -1193,7 +1235,7 @@ "@babel/helper-module-transforms" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-modules-umd@^7.2.0": +"@babel/plugin-transform-modules-umd@^7.2.0", "@babel/plugin-transform-modules-umd@^7.7.0", "@babel/plugin-transform-modules-umd@^7.9.0": version "7.9.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz#e909acae276fec280f9b821a5f38e1f08b480697" integrity sha512-uTWkXkIVtg/JGRSIABdBoMsoIeoHQHPTL0Y2E7xf5Oj7sLqwVsNXOkNk0VJc7vF0IMBsPeikHxFjGe+qmwPtTQ== @@ -1201,35 +1243,27 @@ "@babel/helper-module-transforms" "^7.9.0" "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-modules-umd@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.7.0.tgz#d62c7da16670908e1d8c68ca0b5d4c0097b69966" - integrity sha512-u7eBA03zmUswQ9LQ7Qw0/ieC1pcAkbp5OQatbWUzY1PaBccvuJXUkYzoN1g7cqp7dbTu6Dp9bXyalBvD04AANA== - dependencies: - "@babel/helper-module-transforms" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.4.5": +"@babel/plugin-transform-named-capturing-groups-regex@^7.4.5", "@babel/plugin-transform-named-capturing-groups-regex@^7.7.0", "@babel/plugin-transform-named-capturing-groups-regex@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz#a2a72bffa202ac0e2d0506afd0939c5ecbc48c6c" integrity sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.8.3" -"@babel/plugin-transform-named-capturing-groups-regex@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.7.0.tgz#358e6fd869b9a4d8f5cbc79e4ed4fc340e60dcaf" - integrity sha512-+SicSJoKouPctL+j1pqktRVCgy+xAch1hWWTMy13j0IflnyNjaoskj+DwRQFimHbLqO3sq2oN2CXMvXq3Bgapg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.7.0" - -"@babel/plugin-transform-new-target@^7.0.0", "@babel/plugin-transform-new-target@^7.4.4": +"@babel/plugin-transform-new-target@^7.0.0": 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== dependencies: "@babel/helper-plugin-utils" "^7.0.0" +"@babel/plugin-transform-new-target@^7.4.4", "@babel/plugin-transform-new-target@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz#60cc2ae66d85c95ab540eb34babb6434d4c70c43" + integrity sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-transform-object-assign@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.8.3.tgz#dc3b8dd50ef03837868a37b7df791f64f288538e" @@ -1237,7 +1271,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-object-super@^7.1.0", "@babel/plugin-transform-object-super@^7.5.5": +"@babel/plugin-transform-object-super@^7.1.0": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz#c70021df834073c65eb613b8679cc4a381d1a9f9" integrity sha512-un1zJQAhSosGFBduPgN/YFNvWVpRuHKU7IHBglLoLZsGmruJPOo6pbInneflUdmq7YvSVqhpPs5zdBvLnteltQ== @@ -1245,7 +1279,7 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-replace-supers" "^7.5.5" -"@babel/plugin-transform-object-super@^7.2.0": +"@babel/plugin-transform-object-super@^7.2.0", "@babel/plugin-transform-object-super@^7.5.5", "@babel/plugin-transform-object-super@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz#ebb6a1e7a86ffa96858bd6ac0102d65944261725" integrity sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ== @@ -1253,7 +1287,7 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/helper-replace-supers" "^7.8.3" -"@babel/plugin-transform-parameters@^7.1.0", "@babel/plugin-transform-parameters@^7.4.4": +"@babel/plugin-transform-parameters@^7.1.0": 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== @@ -1262,7 +1296,7 @@ "@babel/helper-get-function-arity" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-parameters@^7.9.5": +"@babel/plugin-transform-parameters@^7.4.4", "@babel/plugin-transform-parameters@^7.9.5": version "7.9.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.5.tgz#173b265746f5e15b2afe527eeda65b73623a0795" integrity sha512-0+1FhHnMfj6lIIhVvS4KGQJeuhe1GI//h5uptK4PvLt+BGBxsoUJbd3/IW002yk//6sZPlFgsG1hY6OHLcy6kA== @@ -1270,45 +1304,53 @@ "@babel/helper-get-function-arity" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" -"@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-property-literals@^7.2.0", "@babel/plugin-transform-property-literals@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz#33194300d8539c1ed28c62ad5087ba3807b98263" + integrity sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-react-constant-elements@^7.7.4": - version "7.7.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.7.4.tgz#499cf732a21ffd62cc4b0016e27c3906097f8982" - integrity sha512-U6XkHZ8RnmeEb8jBUOpeo6oFka5RhLgxAVvK4/fBbwoYlsHQYLb8I37ymTPDVsrWjqb94+hueuWQA/1OAA4rAQ== + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.9.0.tgz#a75abc936a3819edec42d3386d9f1c93f28d9d9e" + integrity sha512-wXMXsToAUOxJuBBEHajqKLFWcCkOSLshTI2ChCFFj1zDd7od4IOxiwLCOObNUvOpkxLpjIuaIdBMmNt6ocCPAw== dependencies: - "@babel/helper-annotate-as-pure" "^7.7.4" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@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-react-display-name@^7.0.0", "@babel/plugin-transform-react-display-name@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.8.3.tgz#70ded987c91609f78353dd76d2fb2a0bb991e8e5" + integrity sha512-3Jy/PCw8Fe6uBKtEgz3M82ljt+lTg+xJaM4og+eyu83qLT87ZUSckn0wy7r31jflURWLO83TW6Ylf7lyXj3m5A== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@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-react-jsx-development@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.9.0.tgz#3c2a130727caf00c2a293f0aed24520825dbf754" + integrity sha512-tK8hWKrQncVvrhvtOiPpKrQjfNX3DtkNLSX4ObuGcpS9p0QrGetKmlySIGR07y48Zft8WVgPakqd/bk46JrMSw== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.2.0" + "@babel/helper-builder-react-jsx-experimental" "^7.9.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-jsx" "^7.8.3" -"@babel/plugin-transform-react-jsx-source@^7.0.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.5.0.tgz#583b10c49cf057e237085bcbd8cc960bd83bd96b" - integrity sha512-58Q+Jsy4IDCZx7kqEZuSDdam/1oW8OdDX8f+Loo6xyxdfg1yF0GE2XNJQSTZCaMol93+FBzpWiPEwtbMloAcPg== +"@babel/plugin-transform-react-jsx-self@^7.0.0", "@babel/plugin-transform-react-jsx-self@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.9.0.tgz#f4f26a325820205239bb915bad8e06fcadabb49b" + integrity sha512-K2ObbWPKT7KUTAoyjCsFilOkEgMvFG+y0FqOl6Lezd0/13kMkkjHskVsZvblRPj1PHA44PrToaZANrryppzTvQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.2.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-jsx" "^7.8.3" + +"@babel/plugin-transform-react-jsx-source@^7.0.0", "@babel/plugin-transform-react-jsx-source@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.9.0.tgz#89ef93025240dd5d17d3122294a093e5e0183de0" + integrity sha512-K6m3LlSnTSfRkM6FcRk8saNEeaeyG5k7AVkBU2bZK3+1zdkSED3qNdsWrUgQBeTVD2Tp3VMmerxVO2yM5iITmw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-jsx" "^7.8.3" -"@babel/plugin-transform-react-jsx@^7.0.0", "@babel/plugin-transform-react-jsx@^7.7.0": +"@babel/plugin-transform-react-jsx@^7.0.0": version "7.7.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.7.0.tgz#834b0723ba78cd4d24d7d629300c2270f516d0b7" integrity sha512-mXhBtyVB1Ujfy+0L6934jeJcSXj/VCg6whZzEcgiiZHNS0PGC7vUCsZDQCxxztkpIdF+dY1fUMcjAgEOC3ZOMQ== @@ -1317,6 +1359,16 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-syntax-jsx" "^7.2.0" +"@babel/plugin-transform-react-jsx@^7.9.4": + version "7.9.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.9.4.tgz#86f576c8540bd06d0e95e0b61ea76d55f6cbd03f" + integrity sha512-Mjqf3pZBNLt854CK0C/kRuXAnE6H/bo7xYojP+WGtX8glDGSibcwnsWwhwoSuRg0+EBnxPC1ouVnuetUIlPSAw== + dependencies: + "@babel/helper-builder-react-jsx" "^7.9.0" + "@babel/helper-builder-react-jsx-experimental" "^7.9.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-jsx" "^7.8.3" + "@babel/plugin-transform-regenerator@^7.0.0": version "7.4.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz#629dc82512c55cee01341fb27bdfcb210354680f" @@ -1324,26 +1376,19 @@ dependencies: regenerator-transform "^0.14.0" -"@babel/plugin-transform-regenerator@^7.4.5": +"@babel/plugin-transform-regenerator@^7.4.5", "@babel/plugin-transform-regenerator@^7.7.0", "@babel/plugin-transform-regenerator@^7.8.7": version "7.8.7" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz#5e46a0dca2bee1ad8285eb0527e6abc9c37672f8" integrity sha512-TIg+gAl4Z0a3WmD3mbYSk+J9ZUH6n/Yc57rtKRnlA/7rcCvpekHXe0CMZHP1gYp7/KLe9GHTuIba0vXmls6drA== dependencies: regenerator-transform "^0.14.2" -"@babel/plugin-transform-regenerator@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.7.0.tgz#f1b20b535e7716b622c99e989259d7dd942dd9cc" - integrity sha512-AXmvnC+0wuj/cFkkS/HFHIojxH3ffSXE+ttulrqWjZZRaUOonfJc60e1wSNT4rV8tIunvu/R3wCp71/tLAa9xg== - dependencies: - regenerator-transform "^0.14.0" - -"@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-reserved-words@^7.2.0", "@babel/plugin-transform-reserved-words@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz#9a0635ac4e665d29b162837dd3cc50745dfdf1f5" + integrity sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-runtime@7.1.0": version "7.1.0" @@ -1375,13 +1420,20 @@ resolve "^1.8.1" semver "^5.5.1" -"@babel/plugin-transform-shorthand-properties@^7.0.0", "@babel/plugin-transform-shorthand-properties@^7.2.0": +"@babel/plugin-transform-shorthand-properties@^7.0.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz#6333aee2f8d6ee7e28615457298934a3b46198f0" integrity sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" +"@babel/plugin-transform-shorthand-properties@^7.2.0", "@babel/plugin-transform-shorthand-properties@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz#28545216e023a832d4d3a1185ed492bcfeac08c8" + integrity sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-transform-spread@^7.0.0": version "7.2.2" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz#3103a9abe22f742b6d406ecd3cd49b774919b406" @@ -1389,21 +1441,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-spread@^7.2.0": +"@babel/plugin-transform-spread@^7.2.0", "@babel/plugin-transform-spread@^7.6.2", "@babel/plugin-transform-spread@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz#9c8ffe8170fdfb88b114ecb920b82fb6e95fe5e8" integrity sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g== dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-spread@^7.6.2": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.6.2.tgz#fc77cf798b24b10c46e1b51b1b88c2bf661bb8dd" - integrity sha512-DpSvPFryKdK1x+EDJYCy28nmAaIMdxmhot62jAXF/o99iA33Zj2Lmcp3vDmz+MUh0LNYVPvfj5iC3feb3/+PFg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-sticky-regex@^7.0.0", "@babel/plugin-transform-sticky-regex@^7.2.0": +"@babel/plugin-transform-sticky-regex@^7.0.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== @@ -1411,7 +1456,15 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/helper-regex" "^7.0.0" -"@babel/plugin-transform-template-literals@^7.0.0", "@babel/plugin-transform-template-literals@^7.4.4": +"@babel/plugin-transform-sticky-regex@^7.2.0", "@babel/plugin-transform-sticky-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz#be7a1290f81dae767475452199e1f76d6175b100" + integrity sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-regex" "^7.8.3" + +"@babel/plugin-transform-template-literals@^7.0.0": 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== @@ -1419,13 +1472,28 @@ "@babel/helper-annotate-as-pure" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-typeof-symbol@^7.0.0", "@babel/plugin-transform-typeof-symbol@^7.2.0": +"@babel/plugin-transform-template-literals@^7.4.4", "@babel/plugin-transform-template-literals@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz#7bfa4732b455ea6a43130adc0ba767ec0e402a80" + integrity sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-typeof-symbol@^7.0.0": version "7.2.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz#117d2bcec2fbf64b4b59d1f9819894682d29f2b2" integrity sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw== dependencies: "@babel/helper-plugin-utils" "^7.0.0" +"@babel/plugin-transform-typeof-symbol@^7.2.0", "@babel/plugin-transform-typeof-symbol@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz#ede4062315ce0aaf8a657a920858f1a2f35fc412" + integrity sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-transform-typescript@^7.6.0": version "7.6.0" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.6.0.tgz#48d78405f1aa856ebeea7288a48a19ed8da377a6" @@ -1444,7 +1512,7 @@ "@babel/helper-regex" "^7.4.4" regexpu-core "^4.5.4" -"@babel/plugin-transform-unicode-regex@^7.4.4": +"@babel/plugin-transform-unicode-regex@^7.4.4", "@babel/plugin-transform-unicode-regex@^7.7.0", "@babel/plugin-transform-unicode-regex@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz#0cef36e3ba73e5c57273effb182f46b91a1ecaad" integrity sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw== @@ -1452,14 +1520,6 @@ "@babel/helper-create-regexp-features-plugin" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-unicode-regex@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.7.0.tgz#743d9bcc44080e3cc7d49259a066efa30f9187a3" - integrity sha512-RrThb0gdrNwFAqEAAx9OWgtx6ICK69x7i9tCnMdVrxQwSDp/Abu9DXFU5Hh16VP33Rmxh04+NGW28NsIkFvFKA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/preset-env@7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.1.0.tgz#e67ea5b0441cfeab1d6f41e9b5c79798800e8d11" @@ -1561,7 +1621,7 @@ js-levenshtein "^1.1.3" semver "^5.5.0" -"@babel/preset-env@^7.0.0", "@babel/preset-env@^7.6.0": +"@babel/preset-env@^7.0.0": version "7.7.1" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.7.1.tgz#04a2ff53552c5885cf1083e291c8dd5490f744bb" integrity sha512-/93SWhi3PxcVTDpSqC+Dp4YxUu3qZ4m7I76k0w73wYfn7bGVuRIO4QUz95aJksbS+AD1/mT1Ie7rbkT0wSplaA== @@ -1618,6 +1678,83 @@ js-levenshtein "^1.1.3" semver "^5.5.0" +"@babel/preset-env@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.9.6.tgz#df063b276c6455ec6fcfc6e53aacc38da9b0aea6" + integrity sha512-0gQJ9RTzO0heXOhzftog+a/WyOuqMrAIugVYxMYf83gh1CQaQDjMtsOpqOwXyDL/5JcWsrCm8l4ju8QC97O7EQ== + dependencies: + "@babel/compat-data" "^7.9.6" + "@babel/helper-compilation-targets" "^7.9.6" + "@babel/helper-module-imports" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-proposal-async-generator-functions" "^7.8.3" + "@babel/plugin-proposal-dynamic-import" "^7.8.3" + "@babel/plugin-proposal-json-strings" "^7.8.3" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-proposal-numeric-separator" "^7.8.3" + "@babel/plugin-proposal-object-rest-spread" "^7.9.6" + "@babel/plugin-proposal-optional-catch-binding" "^7.8.3" + "@babel/plugin-proposal-optional-chaining" "^7.9.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.8.3" + "@babel/plugin-syntax-async-generators" "^7.8.0" + "@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.8.0" + "@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.8.3" + "@babel/plugin-transform-arrow-functions" "^7.8.3" + "@babel/plugin-transform-async-to-generator" "^7.8.3" + "@babel/plugin-transform-block-scoped-functions" "^7.8.3" + "@babel/plugin-transform-block-scoping" "^7.8.3" + "@babel/plugin-transform-classes" "^7.9.5" + "@babel/plugin-transform-computed-properties" "^7.8.3" + "@babel/plugin-transform-destructuring" "^7.9.5" + "@babel/plugin-transform-dotall-regex" "^7.8.3" + "@babel/plugin-transform-duplicate-keys" "^7.8.3" + "@babel/plugin-transform-exponentiation-operator" "^7.8.3" + "@babel/plugin-transform-for-of" "^7.9.0" + "@babel/plugin-transform-function-name" "^7.8.3" + "@babel/plugin-transform-literals" "^7.8.3" + "@babel/plugin-transform-member-expression-literals" "^7.8.3" + "@babel/plugin-transform-modules-amd" "^7.9.6" + "@babel/plugin-transform-modules-commonjs" "^7.9.6" + "@babel/plugin-transform-modules-systemjs" "^7.9.6" + "@babel/plugin-transform-modules-umd" "^7.9.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.8.3" + "@babel/plugin-transform-new-target" "^7.8.3" + "@babel/plugin-transform-object-super" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.9.5" + "@babel/plugin-transform-property-literals" "^7.8.3" + "@babel/plugin-transform-regenerator" "^7.8.7" + "@babel/plugin-transform-reserved-words" "^7.8.3" + "@babel/plugin-transform-shorthand-properties" "^7.8.3" + "@babel/plugin-transform-spread" "^7.8.3" + "@babel/plugin-transform-sticky-regex" "^7.8.3" + "@babel/plugin-transform-template-literals" "^7.8.3" + "@babel/plugin-transform-typeof-symbol" "^7.8.4" + "@babel/plugin-transform-unicode-regex" "^7.8.3" + "@babel/preset-modules" "^0.1.3" + "@babel/types" "^7.9.6" + browserslist "^4.11.1" + 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-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/types" "^7.4.4" + 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" @@ -1629,16 +1766,17 @@ "@babel/plugin-transform-react-jsx-self" "^7.0.0" "@babel/plugin-transform-react-jsx-source" "^7.0.0" -"@babel/preset-react@^7.0.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.7.0.tgz#8ab0c4787d98cf1f5f22dabf115552bf9e4e406c" - integrity sha512-IXXgSUYBPHUGhUkH+89TR6faMcBtuMW0h5OHbMuVbL3/5wK2g6a2M2BBpkLa+Kw0sAHiZ9dNVgqJMDP/O4GRBA== +"@babel/preset-react@^7.9.4": + version "7.9.4" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.9.4.tgz#c6c97693ac65b6b9c0b4f25b948a8f665463014d" + integrity sha512-AxylVB3FXeOTQXNXyiuAQJSvss62FEotbX2Pzx3K/7c+MKJMdSg6Ose6QYllkdCFA8EInCJVw7M/o5QbLuA4ZQ== dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-transform-react-display-name" "^7.0.0" - "@babel/plugin-transform-react-jsx" "^7.7.0" - "@babel/plugin-transform-react-jsx-self" "^7.0.0" - "@babel/plugin-transform-react-jsx-source" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-transform-react-display-name" "^7.8.3" + "@babel/plugin-transform-react-jsx" "^7.9.4" + "@babel/plugin-transform-react-jsx-development" "^7.9.0" + "@babel/plugin-transform-react-jsx-self" "^7.9.0" + "@babel/plugin-transform-react-jsx-source" "^7.9.0" "@babel/preset-typescript@^7.0.0": version "7.6.0" @@ -1648,10 +1786,10 @@ "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-transform-typescript" "^7.6.0" -"@babel/register@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.7.0.tgz#4e23ecf840296ef79c605baaa5c89e1a2426314b" - integrity sha512-HV3GJzTvSoyOMWGYn2TAh6uL6g+gqKTgEZ99Q3+X9UURT1VPT/WcU46R61XftIc5rXytcOHZ4Z0doDlsjPomIg== +"@babel/register@^7.8.3": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.9.0.tgz#02464ede57548bddbb5e9f705d263b7c3f43d48b" + integrity sha512-Tv8Zyi2J2VRR8g7pC5gTeIN8Ihultbmk0ocyNz8H2nEZbmhp1N6q0A1UGsQbDvGP/sNinQKUHf3SqXwqjtFv4Q== dependencies: find-cache-dir "^2.0.0" lodash "^4.17.13" @@ -1704,7 +1842,7 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.1.2", "@babel/template@^7.6.0", "@babel/template@^7.7.0": +"@babel/template@^7.1.2", "@babel/template@^7.6.0": version "7.7.0" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.7.0.tgz#4fadc1b8e734d97f56de39c77de76f2562e597d0" integrity sha512-OKcwSYOW1mhWbnTBgQY5lvg1Fxg+VyfQGjcBduZFljfc044J5iDlnDSfhQ867O17XHiSCxYHUxHg2b7ryitbUQ== @@ -1713,7 +1851,7 @@ "@babel/parser" "^7.7.0" "@babel/types" "^7.7.0" -"@babel/template@^7.4.4", "@babel/template@^7.7.4", "@babel/template@^7.8.3", "@babel/template@^7.8.6": +"@babel/template@^7.4.4", "@babel/template@^7.7.0", "@babel/template@^7.7.4", "@babel/template@^7.8.3", "@babel/template@^7.8.6": version "7.8.6" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b" integrity sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg== @@ -1722,7 +1860,7 @@ "@babel/parser" "^7.8.6" "@babel/types" "^7.8.6" -"@babel/traverse@^7.1.0", "@babel/traverse@^7.5.5", "@babel/traverse@^7.6.0", "@babel/traverse@^7.7.0", "@babel/traverse@^7.7.2": +"@babel/traverse@^7.1.0", "@babel/traverse@^7.5.5", "@babel/traverse@^7.6.0": version "7.7.2" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.7.2.tgz#ef0a65e07a2f3c550967366b3d9b62a2dcbeae09" integrity sha512-TM01cXib2+rgIZrGJOLaHV/iZUAxf4A0dt5auY6KNZ+cm6aschuJGqKJM3ROTt3raPUdIDk9siAufIFEleRwtw== @@ -1752,6 +1890,21 @@ globals "^11.1.0" lodash "^4.17.13" +"@babel/traverse@^7.7.0", "@babel/traverse@^7.7.2", "@babel/traverse@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.6.tgz#5540d7577697bf619cc57b92aa0f1c231a94f442" + integrity sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/generator" "^7.9.6" + "@babel/helper-function-name" "^7.9.5" + "@babel/helper-split-export-declaration" "^7.8.3" + "@babel/parser" "^7.9.6" + "@babel/types" "^7.9.6" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.13" + "@babel/traverse@^7.7.4", "@babel/traverse@^7.8.4", "@babel/traverse@^7.8.6": version "7.8.6" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.8.6.tgz#acfe0c64e1cd991b3e32eae813a6eb564954b5ff" @@ -1776,7 +1929,7 @@ lodash "^4.17.13" to-fast-properties "^2.0.0" -"@babel/types@^7.0.0", "@babel/types@^7.1.2", "@babel/types@^7.3.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5", "@babel/types@^7.6.0", "@babel/types@^7.6.1", "@babel/types@^7.7.0", "@babel/types@^7.7.1", "@babel/types@^7.7.2", "@babel/types@^7.7.4", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.8.7", "@babel/types@^7.9.0", "@babel/types@^7.9.5": +"@babel/types@^7.0.0", "@babel/types@^7.1.2", "@babel/types@^7.3.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5", "@babel/types@^7.6.0", "@babel/types@^7.6.1", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.8.7", "@babel/types@^7.9.0", "@babel/types@^7.9.5": version "7.9.5" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.5.tgz#89231f82915a8a566a703b3b20133f73da6b9444" integrity sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg== @@ -1785,6 +1938,15 @@ lodash "^4.17.13" to-fast-properties "^2.0.0" +"@babel/types@^7.7.0", "@babel/types@^7.7.1", "@babel/types@^7.7.2", "@babel/types@^7.9.6": + version "7.9.6" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.6.tgz#2c5502b427251e9de1bd2dff95add646d95cc9f7" + integrity sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA== + dependencies: + "@babel/helper-validator-identifier" "^7.9.5" + lodash "^4.17.13" + to-fast-properties "^2.0.0" + "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" @@ -2433,6 +2595,23 @@ "@percy/agent" "~0" axios "^0.19.0" +"@rollup/plugin-babel@^5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-5.0.2.tgz#d9351b9545b0c586a193fc99830d4b1a25317ed5" + integrity sha512-GiL7jL+FGppzQ1Sn4y2ER4UYXlgXFFEt+sHm4WJEzQwI76Yf9oy2QDqIvcon6xApZWlik3L8fezRGC6Mj2vRXg== + dependencies: + "@babel/helper-module-imports" "^7.7.4" + "@rollup/pluginutils" "^3.0.8" + +"@rollup/pluginutils@^3.0.8": + version "3.0.10" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.0.10.tgz#a659b9025920378494cd8f8c59fbf9b3a50d5f12" + integrity sha512-d44M7t+PjmMrASHbhgpSbVgtL6EFyX7J4mYxwQ/c5eoaE6N2VgCgEcWVzNnwycIloti+/MpwFr8qfw+nRw00sw== + dependencies: + "@types/estree" "0.0.39" + estree-walker "^1.0.1" + picomatch "^2.2.2" + "@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" @@ -3869,10 +4048,10 @@ babel-plugin-dynamic-import-node@2.2.0: dependencies: object.assign "^4.1.0" -babel-plugin-dynamic-import-node@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f" - integrity sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ== +babel-plugin-dynamic-import-node@^2.3.0, 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: object.assign "^4.1.0" @@ -4314,14 +4493,15 @@ browserslist@^4.1.0: electron-to-chromium "^1.3.247" node-releases "^1.1.29" -browserslist@^4.6.0, browserslist@^4.7.2: - version "4.7.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.7.2.tgz#1bb984531a476b5d389cedecb195b2cd69fb1348" - integrity sha512-uZavT/gZXJd2UTi9Ov7/Z340WOSQ3+m1iBVRUknf+okKxonL9P83S3ctiBDtuRmRu8PiCHjqyueqQ9HYlJhxiw== +browserslist@^4.11.1, browserslist@^4.6.0, browserslist@^4.8.5: + version "4.12.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.12.0.tgz#06c6d5715a1ede6c51fc39ff67fd647f740b656d" + integrity sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg== dependencies: - caniuse-lite "^1.0.30001004" - electron-to-chromium "^1.3.295" - node-releases "^1.1.38" + caniuse-lite "^1.0.30001043" + electron-to-chromium "^1.3.413" + node-releases "^1.1.53" + pkg-up "^2.0.0" bs-logger@0.x: version "0.2.6" @@ -4485,11 +4665,16 @@ camelcase@^5.0.0, camelcase@^5.3.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -caniuse-lite@^1.0.30000989, caniuse-lite@^1.0.30001004: +caniuse-lite@^1.0.30000989: version "1.0.30001010" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001010.tgz#397a14034d384260453cc81994f494626d34b938" integrity sha512-RA5GH9YjFNea4ZQszdWgh2SC+dpLiRAg4VDQS2b5JRI45OxmbGrYocYHTa9x0bKMQUE7uvHkNPNffUr+pCxSGw== +caniuse-lite@^1.0.30001043: + version "1.0.30001062" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001062.tgz#d814b648338504b315222ace6f1a533d9a55e390" + integrity sha512-ei9ZqeOnN7edDrb24QfJ0OZicpEbsWxv7WusOiQGz/f2SfvBgHHbOEwBJ8HKGVSyx8Z6ndPjxzR6m0NQq+0bfw== + capture-exit@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" @@ -4922,7 +5107,7 @@ commander@4.1.0: resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.0.tgz#545983a0603fe425bc672d66c9e3c89c42121a83" integrity sha512-NIQrwvv9V39FHgGFm36+U9SMQzbiHvU79k+iADraJTpmrFFfx7Ds0IvDoAdZsDrknlkRk14OYoWXb57uTh7/sw== -commander@^2.13.0, commander@^2.19.0, commander@^2.20.0, commander@^2.8.1: +commander@^2.13.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== @@ -5055,13 +5240,13 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= -core-js-compat@^3.1.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.4.1.tgz#e12c5a3ef9fcb50fd9d9a32805bfe674f9139246" - integrity sha512-YdeJI26gLc0CQJ9asLE5obEgBz2I0+CIgnoTbS2T0d5IPQw/OCgCIFR527RmpduxjrB3gSEHoGOCTq9sigOyfw== +core-js-compat@^3.1.1, 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.7.2" - semver "^6.3.0" + browserslist "^4.8.5" + semver "7.0.0" core-js-pure@^3.0.0: version "3.6.4" @@ -5084,9 +5269,9 @@ core-js@^2.5.7: integrity sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A== core-js@^3.2.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.4.1.tgz#76dd6828412900ab27c8ce0b22e6114d7ce21b18" - integrity sha512-KX/dnuY/J8FtEwbnrzmAjUYgLqtk+cxM86hfG60LGiW3MmltIc2yAmDgBgEkfm0blZhUrdr1Zd84J2Y14mLxzg== + version "3.6.5" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a" + integrity sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA== core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" @@ -5797,11 +5982,16 @@ ejs@^2.5.7: resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.1.tgz#5b5ab57f718b79d4aca9254457afecd36fa80228" integrity sha512-kS/gEPzZs3Y1rRsbGX4UOSjtP/CeJP0CxSNZHYxGfVM/VgLcv0ZqM7C45YyTj2DI2g7+P9Dd24C+IMIg6D0nYQ== -electron-to-chromium@^1.3.247, electron-to-chromium@^1.3.295: +electron-to-chromium@^1.3.247: version "1.3.306" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.306.tgz#e8265301d053d5f74e36cb876486830261fbe946" integrity sha512-frDqXvrIROoYvikSKTIKbHbzO6M3/qC6kCIt/1FOa9kALe++c4VAJnwjSFvf1tYLEUsP2n9XZ4XSCyqc3l7A/A== +electron-to-chromium@^1.3.413: + version "1.3.446" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.446.tgz#12c336bc858e04d6b614a488f32f2dd89561601f" + integrity sha512-CLQaFuvkKqR9FD2G3cJrr1fV7DRMXiAKWLP2F8cxtvvtzAS7Tubt0kF47/m+uE61kiT+I7ZEn7HqLnmWdOhmuA== + elegant-spinner@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" @@ -6019,22 +6209,6 @@ es-abstract@^1.17.0, es-abstract@^1.17.0-next.1: string.prototype.trimleft "^2.1.1" string.prototype.trimright "^2.1.1" -es-abstract@^1.5.1: - version "1.16.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.16.0.tgz#d3a26dc9c3283ac9750dca569586e976d9dcc06d" - integrity sha512-xdQnfykZ9JMEiasTAJZJdMWCQ1Vm00NBw79/AWi7ELfZuuPCSOMDZbT9mkOfSctVtfhb+sAAzrm+j//GjjLHLg== - dependencies: - es-to-primitive "^1.2.0" - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.0" - is-callable "^1.1.4" - is-regex "^1.0.4" - object-inspect "^1.6.0" - object-keys "^1.1.1" - string.prototype.trimleft "^2.1.0" - string.prototype.trimright "^2.1.0" - es-to-primitive@^1.2.0, 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" @@ -6223,7 +6397,12 @@ estree-walker@^0.6.1: resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== -esutils@^2.0.0, esutils@^2.0.2: +estree-walker@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" + integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== + +esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== @@ -7142,12 +7321,7 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" - integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= - -has-symbols@^1.0.1: +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== @@ -7639,7 +7813,7 @@ internal-slot@^1.0.2: has "^1.0.3" side-channel "^1.0.2" -invariant@^2.2.2: +invariant@^2.2.2, invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== @@ -7742,9 +7916,9 @@ is-data-descriptor@^1.0.0: kind-of "^6.0.0" is-date-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" - integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" + integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== is-decimal@^1.0.0: version "1.0.3" @@ -7967,11 +8141,11 @@ is-subset@^0.1.1: integrity sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY= is-symbol@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" - integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" + integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== dependencies: - has-symbols "^1.0.0" + has-symbols "^1.0.1" is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" @@ -8605,7 +8779,7 @@ json-stringify-safe@~5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= -json5@2.x, json5@^2.1.0, json5@^2.1.2: +json5@2.x, json5@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.2.tgz#43ef1f0af9835dd624751a6b7fa48874fb2d608e" integrity sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ== @@ -8624,6 +8798,13 @@ json5@^1.0.1: 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" + jsonapi-datastore@^0.4.0-beta: version "0.4.0-beta" resolved "https://registry.yarnpkg.com/jsonapi-datastore/-/jsonapi-datastore-0.4.0-beta.tgz#b499fce924d45e2bc3c6178681520063e2361f10" @@ -8904,6 +9085,13 @@ leven@^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" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" @@ -9918,13 +10106,18 @@ node-preload@^0.2.1: dependencies: process-on-spawn "^1.0.0" -node-releases@^1.1.29, node-releases@^1.1.38: +node-releases@^1.1.29: version "1.1.40" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.40.tgz#a94facfa8e2d612302601ca1361741d529c4515a" integrity sha512-r4LPcC5b/bS8BdtWH1fbeK88ib/wg9aqmg6/s3ngNLn2Ewkn/8J6Iw3P9RTlfIAdSdvYvQl2thCY5Y+qTAQ2iQ== dependencies: semver "^6.3.0" +node-releases@^1.1.53: + version "1.1.56" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.56.tgz#bc054a417d316e3adac90eafb7e1932802f28705" + integrity sha512-EVo605FhWLygH8a64TjgpjyHYOihkxECwX1bHHr8tETJKWEiWS2YJjPbvsX2jFjnjTNEgBCmk9mLjKG1Mf11cw== + nopt@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" @@ -10132,12 +10325,12 @@ object.fromentries@^2.0.2: has "^1.0.3" object.getownpropertydescriptors@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" - integrity sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY= + 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.pick@^1.3.0: version "1.3.0" @@ -10274,9 +10467,9 @@ p-limit@^1.1.0: p-try "^1.0.0" p-limit@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.1.tgz#aa07a788cc3151c939b5131f63570f0dd2009537" - integrity sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg== + 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" @@ -10614,6 +10807,11 @@ picomatch@^2.0.5: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.1.1.tgz#ecdfbea7704adb5fe6fb47f9866c4c0e15e905c5" integrity sha512-OYMyqkKzK7blWO/+XZYP6w8hH0LDvkBvdvKukti+7kqYFCiEAk+gI3DWnryapc0Dau05ugGTy0foQ6mqn4AHYA== +picomatch@^2.2.2: + 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.2.0, pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -10669,6 +10867,13 @@ pkg-dir@^4.1.0, pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" +pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" + integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= + dependencies: + find-up "^2.1.0" + pkg-up@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" @@ -10827,7 +11032,7 @@ prismjs@~1.17.0: optionalDependencies: clipboard "^2.0.0" -private@^0.1.6, private@^0.1.8: +private@^0.1.8: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== @@ -11297,14 +11502,7 @@ refractor@^2.3.0: parse-entities "^1.1.2" prismjs "~1.17.0" -regenerate-unicode-properties@^8.1.0: - 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== - dependencies: - regenerate "^1.4.0" - -regenerate-unicode-properties@^8.2.0: +regenerate-unicode-properties@^8.1.0, 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== @@ -11326,7 +11524,7 @@ regenerator-runtime@^0.12.0: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de" integrity sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg== -regenerator-runtime@^0.13.1, regenerator-runtime@^0.13.3: +regenerator-runtime@^0.13.1: version "0.13.3" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5" integrity sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw== @@ -11336,14 +11534,7 @@ regenerator-runtime@^0.13.4: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== -regenerator-transform@^0.14.0: - version "0.14.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.1.tgz#3b2fce4e1ab7732c08f665dfdb314749c7ddd2fb" - integrity sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ== - dependencies: - private "^0.1.6" - -regenerator-transform@^0.14.2: +regenerator-transform@^0.14.0, regenerator-transform@^0.14.2: version "0.14.4" resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.4.tgz#5266857896518d1616a78a0479337a30ea974cc7" integrity sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw== @@ -11381,7 +11572,7 @@ regexpu-core@^1.0.0: regjsgen "^0.2.0" regjsparser "^0.1.4" -regexpu-core@^4.5.4, regexpu-core@^4.6.0: +regexpu-core@^4.5.4: version "4.6.0" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6" integrity sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg== @@ -11422,14 +11613,7 @@ 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== - dependencies: - jsesc "~0.5.0" - -regjsparser@^0.6.4: +regjsparser@^0.6.0, 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== @@ -11685,14 +11869,6 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" -rollup-plugin-babel@^4.3.3: - version "4.3.3" - resolved "https://registry.yarnpkg.com/rollup-plugin-babel/-/rollup-plugin-babel-4.3.3.tgz#7eb5ac16d9b5831c3fd5d97e8df77ba25c72a2aa" - integrity sha512-tKzWOCmIJD/6aKNz0H1GMM+lW1q9KyFubbWzGiOG540zxPPifnEAHTZwjo0g991Y+DyOZcLqBgqOdqazYE5fkw== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - rollup-pluginutils "^2.8.1" - rollup-plugin-commonjs@^10.1.0: version "10.1.0" resolved "https://registry.yarnpkg.com/rollup-plugin-commonjs/-/rollup-plugin-commonjs-10.1.0.tgz#417af3b54503878e084d127adf4d1caf8beb86fb" @@ -11950,6 +12126,11 @@ semver@6.x, semver@^6.0.0, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +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.1.1: version "7.1.3" resolved "https://registry.yarnpkg.com/semver/-/semver-7.1.3.tgz#e4345ce73071c53f336445cfc19efb1c311df2a6" @@ -12229,9 +12410,9 @@ source-map-resolve@^0.5.0: urix "^0.1.0" source-map-support@^0.5.16: - version "0.5.16" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042" - integrity sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ== + 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" @@ -12523,7 +12704,7 @@ string.prototype.trim@^1.2.1: es-abstract "^1.17.0-next.1" function-bind "^1.1.1" -string.prototype.trimleft@^2.0.0, string.prototype.trimleft@^2.1.0: +string.prototype.trimleft@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz#6cc47f0d7eb8d62b0f3701611715a3954591d634" integrity sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw== @@ -12539,7 +12720,7 @@ string.prototype.trimleft@^2.1.1: define-properties "^1.1.3" function-bind "^1.1.1" -string.prototype.trimright@^2.0.0, string.prototype.trimright@^2.1.0: +string.prototype.trimright@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz#669d164be9df9b6f7559fa8e89945b168a5a6c58" integrity sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg== @@ -13187,9 +13368,9 @@ typedarray@^0.0.6: integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= typescript@^3.8.3: - version "3.8.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.8.3.tgz#409eb8544ea0335711205869ec458ab109ee1061" - integrity sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w== + version "3.9.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.2.tgz#64e9c8e9be6ea583c54607677dd4680a1cf35db9" + integrity sha512-q2ktq4n/uLuNNShyayit+DTobV2ApPEo/6so68JaD5ojvc/6GClBipedB9zNWYxRSAlZXAe405Rlijzl6qDiSw== ua-parser-js@^0.7.18: version "0.7.20" @@ -13238,20 +13419,15 @@ 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: +unicode-match-property-value-ecmascript@^1.1.0, 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.5" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57" - integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw== + version "1.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" + integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== unified@^6.1.5, unified@^6.1.6: version "6.2.0"