├── .babelrc ├── .eslintrc.js ├── .gitignore ├── .nvmrc ├── .prettierrc ├── LICENSE ├── README.md ├── example ├── .env ├── .gitignore ├── README.md ├── package.json ├── public │ ├── favicon.ico │ ├── index.html │ ├── logo192.png │ ├── logo512.png │ ├── manifest.json │ └── robots.txt ├── src │ ├── App.css │ ├── App.js │ ├── App.test.js │ ├── index.css │ ├── index.js │ ├── logo.svg │ ├── serviceWorker.js │ └── setupTests.js └── yarn.lock ├── package.json ├── src ├── aliases │ ├── index.ts │ ├── makeAliases.ts │ └── types.ts ├── components │ ├── BaseCSS │ │ ├── BaseCSS.tsx │ │ ├── index.ts │ │ └── types.ts │ ├── Col │ │ ├── Col.tsx │ │ ├── css.ts │ │ ├── getDataName.ts │ │ ├── index.ts │ │ └── types.ts │ ├── Container │ │ ├── Container.tsx │ │ ├── index.ts │ │ └── types.ts │ ├── Row │ │ ├── Row.tsx │ │ ├── css.ts │ │ ├── getDataName.ts │ │ ├── index.ts │ │ └── types.ts │ └── ThemeProvider │ │ ├── ThemeProvider.tsx │ │ ├── index.ts │ │ └── types.ts ├── index.ts ├── media │ ├── index.ts │ ├── media.ts │ └── types.ts └── utils │ ├── index.ts │ └── types.ts ├── tsconfig.json └── yarn.lock /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | "@babel/env", 4 | "@babel/typescript", 5 | "@babel/react" 6 | ], 7 | "plugins": [ 8 | "@babel/proposal-class-properties", 9 | "@babel/proposal-object-rest-spread" 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "extends": "airbnb", 3 | rules: { 4 | 'import/no-unresolved': 0, 5 | } 6 | }; 7 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | 6 | # Runtime data 7 | pids 8 | *.pid 9 | *.seed 10 | 11 | # Directory for instrumented libs generated by jscoverage/JSCover 12 | lib-cov 13 | 14 | # Coverage directory used by tools like istanbul 15 | coverage 16 | 17 | # nyc test coverage 18 | .nyc_output 19 | 20 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 21 | .grunt 22 | 23 | # node-waf configuration 24 | .lock-wscript 25 | 26 | # Cruft 27 | .DS_Store 28 | .idea 29 | 30 | # Compiled binary addons (http://nodejs.org/api/addons.html) 31 | build/Release 32 | 33 | # Dependency directories 34 | node_modules 35 | jspm_packages 36 | 37 | # Optional npm cache directory 38 | .npm 39 | 40 | # Optional REPL history 41 | .node_repl_history 42 | 43 | dist/ 44 | -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | 12.14.1 -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 100, 3 | "singleQuote": true, 4 | "trailingComma": "all" 5 | } 6 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Florent Béjina 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # styled-bootstrap-grid 2 | 3 | ![npm downloads](https://img.shields.io/npm/dt/styled-bootstrap-grid.svg?style=flat) ![npm version](https://img.shields.io/npm/v/styled-bootstrap-grid.svg?style=flat) ![definition types](https://img.shields.io/npm/types/styled-bootstrap-grid.svg) 4 | 5 | #### Credits 6 | 7 | This module is based on the [styled-components](https://www.npmjs.com/package/styled-components) module. 8 | 9 | This module is highly inspired by the awesome work done on the [react-bootstrap](https://www.npmjs.com/package/react-bootstrap) module. 10 | 11 | This module is also based on the [Twitter Bootstrap](https://getbootstrap.com/) v4.1.3 `bootstrap-grid.css`. 12 | **The css provided to styled bootstrap grid is not mine.** 13 | 14 | > For more information about how does this grid system works *(I mean with classes like containers, row, col, offset, push)* , please refer to the official [Twitter Bootstrap layout documentation](https://getbootstrap.com/docs/4.1/layout/overview/). 15 | 16 | ## Install 17 | 18 | `npm i -S styled-bootstrap-grid` 19 | 20 | ## Prerequisites 21 | 22 | `npm i -S react styled-components` 23 | 24 | > Bootstrap is developed mobile first, a strategy in which we optimize code for mobile devices first and then scale up components as necessary using CSS media queries. To ensure proper rendering and touch zooming for all devices, add the responsive viewport meta tag to your ``. 25 | > *from [Bootstrap documentation](https://getbootstrap.com/docs/4.1/getting-started/introduction/#responsive-meta-tag)* 26 | 27 | ```html 28 | 29 | ``` 30 | 31 | You also must inject the bootstrap base CSS in your application root file, like this. 32 | 33 | ```javascript 34 | // app.js 35 | 36 | import { BaseCSS } from 'styled-bootstrap-grid'; 37 | 38 | export default (props) => 39 |   40 | 41 |  ; 42 | 43 | ``` 44 | 45 | You also can inject your own css like this : 46 | 47 | ```javascript 48 | 49 | import { BaseCSS } from 'styled-bootstrap-grid'; 50 | 51 | const customCSS = ` 52 | body { 53 | color: red; 54 | } 55 | `; 56 | 57 | export default (props) => 58 |   59 | 60 |  ; 61 | ``` 62 | 63 | Basically, `BaseCSS` takes a string prop, and append the default bootstrap layout base CSS with this string. 64 | 65 | the default bootstrap layout CSS is : 66 | 67 | ```css 68 | html { 69 | -webkit-box-sizing: border-box; 70 | box-sizing: border-box; 71 | -ms-overflow-style: scrollbar; 72 | } 73 | 74 | *, 75 | *::before, 76 | *::after { 77 | -webkit-box-sizing: inherit; 78 | box-sizing: inherit; 79 | } 80 | ``` 81 | 82 | ## Basics 83 | 84 | ```javascript 85 | import React from 'react'; 86 | import { Container, Row, Col } from 'styled-bootstrap-grid'; 87 | 88 | export default (props) => 89 |   90 | 91 | 92 | 93 | Hello Bootstrap Layout 94 | 95 | 96 | 97 | 98 | 99 | 100 | Hello Bootstrap Fluid Layout 101 | 102 | 103 | 104 |  ; 105 | ``` 106 | 107 | ## Advanced 108 | 109 | ### Custom gutter 110 | 111 | The package exposes a `GridThemeProvider` that allows few custom theming properties. With this provider you can : 112 | 113 | - Define custom breakpoints 114 | - Change the `Container` padding left and right default value 115 | - Change the `Row` padding left and right default value 116 | - Change the `Col` padding left and right default value 117 | 118 | The `GridThemeProvider` can be wrapped (or wrapped-in) the `styled-component`'s `ThemeProvider`. 119 | 120 | Example : 121 | 122 | ```javascript 123 | import React from 'react'; 124 | import ReactDOM from 'react-dom'; 125 | import { GridThemeProvider } from 'styled-bootstrap-grid'; 126 | import { ThemeProvider } from 'styled-components'; 127 | 128 | import App from './whatever/app/folder'; 129 | 130 | const gridTheme = { 131 | gridColumns: 24, // default 12 132 | breakpoints: { // defaults below 133 | xxl: 1440, 134 | xl: 1200, 135 | lg: 992, 136 | md: 768, 137 | sm: 576, 138 | xs: 575, 139 | // or you can use aliases 140 | // veryGiant: 1440, 141 | // giant: 1200, 142 | // desktop: 992, 143 | // tablet: 768, 144 | // phone: 576, 145 | // smaller: 575, 146 | }, 147 | row: { 148 | padding: 10, // default 15 149 | }, 150 | col: { 151 | padding: 5, // default 15 152 | }, 153 | container: { 154 | padding: 0, // default 15 155 | maxWidth: { // defaults below 156 | xxl: 1141, 157 | xl: 1140, 158 | lg: 960, 159 | md: 720, 160 | sm: 540, 161 | xs: 540, 162 | // or you can use aliases 163 | // veryGiant: 1141, 164 | // giant: 1140, 165 | // desktop: 960, 166 | // tablet: 720, 167 | // phone: 540, 168 | // smaller: 540, 169 | }, 170 | }, 171 | }; 172 | const styledTheme = { 173 | mainColor: 'purple', 174 | } 175 | 176 | ReactDOM.render( 177 | 180 | 183 | 184 | 185 | , 186 | document.getElementById('root') 187 | ); 188 | 189 | ``` 190 | 191 | ### MediaTypes 192 | 193 | This packages also exposes the `media` element. It can be used in your styled-components like this : 194 | 195 | ```javascript 196 | import styled from 'styled-components'; 197 | import { media } from 'styled-bootstrap-grid'; 198 | 199 | const CustomDiv = styled.div` 200 | color: black; 201 | ${media.smaller` 202 | color: green; 203 | `} 204 | ${media.xs` 205 | color: green; 206 | `} 207 | ${media.phone` 208 | color: blue; 209 | `} 210 | ${media.sm` 211 | color: blue; 212 | `} 213 | ${media.tablet` 214 | color: red; 215 | `} 216 | ${media.md` 217 | color: red; 218 | `} 219 | ${media.desktop` 220 | color: purple; 221 | `} 222 | ${media.lg` 223 | color: purple; 224 | `} 225 | ${media.giant` 226 | color: yellow; 227 | `} 228 | ${media.xl` 229 | color: yellow; 230 | `} 231 | ${media.veryGiant` 232 | color: orange; 233 | `} 234 | ${media.xxl` 235 | color: orange; 236 | `} 237 | `; 238 | 239 | export default CustomDiv; 240 | ``` 241 | 242 | Using this `media` object will help you to build media-queries that will fit the same way as Bootstrap do. 243 | 244 | | name | *aliases* | css generated | 245 | | - | - | - | 246 | | xs | smaller | all sizes: `@media (max-width: 575px) { /* */ }` | 247 | | sm | phone | `@media (min-width: 576px) { /* */ }` | 248 | | md | tablet | `@media (min-width: 768px) { /* */ }` | 249 | | lg | desktop | `@media (min-width: 992px) { /* */ }` | 250 | | xl | giant | `@media (min-width: 1200px) { /* */ }` | 251 | | xxl | veryGiant | `@media (min-width: 1440px) { /* */ }` | 252 | 253 | ## Props definition 254 | 255 | ### GridThemeProvider 256 | 257 | | props | default | type | description | 258 | | - | - | - | - | 259 | | gridTheme | undefined | Object | See description below(*) | 260 | 261 | (*) 262 | 263 | ```javascript 264 | 265 | const gridTheme = { 266 | gridColumns: 12, // default 12 267 | breakpoints: { // defaults below 268 | xxl: 1440, 269 | xl: 1200, 270 | lg: 992, 271 | md: 768, 272 | sm: 576, 273 | xs: 575, 274 | // or you can use aliases 275 | // veryGiant: 1440, 276 | // giant: 1200, 277 | // desktop: 992, 278 | // tablet: 768, 279 | // phone: 576, 280 | // smaller: 575, 281 | }, 282 | row: { 283 | padding: 10, // default 15 284 | }, 285 | col: { 286 | padding: 5, // default 15 287 | }, 288 | container: { 289 | padding: 0, // default 15 290 | maxWidth: { // defaults below 291 | xxl: 1141, 292 | xl: 1140, 293 | lg: 960, 294 | md: 720, 295 | sm: 540, 296 | xs: 540, 297 | // or you can use aliases 298 | // veryGiant: 1141, 299 | // giant: 1140, 300 | // desktop: 960, 301 | // tablet: 720, 302 | // phone: 540, 303 | // smaller: 540, 304 | }, 305 | }, 306 | } 307 | 308 | ``` 309 | 310 | ### Container 311 | 312 | | props | default | type | description | 313 | | - | - | - | - | 314 | | fluid | false | boolean | Equivalent to `container` and `container-fluid` | 315 | 316 | Plus the ones inherited from [styled-components](https://www.npmjs.com/package/styled-components) `div`. 317 | 318 | ### Row 319 | 320 | | props | default | type | description | 321 | | - | - | - | - | 322 | | alignItems | `undefined` | `string` | `start` or `end` or `center` or `baseline` or `stretch`. Equivalent to `align-items-{value}` | 323 | | smAlignItems | `undefined` | `string` | `start` or `end` or `center` or `baseline` or `stretch`. Equivalent to `align-items-sm-{value}` | 324 | | mdAlignItems | `undefined` | `string` | `start` or `end` or `center` or `baseline` or `stretch`. Equivalent to `align-items-md-{value}` | 325 | | lgAlignItems | `undefined` | `string` | `start` or `end` or `center` or `baseline` or `stretch`. Equivalent to `align-items-lg-{value}` | 326 | | xlAlignItems | `undefined` | `string` | `start` or `end` or `center` or `baseline` or `stretch`. Equivalent to `align-items-xl-{value}` | 327 | | justifyContent | `undefined` | `string` | `start` or `end` or `center` or `between` or `around`. Equivalent to `justify-content-{value}` | 328 | | smJustifyContent | `undefined` | `string` | `start` or `end` or `center` or `between` or `around`. Equivalent to `justify-content-sm-{value}` | 329 | | mdJustifyContent | `undefined` | `string` | `start` or `end` or `center` or `between` or `around`. Equivalent to `justify-content-md-{value}` | 330 | | lgJustifyContent | `undefined` | `string` | `start` or `end` or `center` or `between` or `around`. Equivalent to `justify-content-lg-{value}` | 331 | | xlJustifyContent | `undefined` | `string` | `start` or `end` or `center` or `between` or `around`. Equivalent to `justify-content-xl-{value}` | 332 | 333 | Plus the ones inherited from [styled-components](https://www.npmjs.com/package/styled-components) `div`. 334 | 335 | ### Col 336 | 337 | | props | default | type | description | 338 | | - | - | - | - | 339 | | col | `undefined` | `number` *or* `string` *or* `boolean` | Goes from 1 to 12. Equivalent to `col-*` (or `col` in case of `true`) | 340 | | offset | `undefined` | `number` *or* `string` | Goes from 0 to 11. Equivalent to `offset-*` | 341 | | auto | `undefined` | `boolean` | Equivalent to `col-auto` | 342 | | alignSelf | `undefined` | `string` | `auto` or `start` or `end` or `center` or `baseline` or `stretch`. Equivalent to `align-self-{value}` | 343 | | order | `undefined` | `number` *or* `string` | `first` or `last` or `0` to `12`. Equivalent to `order-{value}` | 344 | | noGutter | `undefined` | `boolean` | Equivalent to `no-gutter` | 345 | | sm | `undefined` | `number` *or* `string` | Goes from 1 to 12. Equivalent to `col-sm-*` (or `col-sm` in case of `true`) | 346 | | hiddenXsUp | `undefined` | `boolean` | Hides content from xs breakpoint to infinity | 347 | | hiddenXsDown | `undefined` | `boolean` | Hides content from xs breakpoint to 0 | 348 | | smOffset | `undefined` | `number` *or* `string` | Goes from 0 to 11. Equivalent to `offset-sm-*` | 349 | | smAuto | `undefined` | `boolean` | Equivalent to `col-sm-auto` | 350 | | smAlignSelf | `undefined` | `string` | `auto` or `start` or `end` or `center` or `baseline` or `stretch`. Equivalent to `align-self-sm-{value}` | 351 | | smOrder | `undefined` | `number` *or* `string` | `first` or `last` or `0` to `12`. Equivalent to `order-sm-{value}` | 352 | | hiddenSmUp | `undefined` | `boolean` | Hides content from sm breakpoint to infinity | 353 | | hiddenSmDown | `undefined` | `boolean` | Hides content from sm breakpoint to 0 | 354 | | md | `undefined` | `number` *or* `string` | Goes from 1 to 12. Equivalent to `col-md-*` (or `col-md` in case of `true`) | 355 | | mdOffset | `undefined` | `number` *or* `string` | Goes from 0 to 11. Equivalent to `offset-md-*` | 356 | | mdAuto | `undefined` | `boolean` | Equivalent to `col-md-auto` | 357 | | mdAlignSelf | `undefined` | `string` | `auto` or `start` or `end` or `center` or `baseline` or `stretch`. Equivalent to `align-self-md-{value}` | 358 | | mdOrder | `undefined` | `number` *or* `string` | `first` or `last` or `0` to `12`. Equivalent to `order-md-{value}` | 359 | | hiddenMdUp | `undefined` | `boolean` | Hides content from md breakpoint to infinity | 360 | | hiddenMdDown | `undefined` | `boolean` | Hides content from md breakpoint to 0 | 361 | | lg | `undefined` | `number` *or* `string` | Goes from 1 to 12. Equivalent to `col-lg-*` (or `col-lg` in case of `true`) | 362 | | lgOffset | `undefined` | `number` *or* `string` | Goes from 0 to 11. Equivalent to `offset-lg-*` | 363 | | lgAuto | `undefined` | `boolean` | Equivalent to `col-lg-auto` | 364 | | lgAlignSelf | `undefined` | `string` | `auto` or `start` or `end` or `center` or `baseline` or `stretch`. Equivalent to `align-self-lg-{value}` | 365 | | lgOrder | `undefined` | `number` *or* `string` | `first` or `last` or `0` to `12`. Equivalent to `order-lg-{value}` | 366 | | hiddenLgUp | `undefined` | `boolean` | Hides content from lg breakpoint to infinity | 367 | | hiddenLgDown | `undefined` | `boolean` | Hides content from lg breakpoint to 0 | 368 | | xl | `undefined` | `number` *or* `string` | Goes from 1 to 12. Equivalent to `col-xl-*` (or `col-xl` in case of `true`) | 369 | | xlOffset | `undefined` | `number` *or* `string` | Goes from 0 to 11. Equivalent to `offset-xl-*` | 370 | | xlAuto | `undefined` | `boolean` | Equivalent to `col-xl-auto` | 371 | | xlAlignSelf | `undefined` | `string` | `auto` or `start` or `end` or `center` or `baseline` or `stretch`. Equivalent to `align-self-xl-{value}` | 372 | | xlOrder | `undefined` | `number` *or* `string` | `first` or `last` or `0` to `12`. Equivalent to `order-xl-{value}` | 373 | | hiddenXlUp | `undefined` | `boolean` | Hides content from xl breakpoint to infinity | 374 | | hiddenXlDown | `undefined` | `boolean` | Hides content from xl breakpoint to 0 | 375 | 376 | Plus the ones inherited from [styled-components](https://www.npmjs.com/package/styled-components) `div`. 377 | 378 | ## Run example 379 | 380 | To run the example 381 | 382 | 1. Open a terminal and go to `example`'s directory with `cd /example` 383 | 2. Install `example`'s dependencies with `yarn` 384 | 3. Run `yarn start` 385 | 386 | ## Dependencies 387 | 388 | - [react](https://www.npmjs.com/package/react) 389 | - [styled-components](https://www.npmjs.com/package/styled-components) 390 | 391 | ## todo 392 | 393 | - complete web documentation 394 | 395 | Any other idea ? 396 | Please [leave a suggestion](https://github.com/dragma/styled-bootstrap-grid/issues). 397 | -------------------------------------------------------------------------------- /example/.env: -------------------------------------------------------------------------------- 1 | SKIP_PREFLIGHT_CHECK=true -------------------------------------------------------------------------------- /example/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /example/README.md: -------------------------------------------------------------------------------- 1 | This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). 2 | 3 | ## Available Scripts 4 | 5 | In the project directory, you can run: 6 | 7 | ### `yarn start` 8 | 9 | Runs the app in the development mode.
10 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser. 11 | 12 | The page will reload if you make edits.
13 | You will also see any lint errors in the console. 14 | 15 | ### `yarn test` 16 | 17 | Launches the test runner in the interactive watch mode.
18 | See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. 19 | 20 | ### `yarn build` 21 | 22 | Builds the app for production to the `build` folder.
23 | It correctly bundles React in production mode and optimizes the build for the best performance. 24 | 25 | The build is minified and the filenames include the hashes.
26 | Your app is ready to be deployed! 27 | 28 | See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. 29 | 30 | ### `yarn eject` 31 | 32 | **Note: this is a one-way operation. Once you `eject`, you can’t go back!** 33 | 34 | If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. 35 | 36 | Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own. 37 | 38 | You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it. 39 | 40 | ## Learn More 41 | 42 | You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). 43 | 44 | To learn React, check out the [React documentation](https://reactjs.org/). 45 | 46 | ### Code Splitting 47 | 48 | This section has moved here: https://facebook.github.io/create-react-app/docs/code-splitting 49 | 50 | ### Analyzing the Bundle Size 51 | 52 | This section has moved here: https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size 53 | 54 | ### Making a Progressive Web App 55 | 56 | This section has moved here: https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app 57 | 58 | ### Advanced Configuration 59 | 60 | This section has moved here: https://facebook.github.io/create-react-app/docs/advanced-configuration 61 | 62 | ### Deployment 63 | 64 | This section has moved here: https://facebook.github.io/create-react-app/docs/deployment 65 | 66 | ### `yarn build` fails to minify 67 | 68 | This section has moved here: https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify 69 | -------------------------------------------------------------------------------- /example/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "example", 3 | "version": "0.1.0", 4 | "private": true, 5 | "dependencies": { 6 | "@testing-library/jest-dom": "^4.2.4", 7 | "@testing-library/react": "^9.3.2", 8 | "@testing-library/user-event": "^7.1.2", 9 | "react": "^16.13.0", 10 | "react-dom": "^16.13.0", 11 | "react-scripts": "3.4.0", 12 | "styled-bootstrap-grid": "link:../", 13 | "styled-components": "^5.0.1" 14 | }, 15 | "scripts": { 16 | "start": "react-scripts start", 17 | "build": "react-scripts build", 18 | "test": "react-scripts test", 19 | "eject": "react-scripts eject" 20 | }, 21 | "eslintConfig": { 22 | "extends": "react-app" 23 | }, 24 | "browserslist": { 25 | "production": [ 26 | ">0.2%", 27 | "not dead", 28 | "not op_mini all" 29 | ], 30 | "development": [ 31 | "last 1 chrome version", 32 | "last 1 firefox version", 33 | "last 1 safari version" 34 | ] 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /example/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragma/styled-bootstrap-grid/2605284155296fb24584105e608bb66df0099c07/example/public/favicon.ico -------------------------------------------------------------------------------- /example/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 12 | 13 | 17 | 18 | 27 | React App 28 | 29 | 30 | 31 |
32 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /example/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragma/styled-bootstrap-grid/2605284155296fb24584105e608bb66df0099c07/example/public/logo192.png -------------------------------------------------------------------------------- /example/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dragma/styled-bootstrap-grid/2605284155296fb24584105e608bb66df0099c07/example/public/logo512.png -------------------------------------------------------------------------------- /example/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | }, 10 | { 11 | "src": "logo192.png", 12 | "type": "image/png", 13 | "sizes": "192x192" 14 | }, 15 | { 16 | "src": "logo512.png", 17 | "type": "image/png", 18 | "sizes": "512x512" 19 | } 20 | ], 21 | "start_url": ".", 22 | "display": "standalone", 23 | "theme_color": "#000000", 24 | "background_color": "#ffffff" 25 | } 26 | -------------------------------------------------------------------------------- /example/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /example/src/App.css: -------------------------------------------------------------------------------- 1 | .App { 2 | text-align: center; 3 | } 4 | 5 | .App-logo { 6 | height: 40vmin; 7 | pointer-events: none; 8 | } 9 | 10 | @media (prefers-reduced-motion: no-preference) { 11 | .App-logo { 12 | animation: App-logo-spin infinite 20s linear; 13 | } 14 | } 15 | 16 | .App-header { 17 | background-color: #282c34; 18 | min-height: 100vh; 19 | display: flex; 20 | flex-direction: column; 21 | align-items: center; 22 | justify-content: center; 23 | font-size: calc(10px + 2vmin); 24 | color: white; 25 | } 26 | 27 | .App-link { 28 | color: #61dafb; 29 | } 30 | 31 | @keyframes App-logo-spin { 32 | from { 33 | transform: rotate(0deg); 34 | } 35 | to { 36 | transform: rotate(360deg); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /example/src/App.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import styled from 'styled-components'; 3 | 4 | import { 5 | Container, Row, Col, BaseCSS, 6 | } from 'styled-bootstrap-grid'; 7 | 8 | const TitleRow = styled(Row)` 9 | margin-bottom: 10px; 10 | `; 11 | const Pre = styled.pre` 12 | display: inline-block; 13 | width: 100%; 14 | background-color: #EEE; 15 | margin: 0; 16 | padding: 10px; 17 | white-space: normal; 18 | `; 19 | 20 | const customCss = ` 21 | h3{ 22 | font-family: 'Mali', cursive; 23 | } 24 | `; 25 | 26 | const App = props => ( 27 | 28 | 29 | 30 | 31 |

Auto-layout columns: Equal-width

32 | Bootstrap documentation 33 | 34 |
35 | 36 | 37 |
 38 |           <div class="col-5" />
 39 |         
40 | 41 | 42 |
 43 |           <div class="col-4" />
 44 |         
45 | 46 |
47 | 48 | 49 |

Auto-layout columns: Setting one column width

50 | Bootstrap documentation 51 | 52 |
53 | 54 | 55 |
 56 |           <div class="col" />
 57 |         
58 | 59 | 60 |
 61 |           <div class="col-2" />
 62 |         
63 | 64 | 65 |
 66 |           <div class="col" />
 67 |         
68 | 69 |
70 | 71 | 72 |

Auto-layout columns: Variable width content

73 | Bootstrap documentation 74 | 75 |
76 | 77 | 78 |
 79 |           <div class="col col-xl-2" />
 80 |         
81 | 82 | 83 |
 84 |           <div class=" col col-xl-auto" />
 85 |         
86 | 87 | 88 |
 89 |           <div class="col col-xl-2" />
 90 |         
91 | 92 |
93 | 94 | 95 |

Auto-layout columns: Stacked to horizontal

96 | Bootstrap documentation 97 | 98 |
99 | 100 | 101 |
102 |           <div class="col col-xl" />
103 |         
104 | 105 | 106 |
107 |           <div class=" col-2 col-xl" />
108 |         
109 | 110 | 111 |
112 |           <div class="col col-xl" />
113 |         
114 | 115 |
116 | 117 | 118 |

Alignment: Vertical alignment

119 | Bootstrap documentation 120 | 121 |
122 | 123 | 124 |
125 |           <div class="row align-items-start" >
126 |         
127 |
128 |             <div class="col-6 offset-6" />
129 |         
130 |
131 |           </div>
132 |         
133 | 134 | 135 |
136 |           <div class="col-6 offset-6" />
137 |         
138 | 139 |
140 |
141 | 142 | 143 |
144 |           <div class="row align-items-center align-items-sm-center" >
145 |         
146 |
147 |             <div class="col-6 offset-6" />
148 |         
149 |
150 |           </div>
151 |         
152 | 153 | 154 |
155 |           <div class="col-6 offset-6" />
156 |         
157 | 158 |
159 |
160 | 161 | 162 |
163 |           <div class="row align-items-end" >
164 |         
165 |
166 |             <div class="col-6 offset-6" />
167 |         
168 |
169 |           </div>
170 |         
171 | 172 | 173 |
174 |           <div class="col-6 offset-6" />
175 |         
176 | 177 |
178 |
179 | 180 | 181 |
182 |           <div class="row align-items-baseline" >
183 |         
184 |
185 |             <div class="col-6 offset-6" />
186 |         
187 |
188 |           </div>
189 |         
190 | 191 | 192 |
193 |           <div class="col-6 offset-6" />
194 |         
195 | 196 |
197 |
198 | 199 | 200 |
201 |           <div class="row align-items-stretch" >
202 |         
203 |
204 |             <div class="col-6 offset-6" />
205 |         
206 |
207 |           </div>
208 |         
209 | 210 | 211 |
212 |           <div class="col-6 offset-6 " />
213 |         
214 | 215 |
216 |
217 | 218 | 219 |
220 |           <div class="col align-self-start" />
221 |         
222 | 223 | 224 |
225 |           <div class="col align-self-center" />
226 |         
227 | 228 | 229 |
230 |           <div class="col align-self-end" />
231 |         
232 | 233 |
234 | 235 | 236 |

Alignment: Horizontal alignment

237 | Bootstrap documentation 238 | 239 |
240 | 241 | 242 |
243 |           <div class="row justify-content-start" >
244 |         
245 |
246 |             <div class="col-6 offset-6" />
247 |         
248 |
249 |           </div>
250 |         
251 | 252 | 253 |
254 |           <div class="col-6 offset-6" />
255 |         
256 | 257 |
258 |
259 | 260 | 261 |
262 |           <div class="row justify-content-end justify-content-sm-end" >
263 |         
264 |
265 |             <div class="col-6 offset-6" />
266 |         
267 |
268 |           </div>
269 |         
270 | 271 | 272 |
273 |           <div class="col-6 offset-6" />
274 |         
275 | 276 |
277 |
278 | 279 | 280 |
281 |           <div class="row justify-content-center" >
282 |         
283 |
284 |             <div class="col-6 offset-6" />
285 |         
286 |
287 |           </div>
288 |         
289 | 290 | 291 |
292 |           <div class="col-6 offset-6" />
293 |         
294 | 295 |
296 |
297 | 298 | 299 |
300 |           <div class="row justify-content-between" >
301 |         
302 |
303 |             <div class="col-6 offset-6" />
304 |         
305 |
306 |           </div>
307 |         
308 | 309 | 310 |
311 |           <div class="col-6 offset-6" />
312 |         
313 | 314 |
315 |
316 | 317 | 318 |
319 |           <div class="row justify-content-around" >
320 |         
321 |
322 |             <div class="col-6 offset-6" />
323 |         
324 |
325 |           </div>
326 |         
327 | 328 | 329 |
330 |           <div class="col-6 offset-6" />
331 |         
332 | 333 |
334 | 335 | 336 |

Reordering: Order classes

337 | Bootstrap documentation 338 | 339 |
340 | 341 | 342 | Fourth, but first 343 |
344 |           <div class="col order-last order-xl-last" />
345 |         
346 | 347 | 348 | Second, but unordered 349 |
350 |           <div class="col" />
351 |         
352 | 353 | 354 | Third, but unordered 355 |
356 |           <div class="col" />
357 |         
358 | 359 | 360 | first, but Fourth 361 |
362 |           <div class="col order-first order-xl-first" />
363 |         
364 | 365 |
366 | 367 | 368 |

Offsetting columns: Offset classes

369 | Bootstrap documentation 370 | 371 |
372 | 373 | 374 |
375 |           <div class="col-6 offset-6" />
376 |         
377 | 378 |
379 | 380 | 381 |
382 |           <div class="col-sm-6 offset-sm-3 col-12 col-xl-5 offset-xl-0" />
383 |         
384 | 385 |
386 | 387 | 388 |

Responsive utilities

389 | Bootstrap documentation 390 | 391 | 392 | 393 |
394 | Will be deprecated soon 395 | 399 |
400 | 401 |
402 | 403 | 404 |
405 |           <div class="hidden-xs-down" />
406 |         
407 | 408 | 409 |
410 |           <div class="hidden-xs-up" />
411 |         
412 | 413 |
414 | 415 | 416 |
417 |           <div class="hidden-sm-down" />
418 |         
419 | 420 | 421 |
422 |           <div class="hidden-sm-up" />
423 |         
424 | 425 |
426 | 427 | 428 |
429 |           <div class="hidden-md-down" />
430 |         
431 | 432 | 433 |
434 |           <div class="hidden-md-up" />
435 |         
436 | 437 |
438 | 439 | 440 |
441 |           <div class="hidden-lg-down" />
442 |         
443 | 444 | 445 |
446 |           <div class="hidden-lg-up" />
447 |         
448 | 449 |
450 | 451 | 452 |
453 |           <div class="hidden-xl-down" />
454 |         
455 | 456 | 457 |
458 |           <div class="hidden-xl-up" />
459 |         
460 | 461 |
462 |
463 | ); 464 | 465 | export default App; 466 | -------------------------------------------------------------------------------- /example/src/App.test.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { render } from '@testing-library/react'; 3 | import App from './App'; 4 | 5 | test('renders learn react link', () => { 6 | const { getByText } = render(); 7 | const linkElement = getByText(/learn react/i); 8 | expect(linkElement).toBeInTheDocument(); 9 | }); 10 | -------------------------------------------------------------------------------- /example/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /example/src/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import { ThemeProvider } from 'styled-components'; 4 | import { GridThemeProvider } from 'styled-bootstrap-grid'; 5 | 6 | import './index.css'; 7 | import App from './App'; 8 | import * as serviceWorker from './serviceWorker'; 9 | 10 | 11 | const theme = { 12 | gridColumns: 12, 13 | row: { 14 | padding: 10, 15 | }, 16 | col: { 17 | padding: 10, 18 | }, 19 | container: { 20 | padding: 10, 21 | maxWidth: { 22 | md: 700, 23 | xl: 800, 24 | xxl: 1141, 25 | }, 26 | }, 27 | }; 28 | 29 | ReactDOM.render( 30 | 31 | 32 | 33 | 34 | , 35 | document.getElementById('root'), //eslint-disable-line 36 | ); 37 | 38 | // If you want your app to work offline and load faster, you can change 39 | // unregister() to register() below. Note this comes with some pitfalls. 40 | // Learn more about service workers: https://bit.ly/CRA-PWA 41 | serviceWorker.unregister(); 42 | -------------------------------------------------------------------------------- /example/src/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /example/src/serviceWorker.js: -------------------------------------------------------------------------------- 1 | // This optional code is used to register a service worker. 2 | // register() is not called by default. 3 | 4 | // This lets the app load faster on subsequent visits in production, and gives 5 | // it offline capabilities. However, it also means that developers (and users) 6 | // will only see deployed updates on subsequent visits to a page, after all the 7 | // existing tabs open on the page have been closed, since previously cached 8 | // resources are updated in the background. 9 | 10 | // To learn more about the benefits of this model and instructions on how to 11 | // opt-in, read https://bit.ly/CRA-PWA 12 | 13 | const isLocalhost = Boolean( 14 | window.location.hostname === 'localhost' || 15 | // [::1] is the IPv6 localhost address. 16 | window.location.hostname === '[::1]' || 17 | // 127.0.0.0/8 are considered localhost for IPv4. 18 | window.location.hostname.match( 19 | /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/ 20 | ) 21 | ); 22 | 23 | export function register(config) { 24 | if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) { 25 | // The URL constructor is available in all browsers that support SW. 26 | const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href); 27 | if (publicUrl.origin !== window.location.origin) { 28 | // Our service worker won't work if PUBLIC_URL is on a different origin 29 | // from what our page is served on. This might happen if a CDN is used to 30 | // serve assets; see https://github.com/facebook/create-react-app/issues/2374 31 | return; 32 | } 33 | 34 | window.addEventListener('load', () => { 35 | const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`; 36 | 37 | if (isLocalhost) { 38 | // This is running on localhost. Let's check if a service worker still exists or not. 39 | checkValidServiceWorker(swUrl, config); 40 | 41 | // Add some additional logging to localhost, pointing developers to the 42 | // service worker/PWA documentation. 43 | navigator.serviceWorker.ready.then(() => { 44 | console.log( 45 | 'This web app is being served cache-first by a service ' + 46 | 'worker. To learn more, visit https://bit.ly/CRA-PWA' 47 | ); 48 | }); 49 | } else { 50 | // Is not localhost. Just register service worker 51 | registerValidSW(swUrl, config); 52 | } 53 | }); 54 | } 55 | } 56 | 57 | function registerValidSW(swUrl, config) { 58 | navigator.serviceWorker 59 | .register(swUrl) 60 | .then(registration => { 61 | registration.onupdatefound = () => { 62 | const installingWorker = registration.installing; 63 | if (installingWorker == null) { 64 | return; 65 | } 66 | installingWorker.onstatechange = () => { 67 | if (installingWorker.state === 'installed') { 68 | if (navigator.serviceWorker.controller) { 69 | // At this point, the updated precached content has been fetched, 70 | // but the previous service worker will still serve the older 71 | // content until all client tabs are closed. 72 | console.log( 73 | 'New content is available and will be used when all ' + 74 | 'tabs for this page are closed. See https://bit.ly/CRA-PWA.' 75 | ); 76 | 77 | // Execute callback 78 | if (config && config.onUpdate) { 79 | config.onUpdate(registration); 80 | } 81 | } else { 82 | // At this point, everything has been precached. 83 | // It's the perfect time to display a 84 | // "Content is cached for offline use." message. 85 | console.log('Content is cached for offline use.'); 86 | 87 | // Execute callback 88 | if (config && config.onSuccess) { 89 | config.onSuccess(registration); 90 | } 91 | } 92 | } 93 | }; 94 | }; 95 | }) 96 | .catch(error => { 97 | console.error('Error during service worker registration:', error); 98 | }); 99 | } 100 | 101 | function checkValidServiceWorker(swUrl, config) { 102 | // Check if the service worker can be found. If it can't reload the page. 103 | fetch(swUrl, { 104 | headers: { 'Service-Worker': 'script' } 105 | }) 106 | .then(response => { 107 | // Ensure service worker exists, and that we really are getting a JS file. 108 | const contentType = response.headers.get('content-type'); 109 | if ( 110 | response.status === 404 || 111 | (contentType != null && contentType.indexOf('javascript') === -1) 112 | ) { 113 | // No service worker found. Probably a different app. Reload the page. 114 | navigator.serviceWorker.ready.then(registration => { 115 | registration.unregister().then(() => { 116 | window.location.reload(); 117 | }); 118 | }); 119 | } else { 120 | // Service worker found. Proceed as normal. 121 | registerValidSW(swUrl, config); 122 | } 123 | }) 124 | .catch(() => { 125 | console.log( 126 | 'No internet connection found. App is running in offline mode.' 127 | ); 128 | }); 129 | } 130 | 131 | export function unregister() { 132 | if ('serviceWorker' in navigator) { 133 | navigator.serviceWorker.ready 134 | .then(registration => { 135 | registration.unregister(); 136 | }) 137 | .catch(error => { 138 | console.error(error.message); 139 | }); 140 | } 141 | } 142 | -------------------------------------------------------------------------------- /example/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom/extend-expect'; 6 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "styled-bootstrap-grid", 3 | "version": "3.1.2", 4 | "description": "bootstrap grid system using styled components", 5 | "main": "./dist/index.js", 6 | "types": "./dist/index.d.ts", 7 | "files": [ 8 | "dist/" 9 | ], 10 | "scripts": { 11 | "type-check": "tsc --noEmit", 12 | "type-check:watch": "npm run type-check -- --watch", 13 | "build": "rm -rf dist/ && npm run build:types && npm run build:js", 14 | "build:types": "tsc --emitDeclarationOnly", 15 | "build:js": "babel src --out-dir dist --extensions \".ts,.tsx\"", 16 | "prepublishOnly": "npm run build", 17 | "format": "prettier --write 'src/**/*.{ts,tsx,js,jsx,json}'" 18 | }, 19 | "repository": { 20 | "type": "git", 21 | "url": "git+https://github.com/dragma/styled-bootstrap-grid.git" 22 | }, 23 | "keywords": [ 24 | "styled-components", 25 | "bootstrap", 26 | "react-bootstrap", 27 | "layout", 28 | "grid", 29 | "grid system", 30 | "styled grid", 31 | "styled layout", 32 | "styled bootstrap grid" 33 | ], 34 | "author": "Florent Béjina", 35 | "license": "MIT", 36 | "bugs": { 37 | "url": "https://github.com/dragma/styled-bootstrap-grid/issues" 38 | }, 39 | "homepage": "https://github.com/dragma/styled-bootstrap-grid#readme", 40 | "peerDependencies": { 41 | "react": "^0.14.0 || >=16", 42 | "styled-components": ">=4" 43 | }, 44 | "devDependencies": { 45 | "@babel/cli": "^7.1.5", 46 | "@babel/core": "^7.1.6", 47 | "@babel/plugin-proposal-class-properties": "^7.1.0", 48 | "@babel/plugin-proposal-object-rest-spread": "^7.0.0", 49 | "@babel/preset-env": "^7.1.6", 50 | "@babel/preset-react": "^7.0.0", 51 | "@babel/preset-typescript": "^7.1.0", 52 | "@types/react": "^16.7.11", 53 | "@types/react-dom": "^16.0.11", 54 | "@types/styled-components": "^4.1.2", 55 | "eslint": "^5.9.0", 56 | "eslint-config-airbnb": "^17.1.0", 57 | "eslint-plugin-import": "^2.14.0", 58 | "eslint-plugin-jsx-a11y": "^6.1.2", 59 | "eslint-plugin-react": "^7.11.1", 60 | "prettier": "^1.15.3", 61 | "typescript": "^3.2.1" 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /src/aliases/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './makeAliases'; 2 | export * from './types'; 3 | -------------------------------------------------------------------------------- /src/aliases/makeAliases.ts: -------------------------------------------------------------------------------- 1 | import { MakeAliases } from './types'; 2 | import { Media, MediaLabels, MediaAliases } from '../media/types'; 3 | 4 | const makeAliases: MakeAliases = (breakpoints = {}) => { 5 | const data = Object.assign({}, breakpoints); 6 | const breakpointsKeys = Object.keys(breakpoints) as Media[]; 7 | 8 | breakpointsKeys.forEach((key: Media) => { 9 | const key1 = key as keyof typeof MediaLabels; 10 | const key2 = key as keyof typeof MediaAliases; 11 | 12 | if (MediaLabels[key1]) { 13 | data[MediaLabels[key1]] = breakpoints[key]; 14 | } 15 | 16 | if (MediaAliases[key2] && !data[MediaAliases[key2]]) { 17 | data[MediaAliases[key2]] = breakpoints[key]; 18 | } 19 | }); 20 | 21 | return data; 22 | }; 23 | 24 | export default makeAliases; 25 | -------------------------------------------------------------------------------- /src/aliases/types.ts: -------------------------------------------------------------------------------- 1 | import { PartialBreakpoints } from '../components/ThemeProvider'; 2 | 3 | export type MakeAliases = (breakpoints: PartialBreakpoints | undefined) => PartialBreakpoints; 4 | -------------------------------------------------------------------------------- /src/components/BaseCSS/BaseCSS.tsx: -------------------------------------------------------------------------------- 1 | import { createGlobalStyle } from 'styled-components'; 2 | 3 | import { BaseCSSProps } from './types'; 4 | 5 | export default createGlobalStyle` 6 | html { 7 | -webkit-box-sizing: border-box; 8 | box-sizing: border-box; 9 | -ms-overflow-style: scrollbar; 10 | } 11 | 12 | *, 13 | *::before, 14 | *::after { 15 | -webkit-box-sizing: inherit; 16 | box-sizing: inherit; 17 | } 18 | 19 | ${p => p.css} 20 | `; 21 | -------------------------------------------------------------------------------- /src/components/BaseCSS/index.ts: -------------------------------------------------------------------------------- 1 | export * from './types'; 2 | export { default } from './BaseCSS'; 3 | -------------------------------------------------------------------------------- /src/components/BaseCSS/types.ts: -------------------------------------------------------------------------------- 1 | export interface BaseCSSProps { 2 | css?: string; 3 | } 4 | -------------------------------------------------------------------------------- /src/components/Col/Col.tsx: -------------------------------------------------------------------------------- 1 | import styled from 'styled-components'; 2 | 3 | import css from './css'; 4 | import getDataName from './getDataName'; 5 | import { isNumber } from '../../utils'; 6 | import media from '../../media'; 7 | import { ColProps } from './types'; 8 | import { Theme } from '../ThemeProvider/types' 9 | 10 | const getGridColumns = (theme: Theme): number => { 11 | if (!theme.styledBootstrapGrid) { 12 | return 12; 13 | } 14 | return theme.styledBootstrapGrid.getGridColumns(); 15 | } 16 | 17 | export default styled.div.attrs(props => ({ 18 | 'data-name': getDataName(props), 19 | }))` 20 | position: relative; 21 | width: 100%; 22 | min-height: 1px; 23 | padding-right: ${p => { 24 | if (!p.theme || !p.theme.styledBootstrapGrid || !p.theme.styledBootstrapGrid.getColPadding) { 25 | return 15; 26 | } 27 | return p.theme.styledBootstrapGrid.getColPadding(); 28 | }}px; 29 | padding-left: ${p => { 30 | if (!p.theme || !p.theme.styledBootstrapGrid || !p.theme.styledBootstrapGrid.getColPadding) { 31 | return 15; 32 | } 33 | return p.theme.styledBootstrapGrid.getColPadding(); 34 | }}px; 35 | 36 | ${p => p.noGutter && css.noGutter} 37 | 38 | ${p => p.col && css.col(p.col, getGridColumns(p.theme))} 39 | ${p => typeof p.offset !== 'undefined' && css.offset(p.offset, getGridColumns(p.theme))} 40 | ${p => p.auto && css.col('auto', 0)} 41 | ${p => p.alignSelf && css.alignSelf[p.alignSelf]} 42 | ${p => p.order && css.order(p.order)} 43 | 44 | ${p => p.xs && media.xs`${css.col(p.xs, getGridColumns(p.theme))}`} 45 | ${p => typeof p.xsOffset !== 'undefined' && isNumber(p.xsOffset) && media.xs`${css.offset(p.xsOffset, getGridColumns(p.theme))}`} 46 | ${p => p.xsAuto && media.xs`${css.col('auto', 0)}`} 47 | ${p => p.xsAlignSelf && media.xs`${css.alignSelf[p.xsAlignSelf]}`} 48 | ${p => p.xsOrder && media.xs`${css.order(p.xsOrder)}`} 49 | ${p => p.hiddenXsDown && media.max.xs`${css.display.none}`} 50 | ${p => p.hiddenXsUp && media.min.xs`${css.display.none}`} 51 | 52 | ${p => p.sm && media.sm`${css.col(p.sm, getGridColumns(p.theme))}`} 53 | ${p => typeof p.smOffset !== 'undefined' && isNumber(p.smOffset) && media.sm`${css.offset(p.smOffset, getGridColumns(p.theme))}`} 54 | ${p => p.smAuto && media.sm`${css.col('auto', 0)}`} 55 | ${p => p.smAlignSelf && media.sm`${css.alignSelf[p.smAlignSelf]}`} 56 | ${p => p.smOrder && media.sm`${css.order(p.smOrder)}`} 57 | ${p => p.hiddenSmDown && media.max.sm`${css.display.none}`} 58 | ${p => p.hiddenSmUp && media.min.sm`${css.display.none}`} 59 | 60 | ${p => p.md && media.md`${css.col(p.md, getGridColumns(p.theme))}`} 61 | ${p => typeof p.mdOffset !== 'undefined' && isNumber(p.mdOffset) && media.md`${css.offset(p.mdOffset, getGridColumns(p.theme))}`} 62 | ${p => p.mdAuto && media.md`${css.col('auto')}`} 63 | ${p => p.mdAlignSelf && media.md`${css.alignSelf[p.mdAlignSelf]}`} 64 | ${p => p.mdOrder && media.md`${css.order(p.mdOrder)}`} 65 | ${p => p.hiddenMdDown && media.max.md`${css.display.none}`} 66 | ${p => p.hiddenMdUp && media.min.md`${css.display.none}`} 67 | 68 | ${p => p.lg && media.lg`${css.col(p.lg, getGridColumns(p.theme))}`} 69 | ${p => typeof p.lgOffset !== 'undefined' && isNumber(p.lgOffset) && media.lg`${css.offset(p.lgOffset, getGridColumns(p.theme))}`} 70 | ${p => p.lgAuto && media.lg`${css.col('auto')}`} 71 | ${p => p.lgAlignSelf && media.lg`${css.alignSelf[p.lgAlignSelf]}`} 72 | ${p => p.lgOrder && media.lg`${css.order(p.lgOrder)}`} 73 | ${p => p.hiddenLgDown && media.max.lg`${css.display.none}`} 74 | ${p => p.hiddenLgUp && media.min.lg`${css.display.none}`} 75 | 76 | ${p => p.xl && media.xl`${css.col(p.xl, getGridColumns(p.theme))}`} 77 | ${p => typeof p.xlOffset !== 'undefined' && isNumber(p.xlOffset) && media.xl`${css.offset(p.xlOffset, getGridColumns(p.theme))}`} 78 | ${p => p.xlAuto && media.xl`${css.col('auto')}`} 79 | ${p => p.xlAlignSelf && media.xl`${css.alignSelf[p.xlAlignSelf]}`} 80 | ${p => p.xlOrder && media.xl`${css.order(p.xlOrder)}`} 81 | ${p => p.hiddenXlDown && media.max.xl`${css.display.none}`} 82 | ${p => p.hiddenXlUp && media.min.xl`${css.display.none}`} 83 | 84 | ${p => p.xxl && media.xxl`${css.col(p.xxl, getGridColumns(p.theme))}`} 85 | ${p => typeof p.xxlOffset !== 'undefined' && isNumber(p.xxlOffset) && media.xxl`${css.offset(p.xxlOffset, getGridColumns(p.theme))}`} 86 | ${p => p.xxlAuto && media.xxl`${css.col('auto')}`} 87 | ${p => p.xxlAlignSelf && media.xxl`${css.alignSelf[p.xxlAlignSelf]}`} 88 | ${p => p.xxlOrder && media.xxl`${css.order(p.xxlOrder)}`} 89 | ${p => p.hiddenXxlDown && media.max.xxl`${css.display.none}`} 90 | ${p => p.hiddenXxlUp && media.min.xxl`${css.display.none}`} 91 | `; 92 | -------------------------------------------------------------------------------- /src/components/Col/css.ts: -------------------------------------------------------------------------------- 1 | import { ColCss } from './types'; 2 | 3 | let css: ColCss = { 4 | col: (column: any, gridColumns: number) => { 5 | switch(column){ 6 | case true: 7 | return ` 8 | -ms-flex-preferred-size: 0; 9 | flex-basis: 0; 10 | -ms-flex-positive: 1; 11 | flex-grow: 1; 12 | max-width: 100%; 13 | `; 14 | case 'auto': 15 | return ` 16 | -ms-flex: 0 0 auto; 17 | flex: 0 0 auto; 18 | width: auto; 19 | max-width: none; 20 | `; 21 | default: 22 | const singleCol: number = 100 / gridColumns; 23 | const colFlexBasis: number = singleCol * column; 24 | return ` 25 | -ms-flex: 0 0 ${colFlexBasis}%; 26 | flex: 0 0 ${colFlexBasis}%; 27 | max-width: ${colFlexBasis}%; 28 | `; 29 | } 30 | }, 31 | offset: (offset: any, gridColumns: number) => { 32 | const singleCol: number = 100 / gridColumns; 33 | const offsetFlexBasis: number = singleCol * offset; 34 | const offsetUnit: string = offsetFlexBasis > 0 ? '%' : ''; 35 | return `margin-left: ${offsetFlexBasis}${offsetUnit};`; 36 | }, 37 | order: (order: any) => { 38 | switch(order){ 39 | case 'first': 40 | return ` 41 | -ms-flex-order: -1; 42 | order: -1; 43 | `; 44 | case 'last': 45 | return ` 46 | -ms-flex-order: 13; 47 | order: 13; 48 | `; 49 | default: 50 | return ` 51 | -ms-flex-order: ${order}; 52 | order: ${order}; 53 | `; 54 | } 55 | }, 56 | alignSelf: { 57 | auto: ` 58 | -ms-flex-item-align: auto; 59 | align-self: auto; 60 | `, 61 | start: ` 62 | -ms-flex-item-align: start; 63 | align-self: flex-start; 64 | `, 65 | end: ` 66 | -ms-flex-item-align: end; 67 | align-self: flex-end; 68 | `, 69 | center: ` 70 | -ms-flex-item-align: center; 71 | align-self: center; 72 | `, 73 | baseline: ` 74 | -ms-flex-item-align: baseline; 75 | align-self: baseline; 76 | `, 77 | stretch: ` 78 | -ms-flex-item-align: stretch; 79 | align-self: stretch; 80 | `, 81 | }, 82 | display: { 83 | none: ` 84 | display: none; 85 | `, 86 | }, 87 | noGutter: ` 88 | padding-right: 0; 89 | padding-left: 0; 90 | `, 91 | }; 92 | 93 | 94 | export default css; 95 | -------------------------------------------------------------------------------- /src/components/Col/getDataName.ts: -------------------------------------------------------------------------------- 1 | import { ColProps } from './types'; 2 | import { isNumber, suffix } from '../../utils'; 3 | 4 | export default (p: ColProps) => 5 | process.env.NODE_ENV === 'production' 6 | ? undefined 7 | : [ 8 | p.col && `col${suffix(p.col)}`, 9 | isNumber(p.offset) && `offset-${p.offset}`, 10 | p.auto && `col-auto`, 11 | p.alignSelf && `align-self-${p.alignSelf}`, 12 | isNumber(p.order) || p.order === 'first' || (p.order === 'last' && `order-${p.order}`), 13 | p.xs && `col-xs${suffix(p.xs)}`, 14 | isNumber(p.xsOffset) && `offset-xs-${p.xsOffset}`, 15 | p.xsAuto && `col-xs-auto`, 16 | p.xsAlignSelf && `align-self-xs-${p.xsAlignSelf}`, 17 | isNumber(p.xsOrder) || 18 | p.xsOrder === 'first' || 19 | (p.xsOrder === 'last' && `order-xs-${p.xsOrder}`), 20 | p.hiddenXsDown && `hidden-xs-down`, 21 | p.hiddenXsUp && `hidden-xs-up`, 22 | p.sm && `col-sm${suffix(p.sm)}`, 23 | isNumber(p.smOffset) && `offset-sm-${p.smOffset}`, 24 | p.smAuto && `col-sm-auto`, 25 | p.smAlignSelf && `align-self-sm-${p.smAlignSelf}`, 26 | isNumber(p.smOrder) || 27 | p.smOrder === 'first' || 28 | (p.smOrder === 'last' && `order-sm-${p.smOrder}`), 29 | p.hiddenSmDown && `hidden-sm-down`, 30 | p.hiddenSmUp && `hidden-sm-up`, 31 | p.md && `col-md${suffix(p.md)}`, 32 | isNumber(p.mdOffset) && `offset-md-${p.mdOffset}`, 33 | p.mdAuto && `col-md-auto`, 34 | p.mdAlignSelf && `align-self-md-${p.mdAlignSelf}`, 35 | isNumber(p.mdOrder) || 36 | p.mdOrder === 'first' || 37 | (p.mdOrder === 'last' && `order-md-${p.mdOrder}`), 38 | p.hiddenMdDown && `hidden-md-down`, 39 | p.hiddenMdUp && `hidden-md-up`, 40 | p.lg && `col-lg${suffix(p.lg)}`, 41 | isNumber(p.lgOffset) && `offset-lg-${p.lgOffset}`, 42 | p.lgAuto && `col-lg-auto`, 43 | p.lgAlignSelf && `align-self-lg-${p.lgAlignSelf}`, 44 | isNumber(p.lgOrder) || 45 | p.lgOrder === 'first' || 46 | (p.lgOrder === 'last' && `order-lg-${p.lgOrder}`), 47 | p.hiddenLgDown && `hidden-lg-down`, 48 | p.hiddenLgUp && `hidden-lg-up`, 49 | p.xl && `col-xl${suffix(p.xl)}`, 50 | isNumber(p.xlOffset) && `offset-xl-${p.xlOffset}`, 51 | p.xlAuto && `col-xl-auto`, 52 | p.xlAlignSelf && `align-self-xl-${p.xlAlignSelf}`, 53 | isNumber(p.xlOrder) || 54 | p.xlOrder === 'first' || 55 | (p.xlOrder === 'last' && `order-xl-${p.xlOrder}`), 56 | p.hiddenXlDown && `hidden-xl-down`, 57 | p.hiddenXlUp && `hidden-xl-up`, 58 | p.noGutter && `no-gutter`, 59 | ] 60 | .filter(Boolean) 61 | .join(' '); 62 | -------------------------------------------------------------------------------- /src/components/Col/index.ts: -------------------------------------------------------------------------------- 1 | export * from './types'; 2 | export { default } from './Col'; 3 | -------------------------------------------------------------------------------- /src/components/Col/types.ts: -------------------------------------------------------------------------------- 1 | export type End = 'first' | 'last'; 2 | export type Column = number | true | 'auto'; 3 | export type Order = number | End; 4 | export type Offset = number; 5 | export type Align = 'start' | 'end' | 'center' | 'baseline' | 'stretch'; 6 | export type AlignSelf = Align | 'auto'; 7 | 8 | export type ColProps = { 9 | noGutter?: boolean; 10 | col?: Column; 11 | auto?: boolean; 12 | alignSelf?: AlignSelf; 13 | offset?: Offset; 14 | order?: Order; 15 | xs?: Column; 16 | xsOffset?: Offset; 17 | xsAuto?: boolean; 18 | xsAlignSelf?: AlignSelf; 19 | xsOrder?: Order; 20 | hiddenXsUp?: boolean; 21 | hiddenXsDown?: boolean; 22 | sm?: Column; 23 | smOffset?: Offset; 24 | smAuto?: boolean; 25 | smAlignSelf?: AlignSelf; 26 | smOrder?: Order; 27 | hiddenSmUp?: boolean; 28 | hiddenSmDown?: boolean; 29 | md?: Column; 30 | mdOffset?: Offset; 31 | mdAuto?: boolean; 32 | mdAlignSelf?: AlignSelf; 33 | mdOrder?: Order; 34 | hiddenMdUp?: boolean; 35 | hiddenMdDown?: boolean; 36 | lg?: Column; 37 | lgOffset?: Offset; 38 | lgAuto?: boolean; 39 | lgAlignSelf?: AlignSelf; 40 | lgOrder?: Order; 41 | hiddenLgUp?: boolean; 42 | hiddenLgDown?: boolean; 43 | xl?: Column; 44 | xlOffset?: Offset; 45 | xlAuto?: boolean; 46 | xlAlignSelf?: AlignSelf; 47 | xlOrder?: Order; 48 | hiddenXlUp?: boolean; 49 | hiddenXlDown?: boolean; 50 | xxl?: Column; 51 | xxlOffset?: Offset; 52 | xxlAuto?: boolean; 53 | xxlAlignSelf?: AlignSelf; 54 | xxlOrder?: Order; 55 | hiddenXxlUp?: boolean; 56 | hiddenXxlDown?: boolean; 57 | }; 58 | 59 | export type ColCss = { 60 | col: any; 61 | offset: any; 62 | order: any; 63 | alignSelf: { [K in AlignSelf]: string }; 64 | display: { none: string }; 65 | noGutter: string; 66 | }; 67 | -------------------------------------------------------------------------------- /src/components/Container/Container.tsx: -------------------------------------------------------------------------------- 1 | import { ContainerProps } from './types'; 2 | import styled from 'styled-components'; 3 | 4 | import { defaultContainerMaxWidth } from '../ThemeProvider/ThemeProvider'; 5 | import media from '../../media'; 6 | 7 | export default styled.div.attrs(props => ({ 8 | 'data-name': 9 | process.env.NODE_ENV !== 'production' ? `container${props.fluid ? '-fluid' : ''}` : undefined, 10 | }))` 11 | width: 100%; 12 | padding-right: ${p => { 13 | if ( 14 | !p.theme || 15 | !p.theme.styledBootstrapGrid || 16 | !p.theme.styledBootstrapGrid.getContainerPadding 17 | ) { 18 | return 15; 19 | } 20 | return p.theme.styledBootstrapGrid.getContainerPadding(); 21 | }}px; 22 | padding-left: ${p => { 23 | if ( 24 | !p.theme || 25 | !p.theme.styledBootstrapGrid || 26 | !p.theme.styledBootstrapGrid.getContainerPadding 27 | ) { 28 | return 15; 29 | } 30 | return p.theme.styledBootstrapGrid.getContainerPadding(); 31 | }}px; 32 | margin-right: auto; 33 | margin-left: auto; 34 | 35 | ${p => !p.fluid && media.sm` 36 | max-width: ${ 37 | ( 38 | !p.theme 39 | || !p.theme.styledBootstrapGrid 40 | || !p.theme.styledBootstrapGrid.getContainerMaxWidth 41 | ) && defaultContainerMaxWidth.sm 42 | || p.theme.styledBootstrapGrid.getContainerMaxWidth('sm') 43 | }px; 44 | `} 45 | 46 | ${p => !p.fluid && media.md` 47 | max-width: ${ 48 | ( 49 | !p.theme 50 | || !p.theme.styledBootstrapGrid 51 | || !p.theme.styledBootstrapGrid.getContainerMaxWidth 52 | ) && defaultContainerMaxWidth.md 53 | || p.theme.styledBootstrapGrid.getContainerMaxWidth('md') 54 | }px; 55 | `} 56 | 57 | ${p => !p.fluid && media.lg` 58 | max-width: ${ 59 | ( 60 | !p.theme 61 | || !p.theme.styledBootstrapGrid 62 | || !p.theme.styledBootstrapGrid.getContainerMaxWidth 63 | ) && defaultContainerMaxWidth.lg 64 | || p.theme.styledBootstrapGrid.getContainerMaxWidth('lg') 65 | }px; 66 | `} 67 | 68 | ${p => !p.fluid && media.xl` 69 | max-width: ${ 70 | ( 71 | !p.theme 72 | || !p.theme.styledBootstrapGrid 73 | || !p.theme.styledBootstrapGrid.getContainerMaxWidth 74 | ) && defaultContainerMaxWidth.xl 75 | || p.theme.styledBootstrapGrid.getContainerMaxWidth('xl') 76 | }px; 77 | `} 78 | `; 79 | -------------------------------------------------------------------------------- /src/components/Container/index.ts: -------------------------------------------------------------------------------- 1 | export * from './types'; 2 | export { default } from './Container'; 3 | -------------------------------------------------------------------------------- /src/components/Container/types.ts: -------------------------------------------------------------------------------- 1 | export type ContainerProps = { 2 | fluid?: boolean; 3 | }; 4 | -------------------------------------------------------------------------------- /src/components/Row/Row.tsx: -------------------------------------------------------------------------------- 1 | import styled from 'styled-components'; 2 | 3 | import css from './css'; 4 | import { RowProps } from './types'; 5 | import media from '../../media'; 6 | import getDataName from './getDataName'; 7 | 8 | export default styled.div.attrs(props => ({ 9 | 'data-name': getDataName(props), 10 | }))` 11 | display: -ms-flexbox; 12 | display: flex; 13 | -ms-flex-wrap: wrap; 14 | flex-wrap: wrap; 15 | margin-right: -${p => { 16 | if (!p.theme || !p.theme.styledBootstrapGrid || !p.theme.styledBootstrapGrid.getRowPadding) { 17 | return 15; 18 | } 19 | return p.theme.styledBootstrapGrid.getRowPadding(); 20 | }}px; 21 | margin-left: -${p => { 22 | if (!p.theme || !p.theme.styledBootstrapGrid || !p.theme.styledBootstrapGrid.getRowPadding) { 23 | return 15; 24 | } 25 | return p.theme.styledBootstrapGrid.getRowPadding(); 26 | }}px; 27 | 28 | ${p => p.alignItems && css.alignItems[p.alignItems]} 29 | ${p => p.smAlignItems && media.sm`${css.alignItems[p.smAlignItems]}`} 30 | ${p => p.mdAlignItems && media.md`${css.alignItems[p.mdAlignItems]}`} 31 | ${p => p.lgAlignItems && media.lg`${css.alignItems[p.lgAlignItems]}`} 32 | ${p => p.xlAlignItems && media.xl`${css.alignItems[p.xlAlignItems]}`} 33 | 34 | ${p => p.justifyContent && css.justifyContent[p.justifyContent]} 35 | ${p => p.smJustifyContent && media.sm`${css.justifyContent[p.smJustifyContent]}`} 36 | ${p => p.mdJustifyContent && media.md`${css.justifyContent[p.mdJustifyContent]}`} 37 | ${p => p.lgJustifyContent && media.lg`${css.justifyContent[p.lgJustifyContent]}`} 38 | ${p => p.xlJustifyContent && media.xl`${css.justifyContent[p.xlJustifyContent]}`} 39 | `; 40 | -------------------------------------------------------------------------------- /src/components/Row/css.ts: -------------------------------------------------------------------------------- 1 | import { RowCss } from './types'; 2 | 3 | const css: RowCss = { 4 | alignItems: { 5 | start: ` 6 | -ms-flex-align: start !important; 7 | align-items: flex-start !important; 8 | `, 9 | end: ` 10 | -ms-flex-align: end !important; 11 | align-items: flex-end !important; 12 | `, 13 | center: ` 14 | -ms-flex-align: center !important; 15 | align-items: center !important; 16 | `, 17 | baseline: ` 18 | -ms-flex-align: baseline !important; 19 | align-items: baseline !important; 20 | `, 21 | stretch: ` 22 | -ms-flex-align: stretch !important; 23 | align-items: stretch !important; 24 | `, 25 | }, 26 | justifyContent: { 27 | start: ` 28 | -ms-flex-pack: start !important; 29 | justify-content: flex-start !important; 30 | `, 31 | end: ` 32 | -ms-flex-pack: end !important; 33 | justify-content: flex-end !important; 34 | `, 35 | center: ` 36 | -ms-flex-pack: center !important; 37 | justify-content: center !important; 38 | `, 39 | between: ` 40 | -ms-flex-pack: justify !important; 41 | justify-content: space-between !important; 42 | `, 43 | around: ` 44 | -ms-flex-pack: distribute !important; 45 | justify-content: space-around !important; 46 | `, 47 | }, 48 | }; 49 | 50 | export default css; 51 | -------------------------------------------------------------------------------- /src/components/Row/getDataName.ts: -------------------------------------------------------------------------------- 1 | import { RowProps } from './types'; 2 | 3 | export default (p: RowProps) => 4 | process.env.NODE_ENV === 'production' 5 | ? undefined 6 | : [ 7 | 'row', 8 | p.alignItems ? `align-items-${p.alignItems}` : '', 9 | p.smAlignItems ? `align-items-sm-${p.smAlignItems}` : '', 10 | p.mdAlignItems ? `align-items-md-${p.mdAlignItems}` : '', 11 | p.lgAlignItems ? `align-items-lg-${p.lgAlignItems}` : '', 12 | p.xlAlignItems ? `align-items-xl-${p.xlAlignItems}` : '', 13 | p.justifyContent ? `justify-content-${p.justifyContent}` : '', 14 | p.smJustifyContent ? `justify-content-sm-${p.smJustifyContent}` : '', 15 | p.mdJustifyContent ? `justify-content-md-${p.mdJustifyContent}` : '', 16 | p.lgJustifyContent ? `justify-content-lg-${p.lgJustifyContent}` : '', 17 | p.xlJustifyContent ? `justify-content-xl-$p.{xlJustifyContent}` : '', 18 | ] 19 | .filter(Boolean) 20 | .join(' '); 21 | -------------------------------------------------------------------------------- /src/components/Row/index.ts: -------------------------------------------------------------------------------- 1 | export * from './types'; 2 | export { default } from './Row'; 3 | -------------------------------------------------------------------------------- /src/components/Row/types.ts: -------------------------------------------------------------------------------- 1 | import { Align } from '../Col'; 2 | 3 | export type Justify = 'start' | 'end' | 'center' | 'between' | 'around'; 4 | 5 | export type RowProps = { 6 | alignItems?: Align; 7 | smAlignItems?: Align; 8 | mdAlignItems?: Align; 9 | lgAlignItems?: Align; 10 | xlAlignItems?: Align; 11 | justifyContent?: Justify; 12 | smJustifyContent?: Justify; 13 | mdJustifyContent?: Justify; 14 | lgJustifyContent?: Justify; 15 | xlJustifyContent?: Justify; 16 | }; 17 | 18 | export type RowCss = { 19 | alignItems: { [K in Align]: string }; 20 | justifyContent: { [K in Justify]: string }; 21 | }; 22 | -------------------------------------------------------------------------------- /src/components/ThemeProvider/ThemeProvider.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { ThemeProvider } from 'styled-components'; 3 | 4 | import { DefaultContainerMaxWidth, StyledBootstrapGrid, ThemeProps } from './types'; 5 | import { isNumber } from '../../utils'; 6 | import makeAliases from '../../aliases'; 7 | import { MediaAliases } from '../../media/types'; 8 | 9 | export const defaultContainerMaxWidth: DefaultContainerMaxWidth = { 10 | xxl: 1141, 11 | xl: 1140, 12 | lg: 960, 13 | md: 720, 14 | sm: 540, 15 | xs: 540, 16 | }; 17 | 18 | export default (props: ThemeProps) => { 19 | const { gridTheme: theme = {} } = props; 20 | 21 | const getContainerPadding = () => { 22 | if (isNumber(styledBootstrapGridTheme.container.padding)) { 23 | return styledBootstrapGridTheme.container.padding; 24 | } 25 | 26 | return 15; 27 | }; 28 | 29 | const getContainerMaxWidth = (breakpoint: MediaAliases) => { 30 | if (isNumber(styledBootstrapGridTheme.container.maxWidth[breakpoint])) { 31 | return styledBootstrapGridTheme.container.maxWidth[breakpoint]; 32 | } 33 | 34 | return defaultContainerMaxWidth[breakpoint]; 35 | }; 36 | 37 | const getRowPadding = () => { 38 | if (styledBootstrapGridTheme.row && isNumber(styledBootstrapGridTheme.row.padding)) { 39 | return styledBootstrapGridTheme.row.padding; 40 | } 41 | 42 | return 15; 43 | }; 44 | 45 | const getColPadding = () => { 46 | if (styledBootstrapGridTheme.col && isNumber(styledBootstrapGridTheme.col.padding)) { 47 | return styledBootstrapGridTheme.col.padding; 48 | } 49 | 50 | return 15; 51 | }; 52 | 53 | const getGridColumns = () => { 54 | if (styledBootstrapGridTheme && isNumber(styledBootstrapGridTheme.gridColumns)) { 55 | return styledBootstrapGridTheme.gridColumns; 56 | } 57 | 58 | return 12; 59 | }; 60 | 61 | const styledBootstrapGridTheme: StyledBootstrapGrid = { 62 | gridColumns: theme.gridColumns, 63 | breakpoints: makeAliases(theme.breakpoints), 64 | col: theme.col, 65 | row: theme.row, 66 | container: { 67 | ...theme.container, 68 | maxWidth: { 69 | ...makeAliases(defaultContainerMaxWidth), 70 | ...makeAliases((theme.container || {}).maxWidth || {}), 71 | }, 72 | }, 73 | getContainerPadding, 74 | getContainerMaxWidth, 75 | getRowPadding, 76 | getColPadding, 77 | getGridColumns, 78 | }; 79 | 80 | return ; 81 | }; 82 | -------------------------------------------------------------------------------- /src/components/ThemeProvider/index.ts: -------------------------------------------------------------------------------- 1 | export * from './types'; 2 | export { default } from './ThemeProvider'; 3 | -------------------------------------------------------------------------------- /src/components/ThemeProvider/types.ts: -------------------------------------------------------------------------------- 1 | import { MediaAliases, Media } from '../../media/types'; 2 | 3 | export type Breakpoints = { [key in Media]: number }; 4 | export type PartialBreakpoints = Partial; 5 | 6 | interface GridTheme { 7 | breakpoints?: PartialBreakpoints; 8 | row?: { 9 | padding?: number; 10 | }; 11 | col?: { 12 | padding?: number; 13 | }; 14 | container?: { 15 | padding?: number; 16 | maxWidth?: PartialBreakpoints; 17 | }; 18 | gridColumns?: number; 19 | } 20 | 21 | export interface ThemeProps { 22 | gridTheme?: GridTheme; 23 | children: React.ReactChild; 24 | } 25 | 26 | export type DefaultContainerMaxWidth = { [K in MediaAliases]: number }; 27 | 28 | export interface StyledBootstrapGrid extends GridTheme { 29 | container: { 30 | padding?: number; 31 | maxWidth: PartialBreakpoints; 32 | }; 33 | getContainerPadding: any; 34 | getContainerMaxWidth: any; 35 | getRowPadding: any; 36 | getColPadding: any; 37 | getGridColumns: any; 38 | } 39 | 40 | export interface Theme { 41 | styledBootstrapGrid: StyledBootstrapGrid; 42 | } 43 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | export { default as media } from './media'; 2 | export { default as Container } from './components/Container'; 3 | export { default as Row } from './components/Row'; 4 | export { default as Col } from './components/Col'; 5 | export { default as BaseCSS } from './components/BaseCSS'; 6 | export { default as GridThemeProvider } from './components/ThemeProvider'; 7 | 8 | export * from './components/BaseCSS/types'; 9 | export * from './components/Col/types'; 10 | export * from './components/Container/types'; 11 | export * from './components/Row/types'; 12 | export * from './components/ThemeProvider/types'; 13 | export * from './media/types'; 14 | -------------------------------------------------------------------------------- /src/media/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from './media'; 2 | export * from './types'; 3 | -------------------------------------------------------------------------------- /src/media/media.ts: -------------------------------------------------------------------------------- 1 | import { css, CSSObject } from 'styled-components'; 2 | 3 | import makeAliases from '../aliases'; 4 | import { Media, MediaTagFunction, MediaObject, GetBreakpointsFn } from './types'; 5 | import { Breakpoints } from '../components/ThemeProvider'; 6 | 7 | const defaultBreakpoints = makeAliases({ 8 | xxl: 1540, 9 | xl: 1200, 10 | lg: 992, 11 | md: 768, 12 | sm: 576, 13 | xs: 575, 14 | }) as Breakpoints; 15 | 16 | const getBreakpoints: GetBreakpointsFn = props => ({ 17 | ...defaultBreakpoints, 18 | ...((props.theme && 19 | props.theme.styledBootstrapGrid && 20 | props.theme.styledBootstrapGrid.breakpoints) || 21 | {}), 22 | }); 23 | 24 | const media: MediaObject = (Object.keys(defaultBreakpoints) as Media[]).reduce( 25 | (accumulator, label) => { 26 | const minMedia: MediaTagFunction = (strings, ...interpolations) => css` 27 | @media (min-width: ${props => getBreakpoints(props)[label]}px) { 28 | ${css(strings as CSSObject | TemplateStringsArray, ...interpolations)} 29 | } 30 | `; 31 | 32 | const maxMedia: MediaTagFunction = (strings, ...interpolations) => css` 33 | @media (max-width: ${props => (getBreakpoints(props)[label] - 1)}px) { 34 | ${css(strings as CSSObject | TemplateStringsArray, ...interpolations)} 35 | } 36 | `; 37 | 38 | accumulator[label] = label === 'xs' || label === 'smaller' ? maxMedia : minMedia; 39 | accumulator.max[label] = maxMedia; 40 | accumulator.min[label] = minMedia; 41 | 42 | return accumulator; 43 | }, 44 | { min: {}, max: {} } as MediaObject, 45 | ); 46 | 47 | export default media; 48 | -------------------------------------------------------------------------------- /src/media/types.ts: -------------------------------------------------------------------------------- 1 | import { 2 | FlattenInterpolation, 3 | Interpolation, 4 | SimpleInterpolation, 5 | ThemedStyledProps, 6 | } from 'styled-components'; 7 | import { Breakpoints, Theme } from '../components/ThemeProvider'; 8 | 9 | export enum MediaLabels { 10 | xs = 'smaller', 11 | sm = 'phone', 12 | md = 'tablet', 13 | lg = 'desktop', 14 | xl = 'giant', 15 | xxl = 'veryGiant', 16 | } 17 | 18 | export enum MediaAliases { 19 | smaller = 'xs', 20 | phone = 'sm', 21 | tablet = 'md', 22 | desktop = 'lg', 23 | giant = 'xl', 24 | veryGiant = 'xxl', 25 | } 26 | 27 | export type Media = MediaLabels | MediaAliases; 28 | 29 | export type MediaTagFunction

= ( 30 | strings: TemplateStringsArray | NonNullable, 31 | ...interpolations: Interpolation>[] 32 | ) => FlattenInterpolation>; 33 | 34 | export type MapMediaToQuery = { [Key in Media]: MediaTagFunction }; 35 | 36 | export type MediaObject = MapMediaToQuery & { 37 | min: MapMediaToQuery; 38 | max: MapMediaToQuery; 39 | }; 40 | 41 | export type GetBreakpointsFn =

( 42 | props: ThemedStyledProps, 43 | ) => Breakpoints; 44 | -------------------------------------------------------------------------------- /src/utils/index.ts: -------------------------------------------------------------------------------- 1 | import { IsNumberFn, SuffixFn } from './types'; 2 | 3 | export const isNumber: IsNumberFn = value => !Number.isNaN(parseInt(value + '', 10)); 4 | export const suffix: SuffixFn = value => (isNumber(value) ? `-${value}` : ''); 5 | -------------------------------------------------------------------------------- /src/utils/types.ts: -------------------------------------------------------------------------------- 1 | type ValueType = boolean | null | undefined | number | string | object; 2 | 3 | export type IsNumberFn = (value: ValueType) => boolean; 4 | export type SuffixFn = (value: ValueType) => string; 5 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "esnext", 4 | "module": "commonjs", 5 | "declaration": true, 6 | "outDir": "dist", 7 | "strict": true, 8 | "esModuleInterop": true, 9 | "jsx": "react", 10 | "baseUrl": "src", 11 | "noUnusedLocals": true, 12 | "noUnusedParameters": true 13 | }, 14 | "include": ["src/**/*"] 15 | } 16 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/cli@^7.1.5": 6 | version "7.16.0" 7 | resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.16.0.tgz#a729b7a48eb80b49f48a339529fc4129fd7bcef3" 8 | integrity sha512-WLrM42vKX/4atIoQB+eb0ovUof53UUvecb4qGjU2PDDWRiZr50ZpiV8NpcLo7iSxeGYrRG0Mqembsa+UrTAV6Q== 9 | dependencies: 10 | commander "^4.0.1" 11 | convert-source-map "^1.1.0" 12 | fs-readdir-recursive "^1.1.0" 13 | glob "^7.0.0" 14 | make-dir "^2.1.0" 15 | slash "^2.0.0" 16 | source-map "^0.5.0" 17 | optionalDependencies: 18 | "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents.3" 19 | chokidar "^3.4.0" 20 | 21 | "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.14.5": 22 | version "7.14.5" 23 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb" 24 | integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw== 25 | dependencies: 26 | "@babel/highlight" "^7.14.5" 27 | 28 | "@babel/core@^7.1.6": 29 | version "7.2.2" 30 | resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.2.2.tgz#07adba6dde27bb5ad8d8672f15fde3e08184a687" 31 | integrity sha512-59vB0RWt09cAct5EIe58+NzGP4TFSD3Bz//2/ELy3ZeTeKF6VTD1AXlH8BGGbCX0PuobZBsIzO7IAI9PH67eKw== 32 | dependencies: 33 | "@babel/code-frame" "^7.0.0" 34 | "@babel/generator" "^7.2.2" 35 | "@babel/helpers" "^7.2.0" 36 | "@babel/parser" "^7.2.2" 37 | "@babel/template" "^7.2.2" 38 | "@babel/traverse" "^7.2.2" 39 | "@babel/types" "^7.2.2" 40 | convert-source-map "^1.1.0" 41 | debug "^4.1.0" 42 | json5 "^2.1.0" 43 | lodash "^4.17.10" 44 | resolve "^1.3.2" 45 | semver "^5.4.1" 46 | source-map "^0.5.0" 47 | 48 | "@babel/generator@^7.14.5", "@babel/generator@^7.2.2": 49 | version "7.14.5" 50 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.5.tgz#848d7b9f031caca9d0cd0af01b063f226f52d785" 51 | integrity sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA== 52 | dependencies: 53 | "@babel/types" "^7.14.5" 54 | jsesc "^2.5.1" 55 | source-map "^0.5.0" 56 | 57 | "@babel/helper-annotate-as-pure@^7.0.0": 58 | version "7.0.0" 59 | resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32" 60 | integrity sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q== 61 | dependencies: 62 | "@babel/types" "^7.0.0" 63 | 64 | "@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0": 65 | version "7.1.0" 66 | resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz#6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f" 67 | integrity sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w== 68 | dependencies: 69 | "@babel/helper-explode-assignable-expression" "^7.1.0" 70 | "@babel/types" "^7.0.0" 71 | 72 | "@babel/helper-builder-react-jsx@^7.3.0": 73 | version "7.3.0" 74 | resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.3.0.tgz#a1ac95a5d2b3e88ae5e54846bf462eeb81b318a4" 75 | integrity sha512-MjA9KgwCuPEkQd9ncSXvSyJ5y+j2sICHyrI0M3L+6fnS4wMSNDc1ARXsbTfbb2cXHn17VisSnU/sHFTCxVxSMw== 76 | dependencies: 77 | "@babel/types" "^7.3.0" 78 | esutils "^2.0.0" 79 | 80 | "@babel/helper-call-delegate@^7.1.0": 81 | version "7.1.0" 82 | resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.1.0.tgz#6a957f105f37755e8645343d3038a22e1449cc4a" 83 | integrity sha512-YEtYZrw3GUK6emQHKthltKNZwszBcHK58Ygcis+gVUrF4/FmTVr5CCqQNSfmvg2y+YDEANyYoaLz/SHsnusCwQ== 84 | dependencies: 85 | "@babel/helper-hoist-variables" "^7.0.0" 86 | "@babel/traverse" "^7.1.0" 87 | "@babel/types" "^7.0.0" 88 | 89 | "@babel/helper-create-class-features-plugin@^7.3.0": 90 | version "7.3.2" 91 | resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.3.2.tgz#ba1685603eb1c9f2f51c9106d5180135c163fe73" 92 | integrity sha512-tdW8+V8ceh2US4GsYdNVNoohq5uVwOf9k6krjwW4E1lINcHgttnWcNqgdoessn12dAy8QkbezlbQh2nXISNY+A== 93 | dependencies: 94 | "@babel/helper-function-name" "^7.1.0" 95 | "@babel/helper-member-expression-to-functions" "^7.0.0" 96 | "@babel/helper-optimise-call-expression" "^7.0.0" 97 | "@babel/helper-plugin-utils" "^7.0.0" 98 | "@babel/helper-replace-supers" "^7.2.3" 99 | 100 | "@babel/helper-define-map@^7.1.0": 101 | version "7.1.0" 102 | resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.1.0.tgz#3b74caec329b3c80c116290887c0dd9ae468c20c" 103 | integrity sha512-yPPcW8dc3gZLN+U1mhYV91QU3n5uTbx7DUdf8NnPbjS0RMwBuHi9Xt2MUgppmNz7CJxTBWsGczTiEp1CSOTPRg== 104 | dependencies: 105 | "@babel/helper-function-name" "^7.1.0" 106 | "@babel/types" "^7.0.0" 107 | lodash "^4.17.10" 108 | 109 | "@babel/helper-explode-assignable-expression@^7.1.0": 110 | version "7.1.0" 111 | resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz#537fa13f6f1674df745b0c00ec8fe4e99681c8f6" 112 | integrity sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA== 113 | dependencies: 114 | "@babel/traverse" "^7.1.0" 115 | "@babel/types" "^7.0.0" 116 | 117 | "@babel/helper-function-name@^7.1.0", "@babel/helper-function-name@^7.14.5": 118 | version "7.14.5" 119 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz#89e2c474972f15d8e233b52ee8c480e2cfcd50c4" 120 | integrity sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ== 121 | dependencies: 122 | "@babel/helper-get-function-arity" "^7.14.5" 123 | "@babel/template" "^7.14.5" 124 | "@babel/types" "^7.14.5" 125 | 126 | "@babel/helper-get-function-arity@^7.0.0", "@babel/helper-get-function-arity@^7.14.5": 127 | version "7.14.5" 128 | resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz#25fbfa579b0937eee1f3b805ece4ce398c431815" 129 | integrity sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg== 130 | dependencies: 131 | "@babel/types" "^7.14.5" 132 | 133 | "@babel/helper-hoist-variables@^7.0.0", "@babel/helper-hoist-variables@^7.14.5": 134 | version "7.14.5" 135 | resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz#e0dd27c33a78e577d7c8884916a3e7ef1f7c7f8d" 136 | integrity sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ== 137 | dependencies: 138 | "@babel/types" "^7.14.5" 139 | 140 | "@babel/helper-member-expression-to-functions@^7.0.0": 141 | version "7.0.0" 142 | resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz#8cd14b0a0df7ff00f009e7d7a436945f47c7a16f" 143 | integrity sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg== 144 | dependencies: 145 | "@babel/types" "^7.0.0" 146 | 147 | "@babel/helper-module-imports@^7.0.0": 148 | version "7.0.0" 149 | resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d" 150 | integrity sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A== 151 | dependencies: 152 | "@babel/types" "^7.0.0" 153 | 154 | "@babel/helper-module-transforms@^7.1.0": 155 | version "7.2.2" 156 | resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.2.2.tgz#ab2f8e8d231409f8370c883d20c335190284b963" 157 | integrity sha512-YRD7I6Wsv+IHuTPkAmAS4HhY0dkPobgLftHp0cRGZSdrRvmZY8rFvae/GVu3bD00qscuvK3WPHB3YdNpBXUqrA== 158 | dependencies: 159 | "@babel/helper-module-imports" "^7.0.0" 160 | "@babel/helper-simple-access" "^7.1.0" 161 | "@babel/helper-split-export-declaration" "^7.0.0" 162 | "@babel/template" "^7.2.2" 163 | "@babel/types" "^7.2.2" 164 | lodash "^4.17.10" 165 | 166 | "@babel/helper-optimise-call-expression@^7.0.0": 167 | version "7.0.0" 168 | resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz#a2920c5702b073c15de51106200aa8cad20497d5" 169 | integrity sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g== 170 | dependencies: 171 | "@babel/types" "^7.0.0" 172 | 173 | "@babel/helper-plugin-utils@^7.0.0": 174 | version "7.0.0" 175 | resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" 176 | integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== 177 | 178 | "@babel/helper-regex@^7.0.0": 179 | version "7.0.0" 180 | resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.0.0.tgz#2c1718923b57f9bbe64705ffe5640ac64d9bdb27" 181 | integrity sha512-TR0/N0NDCcUIUEbqV6dCO+LptmmSQFQ7q70lfcEB4URsjD0E1HzicrwUH+ap6BAQ2jhCX9Q4UqZy4wilujWlkg== 182 | dependencies: 183 | lodash "^4.17.10" 184 | 185 | "@babel/helper-remap-async-to-generator@^7.1.0": 186 | version "7.1.0" 187 | resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz#361d80821b6f38da75bd3f0785ece20a88c5fe7f" 188 | integrity sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg== 189 | dependencies: 190 | "@babel/helper-annotate-as-pure" "^7.0.0" 191 | "@babel/helper-wrap-function" "^7.1.0" 192 | "@babel/template" "^7.1.0" 193 | "@babel/traverse" "^7.1.0" 194 | "@babel/types" "^7.0.0" 195 | 196 | "@babel/helper-replace-supers@^7.1.0", "@babel/helper-replace-supers@^7.2.3": 197 | version "7.2.3" 198 | resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.2.3.tgz#19970020cf22677d62b3a689561dbd9644d8c5e5" 199 | integrity sha512-GyieIznGUfPXPWu0yLS6U55Mz67AZD9cUk0BfirOWlPrXlBcan9Gz+vHGz+cPfuoweZSnPzPIm67VtQM0OWZbA== 200 | dependencies: 201 | "@babel/helper-member-expression-to-functions" "^7.0.0" 202 | "@babel/helper-optimise-call-expression" "^7.0.0" 203 | "@babel/traverse" "^7.2.3" 204 | "@babel/types" "^7.0.0" 205 | 206 | "@babel/helper-simple-access@^7.1.0": 207 | version "7.1.0" 208 | resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c" 209 | integrity sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w== 210 | dependencies: 211 | "@babel/template" "^7.1.0" 212 | "@babel/types" "^7.0.0" 213 | 214 | "@babel/helper-split-export-declaration@^7.0.0", "@babel/helper-split-export-declaration@^7.14.5": 215 | version "7.14.5" 216 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz#22b23a54ef51c2b7605d851930c1976dd0bc693a" 217 | integrity sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA== 218 | dependencies: 219 | "@babel/types" "^7.14.5" 220 | 221 | "@babel/helper-validator-identifier@^7.14.5": 222 | version "7.14.5" 223 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz#d0f0e277c512e0c938277faa85a3968c9a44c0e8" 224 | integrity sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg== 225 | 226 | "@babel/helper-wrap-function@^7.1.0": 227 | version "7.2.0" 228 | resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz#c4e0012445769e2815b55296ead43a958549f6fa" 229 | integrity sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ== 230 | dependencies: 231 | "@babel/helper-function-name" "^7.1.0" 232 | "@babel/template" "^7.1.0" 233 | "@babel/traverse" "^7.1.0" 234 | "@babel/types" "^7.2.0" 235 | 236 | "@babel/helpers@^7.2.0": 237 | version "7.3.1" 238 | resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.3.1.tgz#949eec9ea4b45d3210feb7dc1c22db664c9e44b9" 239 | integrity sha512-Q82R3jKsVpUV99mgX50gOPCWwco9Ec5Iln/8Vyu4osNIOQgSrd9RFrQeUvmvddFNoLwMyOUWU+5ckioEKpDoGA== 240 | dependencies: 241 | "@babel/template" "^7.1.2" 242 | "@babel/traverse" "^7.1.5" 243 | "@babel/types" "^7.3.0" 244 | 245 | "@babel/highlight@^7.14.5": 246 | version "7.14.5" 247 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" 248 | integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg== 249 | dependencies: 250 | "@babel/helper-validator-identifier" "^7.14.5" 251 | chalk "^2.0.0" 252 | js-tokens "^4.0.0" 253 | 254 | "@babel/parser@^7.14.5", "@babel/parser@^7.2.2": 255 | version "7.14.6" 256 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.6.tgz#d85cc68ca3cac84eae384c06f032921f5227f4b2" 257 | integrity sha512-oG0ej7efjEXxb4UgE+klVx+3j4MVo+A2vCzm7OUN4CLo6WhQ+vSOD2yJ8m7B+DghObxtLxt3EfgMWpq+AsWehQ== 258 | 259 | "@babel/plugin-proposal-async-generator-functions@^7.2.0": 260 | version "7.2.0" 261 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz#b289b306669dce4ad20b0252889a15768c9d417e" 262 | integrity sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ== 263 | dependencies: 264 | "@babel/helper-plugin-utils" "^7.0.0" 265 | "@babel/helper-remap-async-to-generator" "^7.1.0" 266 | "@babel/plugin-syntax-async-generators" "^7.2.0" 267 | 268 | "@babel/plugin-proposal-class-properties@^7.1.0": 269 | version "7.3.0" 270 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.3.0.tgz#272636bc0fa19a0bc46e601ec78136a173ea36cd" 271 | integrity sha512-wNHxLkEKTQ2ay0tnsam2z7fGZUi+05ziDJflEt3AZTP3oXLKHJp9HqhfroB/vdMvt3sda9fAbq7FsG8QPDrZBg== 272 | dependencies: 273 | "@babel/helper-create-class-features-plugin" "^7.3.0" 274 | "@babel/helper-plugin-utils" "^7.0.0" 275 | 276 | "@babel/plugin-proposal-json-strings@^7.2.0": 277 | version "7.2.0" 278 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz#568ecc446c6148ae6b267f02551130891e29f317" 279 | integrity sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg== 280 | dependencies: 281 | "@babel/helper-plugin-utils" "^7.0.0" 282 | "@babel/plugin-syntax-json-strings" "^7.2.0" 283 | 284 | "@babel/plugin-proposal-object-rest-spread@^7.0.0", "@babel/plugin-proposal-object-rest-spread@^7.3.1": 285 | version "7.3.2" 286 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.3.2.tgz#6d1859882d4d778578e41f82cc5d7bf3d5daf6c1" 287 | integrity sha512-DjeMS+J2+lpANkYLLO+m6GjoTMygYglKmRe6cDTbFv3L9i6mmiE8fe6B8MtCSLZpVXscD5kn7s6SgtHrDoBWoA== 288 | dependencies: 289 | "@babel/helper-plugin-utils" "^7.0.0" 290 | "@babel/plugin-syntax-object-rest-spread" "^7.2.0" 291 | 292 | "@babel/plugin-proposal-optional-catch-binding@^7.2.0": 293 | version "7.2.0" 294 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz#135d81edb68a081e55e56ec48541ece8065c38f5" 295 | integrity sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g== 296 | dependencies: 297 | "@babel/helper-plugin-utils" "^7.0.0" 298 | "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" 299 | 300 | "@babel/plugin-proposal-unicode-property-regex@^7.2.0": 301 | version "7.2.0" 302 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.2.0.tgz#abe7281fe46c95ddc143a65e5358647792039520" 303 | integrity sha512-LvRVYb7kikuOtIoUeWTkOxQEV1kYvL5B6U3iWEGCzPNRus1MzJweFqORTj+0jkxozkTSYNJozPOddxmqdqsRpw== 304 | dependencies: 305 | "@babel/helper-plugin-utils" "^7.0.0" 306 | "@babel/helper-regex" "^7.0.0" 307 | regexpu-core "^4.2.0" 308 | 309 | "@babel/plugin-syntax-async-generators@^7.2.0": 310 | version "7.2.0" 311 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz#69e1f0db34c6f5a0cf7e2b3323bf159a76c8cb7f" 312 | integrity sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg== 313 | dependencies: 314 | "@babel/helper-plugin-utils" "^7.0.0" 315 | 316 | "@babel/plugin-syntax-json-strings@^7.2.0": 317 | version "7.2.0" 318 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz#72bd13f6ffe1d25938129d2a186b11fd62951470" 319 | integrity sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg== 320 | dependencies: 321 | "@babel/helper-plugin-utils" "^7.0.0" 322 | 323 | "@babel/plugin-syntax-jsx@^7.2.0": 324 | version "7.2.0" 325 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz#0b85a3b4bc7cdf4cc4b8bf236335b907ca22e7c7" 326 | integrity sha512-VyN4QANJkRW6lDBmENzRszvZf3/4AXaj9YR7GwrWeeN9tEBPuXbmDYVU9bYBN0D70zCWVwUy0HWq2553VCb6Hw== 327 | dependencies: 328 | "@babel/helper-plugin-utils" "^7.0.0" 329 | 330 | "@babel/plugin-syntax-object-rest-spread@^7.2.0": 331 | version "7.2.0" 332 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e" 333 | integrity sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA== 334 | dependencies: 335 | "@babel/helper-plugin-utils" "^7.0.0" 336 | 337 | "@babel/plugin-syntax-optional-catch-binding@^7.2.0": 338 | version "7.2.0" 339 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz#a94013d6eda8908dfe6a477e7f9eda85656ecf5c" 340 | integrity sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w== 341 | dependencies: 342 | "@babel/helper-plugin-utils" "^7.0.0" 343 | 344 | "@babel/plugin-syntax-typescript@^7.2.0": 345 | version "7.2.0" 346 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.2.0.tgz#55d240536bd314dcbbec70fd949c5cabaed1de29" 347 | integrity sha512-WhKr6yu6yGpGcNMVgIBuI9MkredpVc7Y3YR4UzEZmDztHoL6wV56YBHLhWnjO1EvId1B32HrD3DRFc+zSoKI1g== 348 | dependencies: 349 | "@babel/helper-plugin-utils" "^7.0.0" 350 | 351 | "@babel/plugin-transform-arrow-functions@^7.2.0": 352 | version "7.2.0" 353 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz#9aeafbe4d6ffc6563bf8f8372091628f00779550" 354 | integrity sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg== 355 | dependencies: 356 | "@babel/helper-plugin-utils" "^7.0.0" 357 | 358 | "@babel/plugin-transform-async-to-generator@^7.2.0": 359 | version "7.2.0" 360 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.2.0.tgz#68b8a438663e88519e65b776f8938f3445b1a2ff" 361 | integrity sha512-CEHzg4g5UraReozI9D4fblBYABs7IM6UerAVG7EJVrTLC5keh00aEuLUT+O40+mJCEzaXkYfTCUKIyeDfMOFFQ== 362 | dependencies: 363 | "@babel/helper-module-imports" "^7.0.0" 364 | "@babel/helper-plugin-utils" "^7.0.0" 365 | "@babel/helper-remap-async-to-generator" "^7.1.0" 366 | 367 | "@babel/plugin-transform-block-scoped-functions@^7.2.0": 368 | version "7.2.0" 369 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz#5d3cc11e8d5ddd752aa64c9148d0db6cb79fd190" 370 | integrity sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w== 371 | dependencies: 372 | "@babel/helper-plugin-utils" "^7.0.0" 373 | 374 | "@babel/plugin-transform-block-scoping@^7.2.0": 375 | version "7.2.0" 376 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.2.0.tgz#f17c49d91eedbcdf5dd50597d16f5f2f770132d4" 377 | integrity sha512-vDTgf19ZEV6mx35yiPJe4fS02mPQUUcBNwWQSZFXSzTSbsJFQvHt7DqyS3LK8oOWALFOsJ+8bbqBgkirZteD5Q== 378 | dependencies: 379 | "@babel/helper-plugin-utils" "^7.0.0" 380 | lodash "^4.17.10" 381 | 382 | "@babel/plugin-transform-classes@^7.2.0": 383 | version "7.2.2" 384 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.2.2.tgz#6c90542f210ee975aa2aa8c8b5af7fa73a126953" 385 | integrity sha512-gEZvgTy1VtcDOaQty1l10T3jQmJKlNVxLDCs+3rCVPr6nMkODLELxViq5X9l+rfxbie3XrfrMCYYY6eX3aOcOQ== 386 | dependencies: 387 | "@babel/helper-annotate-as-pure" "^7.0.0" 388 | "@babel/helper-define-map" "^7.1.0" 389 | "@babel/helper-function-name" "^7.1.0" 390 | "@babel/helper-optimise-call-expression" "^7.0.0" 391 | "@babel/helper-plugin-utils" "^7.0.0" 392 | "@babel/helper-replace-supers" "^7.1.0" 393 | "@babel/helper-split-export-declaration" "^7.0.0" 394 | globals "^11.1.0" 395 | 396 | "@babel/plugin-transform-computed-properties@^7.2.0": 397 | version "7.2.0" 398 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz#83a7df6a658865b1c8f641d510c6f3af220216da" 399 | integrity sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA== 400 | dependencies: 401 | "@babel/helper-plugin-utils" "^7.0.0" 402 | 403 | "@babel/plugin-transform-destructuring@^7.2.0": 404 | version "7.3.2" 405 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.3.2.tgz#f2f5520be055ba1c38c41c0e094d8a461dd78f2d" 406 | integrity sha512-Lrj/u53Ufqxl/sGxyjsJ2XNtNuEjDyjpqdhMNh5aZ+XFOdThL46KBj27Uem4ggoezSYBxKWAil6Hu8HtwqesYw== 407 | dependencies: 408 | "@babel/helper-plugin-utils" "^7.0.0" 409 | 410 | "@babel/plugin-transform-dotall-regex@^7.2.0": 411 | version "7.2.0" 412 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.2.0.tgz#f0aabb93d120a8ac61e925ea0ba440812dbe0e49" 413 | integrity sha512-sKxnyHfizweTgKZf7XsXu/CNupKhzijptfTM+bozonIuyVrLWVUvYjE2bhuSBML8VQeMxq4Mm63Q9qvcvUcciQ== 414 | dependencies: 415 | "@babel/helper-plugin-utils" "^7.0.0" 416 | "@babel/helper-regex" "^7.0.0" 417 | regexpu-core "^4.1.3" 418 | 419 | "@babel/plugin-transform-duplicate-keys@^7.2.0": 420 | version "7.2.0" 421 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.2.0.tgz#d952c4930f312a4dbfff18f0b2914e60c35530b3" 422 | integrity sha512-q+yuxW4DsTjNceUiTzK0L+AfQ0zD9rWaTLiUqHA8p0gxx7lu1EylenfzjeIWNkPy6e/0VG/Wjw9uf9LueQwLOw== 423 | dependencies: 424 | "@babel/helper-plugin-utils" "^7.0.0" 425 | 426 | "@babel/plugin-transform-exponentiation-operator@^7.2.0": 427 | version "7.2.0" 428 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz#a63868289e5b4007f7054d46491af51435766008" 429 | integrity sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A== 430 | dependencies: 431 | "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0" 432 | "@babel/helper-plugin-utils" "^7.0.0" 433 | 434 | "@babel/plugin-transform-for-of@^7.2.0": 435 | version "7.2.0" 436 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.2.0.tgz#ab7468befa80f764bb03d3cb5eef8cc998e1cad9" 437 | integrity sha512-Kz7Mt0SsV2tQk6jG5bBv5phVbkd0gd27SgYD4hH1aLMJRchM0dzHaXvrWhVZ+WxAlDoAKZ7Uy3jVTW2mKXQ1WQ== 438 | dependencies: 439 | "@babel/helper-plugin-utils" "^7.0.0" 440 | 441 | "@babel/plugin-transform-function-name@^7.2.0": 442 | version "7.2.0" 443 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.2.0.tgz#f7930362829ff99a3174c39f0afcc024ef59731a" 444 | integrity sha512-kWgksow9lHdvBC2Z4mxTsvc7YdY7w/V6B2vy9cTIPtLEE9NhwoWivaxdNM/S37elu5bqlLP/qOY906LukO9lkQ== 445 | dependencies: 446 | "@babel/helper-function-name" "^7.1.0" 447 | "@babel/helper-plugin-utils" "^7.0.0" 448 | 449 | "@babel/plugin-transform-literals@^7.2.0": 450 | version "7.2.0" 451 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz#690353e81f9267dad4fd8cfd77eafa86aba53ea1" 452 | integrity sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg== 453 | dependencies: 454 | "@babel/helper-plugin-utils" "^7.0.0" 455 | 456 | "@babel/plugin-transform-modules-amd@^7.2.0": 457 | version "7.2.0" 458 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.2.0.tgz#82a9bce45b95441f617a24011dc89d12da7f4ee6" 459 | integrity sha512-mK2A8ucqz1qhrdqjS9VMIDfIvvT2thrEsIQzbaTdc5QFzhDjQv2CkJJ5f6BXIkgbmaoax3zBr2RyvV/8zeoUZw== 460 | dependencies: 461 | "@babel/helper-module-transforms" "^7.1.0" 462 | "@babel/helper-plugin-utils" "^7.0.0" 463 | 464 | "@babel/plugin-transform-modules-commonjs@^7.2.0": 465 | version "7.2.0" 466 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.2.0.tgz#c4f1933f5991d5145e9cfad1dfd848ea1727f404" 467 | integrity sha512-V6y0uaUQrQPXUrmj+hgnks8va2L0zcZymeU7TtWEgdRLNkceafKXEduv7QzgQAE4lT+suwooG9dC7LFhdRAbVQ== 468 | dependencies: 469 | "@babel/helper-module-transforms" "^7.1.0" 470 | "@babel/helper-plugin-utils" "^7.0.0" 471 | "@babel/helper-simple-access" "^7.1.0" 472 | 473 | "@babel/plugin-transform-modules-systemjs@^7.2.0": 474 | version "7.2.0" 475 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.2.0.tgz#912bfe9e5ff982924c81d0937c92d24994bb9068" 476 | integrity sha512-aYJwpAhoK9a+1+O625WIjvMY11wkB/ok0WClVwmeo3mCjcNRjt+/8gHWrB5i+00mUju0gWsBkQnPpdvQ7PImmQ== 477 | dependencies: 478 | "@babel/helper-hoist-variables" "^7.0.0" 479 | "@babel/helper-plugin-utils" "^7.0.0" 480 | 481 | "@babel/plugin-transform-modules-umd@^7.2.0": 482 | version "7.2.0" 483 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz#7678ce75169f0877b8eb2235538c074268dd01ae" 484 | integrity sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw== 485 | dependencies: 486 | "@babel/helper-module-transforms" "^7.1.0" 487 | "@babel/helper-plugin-utils" "^7.0.0" 488 | 489 | "@babel/plugin-transform-named-capturing-groups-regex@^7.3.0": 490 | version "7.3.0" 491 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.3.0.tgz#140b52985b2d6ef0cb092ef3b29502b990f9cd50" 492 | integrity sha512-NxIoNVhk9ZxS+9lSoAQ/LM0V2UEvARLttEHUrRDGKFaAxOYQcrkN/nLRE+BbbicCAvZPl7wMP0X60HsHE5DtQw== 493 | dependencies: 494 | regexp-tree "^0.1.0" 495 | 496 | "@babel/plugin-transform-new-target@^7.0.0": 497 | version "7.0.0" 498 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0.tgz#ae8fbd89517fa7892d20e6564e641e8770c3aa4a" 499 | integrity sha512-yin069FYjah+LbqfGeTfzIBODex/e++Yfa0rH0fpfam9uTbuEeEOx5GLGr210ggOV77mVRNoeqSYqeuaqSzVSw== 500 | dependencies: 501 | "@babel/helper-plugin-utils" "^7.0.0" 502 | 503 | "@babel/plugin-transform-object-super@^7.2.0": 504 | version "7.2.0" 505 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz#b35d4c10f56bab5d650047dad0f1d8e8814b6598" 506 | integrity sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg== 507 | dependencies: 508 | "@babel/helper-plugin-utils" "^7.0.0" 509 | "@babel/helper-replace-supers" "^7.1.0" 510 | 511 | "@babel/plugin-transform-parameters@^7.2.0": 512 | version "7.2.0" 513 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.2.0.tgz#0d5ad15dc805e2ea866df4dd6682bfe76d1408c2" 514 | integrity sha512-kB9+hhUidIgUoBQ0MsxMewhzr8i60nMa2KgeJKQWYrqQpqcBYtnpR+JgkadZVZoaEZ/eKu9mclFaVwhRpLNSzA== 515 | dependencies: 516 | "@babel/helper-call-delegate" "^7.1.0" 517 | "@babel/helper-get-function-arity" "^7.0.0" 518 | "@babel/helper-plugin-utils" "^7.0.0" 519 | 520 | "@babel/plugin-transform-react-display-name@^7.0.0": 521 | version "7.2.0" 522 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.2.0.tgz#ebfaed87834ce8dc4279609a4f0c324c156e3eb0" 523 | integrity sha512-Htf/tPa5haZvRMiNSQSFifK12gtr/8vwfr+A9y69uF0QcU77AVu4K7MiHEkTxF7lQoHOL0F9ErqgfNEAKgXj7A== 524 | dependencies: 525 | "@babel/helper-plugin-utils" "^7.0.0" 526 | 527 | "@babel/plugin-transform-react-jsx-self@^7.0.0": 528 | version "7.2.0" 529 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.2.0.tgz#461e21ad9478f1031dd5e276108d027f1b5240ba" 530 | integrity sha512-v6S5L/myicZEy+jr6ielB0OR8h+EH/1QFx/YJ7c7Ua+7lqsjj/vW6fD5FR9hB/6y7mGbfT4vAURn3xqBxsUcdg== 531 | dependencies: 532 | "@babel/helper-plugin-utils" "^7.0.0" 533 | "@babel/plugin-syntax-jsx" "^7.2.0" 534 | 535 | "@babel/plugin-transform-react-jsx-source@^7.0.0": 536 | version "7.2.0" 537 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.2.0.tgz#20c8c60f0140f5dd3cd63418d452801cf3f7180f" 538 | integrity sha512-A32OkKTp4i5U6aE88GwwcuV4HAprUgHcTq0sSafLxjr6AW0QahrCRCjxogkbbcdtpbXkuTOlgpjophCxb6sh5g== 539 | dependencies: 540 | "@babel/helper-plugin-utils" "^7.0.0" 541 | "@babel/plugin-syntax-jsx" "^7.2.0" 542 | 543 | "@babel/plugin-transform-react-jsx@^7.0.0": 544 | version "7.3.0" 545 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.3.0.tgz#f2cab99026631c767e2745a5368b331cfe8f5290" 546 | integrity sha512-a/+aRb7R06WcKvQLOu4/TpjKOdvVEKRLWFpKcNuHhiREPgGRB4TQJxq07+EZLS8LFVYpfq1a5lDUnuMdcCpBKg== 547 | dependencies: 548 | "@babel/helper-builder-react-jsx" "^7.3.0" 549 | "@babel/helper-plugin-utils" "^7.0.0" 550 | "@babel/plugin-syntax-jsx" "^7.2.0" 551 | 552 | "@babel/plugin-transform-regenerator@^7.0.0": 553 | version "7.0.0" 554 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0.tgz#5b41686b4ed40bef874d7ed6a84bdd849c13e0c1" 555 | integrity sha512-sj2qzsEx8KDVv1QuJc/dEfilkg3RRPvPYx/VnKLtItVQRWt1Wqf5eVCOLZm29CiGFfYYsA3VPjfizTCV0S0Dlw== 556 | dependencies: 557 | regenerator-transform "^0.13.3" 558 | 559 | "@babel/plugin-transform-shorthand-properties@^7.2.0": 560 | version "7.2.0" 561 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz#6333aee2f8d6ee7e28615457298934a3b46198f0" 562 | integrity sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg== 563 | dependencies: 564 | "@babel/helper-plugin-utils" "^7.0.0" 565 | 566 | "@babel/plugin-transform-spread@^7.2.0": 567 | version "7.2.2" 568 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz#3103a9abe22f742b6d406ecd3cd49b774919b406" 569 | integrity sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w== 570 | dependencies: 571 | "@babel/helper-plugin-utils" "^7.0.0" 572 | 573 | "@babel/plugin-transform-sticky-regex@^7.2.0": 574 | version "7.2.0" 575 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz#a1e454b5995560a9c1e0d537dfc15061fd2687e1" 576 | integrity sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw== 577 | dependencies: 578 | "@babel/helper-plugin-utils" "^7.0.0" 579 | "@babel/helper-regex" "^7.0.0" 580 | 581 | "@babel/plugin-transform-template-literals@^7.2.0": 582 | version "7.2.0" 583 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.2.0.tgz#d87ed01b8eaac7a92473f608c97c089de2ba1e5b" 584 | integrity sha512-FkPix00J9A/XWXv4VoKJBMeSkyY9x/TqIh76wzcdfl57RJJcf8CehQ08uwfhCDNtRQYtHQKBTwKZDEyjE13Lwg== 585 | dependencies: 586 | "@babel/helper-annotate-as-pure" "^7.0.0" 587 | "@babel/helper-plugin-utils" "^7.0.0" 588 | 589 | "@babel/plugin-transform-typeof-symbol@^7.2.0": 590 | version "7.2.0" 591 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz#117d2bcec2fbf64b4b59d1f9819894682d29f2b2" 592 | integrity sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw== 593 | dependencies: 594 | "@babel/helper-plugin-utils" "^7.0.0" 595 | 596 | "@babel/plugin-transform-typescript@^7.1.0": 597 | version "7.3.2" 598 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.3.2.tgz#59a7227163e55738842f043d9e5bd7c040447d96" 599 | integrity sha512-Pvco0x0ZSCnexJnshMfaibQ5hnK8aUHSvjCQhC1JR8eeg+iBwt0AtCO7gWxJ358zZevuf9wPSO5rv+WJcbHPXQ== 600 | dependencies: 601 | "@babel/helper-plugin-utils" "^7.0.0" 602 | "@babel/plugin-syntax-typescript" "^7.2.0" 603 | 604 | "@babel/plugin-transform-unicode-regex@^7.2.0": 605 | version "7.2.0" 606 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.2.0.tgz#4eb8db16f972f8abb5062c161b8b115546ade08b" 607 | integrity sha512-m48Y0lMhrbXEJnVUaYly29jRXbQ3ksxPrS1Tg8t+MHqzXhtBYAvI51euOBaoAlZLPHsieY9XPVMf80a5x0cPcA== 608 | dependencies: 609 | "@babel/helper-plugin-utils" "^7.0.0" 610 | "@babel/helper-regex" "^7.0.0" 611 | regexpu-core "^4.1.3" 612 | 613 | "@babel/preset-env@^7.1.6": 614 | version "7.3.1" 615 | resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.3.1.tgz#389e8ca6b17ae67aaf9a2111665030be923515db" 616 | integrity sha512-FHKrD6Dxf30e8xgHQO0zJZpUPfVZg+Xwgz5/RdSWCbza9QLNk4Qbp40ctRoqDxml3O8RMzB1DU55SXeDG6PqHQ== 617 | dependencies: 618 | "@babel/helper-module-imports" "^7.0.0" 619 | "@babel/helper-plugin-utils" "^7.0.0" 620 | "@babel/plugin-proposal-async-generator-functions" "^7.2.0" 621 | "@babel/plugin-proposal-json-strings" "^7.2.0" 622 | "@babel/plugin-proposal-object-rest-spread" "^7.3.1" 623 | "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" 624 | "@babel/plugin-proposal-unicode-property-regex" "^7.2.0" 625 | "@babel/plugin-syntax-async-generators" "^7.2.0" 626 | "@babel/plugin-syntax-json-strings" "^7.2.0" 627 | "@babel/plugin-syntax-object-rest-spread" "^7.2.0" 628 | "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" 629 | "@babel/plugin-transform-arrow-functions" "^7.2.0" 630 | "@babel/plugin-transform-async-to-generator" "^7.2.0" 631 | "@babel/plugin-transform-block-scoped-functions" "^7.2.0" 632 | "@babel/plugin-transform-block-scoping" "^7.2.0" 633 | "@babel/plugin-transform-classes" "^7.2.0" 634 | "@babel/plugin-transform-computed-properties" "^7.2.0" 635 | "@babel/plugin-transform-destructuring" "^7.2.0" 636 | "@babel/plugin-transform-dotall-regex" "^7.2.0" 637 | "@babel/plugin-transform-duplicate-keys" "^7.2.0" 638 | "@babel/plugin-transform-exponentiation-operator" "^7.2.0" 639 | "@babel/plugin-transform-for-of" "^7.2.0" 640 | "@babel/plugin-transform-function-name" "^7.2.0" 641 | "@babel/plugin-transform-literals" "^7.2.0" 642 | "@babel/plugin-transform-modules-amd" "^7.2.0" 643 | "@babel/plugin-transform-modules-commonjs" "^7.2.0" 644 | "@babel/plugin-transform-modules-systemjs" "^7.2.0" 645 | "@babel/plugin-transform-modules-umd" "^7.2.0" 646 | "@babel/plugin-transform-named-capturing-groups-regex" "^7.3.0" 647 | "@babel/plugin-transform-new-target" "^7.0.0" 648 | "@babel/plugin-transform-object-super" "^7.2.0" 649 | "@babel/plugin-transform-parameters" "^7.2.0" 650 | "@babel/plugin-transform-regenerator" "^7.0.0" 651 | "@babel/plugin-transform-shorthand-properties" "^7.2.0" 652 | "@babel/plugin-transform-spread" "^7.2.0" 653 | "@babel/plugin-transform-sticky-regex" "^7.2.0" 654 | "@babel/plugin-transform-template-literals" "^7.2.0" 655 | "@babel/plugin-transform-typeof-symbol" "^7.2.0" 656 | "@babel/plugin-transform-unicode-regex" "^7.2.0" 657 | browserslist "^4.3.4" 658 | invariant "^2.2.2" 659 | js-levenshtein "^1.1.3" 660 | semver "^5.3.0" 661 | 662 | "@babel/preset-react@^7.0.0": 663 | version "7.0.0" 664 | resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.0.0.tgz#e86b4b3d99433c7b3e9e91747e2653958bc6b3c0" 665 | integrity sha512-oayxyPS4Zj+hF6Et11BwuBkmpgT/zMxyuZgFrMeZID6Hdh3dGlk4sHCAhdBCpuCKW2ppBfl2uCCetlrUIJRY3w== 666 | dependencies: 667 | "@babel/helper-plugin-utils" "^7.0.0" 668 | "@babel/plugin-transform-react-display-name" "^7.0.0" 669 | "@babel/plugin-transform-react-jsx" "^7.0.0" 670 | "@babel/plugin-transform-react-jsx-self" "^7.0.0" 671 | "@babel/plugin-transform-react-jsx-source" "^7.0.0" 672 | 673 | "@babel/preset-typescript@^7.1.0": 674 | version "7.1.0" 675 | resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.1.0.tgz#49ad6e2084ff0bfb5f1f7fb3b5e76c434d442c7f" 676 | integrity sha512-LYveByuF9AOM8WrsNne5+N79k1YxjNB6gmpCQsnuSBAcV8QUeB+ZUxQzL7Rz7HksPbahymKkq2qBR+o36ggFZA== 677 | dependencies: 678 | "@babel/helper-plugin-utils" "^7.0.0" 679 | "@babel/plugin-transform-typescript" "^7.1.0" 680 | 681 | "@babel/template@^7.1.0", "@babel/template@^7.1.2", "@babel/template@^7.14.5", "@babel/template@^7.2.2": 682 | version "7.14.5" 683 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.14.5.tgz#a9bc9d8b33354ff6e55a9c60d1109200a68974f4" 684 | integrity sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g== 685 | dependencies: 686 | "@babel/code-frame" "^7.14.5" 687 | "@babel/parser" "^7.14.5" 688 | "@babel/types" "^7.14.5" 689 | 690 | "@babel/traverse@^7.1.0", "@babel/traverse@^7.1.5", "@babel/traverse@^7.2.2", "@babel/traverse@^7.2.3": 691 | version "7.14.5" 692 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.5.tgz#c111b0f58afab4fea3d3385a406f692748c59870" 693 | integrity sha512-G3BiS15vevepdmFqmUc9X+64y0viZYygubAMO8SvBmKARuF6CPSZtH4Ng9vi/lrWlZFGe3FWdXNy835akH8Glg== 694 | dependencies: 695 | "@babel/code-frame" "^7.14.5" 696 | "@babel/generator" "^7.14.5" 697 | "@babel/helper-function-name" "^7.14.5" 698 | "@babel/helper-hoist-variables" "^7.14.5" 699 | "@babel/helper-split-export-declaration" "^7.14.5" 700 | "@babel/parser" "^7.14.5" 701 | "@babel/types" "^7.14.5" 702 | debug "^4.1.0" 703 | globals "^11.1.0" 704 | 705 | "@babel/types@^7.0.0", "@babel/types@^7.14.5", "@babel/types@^7.2.0", "@babel/types@^7.2.2", "@babel/types@^7.3.0": 706 | version "7.14.5" 707 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.5.tgz#3bb997ba829a2104cedb20689c4a5b8121d383ff" 708 | integrity sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg== 709 | dependencies: 710 | "@babel/helper-validator-identifier" "^7.14.5" 711 | to-fast-properties "^2.0.0" 712 | 713 | "@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3": 714 | version "2.1.8-no-fsevents.3" 715 | resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz#323d72dd25103d0c4fbdce89dadf574a787b1f9b" 716 | integrity sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ== 717 | 718 | "@types/node@*": 719 | version "13.7.7" 720 | resolved "https://registry.yarnpkg.com/@types/node/-/node-13.7.7.tgz#1628e6461ba8cc9b53196dfeaeec7b07fa6eea99" 721 | integrity sha512-Uo4chgKbnPNlxQwoFmYIwctkQVkMMmsAoGGU4JKwLuvBefF0pCq4FybNSnfkfRCpC7ZW7kttcC/TrRtAJsvGtg== 722 | 723 | "@types/prop-types@*": 724 | version "15.5.8" 725 | resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.5.8.tgz#8ae4e0ea205fe95c3901a5a1df7f66495e3a56ce" 726 | integrity sha512-3AQoUxQcQtLHsK25wtTWIoIpgYjH3vSDroZOUr7PpCHw/jLY1RB9z9E8dBT/OSmwStVgkRNvdh+ZHNiomRieaw== 727 | 728 | "@types/react-dom@^16.0.11": 729 | version "16.8.0" 730 | resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.8.0.tgz#c565f43f9d2ec911f9e0b8f3b74e25e67879aa3f" 731 | integrity sha512-Jp4ufcEEjVJEB0OHq2MCZcE1u3KYUKO6WnSuiU/tZeYeiZxUoQavfa/TZeiIT+1XoN6l0lQVNM30VINZFDeolQ== 732 | dependencies: 733 | "@types/react" "*" 734 | 735 | "@types/react@*", "@types/react@^16.7.11": 736 | version "16.8.2" 737 | resolved "https://registry.yarnpkg.com/@types/react/-/react-16.8.2.tgz#3b7a7f7ea89d1c7d68b00849fb5de839011c077b" 738 | integrity sha512-6mcKsqlqkN9xADrwiUz2gm9Wg4iGnlVGciwBRYFQSMWG6MQjhOZ/AVnxn+6v8nslFgfYTV8fNdE6XwKu6va5PA== 739 | dependencies: 740 | "@types/prop-types" "*" 741 | csstype "^2.2.0" 742 | 743 | "@types/styled-components@^4.1.2": 744 | version "4.1.8" 745 | resolved "https://registry.yarnpkg.com/@types/styled-components/-/styled-components-4.1.8.tgz#15c8a53bb4b9066e528fafb7558963dee5690ae0" 746 | integrity sha512-NrG0wmB9Rafy5i00GFxUM/uEge148bX2QPr+Q/MI2fXrew6WOp1hN2A3YEG0AeT45z47CMdJ3BEffPsdQCWayA== 747 | dependencies: 748 | "@types/node" "*" 749 | "@types/react" "*" 750 | csstype "^2.2.0" 751 | 752 | acorn-jsx@^5.0.0: 753 | version "5.3.2" 754 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" 755 | integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== 756 | 757 | acorn@^6.0.7: 758 | version "6.4.2" 759 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" 760 | integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== 761 | 762 | ajv@^6.10.2, ajv@^6.9.1: 763 | version "6.12.6" 764 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" 765 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== 766 | dependencies: 767 | fast-deep-equal "^3.1.1" 768 | fast-json-stable-stringify "^2.0.0" 769 | json-schema-traverse "^0.4.1" 770 | uri-js "^4.2.2" 771 | 772 | ansi-escapes@^3.2.0: 773 | version "3.2.0" 774 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" 775 | integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== 776 | 777 | ansi-regex@^3.0.0: 778 | version "3.0.0" 779 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" 780 | integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= 781 | 782 | ansi-regex@^4.1.0: 783 | version "4.1.0" 784 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" 785 | integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== 786 | 787 | ansi-styles@^3.2.0, ansi-styles@^3.2.1: 788 | version "3.2.1" 789 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 790 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 791 | dependencies: 792 | color-convert "^1.9.0" 793 | 794 | anymatch@~3.1.2: 795 | version "3.1.2" 796 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" 797 | integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== 798 | dependencies: 799 | normalize-path "^3.0.0" 800 | picomatch "^2.0.4" 801 | 802 | argparse@^1.0.7: 803 | version "1.0.10" 804 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 805 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== 806 | dependencies: 807 | sprintf-js "~1.0.2" 808 | 809 | aria-query@^3.0.0: 810 | version "3.0.0" 811 | resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-3.0.0.tgz#65b3fcc1ca1155a8c9ae64d6eee297f15d5133cc" 812 | integrity sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w= 813 | dependencies: 814 | ast-types-flow "0.0.7" 815 | commander "^2.11.0" 816 | 817 | array-includes@^3.0.3: 818 | version "3.0.3" 819 | resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" 820 | integrity sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0= 821 | dependencies: 822 | define-properties "^1.1.2" 823 | es-abstract "^1.7.0" 824 | 825 | ast-types-flow@0.0.7, ast-types-flow@^0.0.7: 826 | version "0.0.7" 827 | resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" 828 | integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0= 829 | 830 | astral-regex@^1.0.0: 831 | version "1.0.0" 832 | resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" 833 | integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== 834 | 835 | axobject-query@^2.0.2: 836 | version "2.0.2" 837 | resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.0.2.tgz#ea187abe5b9002b377f925d8bf7d1c561adf38f9" 838 | integrity sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww== 839 | dependencies: 840 | ast-types-flow "0.0.7" 841 | 842 | balanced-match@^1.0.0: 843 | version "1.0.0" 844 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 845 | integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= 846 | 847 | binary-extensions@^2.0.0: 848 | version "2.2.0" 849 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" 850 | integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== 851 | 852 | brace-expansion@^1.1.7: 853 | version "1.1.11" 854 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 855 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 856 | dependencies: 857 | balanced-match "^1.0.0" 858 | concat-map "0.0.1" 859 | 860 | braces@~3.0.2: 861 | version "3.0.2" 862 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 863 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 864 | dependencies: 865 | fill-range "^7.0.1" 866 | 867 | browserslist@^4.3.4: 868 | version "4.18.1" 869 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.18.1.tgz#60d3920f25b6860eb917c6c7b185576f4d8b017f" 870 | integrity sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ== 871 | dependencies: 872 | caniuse-lite "^1.0.30001280" 873 | electron-to-chromium "^1.3.896" 874 | escalade "^3.1.1" 875 | node-releases "^2.0.1" 876 | picocolors "^1.0.0" 877 | 878 | callsites@^3.0.0: 879 | version "3.0.0" 880 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.0.0.tgz#fb7eb569b72ad7a45812f93fd9430a3e410b3dd3" 881 | integrity sha512-tWnkwu9YEq2uzlBDI4RcLn8jrFvF9AOi8PxDNU3hZZjJcjkcRAq3vCI+vZcg1SuxISDYe86k9VZFwAxDiJGoAw== 882 | 883 | caniuse-lite@^1.0.30001280: 884 | version "1.0.30001286" 885 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001286.tgz#3e9debad420419618cfdf52dc9b6572b28a8fff6" 886 | integrity sha512-zaEMRH6xg8ESMi2eQ3R4eZ5qw/hJiVsO/HlLwniIwErij0JDr9P+8V4dtx1l+kLq6j3yy8l8W4fst1lBnat5wQ== 887 | 888 | chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.2: 889 | version "2.4.2" 890 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 891 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 892 | dependencies: 893 | ansi-styles "^3.2.1" 894 | escape-string-regexp "^1.0.5" 895 | supports-color "^5.3.0" 896 | 897 | chardet@^0.7.0: 898 | version "0.7.0" 899 | resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" 900 | integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== 901 | 902 | chokidar@^3.4.0: 903 | version "3.5.2" 904 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" 905 | integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== 906 | dependencies: 907 | anymatch "~3.1.2" 908 | braces "~3.0.2" 909 | glob-parent "~5.1.2" 910 | is-binary-path "~2.1.0" 911 | is-glob "~4.0.1" 912 | normalize-path "~3.0.0" 913 | readdirp "~3.6.0" 914 | optionalDependencies: 915 | fsevents "~2.3.2" 916 | 917 | cli-cursor@^2.1.0: 918 | version "2.1.0" 919 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" 920 | integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= 921 | dependencies: 922 | restore-cursor "^2.0.0" 923 | 924 | cli-width@^2.0.0: 925 | version "2.2.0" 926 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" 927 | integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= 928 | 929 | color-convert@^1.9.0: 930 | version "1.9.3" 931 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 932 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 933 | dependencies: 934 | color-name "1.1.3" 935 | 936 | color-name@1.1.3: 937 | version "1.1.3" 938 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 939 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 940 | 941 | commander@^2.11.0: 942 | version "2.19.0" 943 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" 944 | integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== 945 | 946 | commander@^4.0.1: 947 | version "4.1.1" 948 | resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" 949 | integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== 950 | 951 | concat-map@0.0.1: 952 | version "0.0.1" 953 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 954 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 955 | 956 | contains-path@^0.1.0: 957 | version "0.1.0" 958 | resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" 959 | integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= 960 | 961 | convert-source-map@^1.1.0: 962 | version "1.6.0" 963 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" 964 | integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A== 965 | dependencies: 966 | safe-buffer "~5.1.1" 967 | 968 | cross-spawn@^6.0.5: 969 | version "6.0.5" 970 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" 971 | integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== 972 | dependencies: 973 | nice-try "^1.0.4" 974 | path-key "^2.0.1" 975 | semver "^5.5.0" 976 | shebang-command "^1.2.0" 977 | which "^1.2.9" 978 | 979 | csstype@^2.2.0: 980 | version "2.6.2" 981 | resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.2.tgz#3043d5e065454579afc7478a18de41909c8a2f01" 982 | integrity sha512-Rl7PvTae0pflc1YtxtKbiSqq20Ts6vpIYOD5WBafl4y123DyHUeLrRdQP66sQW8/6gmX8jrYJLXwNeMqYVJcow== 983 | 984 | damerau-levenshtein@^1.0.4: 985 | version "1.0.4" 986 | resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz#03191c432cb6eea168bb77f3a55ffdccb8978514" 987 | integrity sha1-AxkcQyy27qFou3fzpV/9zLiXhRQ= 988 | 989 | debug@^2.6.8, debug@^2.6.9: 990 | version "2.6.9" 991 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 992 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 993 | dependencies: 994 | ms "2.0.0" 995 | 996 | debug@^4.0.1, debug@^4.1.0: 997 | version "4.1.1" 998 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" 999 | integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== 1000 | dependencies: 1001 | ms "^2.1.1" 1002 | 1003 | deep-is@~0.1.3: 1004 | version "0.1.3" 1005 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" 1006 | integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= 1007 | 1008 | define-properties@^1.1.2, define-properties@^1.1.3: 1009 | version "1.1.3" 1010 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" 1011 | integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== 1012 | dependencies: 1013 | object-keys "^1.0.12" 1014 | 1015 | doctrine@1.5.0: 1016 | version "1.5.0" 1017 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" 1018 | integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= 1019 | dependencies: 1020 | esutils "^2.0.2" 1021 | isarray "^1.0.0" 1022 | 1023 | doctrine@^2.1.0: 1024 | version "2.1.0" 1025 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" 1026 | integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== 1027 | dependencies: 1028 | esutils "^2.0.2" 1029 | 1030 | doctrine@^3.0.0: 1031 | version "3.0.0" 1032 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" 1033 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== 1034 | dependencies: 1035 | esutils "^2.0.2" 1036 | 1037 | electron-to-chromium@^1.3.896: 1038 | version "1.4.16" 1039 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.16.tgz#38ddecc616385e6f101359d1b978c802664157d2" 1040 | integrity sha512-BQb7FgYwnu6haWLU63/CdVW+9xhmHls3RCQUFiV4lvw3wimEHTVcUk2hkuZo76QhR8nnDdfZE7evJIZqijwPdA== 1041 | 1042 | emoji-regex@^7.0.1, emoji-regex@^7.0.2: 1043 | version "7.0.3" 1044 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" 1045 | integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== 1046 | 1047 | error-ex@^1.2.0: 1048 | version "1.3.2" 1049 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" 1050 | integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== 1051 | dependencies: 1052 | is-arrayish "^0.2.1" 1053 | 1054 | es-abstract@^1.11.0, es-abstract@^1.12.0, es-abstract@^1.7.0: 1055 | version "1.13.0" 1056 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" 1057 | integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg== 1058 | dependencies: 1059 | es-to-primitive "^1.2.0" 1060 | function-bind "^1.1.1" 1061 | has "^1.0.3" 1062 | is-callable "^1.1.4" 1063 | is-regex "^1.0.4" 1064 | object-keys "^1.0.12" 1065 | 1066 | es-to-primitive@^1.2.0: 1067 | version "1.2.0" 1068 | resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" 1069 | integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== 1070 | dependencies: 1071 | is-callable "^1.1.4" 1072 | is-date-object "^1.0.1" 1073 | is-symbol "^1.0.2" 1074 | 1075 | escalade@^3.1.1: 1076 | version "3.1.1" 1077 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" 1078 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 1079 | 1080 | escape-string-regexp@^1.0.5: 1081 | version "1.0.5" 1082 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 1083 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 1084 | 1085 | eslint-config-airbnb-base@^13.1.0: 1086 | version "13.1.0" 1087 | resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-13.1.0.tgz#b5a1b480b80dfad16433d6c4ad84e6605052c05c" 1088 | integrity sha512-XWwQtf3U3zIoKO1BbHh6aUhJZQweOwSt4c2JrPDg9FP3Ltv3+YfEv7jIDB8275tVnO/qOHbfuYg3kzw6Je7uWw== 1089 | dependencies: 1090 | eslint-restricted-globals "^0.1.1" 1091 | object.assign "^4.1.0" 1092 | object.entries "^1.0.4" 1093 | 1094 | eslint-config-airbnb@^17.1.0: 1095 | version "17.1.0" 1096 | resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-17.1.0.tgz#3964ed4bc198240315ff52030bf8636f42bc4732" 1097 | integrity sha512-R9jw28hFfEQnpPau01NO5K/JWMGLi6aymiF6RsnMURjTk+MqZKllCqGK/0tOvHkPi/NWSSOU2Ced/GX++YxLnw== 1098 | dependencies: 1099 | eslint-config-airbnb-base "^13.1.0" 1100 | object.assign "^4.1.0" 1101 | object.entries "^1.0.4" 1102 | 1103 | eslint-import-resolver-node@^0.3.2: 1104 | version "0.3.2" 1105 | resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a" 1106 | integrity sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q== 1107 | dependencies: 1108 | debug "^2.6.9" 1109 | resolve "^1.5.0" 1110 | 1111 | eslint-module-utils@^2.3.0: 1112 | version "2.3.0" 1113 | resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.3.0.tgz#546178dab5e046c8b562bbb50705e2456d7bda49" 1114 | integrity sha512-lmDJgeOOjk8hObTysjqH7wyMi+nsHwwvfBykwfhjR1LNdd7C2uFJBvx4OpWYpXOw4df1yE1cDEVd1yLHitk34w== 1115 | dependencies: 1116 | debug "^2.6.8" 1117 | pkg-dir "^2.0.0" 1118 | 1119 | eslint-plugin-import@^2.14.0: 1120 | version "2.16.0" 1121 | resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.16.0.tgz#97ac3e75d0791c4fac0e15ef388510217be7f66f" 1122 | integrity sha512-z6oqWlf1x5GkHIFgrSvtmudnqM6Q60KM4KvpWi5ubonMjycLjndvd5+8VAZIsTlHC03djdgJuyKG6XO577px6A== 1123 | dependencies: 1124 | contains-path "^0.1.0" 1125 | debug "^2.6.9" 1126 | doctrine "1.5.0" 1127 | eslint-import-resolver-node "^0.3.2" 1128 | eslint-module-utils "^2.3.0" 1129 | has "^1.0.3" 1130 | lodash "^4.17.11" 1131 | minimatch "^3.0.4" 1132 | read-pkg-up "^2.0.0" 1133 | resolve "^1.9.0" 1134 | 1135 | eslint-plugin-jsx-a11y@^6.1.2: 1136 | version "6.2.1" 1137 | resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.1.tgz#4ebba9f339b600ff415ae4166e3e2e008831cf0c" 1138 | integrity sha512-cjN2ObWrRz0TTw7vEcGQrx+YltMvZoOEx4hWU8eEERDnBIU00OTq7Vr+jA7DFKxiwLNv4tTh5Pq2GUNEa8b6+w== 1139 | dependencies: 1140 | aria-query "^3.0.0" 1141 | array-includes "^3.0.3" 1142 | ast-types-flow "^0.0.7" 1143 | axobject-query "^2.0.2" 1144 | damerau-levenshtein "^1.0.4" 1145 | emoji-regex "^7.0.2" 1146 | has "^1.0.3" 1147 | jsx-ast-utils "^2.0.1" 1148 | 1149 | eslint-plugin-react@^7.11.1: 1150 | version "7.12.4" 1151 | resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.12.4.tgz#b1ecf26479d61aee650da612e425c53a99f48c8c" 1152 | integrity sha512-1puHJkXJY+oS1t467MjbqjvX53uQ05HXwjqDgdbGBqf5j9eeydI54G3KwiJmWciQ0HTBacIKw2jgwSBSH3yfgQ== 1153 | dependencies: 1154 | array-includes "^3.0.3" 1155 | doctrine "^2.1.0" 1156 | has "^1.0.3" 1157 | jsx-ast-utils "^2.0.1" 1158 | object.fromentries "^2.0.0" 1159 | prop-types "^15.6.2" 1160 | resolve "^1.9.0" 1161 | 1162 | eslint-restricted-globals@^0.1.1: 1163 | version "0.1.1" 1164 | resolved "https://registry.yarnpkg.com/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz#35f0d5cbc64c2e3ed62e93b4b1a7af05ba7ed4d7" 1165 | integrity sha1-NfDVy8ZMLj7WLpO0saevBbp+1Nc= 1166 | 1167 | eslint-scope@^4.0.3: 1168 | version "4.0.3" 1169 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" 1170 | integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== 1171 | dependencies: 1172 | esrecurse "^4.1.0" 1173 | estraverse "^4.1.1" 1174 | 1175 | eslint-utils@^1.3.1: 1176 | version "1.4.3" 1177 | resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" 1178 | integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== 1179 | dependencies: 1180 | eslint-visitor-keys "^1.1.0" 1181 | 1182 | eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: 1183 | version "1.3.0" 1184 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" 1185 | integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== 1186 | 1187 | eslint@^5.9.0: 1188 | version "5.16.0" 1189 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz#a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea" 1190 | integrity sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg== 1191 | dependencies: 1192 | "@babel/code-frame" "^7.0.0" 1193 | ajv "^6.9.1" 1194 | chalk "^2.1.0" 1195 | cross-spawn "^6.0.5" 1196 | debug "^4.0.1" 1197 | doctrine "^3.0.0" 1198 | eslint-scope "^4.0.3" 1199 | eslint-utils "^1.3.1" 1200 | eslint-visitor-keys "^1.0.0" 1201 | espree "^5.0.1" 1202 | esquery "^1.0.1" 1203 | esutils "^2.0.2" 1204 | file-entry-cache "^5.0.1" 1205 | functional-red-black-tree "^1.0.1" 1206 | glob "^7.1.2" 1207 | globals "^11.7.0" 1208 | ignore "^4.0.6" 1209 | import-fresh "^3.0.0" 1210 | imurmurhash "^0.1.4" 1211 | inquirer "^6.2.2" 1212 | js-yaml "^3.13.0" 1213 | json-stable-stringify-without-jsonify "^1.0.1" 1214 | levn "^0.3.0" 1215 | lodash "^4.17.11" 1216 | minimatch "^3.0.4" 1217 | mkdirp "^0.5.1" 1218 | natural-compare "^1.4.0" 1219 | optionator "^0.8.2" 1220 | path-is-inside "^1.0.2" 1221 | progress "^2.0.0" 1222 | regexpp "^2.0.1" 1223 | semver "^5.5.1" 1224 | strip-ansi "^4.0.0" 1225 | strip-json-comments "^2.0.1" 1226 | table "^5.2.3" 1227 | text-table "^0.2.0" 1228 | 1229 | espree@^5.0.1: 1230 | version "5.0.1" 1231 | resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz#5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a" 1232 | integrity sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A== 1233 | dependencies: 1234 | acorn "^6.0.7" 1235 | acorn-jsx "^5.0.0" 1236 | eslint-visitor-keys "^1.0.0" 1237 | 1238 | esprima@^4.0.0: 1239 | version "4.0.1" 1240 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" 1241 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== 1242 | 1243 | esquery@^1.0.1: 1244 | version "1.0.1" 1245 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" 1246 | integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA== 1247 | dependencies: 1248 | estraverse "^4.0.0" 1249 | 1250 | esrecurse@^4.1.0: 1251 | version "4.3.0" 1252 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" 1253 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== 1254 | dependencies: 1255 | estraverse "^5.2.0" 1256 | 1257 | estraverse@^4.0.0, estraverse@^4.1.1: 1258 | version "4.2.0" 1259 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" 1260 | integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM= 1261 | 1262 | estraverse@^5.2.0: 1263 | version "5.3.0" 1264 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" 1265 | integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== 1266 | 1267 | esutils@^2.0.0, esutils@^2.0.2: 1268 | version "2.0.2" 1269 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" 1270 | integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs= 1271 | 1272 | external-editor@^3.0.3: 1273 | version "3.0.3" 1274 | resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz#5866db29a97826dbe4bf3afd24070ead9ea43a27" 1275 | integrity sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA== 1276 | dependencies: 1277 | chardet "^0.7.0" 1278 | iconv-lite "^0.4.24" 1279 | tmp "^0.0.33" 1280 | 1281 | fast-deep-equal@^3.1.1: 1282 | version "3.1.3" 1283 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" 1284 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 1285 | 1286 | fast-json-stable-stringify@^2.0.0: 1287 | version "2.0.0" 1288 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" 1289 | integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= 1290 | 1291 | fast-levenshtein@~2.0.4: 1292 | version "2.0.6" 1293 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 1294 | integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= 1295 | 1296 | figures@^2.0.0: 1297 | version "2.0.0" 1298 | resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" 1299 | integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= 1300 | dependencies: 1301 | escape-string-regexp "^1.0.5" 1302 | 1303 | file-entry-cache@^5.0.1: 1304 | version "5.0.1" 1305 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" 1306 | integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== 1307 | dependencies: 1308 | flat-cache "^2.0.1" 1309 | 1310 | fill-range@^7.0.1: 1311 | version "7.0.1" 1312 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 1313 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 1314 | dependencies: 1315 | to-regex-range "^5.0.1" 1316 | 1317 | find-up@^2.0.0, find-up@^2.1.0: 1318 | version "2.1.0" 1319 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" 1320 | integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= 1321 | dependencies: 1322 | locate-path "^2.0.0" 1323 | 1324 | flat-cache@^2.0.1: 1325 | version "2.0.1" 1326 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" 1327 | integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== 1328 | dependencies: 1329 | flatted "^2.0.0" 1330 | rimraf "2.6.3" 1331 | write "1.0.3" 1332 | 1333 | flatted@^2.0.0: 1334 | version "2.0.2" 1335 | resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" 1336 | integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== 1337 | 1338 | fs-readdir-recursive@^1.1.0: 1339 | version "1.1.0" 1340 | resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" 1341 | integrity sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA== 1342 | 1343 | fs.realpath@^1.0.0: 1344 | version "1.0.0" 1345 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 1346 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 1347 | 1348 | fsevents@~2.3.2: 1349 | version "2.3.2" 1350 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" 1351 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== 1352 | 1353 | function-bind@^1.1.1: 1354 | version "1.1.1" 1355 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 1356 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 1357 | 1358 | functional-red-black-tree@^1.0.1: 1359 | version "1.0.1" 1360 | resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" 1361 | integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= 1362 | 1363 | glob-parent@~5.1.2: 1364 | version "5.1.2" 1365 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 1366 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 1367 | dependencies: 1368 | is-glob "^4.0.1" 1369 | 1370 | glob@^7.0.0, glob@^7.1.2, glob@^7.1.3: 1371 | version "7.1.3" 1372 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" 1373 | integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== 1374 | dependencies: 1375 | fs.realpath "^1.0.0" 1376 | inflight "^1.0.4" 1377 | inherits "2" 1378 | minimatch "^3.0.4" 1379 | once "^1.3.0" 1380 | path-is-absolute "^1.0.0" 1381 | 1382 | globals@^11.1.0, globals@^11.7.0: 1383 | version "11.11.0" 1384 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.11.0.tgz#dcf93757fa2de5486fbeed7118538adf789e9c2e" 1385 | integrity sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw== 1386 | 1387 | graceful-fs@^4.1.2: 1388 | version "4.1.15" 1389 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" 1390 | integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA== 1391 | 1392 | has-flag@^3.0.0: 1393 | version "3.0.0" 1394 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 1395 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 1396 | 1397 | has-symbols@^1.0.0: 1398 | version "1.0.0" 1399 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" 1400 | integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= 1401 | 1402 | has@^1.0.1, has@^1.0.3: 1403 | version "1.0.3" 1404 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 1405 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 1406 | dependencies: 1407 | function-bind "^1.1.1" 1408 | 1409 | hosted-git-info@^2.1.4: 1410 | version "2.8.9" 1411 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" 1412 | integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== 1413 | 1414 | iconv-lite@^0.4.24: 1415 | version "0.4.24" 1416 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" 1417 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== 1418 | dependencies: 1419 | safer-buffer ">= 2.1.2 < 3" 1420 | 1421 | ignore@^4.0.6: 1422 | version "4.0.6" 1423 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" 1424 | integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== 1425 | 1426 | import-fresh@^3.0.0: 1427 | version "3.0.0" 1428 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.0.0.tgz#a3d897f420cab0e671236897f75bc14b4885c390" 1429 | integrity sha512-pOnA9tfM3Uwics+SaBLCNyZZZbK+4PTu0OPZtLlMIrv17EdBoC15S9Kn8ckJ9TZTyKb3ywNE5y1yeDxxGA7nTQ== 1430 | dependencies: 1431 | parent-module "^1.0.0" 1432 | resolve-from "^4.0.0" 1433 | 1434 | imurmurhash@^0.1.4: 1435 | version "0.1.4" 1436 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 1437 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= 1438 | 1439 | inflight@^1.0.4: 1440 | version "1.0.6" 1441 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 1442 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 1443 | dependencies: 1444 | once "^1.3.0" 1445 | wrappy "1" 1446 | 1447 | inherits@2: 1448 | version "2.0.3" 1449 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 1450 | integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= 1451 | 1452 | inquirer@^6.2.2: 1453 | version "6.5.2" 1454 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" 1455 | integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== 1456 | dependencies: 1457 | ansi-escapes "^3.2.0" 1458 | chalk "^2.4.2" 1459 | cli-cursor "^2.1.0" 1460 | cli-width "^2.0.0" 1461 | external-editor "^3.0.3" 1462 | figures "^2.0.0" 1463 | lodash "^4.17.12" 1464 | mute-stream "0.0.7" 1465 | run-async "^2.2.0" 1466 | rxjs "^6.4.0" 1467 | string-width "^2.1.0" 1468 | strip-ansi "^5.1.0" 1469 | through "^2.3.6" 1470 | 1471 | invariant@^2.2.2: 1472 | version "2.2.4" 1473 | resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" 1474 | integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== 1475 | dependencies: 1476 | loose-envify "^1.0.0" 1477 | 1478 | is-arrayish@^0.2.1: 1479 | version "0.2.1" 1480 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 1481 | integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= 1482 | 1483 | is-binary-path@~2.1.0: 1484 | version "2.1.0" 1485 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" 1486 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== 1487 | dependencies: 1488 | binary-extensions "^2.0.0" 1489 | 1490 | is-callable@^1.1.4: 1491 | version "1.1.4" 1492 | resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" 1493 | integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== 1494 | 1495 | is-date-object@^1.0.1: 1496 | version "1.0.1" 1497 | resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" 1498 | integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= 1499 | 1500 | is-extglob@^2.1.1: 1501 | version "2.1.1" 1502 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 1503 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= 1504 | 1505 | is-fullwidth-code-point@^2.0.0: 1506 | version "2.0.0" 1507 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 1508 | integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= 1509 | 1510 | is-glob@^4.0.1, is-glob@~4.0.1: 1511 | version "4.0.3" 1512 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" 1513 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== 1514 | dependencies: 1515 | is-extglob "^2.1.1" 1516 | 1517 | is-number@^7.0.0: 1518 | version "7.0.0" 1519 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 1520 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 1521 | 1522 | is-promise@^2.1.0: 1523 | version "2.1.0" 1524 | resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" 1525 | integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= 1526 | 1527 | is-regex@^1.0.4: 1528 | version "1.0.4" 1529 | resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" 1530 | integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= 1531 | dependencies: 1532 | has "^1.0.1" 1533 | 1534 | is-symbol@^1.0.2: 1535 | version "1.0.2" 1536 | resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" 1537 | integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== 1538 | dependencies: 1539 | has-symbols "^1.0.0" 1540 | 1541 | isarray@^1.0.0: 1542 | version "1.0.0" 1543 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 1544 | integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= 1545 | 1546 | isexe@^2.0.0: 1547 | version "2.0.0" 1548 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 1549 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 1550 | 1551 | js-levenshtein@^1.1.3: 1552 | version "1.1.6" 1553 | resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" 1554 | integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== 1555 | 1556 | "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: 1557 | version "4.0.0" 1558 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 1559 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 1560 | 1561 | js-yaml@^3.13.0: 1562 | version "3.13.1" 1563 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" 1564 | integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== 1565 | dependencies: 1566 | argparse "^1.0.7" 1567 | esprima "^4.0.0" 1568 | 1569 | jsesc@^2.5.1: 1570 | version "2.5.2" 1571 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" 1572 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== 1573 | 1574 | jsesc@~0.5.0: 1575 | version "0.5.0" 1576 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" 1577 | integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= 1578 | 1579 | json-schema-traverse@^0.4.1: 1580 | version "0.4.1" 1581 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 1582 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 1583 | 1584 | json-stable-stringify-without-jsonify@^1.0.1: 1585 | version "1.0.1" 1586 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" 1587 | integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= 1588 | 1589 | json5@^2.1.0: 1590 | version "2.1.0" 1591 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850" 1592 | integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ== 1593 | dependencies: 1594 | minimist "^1.2.0" 1595 | 1596 | jsx-ast-utils@^2.0.1: 1597 | version "2.0.1" 1598 | resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz#e801b1b39985e20fffc87b40e3748080e2dcac7f" 1599 | integrity sha1-6AGxs5mF4g//yHtA43SAgOLcrH8= 1600 | dependencies: 1601 | array-includes "^3.0.3" 1602 | 1603 | levn@^0.3.0, levn@~0.3.0: 1604 | version "0.3.0" 1605 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" 1606 | integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= 1607 | dependencies: 1608 | prelude-ls "~1.1.2" 1609 | type-check "~0.3.2" 1610 | 1611 | load-json-file@^2.0.0: 1612 | version "2.0.0" 1613 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" 1614 | integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= 1615 | dependencies: 1616 | graceful-fs "^4.1.2" 1617 | parse-json "^2.2.0" 1618 | pify "^2.0.0" 1619 | strip-bom "^3.0.0" 1620 | 1621 | locate-path@^2.0.0: 1622 | version "2.0.0" 1623 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" 1624 | integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= 1625 | dependencies: 1626 | p-locate "^2.0.0" 1627 | path-exists "^3.0.0" 1628 | 1629 | lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14: 1630 | version "4.17.21" 1631 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" 1632 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== 1633 | 1634 | loose-envify@^1.0.0: 1635 | version "1.4.0" 1636 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" 1637 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== 1638 | dependencies: 1639 | js-tokens "^3.0.0 || ^4.0.0" 1640 | 1641 | make-dir@^2.1.0: 1642 | version "2.1.0" 1643 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" 1644 | integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== 1645 | dependencies: 1646 | pify "^4.0.1" 1647 | semver "^5.6.0" 1648 | 1649 | mimic-fn@^1.0.0: 1650 | version "1.2.0" 1651 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" 1652 | integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== 1653 | 1654 | minimatch@^3.0.4: 1655 | version "3.0.4" 1656 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 1657 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 1658 | dependencies: 1659 | brace-expansion "^1.1.7" 1660 | 1661 | minimist@^1.2.0, minimist@^1.2.5: 1662 | version "1.2.5" 1663 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" 1664 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== 1665 | 1666 | mkdirp@^0.5.1: 1667 | version "0.5.5" 1668 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" 1669 | integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== 1670 | dependencies: 1671 | minimist "^1.2.5" 1672 | 1673 | ms@2.0.0: 1674 | version "2.0.0" 1675 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 1676 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= 1677 | 1678 | ms@^2.1.1: 1679 | version "2.1.1" 1680 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" 1681 | integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== 1682 | 1683 | mute-stream@0.0.7: 1684 | version "0.0.7" 1685 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" 1686 | integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= 1687 | 1688 | natural-compare@^1.4.0: 1689 | version "1.4.0" 1690 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 1691 | integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= 1692 | 1693 | nice-try@^1.0.4: 1694 | version "1.0.5" 1695 | resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" 1696 | integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== 1697 | 1698 | node-releases@^2.0.1: 1699 | version "2.0.1" 1700 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5" 1701 | integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA== 1702 | 1703 | normalize-package-data@^2.3.2: 1704 | version "2.5.0" 1705 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" 1706 | integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== 1707 | dependencies: 1708 | hosted-git-info "^2.1.4" 1709 | resolve "^1.10.0" 1710 | semver "2 || 3 || 4 || 5" 1711 | validate-npm-package-license "^3.0.1" 1712 | 1713 | normalize-path@^3.0.0, normalize-path@~3.0.0: 1714 | version "3.0.0" 1715 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 1716 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 1717 | 1718 | object-assign@^4.1.1: 1719 | version "4.1.1" 1720 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 1721 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= 1722 | 1723 | object-keys@^1.0.11, object-keys@^1.0.12: 1724 | version "1.1.0" 1725 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.0.tgz#11bd22348dd2e096a045ab06f6c85bcc340fa032" 1726 | integrity sha512-6OO5X1+2tYkNyNEx6TsCxEqFfRWaqx6EtMiSbGrw8Ob8v9Ne+Hl8rBAgLBZn5wjEz3s/s6U1WXFUFOcxxAwUpg== 1727 | 1728 | object.assign@^4.1.0: 1729 | version "4.1.0" 1730 | resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" 1731 | integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== 1732 | dependencies: 1733 | define-properties "^1.1.2" 1734 | function-bind "^1.1.1" 1735 | has-symbols "^1.0.0" 1736 | object-keys "^1.0.11" 1737 | 1738 | object.entries@^1.0.4: 1739 | version "1.1.0" 1740 | resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.0.tgz#2024fc6d6ba246aee38bdb0ffd5cfbcf371b7519" 1741 | integrity sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA== 1742 | dependencies: 1743 | define-properties "^1.1.3" 1744 | es-abstract "^1.12.0" 1745 | function-bind "^1.1.1" 1746 | has "^1.0.3" 1747 | 1748 | object.fromentries@^2.0.0: 1749 | version "2.0.0" 1750 | resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.0.tgz#49a543d92151f8277b3ac9600f1e930b189d30ab" 1751 | integrity sha512-9iLiI6H083uiqUuvzyY6qrlmc/Gz8hLQFOcb/Ri/0xXFkSNS3ctV+CbE6yM2+AnkYfOB3dGjdzC0wrMLIhQICA== 1752 | dependencies: 1753 | define-properties "^1.1.2" 1754 | es-abstract "^1.11.0" 1755 | function-bind "^1.1.1" 1756 | has "^1.0.1" 1757 | 1758 | once@^1.3.0: 1759 | version "1.4.0" 1760 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1761 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 1762 | dependencies: 1763 | wrappy "1" 1764 | 1765 | onetime@^2.0.0: 1766 | version "2.0.1" 1767 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" 1768 | integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= 1769 | dependencies: 1770 | mimic-fn "^1.0.0" 1771 | 1772 | optionator@^0.8.2: 1773 | version "0.8.2" 1774 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" 1775 | integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q= 1776 | dependencies: 1777 | deep-is "~0.1.3" 1778 | fast-levenshtein "~2.0.4" 1779 | levn "~0.3.0" 1780 | prelude-ls "~1.1.2" 1781 | type-check "~0.3.2" 1782 | wordwrap "~1.0.0" 1783 | 1784 | os-tmpdir@~1.0.2: 1785 | version "1.0.2" 1786 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 1787 | integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= 1788 | 1789 | p-limit@^1.1.0: 1790 | version "1.3.0" 1791 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" 1792 | integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== 1793 | dependencies: 1794 | p-try "^1.0.0" 1795 | 1796 | p-locate@^2.0.0: 1797 | version "2.0.0" 1798 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" 1799 | integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= 1800 | dependencies: 1801 | p-limit "^1.1.0" 1802 | 1803 | p-try@^1.0.0: 1804 | version "1.0.0" 1805 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" 1806 | integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= 1807 | 1808 | parent-module@^1.0.0: 1809 | version "1.0.0" 1810 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.0.tgz#df250bdc5391f4a085fb589dad761f5ad6b865b5" 1811 | integrity sha512-8Mf5juOMmiE4FcmzYc4IaiS9L3+9paz2KOiXzkRviCP6aDmN49Hz6EMWz0lGNp9pX80GvvAuLADtyGfW/Em3TA== 1812 | dependencies: 1813 | callsites "^3.0.0" 1814 | 1815 | parse-json@^2.2.0: 1816 | version "2.2.0" 1817 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" 1818 | integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= 1819 | dependencies: 1820 | error-ex "^1.2.0" 1821 | 1822 | path-exists@^3.0.0: 1823 | version "3.0.0" 1824 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 1825 | integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= 1826 | 1827 | path-is-absolute@^1.0.0: 1828 | version "1.0.1" 1829 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1830 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 1831 | 1832 | path-is-inside@^1.0.2: 1833 | version "1.0.2" 1834 | resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" 1835 | integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= 1836 | 1837 | path-key@^2.0.1: 1838 | version "2.0.1" 1839 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 1840 | integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= 1841 | 1842 | path-parse@^1.0.6: 1843 | version "1.0.7" 1844 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 1845 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 1846 | 1847 | path-type@^2.0.0: 1848 | version "2.0.0" 1849 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" 1850 | integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= 1851 | dependencies: 1852 | pify "^2.0.0" 1853 | 1854 | picocolors@^1.0.0: 1855 | version "1.0.0" 1856 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" 1857 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== 1858 | 1859 | picomatch@^2.0.4, picomatch@^2.2.1: 1860 | version "2.3.0" 1861 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" 1862 | integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== 1863 | 1864 | pify@^2.0.0: 1865 | version "2.3.0" 1866 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 1867 | integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= 1868 | 1869 | pify@^4.0.1: 1870 | version "4.0.1" 1871 | resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" 1872 | integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== 1873 | 1874 | pkg-dir@^2.0.0: 1875 | version "2.0.0" 1876 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" 1877 | integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= 1878 | dependencies: 1879 | find-up "^2.1.0" 1880 | 1881 | prelude-ls@~1.1.2: 1882 | version "1.1.2" 1883 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" 1884 | integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= 1885 | 1886 | prettier@^1.15.3: 1887 | version "1.16.4" 1888 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.16.4.tgz#73e37e73e018ad2db9c76742e2647e21790c9717" 1889 | integrity sha512-ZzWuos7TI5CKUeQAtFd6Zhm2s6EpAD/ZLApIhsF9pRvRtM1RFo61dM/4MSRUA0SuLugA/zgrZD8m0BaY46Og7g== 1890 | 1891 | private@^0.1.6: 1892 | version "0.1.8" 1893 | resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" 1894 | integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== 1895 | 1896 | progress@^2.0.0: 1897 | version "2.0.3" 1898 | resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" 1899 | integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== 1900 | 1901 | prop-types@^15.6.2: 1902 | version "15.7.1" 1903 | resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.1.tgz#2fa61e0a699d428b40320127733ee2931f05d9d1" 1904 | integrity sha512-f8Lku2z9kERjOCcnDOPm68EBJAO2K00Q5mSgPAUE/gJuBgsYLbVy6owSrtcHj90zt8PvW+z0qaIIgsIhHOa1Qw== 1905 | dependencies: 1906 | object-assign "^4.1.1" 1907 | react-is "^16.8.1" 1908 | 1909 | punycode@^2.1.0: 1910 | version "2.1.1" 1911 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 1912 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 1913 | 1914 | react-is@^16.8.1: 1915 | version "16.8.1" 1916 | resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.8.1.tgz#a80141e246eb894824fb4f2901c0c50ef31d4cdb" 1917 | integrity sha512-ioMCzVDWvCvKD8eeT+iukyWrBGrA3DiFYkXfBsVYIRdaREZuBjENG+KjrikavCLasozqRWTwFUagU/O4vPpRMA== 1918 | 1919 | read-pkg-up@^2.0.0: 1920 | version "2.0.0" 1921 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" 1922 | integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= 1923 | dependencies: 1924 | find-up "^2.0.0" 1925 | read-pkg "^2.0.0" 1926 | 1927 | read-pkg@^2.0.0: 1928 | version "2.0.0" 1929 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" 1930 | integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= 1931 | dependencies: 1932 | load-json-file "^2.0.0" 1933 | normalize-package-data "^2.3.2" 1934 | path-type "^2.0.0" 1935 | 1936 | readdirp@~3.6.0: 1937 | version "3.6.0" 1938 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" 1939 | integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== 1940 | dependencies: 1941 | picomatch "^2.2.1" 1942 | 1943 | regenerate-unicode-properties@^7.0.0: 1944 | version "7.0.0" 1945 | resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-7.0.0.tgz#107405afcc4a190ec5ed450ecaa00ed0cafa7a4c" 1946 | integrity sha512-s5NGghCE4itSlUS+0WUj88G6cfMVMmH8boTPNvABf8od+2dhT9WDlWu8n01raQAJZMOK8Ch6jSexaRO7swd6aw== 1947 | dependencies: 1948 | regenerate "^1.4.0" 1949 | 1950 | regenerate@^1.4.0: 1951 | version "1.4.0" 1952 | resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" 1953 | integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== 1954 | 1955 | regenerator-transform@^0.13.3: 1956 | version "0.13.3" 1957 | resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.13.3.tgz#264bd9ff38a8ce24b06e0636496b2c856b57bcbb" 1958 | integrity sha512-5ipTrZFSq5vU2YoGoww4uaRVAK4wyYC4TSICibbfEPOruUu8FFP7ErV0BjmbIOEpn3O/k9na9UEdYR/3m7N6uA== 1959 | dependencies: 1960 | private "^0.1.6" 1961 | 1962 | regexp-tree@^0.1.0: 1963 | version "0.1.23" 1964 | resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.23.tgz#8a8ce1cc5e971acef62213a7ecdb1f6e18a1f1b2" 1965 | integrity sha512-+7HWfb4Bvu8Rs2eQTUIpX9I/PlQkYOuTNbRpKLJlQpSgwSkzFYh+pUj0gtvglnOZLKB6YgnIgRuJ2/IlpL48qw== 1966 | 1967 | regexpp@^2.0.1: 1968 | version "2.0.1" 1969 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" 1970 | integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== 1971 | 1972 | regexpu-core@^4.1.3, regexpu-core@^4.2.0: 1973 | version "4.4.0" 1974 | resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.4.0.tgz#8d43e0d1266883969720345e70c275ee0aec0d32" 1975 | integrity sha512-eDDWElbwwI3K0Lo6CqbQbA6FwgtCz4kYTarrri1okfkRLZAqstU+B3voZBCjg8Fl6iq0gXrJG6MvRgLthfvgOA== 1976 | dependencies: 1977 | regenerate "^1.4.0" 1978 | regenerate-unicode-properties "^7.0.0" 1979 | regjsgen "^0.5.0" 1980 | regjsparser "^0.6.0" 1981 | unicode-match-property-ecmascript "^1.0.4" 1982 | unicode-match-property-value-ecmascript "^1.0.2" 1983 | 1984 | regjsgen@^0.5.0: 1985 | version "0.5.0" 1986 | resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.0.tgz#a7634dc08f89209c2049adda3525711fb97265dd" 1987 | integrity sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA== 1988 | 1989 | regjsparser@^0.6.0: 1990 | version "0.6.0" 1991 | resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c" 1992 | integrity sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ== 1993 | dependencies: 1994 | jsesc "~0.5.0" 1995 | 1996 | resolve-from@^4.0.0: 1997 | version "4.0.0" 1998 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" 1999 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== 2000 | 2001 | resolve@^1.10.0, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.9.0: 2002 | version "1.10.0" 2003 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.10.0.tgz#3bdaaeaf45cc07f375656dfd2e54ed0810b101ba" 2004 | integrity sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg== 2005 | dependencies: 2006 | path-parse "^1.0.6" 2007 | 2008 | restore-cursor@^2.0.0: 2009 | version "2.0.0" 2010 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" 2011 | integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= 2012 | dependencies: 2013 | onetime "^2.0.0" 2014 | signal-exit "^3.0.2" 2015 | 2016 | rimraf@2.6.3: 2017 | version "2.6.3" 2018 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" 2019 | integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== 2020 | dependencies: 2021 | glob "^7.1.3" 2022 | 2023 | run-async@^2.2.0: 2024 | version "2.3.0" 2025 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" 2026 | integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA= 2027 | dependencies: 2028 | is-promise "^2.1.0" 2029 | 2030 | rxjs@^6.4.0: 2031 | version "6.4.0" 2032 | resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.4.0.tgz#f3bb0fe7bda7fb69deac0c16f17b50b0b8790504" 2033 | integrity sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw== 2034 | dependencies: 2035 | tslib "^1.9.0" 2036 | 2037 | safe-buffer@~5.1.1: 2038 | version "5.1.2" 2039 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 2040 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 2041 | 2042 | "safer-buffer@>= 2.1.2 < 3": 2043 | version "2.1.2" 2044 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 2045 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 2046 | 2047 | "semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: 2048 | version "5.6.0" 2049 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" 2050 | integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== 2051 | 2052 | shebang-command@^1.2.0: 2053 | version "1.2.0" 2054 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 2055 | integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= 2056 | dependencies: 2057 | shebang-regex "^1.0.0" 2058 | 2059 | shebang-regex@^1.0.0: 2060 | version "1.0.0" 2061 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 2062 | integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= 2063 | 2064 | signal-exit@^3.0.2: 2065 | version "3.0.2" 2066 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 2067 | integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= 2068 | 2069 | slash@^2.0.0: 2070 | version "2.0.0" 2071 | resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" 2072 | integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== 2073 | 2074 | slice-ansi@^2.1.0: 2075 | version "2.1.0" 2076 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" 2077 | integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== 2078 | dependencies: 2079 | ansi-styles "^3.2.0" 2080 | astral-regex "^1.0.0" 2081 | is-fullwidth-code-point "^2.0.0" 2082 | 2083 | source-map@^0.5.0: 2084 | version "0.5.7" 2085 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" 2086 | integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= 2087 | 2088 | spdx-correct@^3.0.0: 2089 | version "3.1.0" 2090 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" 2091 | integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== 2092 | dependencies: 2093 | spdx-expression-parse "^3.0.0" 2094 | spdx-license-ids "^3.0.0" 2095 | 2096 | spdx-exceptions@^2.1.0: 2097 | version "2.2.0" 2098 | resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" 2099 | integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== 2100 | 2101 | spdx-expression-parse@^3.0.0: 2102 | version "3.0.0" 2103 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" 2104 | integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== 2105 | dependencies: 2106 | spdx-exceptions "^2.1.0" 2107 | spdx-license-ids "^3.0.0" 2108 | 2109 | spdx-license-ids@^3.0.0: 2110 | version "3.0.3" 2111 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.3.tgz#81c0ce8f21474756148bbb5f3bfc0f36bf15d76e" 2112 | integrity sha512-uBIcIl3Ih6Phe3XHK1NqboJLdGfwr1UN3k6wSD1dZpmPsIkb8AGNbZYJ1fOBk834+Gxy8rpfDxrS6XLEMZMY2g== 2113 | 2114 | sprintf-js@~1.0.2: 2115 | version "1.0.3" 2116 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 2117 | integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= 2118 | 2119 | string-width@^2.1.0: 2120 | version "2.1.1" 2121 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" 2122 | integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== 2123 | dependencies: 2124 | is-fullwidth-code-point "^2.0.0" 2125 | strip-ansi "^4.0.0" 2126 | 2127 | string-width@^3.0.0: 2128 | version "3.1.0" 2129 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" 2130 | integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== 2131 | dependencies: 2132 | emoji-regex "^7.0.1" 2133 | is-fullwidth-code-point "^2.0.0" 2134 | strip-ansi "^5.1.0" 2135 | 2136 | strip-ansi@^4.0.0: 2137 | version "4.0.0" 2138 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" 2139 | integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= 2140 | dependencies: 2141 | ansi-regex "^3.0.0" 2142 | 2143 | strip-ansi@^5.1.0: 2144 | version "5.2.0" 2145 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" 2146 | integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== 2147 | dependencies: 2148 | ansi-regex "^4.1.0" 2149 | 2150 | strip-bom@^3.0.0: 2151 | version "3.0.0" 2152 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 2153 | integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= 2154 | 2155 | strip-json-comments@^2.0.1: 2156 | version "2.0.1" 2157 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 2158 | integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= 2159 | 2160 | supports-color@^5.3.0: 2161 | version "5.5.0" 2162 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 2163 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 2164 | dependencies: 2165 | has-flag "^3.0.0" 2166 | 2167 | table@^5.2.3: 2168 | version "5.4.6" 2169 | resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" 2170 | integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== 2171 | dependencies: 2172 | ajv "^6.10.2" 2173 | lodash "^4.17.14" 2174 | slice-ansi "^2.1.0" 2175 | string-width "^3.0.0" 2176 | 2177 | text-table@^0.2.0: 2178 | version "0.2.0" 2179 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 2180 | integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= 2181 | 2182 | through@^2.3.6: 2183 | version "2.3.8" 2184 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 2185 | integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= 2186 | 2187 | tmp@^0.0.33: 2188 | version "0.0.33" 2189 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" 2190 | integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== 2191 | dependencies: 2192 | os-tmpdir "~1.0.2" 2193 | 2194 | to-fast-properties@^2.0.0: 2195 | version "2.0.0" 2196 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" 2197 | integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= 2198 | 2199 | to-regex-range@^5.0.1: 2200 | version "5.0.1" 2201 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 2202 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 2203 | dependencies: 2204 | is-number "^7.0.0" 2205 | 2206 | tslib@^1.9.0: 2207 | version "1.9.3" 2208 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" 2209 | integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== 2210 | 2211 | type-check@~0.3.2: 2212 | version "0.3.2" 2213 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" 2214 | integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= 2215 | dependencies: 2216 | prelude-ls "~1.1.2" 2217 | 2218 | typescript@^3.2.1: 2219 | version "3.3.3" 2220 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.3.3.tgz#f1657fc7daa27e1a8930758ace9ae8da31403221" 2221 | integrity sha512-Y21Xqe54TBVp+VDSNbuDYdGw0BpoR/Q6wo/+35M8PAU0vipahnyduJWirxxdxjsAkS7hue53x2zp8gz7F05u0A== 2222 | 2223 | unicode-canonical-property-names-ecmascript@^1.0.4: 2224 | version "1.0.4" 2225 | resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" 2226 | integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== 2227 | 2228 | unicode-match-property-ecmascript@^1.0.4: 2229 | version "1.0.4" 2230 | resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" 2231 | integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== 2232 | dependencies: 2233 | unicode-canonical-property-names-ecmascript "^1.0.4" 2234 | unicode-property-aliases-ecmascript "^1.0.4" 2235 | 2236 | unicode-match-property-value-ecmascript@^1.0.2: 2237 | version "1.0.2" 2238 | resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.2.tgz#9f1dc76926d6ccf452310564fd834ace059663d4" 2239 | integrity sha512-Rx7yODZC1L/T8XKo/2kNzVAQaRE88AaMvI1EF/Xnj3GW2wzN6fop9DDWuFAKUVFH7vozkz26DzP0qyWLKLIVPQ== 2240 | 2241 | unicode-property-aliases-ecmascript@^1.0.4: 2242 | version "1.0.4" 2243 | resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz#5a533f31b4317ea76f17d807fa0d116546111dd0" 2244 | integrity sha512-2WSLa6OdYd2ng8oqiGIWnJqyFArvhn+5vgx5GTxMbUYjCYKUcuKS62YLFF0R/BDGlB1yzXjQOLtPAfHsgirEpg== 2245 | 2246 | uri-js@^4.2.2: 2247 | version "4.2.2" 2248 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" 2249 | integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== 2250 | dependencies: 2251 | punycode "^2.1.0" 2252 | 2253 | validate-npm-package-license@^3.0.1: 2254 | version "3.0.4" 2255 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" 2256 | integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== 2257 | dependencies: 2258 | spdx-correct "^3.0.0" 2259 | spdx-expression-parse "^3.0.0" 2260 | 2261 | which@^1.2.9: 2262 | version "1.3.1" 2263 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" 2264 | integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== 2265 | dependencies: 2266 | isexe "^2.0.0" 2267 | 2268 | wordwrap@~1.0.0: 2269 | version "1.0.0" 2270 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" 2271 | integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= 2272 | 2273 | wrappy@1: 2274 | version "1.0.2" 2275 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 2276 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 2277 | 2278 | write@1.0.3: 2279 | version "1.0.3" 2280 | resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" 2281 | integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== 2282 | dependencies: 2283 | mkdirp "^0.5.1" 2284 | --------------------------------------------------------------------------------