diff --git a/js/src/external-components/woocommerce/compare-filter/index.js b/js/src/external-components/woocommerce/compare-filter/index.js
deleted file mode 100644
index 8aa1c13b8d..0000000000
--- a/js/src/external-components/woocommerce/compare-filter/index.js
+++ /dev/null
@@ -1,191 +0,0 @@
-/**
- * This file was cloned from
- * https://github.com/woocommerce/woocommerce-admin/blob/93b1979a2ea80ff2affc030d3a8e832edea61239/packages/components/src/compare-filter/index.js
- * To use unreleased fixes:
- * https://github.com/woocommerce/woocommerce-admin/issues/6890
- */
-/**
- * External dependencies
- */
-import { __ } from '@wordpress/i18n';
-import { Component } from '@wordpress/element';
-import {
- Button,
- Card,
- CardBody,
- CardFooter,
- CardHeader,
- __experimentalText as Text,
-} from '@wordpress/components';
-import { isEqual, isFunction } from 'lodash';
-import PropTypes from 'prop-types';
-import { getIdsFromQuery, updateQueryString } from '@woocommerce/navigation';
-
-// /**
-// * Internal dependencies
-// */
-// import CompareButton from './button';
-// import Search from '../search';
-
-// export { default as CompareButton } from './button';
-
-/**
- * External dependencies
- */
-import { CompareButton, Search } from '@woocommerce/components';
-
-export { CompareButton };
-
-/**
- * Displays a card + search used to filter results as a comparison between objects.
- */
-export class CompareFilter extends Component {
- constructor( { getLabels, param, query } ) {
- super( ...arguments );
- this.state = {
- selected: [],
- };
- this.clearQuery = this.clearQuery.bind( this );
- this.updateQuery = this.updateQuery.bind( this );
- this.updateLabels = this.updateLabels.bind( this );
- this.onButtonClicked = this.onButtonClicked.bind( this );
- if ( query[ param ] ) {
- getLabels( query[ param ], query ).then( this.updateLabels );
- }
- }
-
- componentDidUpdate(
- { param: prevParam, query: prevQuery },
- { selected: prevSelected }
- ) {
- const { getLabels, param, query } = this.props;
- const { selected } = this.state;
- if (
- prevParam !== param ||
- ( prevSelected.length > 0 && selected.length === 0 )
- ) {
- this.clearQuery();
- return;
- }
-
- const prevIds = getIdsFromQuery( prevQuery[ param ] );
- const currentIds = getIdsFromQuery( query[ param ] );
- if ( ! isEqual( prevIds.sort(), currentIds.sort() ) ) {
- getLabels( query[ param ], query ).then( this.updateLabels );
- }
- }
-
- clearQuery() {
- const { param, path, query } = this.props;
-
- this.setState( {
- selected: [],
- } );
-
- updateQueryString( { [ param ]: undefined }, path, query );
- }
-
- updateLabels( selected ) {
- this.setState( { selected } );
- }
-
- updateQuery() {
- const { param, path, query } = this.props;
- const { selected } = this.state;
- const idList = selected.map( ( p ) => p.key );
- updateQueryString( { [ param ]: idList.join( ',' ) }, path, query );
- }
-
- onButtonClicked( e ) {
- this.updateQuery( e );
- if ( isFunction( this.props.onClick ) ) {
- this.props.onClick( e );
- }
- }
-
- render() {
- const { labels, type, autocompleter } = this.props;
- const { selected } = this.state;
- return (
-
-
- { labels.title }
-
-
- {
- this.setState( { selected: value } );
- } }
- />
-
-
-
- { labels.update }
-
- { selected.length > 0 && (
-
- ) }
-
-
- );
- }
-}
-
-CompareFilter.propTypes = {
- /**
- * Function used to fetch object labels via an API request, returns a Promise.
- */
- getLabels: PropTypes.func.isRequired,
- /**
- * Object of localized labels.
- */
- labels: PropTypes.shape( {
- /**
- * Label for the search placeholder.
- */
- placeholder: PropTypes.string,
- /**
- * Label for the card title.
- */
- title: PropTypes.string,
- /**
- * Label for button which updates the URL/report.
- */
- update: PropTypes.string,
- } ),
- /**
- * The parameter to use in the querystring.
- */
- param: PropTypes.string.isRequired,
- /**
- * The `path` parameter supplied by React-Router
- */
- path: PropTypes.string.isRequired,
- /**
- * The query string represented in object form
- */
- query: PropTypes.object,
- /**
- * Which type of autocompleter should be used in the Search
- */
- type: PropTypes.string.isRequired,
- /**
- * The custom autocompleter to be forwarded to the `Search` component.
- */
- autocompleter: PropTypes.object,
-};
-
-CompareFilter.defaultProps = {
- labels: {},
- query: {},
-};
diff --git a/js/src/external-components/woocommerce/filter-picker/index.js b/js/src/external-components/woocommerce/filter-picker/index.js
deleted file mode 100644
index 723eb90146..0000000000
--- a/js/src/external-components/woocommerce/filter-picker/index.js
+++ /dev/null
@@ -1,418 +0,0 @@
-/**
- * This file was cloned from
- * https://github.com/woocommerce/woocommerce-admin/blob/fa72c01b3d57d164fa4fcd621be2a7dd14e1be25/packages/components/src/filters/index.js
- * To use unreleased fixes:
- * https://github.com/woocommerce/woocommerce-admin/issues/6062
- */
-/**
- * External dependencies
- */
-import { __ } from '@wordpress/i18n';
-import { Button, Dropdown } from '@wordpress/components';
-import { focus } from '@wordpress/dom';
-import classnames from 'classnames';
-import { Component } from '@wordpress/element';
-import { find, partial, last, get, includes } from 'lodash';
-import PropTypes from 'prop-types';
-import { Icon, chevronLeft } from '@wordpress/icons';
-import {
- flattenFilters,
- getPersistedQuery,
- updateQueryString,
-} from '@woocommerce/navigation';
-
-// /**
-// * Internal dependencies
-// */
-// import AnimationSlider from '../animation-slider';
-// import DropdownButton from '../dropdown-button';
-// import Search from '../search';
-
-/**
- * External dependencies
- */
-import {
- AnimationSlider,
- DropdownButton,
- Search,
-} from '@woocommerce/components';
-
-export const DEFAULT_FILTER = 'all';
-
-/**
- * Modify a url query parameter via a dropdown selection of configurable options.
- * This component manipulates the `filter` query parameter.
- */
-class FilterPicker extends Component {
- constructor( props ) {
- super( props );
-
- const selectedFilter = this.getFilter();
- this.state = {
- nav: selectedFilter.path || [],
- animate: null,
- selectedTag: null,
- };
-
- this.selectSubFilter = this.selectSubFilter.bind( this );
- this.getVisibleFilters = this.getVisibleFilters.bind( this );
- this.updateSelectedTag = this.updateSelectedTag.bind( this );
- this.onTagChange = this.onTagChange.bind( this );
- this.onContentMount = this.onContentMount.bind( this );
- this.goBack = this.goBack.bind( this );
-
- if ( selectedFilter.settings && selectedFilter.settings.getLabels ) {
- const { query } = this.props;
- const { param: filterParam, getLabels } = selectedFilter.settings;
- getLabels( query[ filterParam ], query ).then(
- this.updateSelectedTag
- );
- }
- }
-
- componentDidUpdate( { query: prevQuery } ) {
- const { query: nextQuery, config } = this.props;
- if ( prevQuery[ config.param ] !== nextQuery[ [ config.param ] ] ) {
- const selectedFilter = this.getFilter();
- if ( selectedFilter && selectedFilter.component === 'Search' ) {
- /* eslint-disable react/no-did-update-set-state */
- this.setState( { nav: selectedFilter.path || [] } );
- /* eslint-enable react/no-did-update-set-state */
- const {
- param: filterParam,
- getLabels,
- } = selectedFilter.settings;
- getLabels( nextQuery[ filterParam ], nextQuery ).then(
- this.updateSelectedTag
- );
- }
- }
- }
-
- updateSelectedTag( tags ) {
- this.setState( { selectedTag: tags[ 0 ] } );
- }
-
- getFilter( value ) {
- const { config, query } = this.props;
- const allFilters = flattenFilters( config.filters );
- value =
- value ||
- query[ config.param ] ||
- config.defaultValue ||
- DEFAULT_FILTER;
- return find( allFilters, { value } ) || {};
- }
-
- getButtonLabel( selectedFilter ) {
- if ( selectedFilter.component === 'Search' ) {
- const { selectedTag } = this.state;
- return [
- selectedTag && selectedTag.label,
- get( selectedFilter, 'settings.labels.button' ),
- ];
- }
- return selectedFilter ? [ selectedFilter.label ] : [];
- }
-
- getVisibleFilters( filters, nav ) {
- if ( nav.length === 0 ) {
- return filters;
- }
- const value = nav[ 0 ];
- const nextFilters = find( filters, { value } );
- return this.getVisibleFilters(
- nextFilters && nextFilters.subFilters,
- nav.slice( 1 )
- );
- }
-
- selectSubFilter( value ) {
- // Add the value onto the nav path
- this.setState( ( prevState ) => ( {
- nav: [ ...prevState.nav, value ],
- animate: 'left',
- } ) );
- }
-
- goBack() {
- // Remove the last item from the nav path
- this.setState( ( prevState ) => ( {
- nav: prevState.nav.slice( 0, -1 ),
- animate: 'right',
- } ) );
- }
-
- update( value, additionalQueries = {} ) {
- const { path, query, config, onFilterSelect } = this.props;
- // Keep only time related queries when updating to a new filter
- const persistedQuery = getPersistedQuery( query );
- const update = {
- [ config.param ]:
- ( config.defaultValue || DEFAULT_FILTER ) === value
- ? undefined
- : value,
- ...additionalQueries,
- };
- // Keep any url parameters as designated by the config
- config.staticParams.forEach( ( param ) => {
- update[ param ] = query[ param ];
- } );
- updateQueryString( update, path, persistedQuery );
- onFilterSelect( update );
- }
-
- onTagChange( filter, onClose, config, tags ) {
- const tag = last( tags );
- const { value, settings } = filter;
- const { param: filterParam } = settings;
- if ( tag ) {
- this.update( value, { [ filterParam ]: tag.key } );
- onClose();
- } else {
- this.update( config.defaultValue || DEFAULT_FILTER );
- }
- this.updateSelectedTag( [ tag ] );
- }
-
- renderButton( filter, onClose, config ) {
- if ( filter.component ) {
- const { type, labels, autocompleter } = filter.settings;
- const persistedFilter = this.getFilter();
- const selectedTag =
- persistedFilter.value === filter.value
- ? this.state.selectedTag
- : null;
-
- return (
-
- );
- }
-
- const selectFilter = ( event ) => {
- onClose( event );
- this.update( filter.value, filter.query || {} );
- this.setState( { selectedTag: null } );
- };
-
- const selectSubFilter = partial( this.selectSubFilter, filter.value );
- const selectedFilter = this.getFilter();
- const buttonIsSelected =
- selectedFilter.value === filter.value ||
- ( selectedFilter.path &&
- includes( selectedFilter.path, filter.value ) );
- const onClick = ( event ) => {
- if ( buttonIsSelected ) {
- // Don't navigate if the button is already selected.
- onClose( event );
- return;
- }
-
- if ( filter.subFilters ) {
- selectSubFilter( event );
- return;
- }
-
- selectFilter( event );
- };
-
- return (
-
- );
- }
-
- onContentMount( content ) {
- const { nav } = this.state;
- const parentFilter = nav.length
- ? this.getFilter( nav[ nav.length - 1 ] )
- : false;
- const focusableIndex = parentFilter ? 1 : 0;
- const focusable = focus.tabbable.find( content )[ focusableIndex ];
- setTimeout( () => {
- focusable.focus();
- }, 0 );
- }
-
- render() {
- const { config } = this.props;
- const { nav, animate } = this.state;
- const visibleFilters = this.getVisibleFilters( config.filters, nav );
- const parentFilter = nav.length
- ? this.getFilter( nav[ nav.length - 1 ] )
- : false;
- const selectedFilter = this.getFilter();
- return (
-
- { config.label && (
-
- { config.label }:
-
- ) }
-
(
-
- ) }
- renderContent={ ( { onClose } ) => (
-
- { () => (
-
- { parentFilter && (
- -
-
-
- ) }
- { visibleFilters.map( ( filter ) => (
- -
- { this.renderButton(
- filter,
- onClose,
- config
- ) }
-
- ) ) }
-
- ) }
-
- ) }
- />
-
- );
- }
-}
-
-FilterPicker.propTypes = {
- /**
- * An array of filters and subFilters to construct the menu.
- */
- config: PropTypes.shape( {
- /**
- * A label above the filter selector.
- */
- label: PropTypes.string,
- /**
- * Url parameters to persist when selecting a new filter.
- */
- staticParams: PropTypes.array.isRequired,
- /**
- * The url paramter this filter will modify.
- */
- param: PropTypes.string.isRequired,
- /**
- * The default paramter value to use instead of 'all'.
- */
- defaultValue: PropTypes.string,
- /**
- * Determine if the filter should be shown. Supply a function with the query object as an argument returning a boolean.
- */
- showFilters: PropTypes.func.isRequired,
- /**
- * An array of filter a user can select.
- */
- filters: PropTypes.arrayOf(
- PropTypes.shape( {
- /**
- * The chart display mode to use for charts displayed when this filter is active.
- */
- chartMode: PropTypes.oneOf( [
- 'item-comparison',
- 'time-comparison',
- ] ),
- /**
- * A custom component used instead of a button, might have special handling for filtering. TBD, not yet implemented.
- */
- component: PropTypes.string,
- /**
- * The label for this filter. Optional only for custom component filters.
- */
- label: PropTypes.string,
- /**
- * An array representing the "path" to this filter, if nested.
- */
- path: PropTypes.string,
- /**
- * An array of more filter objects that act as "children" to this item.
- * This set of filters is shown if the parent filter is clicked.
- */
- subFilters: PropTypes.array,
- /**
- * The value for this filter, used to set the `filter` query param when clicked, if there are no `subFilters`.
- */
- value: PropTypes.string.isRequired,
- } )
- ),
- } ).isRequired,
- /**
- * The `path` parameter supplied by React-Router.
- */
- path: PropTypes.string.isRequired,
- /**
- * The query string represented in object form.
- */
- query: PropTypes.object,
- /**
- * Function to be called after filter selection.
- */
- onFilterSelect: PropTypes.func,
-};
-
-FilterPicker.defaultProps = {
- query: {},
- onFilterSelect: () => {},
-};
-
-export default FilterPicker;
diff --git a/js/src/external-components/woocommerce/filters/index.js b/js/src/external-components/woocommerce/filters/index.js
deleted file mode 100644
index 399ef32477..0000000000
--- a/js/src/external-components/woocommerce/filters/index.js
+++ /dev/null
@@ -1,255 +0,0 @@
-/**
- * This file was cloned from 5.1.2
- * https://github.com/woocommerce/woocommerce-admin/blob/c7b4af768727eed39c34b14e6b49350f27eed8db/packages/components/src/filters/index.js
- * To use unreleased fixes:
- * https://github.com/woocommerce/woocommerce-admin/issues/6890
- * https://github.com/woocommerce/woocommerce-admin/issues/6062
- */
-/**
- * External dependencies
- */
-import { __ } from '@wordpress/i18n';
-import { Component, Fragment } from '@wordpress/element';
-import { find } from 'lodash';
-import PropTypes from 'prop-types';
-import { updateQueryString } from '@woocommerce/navigation';
-import { getDateParamsFromQuery, getCurrentDates } from '@woocommerce/date';
-import CurrencyFactory from '@woocommerce/currency';
-
-// /**
-// * Internal dependencies
-// */
-// import AdvancedFilters from '../advanced-filters';
-// import { CompareFilter } from '../compare-filter';
-// import DateRangeFilterPicker from '../date-range-filter-picker';
-// import FilterPicker from '../filter-picker';
-// import { H, Section } from '../section';
-
-/**
- * External dependencies
- */
-import {
- AdvancedFilters,
- DateRangeFilterPicker,
- H,
- Section,
-} from '@woocommerce/components';
-/**
- * Internal dependencies
- */
-import { CompareFilter } from '../compare-filter';
-import FilterPicker from '../filter-picker';
-
-/**
- * Add a collection of report filters to a page. This uses `DatePicker` & `FilterPicker` for the "basic" filters, and `AdvancedFilters`
- * or a comparison card if "advanced" or "compare" are picked from `FilterPicker`.
- *
- * @return {Object} -
- */
-class ReportFilters extends Component {
- constructor() {
- super();
- this.renderCard = this.renderCard.bind( this );
- this.onRangeSelect = this.onRangeSelect.bind( this );
- }
-
- renderCard( config ) {
- const {
- siteLocale,
- advancedFilters,
- query,
- path,
- onAdvancedFilterAction,
- currency,
- } = this.props;
- const { filters, param } = config;
- if ( ! query[ param ] ) {
- return null;
- }
-
- if ( query[ param ].indexOf( 'compare' ) === 0 ) {
- const filter = find( filters, { value: query[ param ] } );
- if ( ! filter ) {
- return null;
- }
- const { settings = {} } = filter;
- return (
-
-
-
- );
- }
- if ( query[ param ] === 'advanced' ) {
- return (
-
- );
- }
- }
-
- onRangeSelect( data ) {
- const { query, path, onDateSelect } = this.props;
- updateQueryString( data, path, query );
- onDateSelect( data );
- }
-
- getDateQuery( query ) {
- const { period, compare, before, after } = getDateParamsFromQuery(
- query
- );
- const {
- primary: primaryDate,
- secondary: secondaryDate,
- } = getCurrentDates( query );
- return {
- period,
- compare,
- before,
- after,
- primaryDate,
- secondaryDate,
- };
- }
-
- render() {
- const {
- dateQuery,
- filters,
- query,
- path,
- showDatePicker,
- onFilterSelect,
- isoDateFormat,
- } = this.props;
- return (
-
-
- { __( 'Filters', 'woocommerce-admin' ) }
-
-
-
- { showDatePicker && (
-
- ) }
- { filters.map( ( config ) => {
- if ( config.showFilters( query ) ) {
- return (
-
- );
- }
- return null;
- } ) }
-
- { filters.map( this.renderCard ) }
-
-
- );
- }
-}
-
-ReportFilters.propTypes = {
- /**
- * The locale of the site (passed through to `AdvancedFilters`)
- */
- siteLocale: PropTypes.string,
- /**
- * Config option passed through to `AdvancedFilters`
- */
- advancedFilters: PropTypes.object,
- /**
- * Config option passed through to `FilterPicker` - if not used, `FilterPicker` is not displayed.
- */
- filters: PropTypes.array,
- /**
- * The `path` parameter supplied by React-Router
- */
- path: PropTypes.string.isRequired,
- /**
- * The query string represented in object form
- */
- query: PropTypes.object,
- /**
- * Whether the date picker must be shown.
- */
- showDatePicker: PropTypes.bool,
- /**
- * Function to be called after date selection.
- */
- onDateSelect: PropTypes.func,
- /**
- * Function to be called after filter selection.
- */
- onFilterSelect: PropTypes.func,
- /**
- * Function to be called after an advanced filter action has been taken.
- */
- onAdvancedFilterAction: PropTypes.func,
- /**
- * The currency formatting instance for the site.
- */
- currency: PropTypes.object,
- /**
- * The date query string represented in object form.
- */
- dateQuery: PropTypes.shape( {
- period: PropTypes.string.isRequired,
- compare: PropTypes.string.isRequired,
- before: PropTypes.object,
- after: PropTypes.object,
- primaryDate: PropTypes.shape( {
- label: PropTypes.string.isRequired,
- range: PropTypes.string.isRequired,
- } ).isRequired,
- secondaryDate: PropTypes.shape( {
- label: PropTypes.string.isRequired,
- range: PropTypes.string.isRequired,
- } ),
- } ),
- /**
- * ISO date format string.
- */
- isoDateFormat: PropTypes.string,
-};
-
-ReportFilters.defaultProps = {
- siteLocale: 'en_US',
- advancedFilters: {},
- filters: [],
- query: {},
- showDatePicker: true,
- onDateSelect: () => {},
- currency: CurrencyFactory().getCurrencyConfig(),
-};
-
-export default ReportFilters;
diff --git a/js/src/reports/programs/programs-report-filters.js b/js/src/reports/programs/programs-report-filters.js
index 258d4498e6..bc1166222d 100644
--- a/js/src/reports/programs/programs-report-filters.js
+++ b/js/src/reports/programs/programs-report-filters.js
@@ -7,10 +7,7 @@ import {
getDateParamsFromQuery,
isoDateFormat,
} from '@woocommerce/date';
-// We are waiting for the release of the following fixes:
-// https://github.com/woocommerce/woocommerce-admin/issues/6890
-// https://github.com/woocommerce/woocommerce-admin/issues/6062
-// import { ReportFilters } from '@woocommerce/components';
+import { ReportFilters } from '@woocommerce/components';
import { getSetting } from '@woocommerce/settings'; // eslint-disable-line import/no-unresolved, @woocommerce/dependency-group
// The above is an unpublished package, delivered with WC, we use Dependency Extraction Webpack Plugin to import it.
// See https://github.com/woocommerce/woocommerce-admin/issues/7781
@@ -25,7 +22,6 @@ import {
import { createProgramsFilterConfig } from './filter-config';
import useAdsCampaigns from '.~/hooks/useAdsCampaigns';
import useStoreCurrency from '.~/hooks/useStoreCurrency';
-import ReportFilters from '.~/external-components/woocommerce/filters';
const siteLocale = getSetting( 'locale' ).siteLocale;
const getProgramsFilter = createProgramsFilterConfig();
diff --git a/package-lock.json b/package-lock.json
index d03ad76464..b1a90a6f0f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -4569,16 +4569,6 @@
"integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==",
"dev": true
},
- "@types/yauzl": {
- "version": "2.9.2",
- "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz",
- "integrity": "sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==",
- "dev": true,
- "optional": true,
- "requires": {
- "@types/node": "*"
- }
- },
"@typescript-eslint/experimental-utils": {
"version": "4.33.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz",
@@ -8802,6 +8792,18 @@
"debug": "^4.1.1",
"get-stream": "^5.1.0",
"yauzl": "^2.10.0"
+ },
+ "dependencies": {
+ "@types/yauzl": {
+ "version": "2.9.2",
+ "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz",
+ "integrity": "sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ }
}
},
"file-entry-cache": {
@@ -9099,6 +9101,30 @@
"tar-fs": "^2.0.0",
"unbzip2-stream": "^1.3.3",
"ws": "^7.2.3"
+ },
+ "dependencies": {
+ "tar-fs": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
+ "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
+ "dev": true,
+ "requires": {
+ "chownr": "^1.1.1",
+ "mkdirp-classic": "^0.5.2",
+ "pump": "^3.0.0",
+ "tar-stream": "^2.1.4"
+ }
+ },
+ "unbzip2-stream": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz",
+ "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==",
+ "dev": true,
+ "requires": {
+ "buffer": "^5.2.1",
+ "through": "^2.3.8"
+ }
+ }
}
},
"read-pkg": {
@@ -25174,18 +25200,6 @@
}
}
},
- "tar-fs": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
- "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
- "dev": true,
- "requires": {
- "chownr": "^1.1.1",
- "mkdirp-classic": "^0.5.2",
- "pump": "^3.0.0",
- "tar-stream": "^2.1.4"
- }
- },
"tar-stream": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
@@ -25753,16 +25767,6 @@
"which-boxed-primitive": "^1.0.2"
}
},
- "unbzip2-stream": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz",
- "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==",
- "dev": true,
- "requires": {
- "buffer": "^5.2.1",
- "through": "^2.3.8"
- }
- },
"unherit": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz",
diff --git a/package.json b/package.json
index 591907ecff..7b3ea80dee 100644
--- a/package.json
+++ b/package.json
@@ -75,7 +75,6 @@
"@wordpress/data": "^4.26.1",
"@wordpress/data-controls": "^1.20.1",
"@wordpress/date": "^3.9.0",
- "@wordpress/dom": "^3.1.1",
"@wordpress/element": "^2.18.0",
"@wordpress/hooks": "^3.1.1",
"@wordpress/html-entities": "^3.2.1",
@@ -88,7 +87,6 @@
"libphonenumber-js": "^1.9.22",
"lodash": "^4.17.20",
"md5": "^2.3.0",
- "prop-types": "^15.7.2",
"rememo": "^3.0.0",
"use-debounce": "^5.2.0"
},