From 5644b9abe5d56445cb52b44f35ce3c15a8256162 Mon Sep 17 00:00:00 2001 From: Daniel Byun Date: Fri, 22 Nov 2019 08:30:55 +0900 Subject: [PATCH] Serverside sorting example (#986) * Add Example: ServerSide Sorting * Add Example: ServerSide Sorting * Add Example: ServerSide Sorting * fix missing props --- examples/examples.js | 126 ++++---- examples/serverside-sorting/cities.js | 418 ++++++++++++++++++++++++++ examples/serverside-sorting/index.js | 215 +++++++++++++ package-lock.json | 45 ++- 4 files changed, 730 insertions(+), 74 deletions(-) create mode 100644 examples/serverside-sorting/cities.js create mode 100644 examples/serverside-sorting/index.js diff --git a/examples/examples.js b/examples/examples.js index 674617504..7ee8b8239 100644 --- a/examples/examples.js +++ b/examples/examples.js @@ -1,68 +1,70 @@ -import ArrayValueColumns from "./array-value-columns"; -import ColumnFilters from "./column-filters"; -import ColumnOptionsUpdate from "./column-options-update"; -import Component from "./component"; -import CSVExport from "./csv-export"; -import CustomActionColumns from "./custom-action-columns"; -import CustomizeColumns from "./customize-columns"; -import CustomizeFilter from "./customize-filter"; -import CustomizeFooter from "./customize-footer"; -import CustomizeRows from "./customize-rows"; -import CustomizeSearch from "./customize-search"; -import CustomizeSearchRender from "./customize-search-render"; -import CustomizeSorting from "./customize-sorting"; -import CustomizeStyling from "./customize-styling"; -import CustomizeToolbar from "./customize-toolbar"; -import CustomizeToolbarSelect from "./customize-toolbarselect"; -import DataAsObjects from "./data-as-objects"; -import ExpandableRows from "./expandable-rows"; -import FixedHeader from "./fixed-header"; -import HideColumnsPrint from "./hide-columns-print"; -import OnDownload from "./on-download"; -import OnTableInit from "./on-table-init"; -import ResizableColumns from "./resizable-columns"; -import SelectableRows from "./selectable-rows"; -import ServerSideFilters from "./serverside-filters"; -import ServerSideOptions from "./serverside-options"; -import ServerSidePagination from "./serverside-pagination"; -import Simple from "./simple"; -import SimpleNoToolbar from "./simple-no-toolbar"; -import TextLocalization from "./text-localization"; -import Themes from "./themes"; +import ArrayValueColumns from './array-value-columns'; +import ColumnFilters from './column-filters'; +import ColumnOptionsUpdate from './column-options-update'; +import Component from './component'; +import CSVExport from './csv-export'; +import CustomActionColumns from './custom-action-columns'; +import CustomizeColumns from './customize-columns'; +import CustomizeFilter from './customize-filter'; +import CustomizeFooter from './customize-footer'; +import CustomizeRows from './customize-rows'; +import CustomizeSearch from './customize-search'; +import CustomizeSearchRender from './customize-search-render'; +import CustomizeSorting from './customize-sorting'; +import CustomizeStyling from './customize-styling'; +import CustomizeToolbar from './customize-toolbar'; +import CustomizeToolbarSelect from './customize-toolbarselect'; +import DataAsObjects from './data-as-objects'; +import ExpandableRows from './expandable-rows'; +import FixedHeader from './fixed-header'; +import HideColumnsPrint from './hide-columns-print'; +import OnDownload from './on-download'; +import OnTableInit from './on-table-init'; +import ResizableColumns from './resizable-columns'; +import SelectableRows from './selectable-rows'; +import ServerSideFilters from './serverside-filters'; +import ServerSideOptions from './serverside-options'; +import ServerSidePagination from './serverside-pagination'; +import ServerSideSorting from './serverside-sorting'; +import Simple from './simple'; +import SimpleNoToolbar from './simple-no-toolbar'; +import TextLocalization from './text-localization'; +import Themes from './themes'; /** * Here you can add any extra examples with the Card label as the key, and the component to render as the value */ export default { - 'Array Value Columns': ArrayValueColumns, - 'Column Filters': ColumnFilters, - 'Column Option Update': ColumnOptionsUpdate, - 'Component': Component, - 'CSV Export': CSVExport, - 'Custom Action Columns': CustomActionColumns, - 'Customize Columns': CustomizeColumns, - 'Customize Filter': CustomizeFilter, - 'Customize Footer': CustomizeFooter, - 'Customize Rows': CustomizeRows, - 'Customize Search': CustomizeSearch, - 'Customize Search Render': CustomizeSearchRender, - 'Customize Sorting': CustomizeSorting, - 'Customize Styling': CustomizeStyling, - 'Customize Toolbar': CustomizeToolbar, - 'Customize Toolbar Select': CustomizeToolbarSelect, - 'Data As Objects': DataAsObjects, - 'Expandable Rows': ExpandableRows, - 'Fixed Header': FixedHeader, - 'Hide Columns Print': HideColumnsPrint, - 'OnDownload': OnDownload, - 'OnTableInit': OnTableInit, - 'Resizable Columns': ResizableColumns, - 'Selectable Rows': SelectableRows, - 'ServerSide Filters': ServerSideFilters, - 'ServerSide Options': ServerSideOptions, - 'ServerSide Pagination': ServerSidePagination, - 'Simple': Simple, - 'Simple No Toolbar': SimpleNoToolbar, - 'Text Localization': TextLocalization, - 'Themes': Themes, + 'Array Value Columns': ArrayValueColumns, + 'Column Filters': ColumnFilters, + 'Column Option Update': ColumnOptionsUpdate, + Component: Component, + 'CSV Export': CSVExport, + 'Custom Action Columns': CustomActionColumns, + 'Customize Columns': CustomizeColumns, + 'Customize Filter': CustomizeFilter, + 'Customize Footer': CustomizeFooter, + 'Customize Rows': CustomizeRows, + 'Customize Search': CustomizeSearch, + 'Customize Search Render': CustomizeSearchRender, + 'Customize Sorting': CustomizeSorting, + 'Customize Styling': CustomizeStyling, + 'Customize Toolbar': CustomizeToolbar, + 'Customize Toolbar Select': CustomizeToolbarSelect, + 'Data As Objects': DataAsObjects, + 'Expandable Rows': ExpandableRows, + 'Fixed Header': FixedHeader, + 'Hide Columns Print': HideColumnsPrint, + OnDownload: OnDownload, + OnTableInit: OnTableInit, + 'Resizable Columns': ResizableColumns, + 'Selectable Rows': SelectableRows, + 'ServerSide Filters': ServerSideFilters, + 'ServerSide Options': ServerSideOptions, + 'ServerSide Pagination': ServerSidePagination, + 'ServerSide Sorting': ServerSideSorting, + Simple: Simple, + 'Simple No Toolbar': SimpleNoToolbar, + 'Text Localization': TextLocalization, + Themes: Themes, }; diff --git a/examples/serverside-sorting/cities.js b/examples/serverside-sorting/cities.js new file mode 100644 index 000000000..6be4f64c4 --- /dev/null +++ b/examples/serverside-sorting/cities.js @@ -0,0 +1,418 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import MenuItem from '@material-ui/core/MenuItem'; +import FormControl from '@material-ui/core/FormControl'; +import Select from '@material-ui/core/Select'; + +class Cities extends React.Component { + static propTypes = { + value: PropTypes.string.isRequired, + index: PropTypes.number.isRequired, + change: PropTypes.func.isRequired, + }; + + render() { + const { value, index, change } = this.props; + const cities = [ + 'Aberdeen', + 'Abilene', + 'Akron', + 'Albany', + 'Albuquerque', + 'Alexandria', + 'Allentown', + 'Amarillo', + 'Anaheim', + 'Anchorage', + 'Ann Arbor', + 'Antioch', + 'Apple Valley', + 'Appleton', + 'Arlington', + 'Arvada', + 'Asheville', + 'Athens', + 'Atlanta', + 'Atlantic City', + 'Augusta', + 'Aurora', + 'Austin', + 'Bakersfield', + 'Baltimore', + 'Barnstable', + 'Baton Rouge', + 'Beaumont', + 'Bel Air', + 'Bellevue', + 'Berkeley', + 'Bethlehem', + 'Billings', + 'Birmingham', + 'Bloomington', + 'Boise', + 'Boise City', + 'Bonita Springs', + 'Boston', + 'Boulder', + 'Bradenton', + 'Bremerton', + 'Bridgeport', + 'Brighton', + 'Brownsville', + 'Bryan', + 'Buffalo', + 'Burbank', + 'Burlington', + 'Cambridge', + 'Canton', + 'Cape Coral', + 'Carrollton', + 'Cary', + 'Cathedral City', + 'Cedar Rapids', + 'Champaign', + 'Chandler', + 'Charleston', + 'Charlotte', + 'Chattanooga', + 'Chesapeake', + 'Chicago', + 'Chula Vista', + 'Cincinnati', + 'Clarke County', + 'Clarksville', + 'Clearwater', + 'Cleveland', + 'College Station', + 'Colorado Springs', + 'Columbia', + 'Columbus', + 'Concord', + 'Coral Springs', + 'Corona', + 'Corpus Christi', + 'Costa Mesa', + 'Dallas', + 'Daly City', + 'Danbury', + 'Davenport', + 'Davidson County', + 'Dayton', + 'Daytona Beach', + 'Deltona', + 'Denton', + 'Denver', + 'Des Moines', + 'Detroit', + 'Downey', + 'Duluth', + 'Durham', + 'El Monte', + 'El Paso', + 'Elizabeth', + 'Elk Grove', + 'Elkhart', + 'Erie', + 'Escondido', + 'Eugene', + 'Evansville', + 'Fairfield', + 'Fargo', + 'Fayetteville', + 'Fitchburg', + 'Flint', + 'Fontana', + 'Fort Collins', + 'Fort Lauderdale', + 'Fort Smith', + 'Fort Walton Beach', + 'Fort Wayne', + 'Fort Worth', + 'Frederick', + 'Fremont', + 'Fresno', + 'Fullerton', + 'Gainesville', + 'Garden Grove', + 'Garland', + 'Gastonia', + 'Gilbert', + 'Glendale', + 'Grand Prairie', + 'Grand Rapids', + 'Grayslake', + 'Green Bay', + 'GreenBay', + 'Greensboro', + 'Greenville', + 'Gulfport-Biloxi', + 'Hagerstown', + 'Hampton', + 'Harlingen', + 'Harrisburg', + 'Hartford', + 'Havre de Grace', + 'Hayward', + 'Hemet', + 'Henderson', + 'Hesperia', + 'Hialeah', + 'Hickory', + 'High Point', + 'Hollywood', + 'Honolulu', + 'Houma', + 'Houston', + 'Howell', + 'Huntington', + 'Huntington Beach', + 'Huntsville', + 'Independence', + 'Indianapolis', + 'Inglewood', + 'Irvine', + 'Irving', + 'Jackson', + 'Jacksonville', + 'Jefferson', + 'Jersey City', + 'Johnson City', + 'Joliet', + 'Kailua', + 'Kalamazoo', + 'Kaneohe', + 'Kansas City', + 'Kennewick', + 'Kenosha', + 'Killeen', + 'Kissimmee', + 'Knoxville', + 'Lacey', + 'Lafayette', + 'Lake Charles', + 'Lakeland', + 'Lakewood', + 'Lancaster', + 'Lansing', + 'Laredo', + 'Las Cruces', + 'Las Vegas', + 'Layton', + 'Leominster', + 'Lewisville', + 'Lexington', + 'Lincoln', + 'Little Rock', + 'Long Beach', + 'Lorain', + 'Los Angeles', + 'Louisville', + 'Lowell', + 'Lubbock', + 'Macon', + 'Madison', + 'Manchester', + 'Marina', + 'Marysville', + 'McAllen', + 'McHenry', + 'Medford', + 'Melbourne', + 'Memphis', + 'Merced', + 'Mesa', + 'Mesquite', + 'Miami', + 'Milwaukee', + 'Minneapolis', + 'Miramar', + 'Mission Viejo', + 'Mobile', + 'Modesto', + 'Monroe', + 'Monterey', + 'Montgomery', + 'Moreno Valley', + 'Murfreesboro', + 'Murrieta', + 'Muskegon', + 'Myrtle Beach', + 'Naperville', + 'Naples', + 'Nashua', + 'Nashville', + 'New Bedford', + 'New Haven', + 'New London', + 'New Orleans', + 'New York', + 'New York City', + 'Newark', + 'Newburgh', + 'Newport News', + 'Norfolk', + 'Normal', + 'Norman', + 'North Charleston', + 'North Las Vegas', + 'North Port', + 'Norwalk', + 'Norwich', + 'Oakland', + 'Ocala', + 'Oceanside', + 'Odessa', + 'Ogden', + 'Oklahoma City', + 'Olathe', + 'Olympia', + 'Omaha', + 'Ontario', + 'Orange', + 'Orem', + 'Orlando', + 'Overland Park', + 'Oxnard', + 'Palm Bay', + 'Palm Springs', + 'Palmdale', + 'Panama City', + 'Pasadena', + 'Paterson', + 'Pembroke Pines', + 'Pensacola', + 'Peoria', + 'Philadelphia', + 'Phoenix', + 'Pittsburgh', + 'Plano', + 'Pomona', + 'Pompano Beach', + 'Port Arthur', + 'Port Orange', + 'Port Saint Lucie', + 'Port St. Lucie', + 'Portland', + 'Portsmouth', + 'Poughkeepsie', + 'Providence', + 'Provo', + 'Pueblo', + 'Punta Gorda', + 'Racine', + 'Raleigh', + 'Rancho Cucamonga', + 'Reading', + 'Redding', + 'Reno', + 'Richland', + 'Richmond', + 'Richmond County', + 'Riverside', + 'Roanoke', + 'Rochester', + 'Rockford', + 'Roseville', + 'Round Lake Beach', + 'Sacramento', + 'Saginaw', + 'Saint Louis', + 'Saint Paul', + 'Saint Petersburg', + 'Salem', + 'Salinas', + 'Salt Lake City', + 'San Antonio', + 'San Bernardino', + 'San Buenaventura', + 'San Diego', + 'San Francisco', + 'San Jose', + 'Santa Ana', + 'Santa Barbara', + 'Santa Clara', + 'Santa Clarita', + 'Santa Cruz', + 'Santa Maria', + 'Santa Rosa', + 'Sarasota', + 'Savannah', + 'Scottsdale', + 'Scranton', + 'Seaside', + 'Seattle', + 'Sebastian', + 'Shreveport', + 'Simi Valley', + 'Sioux City', + 'Sioux Falls', + 'South Bend', + 'South Lyon', + 'Spartanburg', + 'Spokane', + 'Springdale', + 'Springfield', + 'St. Louis', + 'St. Paul', + 'St. Petersburg', + 'Stamford', + 'Sterling Heights', + 'Stockton', + 'Sunnyvale', + 'Syracuse', + 'Tacoma', + 'Tallahassee', + 'Tampa', + 'Temecula', + 'Tempe', + 'Thornton', + 'Thousand Oaks', + 'Toledo', + 'Topeka', + 'Torrance', + 'Trenton', + 'Tucson', + 'Tulsa', + 'Tuscaloosa', + 'Tyler', + 'Utica', + 'Vallejo', + 'Vancouver', + 'Vero Beach', + 'Victorville', + 'Virginia Beach', + 'Visalia', + 'Waco', + 'Warren', + 'Washington', + 'Waterbury', + 'Waterloo', + 'West Covina', + 'West Valley City', + 'Westminster', + 'Wichita', + 'Wilmington', + 'Winston', + 'Winter Haven', + 'Worcester', + 'Yakima', + 'Yonkers', + 'York', + 'Youngstown', + ]; + + return ( + + + + ); + } +} + +export default Cities; diff --git a/examples/serverside-sorting/index.js b/examples/serverside-sorting/index.js new file mode 100644 index 000000000..cec3178d7 --- /dev/null +++ b/examples/serverside-sorting/index.js @@ -0,0 +1,215 @@ +import React from 'react'; +import ReactDOM from 'react-dom'; +import MUIDataTable from '../../src'; +import { CircularProgress, Typography } from '@material-ui/core'; +import Cities from './Cities'; + +class Example extends React.Component { + state = { + page: 0, + count: 100, + data: [['Loading Data...']], + nameColumnSortDirection: null, + columnSortDirection: ['none', 'none', 'none', 'none', 'none'], + loading: false, + }; + + componentDidMount() { + this.getData(); + } + + getData = () => { + this.setState({ loading: true }); + this.xhrRequest().then(data => { + this.setState({ data, loading: false }); + }); + }; + + // mock async function + xhrRequest = url => { + let page = 0; + let order = ''; + let column = ''; + if (url != undefined) { + page = url.page; + order = url.order; + column = url.column; + } + + return new Promise((resolve, reject) => { + const srcData = [ + ['Gabby George', 'Business Analyst', 'Minneapolis', 10, '$210,000'], + ['Aiden Lloyd', 'Business Consultant', 'Dallas', 13, '$250,000'], + ['Jaden Collins', 'Attorney', 'Santa Ana', 20, '$310,000'], + ['Franky Rees', 'Business Analyst', 'St. Petersburg', 31, '$290,000'], + ['Aaren Rose', 'Business Analyst', 'Toledo', 61, '$510,000'], + ['Frankie Parry', 'Agency Legal Counsel', 'Jacksonville', 71, '$210,000'], + ['Lane Wilson', 'Commercial Specialist', 'Omaha', 19, '$65,000'], + ['Robin Duncan', 'Business Analyst', 'Los Angeles', 20, '$77,000'], + ['Mel Brooks', 'Business Consultant', 'Oklahoma City', 37, '$135,000'], + ['Harper White', 'Attorney', 'Pittsburgh', 52, '$420,000'], + ['Kris Humphrey', 'Agency Legal Counsel', 'Laredo', 30, '$150,000'], + ['Frankie Long', 'Industrial Analyst', 'Austin', 31, '$170,000'], + ['Brynn Robbins', 'Business Analyst', 'Norfolk', 22, '$90,000'], + ['Justice Mann', 'Business Consultant', 'Chicago', 24, '$133,000'], + ['Jesse Welch', 'Agency Legal Counsel', 'Seattle', 28, '$200,000'], + ['Eli Mejia', 'Commercial Specialist', 'Long Beach', 65, '$400,000'], + ['Gene Leblanc', 'Industrial Analyst', 'Hartford', 34, '$110,000'], + ['Danny Leon', 'Computer Scientist', 'Newark', 60, '$220,000'], + ['Lane Lee', 'Corporate Counselor', 'Cincinnati', 52, '$180,000'], + ['Jesse Hall', 'Business Analyst', 'Baltimore', 44, '$99,000'], + ['Danni Hudson', 'Agency Legal Counsel', 'Tampa', 37, '$90,000'], + ['Terry Macdonald', 'Commercial Specialist', 'Miami', 39, '$140,000'], + ['Justice Mccarthy', 'Attorney', 'Tucson', 26, '$330,000'], + ['Silver Carey', 'Computer Scientist', 'Memphis', 47, '$250,000'], + ['Franky Miles', 'Industrial Analyst', 'Buffalo', 49, '$190,000'], + ['Glen Nixon', 'Corporate Counselor', 'Arlington', 44, '$80,000'], + ]; + + var offset = page * 10; + var data = []; + + if (order !== '') { + if (order === 'asc') { + var tempData = srcData.sort((a, b) => { + return a[3] - b[3]; + }); + + data = + offset + 10 >= srcData.length + ? tempData.slice(offset, srcData.length) + : tempData.slice(offset, offset + 10); + } else { + tempData = srcData.sort((a, b) => { + return b[3] - a[3]; + }); + + data = + offset + 10 >= srcData.length + ? tempData.slice(offset, srcData.length) + : tempData.slice(offset, offset + 10); + } + } else { + data = + offset + 10 >= srcData.length ? srcData.slice(offset, srcData.length) : srcData.slice(offset, offset + 10); + } + + setTimeout(() => { + resolve(data); + }, 250); + }); + }; + + sort = (column, order) => { + let temp = {}; + temp.column = column; + temp.order = order; + temp.page = this.state.page; + + let newColumnSortDirections = ['none', 'none', 'none', 'none', 'none']; + + switch (column) { + case 'Name': + newColumnSortDirections[0] = order; + break; + case 'Title': + newColumnSortDirections[1] = order; + break; + case 'Location': + newColumnSortDirections[2] = order; + break; + case 'Age': + newColumnSortDirections[3] = order; + break; + case 'Salary': + newColumnSortDirections[4] = order; + break; + default: + break; + } + + newColumnSortDirections[column.index] = order; + + this.xhrRequest(temp).then(data => { + this.setState({ + data, + columnSortDirection: newColumnSortDirections, + }); + }); + }; + + render() { + const columns = [ + { + name: 'Name', + options: { + sortDirection: this.state.columnSortDirection[0], + customFilterListRender: v => `Name: ${v}`, + }, + }, + { + name: 'Title', + options: { + sortDirection: this.state.columnSortDirection[1], + customFilterListRender: v => `Title: ${v}`, + }, + }, + { + name: 'Location', + options: { + sortDirection: this.state.columnSortDirection[2], + customFilterListRender: v => `Location: ${v}`, + customBodyRender: (value, tableMeta, updateValue) => { + return updateValue(event)} />; + }, + }, + }, + { + name: 'Age', + options: { sortDirection: this.state.columnSortDirection[3] }, + }, + { + name: 'Salary', + options: { sortDirection: this.state.columnSortDirection[4] }, + }, + ]; + const { page, count, data } = this.state; + + const options = { + filter: true, + filterType: 'dropdown', + responsive: 'scrollMaxHeight', + serverSide: true, + count: count, + page: page, + onColumnSortChange: (changedColumn, direction) => { + let order = 'desc'; + if (direction === 'ascending') { + order = 'asc'; + } + + this.sort(changedColumn, order); + }, + }; + + return ( +
+ + ACME Employee list{' '} + {this.state.loading && ( + + )} + + } + data={data} + columns={columns} + options={options} + /> +
+ ); + } +} + +export default Example; diff --git a/package-lock.json b/package-lock.json index fd9d0816e..5f8d89e38 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4498,7 +4498,8 @@ "version": "2.1.1", "resolved": false, "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true + "dev": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -4522,13 +4523,15 @@ "version": "1.0.0", "resolved": false, "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true + "dev": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "resolved": false, "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -4545,19 +4548,22 @@ "version": "1.1.0", "resolved": false, "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", "resolved": false, "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", "resolved": false, "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -4688,7 +4694,8 @@ "version": "2.0.3", "resolved": false, "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -4702,6 +4709,7 @@ "resolved": false, "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -4718,6 +4726,7 @@ "resolved": false, "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -4726,13 +4735,15 @@ "version": "0.0.8", "resolved": false, "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true + "dev": true, + "optional": true }, "minipass": { "version": "2.2.4", "resolved": false, "integrity": "sha512-hzXIWWet/BzWhYs2b+u7dRHlruXhwdgvlTMDKC6Cb1U7ps6Ac6yQlR39xsbjWJE377YTCtKwIXIpJ5oP+j5y8g==", "dev": true, + "optional": true, "requires": { "safe-buffer": "^5.1.1", "yallist": "^3.0.0" @@ -4753,6 +4764,7 @@ "resolved": false, "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -4841,7 +4853,8 @@ "version": "1.0.1", "resolved": false, "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -4855,6 +4868,7 @@ "resolved": false, "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, + "optional": true, "requires": { "wrappy": "1" } @@ -4950,7 +4964,8 @@ "version": "5.1.1", "resolved": false, "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", - "dev": true + "dev": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -4992,6 +5007,7 @@ "resolved": false, "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -5013,6 +5029,7 @@ "resolved": false, "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -5061,13 +5078,15 @@ "version": "1.0.2", "resolved": false, "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "dev": true, + "optional": true }, "yallist": { "version": "3.0.2", "resolved": false, "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", - "dev": true + "dev": true, + "optional": true } } }, @@ -7828,6 +7847,7 @@ "resolved": false, "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "dev": true, + "optional": true, "requires": { "kind-of": "^3.0.2", "longest": "^1.0.1", @@ -9161,7 +9181,8 @@ "version": "1.0.1", "resolved": false, "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "dev": true + "dev": true, + "optional": true }, "loose-envify": { "version": "1.3.1",