diff --git a/README.md b/README.md
index e50834a06..fde9be205 100644
--- a/README.md
+++ b/README.md
@@ -31,32 +31,14 @@ There is a huge variety of customizable layouts, use “as is” or add new bloc
## Quick Start
-Install UI Kitten and Eva Design System packages via npm:
+Start a new app with UI Kitten template from a scratch:
```bash
-npm i react-native-ui-kitten @eva-design/eva
+react-native init --template ui-kitten
```
-Modify your application root:
-
-```jsx
-import React from 'react';
-import { mapping, light as lightTheme } from '@eva-design/eva';
-import { ApplicationProvider, Layout } from 'react-native-ui-kitten';
-
-const App = () => (
-
-
-
-);
-
-export default App;
-```
-
-The code above will configure your application component to apply Eva Design System styling magic.
-Read the [Design System guide][link:doc-theme-system] for more details.
+This will setup a new React Native application configured with UI Kitten.
+Refer to the [Documentation][link:doc-where-start] for more options to start.
## How can I support the developers?
- Star our GitHub repo :star:
@@ -83,7 +65,7 @@ We're always happy to receive your feedback!
[link:travis]: https://travis-ci.com/akveo/react-native-ui-kitten
[link:coveralls]: https://coveralls.io/github/akveo/react-native-ui-kitten?branch=master
[link:doc-homepage]: https://akveo.github.io/react-native-ui-kitten
-[link:doc-theme-system]: https://akveo.github.io/react-native-ui-kitten/docs/design-system/eva-design-system-intro
+[link:doc-where-start]: https://akveo.github.io/react-native-ui-kitten/docs/getting-started/where-to-start
[link:kitten-tricks]: https://github.com/akveo/kittenTricks
[link:eva-icons]: https://github.com/akveo/eva-icons
[link:akveo-homepage]: https://akveo.com
diff --git a/babel.config.js b/babel.config.js
index 43e3d5c14..5b7595b50 100644
--- a/babel.config.js
+++ b/babel.config.js
@@ -1,15 +1,20 @@
const path = require('path');
-const kittenPath = path.resolve('./src/framework');
-
-// FIXME: Resolve `transform[stderr]: Could not resolve` command-line warnings.
-// FIXME: Reproducible when starting with clearing cache (npm start -- -c)
+/**
+ * UI Kitten modules aliases.
+ * Allows importing framework modules into playground
+ */
+const moduleAliases = {
+ 'react-native-ui-kitten': path.resolve(__dirname, './src/framework'),
+ '@kitten/theme': path.resolve(__dirname, './src/framework'),
+ '@kitten/ui': path.resolve(__dirname, './src/framework'),
+ '@ui-kitten/eva-icons': path.resolve(__dirname, './src/eva-icons'),
+};
const moduleResolverConfig = {
root: path.resolve('./'),
alias: {
- '@kitten/theme': path.resolve(kittenPath, 'theme'),
- '@kitten/ui': path.resolve(kittenPath, 'ui'),
+ ...moduleAliases,
},
};
diff --git a/config/dev.env.js b/config/dev.env.js
index 40f7baeea..767db0d2b 100644
--- a/config/dev.env.js
+++ b/config/dev.env.js
@@ -4,7 +4,6 @@ const evaPath = path.resolve(__dirname, '../../eva');
module.exports = {
ENV: 'dev',
- KITTEN_PATH: path.resolve(__dirname, '../src/framework'),
MAPPING_PATH: path.resolve(evaPath, 'packages/eva'),
PROCESSOR_PATH: path.resolve(evaPath, 'packages/processor')
};
diff --git a/config/prod.env.js b/config/prod.env.js
index de606f46f..8ace1a4b3 100644
--- a/config/prod.env.js
+++ b/config/prod.env.js
@@ -4,7 +4,6 @@ const playgroundPath = path.resolve(__dirname, '../src/playground');
module.exports = {
ENV: 'prod',
- KITTEN_PATH: path.resolve(__dirname, '../src/framework'),
MAPPING_PATH: path.resolve(playgroundPath, 'node_modules/@eva-design/eva'),
PROCESSOR_PATH: path.resolve(__dirname, '../node_modules/@eva-design/processor')
};
diff --git a/docs/src/articles/getting-started/where-to-start.md b/docs/src/articles/getting-started/where-to-start.md
index c7d2766fc..47ebe4690 100644
--- a/docs/src/articles/getting-started/where-to-start.md
+++ b/docs/src/articles/getting-started/where-to-start.md
@@ -5,12 +5,15 @@ UI Kitten is a framework of UI components powered by Eva Design System for your
## Quick start tutorials
-**[Install UI Kitten](guides/install-ui-kitten)**
+- **[Start a new App](guides/start-a-new-app)**
-This tutorial explains how to setup React Native app with UI Kitten.
+This tutorial explains how to setup React Native app with UI Kitten from a scratch.
+
+- **[Install into existing App](guides/install-into-existing-app)**
Please consider creating an issue on GitHub if your use case is not described above. But we kindly ask to always look through the documentation and the list of existing issues first.
+
## I'm new to React Native or mobile development
diff --git a/docs/src/articles/guides/install-existing.md b/docs/src/articles/guides/install-existing.md
new file mode 100644
index 000000000..cd44c2af0
--- /dev/null
+++ b/docs/src/articles/guides/install-existing.md
@@ -0,0 +1,37 @@
+# Add into existing project
+
+If you already have an existing code base, you're able to give UI Kitten a try as simple as `npm install`. Please refer to [Start a new App Guide](guides/start-a-new-app) if you don't have any code yet.
+
+
+
+## Install UI Kitten and Eva Design System
+
+```bash
+npm i react-native-ui-kitten @eva-design/eva
+```
+
+
+
+## Configure Application Root
+
+At this step you have everything in place, let's configure UI Kitten to be used in your app.
+In your **App.js**:
+
+```js
+import React from 'react';
+import { mapping, light as lightTheme } from '@eva-design/eva';
+import { ApplicationProvider } from 'react-native-ui-kitten';
+import { RootComponent } from '../path-to/root.component'; // <-- Import your application entry point
+
+const App = () => (
+
+
+
+);
+
+export default App;
+```
+
+That's it. UI Kitten is ready now.
diff --git a/docs/src/articles/guides/install-new.md b/docs/src/articles/guides/install-new.md
new file mode 100644
index 000000000..6bb8613bb
--- /dev/null
+++ b/docs/src/articles/guides/install-new.md
@@ -0,0 +1,30 @@
+# Starting a new App
+
+If you don't have any code yet, please consider checking React Native Getting Started documentation for help creating your app.
+
+
+
+## Installation
+
+First of all, you should have React Native CLI installed.
+
+```bash
+npm i -g react-native-cli
+```
+
+
+
+## Create a New Project
+
+A new project can be created using React Native CLI tools ant UI Kitten template.
+
+```bash
+react-native init --template ui-kitten
+```
+
+Or, if you want to init with TypeScript:
+```bash
+react-native init --template ui-kitten-typescript
+```
+
+That's it. UI Kitten is ready now. For the next steps, simply follow command line instructions.
diff --git a/docs/src/articles/guides/install.md b/docs/src/articles/guides/install.md
deleted file mode 100644
index 678221eb3..000000000
--- a/docs/src/articles/guides/install.md
+++ /dev/null
@@ -1,54 +0,0 @@
-# Install UI Kitten
-
-If you don't have any code yet, please consider checking React Native Getting Started documentation for help creating your app.
-
-
-
-## Installation
-
-We recommend to develop React Native with expo-cli, you can install it with the following command.
-
-```bash
-npm i -g expo-cli
-```
-
-
-
-## Create a New Project
-
-A new project can be created using Expo CLI tools.
-
-```bash
-expo init PROJECT-NAME
-```
-
-
-## Install UI Kitten and Eva Design System
-
-```bash
-npm i react-native-ui-kitten @eva-design/eva
-```
-
-
-
-## Configure Application Root
-
-At this step you have everything in place, let's configure UI Kitten to be used in your app.
-
-```js
-import * as React from 'react';
-import { mapping, light as lightTheme } from '@eva-design/eva';
-import { ApplicationProvider, Layout } from 'react-native-ui-kitten';
-
-const App = () => (
-
-
-
-);
-
-export default App;
-```
-
-That's it. UI Kitten is ready now.
diff --git a/docs/src/articles/guides/setup-icons-module.md b/docs/src/articles/guides/setup-icons-module.md
new file mode 100644
index 000000000..ba9402c4f
--- /dev/null
+++ b/docs/src/articles/guides/setup-icons-module.md
@@ -0,0 +1,67 @@
+# Setup Icons Module
+
+Starting from UI Kitten 4.2, we introduce an icons module built on top of Eva Icons . Eva Icons is a pack of beautifully crafted Open Source icons for common actions and items.
+
+
+
IMPORTANT
+
+ This tutorial assumes you have everything in place and [ApplicationProvider is configured](guides/install-ui-kitten).
+
+
+
+
+
+## Installation
+
+First, ensure that `react-native-svg` library is installed: **install react-native-svg **.
+
+Add `@ui-kitten/eva-icons` to project dependencies.
+
+```bash
+npm i @ui-kitten/eva-icons
+```
+
+
+
+## Configure Icon Registry
+
+```js
+import * as React from 'react';
+import { mapping, light as lightTheme } from '@eva-design/eva';
+import { EvaIconsPack } from '@ui-kitten/eva-icons';
+import { ApplicationProvider, Layout, IconRegistry } from 'react-native-ui-kitten';
+
+const App = () => (
+
+
+
+
+);
+
+export default App;
+```
+
+
+
+## Use it with UI Kitten components
+
+```js
+import * as React from 'react';
+import { Button, Icon } from 'react-native-ui-kitten';
+
+export const FacebookIcon = (style) => (
+
+);
+
+export const LoginButton = () => (
+ Login with Facebook
+);
+```
+
+That's it. UI Kitten with Eva Icons is ready now.
+
+As a result, you should have a Button looking similar to this:
+
+![image](assets/images/articles/guides/sample-icon-button.png)
diff --git a/docs/src/articles/guides/setup-vector-icons.md b/docs/src/articles/guides/setup-vector-icons.md
new file mode 100644
index 000000000..35f7128e0
--- /dev/null
+++ b/docs/src/articles/guides/setup-vector-icons.md
@@ -0,0 +1,223 @@
+# 3rd party icon libraries
+
+Starting from UI Kitten 4.2, we introduce an Icon component that can work with 3rd party icon packages. In this guide, we'll show how to integrate vector icons package with UI Kitten. Vector icons is a set of font-based icons library that renders a text as an icon symbol.
+In case you prefer working with svg - check out Eva Icons Integration Guide .
+
+
+
IMPORTANT
+
+ This tutorial assumes you have everything in place and [ApplicationProvider is configured](guides/install-ui-kitten).
+
+
+
+
+
+## Installation
+
+First, ensure that `react-native-vector-icons` library is installed: **install react-native-vector-icons **.
+
+
+
+
+### Configure Icon Adapter
+
+After vector-icons is installed and you have everything in place, we need to create a mapping object, that can draw an icon by its name.
+Let's create a separate file `feather-icons.js` and place there the following code.
+
+```js
+import * as React from 'react';
+import { StyleSheet } from 'react-native';
+import Icon from 'react-native-vector-icons/Feather'; // <-- Import Feather icons
+
+export const FeatherIconsPack = {
+ name: 'feather',
+ icons: createIconsMap(),
+};
+
+function createIconsMap() {
+ return {
+ 'facebook': IconProvider('facebook'),
+ 'google': IconProvider('google'),
+ // ...
+ };
+
+ // or
+
+ return new Proxy({}, {
+ get(target, name) {
+ return IconProvider(name);
+ },
+ });
+}
+```
+
+And providing function
+
+```js
+function IconProvider(name) {
+ return {
+ toReactElement: (props) => FeatherIcon({ name, ...props }),
+ };
+}
+
+function FeatherIcon({ name, style }) {
+ const { height, tintColor, ...iconStyle } = StyleSheet.flatten(style);
+ return (
+
+ );
+}
+
+```
+
+
+
+## Configure Icon Registry
+
+After everything is configured, we simply need to import a feather icon map and register it with UI Kitten APIs.
+
+```js
+import * as React from 'react';
+import { mapping, light as lightTheme } from '@eva-design/eva';
+import { ApplicationProvider, Layout, IconRegistry } from 'react-native-ui-kitten';
+import { FeatherIconsPack } from './path-to/feather-icons.js'; // <-- Feather icons map
+
+const App = () => (
+
+
+
+
+);
+
+export default App;
+```
+
+
+
+## Use it with UI Kitten components
+
+```js
+import * as React from 'react';
+import { Button, Icon } from 'react-native-ui-kitten';
+
+export const FacebookIcon = (style) => (
+
+);
+
+export const LoginButton = () => (
+ Login with Facebook
+);
+```
+
+That's it. UI Kitten with Vector Icons is ready now.
+
+As a result, you should have a Button looking similar to this:
+
+![image](assets/images/articles/guides/3rd-party-icons-sample.png)
+
+
+
+## More Icon Libraries
+
+As you might notice, UI Kitten API allows you to register **multiple** icon packages with the following instruction.
+
+```js
+
+```
+
+Let's also create a Material Icons provider using the same method.
+
+```js
+// material-icons.js
+
+import * as React from 'react';
+import { StyleSheet } from 'react-native';
+import Icon from 'react-native-vector-icons/MaterialIcons'; // <-- Import Material icons
+
+export const MaterialIconsPack = {
+ name: 'material',
+ icons: createIconsMap(),
+};
+
+function createIconsMap() {
+ return new Proxy({}, {
+ get(target, name) {
+ return IconProvider(name);
+ },
+ });
+}
+
+function IconProvider(name) {
+ return {
+ toReactElement: (props) => MaterialIcon({ name, ...props }),
+ };
+}
+
+function MaterialIcon({ name, style }) {
+ const { height, tintColor, ...iconStyle } = StyleSheet.flatten(style);
+ return (
+
+ );
+}
+```
+
+Now all we need to do is to extend our `IconRegistry`:
+
+```js
+import * as React from 'react';
+import { mapping, light as lightTheme } from '@eva-design/eva';
+import { ApplicationProvider, Layout, IconRegistry } from 'react-native-ui-kitten';
+import { FeatherIconsPack } from './path-to/feather-icons.js'; // <-- Feather icons map
+import { MaterialIconsPack } from './path-to/material-icons.js'; // <-- Material icons map
+
+const App = () => (
+
+
+
+
+);
+
+export default App;
+```
+
+
+
+## Choose a pack
+
+Now you're able to choose an icon library with simply changing `pack` property.
+
+```js
+import * as React from 'react';
+import { Button, Icon } from 'react-native-ui-kitten';
+
+export const HomeIcon = (style) => (
+
+);
+
+export const HomeButton = () => (
+ Home
+);
+```
+
+That's it. Here is a result that you might have
+
+**Material Icons**
+
+![image](assets/images/articles/guides/3rd-party-icons-material.png)
+
+**Feather Icons**
+
+![image](assets/images/articles/guides/3rd-party-icons-feather.png)
diff --git a/docs/src/assets/images/articles/guides/3rd-party-icons-feather.png b/docs/src/assets/images/articles/guides/3rd-party-icons-feather.png
new file mode 100644
index 000000000..493990394
Binary files /dev/null and b/docs/src/assets/images/articles/guides/3rd-party-icons-feather.png differ
diff --git a/docs/src/assets/images/articles/guides/3rd-party-icons-material.png b/docs/src/assets/images/articles/guides/3rd-party-icons-material.png
new file mode 100644
index 000000000..28b15e03c
Binary files /dev/null and b/docs/src/assets/images/articles/guides/3rd-party-icons-material.png differ
diff --git a/docs/src/assets/images/articles/guides/3rd-party-icons-sample.png b/docs/src/assets/images/articles/guides/3rd-party-icons-sample.png
new file mode 100644
index 000000000..a3a79ab59
Binary files /dev/null and b/docs/src/assets/images/articles/guides/3rd-party-icons-sample.png differ
diff --git a/docs/src/assets/images/articles/guides/sample-icon-button.png b/docs/src/assets/images/articles/guides/sample-icon-button.png
new file mode 100644
index 000000000..1604a6ca1
Binary files /dev/null and b/docs/src/assets/images/articles/guides/sample-icon-button.png differ
diff --git a/docs/src/assets/images/components/icon.svg b/docs/src/assets/images/components/icon.svg
index 67fceac3f..054d8601c 100644
--- a/docs/src/assets/images/components/icon.svg
+++ b/docs/src/assets/images/components/icon.svg
@@ -1,196 +1,22 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ icon/component/ icon
+ Created with Sketch.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/src/assets/images/components/spinner.svg b/docs/src/assets/images/components/spinner.svg
index 8b80395e3..7fa1fa91e 100644
--- a/docs/src/assets/images/components/spinner.svg
+++ b/docs/src/assets/images/components/spinner.svg
@@ -1,37 +1,26 @@
-
-
- 4132A270-0635-4179-BE32-E6BD0F1089CF
- Created with sketchtool.
+
+
+ icon/component/spinner
+ Created with Sketch.
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/src/assets/images/overview/icon.png b/docs/src/assets/images/overview/icon.png
new file mode 100644
index 000000000..4a4e735b4
Binary files /dev/null and b/docs/src/assets/images/overview/icon.png differ
diff --git a/docs/src/assets/images/overview/spinner.png b/docs/src/assets/images/overview/spinner.png
new file mode 100644
index 000000000..a6a181416
Binary files /dev/null and b/docs/src/assets/images/overview/spinner.png differ
diff --git a/docs/src/structure.ts b/docs/src/structure.ts
index 2398b7696..298469fef 100644
--- a/docs/src/structure.ts
+++ b/docs/src/structure.ts
@@ -33,12 +33,23 @@ export const structure = [
children: [
{
type: 'page',
- name: 'Install UI Kitten',
+ name: 'Start a new App',
children: [
{
type: 'block',
block: 'markdown',
- source: 'guides/install.md',
+ source: 'guides/install-new.md',
+ },
+ ],
+ },
+ {
+ type: 'page',
+ name: 'Install into existing App',
+ children: [
+ {
+ type: 'block',
+ block: 'markdown',
+ source: 'guides/install-existing.md',
},
],
},
@@ -64,6 +75,28 @@ export const structure = [
},
],
},
+ {
+ type: 'page',
+ name: 'Eva Icons',
+ children: [
+ {
+ type: 'block',
+ block: 'markdown',
+ source: 'guides/setup-icons-module.md',
+ },
+ ],
+ },
+ {
+ type: 'page',
+ name: '3rd party Icons',
+ children: [
+ {
+ type: 'block',
+ block: 'markdown',
+ source: 'guides/setup-vector-icons.md',
+ },
+ ],
+ },
],
},
{
@@ -379,6 +412,20 @@ export const structure = [
},
],
},
+ {
+ type: 'tabs',
+ name: 'Icon',
+ icon: 'icon.svg',
+ source: [
+ 'Icon',
+ ],
+ overview: [
+ {
+ name: 'Icon',
+ images: ['icon.png'],
+ },
+ ],
+ },
{
type: 'tabs',
name: 'Button',
@@ -393,6 +440,15 @@ export const structure = [
},
],
},
+ {
+ type: 'tabs',
+ name: 'Dropdown',
+ icon: 'button.svg',
+ source: [
+ 'Dropdown',
+ ],
+ overview: [],
+ },
{
type: 'tabs',
name: 'Button Group',
@@ -480,6 +536,20 @@ export const structure = [
},
],
},
+ {
+ type: 'tabs',
+ name: 'Spinner',
+ icon: 'spinner.svg',
+ source: [
+ 'Spinner',
+ ],
+ overview: [
+ {
+ name: 'Spinner',
+ images: ['spinner.png'],
+ },
+ ],
+ },
],
},
{
diff --git a/package-lock.json b/package-lock.json
index ecc1d3b8e..fa27b0df6 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -5,45 +5,45 @@
"requires": true,
"dependencies": {
"@babel/code-frame": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz",
- "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz",
+ "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==",
"dev": true,
"requires": {
"@babel/highlight": "^7.0.0"
}
},
"@babel/core": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.5.4.tgz",
- "integrity": "sha512-+DaeBEpYq6b2+ZmHx3tHspC+ZRflrvLqwfv8E3hNr5LVQoyBnL8RPKSBCg+rK2W2My9PWlujBiqd0ZPsR9Q6zQ==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.5.5.tgz",
+ "integrity": "sha512-i4qoSr2KTtce0DmkuuQBV4AuQgGPUcPXMr9L5MyYAtk06z068lQ10a4O009fe5OB/DfNV+h+qqT7ddNV8UnRjg==",
"dev": true,
"requires": {
- "@babel/code-frame": "^7.0.0",
- "@babel/generator": "^7.5.0",
- "@babel/helpers": "^7.5.4",
- "@babel/parser": "^7.5.0",
+ "@babel/code-frame": "^7.5.5",
+ "@babel/generator": "^7.5.5",
+ "@babel/helpers": "^7.5.5",
+ "@babel/parser": "^7.5.5",
"@babel/template": "^7.4.4",
- "@babel/traverse": "^7.5.0",
- "@babel/types": "^7.5.0",
+ "@babel/traverse": "^7.5.5",
+ "@babel/types": "^7.5.5",
"convert-source-map": "^1.1.0",
"debug": "^4.1.0",
"json5": "^2.1.0",
- "lodash": "^4.17.11",
+ "lodash": "^4.17.13",
"resolve": "^1.3.2",
"semver": "^5.4.1",
"source-map": "^0.5.0"
}
},
"@babel/generator": {
- "version": "7.5.0",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.5.0.tgz",
- "integrity": "sha512-1TTVrt7J9rcG5PMjvO7VEG3FrEoEJNHxumRq66GemPmzboLWtIjjcJgk8rokuAS7IiRSpgVSu5Vb9lc99iJkOA==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.5.5.tgz",
+ "integrity": "sha512-ETI/4vyTSxTzGnU2c49XHv2zhExkv9JHLTwDAFz85kmcwuShvYG2H08FwgIguQf4JC75CBnXAUM5PqeF4fj0nQ==",
"dev": true,
"requires": {
- "@babel/types": "^7.5.0",
+ "@babel/types": "^7.5.5",
"jsesc": "^2.5.1",
- "lodash": "^4.17.11",
+ "lodash": "^4.17.13",
"source-map": "^0.5.0",
"trim-right": "^1.0.1"
}
@@ -89,28 +89,28 @@
}
},
"@babel/helper-create-class-features-plugin": {
- "version": "7.5.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.5.0.tgz",
- "integrity": "sha512-EAoMc3hE5vE5LNhMqDOwB1usHvmRjCDAnH8CD4PVkX9/Yr3W/tcz8xE8QvdZxfsFBDICwZnF2UTHIqslRpvxmA==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.5.5.tgz",
+ "integrity": "sha512-ZsxkyYiRA7Bg+ZTRpPvB6AbOFKTFFK4LrvTet8lInm0V468MWCaSYJE+I7v2z2r8KNLtYiV+K5kTCnR7dvyZjg==",
"dev": true,
"requires": {
"@babel/helper-function-name": "^7.1.0",
- "@babel/helper-member-expression-to-functions": "^7.0.0",
+ "@babel/helper-member-expression-to-functions": "^7.5.5",
"@babel/helper-optimise-call-expression": "^7.0.0",
"@babel/helper-plugin-utils": "^7.0.0",
- "@babel/helper-replace-supers": "^7.4.4",
+ "@babel/helper-replace-supers": "^7.5.5",
"@babel/helper-split-export-declaration": "^7.4.4"
}
},
"@babel/helper-define-map": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.4.4.tgz",
- "integrity": "sha512-IX3Ln8gLhZpSuqHJSnTNBWGDE9kdkTEWl21A/K7PQ00tseBwbqCHTvNLHSBd9M0R5rER4h5Rsvj9vw0R5SieBg==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz",
+ "integrity": "sha512-fTfxx7i0B5NJqvUOBBGREnrqbTxRh7zinBANpZXAVDlsZxYdclDp467G1sQ8VZYMnAURY3RpBUAgOYT9GfzHBg==",
"dev": true,
"requires": {
"@babel/helper-function-name": "^7.1.0",
- "@babel/types": "^7.4.4",
- "lodash": "^4.17.11"
+ "@babel/types": "^7.5.5",
+ "lodash": "^4.17.13"
}
},
"@babel/helper-explode-assignable-expression": {
@@ -153,12 +153,12 @@
}
},
"@babel/helper-member-expression-to-functions": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz",
- "integrity": "sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz",
+ "integrity": "sha512-5qZ3D1uMclSNqYcXqiHoA0meVdv+xUEex9em2fqMnrk/scphGlGgg66zjMrPJESPwrFJ6sbfFQYUSa0Mz7FabA==",
"dev": true,
"requires": {
- "@babel/types": "^7.0.0"
+ "@babel/types": "^7.5.5"
}
},
"@babel/helper-module-imports": {
@@ -171,17 +171,17 @@
}
},
"@babel/helper-module-transforms": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.4.4.tgz",
- "integrity": "sha512-3Z1yp8TVQf+B4ynN7WoHPKS8EkdTbgAEy0nU0rs/1Kw4pDgmvYH3rz3aI11KgxKCba2cn7N+tqzV1mY2HMN96w==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz",
+ "integrity": "sha512-jBeCvETKuJqeiaCdyaheF40aXnnU1+wkSiUs/IQg3tB85up1LyL8x77ClY8qJpuRJUcXQo+ZtdNESmZl4j56Pw==",
"dev": true,
"requires": {
"@babel/helper-module-imports": "^7.0.0",
"@babel/helper-simple-access": "^7.1.0",
"@babel/helper-split-export-declaration": "^7.4.4",
"@babel/template": "^7.4.4",
- "@babel/types": "^7.4.4",
- "lodash": "^4.17.11"
+ "@babel/types": "^7.5.5",
+ "lodash": "^4.17.13"
}
},
"@babel/helper-optimise-call-expression": {
@@ -200,12 +200,12 @@
"dev": true
},
"@babel/helper-regex": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.4.4.tgz",
- "integrity": "sha512-Y5nuB/kESmR3tKjU8Nkn1wMGEx1tjJX076HBMeL3XLQCu6vA/YRzuTW0bbb+qRnXvQGn+d6Rx953yffl8vEy7Q==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.5.5.tgz",
+ "integrity": "sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw==",
"dev": true,
"requires": {
- "lodash": "^4.17.11"
+ "lodash": "^4.17.13"
}
},
"@babel/helper-remap-async-to-generator": {
@@ -222,15 +222,15 @@
}
},
"@babel/helper-replace-supers": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.4.4.tgz",
- "integrity": "sha512-04xGEnd+s01nY1l15EuMS1rfKktNF+1CkKmHoErDppjAAZL+IUBZpzT748x262HF7fibaQPhbvWUl5HeSt1EXg==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz",
+ "integrity": "sha512-XvRFWrNnlsow2u7jXDuH4jDDctkxbS7gXssrP4q2nUD606ukXHRvydj346wmNg+zAgpFx4MWf4+usfC93bElJg==",
"dev": true,
"requires": {
- "@babel/helper-member-expression-to-functions": "^7.0.0",
+ "@babel/helper-member-expression-to-functions": "^7.5.5",
"@babel/helper-optimise-call-expression": "^7.0.0",
- "@babel/traverse": "^7.4.4",
- "@babel/types": "^7.4.4"
+ "@babel/traverse": "^7.5.5",
+ "@babel/types": "^7.5.5"
}
},
"@babel/helper-simple-access": {
@@ -265,14 +265,14 @@
}
},
"@babel/helpers": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.5.4.tgz",
- "integrity": "sha512-6LJ6xwUEJP51w0sIgKyfvFMJvIb9mWAfohJp0+m6eHJigkFdcH8duZ1sfhn0ltJRzwUIT/yqqhdSfRpCpL7oow==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.5.5.tgz",
+ "integrity": "sha512-nRq2BUhxZFnfEn/ciJuhklHvFOqjJUD5wpx+1bxUF2axL9C+v4DE/dmp5sT2dKnpOs4orZWzpAZqlCy8QqE/7g==",
"dev": true,
"requires": {
"@babel/template": "^7.4.4",
- "@babel/traverse": "^7.5.0",
- "@babel/types": "^7.5.0"
+ "@babel/traverse": "^7.5.5",
+ "@babel/types": "^7.5.5"
}
},
"@babel/highlight": {
@@ -287,9 +287,9 @@
}
},
"@babel/parser": {
- "version": "7.5.0",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.5.0.tgz",
- "integrity": "sha512-I5nW8AhGpOXGCCNYGc+p7ExQIBxRFnS2fd/d862bNOKvmoEPjYPcfIjsfdy0ujagYOIYPczKgD9l3FsgTkAzKA==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.5.5.tgz",
+ "integrity": "sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g==",
"dev": true
},
"@babel/plugin-external-helpers": {
@@ -302,12 +302,12 @@
}
},
"@babel/plugin-proposal-class-properties": {
- "version": "7.5.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.5.0.tgz",
- "integrity": "sha512-9L/JfPCT+kShiiTTzcnBJ8cOwdKVmlC1RcCf9F0F9tERVrM4iWtWnXtjWCRqNm2la2BxO1MPArWNsU9zsSJWSQ==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.5.5.tgz",
+ "integrity": "sha512-AF79FsnWFxjlaosgdi421vmYG6/jg79bVD0dpD44QdgobzHKuLZ6S3vl8la9qIeSwGi8i1fS0O1mfuDAAdo1/A==",
"dev": true,
"requires": {
- "@babel/helper-create-class-features-plugin": "^7.5.0",
+ "@babel/helper-create-class-features-plugin": "^7.5.5",
"@babel/helper-plugin-utils": "^7.0.0"
}
},
@@ -332,9 +332,9 @@
}
},
"@babel/plugin-proposal-object-rest-spread": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.5.4.tgz",
- "integrity": "sha512-KCx0z3y7y8ipZUMAEEJOyNi11lMb/FOPUjjB113tfowgw0c16EGYos7worCKBcUAh2oG+OBnoUhsnTSoLpV9uA==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.5.5.tgz",
+ "integrity": "sha512-F2DxJJSQ7f64FyTVl5cw/9MWn6naXGdk3Q3UhDbFEEHv+EilCPoeRD3Zh/Utx1CJz4uyKlQ4uH+bJPbEhMV7Zw==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.0.0",
@@ -481,27 +481,27 @@
}
},
"@babel/plugin-transform-block-scoping": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.4.4.tgz",
- "integrity": "sha512-jkTUyWZcTrwxu5DD4rWz6rDB5Cjdmgz6z7M7RLXOJyCUkFBawssDGcGh8M/0FTSB87avyJI1HsTwUXp9nKA1PA==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.5.5.tgz",
+ "integrity": "sha512-82A3CLRRdYubkG85lKwhZB0WZoHxLGsJdux/cOVaJCJpvYFl1LVzAIFyRsa7CvXqW8rBM4Zf3Bfn8PHt5DP0Sg==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.0.0",
- "lodash": "^4.17.11"
+ "lodash": "^4.17.13"
}
},
"@babel/plugin-transform-classes": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.4.4.tgz",
- "integrity": "sha512-/e44eFLImEGIpL9qPxSRat13I5QNRgBLu2hOQJCF7VLy/otSM/sypV1+XaIw5+502RX/+6YaSAPmldk+nhHDPw==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz",
+ "integrity": "sha512-U2htCNK/6e9K7jGyJ++1p5XRU+LJjrwtoiVn9SzRlDT2KubcZ11OOwy3s24TjHxPgxNwonCYP7U2K51uVYCMDg==",
"dev": true,
"requires": {
"@babel/helper-annotate-as-pure": "^7.0.0",
- "@babel/helper-define-map": "^7.4.4",
+ "@babel/helper-define-map": "^7.5.5",
"@babel/helper-function-name": "^7.1.0",
"@babel/helper-optimise-call-expression": "^7.0.0",
"@babel/helper-plugin-utils": "^7.0.0",
- "@babel/helper-replace-supers": "^7.4.4",
+ "@babel/helper-replace-supers": "^7.5.5",
"@babel/helper-split-export-declaration": "^7.4.4",
"globals": "^11.1.0"
}
@@ -603,13 +603,13 @@
}
},
"@babel/plugin-transform-object-super": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz",
- "integrity": "sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz",
+ "integrity": "sha512-un1zJQAhSosGFBduPgN/YFNvWVpRuHKU7IHBglLoLZsGmruJPOo6pbInneflUdmq7YvSVqhpPs5zdBvLnteltQ==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.0.0",
- "@babel/helper-replace-supers": "^7.1.0"
+ "@babel/helper-replace-supers": "^7.5.5"
}
},
"@babel/plugin-transform-parameters": {
@@ -672,9 +672,9 @@
}
},
"@babel/plugin-transform-runtime": {
- "version": "7.5.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.5.0.tgz",
- "integrity": "sha512-LmPIZOAgTLl+86gR9KjLXex6P/lRz1fWEjTz6V6QZMmKie51ja3tvzdwORqhHc4RWR8TcZ5pClpRWs0mlaA2ng==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.5.5.tgz",
+ "integrity": "sha512-6Xmeidsun5rkwnGfMOp6/z9nSzWpHFNVr2Jx7kwoq4mVatQfQx5S56drBgEHF+XQbKOdIaOiMIINvp/kAwMN+w==",
"dev": true,
"requires": {
"@babel/helper-module-imports": "^7.0.0",
@@ -722,12 +722,12 @@
}
},
"@babel/plugin-transform-typescript": {
- "version": "7.5.2",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.5.2.tgz",
- "integrity": "sha512-r4zJOMbKY5puETm8+cIpaa0RQZG/sSASW1u0pj8qYklcERgVIbxVbP2wyJA7zI1//h7lEagQmXi9IL9iI5rfsA==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.5.5.tgz",
+ "integrity": "sha512-pehKf4m640myZu5B2ZviLaiBlxMCjSZ1qTEO459AXKX5GnPueyulJeCqZFs1nz/Ya2dDzXQ1NxZ/kKNWyD4h6w==",
"dev": true,
"requires": {
- "@babel/helper-create-class-features-plugin": "^7.5.0",
+ "@babel/helper-create-class-features-plugin": "^7.5.5",
"@babel/helper-plugin-utils": "^7.0.0",
"@babel/plugin-syntax-typescript": "^7.2.0"
}
@@ -744,31 +744,31 @@
}
},
"@babel/register": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.4.4.tgz",
- "integrity": "sha512-sn51H88GRa00+ZoMqCVgOphmswG4b7mhf9VOB0LUBAieykq2GnRFerlN+JQkO/ntT7wz4jaHNSRPg9IdMPEUkA==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.5.5.tgz",
+ "integrity": "sha512-pdd5nNR+g2qDkXZlW1yRCWFlNrAn2PPdnZUB72zjX4l1Vv4fMRRLwyf+n/idFCLI1UgVGboUU8oVziwTBiyNKQ==",
"dev": true,
"requires": {
"core-js": "^3.0.0",
"find-cache-dir": "^2.0.0",
- "lodash": "^4.17.11",
+ "lodash": "^4.17.13",
"mkdirp": "^0.5.1",
"pirates": "^4.0.0",
"source-map-support": "^0.5.9"
},
"dependencies": {
"core-js": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.1.4.tgz",
- "integrity": "sha512-YNZN8lt82XIMLnLirj9MhKDFZHalwzzrL9YLt6eb0T5D0EDl4IQ90IGkua8mHbnxNrkj1d8hbdizMc0Qmg1WnQ==",
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.2.1.tgz",
+ "integrity": "sha512-Qa5XSVefSVPRxy2XfUC13WbvqkxhkwB3ve+pgCQveNgYzbM/UxZeu1dcOX/xr4UmfUd+muuvsaxilQzCyUurMw==",
"dev": true
}
}
},
"@babel/runtime": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.5.4.tgz",
- "integrity": "sha512-Na84uwyImZZc3FKf4aUF1tysApzwf3p2yuFBIyBfbzT5glzKTdvYI4KVW4kcgjrzoGUjC7w3YyCHcJKaRxsr2Q==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.5.5.tgz",
+ "integrity": "sha512-28QvEGyQyNkB0/m2B4FU7IEZGK2NUrcMtT6BZEFALTguLk+AUT6ofsHtPk5QyjAdUkpMJ+/Em+quwz4HOt30AQ==",
"dev": true,
"requires": {
"regenerator-runtime": "^0.13.2"
@@ -786,30 +786,30 @@
}
},
"@babel/traverse": {
- "version": "7.5.0",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.5.0.tgz",
- "integrity": "sha512-SnA9aLbyOCcnnbQEGwdfBggnc142h/rbqqsXcaATj2hZcegCl903pUD/lfpsNBlBSuWow/YDfRyJuWi2EPR5cg==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.5.5.tgz",
+ "integrity": "sha512-MqB0782whsfffYfSjH4TM+LMjrJnhCNEDMDIjeTpl+ASaUvxcjoiVCo/sM1GhS1pHOXYfWVCYneLjMckuUxDaQ==",
"dev": true,
"requires": {
- "@babel/code-frame": "^7.0.0",
- "@babel/generator": "^7.5.0",
+ "@babel/code-frame": "^7.5.5",
+ "@babel/generator": "^7.5.5",
"@babel/helper-function-name": "^7.1.0",
"@babel/helper-split-export-declaration": "^7.4.4",
- "@babel/parser": "^7.5.0",
- "@babel/types": "^7.5.0",
+ "@babel/parser": "^7.5.5",
+ "@babel/types": "^7.5.5",
"debug": "^4.1.0",
"globals": "^11.1.0",
- "lodash": "^4.17.11"
+ "lodash": "^4.17.13"
}
},
"@babel/types": {
- "version": "7.5.0",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.5.0.tgz",
- "integrity": "sha512-UFpDVqRABKsW01bvw7/wSUe56uy6RXM5+VJibVVAybDGxEW25jdwiFJEf7ASvSaC7sN7rbE/l3cLp2izav+CtQ==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.5.5.tgz",
+ "integrity": "sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw==",
"dev": true,
"requires": {
"esutils": "^2.0.2",
- "lodash": "^4.17.11",
+ "lodash": "^4.17.13",
"to-fast-properties": "^2.0.0"
}
},
@@ -828,54 +828,60 @@
"resolved": "https://registry.npmjs.org/@eva-design/dss/-/dss-1.0.1.tgz",
"integrity": "sha512-RSwSjZzirB8izDhDKod9kwinoB7p/Gq8JyMZeEGfHVZJH0DqmahdI2tNLQPd8igPgpP0AkHS4YFGVV1mF34RzQ=="
},
+ "@eva-design/eva": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@eva-design/eva/-/eva-1.0.1.tgz",
+ "integrity": "sha512-puz8ejPWvZMTZ0CjzCOASYdW6w9rP8CZ3C4uBqqyerdvIcTKZDoSJ71/DE3WiwSI735gIhZeVANo63lrWfqcUA=="
+ },
"@eva-design/processor": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@eva-design/processor/-/processor-1.0.1.tgz",
"integrity": "sha512-/eoR5QnqeR4eKE90jCnOABOtHsyhrpfKe34GYKe2P+GfiJhByz597QDqkG0oCUHJJud9TtauO6fNJnG+UXDEKg=="
},
"@jest/console": {
- "version": "24.7.1",
- "resolved": "https://registry.npmjs.org/@jest/console/-/console-24.7.1.tgz",
- "integrity": "sha512-iNhtIy2M8bXlAOULWVTUxmnelTLFneTNEkHCgPmgd+zNwy9zVddJ6oS5rZ9iwoscNdT5mMwUd0C51v/fSlzItg==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz",
+ "integrity": "sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ==",
"dev": true,
"requires": {
- "@jest/source-map": "^24.3.0",
+ "@jest/source-map": "^24.9.0",
"chalk": "^2.0.1",
"slash": "^2.0.0"
}
},
"@jest/core": {
- "version": "24.8.0",
- "resolved": "https://registry.npmjs.org/@jest/core/-/core-24.8.0.tgz",
- "integrity": "sha512-R9rhAJwCBQzaRnrRgAdVfnglUuATXdwTRsYqs6NMdVcAl5euG8LtWDe+fVkN27YfKVBW61IojVsXKaOmSnqd/A==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/@jest/core/-/core-24.9.0.tgz",
+ "integrity": "sha512-Fogg3s4wlAr1VX7q+rhV9RVnUv5tD7VuWfYy1+whMiWUrvl7U3QJSJyWcDio9Lq2prqYsZaeTv2Rz24pWGkJ2A==",
"dev": true,
"requires": {
"@jest/console": "^24.7.1",
- "@jest/reporters": "^24.8.0",
- "@jest/test-result": "^24.8.0",
- "@jest/transform": "^24.8.0",
- "@jest/types": "^24.8.0",
+ "@jest/reporters": "^24.9.0",
+ "@jest/test-result": "^24.9.0",
+ "@jest/transform": "^24.9.0",
+ "@jest/types": "^24.9.0",
"ansi-escapes": "^3.0.0",
"chalk": "^2.0.1",
"exit": "^0.1.2",
"graceful-fs": "^4.1.15",
- "jest-changed-files": "^24.8.0",
- "jest-config": "^24.8.0",
- "jest-haste-map": "^24.8.0",
- "jest-message-util": "^24.8.0",
+ "jest-changed-files": "^24.9.0",
+ "jest-config": "^24.9.0",
+ "jest-haste-map": "^24.9.0",
+ "jest-message-util": "^24.9.0",
"jest-regex-util": "^24.3.0",
- "jest-resolve-dependencies": "^24.8.0",
- "jest-runner": "^24.8.0",
- "jest-runtime": "^24.8.0",
- "jest-snapshot": "^24.8.0",
- "jest-util": "^24.8.0",
- "jest-validate": "^24.8.0",
- "jest-watcher": "^24.8.0",
+ "jest-resolve": "^24.9.0",
+ "jest-resolve-dependencies": "^24.9.0",
+ "jest-runner": "^24.9.0",
+ "jest-runtime": "^24.9.0",
+ "jest-snapshot": "^24.9.0",
+ "jest-util": "^24.9.0",
+ "jest-validate": "^24.9.0",
+ "jest-watcher": "^24.9.0",
"micromatch": "^3.1.10",
"p-each-series": "^1.0.0",
- "pirates": "^4.0.1",
"realpath-native": "^1.1.0",
"rimraf": "^2.5.4",
+ "slash": "^2.0.0",
"strip-ansi": "^5.0.0"
},
"dependencies": {
@@ -1186,38 +1192,38 @@
}
},
"@jest/environment": {
- "version": "24.8.0",
- "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-24.8.0.tgz",
- "integrity": "sha512-vlGt2HLg7qM+vtBrSkjDxk9K0YtRBi7HfRFaDxoRtyi+DyVChzhF20duvpdAnKVBV6W5tym8jm0U9EfXbDk1tw==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-24.9.0.tgz",
+ "integrity": "sha512-5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ==",
"dev": true,
"requires": {
- "@jest/fake-timers": "^24.8.0",
- "@jest/transform": "^24.8.0",
- "@jest/types": "^24.8.0",
- "jest-mock": "^24.8.0"
+ "@jest/fake-timers": "^24.9.0",
+ "@jest/transform": "^24.9.0",
+ "@jest/types": "^24.9.0",
+ "jest-mock": "^24.9.0"
}
},
"@jest/fake-timers": {
- "version": "24.8.0",
- "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.8.0.tgz",
- "integrity": "sha512-2M4d5MufVXwi6VzZhJ9f5S/wU4ud2ck0kxPof1Iz3zWx6Y+V2eJrES9jEktB6O3o/oEyk+il/uNu9PvASjWXQw==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.9.0.tgz",
+ "integrity": "sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A==",
"dev": true,
"requires": {
- "@jest/types": "^24.8.0",
- "jest-message-util": "^24.8.0",
- "jest-mock": "^24.8.0"
+ "@jest/types": "^24.9.0",
+ "jest-message-util": "^24.9.0",
+ "jest-mock": "^24.9.0"
}
},
"@jest/reporters": {
- "version": "24.8.0",
- "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-24.8.0.tgz",
- "integrity": "sha512-eZ9TyUYpyIIXfYCrw0UHUWUvE35vx5I92HGMgS93Pv7du+GHIzl+/vh8Qj9MCWFK/4TqyttVBPakWMOfZRIfxw==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-24.9.0.tgz",
+ "integrity": "sha512-mu4X0yjaHrffOsWmVLzitKmmmWSQ3GGuefgNscUSWNiUNcEOSEQk9k3pERKEQVBb0Cnn88+UESIsZEMH3o88Gw==",
"dev": true,
"requires": {
- "@jest/environment": "^24.8.0",
- "@jest/test-result": "^24.8.0",
- "@jest/transform": "^24.8.0",
- "@jest/types": "^24.8.0",
+ "@jest/environment": "^24.9.0",
+ "@jest/test-result": "^24.9.0",
+ "@jest/transform": "^24.9.0",
+ "@jest/types": "^24.9.0",
"chalk": "^2.0.1",
"exit": "^0.1.2",
"glob": "^7.1.2",
@@ -1225,13 +1231,13 @@
"istanbul-lib-instrument": "^3.0.1",
"istanbul-lib-report": "^2.0.4",
"istanbul-lib-source-maps": "^3.0.1",
- "istanbul-reports": "^2.1.1",
- "jest-haste-map": "^24.8.0",
- "jest-resolve": "^24.8.0",
- "jest-runtime": "^24.8.0",
- "jest-util": "^24.8.0",
+ "istanbul-reports": "^2.2.6",
+ "jest-haste-map": "^24.9.0",
+ "jest-resolve": "^24.9.0",
+ "jest-runtime": "^24.9.0",
+ "jest-util": "^24.9.0",
"jest-worker": "^24.6.0",
- "node-notifier": "^5.2.1",
+ "node-notifier": "^5.4.2",
"slash": "^2.0.0",
"source-map": "^0.6.0",
"string-length": "^2.0.0"
@@ -1259,9 +1265,9 @@
}
},
"semver": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz",
- "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==",
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
"dev": true
},
"source-map": {
@@ -1273,9 +1279,9 @@
}
},
"@jest/source-map": {
- "version": "24.3.0",
- "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-24.3.0.tgz",
- "integrity": "sha512-zALZt1t2ou8le/crCeeiRYzvdnTzaIlpOWaet45lNSqNJUnXbppUUFR4ZUAlzgDmKee4Q5P/tKXypI1RiHwgag==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-24.9.0.tgz",
+ "integrity": "sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg==",
"dev": true,
"requires": {
"callsites": "^3.0.0",
@@ -1298,45 +1304,46 @@
}
},
"@jest/test-result": {
- "version": "24.8.0",
- "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-24.8.0.tgz",
- "integrity": "sha512-+YdLlxwizlfqkFDh7Mc7ONPQAhA4YylU1s529vVM1rsf67vGZH/2GGm5uO8QzPeVyaVMobCQ7FTxl38QrKRlng==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz",
+ "integrity": "sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA==",
"dev": true,
"requires": {
- "@jest/console": "^24.7.1",
- "@jest/types": "^24.8.0",
+ "@jest/console": "^24.9.0",
+ "@jest/types": "^24.9.0",
"@types/istanbul-lib-coverage": "^2.0.0"
}
},
"@jest/test-sequencer": {
- "version": "24.8.0",
- "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-24.8.0.tgz",
- "integrity": "sha512-OzL/2yHyPdCHXEzhoBuq37CE99nkme15eHkAzXRVqthreWZamEMA0WoetwstsQBCXABhczpK03JNbc4L01vvLg==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz",
+ "integrity": "sha512-6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A==",
"dev": true,
"requires": {
- "@jest/test-result": "^24.8.0",
- "jest-haste-map": "^24.8.0",
- "jest-runner": "^24.8.0",
- "jest-runtime": "^24.8.0"
+ "@jest/test-result": "^24.9.0",
+ "jest-haste-map": "^24.9.0",
+ "jest-runner": "^24.9.0",
+ "jest-runtime": "^24.9.0"
}
},
"@jest/transform": {
- "version": "24.8.0",
- "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-24.8.0.tgz",
- "integrity": "sha512-xBMfFUP7TortCs0O+Xtez2W7Zu1PLH9bvJgtraN1CDST6LBM/eTOZ9SfwS/lvV8yOfcDpFmwf9bq5cYbXvqsvA==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-24.9.0.tgz",
+ "integrity": "sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ==",
"dev": true,
"requires": {
"@babel/core": "^7.1.0",
- "@jest/types": "^24.8.0",
+ "@jest/types": "^24.9.0",
"babel-plugin-istanbul": "^5.1.0",
"chalk": "^2.0.1",
"convert-source-map": "^1.4.0",
"fast-json-stable-stringify": "^2.0.0",
"graceful-fs": "^4.1.15",
- "jest-haste-map": "^24.8.0",
- "jest-regex-util": "^24.3.0",
- "jest-util": "^24.8.0",
+ "jest-haste-map": "^24.9.0",
+ "jest-regex-util": "^24.9.0",
+ "jest-util": "^24.9.0",
"micromatch": "^3.1.10",
+ "pirates": "^4.0.1",
"realpath-native": "^1.1.0",
"slash": "^2.0.0",
"source-map": "^0.6.1",
@@ -1356,11 +1363,12 @@
"dev": true
},
"babel-plugin-istanbul": {
- "version": "5.1.4",
- "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.1.4.tgz",
- "integrity": "sha512-dySz4VJMH+dpndj0wjJ8JPs/7i1TdSPb1nRrn56/92pKOF9VKC1FMFJmMXjzlGGusnCAqujP6PBCiKq0sVA+YQ==",
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz",
+ "integrity": "sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw==",
"dev": true,
"requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
"find-up": "^3.0.0",
"istanbul-lib-instrument": "^3.3.0",
"test-exclude": "^5.2.3"
@@ -1696,9 +1704,9 @@
"dev": true
},
"p-limit": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz",
- "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==",
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz",
+ "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==",
"dev": true,
"requires": {
"p-try": "^2.0.0"
@@ -1772,9 +1780,9 @@
"dev": true
},
"semver": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz",
- "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==",
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
"dev": true
},
"source-map": {
@@ -1804,14 +1812,14 @@
}
},
"@jest/types": {
- "version": "24.8.0",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.8.0.tgz",
- "integrity": "sha512-g17UxVr2YfBtaMUxn9u/4+siG1ptg9IGYAYwvpwn61nBg779RXnjE/m7CxYcIzEt0AbHZZAHSEZNhkE2WxURVg==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz",
+ "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==",
"dev": true,
"requires": {
"@types/istanbul-lib-coverage": "^2.0.0",
"@types/istanbul-reports": "^1.1.1",
- "@types/yargs": "^12.0.9"
+ "@types/yargs": "^13.0.0"
}
},
"@mrmlnc/readdir-enhanced": {
@@ -1831,9 +1839,9 @@
"dev": true
},
"@react-native-community/cli": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-1.10.0.tgz",
- "integrity": "sha512-48tIWsMKhwbDsKhe5tYcsspsAy7aR3J/yRjdsVh+M2qkKEASe66Xbhiw5RK2nhfzd1IdOdlIxNMiC+9uad6NMQ==",
+ "version": "1.11.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-1.11.2.tgz",
+ "integrity": "sha512-5NuYd30f5PCTrGUbZLnusZKv5nfTWvTDTRa/3Q4vwdMnUQrhm9sZXWGQ5CnFoQ7cE58EAqhj6/ShXeJF3DZ9uQ==",
"dev": true,
"requires": {
"chalk": "^1.1.1",
@@ -2048,9 +2056,9 @@
}
},
"@types/jest": {
- "version": "24.0.15",
- "resolved": "https://registry.npmjs.org/@types/jest/-/jest-24.0.15.tgz",
- "integrity": "sha512-MU1HIvWUme74stAoc3mgAi+aMlgKOudgEvQDIm1v4RkrDudBh1T+NFp5sftpBAdXdx1J0PbdpJ+M2EsSOi1djA==",
+ "version": "24.0.17",
+ "resolved": "https://registry.npmjs.org/@types/jest/-/jest-24.0.17.tgz",
+ "integrity": "sha512-1cy3xkOAfSYn78dsBWy4M3h/QF/HeWPchNFDjysVtp3GHeTdSmtluNnELfCmfNRRHo0OWEcpf+NsEJQvwQfdqQ==",
"dev": true,
"requires": {
"@types/jest-diff": "*"
@@ -2063,9 +2071,9 @@
"dev": true
},
"@types/lodash": {
- "version": "4.14.136",
- "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.136.tgz",
- "integrity": "sha512-0GJhzBdvsW2RUccNHOBkabI8HZVdOXmXbXhuKlDEd5Vv12P7oAVGfomGp3Ne21o5D/qu1WmthlNKFaoZJJeErA==",
+ "version": "4.14.137",
+ "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.137.tgz",
+ "integrity": "sha512-g4rNK5SRKloO+sUGbuO7aPtwbwzMgjK+bm9BBhLD7jGUiGR7zhwYEhSln/ihgYQBeIJ5j7xjyaYzrWTcu3UotQ==",
"dev": true
},
"@types/lodash.merge": {
@@ -2090,9 +2098,9 @@
"dev": true
},
"@types/node": {
- "version": "12.6.2",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-12.6.2.tgz",
- "integrity": "sha512-gojym4tX0FWeV2gsW4Xmzo5wxGjXGm550oVUII7f7G5o4BV6c7DBdiG1RRQd+y1bvqRyYtPfMK85UM95vsapqQ==",
+ "version": "12.7.2",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.7.2.tgz",
+ "integrity": "sha512-dyYO+f6ihZEtNPDcWNR1fkoTDf3zAK3lAABDze3mz6POyIercH0lEUawUFXlG8xaQZmm1yEBON/4TsYv/laDYg==",
"dev": true
},
"@types/orchestrator": {
@@ -2118,9 +2126,9 @@
"dev": true
},
"@types/react": {
- "version": "16.8.23",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-16.8.23.tgz",
- "integrity": "sha512-abkEOIeljniUN9qB5onp++g0EY38h7atnDHxwKUFz1r3VH1+yG1OKi2sNPTyObL40goBmfKFpdii2lEzwLX1cA==",
+ "version": "16.9.2",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.2.tgz",
+ "integrity": "sha512-jYP2LWwlh+FTqGd9v7ynUKZzjj98T8x7Yclz479QdRhHfuW9yQ+0jjnD31eXSXutmBpppj5PYNLYLRfnZJvcfg==",
"dev": true,
"requires": {
"@types/prop-types": "*",
@@ -2138,9 +2146,9 @@
}
},
"@types/react-navigation": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/@types/react-navigation/-/react-navigation-3.0.7.tgz",
- "integrity": "sha512-JFsNeCAQEQGTpObiD1QczDyCyQkFBaQA/F85Fo2W8QML1b6UNYHlUDtEYJA6jcfXqPoL15dVPBVj9NBJlHToqA==",
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/@types/react-navigation/-/react-navigation-3.0.8.tgz",
+ "integrity": "sha512-r8UQvBmOz7XjPE8AHTHh0SThGqModhQtSsntkmob7rczhueJIqDwBOgsEn54SJa25XzD/KBlelAWeVZ7+Ggm8A==",
"dev": true,
"requires": {
"@types/react": "*",
@@ -2148,9 +2156,9 @@
}
},
"@types/react-test-renderer": {
- "version": "16.8.2",
- "resolved": "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-16.8.2.tgz",
- "integrity": "sha512-cm42QR9S9V3aOxLh7Fh7PUqQ8oSfSdnSni30T7TiTmlKvE6aUlo+LhQAzjnZBPriD9vYmgG8MXI8UDK4Nfb7gg==",
+ "version": "16.9.0",
+ "resolved": "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-16.9.0.tgz",
+ "integrity": "sha512-bN5EyjtuTY35xX7N5j0KP1vg5MpUXHpFTX6tGsqkNOthjNvet4VQOYRxFh+NT5cDSJrATmAFK9NLeYZ4mp/o0Q==",
"dev": true,
"requires": {
"@types/react": "*"
@@ -2182,9 +2190,18 @@
}
},
"@types/yargs": {
- "version": "12.0.12",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-12.0.12.tgz",
- "integrity": "sha512-SOhuU4wNBxhhTHxYaiG5NY4HBhDIDnJF60GU+2LqHAdKKer86//e4yg69aENCtQ04n0ovz+tq2YPME5t5yp4pw==",
+ "version": "13.0.2",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.2.tgz",
+ "integrity": "sha512-lwwgizwk/bIIU+3ELORkyuOgDjCh7zuWDFqRtPPhhVgq9N1F7CvLNKg1TX4f2duwtKQ0p044Au9r1PLIXHrIzQ==",
+ "dev": true,
+ "requires": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "@types/yargs-parser": {
+ "version": "13.0.0",
+ "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-13.0.0.tgz",
+ "integrity": "sha512-wBlsw+8n21e6eTd4yVv8YD/E3xq0O6nNnJIquutAsFGE7EyMKz7W6RNT6BRu1SmdgmlCZ9tb0X+j+D6HGr8pZw==",
"dev": true
},
"JSONStream": {
@@ -2226,9 +2243,9 @@
"dev": true
},
"acorn-globals": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.2.tgz",
- "integrity": "sha512-BbzvZhVtZP+Bs1J1HcwrQe8ycfO0wStkSGxuul3He3GkHOIZ6eTqOkPuw9IP1X3+IkOo4wiJmwkobzXYz4wewQ==",
+ "version": "4.3.3",
+ "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.3.tgz",
+ "integrity": "sha512-vkR40VwS2SYO98AIeFvzWWh+xyc2qi9s7OoXSFEGIP/rOJKzjnhykaZJNnHdoq4BL2gGxI5EZOU16z896EYnOQ==",
"dev": true,
"requires": {
"acorn": "^6.0.1",
@@ -2236,9 +2253,9 @@
},
"dependencies": {
"acorn": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.2.0.tgz",
- "integrity": "sha512-8oe72N3WPMjA+2zVG71Ia0nXZ8DpQH+QyyHO+p06jT8eg8FGG3FbcUIi8KziHlAfheJQZeoqbvq1mQSQHXKYLw==",
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.3.0.tgz",
+ "integrity": "sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA==",
"dev": true
}
}
@@ -2256,9 +2273,9 @@
"dev": true
},
"ajv": {
- "version": "6.10.1",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.1.tgz",
- "integrity": "sha512-w1YQaVGNC6t2UCPjEawK/vo/dG8OOrVtUmhBT1uJJYxbl5kU2Tj3v6LGqBcsysN1yhuCStJCCA3GqdvKY8sqXQ==",
+ "version": "6.10.2",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
+ "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
"dev": true,
"requires": {
"fast-deep-equal": "^2.0.1",
@@ -2830,18 +2847,18 @@
"dev": true
},
"async": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz",
- "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==",
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
+ "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
"dev": true,
"requires": {
- "lodash": "^4.17.11"
+ "lodash": "^4.17.14"
}
},
"async-limiter": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz",
- "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
+ "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==",
"dev": true
},
"asynckit": {
@@ -3229,9 +3246,9 @@
}
},
"base64-js": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz",
- "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==",
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz",
+ "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==",
"dev": true
},
"basic-auth": {
@@ -3529,29 +3546,29 @@
"dev": true
},
"cliui": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
- "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
+ "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
"dev": true,
"requires": {
- "string-width": "^2.1.1",
- "strip-ansi": "^4.0.0",
- "wrap-ansi": "^2.0.0"
+ "string-width": "^3.1.0",
+ "strip-ansi": "^5.2.0",
+ "wrap-ansi": "^5.1.0"
},
"dependencies": {
"ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
"dev": true
},
"strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
"dev": true,
"requires": {
- "ansi-regex": "^3.0.0"
+ "ansi-regex": "^4.1.0"
}
}
}
@@ -3763,22 +3780,22 @@
}
},
"conventional-changelog": {
- "version": "3.1.8",
- "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-3.1.8.tgz",
- "integrity": "sha512-fb3/DOLLrQdNqN0yYn/lT6HcNsAa9A+VTDBqlZBMQcEPPIeJIMI+DBs3yu+eiYOLi22w9oShq3nn/zN6qm1Hmw==",
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-3.1.10.tgz",
+ "integrity": "sha512-6RDj31hL39HUkpqvPjRlOxAwJRwur8O2qu9m6R0FBNDGwCJyy4SYH9NfyshozxYSeklrauKRf3oSbyoEZVzu9Q==",
"dev": true,
"requires": {
"conventional-changelog-angular": "^5.0.3",
"conventional-changelog-atom": "^2.0.1",
"conventional-changelog-codemirror": "^2.0.1",
- "conventional-changelog-conventionalcommits": "^3.0.2",
- "conventional-changelog-core": "^3.2.2",
+ "conventional-changelog-conventionalcommits": "^4.1.0",
+ "conventional-changelog-core": "^4.0.0",
"conventional-changelog-ember": "^2.0.2",
"conventional-changelog-eslint": "^3.0.2",
"conventional-changelog-express": "^2.0.1",
"conventional-changelog-jquery": "^3.0.4",
"conventional-changelog-jshint": "^2.0.1",
- "conventional-changelog-preset-loader": "^2.1.1"
+ "conventional-changelog-preset-loader": "^2.2.0"
}
},
"conventional-changelog-angular": {
@@ -3801,14 +3818,14 @@
}
},
"conventional-changelog-cli": {
- "version": "2.0.21",
- "resolved": "https://registry.npmjs.org/conventional-changelog-cli/-/conventional-changelog-cli-2.0.21.tgz",
- "integrity": "sha512-gMT1XvSVmo9Np1WUXz8Mvt3K+OtzR+Xu13z0jq/3qsXBbLuYc2/oaUXVr68r3fYOL8E9dN2uvX7Hc7RkeWvRVA==",
+ "version": "2.0.23",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-cli/-/conventional-changelog-cli-2.0.23.tgz",
+ "integrity": "sha512-a/jDZHEUpSHQMAqeDrmrFhz9CKHBKhBGpJyc38BCfNjFA1RKchpq/Qqbo1BZwRLWrW/PX7IGsUicTyhniqUH9g==",
"dev": true,
"requires": {
"add-stream": "^1.0.0",
- "conventional-changelog": "^3.1.8",
- "lodash": "^4.2.1",
+ "conventional-changelog": "^3.1.10",
+ "lodash": "^4.14.14",
"meow": "^4.0.0",
"tempfile": "^1.1.1"
}
@@ -3823,9 +3840,9 @@
}
},
"conventional-changelog-conventionalcommits": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-3.0.2.tgz",
- "integrity": "sha512-w1+fQSDnm/7+sPKIYC5nfRVYDszt+6HdWizrigSqWFVIiiBVzkHGeqDLMSHc+Qq9qssHVAxAak5206epZyK87A==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.1.0.tgz",
+ "integrity": "sha512-J3xolGrH8PTxpCqueHOuZtv3Cp73SQOWiBQzlsaugZAZ+hZgcJBonmC+1bQbfGs2neC2S18p2L1Gx+nTEglJTQ==",
"dev": true,
"requires": {
"compare-func": "^1.3.1",
@@ -3833,18 +3850,18 @@
}
},
"conventional-changelog-core": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-3.2.2.tgz",
- "integrity": "sha512-cssjAKajxaOX5LNAJLB+UOcoWjAIBvXtDMedv/58G+YEmAXMNfC16mmPl0JDOuVJVfIqM0nqQiZ8UCm8IXbE0g==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.0.0.tgz",
+ "integrity": "sha512-+bZMeBUdjKxfyX2w6EST9U7zb85wxrGS3IV4H7SqPya44osNQbm3P+vyqfLs6s57FkoEamC93ioDEiguVLWmSQ==",
"dev": true,
"requires": {
- "conventional-changelog-writer": "^4.0.5",
- "conventional-commits-parser": "^3.0.2",
+ "conventional-changelog-writer": "^4.0.7",
+ "conventional-commits-parser": "^3.0.3",
"dateformat": "^3.0.0",
"get-pkg-repo": "^1.0.0",
"git-raw-commits": "2.0.0",
"git-remote-origin-url": "^2.0.0",
- "git-semver-tags": "^2.0.2",
+ "git-semver-tags": "^3.0.0",
"lodash": "^4.2.1",
"normalize-package-data": "^2.3.5",
"q": "^1.5.1",
@@ -3966,21 +3983,21 @@
}
},
"conventional-changelog-preset-loader": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.1.1.tgz",
- "integrity": "sha512-K4avzGMLm5Xw0Ek/6eE3vdOXkqnpf9ydb68XYmCc16cJ99XMMbc2oaNMuPwAsxVK6CC1yA4/I90EhmWNj0Q6HA==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.2.0.tgz",
+ "integrity": "sha512-zXB+5vF7D5Y3Cb/rJfSyCCvFphCVmF8mFqOdncX3BmjZwAtGAPfYrBcT225udilCKvBbHgyzgxqz2GWDB5xShQ==",
"dev": true
},
"conventional-changelog-writer": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.0.6.tgz",
- "integrity": "sha512-ou/sbrplJMM6KQpR5rKFYNVQYesFjN7WpNGdudQSWNi6X+RgyFUcSv871YBYkrUYV9EX8ijMohYVzn9RUb+4ag==",
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.0.7.tgz",
+ "integrity": "sha512-p/wzs9eYaxhFbrmX/mCJNwJuvvHR+j4Fd0SQa2xyAhYed6KBiZ780LvoqUUvsayP4R1DtC27czalGUhKV2oabw==",
"dev": true,
"requires": {
"compare-func": "^1.3.1",
"conventional-commits-filter": "^2.0.2",
"dateformat": "^3.0.0",
- "handlebars": "^4.1.0",
+ "handlebars": "^4.1.2",
"json-stringify-safe": "^5.0.1",
"lodash": "^4.2.1",
"meow": "^4.0.0",
@@ -3990,9 +4007,9 @@
},
"dependencies": {
"semver": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz",
- "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==",
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
"dev": true
}
}
@@ -4074,13 +4091,13 @@
}
},
"coveralls": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.0.4.tgz",
- "integrity": "sha512-eyqUWA/7RT0JagiL0tThVhjbIjoiEUyWCjtUJoOPcWoeofP5WK/jb2OJYoBFrR6DvplR+AxOyuBqk4JHkk5ykA==",
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.0.6.tgz",
+ "integrity": "sha512-Pgh4v3gCI4T/9VijVrm8Ym5v0OgjvGLKj3zTUwkvsCiwqae/p6VLzpsFNjQS2i6ewV7ef+DjFJ5TSKxYt/mCrA==",
"dev": true,
"requires": {
"growl": "~> 1.10.0",
- "js-yaml": "^3.11.0",
+ "js-yaml": "^3.13.1",
"lcov-parse": "^0.0.10",
"log-driver": "^1.2.7",
"minimist": "^1.2.0",
@@ -4141,12 +4158,12 @@
"dev": true
},
"cssstyle": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.3.0.tgz",
- "integrity": "sha512-wXsoRfsRfsLVNaVzoKdqvEmK/5PFaEXNspVT22Ots6K/cnJdpoDKuQFw+qlMiXnmaif1OgeC466X1zISgAOcGg==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz",
+ "integrity": "sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA==",
"dev": true,
"requires": {
- "cssom": "~0.3.6"
+ "cssom": "0.3.x"
}
},
"csstype": {
@@ -4415,9 +4432,9 @@
"dev": true
},
"diff-sequences": {
- "version": "24.3.0",
- "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.3.0.tgz",
- "integrity": "sha512-xLqpez+Zj9GKSnPWS0WZw1igGocZ+uua8+y+5dDNTT934N3QuY1sp2LkHzwiaYQGz60hMq0pjAshdeXm5VUOEw==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.9.0.tgz",
+ "integrity": "sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew==",
"dev": true
},
"dir-glob": {
@@ -4552,6 +4569,12 @@
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
"dev": true
},
+ "emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+ "dev": true
+ },
"encodeurl": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
@@ -4650,9 +4673,9 @@
"dev": true
},
"escodegen": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.11.1.tgz",
- "integrity": "sha512-JwiqFD9KdGVVpeuRa68yU3zZnBEOcPs0nKW7wZzXky8Z7tffdYUHbe11bPCV5jYlK6DVdKLWLm0f5I/QlL0Kmw==",
+ "version": "1.12.0",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.12.0.tgz",
+ "integrity": "sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg==",
"dev": true,
"requires": {
"esprima": "^3.1.3",
@@ -4684,15 +4707,15 @@
"dev": true
},
"estraverse": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
- "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
"dev": true
},
"esutils": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
- "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
"dev": true
},
"etag": {
@@ -4794,17 +4817,17 @@
}
},
"expect": {
- "version": "24.8.0",
- "resolved": "https://registry.npmjs.org/expect/-/expect-24.8.0.tgz",
- "integrity": "sha512-/zYvP8iMDrzaaxHVa724eJBCKqSHmO0FA7EDkBiRHxg6OipmMn1fN+C8T9L9K8yr7UONkOifu6+LLH+z76CnaA==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/expect/-/expect-24.9.0.tgz",
+ "integrity": "sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q==",
"dev": true,
"requires": {
- "@jest/types": "^24.8.0",
+ "@jest/types": "^24.9.0",
"ansi-styles": "^3.2.0",
- "jest-get-type": "^24.8.0",
- "jest-matcher-utils": "^24.8.0",
- "jest-message-util": "^24.8.0",
- "jest-regex-util": "^24.3.0"
+ "jest-get-type": "^24.9.0",
+ "jest-matcher-utils": "^24.9.0",
+ "jest-message-util": "^24.9.0",
+ "jest-regex-util": "^24.9.0"
}
},
"extend": {
@@ -6423,9 +6446,9 @@
}
},
"get-caller-file": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
- "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
"dev": true
},
"get-pkg-repo": {
@@ -6641,13 +6664,21 @@
}
},
"git-semver-tags": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-2.0.2.tgz",
- "integrity": "sha512-34lMF7Yo1xEmsK2EkbArdoU79umpvm0MfzaDkSNYSJqtM5QLAVTPWgpiXSVI5o/O9EvZPSrP4Zvnec/CqhSd5w==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-3.0.0.tgz",
+ "integrity": "sha512-T4C/gJ9k2Bnxz+PubtcyiMtUUKrC+Nh9Q4zaECcnmVMwJgPhrNyP/Rf+YpdRqsJbCV/+kYrCH24Xg+IeAmbOPg==",
"dev": true,
"requires": {
"meow": "^4.0.0",
- "semver": "^5.5.0"
+ "semver": "^6.0.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ }
}
},
"gitconfiglocal": {
@@ -6902,9 +6933,9 @@
}
},
"graceful-fs": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.0.tgz",
- "integrity": "sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg==",
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
+ "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==",
"dev": true
},
"growl": {
@@ -7299,9 +7330,9 @@
}
},
"highlight.js": {
- "version": "9.15.8",
- "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.15.8.tgz",
- "integrity": "sha512-RrapkKQWwE+wKdF73VsOa2RQdIoO3mxwJ4P8mhbI6KYJUraUHRKM5w5zQQKXNk0xNL4UVRdulV9SBJcmzJNzVA==",
+ "version": "9.15.9",
+ "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.15.9.tgz",
+ "integrity": "sha512-M0zZvfLr5p0keDMCAhNBp03XJbKBxUx5AfyfufMdFMEP4N/Xj6dh0IqC75ys7BAzceR34NgcvXjupRVaHBPPVQ==",
"dev": true
},
"hoist-non-react-statics": {
@@ -7322,9 +7353,9 @@
}
},
"hosted-git-info": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz",
- "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==",
+ "version": "2.8.4",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.4.tgz",
+ "integrity": "sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ==",
"dev": true
},
"html-encoding-sniffer": {
@@ -7404,9 +7435,9 @@
}
},
"p-limit": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz",
- "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==",
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz",
+ "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==",
"dev": true,
"requires": {
"p-try": "^2.0.0"
@@ -7559,6 +7590,16 @@
"integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
"dev": true
},
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ }
+ },
"strip-ansi": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
@@ -7586,9 +7627,9 @@
}
},
"invert-kv": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
- "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
+ "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
"dev": true
},
"is-absolute": {
@@ -8035,71 +8076,71 @@
}
},
"jest": {
- "version": "24.8.0",
- "resolved": "https://registry.npmjs.org/jest/-/jest-24.8.0.tgz",
- "integrity": "sha512-o0HM90RKFRNWmAWvlyV8i5jGZ97pFwkeVoGvPW1EtLTgJc2+jcuqcbbqcSZLE/3f2S5pt0y2ZBETuhpWNl1Reg==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest/-/jest-24.9.0.tgz",
+ "integrity": "sha512-YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw==",
"dev": true,
"requires": {
"import-local": "^2.0.0",
- "jest-cli": "^24.8.0"
+ "jest-cli": "^24.9.0"
},
"dependencies": {
"jest-cli": {
- "version": "24.8.0",
- "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-24.8.0.tgz",
- "integrity": "sha512-+p6J00jSMPQ116ZLlHJJvdf8wbjNbZdeSX9ptfHX06/MSNaXmKihQzx5vQcw0q2G6JsdVkUIdWbOWtSnaYs3yA==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-24.9.0.tgz",
+ "integrity": "sha512-+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg==",
"dev": true,
"requires": {
- "@jest/core": "^24.8.0",
- "@jest/test-result": "^24.8.0",
- "@jest/types": "^24.8.0",
+ "@jest/core": "^24.9.0",
+ "@jest/test-result": "^24.9.0",
+ "@jest/types": "^24.9.0",
"chalk": "^2.0.1",
"exit": "^0.1.2",
"import-local": "^2.0.0",
"is-ci": "^2.0.0",
- "jest-config": "^24.8.0",
- "jest-util": "^24.8.0",
- "jest-validate": "^24.8.0",
+ "jest-config": "^24.9.0",
+ "jest-util": "^24.9.0",
+ "jest-validate": "^24.9.0",
"prompts": "^2.0.1",
"realpath-native": "^1.1.0",
- "yargs": "^12.0.2"
+ "yargs": "^13.3.0"
}
}
}
},
"jest-changed-files": {
- "version": "24.8.0",
- "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-24.8.0.tgz",
- "integrity": "sha512-qgANC1Yrivsq+UrLXsvJefBKVoCsKB0Hv+mBb6NMjjZ90wwxCDmU3hsCXBya30cH+LnPYjwgcU65i6yJ5Nfuug==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-24.9.0.tgz",
+ "integrity": "sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg==",
"dev": true,
"requires": {
- "@jest/types": "^24.8.0",
+ "@jest/types": "^24.9.0",
"execa": "^1.0.0",
"throat": "^4.0.0"
}
},
"jest-config": {
- "version": "24.8.0",
- "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-24.8.0.tgz",
- "integrity": "sha512-Czl3Nn2uEzVGsOeaewGWoDPD8GStxCpAe0zOYs2x2l0fZAgPbCr3uwUkgNKV3LwE13VXythM946cd5rdGkkBZw==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-24.9.0.tgz",
+ "integrity": "sha512-RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ==",
"dev": true,
"requires": {
"@babel/core": "^7.1.0",
- "@jest/test-sequencer": "^24.8.0",
- "@jest/types": "^24.8.0",
- "babel-jest": "^24.8.0",
+ "@jest/test-sequencer": "^24.9.0",
+ "@jest/types": "^24.9.0",
+ "babel-jest": "^24.9.0",
"chalk": "^2.0.1",
"glob": "^7.1.1",
- "jest-environment-jsdom": "^24.8.0",
- "jest-environment-node": "^24.8.0",
- "jest-get-type": "^24.8.0",
- "jest-jasmine2": "^24.8.0",
+ "jest-environment-jsdom": "^24.9.0",
+ "jest-environment-node": "^24.9.0",
+ "jest-get-type": "^24.9.0",
+ "jest-jasmine2": "^24.9.0",
"jest-regex-util": "^24.3.0",
- "jest-resolve": "^24.8.0",
- "jest-util": "^24.8.0",
- "jest-validate": "^24.8.0",
+ "jest-resolve": "^24.9.0",
+ "jest-util": "^24.9.0",
+ "jest-validate": "^24.9.0",
"micromatch": "^3.1.10",
- "pretty-format": "^24.8.0",
+ "pretty-format": "^24.9.0",
"realpath-native": "^1.1.0"
},
"dependencies": {
@@ -8116,48 +8157,49 @@
"dev": true
},
"babel-jest": {
- "version": "24.8.0",
- "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-24.8.0.tgz",
- "integrity": "sha512-+5/kaZt4I9efoXzPlZASyK/lN9qdRKmmUav9smVc0ruPQD7IsfucQ87gpOE8mn2jbDuS6M/YOW6n3v9ZoIfgnw==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-24.9.0.tgz",
+ "integrity": "sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw==",
"dev": true,
"requires": {
- "@jest/transform": "^24.8.0",
- "@jest/types": "^24.8.0",
+ "@jest/transform": "^24.9.0",
+ "@jest/types": "^24.9.0",
"@types/babel__core": "^7.1.0",
"babel-plugin-istanbul": "^5.1.0",
- "babel-preset-jest": "^24.6.0",
+ "babel-preset-jest": "^24.9.0",
"chalk": "^2.4.2",
"slash": "^2.0.0"
}
},
"babel-plugin-istanbul": {
- "version": "5.1.4",
- "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.1.4.tgz",
- "integrity": "sha512-dySz4VJMH+dpndj0wjJ8JPs/7i1TdSPb1nRrn56/92pKOF9VKC1FMFJmMXjzlGGusnCAqujP6PBCiKq0sVA+YQ==",
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz",
+ "integrity": "sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw==",
"dev": true,
"requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
"find-up": "^3.0.0",
"istanbul-lib-instrument": "^3.3.0",
"test-exclude": "^5.2.3"
}
},
"babel-plugin-jest-hoist": {
- "version": "24.6.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.6.0.tgz",
- "integrity": "sha512-3pKNH6hMt9SbOv0F3WVmy5CWQ4uogS3k0GY5XLyQHJ9EGpAT9XWkFd2ZiXXtkwFHdAHa5j7w7kfxSP5lAIwu7w==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz",
+ "integrity": "sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw==",
"dev": true,
"requires": {
"@types/babel__traverse": "^7.0.6"
}
},
"babel-preset-jest": {
- "version": "24.6.0",
- "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-24.6.0.tgz",
- "integrity": "sha512-pdZqLEdmy1ZK5kyRUfvBb2IfTPb2BUvIJczlPspS8fWmBQslNNDBqVfh7BW5leOVJMDZKzjD8XEyABTk6gQ5yw==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz",
+ "integrity": "sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg==",
"dev": true,
"requires": {
"@babel/plugin-syntax-object-rest-spread": "^7.0.0",
- "babel-plugin-jest-hoist": "^24.6.0"
+ "babel-plugin-jest-hoist": "^24.9.0"
}
},
"braces": {
@@ -8490,9 +8532,9 @@
"dev": true
},
"p-limit": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz",
- "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==",
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz",
+ "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==",
"dev": true,
"requires": {
"p-try": "^2.0.0"
@@ -8566,9 +8608,9 @@
"dev": true
},
"semver": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz",
- "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==",
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
"dev": true
},
"strip-bom": {
@@ -8592,87 +8634,87 @@
}
},
"jest-diff": {
- "version": "24.8.0",
- "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-24.8.0.tgz",
- "integrity": "sha512-wxetCEl49zUpJ/bvUmIFjd/o52J+yWcoc5ZyPq4/W1LUKGEhRYDIbP1KcF6t+PvqNrGAFk4/JhtxDq/Nnzs66g==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-24.9.0.tgz",
+ "integrity": "sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ==",
"dev": true,
"requires": {
"chalk": "^2.0.1",
- "diff-sequences": "^24.3.0",
- "jest-get-type": "^24.8.0",
- "pretty-format": "^24.8.0"
+ "diff-sequences": "^24.9.0",
+ "jest-get-type": "^24.9.0",
+ "pretty-format": "^24.9.0"
}
},
"jest-docblock": {
- "version": "24.3.0",
- "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-24.3.0.tgz",
- "integrity": "sha512-nlANmF9Yq1dufhFlKG9rasfQlrY7wINJbo3q01tu56Jv5eBU5jirylhF2O5ZBnLxzOVBGRDz/9NAwNyBtG4Nyg==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-24.9.0.tgz",
+ "integrity": "sha512-F1DjdpDMJMA1cN6He0FNYNZlo3yYmOtRUnktrT9Q37njYzC5WEaDdmbynIgy0L/IvXvvgsG8OsqhLPXTpfmZAA==",
"dev": true,
"requires": {
"detect-newline": "^2.1.0"
}
},
"jest-each": {
- "version": "24.8.0",
- "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-24.8.0.tgz",
- "integrity": "sha512-NrwK9gaL5+XgrgoCsd9svsoWdVkK4gnvyhcpzd6m487tXHqIdYeykgq3MKI1u4I+5Zf0tofr70at9dWJDeb+BA==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-24.9.0.tgz",
+ "integrity": "sha512-ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog==",
"dev": true,
"requires": {
- "@jest/types": "^24.8.0",
+ "@jest/types": "^24.9.0",
"chalk": "^2.0.1",
- "jest-get-type": "^24.8.0",
- "jest-util": "^24.8.0",
- "pretty-format": "^24.8.0"
+ "jest-get-type": "^24.9.0",
+ "jest-util": "^24.9.0",
+ "pretty-format": "^24.9.0"
}
},
"jest-environment-jsdom": {
- "version": "24.8.0",
- "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-24.8.0.tgz",
- "integrity": "sha512-qbvgLmR7PpwjoFjM/sbuqHJt/NCkviuq9vus9NBn/76hhSidO+Z6Bn9tU8friecegbJL8gzZQEMZBQlFWDCwAQ==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz",
+ "integrity": "sha512-Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA==",
"dev": true,
"requires": {
- "@jest/environment": "^24.8.0",
- "@jest/fake-timers": "^24.8.0",
- "@jest/types": "^24.8.0",
- "jest-mock": "^24.8.0",
- "jest-util": "^24.8.0",
+ "@jest/environment": "^24.9.0",
+ "@jest/fake-timers": "^24.9.0",
+ "@jest/types": "^24.9.0",
+ "jest-mock": "^24.9.0",
+ "jest-util": "^24.9.0",
"jsdom": "^11.5.1"
}
},
"jest-environment-node": {
- "version": "24.8.0",
- "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-24.8.0.tgz",
- "integrity": "sha512-vIGUEScd1cdDgR6sqn2M08sJTRLQp6Dk/eIkCeO4PFHxZMOgy+uYLPMC4ix3PEfM5Au/x3uQ/5Tl0DpXXZsJ/Q==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-24.9.0.tgz",
+ "integrity": "sha512-6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA==",
"dev": true,
"requires": {
- "@jest/environment": "^24.8.0",
- "@jest/fake-timers": "^24.8.0",
- "@jest/types": "^24.8.0",
- "jest-mock": "^24.8.0",
- "jest-util": "^24.8.0"
+ "@jest/environment": "^24.9.0",
+ "@jest/fake-timers": "^24.9.0",
+ "@jest/types": "^24.9.0",
+ "jest-mock": "^24.9.0",
+ "jest-util": "^24.9.0"
}
},
"jest-get-type": {
- "version": "24.8.0",
- "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.8.0.tgz",
- "integrity": "sha512-RR4fo8jEmMD9zSz2nLbs2j0zvPpk/KCEz3a62jJWbd2ayNo0cb+KFRxPHVhE4ZmgGJEQp0fosmNz84IfqM8cMQ==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz",
+ "integrity": "sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==",
"dev": true
},
"jest-haste-map": {
- "version": "24.8.1",
- "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.8.1.tgz",
- "integrity": "sha512-SwaxMGVdAZk3ernAx2Uv2sorA7jm3Kx+lR0grp6rMmnY06Kn/urtKx1LPN2mGTea4fCT38impYT28FfcLUhX0g==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.9.0.tgz",
+ "integrity": "sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ==",
"dev": true,
"requires": {
- "@jest/types": "^24.8.0",
+ "@jest/types": "^24.9.0",
"anymatch": "^2.0.0",
"fb-watchman": "^2.0.0",
"fsevents": "^1.2.7",
"graceful-fs": "^4.1.15",
"invariant": "^2.2.4",
- "jest-serializer": "^24.4.0",
- "jest-util": "^24.8.0",
- "jest-worker": "^24.6.0",
+ "jest-serializer": "^24.9.0",
+ "jest-util": "^24.9.0",
+ "jest-worker": "^24.9.0",
"micromatch": "^3.1.10",
"sane": "^4.0.3",
"walker": "^1.0.7"
@@ -8970,59 +9012,60 @@
}
},
"jest-jasmine2": {
- "version": "24.8.0",
- "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-24.8.0.tgz",
- "integrity": "sha512-cEky88npEE5LKd5jPpTdDCLvKkdyklnaRycBXL6GNmpxe41F0WN44+i7lpQKa/hcbXaQ+rc9RMaM4dsebrYong==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz",
+ "integrity": "sha512-Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw==",
"dev": true,
"requires": {
"@babel/traverse": "^7.1.0",
- "@jest/environment": "^24.8.0",
- "@jest/test-result": "^24.8.0",
- "@jest/types": "^24.8.0",
+ "@jest/environment": "^24.9.0",
+ "@jest/test-result": "^24.9.0",
+ "@jest/types": "^24.9.0",
"chalk": "^2.0.1",
"co": "^4.6.0",
- "expect": "^24.8.0",
+ "expect": "^24.9.0",
"is-generator-fn": "^2.0.0",
- "jest-each": "^24.8.0",
- "jest-matcher-utils": "^24.8.0",
- "jest-message-util": "^24.8.0",
- "jest-runtime": "^24.8.0",
- "jest-snapshot": "^24.8.0",
- "jest-util": "^24.8.0",
- "pretty-format": "^24.8.0",
+ "jest-each": "^24.9.0",
+ "jest-matcher-utils": "^24.9.0",
+ "jest-message-util": "^24.9.0",
+ "jest-runtime": "^24.9.0",
+ "jest-snapshot": "^24.9.0",
+ "jest-util": "^24.9.0",
+ "pretty-format": "^24.9.0",
"throat": "^4.0.0"
}
},
"jest-leak-detector": {
- "version": "24.8.0",
- "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-24.8.0.tgz",
- "integrity": "sha512-cG0yRSK8A831LN8lIHxI3AblB40uhv0z+SsQdW3GoMMVcK+sJwrIIyax5tu3eHHNJ8Fu6IMDpnLda2jhn2pD/g==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz",
+ "integrity": "sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA==",
"dev": true,
"requires": {
- "pretty-format": "^24.8.0"
+ "jest-get-type": "^24.9.0",
+ "pretty-format": "^24.9.0"
}
},
"jest-matcher-utils": {
- "version": "24.8.0",
- "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-24.8.0.tgz",
- "integrity": "sha512-lex1yASY51FvUuHgm0GOVj7DCYEouWSlIYmCW7APSqB9v8mXmKSn5+sWVF0MhuASG0bnYY106/49JU1FZNl5hw==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz",
+ "integrity": "sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA==",
"dev": true,
"requires": {
"chalk": "^2.0.1",
- "jest-diff": "^24.8.0",
- "jest-get-type": "^24.8.0",
- "pretty-format": "^24.8.0"
+ "jest-diff": "^24.9.0",
+ "jest-get-type": "^24.9.0",
+ "pretty-format": "^24.9.0"
}
},
"jest-message-util": {
- "version": "24.8.0",
- "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.8.0.tgz",
- "integrity": "sha512-p2k71rf/b6ns8btdB0uVdljWo9h0ovpnEe05ZKWceQGfXYr4KkzgKo3PBi8wdnd9OtNh46VpNIJynUn/3MKm1g==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.9.0.tgz",
+ "integrity": "sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.0.0",
- "@jest/test-result": "^24.8.0",
- "@jest/types": "^24.8.0",
+ "@jest/test-result": "^24.9.0",
+ "@jest/types": "^24.9.0",
"@types/stack-utils": "^1.0.1",
"chalk": "^2.0.1",
"micromatch": "^3.1.10",
@@ -9322,12 +9365,12 @@
}
},
"jest-mock": {
- "version": "24.8.0",
- "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-24.8.0.tgz",
- "integrity": "sha512-6kWugwjGjJw+ZkK4mDa0Df3sDlUTsV47MSrT0nGQ0RBWJbpODDQ8MHDVtGtUYBne3IwZUhtB7elxHspU79WH3A==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-24.9.0.tgz",
+ "integrity": "sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w==",
"dev": true,
"requires": {
- "@jest/types": "^24.8.0"
+ "@jest/types": "^24.9.0"
}
},
"jest-pnp-resolver": {
@@ -9337,18 +9380,18 @@
"dev": true
},
"jest-regex-util": {
- "version": "24.3.0",
- "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-24.3.0.tgz",
- "integrity": "sha512-tXQR1NEOyGlfylyEjg1ImtScwMq8Oh3iJbGTjN7p0J23EuVX1MA8rwU69K4sLbCmwzgCUbVkm0FkSF9TdzOhtg==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-24.9.0.tgz",
+ "integrity": "sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA==",
"dev": true
},
"jest-resolve": {
- "version": "24.8.0",
- "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-24.8.0.tgz",
- "integrity": "sha512-+hjSzi1PoRvnuOICoYd5V/KpIQmkAsfjFO71458hQ2Whi/yf1GDeBOFj8Gxw4LrApHsVJvn5fmjcPdmoUHaVKw==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-24.9.0.tgz",
+ "integrity": "sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ==",
"dev": true,
"requires": {
- "@jest/types": "^24.8.0",
+ "@jest/types": "^24.9.0",
"browser-resolve": "^1.11.3",
"chalk": "^2.0.1",
"jest-pnp-resolver": "^1.2.1",
@@ -9356,72 +9399,72 @@
}
},
"jest-resolve-dependencies": {
- "version": "24.8.0",
- "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-24.8.0.tgz",
- "integrity": "sha512-hyK1qfIf/krV+fSNyhyJeq3elVMhK9Eijlwy+j5jqmZ9QsxwKBiP6qukQxaHtK8k6zql/KYWwCTQ+fDGTIJauw==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz",
+ "integrity": "sha512-Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g==",
"dev": true,
"requires": {
- "@jest/types": "^24.8.0",
+ "@jest/types": "^24.9.0",
"jest-regex-util": "^24.3.0",
- "jest-snapshot": "^24.8.0"
+ "jest-snapshot": "^24.9.0"
}
},
"jest-runner": {
- "version": "24.8.0",
- "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-24.8.0.tgz",
- "integrity": "sha512-utFqC5BaA3JmznbissSs95X1ZF+d+4WuOWwpM9+Ak356YtMhHE/GXUondZdcyAAOTBEsRGAgH/0TwLzfI9h7ow==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-24.9.0.tgz",
+ "integrity": "sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg==",
"dev": true,
"requires": {
"@jest/console": "^24.7.1",
- "@jest/environment": "^24.8.0",
- "@jest/test-result": "^24.8.0",
- "@jest/types": "^24.8.0",
+ "@jest/environment": "^24.9.0",
+ "@jest/test-result": "^24.9.0",
+ "@jest/types": "^24.9.0",
"chalk": "^2.4.2",
"exit": "^0.1.2",
"graceful-fs": "^4.1.15",
- "jest-config": "^24.8.0",
+ "jest-config": "^24.9.0",
"jest-docblock": "^24.3.0",
- "jest-haste-map": "^24.8.0",
- "jest-jasmine2": "^24.8.0",
- "jest-leak-detector": "^24.8.0",
- "jest-message-util": "^24.8.0",
- "jest-resolve": "^24.8.0",
- "jest-runtime": "^24.8.0",
- "jest-util": "^24.8.0",
+ "jest-haste-map": "^24.9.0",
+ "jest-jasmine2": "^24.9.0",
+ "jest-leak-detector": "^24.9.0",
+ "jest-message-util": "^24.9.0",
+ "jest-resolve": "^24.9.0",
+ "jest-runtime": "^24.9.0",
+ "jest-util": "^24.9.0",
"jest-worker": "^24.6.0",
"source-map-support": "^0.5.6",
"throat": "^4.0.0"
}
},
"jest-runtime": {
- "version": "24.8.0",
- "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-24.8.0.tgz",
- "integrity": "sha512-Mq0aIXhvO/3bX44ccT+czU1/57IgOMyy80oM0XR/nyD5zgBcesF84BPabZi39pJVA6UXw+fY2Q1N+4BiVUBWOA==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-24.9.0.tgz",
+ "integrity": "sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw==",
"dev": true,
"requires": {
"@jest/console": "^24.7.1",
- "@jest/environment": "^24.8.0",
+ "@jest/environment": "^24.9.0",
"@jest/source-map": "^24.3.0",
- "@jest/transform": "^24.8.0",
- "@jest/types": "^24.8.0",
- "@types/yargs": "^12.0.2",
+ "@jest/transform": "^24.9.0",
+ "@jest/types": "^24.9.0",
+ "@types/yargs": "^13.0.0",
"chalk": "^2.0.1",
"exit": "^0.1.2",
"glob": "^7.1.3",
"graceful-fs": "^4.1.15",
- "jest-config": "^24.8.0",
- "jest-haste-map": "^24.8.0",
- "jest-message-util": "^24.8.0",
- "jest-mock": "^24.8.0",
+ "jest-config": "^24.9.0",
+ "jest-haste-map": "^24.9.0",
+ "jest-message-util": "^24.9.0",
+ "jest-mock": "^24.9.0",
"jest-regex-util": "^24.3.0",
- "jest-resolve": "^24.8.0",
- "jest-snapshot": "^24.8.0",
- "jest-util": "^24.8.0",
- "jest-validate": "^24.8.0",
+ "jest-resolve": "^24.9.0",
+ "jest-snapshot": "^24.9.0",
+ "jest-util": "^24.9.0",
+ "jest-validate": "^24.9.0",
"realpath-native": "^1.1.0",
"slash": "^2.0.0",
"strip-bom": "^3.0.0",
- "yargs": "^12.0.2"
+ "yargs": "^13.3.0"
},
"dependencies": {
"strip-bom": {
@@ -9433,42 +9476,51 @@
}
},
"jest-serializer": {
- "version": "24.4.0",
- "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.4.0.tgz",
- "integrity": "sha512-k//0DtglVstc1fv+GY/VHDIjrtNjdYvYjMlbLUed4kxrE92sIUewOi5Hj3vrpB8CXfkJntRPDRjCrCvUhBdL8Q==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.9.0.tgz",
+ "integrity": "sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ==",
"dev": true
},
"jest-snapshot": {
- "version": "24.8.0",
- "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-24.8.0.tgz",
- "integrity": "sha512-5ehtWoc8oU9/cAPe6fez6QofVJLBKyqkY2+TlKTOf0VllBB/mqUNdARdcjlZrs9F1Cv+/HKoCS/BknT0+tmfPg==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-24.9.0.tgz",
+ "integrity": "sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew==",
"dev": true,
"requires": {
"@babel/types": "^7.0.0",
- "@jest/types": "^24.8.0",
+ "@jest/types": "^24.9.0",
"chalk": "^2.0.1",
- "expect": "^24.8.0",
- "jest-diff": "^24.8.0",
- "jest-matcher-utils": "^24.8.0",
- "jest-message-util": "^24.8.0",
- "jest-resolve": "^24.8.0",
+ "expect": "^24.9.0",
+ "jest-diff": "^24.9.0",
+ "jest-get-type": "^24.9.0",
+ "jest-matcher-utils": "^24.9.0",
+ "jest-message-util": "^24.9.0",
+ "jest-resolve": "^24.9.0",
"mkdirp": "^0.5.1",
"natural-compare": "^1.4.0",
- "pretty-format": "^24.8.0",
- "semver": "^5.5.0"
+ "pretty-format": "^24.9.0",
+ "semver": "^6.2.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ }
}
},
"jest-util": {
- "version": "24.8.0",
- "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-24.8.0.tgz",
- "integrity": "sha512-DYZeE+XyAnbNt0BG1OQqKy/4GVLPtzwGx5tsnDrFcax36rVE3lTA5fbvgmbVPUZf9w77AJ8otqR4VBbfFJkUZA==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-24.9.0.tgz",
+ "integrity": "sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg==",
"dev": true,
"requires": {
- "@jest/console": "^24.7.1",
- "@jest/fake-timers": "^24.8.0",
- "@jest/source-map": "^24.3.0",
- "@jest/test-result": "^24.8.0",
- "@jest/types": "^24.8.0",
+ "@jest/console": "^24.9.0",
+ "@jest/fake-timers": "^24.9.0",
+ "@jest/source-map": "^24.9.0",
+ "@jest/test-result": "^24.9.0",
+ "@jest/types": "^24.9.0",
"callsites": "^3.0.0",
"chalk": "^2.0.1",
"graceful-fs": "^4.1.15",
@@ -9493,17 +9545,17 @@
}
},
"jest-validate": {
- "version": "24.8.0",
- "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-24.8.0.tgz",
- "integrity": "sha512-+/N7VOEMW1Vzsrk3UWBDYTExTPwf68tavEPKDnJzrC6UlHtUDU/fuEdXqFoHzv9XnQ+zW6X3qMZhJ3YexfeLDA==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz",
+ "integrity": "sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==",
"dev": true,
"requires": {
- "@jest/types": "^24.8.0",
- "camelcase": "^5.0.0",
+ "@jest/types": "^24.9.0",
+ "camelcase": "^5.3.1",
"chalk": "^2.0.1",
- "jest-get-type": "^24.8.0",
- "leven": "^2.1.0",
- "pretty-format": "^24.8.0"
+ "jest-get-type": "^24.9.0",
+ "leven": "^3.1.0",
+ "pretty-format": "^24.9.0"
},
"dependencies": {
"camelcase": {
@@ -9515,27 +9567,27 @@
}
},
"jest-watcher": {
- "version": "24.8.0",
- "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-24.8.0.tgz",
- "integrity": "sha512-SBjwHt5NedQoVu54M5GEx7cl7IGEFFznvd/HNT8ier7cCAx/Qgu9ZMlaTQkvK22G1YOpcWBLQPFSImmxdn3DAw==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-24.9.0.tgz",
+ "integrity": "sha512-+/fLOfKPXXYJDYlks62/4R4GoT+GU1tYZed99JSCOsmzkkF7727RqKrjNAxtfO4YpGv11wybgRvCjR73lK2GZw==",
"dev": true,
"requires": {
- "@jest/test-result": "^24.8.0",
- "@jest/types": "^24.8.0",
- "@types/yargs": "^12.0.9",
+ "@jest/test-result": "^24.9.0",
+ "@jest/types": "^24.9.0",
+ "@types/yargs": "^13.0.0",
"ansi-escapes": "^3.0.0",
"chalk": "^2.0.1",
- "jest-util": "^24.8.0",
+ "jest-util": "^24.9.0",
"string-length": "^2.0.0"
}
},
"jest-worker": {
- "version": "24.6.0",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.6.0.tgz",
- "integrity": "sha512-jDwgW5W9qGNvpI1tNnvajh0a5IE/PuGLFmHk6aR/BZFz8tSgGw17GsDPXAJ6p91IvYDjOw8GpFbvvZGAK+DPQQ==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz",
+ "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==",
"dev": true,
"requires": {
- "merge-stream": "^1.0.1",
+ "merge-stream": "^2.0.0",
"supports-color": "^6.1.0"
},
"dependencies": {
@@ -9712,12 +9764,12 @@
"dev": true
},
"lcid": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
- "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
+ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
"dev": true,
"requires": {
- "invert-kv": "^2.0.0"
+ "invert-kv": "^1.0.0"
}
},
"lcov-parse": {
@@ -9733,9 +9785,9 @@
"dev": true
},
"leven": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz",
- "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
+ "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
"dev": true
},
"levn": {
@@ -9788,9 +9840,9 @@
}
},
"lodash": {
- "version": "4.17.13",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.13.tgz",
- "integrity": "sha512-vm3/XWXfWtRua0FkUyEHBZy8kCPjErNBT9fJx8Zvs+U6zjqPbTUOpkaoum3O5uiA8sm+yNMHXfYkTUHFoMxFNA==",
+ "version": "4.17.15",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
+ "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
"dev": true
},
"lodash._basecopy": {
@@ -10026,15 +10078,6 @@
"tmpl": "1.0.x"
}
},
- "map-age-cleaner": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz",
- "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==",
- "dev": true,
- "requires": {
- "p-defer": "^1.0.0"
- }
- },
"map-cache": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
@@ -10075,14 +10118,12 @@
"dev": true
},
"mem": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz",
- "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz",
+ "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=",
"dev": true,
"requires": {
- "map-age-cleaner": "^0.1.1",
- "mimic-fn": "^2.0.0",
- "p-is-promise": "^2.0.0"
+ "mimic-fn": "^1.0.0"
}
},
"meow": {
@@ -10175,44 +10216,15 @@
"dev": true
},
"merge-stream": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz",
- "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=",
- "dev": true,
- "requires": {
- "readable-stream": "^2.0.1"
- },
- "dependencies": {
- "readable-stream": {
- "version": "2.3.6",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
- "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
- "dev": true,
- "requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- }
- },
- "string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dev": true,
- "requires": {
- "safe-buffer": "~5.1.0"
- }
- }
- }
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
+ "dev": true
},
"merge2": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.3.tgz",
- "integrity": "sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA==",
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.4.tgz",
+ "integrity": "sha512-FYE8xI+6pjFOhokZu0We3S5NKCirLbCzSh2Usf3qEyr4X8U+0jNg9P8RZ4qz+V2UoECLVwSyzU3LxXBaLGtD3A==",
"dev": true
},
"metro": {
@@ -10274,6 +10286,12 @@
"yargs": "^9.0.0"
},
"dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
"arr-diff": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
@@ -10348,17 +10366,6 @@
}
}
},
- "cross-spawn": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
- "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
- "dev": true,
- "requires": {
- "lru-cache": "^4.0.1",
- "shebang-command": "^1.2.0",
- "which": "^1.2.9"
- }
- },
"debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
@@ -10528,16 +10535,10 @@
}
}
},
- "get-stream": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
- "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
- "dev": true
- },
- "invert-kv": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
- "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
+ "get-caller-file": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
+ "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
"dev": true
},
"is-accessor-descriptor": {
@@ -10634,15 +10635,6 @@
"integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
"dev": true
},
- "lcid": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
- "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
- "dev": true,
- "requires": {
- "invert-kv": "^1.0.0"
- }
- },
"load-json-file": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
@@ -10655,23 +10647,13 @@
"strip-bom": "^3.0.0"
}
},
- "lru-cache": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
- "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
- "dev": true,
- "requires": {
- "pseudomap": "^1.0.2",
- "yallist": "^2.1.2"
- }
- },
- "mem": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz",
- "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=",
+ "merge-stream": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz",
+ "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=",
"dev": true,
"requires": {
- "mimic-fn": "^1.0.0"
+ "readable-stream": "^2.0.1"
}
},
"metro-babel7-plugin-react-transform": {
@@ -10741,46 +10723,12 @@
"mime-db": "~1.23.0"
}
},
- "mimic-fn": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
- "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
- "dev": true
- },
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
"dev": true
},
- "os-locale": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
- "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
- "dev": true,
- "requires": {
- "execa": "^0.7.0",
- "lcid": "^1.0.0",
- "mem": "^1.1.0"
- },
- "dependencies": {
- "execa": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
- "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
- "dev": true,
- "requires": {
- "cross-spawn": "^5.0.1",
- "get-stream": "^3.0.0",
- "is-stream": "^1.1.0",
- "npm-run-path": "^2.0.0",
- "p-finally": "^1.0.0",
- "signal-exit": "^3.0.0",
- "strip-eof": "^1.0.0"
- }
- }
- }
- },
"path-type": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
@@ -10811,6 +10759,21 @@
"read-pkg": "^2.0.0"
}
},
+ "readable-stream": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
"rsvp": {
"version": "3.6.2",
"resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz",
@@ -10858,28 +10821,87 @@
}
}
},
- "strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
- "dev": true
- },
- "watch": {
- "version": "0.18.0",
- "resolved": "https://registry.npmjs.org/watch/-/watch-0.18.0.tgz",
- "integrity": "sha1-KAlUdsbffJDJYxOJkMClQj60uYY=",
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
"dev": true,
"requires": {
- "exec-sh": "^0.2.0",
- "minimist": "^1.2.0"
- }
- },
- "wordwrap": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ },
+ "dependencies": {
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ }
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
+ },
+ "watch": {
+ "version": "0.18.0",
+ "resolved": "https://registry.npmjs.org/watch/-/watch-0.18.0.tgz",
+ "integrity": "sha1-KAlUdsbffJDJYxOJkMClQj60uYY=",
+ "dev": true,
+ "requires": {
+ "exec-sh": "^0.2.0",
+ "minimist": "^1.2.0"
+ }
+ },
+ "wordwrap": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
"integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
"dev": true
},
+ "wrap-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
+ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
+ "dev": true,
+ "requires": {
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1"
+ },
+ "dependencies": {
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ }
+ }
+ },
"write-file-atomic": {
"version": "1.3.4",
"resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz",
@@ -11624,9 +11646,9 @@
}
},
"mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+ "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
"dev": true
},
"min-document": {
@@ -11853,9 +11875,9 @@
"dev": true
},
"node-notifier": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.0.tgz",
- "integrity": "sha512-SUDEb+o71XR5lXSTyivXd9J7fCloE3SyP4lSgt3lU2oSANiox+SxlNRGPjDKrwU1YN3ix2KN/VGGCg0t01rttQ==",
+ "version": "5.4.3",
+ "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.3.tgz",
+ "integrity": "sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q==",
"dev": true,
"requires": {
"growly": "^1.3.0",
@@ -12111,14 +12133,6 @@
"dev": true,
"requires": {
"mimic-fn": "^1.0.0"
- },
- "dependencies": {
- "mimic-fn": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
- "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
- "dev": true
- }
}
},
"opn": {
@@ -12200,14 +12214,58 @@
"dev": true
},
"os-locale": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz",
- "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
+ "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
"dev": true,
"requires": {
- "execa": "^1.0.0",
- "lcid": "^2.0.0",
- "mem": "^4.0.0"
+ "execa": "^0.7.0",
+ "lcid": "^1.0.0",
+ "mem": "^1.1.0"
+ },
+ "dependencies": {
+ "cross-spawn": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^4.0.1",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ }
+ },
+ "execa": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
+ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^5.0.1",
+ "get-stream": "^3.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
+ }
+ },
+ "get-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+ "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
+ "dev": true
+ },
+ "lru-cache": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
+ "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
+ "dev": true,
+ "requires": {
+ "pseudomap": "^1.0.2",
+ "yallist": "^2.1.2"
+ }
+ }
}
},
"os-tmpdir": {
@@ -12216,12 +12274,6 @@
"integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
"dev": true
},
- "p-defer": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
- "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=",
- "dev": true
- },
"p-each-series": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-1.0.0.tgz",
@@ -12237,12 +12289,6 @@
"integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
"dev": true
},
- "p-is-promise": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz",
- "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==",
- "dev": true
- },
"p-limit": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
@@ -12493,9 +12539,9 @@
}
},
"p-limit": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz",
- "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==",
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz",
+ "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==",
"dev": true,
"requires": {
"p-try": "^2.0.0"
@@ -12528,9 +12574,9 @@
}
},
"please-upgrade-node": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz",
- "integrity": "sha512-KY1uHnQ2NlQHqIJQpnh/i54rKkuxCEBx+voJIS/Mvb+L2iYd2NMotwduhKTMjfC1uKoX3VXOxLjIYG66dfJTVQ==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz",
+ "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==",
"dev": true,
"requires": {
"semver-compare": "^1.0.0"
@@ -12624,12 +12670,12 @@
"dev": true
},
"pretty-format": {
- "version": "24.8.0",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.8.0.tgz",
- "integrity": "sha512-P952T7dkrDEplsR+TuY7q3VXDae5Sr7zmQb12JU/NDQa/3CH7/QW0yvqLcGN6jL+zQFKaoJcPc+yJxMTGmosqw==",
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz",
+ "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==",
"dev": true,
"requires": {
- "@jest/types": "^24.8.0",
+ "@jest/types": "^24.9.0",
"ansi-regex": "^4.0.0",
"ansi-styles": "^3.2.0",
"react-is": "^16.8.4"
@@ -12683,13 +12729,13 @@
}
},
"prompts": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.1.0.tgz",
- "integrity": "sha512-+x5TozgqYdOwWsQFZizE/Tra3fKvAoy037kOyU6cgz84n8f6zxngLOV4O32kTwt9FcLCxAqw0P/c8rOr9y+Gfg==",
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.2.1.tgz",
+ "integrity": "sha512-VObPvJiWPhpZI6C5m60XOzTfnYg/xc/an+r9VYymj9WJW3B/DIH+REzjpAACPf8brwPeP+7vz3bIim3S+AaMjw==",
"dev": true,
"requires": {
- "kleur": "^3.0.2",
- "sisteransi": "^1.0.0"
+ "kleur": "^3.0.3",
+ "sisteransi": "^1.0.3"
}
},
"prop-types": {
@@ -12710,9 +12756,9 @@
"dev": true
},
"psl": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/psl/-/psl-1.2.0.tgz",
- "integrity": "sha512-GEn74ZffufCmkDDLNcl3uuyF/aSD6exEyh1v/ZSdAomB82t6G9hzJVRx0jBmLDW+VfZqks3aScmMw9DszwUalA==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.3.0.tgz",
+ "integrity": "sha512-avHdspHO+9rQTLbv1RO+MPYeP/SzsCoxofjVnHanETfQhTJrmB0HlDoW+EiN/R+C0BZ+gERab9NY0lPN2TxNag==",
"dev": true
},
"pump": {
@@ -12792,15 +12838,15 @@
"dev": true
},
"react": {
- "version": "16.8.6",
- "resolved": "https://registry.npmjs.org/react/-/react-16.8.6.tgz",
- "integrity": "sha512-pC0uMkhLaHm11ZSJULfOBqV4tIZkx87ZLvbbQYunNixAAvjnC+snJCg0XQXn9VIsttVsbZP/H/ewzgsd5fxKXw==",
+ "version": "16.8.3",
+ "resolved": "https://registry.npmjs.org/react/-/react-16.8.3.tgz",
+ "integrity": "sha512-3UoSIsEq8yTJuSu0luO1QQWYbgGEILm+eJl2QN/VLDi7hL+EN18M3q3oVZwmVzzBJ3DkM7RMdRwBmZZ+b4IzSA==",
"dev": true,
"requires": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1",
"prop-types": "^15.6.2",
- "scheduler": "^0.13.6"
+ "scheduler": "^0.13.3"
}
},
"react-clone-referenced-element": {
@@ -12816,9 +12862,9 @@
"dev": true
},
"react-devtools-core": {
- "version": "3.6.1",
- "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-3.6.1.tgz",
- "integrity": "sha512-I/LSX+tpeTrGKaF1wXSfJ/kP+6iaP2JfshEjW8LtQBdz6c6HhzOJtjZXhqOUrAdysuey8M1/JgPY1flSVVt8Ig==",
+ "version": "3.6.3",
+ "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-3.6.3.tgz",
+ "integrity": "sha512-+P+eFy/yo8Z/UH9J0DqHZuUM5+RI2wl249TNvMx3J2jpUomLQa4Zxl56GEotGfw3PIP1eI+hVf1s53FlUONStQ==",
"dev": true,
"requires": {
"shell-quote": "^1.6.1",
@@ -12845,9 +12891,9 @@
}
},
"react-is": {
- "version": "16.8.6",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.6.tgz",
- "integrity": "sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA=="
+ "version": "16.9.0",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.9.0.tgz",
+ "integrity": "sha512-tJBzzzIgnnRfEm046qRcURvwQnZVXmuCbscxUO5RWrGTXpon2d4c8mI0D8WE6ydVIm29JiLB6+RslkIvym9Rjw=="
},
"react-native": {
"version": "0.59.10",
@@ -12937,17 +12983,6 @@
}
}
},
- "cross-spawn": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
- "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
- "dev": true,
- "requires": {
- "lru-cache": "^4.0.1",
- "shebang-command": "^1.2.0",
- "which": "^1.2.9"
- }
- },
"debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
@@ -12957,31 +12992,10 @@
"ms": "2.0.0"
}
},
- "execa": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
- "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
- "dev": true,
- "requires": {
- "cross-spawn": "^5.0.1",
- "get-stream": "^3.0.0",
- "is-stream": "^1.1.0",
- "npm-run-path": "^2.0.0",
- "p-finally": "^1.0.0",
- "signal-exit": "^3.0.0",
- "strip-eof": "^1.0.0"
- }
- },
- "get-stream": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
- "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
- "dev": true
- },
- "invert-kv": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
- "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
+ "get-caller-file": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
+ "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
"dev": true
},
"is-fullwidth-code-point": {
@@ -12993,15 +13007,6 @@
"number-is-nan": "^1.0.0"
}
},
- "lcid": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
- "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
- "dev": true,
- "requires": {
- "invert-kv": "^1.0.0"
- }
- },
"load-json-file": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
@@ -13014,48 +13019,12 @@
"strip-bom": "^3.0.0"
}
},
- "lru-cache": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
- "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
- "dev": true,
- "requires": {
- "pseudomap": "^1.0.2",
- "yallist": "^2.1.2"
- }
- },
- "mem": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz",
- "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=",
- "dev": true,
- "requires": {
- "mimic-fn": "^1.0.0"
- }
- },
- "mimic-fn": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
- "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
- "dev": true
- },
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
"dev": true
},
- "os-locale": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
- "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
- "dev": true,
- "requires": {
- "execa": "^0.7.0",
- "lcid": "^1.0.0",
- "mem": "^1.1.0"
- }
- },
"path-type": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
@@ -13102,12 +13071,68 @@
"integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
"dev": true
},
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ }
+ }
+ },
"strip-bom": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
"integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
"dev": true
},
+ "wrap-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
+ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
+ "dev": true,
+ "requires": {
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1"
+ },
+ "dependencies": {
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ }
+ }
+ },
"ws": {
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz",
@@ -13156,10 +13181,20 @@
}
}
},
+ "react-native-eva-icons": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/react-native-eva-icons/-/react-native-eva-icons-1.1.0.tgz",
+ "integrity": "sha512-0k6sbiKoHxmmbCgAZTHj6llcdcwtbyZJ1E2AK0my7QU0WRaWwqWMep5AUlMbrIiuYE9mkMZiabEXYcfn3ir2PA=="
+ },
+ "react-native-svg": {
+ "version": "9.6.4",
+ "resolved": "https://registry.npmjs.org/react-native-svg/-/react-native-svg-9.6.4.tgz",
+ "integrity": "sha512-6SlbGx0vlXHyDPQXSpX+8o6bNjxKFNJsISoboAkR7YWW6hdnkMg/HJXCgT6oJC0/ClKtSO7ZPrQcK4HR65kDNg=="
+ },
"react-native-testing-library": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/react-native-testing-library/-/react-native-testing-library-1.10.0.tgz",
- "integrity": "sha512-+de/qkHwngp8Y8+i50QoyCi2G7qM8a7HtxE2vJPgCLfuYhg/trELN4RIKkyrfImq5Z6mFTo/kCuL6h/bU1RrfQ==",
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/react-native-testing-library/-/react-native-testing-library-1.11.1.tgz",
+ "integrity": "sha512-PTwDn1sgegvFqqF1v9zrRUChHqFqp5rWVUjXgkk134wssVhfc2oAuS6kiOvr3w7tLmFzuspxvT5sw0gMrRnDfQ==",
"dev": true,
"requires": {
"pretty-format": "^24.0.0"
@@ -13176,15 +13211,15 @@
}
},
"react-test-renderer": {
- "version": "16.8.6",
- "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.8.6.tgz",
- "integrity": "sha512-H2srzU5IWYT6cZXof6AhUcx/wEyJddQ8l7cLM/F7gDXYyPr4oq+vCIxJYXVGhId1J706sqziAjuOEjyNkfgoEw==",
+ "version": "16.8.3",
+ "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.8.3.tgz",
+ "integrity": "sha512-rjJGYebduKNZH0k1bUivVrRLX04JfIQ0FKJLPK10TAb06XWhfi4gTobooF9K/DEFNW98iGac3OSxkfIJUN9Mdg==",
"dev": true,
"requires": {
"object-assign": "^4.1.1",
"prop-types": "^15.6.2",
- "react-is": "^16.8.6",
- "scheduler": "^0.13.6"
+ "react-is": "^16.8.3",
+ "scheduler": "^0.13.3"
}
},
"react-transform-hmr": {
@@ -13294,15 +13329,15 @@
}
},
"regenerator-runtime": {
- "version": "0.13.2",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz",
- "integrity": "sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA==",
+ "version": "0.13.3",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz",
+ "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==",
"dev": true
},
"regenerator-transform": {
- "version": "0.14.0",
- "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.0.tgz",
- "integrity": "sha512-rtOelq4Cawlbmq9xuMR5gdFmv7ku/sFoB7sRiywx7aq53bc52b4j6zvH7Te1Vt/X2YveDKnCGUbioieU7FEL3w==",
+ "version": "0.14.1",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz",
+ "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==",
"dev": true,
"requires": {
"private": "^0.1.6"
@@ -13328,13 +13363,13 @@
}
},
"regexpu-core": {
- "version": "4.5.4",
- "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.5.4.tgz",
- "integrity": "sha512-BtizvGtFQKGPUcTy56o3nk1bGRp4SZOTYrDtGNlqCQufptV5IkkLN6Emw+yunAJjzf+C9FQFtvq7IoA3+oMYHQ==",
+ "version": "4.5.5",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.5.5.tgz",
+ "integrity": "sha512-FpI67+ky9J+cDizQUJlIlNZFKual/lUkFr1AG6zOCpwZ9cLrg8UUVakyUQJD7fCDIe9Z2nwTQJNPyonatNmDFQ==",
"dev": true,
"requires": {
"regenerate": "^1.4.0",
- "regenerate-unicode-properties": "^8.0.2",
+ "regenerate-unicode-properties": "^8.1.0",
"regjsgen": "^0.5.0",
"regjsparser": "^0.6.0",
"unicode-match-property-ecmascript": "^1.0.4",
@@ -13509,9 +13544,9 @@
"dev": true
},
"resolve": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz",
- "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==",
+ "version": "1.12.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz",
+ "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==",
"dev": true,
"requires": {
"path-parse": "^1.0.6"
@@ -13565,9 +13600,9 @@
"dev": true
},
"rimraf": {
- "version": "2.6.3",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
- "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
"dev": true,
"requires": {
"glob": "^7.1.3"
@@ -13955,9 +13990,9 @@
}
},
"semver": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
- "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
"dev": true
},
"semver-compare": {
@@ -14145,9 +14180,9 @@
}
},
"sisteransi": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.2.tgz",
- "integrity": "sha512-ZcYcZcT69nSLAR2oLN2JwNmLkJEKGooFMCdvOkFrToUt/WfcRWqhIg4P4KwY4dmLbuyXIx4o4YmPsvMRJYJd/w==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.3.tgz",
+ "integrity": "sha512-SbEG75TzH8G7eVXFSN5f9EExILKfly7SUvVY5DhhYLvfhKqhDFY0OzevWa/zwak0RLRfWS5AvfMWpd9gJvr5Yg==",
"dev": true
},
"slash": {
@@ -14305,9 +14340,9 @@
}
},
"source-map-support": {
- "version": "0.5.12",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz",
- "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==",
+ "version": "0.5.13",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz",
+ "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==",
"dev": true,
"requires": {
"buffer-from": "^1.0.0",
@@ -14361,9 +14396,9 @@
}
},
"spdx-license-ids": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz",
- "integrity": "sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA==",
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz",
+ "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==",
"dev": true
},
"split": {
@@ -14549,39 +14584,48 @@
}
},
"string-width": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
- "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
"dev": true,
"requires": {
+ "emoji-regex": "^7.0.1",
"is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^4.0.0"
+ "strip-ansi": "^5.1.0"
},
"dependencies": {
"ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
"dev": true
},
"strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
"dev": true,
"requires": {
- "ansi-regex": "^3.0.0"
+ "ansi-regex": "^4.1.0"
}
}
}
},
"string_decoder": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.2.0.tgz",
- "integrity": "sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
"dev": true,
"requires": {
- "safe-buffer": "~5.1.0"
+ "safe-buffer": "~5.2.0"
+ },
+ "dependencies": {
+ "safe-buffer": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz",
+ "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==",
+ "dev": true
+ }
}
},
"strip-ansi": {
@@ -14683,9 +14727,9 @@
"dev": true
},
"textextensions": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-2.4.0.tgz",
- "integrity": "sha512-qftQXnX1DzpSV8EddtHIT0eDDEiBF8ywhFYR2lI9xrGtxqKN+CvLXhACeCIGbCpQfxxERbrkZEFb8cZcDKbVZA==",
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-2.5.0.tgz",
+ "integrity": "sha512-1IkVr355eHcomgK7fgj1Xsokturx6L5S2JRT5WcRdA6v5shk9sxWuO/w/VbpQexwkXJMQIa/j1dBi3oo7+HhcA==",
"dev": true
},
"throat": {
@@ -15368,12 +15412,12 @@
"dev": true
},
"graceful-fs": {
- "version": "3.0.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz",
- "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=",
+ "version": "3.0.12",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.12.tgz",
+ "integrity": "sha512-J55gaCS4iTTJfTXIxSVw3EMQckcqkpdRv3IR7gu6sq0+tbC363Zx6KH/SEwXASK9JRbhyZmVjJEVJIOxYsB3Qg==",
"dev": true,
"requires": {
- "natives": "^1.1.0"
+ "natives": "^1.1.3"
}
},
"isarray": {
@@ -15510,33 +15554,29 @@
"dev": true
},
"wrap-ansi": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
- "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
+ "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
"dev": true,
"requires": {
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1"
+ "ansi-styles": "^3.2.0",
+ "string-width": "^3.0.0",
+ "strip-ansi": "^5.0.0"
},
"dependencies": {
- "is-fullwidth-code-point": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
- "dev": true,
- "requires": {
- "number-is-nan": "^1.0.0"
- }
+ "ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "dev": true
},
- "string-width": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
"dev": true,
"requires": {
- "code-point-at": "^1.0.0",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
+ "ansi-regex": "^4.1.0"
}
}
}
@@ -15645,23 +15685,21 @@
"dev": true
},
"yargs": {
- "version": "12.0.5",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz",
- "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==",
+ "version": "13.3.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz",
+ "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==",
"dev": true,
"requires": {
- "cliui": "^4.0.0",
- "decamelize": "^1.2.0",
+ "cliui": "^5.0.0",
"find-up": "^3.0.0",
- "get-caller-file": "^1.0.1",
- "os-locale": "^3.0.0",
+ "get-caller-file": "^2.0.1",
"require-directory": "^2.1.1",
- "require-main-filename": "^1.0.1",
+ "require-main-filename": "^2.0.0",
"set-blocking": "^2.0.0",
- "string-width": "^2.0.0",
+ "string-width": "^3.0.0",
"which-module": "^2.0.0",
- "y18n": "^3.2.1 || ^4.0.0",
- "yargs-parser": "^11.1.1"
+ "y18n": "^4.0.0",
+ "yargs-parser": "^13.1.1"
},
"dependencies": {
"find-up": {
@@ -15684,9 +15722,9 @@
}
},
"p-limit": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz",
- "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==",
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz",
+ "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==",
"dev": true,
"requires": {
"p-try": "^2.0.0"
@@ -15706,13 +15744,19 @@
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
"dev": true
+ },
+ "require-main-filename": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
+ "dev": true
}
}
},
"yargs-parser": {
- "version": "11.1.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz",
- "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==",
+ "version": "13.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz",
+ "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==",
"dev": true,
"requires": {
"camelcase": "^5.0.0",
diff --git a/package.json b/package.json
index e849add59..8e3db6481 100644
--- a/package.json
+++ b/package.json
@@ -43,9 +43,12 @@
},
"dependencies": {
"@eva-design/dss": "^1.0.1",
+ "@eva-design/eva": "^1.0.1",
"@eva-design/processor": "^1.0.1",
"hoist-non-react-statics": "^3.2.1",
- "lodash.merge": "^4.6.1"
+ "lodash.merge": "^4.6.1",
+ "react-native-eva-icons": "^1.1.0",
+ "react-native-svg": "^9.5.1"
},
"devDependencies": {
"@babel/core": "^7.1.2",
@@ -57,7 +60,7 @@
"@types/react": "^16.8.19",
"@types/react-native": "^0.57.60",
"@types/react-navigation": "^3.0.7",
- "@types/react-test-renderer": "^16.8.1",
+ "@types/react-test-renderer": "^16.9.0",
"babel-core": "^7.0.0-bridge.0",
"babel-jest": "^23.6.0",
"babel-plugin-module-resolver": "^3.2.0",
@@ -71,10 +74,10 @@
"husky": "^1.1.2",
"jest": "^24.0.0-alpha.9",
"metro-react-native-babel-preset": "^0.49.0",
- "react": "^16.8.3",
+ "react": "16.8.3",
"react-native": "^0.59.8",
"react-native-testing-library": "^1.5.0",
- "react-test-renderer": "^16.6.0",
+ "react-test-renderer": "16.8.3",
"rimraf": "^2.6.2",
"ts-jest": "^23.10.5",
"ts-node": "^3.2.2",
diff --git a/scripts/build/compile-ts.sh b/scripts/build/compile-ts.sh
index 5fb35f518..7ba4d5716 100755
--- a/scripts/build/compile-ts.sh
+++ b/scripts/build/compile-ts.sh
@@ -1,4 +1,7 @@
#!/usr/bin/env bash
+# do not transform additional modules like moment or date-fns
+# because it should not contain module aliases
+
env=${1}
-tsc -p ./tsconfig.${env}.json
+tscpaths -p ./tsconfig.${env}.json -s ./src/framework -o ./dist/tsc-out/framework
diff --git a/src/eva-icons/createIconsMap.ts b/src/eva-icons/createIconsMap.ts
new file mode 100644
index 000000000..529a91c68
--- /dev/null
+++ b/src/eva-icons/createIconsMap.ts
@@ -0,0 +1,12 @@
+import { IconProvider } from 'react-native-ui-kitten';
+import { SvgProps } from 'react-native-svg';
+import { findIconByName } from 'react-native-eva-icons/icons';
+import { EvaIcon } from './evaIcon.component';
+
+export const createIconsMap = (): { [key: string]: IconProvider } => {
+ return new Proxy({}, {
+ get(target: {}, name: string): IconProvider {
+ return new EvaIcon(findIconByName(name));
+ },
+ });
+};
diff --git a/src/eva-icons/evaIcon.component.tsx b/src/eva-icons/evaIcon.component.tsx
new file mode 100644
index 000000000..d0eae414c
--- /dev/null
+++ b/src/eva-icons/evaIcon.component.tsx
@@ -0,0 +1,26 @@
+import React from 'react';
+import { SvgProps } from 'react-native-svg';
+import { IconProvider } from 'react-native-ui-kitten';
+
+type IconElement = React.ReactElement;
+type IconComponent = React.ComponentType;
+
+export class EvaIcon implements IconProvider {
+
+ constructor(private content: IconComponent) {
+ }
+
+ public toReactElement(props: SvgProps): IconElement {
+ const Icon: IconComponent = this.content;
+
+ // @ts-ignore - Eva maps icon color to `tintColor`
+ const { tintColor, ...restProps } = props;
+
+ return (
+
+ );
+ }
+}
diff --git a/src/eva-icons/index.ts b/src/eva-icons/index.ts
new file mode 100644
index 000000000..ec0c78ee3
--- /dev/null
+++ b/src/eva-icons/index.ts
@@ -0,0 +1,9 @@
+import { IconPack } from 'react-native-ui-kitten';
+import { SvgProps } from 'react-native-svg';
+import { createIconsMap } from './createIconsMap';
+
+export const EvaIconsPack: IconPack = {
+ name: 'eva',
+ icons: createIconsMap(),
+};
+
diff --git a/src/eva-icons/package.json b/src/eva-icons/package.json
new file mode 100644
index 000000000..aad398926
--- /dev/null
+++ b/src/eva-icons/package.json
@@ -0,0 +1,30 @@
+{
+ "name": "@ui-kitten/eva-icons",
+ "version": "4.1.0",
+ "description": "@ui-kitten/eva-icons",
+ "author": "akveo",
+ "license": "MIT",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/akveo/react-native-ui-kitten.git"
+ },
+ "bugs": {
+ "url": "https://github.com/akveo/react-native-ui-kitten/issues"
+ },
+ "homepage": "https://github.com/akveo/react-native-ui-kitten#readme",
+ "keywords": [
+ "react-native",
+ "typescript",
+ "kittenTricks",
+ "theme",
+ "ui-kitten"
+ ],
+ "dependencies": {
+ "react-native-eva-icons": "1.1.0"
+ },
+ "peerDependencies": {
+ "react-native-ui-kitten": "4.1.0",
+ "react-native-svg": "^9.4.0"
+ },
+ "sideEffects": false
+}
diff --git a/src/framework/theme/style/type.ts b/src/framework/theme/style/type.ts
index 7e6c432a9..56746e42b 100644
--- a/src/framework/theme/style/type.ts
+++ b/src/framework/theme/style/type.ts
@@ -6,6 +6,7 @@ export enum Interaction {
ACTIVE = 'active',
FOCUSED = 'focused',
INDETERMINATE = 'indeterminate',
+ VISIBLE = 'visible',
}
export enum State {
diff --git a/src/framework/ui/animation/animation.ts b/src/framework/ui/animation/animation.ts
new file mode 100644
index 000000000..234552a52
--- /dev/null
+++ b/src/framework/ui/animation/animation.ts
@@ -0,0 +1,63 @@
+import { Animated } from 'react-native';
+
+export const DEFAULT_CONFIG: AnimationConfig = {
+ cycles: 1,
+ useNativeDriver: true,
+};
+
+/**
+ * @property cycles - number of animation cycles. -1 for infinite
+ */
+export interface AnimationConfig extends Animated.AnimationConfig {
+ cycles?: number;
+}
+
+export abstract class Animation {
+
+ protected abstract animation: Animated.CompositeAnimation;
+ protected counter: number = 0;
+ protected endCallback: Animated.EndCallback;
+ protected running: boolean = false;
+ protected config: C;
+
+ public abstract toProps(): R;
+
+ constructor(config?: C) {
+ this.config = {
+ ...DEFAULT_CONFIG,
+ ...config,
+ };
+ }
+
+ public start(callback?: Animated.EndCallback) {
+ this.endCallback = callback;
+ this.running = true;
+
+ this.animation.start(this.onAnimationEnd);
+ }
+
+ public stop() {
+ this.running = false;
+
+ this.animation.stop();
+ }
+
+ public release() {
+ this.stop();
+ }
+
+ protected onAnimationEnd = (result: Animated.EndResult) => {
+ this.counter += 1;
+ if (this.counter === this.config.cycles) {
+ this.stop();
+ }
+ if (this.running) {
+ this.start(this.endCallback);
+ }
+ if (!this.running) {
+ this.counter = 0;
+ this.endCallback && this.endCallback(result);
+ this.endCallback = null;
+ }
+ };
+}
diff --git a/src/framework/ui/animation/index.ts b/src/framework/ui/animation/index.ts
new file mode 100644
index 000000000..e1548dee0
--- /dev/null
+++ b/src/framework/ui/animation/index.ts
@@ -0,0 +1,16 @@
+export {
+ Animation,
+ AnimationConfig,
+} from './animation';
+export {
+ PulseAnimation,
+ PulseAnimationConfig,
+} from './pulseAnimation';
+export {
+ ShakeAnimation,
+ ShakeAnimationConfig,
+} from './shakeAnimation';
+export {
+ ZoomAnimation,
+ ZoomAnimationConfig,
+} from './zoomAnimation';
diff --git a/src/framework/ui/animation/pulseAnimation.ts b/src/framework/ui/animation/pulseAnimation.ts
new file mode 100644
index 000000000..0f5ba8128
--- /dev/null
+++ b/src/framework/ui/animation/pulseAnimation.ts
@@ -0,0 +1,61 @@
+import {
+ Animated,
+ Easing,
+ ViewProps,
+} from 'react-native';
+import {
+ Animation,
+ AnimationConfig,
+} from './animation';
+
+const DEFAULT_CONFIG: PulseAnimationConfig = {
+ start: 1.0,
+ end: 1.25,
+ easing: Easing.linear,
+ duration: 500,
+};
+
+type TimingAnimationConfig = Omit;
+
+export interface PulseAnimationConfig extends AnimationConfig, TimingAnimationConfig {
+ start?: number;
+ end?: number;
+}
+
+export class PulseAnimation extends Animation {
+
+ private value: Animated.Value;
+
+ protected get animation(): Animated.CompositeAnimation {
+ const { start, end, ...restConfig } = this.config;
+
+ const startAnimation: Animated.CompositeAnimation = Animated.timing(this.value, {
+ toValue: end,
+ ...restConfig,
+ });
+
+ const endAnimation: Animated.CompositeAnimation = Animated.timing(this.value, {
+ toValue: start,
+ ...restConfig,
+ });
+
+ return Animated.sequence([
+ startAnimation,
+ endAnimation,
+ ]);
+ }
+
+ constructor(config?: PulseAnimationConfig) {
+ super({ ...DEFAULT_CONFIG, ...config });
+ this.value = new Animated.Value(this.config.start);
+ }
+
+ public toProps(): ViewProps {
+ return {
+ // @ts-ignore: Animated.Value is not assignable to a number, but it is a number
+ style: {
+ transform: [{ scale: this.value }],
+ },
+ };
+ }
+}
diff --git a/src/framework/ui/animation/shakeAnimation.ts b/src/framework/ui/animation/shakeAnimation.ts
new file mode 100644
index 000000000..8639b79c0
--- /dev/null
+++ b/src/framework/ui/animation/shakeAnimation.ts
@@ -0,0 +1,62 @@
+import {
+ Animated,
+ Easing,
+ ViewProps,
+} from 'react-native';
+import {
+ Animation,
+ AnimationConfig,
+} from './animation';
+
+const DEFAULT_CONFIG: ShakeAnimationConfig = {
+ start: 0.0,
+ offset: 2.5,
+ easing: Easing.linear,
+ duration: 25,
+ cycles: 8,
+};
+
+type TimingAnimationConfig = Omit;
+
+export interface ShakeAnimationConfig extends AnimationConfig, TimingAnimationConfig {
+ start?: number;
+ offset?: number;
+}
+
+export class ShakeAnimation extends Animation {
+
+ private value: Animated.Value;
+
+ protected get animation(): Animated.CompositeAnimation {
+ const { start, offset, ...restConfig } = this.config;
+
+ const startAnimation: Animated.CompositeAnimation = Animated.timing(this.value, {
+ toValue: this.counter % 2 !== 0 ? -offset : offset,
+ ...restConfig,
+ });
+
+ const endAnimation: Animated.CompositeAnimation = Animated.timing(this.value, {
+ toValue: this.counter % 2 !== 0 ? offset : -offset,
+ ...restConfig,
+ });
+
+ return Animated.sequence([
+ startAnimation,
+ endAnimation,
+ ]);
+ }
+
+ constructor(config?: ShakeAnimationConfig) {
+ super({ ...DEFAULT_CONFIG, ...config });
+ this.value = new Animated.Value(this.config.start);
+ }
+
+ public toProps(): ViewProps {
+ return {
+ // @ts-ignore: Animated.Value is not assignable to a number, but it is a number
+ style: {
+ transform: [{ translateX: this.value }],
+ },
+ };
+ }
+}
diff --git a/src/framework/ui/animation/zoomAnimation.ts b/src/framework/ui/animation/zoomAnimation.ts
new file mode 100644
index 000000000..56c1a565b
--- /dev/null
+++ b/src/framework/ui/animation/zoomAnimation.ts
@@ -0,0 +1,61 @@
+import {
+ Animated,
+ Easing,
+ ViewProps,
+} from 'react-native';
+import {
+ Animation,
+ AnimationConfig,
+} from './animation';
+
+const DEFAULT_CONFIG: ZoomAnimationConfig = {
+ start: 1.0,
+ end: 0.5,
+ easing: Easing.linear,
+ duration: 500,
+};
+
+type TimingAnimationConfig = Omit;
+
+export interface ZoomAnimationConfig extends AnimationConfig, TimingAnimationConfig {
+ start?: number;
+ end?: number;
+}
+
+export class ZoomAnimation extends Animation {
+
+ private value: Animated.Value;
+
+ protected get animation(): Animated.CompositeAnimation {
+ const { start, end, ...restConfig } = this.config;
+
+ const startAnimation: Animated.CompositeAnimation = Animated.timing(this.value, {
+ toValue: end,
+ ...restConfig,
+ });
+
+ const endAnimation: Animated.CompositeAnimation = Animated.timing(this.value, {
+ toValue: start,
+ ...restConfig,
+ });
+
+ return Animated.sequence([
+ startAnimation,
+ endAnimation,
+ ]);
+ }
+
+ constructor(config?: ZoomAnimationConfig) {
+ super({ ...DEFAULT_CONFIG, ...config });
+ this.value = new Animated.Value(this.config.start);
+ }
+
+ public toProps(): ViewProps {
+ return {
+ // @ts-ignore: Animated.Value is not assignable to a number, but it is a number
+ style: {
+ transform: [{ scale: this.value }],
+ },
+ };
+ }
+}
diff --git a/src/framework/ui/dropdown/dropdown.component.tsx b/src/framework/ui/dropdown/dropdown.component.tsx
new file mode 100644
index 000000000..6b8afce90
--- /dev/null
+++ b/src/framework/ui/dropdown/dropdown.component.tsx
@@ -0,0 +1,751 @@
+/**
+ * @license
+ * Copyright Akveo. All Rights Reserved.
+ * Licensed under the MIT License. See License.txt in the project root for license information.
+ */
+
+import React from 'react';
+import {
+ GestureResponderEvent,
+ ImageProps,
+ ImageStyle,
+ StyleSheet,
+ TextStyle,
+ TouchableOpacity,
+ TouchableOpacityProps,
+ StyleProp,
+ View,
+ ViewStyle,
+ ListRenderItemInfo,
+ Animated,
+} from 'react-native';
+import {
+ Interaction,
+ styled,
+ StyledComponentProps,
+ StyleType,
+} from '@kitten/theme';
+import {
+ Text,
+ TextElement,
+} from '../text/text.component';
+import { Popover } from '../popover/popover.component';
+import {
+ DropdownMenu,
+ DropdownMenuElement,
+} from './dropdownMenu.component';
+import { DropdownItemType } from './droppdownItem.component';
+import {
+ MeasureNode,
+ MeasureResult,
+ MeasuringElementProps,
+} from '../popover/measure.component';
+import {
+ SelectionStrategy,
+ MultiSelectStrategy,
+ SingleSelectStrategy,
+} from './selection.strategy';
+import {
+ allWithPrefix,
+ isValidString,
+} from '../support/services';
+import { Chevron } from '../support/components';
+
+type IconElement = React.ReactElement;
+type ControlElement = React.ReactElement;
+type IconProp = (style: ImageStyle, visible: boolean) => IconElement;
+type DropdownChildren = [DropdownMenuElement, TextElement, ControlElement];
+
+export type DropdownOption = Array | DropdownItemType;
+
+const MEASURED_CONTROL_TAG: string = 'Control';
+
+interface ComponentProps {
+ data: DropdownItemType[];
+ multiSelect?: boolean;
+ selectedOption?: DropdownOption;
+ textStyle?: StyleProp;
+ placeholder?: string;
+ placeholderStyle?: StyleProp;
+ label?: string;
+ labelStyle?: StyleProp;
+ controlStyle?: StyleProp;
+ icon?: IconProp;
+ onSelect: (option: DropdownOption, event?: GestureResponderEvent) => void;
+ status?: string;
+ renderItem?: (item: ListRenderItemInfo) => React.ReactElement;
+}
+
+export type DropdownProps = StyledComponentProps & TouchableOpacityProps & ComponentProps;
+export type DropdownElement = React.ReactElement;
+
+interface State {
+ visible: boolean;
+ menuWidth: number;
+}
+
+/**
+ * Styled Dropdown (Select) component.
+ *
+ * @extends React.Component
+ *
+ * @property {boolean} disabled - Determines whether component is disabled.
+ * Default is `false`.
+ *
+ * @property {string} status - Determines the status of the component.
+ * Can be `primary`, `success`, `info`, `warning` or `danger`.
+ *
+ * @property {boolean} multiSelect - Determines `multi-select` behavior of the Dropdown component.
+ *
+ * @property {DropdownOption} selectedOption - Determines selected option of the Dropdown.
+ * Can be `DropdownItemType` or `DropdownItemType[]` It depends on `multiSelect` property.
+ *
+ * @property {DropdownItemType[]} data - Determines items of the Dropdown component.
+ *
+ * @property {(option: DropdownOption, event?: GestureResponderEvent) => void} onSelect - Fires on option selection.
+ * Returns selected option/options.
+ *
+ * @property {(item: ListRenderItemInfo) => React.ReactElement} renderItem - Property for
+ * rendering custom dropdown items.
+ *
+ * @property {StyleProp} label - Determines the `label` of the component.
+ *
+ * @property {StyleProp} placeholder - Determines the `placeholder` of the component.
+ * By default is `Select Option`.
+ *
+ * @property {StyleProp} labelStyle - Determines the style of the `label`.
+ *
+ * @property {StyleProp} placeholderStyle - Determines the style of the `placeholder`.
+ *
+ * @property {StyleProp} textStyle - Determines the style of the selected option/options text.
+ *
+ * @property {StyleProp} controlStyle - Determines the style of `control`.
+ *
+ * @property {(style: StyleType) => React.ReactElement} icon - Determines icon of the component.
+ *
+ * @property {StyleProp} textStyle - Customizes text style.
+ *
+ * @property TouchableOpacityProps
+ *
+ * @property StyledComponentProps
+ *
+ * @overview-example Simple usage example
+ *
+ * ```
+ * import React from 'react';
+ * import {
+ * Dropdown,
+ * DropdownItemType,
+ * DropdownOption,
+ * } from '@kitten/ui';
+ *
+ * interface State {
+ * selectedOption: DropdownOption;
+ * }
+ *
+ * export class DropdownContainer extends React.Component {
+ *
+ * private items: DropdownItemType[] = [
+ * { text: 'Option 1' },
+ * { text: 'Option 2' },
+ * { text: 'Option 3' },
+ * { text: 'Option 4' },
+ * { text: 'Option 5' },
+ * { text: 'Option 6' },
+ * { text: 'Option 8' },
+ * ];
+ *
+ * public state: State = {
+ * selectedOption: null,
+ * };
+ *
+ * private onSelect = (selectedOption: DropdownOption): void => {
+ * this.setState({ selectedOption });
+ * };
+ *
+ * public render(): React.ReactNode {
+ * return (
+ *
+ * );
+ * }
+ * }
+ * ```
+ *
+ * @overview-example MultiSelect Dropdown
+ *
+ * ```
+ * import React from 'react';
+ * import {
+ * Dropdown,
+ * DropdownItemType,
+ * DropdownOption,
+ * } from '@kitten/ui';
+ *
+ * interface State {
+ * selectedOption: DropdownOption;
+ * }
+ *
+ * export class DropdownContainer extends React.Component {
+ *
+ * private items: DropdownItemType[] = [
+ * { text: 'Option 1' },
+ * { text: 'Option 2' },
+ * { text: 'Option 3' },
+ * { text: 'Option 4' },
+ * { text: 'Option 5' },
+ * { text: 'Option 6' },
+ * { text: 'Option 8' },
+ * ];
+ *
+ * public state: State = {
+ * selectedOption: [],
+ * };
+ *
+ * private onSelect = (selectedOption: DropdownOption): void => {
+ * this.setState({ selectedOption });
+ * };
+ *
+ * public render(): React.ReactNode {
+ * return (
+ *
+ * );
+ * }
+ * }
+ * ```
+ *
+ * @example With Eva styles
+ *
+ * ```
+ * import React from 'react';
+ * import {
+ * Dropdown,
+ * DropdownItemType,
+ * DropdownOption,
+ * } from '@kitten/ui';
+ *
+ * interface State {
+ * selectedOption: DropdownOption;
+ * }
+ *
+ * export class DropdownContainer extends React.Component {
+ *
+ * private items: DropdownItemType[] = [
+ * { text: 'Option 1' },
+ * { text: 'Option 2' },
+ * { text: 'Option 3' },
+ * { text: 'Option 4' },
+ * { text: 'Option 5' },
+ * { text: 'Option 6' },
+ * { text: 'Option 8' },
+ * ];
+ *
+ * public state: State = {
+ * selectedOption: null,
+ * };
+ *
+ * private onSelect = (selectedOption: DropdownOption): void => {
+ * this.setState({ selectedOption });
+ * };
+ *
+ * public render(): React.ReactNode {
+ * return (
+ *
+ * );
+ * }
+ * }
+ * ```
+ *
+ * @example With Icon
+ *
+ * ```
+ * import React from 'react';
+ * import {
+ * ImageProps,
+ * Image,
+ * } from 'react-native';
+ * import {
+ * Dropdown,
+ * DropdownItemType,
+ * DropdownOption,
+ * } from '@kitten/ui';
+ * import { StyleType } from '@kitten/theme';
+ *
+ * interface State {
+ * selectedOption: DropdownOption;
+ * }
+ *
+ * export class DropdownContainer extends React.Component {
+ *
+ * private items: DropdownItemType[] = [
+ * { text: 'Option 1' },
+ * { text: 'Option 2' },
+ * { text: 'Option 3' },
+ * { text: 'Option 4' },
+ * { text: 'Option 5' },
+ * { text: 'Option 6' },
+ * { text: 'Option 8' },
+ * ];
+ *
+ * public state: State = {
+ * selectedOption: null,
+ * };
+ *
+ * private onSelect = (selectedOption: DropdownOption): void => {
+ * this.setState({ selectedOption });
+ * };
+ *
+ * private renderIcon = (style: StyleType, visible: boolean): React.ReactElement => {
+ * const uri: string = visible ?
+ * 'https://akveo.github.io/eva-icons/fill/png/128/arrow-ios-upward.png' :
+ * 'https://akveo.github.io/eva-icons/fill/png/128/arrow-ios-downward.png';
+ * return (
+ *
+ * );
+ * };
+ *
+ * public render(): React.ReactNode {
+ * return (
+ *
+ * );
+ * }
+ * }
+ * ```
+ *
+ * @example Custom Styling
+ *
+ * import React from 'react';
+ * import { StyleSheet } from 'react-native';
+ * import {
+ * Dropdown,
+ * DropdownItemType,
+ * DropdownOption,
+ * } from '@kitten/ui';
+ *
+ * interface State {
+ * selectedOption: DropdownOption;
+ * }
+ *
+ * export class DropdownContainer extends React.Component {
+ *
+ * private items: DropdownItemType[] = [
+ * { text: 'Option 1' },
+ * { text: 'Option 2', textStyle: styles.customOptionStyle },
+ * { text: 'Option 3' },
+ * { text: 'Option 4' },
+ * { text: 'Option 5' },
+ * { text: 'Option 6' },
+ * { text: 'Option 8' },
+ * ];
+ *
+ * public state: State = {
+ * selectedOption: null,
+ * };
+ *
+ * private onSelect = (selectedOption: DropdownOption): void => {
+ * this.setState({ selectedOption });
+ * };
+ *
+ * public render(): React.ReactNode {
+ * return (
+ *
+ * );
+ * }
+ * }
+ *
+ * const styles = StyleSheet.create({
+ * dropdown: {
+ * margin: 16,
+ * },
+ * customOptionStyle: {
+ * color: 'red',
+ * },
+ * labelStyle: {
+ * fontSize: 22,
+ * },
+ * placeholderStyle: {
+ * color: 'yellow',
+ * },
+ * controlStyle: {
+ * backgroundColor: 'black',
+ * },
+ * });
+ *
+ * @example Disabled Option
+ *
+ * ```
+ * private items: DropdownItemType[] = [
+ * { text: 'Option 1' },
+ * { text: 'Option 2', disabled: true },
+ * { text: 'Option 3' },
+ * { text: 'Option 4' },
+ * ];
+ * ```
+ *
+ * @example Dropdown Groups
+ *
+ * ```
+ * private items: DropdownItemType[] = [
+ * { text: 'Option 1' },
+ * { text: 'Option 2', disabled: true },
+ * { text: 'Option 3', items: [ { text: 'Option 31' }, { text: 'Option 32' }, { text: 'Option 33' } ] },
+ * { text: 'Option 4' },
+ * ];
+ * ```
+ *
+ */
+
+class DropdownComponent extends React.Component {
+
+ static styledComponentName: string = 'Dropdown';
+ static defaultProps: Partial = {
+ placeholder: 'Select Option',
+ multiSelect: false,
+ };
+
+ public state: State = {
+ visible: false,
+ menuWidth: 0,
+ };
+
+ private strategy: SelectionStrategy;
+ private iconAnimation: Animated.Value;
+
+ constructor(props: DropdownProps) {
+ super(props);
+ const { multiSelect, selectedOption } = props;
+ this.strategy = multiSelect ?
+ new MultiSelectStrategy(selectedOption) : new SingleSelectStrategy(selectedOption);
+ this.iconAnimation = new Animated.Value(-180);
+ }
+
+ private onItemSelect = (option: DropdownItemType, event: GestureResponderEvent): void => {
+ const { onSelect } = this.props;
+
+ onSelect(this.strategy.select(option, this.setVisibility));
+ };
+
+ private setVisibility = (): void => {
+ const visible: boolean = !this.state.visible;
+
+ this.setState({ visible }, this.handleVisibleChange);
+ };
+
+ private handleVisibleChange = (): void => {
+ this.dispatchActive();
+ this.startIconAnimation();
+ };
+
+ private dispatchActive = (): void => {
+ const { visible } = this.state;
+ if (visible) {
+ this.props.dispatch([Interaction.ACTIVE]);
+ } else {
+ this.props.dispatch([]);
+ }
+ };
+
+ private startIconAnimation = (): void => {
+ const { visible } = this.state;
+ if (visible) {
+ this.animateIcon(0);
+ } else {
+ this.animateIcon(-180);
+ }
+ };
+
+ private animateIcon = (toValue: number): void => {
+ Animated.timing(this.iconAnimation, {
+ toValue: toValue,
+ duration: 200,
+ }).start();
+ };
+
+ private onPress = (event: GestureResponderEvent) => {
+ this.props.dispatch([]);
+ if (this.props.onPress) {
+ this.props.onPress(event);
+ }
+ this.setVisibility();
+ };
+
+ private onPressIn = (event: GestureResponderEvent) => {
+ this.props.dispatch([Interaction.ACTIVE]);
+
+ if (this.props.onPressIn) {
+ this.props.onPressIn(event);
+ }
+ };
+
+ private onPressOut = (event: GestureResponderEvent) => {
+ this.props.dispatch([]);
+
+ if (this.props.onPressOut) {
+ this.props.onPressOut(event);
+ }
+ };
+
+ private onControlMeasure = (result: MeasureResult): void => {
+ const width: number = result[MEASURED_CONTROL_TAG].size.width;
+
+ this.setState({ menuWidth: width });
+ };
+
+ private getComponentStyle = (source: StyleType): StyleType => {
+ const controlStyles: StyleType = allWithPrefix(source, 'control');
+ const iconStyles: StyleType = allWithPrefix(source, 'icon');
+ const textStyles: StyleType = allWithPrefix(source, 'text');
+ const placeholderStyles: StyleType = allWithPrefix(source, 'placeholder');
+ const menuStyles: StyleType = allWithPrefix(source, 'menu');
+ const labelStyle: StyleType = allWithPrefix(source, 'label');
+ const outlineStyles: StyleType = allWithPrefix(source, 'outline');
+
+ return {
+ control: {
+ backgroundColor: controlStyles.controlBackgroundColor,
+ borderColor: controlStyles.controlBorderColor,
+ borderWidth: controlStyles.controlBorderWidth,
+ minHeight: controlStyles.controlMinHeight,
+ minWidth: controlStyles.controlMinWidth,
+ paddingHorizontal: controlStyles.controlPaddingHorizontal,
+ paddingVertical: controlStyles.controlPaddingVertical,
+ borderRadius: controlStyles.controlBorderRadius,
+ },
+ icon: {
+ height: iconStyles.iconHeight,
+ width: iconStyles.iconWidth,
+ marginHorizontal: iconStyles.iconMarginHorizontal,
+ tintColor: iconStyles.iconTintColor,
+ },
+ text: {
+ color: textStyles.textColor,
+ fontSize: textStyles.textFontSize,
+ fontWeight: textStyles.textFontWeight,
+ lineHeight: textStyles.textLineHeight,
+ marginHorizontal: textStyles.textMarginHorizontal,
+ },
+ placeholder: {
+ color: placeholderStyles.placeholderColor,
+ fontSize: placeholderStyles.placeholderFontSize,
+ fontWeight: placeholderStyles.placeholderFontWeight,
+ lineHeight: placeholderStyles.placeholderLineHeight,
+ marginHorizontal: placeholderStyles.placeholderMarginHorizontal,
+ },
+ outline: {
+ backgroundColor: outlineStyles.outlineBackgroundColor,
+ padding: outlineStyles.outlinePadding,
+ borderRadius: outlineStyles.outlineBorderRadius,
+ },
+ menu: {
+ maxHeight: menuStyles.menuMaxHeight,
+ borderRadius: menuStyles.menuBorderRadius,
+ borderColor: menuStyles.menuBorderColor,
+ borderWidth: menuStyles.menuBorderWidth,
+ },
+ label: {
+ color: labelStyle.labelColor,
+ marginBottom: labelStyle.labelMarginBottom,
+ },
+ };
+ };
+
+ private renderLabelElement = (style: TextStyle): TextElement => {
+ const { label, labelStyle } = this.props;
+
+ return (
+
+ {label}
+
+ );
+ };
+
+ private renderDefaultIconElement = (style: ImageStyle): IconElement => {
+ const { visible } = this.state;
+
+ const rotateInterpolate = this.iconAnimation.interpolate({
+ inputRange: [-180, 0],
+ outputRange: ['-180deg', '0deg'],
+ });
+ const animatedStyle: StyleType = { transform: [{ rotate: rotateInterpolate }] };
+
+ return (
+
+ );
+ };
+
+ private renderIconElement = (style: ImageStyle): IconElement => {
+ const { icon } = this.props;
+ const { visible } = this.state;
+
+ if (icon) {
+ return icon(style, visible);
+ } else {
+ return this.renderDefaultIconElement(style);
+ }
+ };
+
+ private renderTextElement = (valueStyle: TextStyle, placeholderStyle: TextStyle): TextElement => {
+ const { placeholder, textStyle } = this.props;
+ const value: string = this.strategy.getPlaceholder(placeholder);
+ const style: TextStyle = placeholder === value ? placeholderStyle : valueStyle;
+
+ return (
+
+ {value}
+
+ );
+ };
+
+ private renderMenuElement = (style: StyleType): DropdownMenuElement => {
+ const { appearance, selectedOption, ...restProps } = this.props;
+ const additionalMenuStyle: StyleType = { width: this.state.menuWidth };
+
+ return (
+
+ );
+ };
+
+ private renderControlChildren = (style: StyleType): [IconElement, TextElement] => {
+ return [
+ this.renderIconElement(style.icon),
+ this.renderTextElement(style.text, style.placeholder),
+ ];
+ };
+
+ private renderControlElement = (): ControlElement => {
+ const { themedStyle, controlStyle, ...restProps } = this.props;
+ const { control, outline, ...childrenStyles } = this.getComponentStyle(themedStyle);
+ const [iconElement, textElement] = this.renderControlChildren(childrenStyles);
+
+ const measuringProps: MeasuringElementProps = { tag: MEASURED_CONTROL_TAG };
+
+ return (
+
+ {[
+
+ {textElement}
+ {iconElement}
+ ,
+ ]}
+
+ );
+ };
+
+ private renderComponentChildren = (style: StyleType): DropdownChildren => {
+ const { label } = this.props;
+
+ return [
+ this.renderMenuElement(style.menu),
+ isValidString(label) && this.renderLabelElement(style.label),
+ this.renderControlElement(),
+ ];
+ };
+
+ public render(): DropdownElement {
+ const { themedStyle, style } = this.props;
+ const { visible, menuWidth } = this.state;
+ const componentStyle: StyleType = this.getComponentStyle(themedStyle);
+ const [menuElement, labelElement, controlElement] = this.renderComponentChildren(componentStyle);
+ const additionalMenuStyle: StyleType = { maxWidth: menuWidth };
+
+ return (
+
+ {labelElement}
+
+
+ {controlElement}
+
+
+
+ );
+ }
+}
+
+const styles = StyleSheet.create({
+ control: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ justifyContent: 'space-between',
+ },
+ text: {
+ flex: 1,
+ },
+ icon: {},
+ label: {},
+ indicator: {
+ width: 0,
+ height: 6,
+ },
+ menu: {
+ flexGrow: 0,
+ },
+ outlineContainer: {
+ flex: 1,
+ alignItems: 'center',
+ justifyContent: 'center',
+ },
+ outline: {
+ justifyContent: 'center',
+ },
+});
+
+export const Dropdown = styled(DropdownComponent);
diff --git a/src/framework/ui/dropdown/dropdown.spec.tsx b/src/framework/ui/dropdown/dropdown.spec.tsx
new file mode 100644
index 000000000..31bb6c90a
--- /dev/null
+++ b/src/framework/ui/dropdown/dropdown.spec.tsx
@@ -0,0 +1,288 @@
+import React from 'react';
+import {
+ Image,
+ ImageProps,
+ TouchableOpacity,
+} from 'react-native';
+import {
+ render,
+ fireEvent,
+ RenderAPI,
+} from 'react-native-testing-library';
+import {
+ ApplicationProvider,
+ StyleType,
+} from '@kitten/theme';
+import {
+ Dropdown,
+ DropdownOption,
+} from './dropdown.component';
+import { DropdownItemType } from './droppdownItem.component';
+import { CheckBox } from '../checkbox/checkbox.component';
+import {
+ mapping,
+ theme,
+} from '../support/tests';
+
+jest.useFakeTimers();
+
+const stringify = (obj: any): string => JSON.stringify(obj);
+
+const iconClosedUri: string = 'https://akveo.github.io/eva-icons/fill/png/128/arrow-ios-downward.png';
+const iconOpenedUri: string = 'https://akveo.github.io/eva-icons/fill/png/128/arrow-ios-upward.png';
+
+const data: DropdownItemType[] = [
+ { text: 'Option 1' },
+ { text: 'Option 2', disabled: true },
+ {
+ text: 'Option 3',
+ items: [
+ { text: 'Option 31', disabled: true },
+ { text: 'Option 32' },
+ { text: 'Option 33' },
+ ],
+ },
+ { text: 'Option 4' },
+ { text: 'Option 5', textStyle: { color: 'red' } },
+ { text: 'Option 6' },
+ { text: 'Option 8' },
+ { text: 'Option 9' },
+];
+
+interface Props {
+ dropdownLabel?: string;
+ dropdownPlaceholder?: string;
+ dropdownDisabled?: boolean;
+ multiSelectDisabled?: boolean;
+ labelStyle?: StyleType;
+ placeholderStyle?: StyleType;
+ controlStyle?: StyleType;
+ onDropdownPress?: () => void;
+ onDropdownPressIn?: () => void;
+ onDropdownPressOut?: () => void;
+ onDropdownLongPress?: () => void;
+ onMultiSelectPress?: () => void;
+}
+
+interface State {
+ dropdownSelected: DropdownOption;
+ dropdownMultiSelected: DropdownOption;
+}
+
+class TestApplication extends React.Component {
+
+ public state: State = {
+ dropdownSelected: null,
+ dropdownMultiSelected: [],
+ };
+
+ private onDropdownSelect = (dropdownSelected: DropdownOption): void => {
+ this.setState({ dropdownSelected });
+ };
+
+ private onDropdownMultiSelect = (dropdownMultiSelected: DropdownOption): void => {
+ this.setState({ dropdownMultiSelected });
+ };
+
+ private renderIcon = (style: StyleType, visible: boolean): React.ReactElement => {
+ const uri: string = visible ? iconOpenedUri : iconClosedUri;
+
+ return (
+
+ );
+ };
+
+ public render(): React.ReactNode {
+ const {
+ onDropdownPress,
+ onMultiSelectPress,
+ dropdownLabel,
+ dropdownPlaceholder,
+ dropdownDisabled,
+ multiSelectDisabled,
+ onDropdownPressIn,
+ onDropdownPressOut,
+ onDropdownLongPress,
+
+ } = this.props;
+
+ return (
+
+
+
+
+ );
+ }
+
+}
+
+
+describe('@ dropdown component checks', () => {
+
+ it('* dropdown onPress have been called', () => {
+ const onDropdownPress = jest.fn();
+ const onMultiSelectPress = jest.fn();
+ const application: RenderAPI = render(
+ ,
+ );
+
+ fireEvent.press(application.getAllByType(Dropdown)[0]);
+ fireEvent.press(application.getAllByType(Dropdown)[1]);
+ expect(onDropdownPress).toHaveBeenCalled();
+ expect(onMultiSelectPress).toHaveBeenCalled();
+ });
+
+ it('* disabled props checks', () => {
+ const onDropdownPress = jest.fn();
+ const onMultiSelectPress = jest.fn();
+ const application: RenderAPI = render(
+ ,
+ );
+
+ fireEvent.press(application.getAllByType(TouchableOpacity)[0]);
+ expect(onDropdownPress).toHaveBeenCalled();
+ fireEvent.press(application.getAllByType(TouchableOpacity)[1]);
+ expect(onMultiSelectPress).toHaveBeenCalledTimes(0);
+ });
+
+ it('* dropdown default onSelect works properly', () => {
+ const expectedSelectedOption: DropdownItemType = { text: 'Option 1' };
+ const onDropdownPress = jest.fn();
+ const application: RenderAPI = render(
+ ,
+ );
+
+ fireEvent.press(application.getAllByType(TouchableOpacity)[0]);
+
+ fireEvent.press(application.getAllByText(expectedSelectedOption.text)[0].parent);
+ const { selectedOption } = application.getAllByType(Dropdown)[0].props;
+
+ expect(stringify(selectedOption)).toBe(stringify(expectedSelectedOption));
+ });
+
+ it('* dropdown multiSelect onSelect works properly', () => {
+ const expectedSelectedOption: DropdownItemType[] = [
+ { text: 'Option 4' },
+ { text: 'Option 32' },
+ ];
+ const onMultiSelectPress = jest.fn();
+ const application: RenderAPI = render(
+ ,
+ );
+
+ fireEvent.press(application.getAllByType(TouchableOpacity)[1]);
+ fireEvent(application.getAllByText(expectedSelectedOption[0].text)[0], 'onChange');
+ fireEvent(application.getAllByText(expectedSelectedOption[1].text)[0], 'onChange');
+ const { selectedOption } = application.getAllByType(Dropdown)[1].props;
+
+ expect(stringify(selectedOption)).toBe(stringify(expectedSelectedOption));
+ });
+
+ it('* multiSelect unselect works properly', () => {
+ const onMultiSelectPress = jest.fn();
+ const application: RenderAPI = render(
+ ,
+ );
+
+ fireEvent.press(application.getAllByType(TouchableOpacity)[1]);
+ fireEvent(application.getAllByType(CheckBox)[5], 'onChange');
+ fireEvent(application.getAllByType(CheckBox)[5], 'onChange');
+ const { selectedOption } = application.getAllByType(TouchableOpacity)[1].props;
+
+ expect(stringify(selectedOption)).toBe(stringify([]));
+ });
+
+ it('* multiSelect group selected works properly', () => {
+ const expectedSelectedOption: DropdownItemType[] = [
+ { text: 'Option 32' },
+ { text: 'Option 33' },
+ ];
+ const onMultiSelectPress = jest.fn();
+ const application: RenderAPI = render(
+ ,
+ );
+
+ fireEvent.press(application.getAllByType(TouchableOpacity)[1]);
+ fireEvent(application.getAllByText('Option 3')[0], 'onChange');
+ const { selectedOption: selected1 } = application.getAllByType(TouchableOpacity)[1].props;
+
+ expect(stringify(selected1)).toBe(stringify(expectedSelectedOption));
+
+ fireEvent(application.getAllByText('Option 3')[0], 'onChange');
+ const { selectedOption: selected2 } = application.getAllByType(TouchableOpacity)[1].props;
+
+ expect(stringify(selected2)).toBe(stringify([]));
+ });
+
+ it('* dropdown onPress* handling', () => {
+ const onDropdownPressIn = jest.fn();
+ const onDropdownPressOut = jest.fn();
+ const onDropdownLongPress = jest.fn();
+ const application: RenderAPI = render(
+ ,
+ );
+
+ fireEvent(application.getAllByType(TouchableOpacity)[0], 'pressIn');
+ fireEvent(application.getAllByType(TouchableOpacity)[0], 'pressOut');
+ fireEvent(application.getAllByType(TouchableOpacity)[0], 'longPress');
+
+ expect(onDropdownPressIn).toHaveBeenCalled();
+ expect(onDropdownPressOut).toHaveBeenCalled();
+ expect(onDropdownLongPress).toHaveBeenCalled();
+ });
+
+ it('* text props checks', () => {
+ const passedLabel: string = 'Label';
+ const passedPlaceholder: string = 'Placeholder';
+ const application: RenderAPI = render(
+ ,
+ );
+
+ const label: string = application.getAllByText(passedLabel)[0].props.children;
+ const placeholder: string = application.getAllByText(passedPlaceholder)[0].props.children;
+
+ expect(label).toBe(passedLabel);
+ expect(placeholder).toBe(passedPlaceholder);
+ });
+
+});
diff --git a/src/framework/ui/dropdown/dropdownGroup.component.tsx b/src/framework/ui/dropdown/dropdownGroup.component.tsx
new file mode 100644
index 000000000..26b58ada7
--- /dev/null
+++ b/src/framework/ui/dropdown/dropdownGroup.component.tsx
@@ -0,0 +1,155 @@
+/**
+ * @license
+ * Copyright Akveo. All Rights Reserved.
+ * Licensed under the MIT License. See License.txt in the project root for license information.
+ */
+
+import React from 'react';
+import {
+ ListRenderItemInfo,
+ View,
+} from 'react-native';
+import {
+ styled,
+ StyledComponentProps,
+ StyleType,
+} from '@kitten/theme';
+import {
+ DropdownItem,
+ DropdownItemElement,
+ DropdownItemProps,
+ DropdownItemType,
+} from './droppdownItem.component';
+import { SelectionStrategy } from './selection.strategy';
+
+interface ComponentProps {
+ multiSelect?: boolean;
+ strategy: SelectionStrategy;
+ renderItem?: (item: ListRenderItemInfo) => React.ReactElement;
+}
+
+interface MainItemStatus {
+ selected: boolean;
+ indeterminate: boolean;
+}
+
+export type DropdownGroupProps = ComponentProps & Partial & StyledComponentProps;
+export type DropdownGroupElement = React.ReactElement;
+
+export class DropdownGroupComponent extends React.Component {
+
+ static styledComponentName: string = 'DropdownGroup';
+
+ private getComponentStyle = (source: StyleType): StyleType => {
+ const {
+ itemPaddingLeft,
+ ...containerStyles
+ } = source;
+
+ return {
+ container: containerStyles,
+ item: {
+ paddingLeft: itemPaddingLeft,
+ },
+ };
+ };
+
+ private getMainItemStatus = (subItemsSelectedStatusArray: boolean[]): MainItemStatus => {
+ const someSelected: boolean = subItemsSelectedStatusArray
+ .some((item: boolean) => item === true);
+ const everySelected: boolean = subItemsSelectedStatusArray
+ .every((item: boolean) => item === true);
+
+ switch (true) {
+ case (someSelected && !everySelected):
+ return { selected: true, indeterminate: true };
+ case !someSelected:
+ return { selected: false, indeterminate: false };
+ case everySelected:
+ return { selected: true, indeterminate: false };
+ }
+ };
+
+ private renderSubItem = (option: DropdownItemType, index: number): DropdownItemElement => {
+ const { item, renderItem, strategy, ...restProps } = this.props;
+ const returningOption: ListRenderItemInfo = {
+ item: option,
+ index: index,
+ separators: null,
+ };
+ const selected: boolean = strategy.isSelected(option);
+
+ return renderItem ? renderItem(returningOption) : (
+
+ );
+ };
+
+ private renderSubItemsElements = (): DropdownItemElement[] => {
+ const { item, themedStyle } = this.props;
+ const { item: itemStyle } = this.getComponentStyle(themedStyle);
+
+ return item.items
+ .map((option: DropdownItemType, index: number) => {
+ const element: DropdownItemElement = this.renderSubItem(option, index);
+
+ return React.cloneElement(element, {
+ ...option,
+ style: [element.props.style, itemStyle],
+ key: index,
+ });
+ });
+ };
+
+ private renderMultiSelectMainElement = (subItemsElements: DropdownItemElement[]): DropdownItemElement => {
+ const { item, ...restProps } = this.props;
+ const subItemsSelectedStatusArray: boolean[] = subItemsElements
+ .map((subItem: DropdownItemElement) => subItem.props.selected);
+ const itemStatus: MainItemStatus = this.getMainItemStatus(subItemsSelectedStatusArray);
+
+ return (
+
+ );
+ };
+
+ private renderDefaultMainElement = (): DropdownItemElement => {
+ const { item } = this.props;
+
+ return (
+
+ );
+ };
+
+ private renderMainElement = (subItemsElements: DropdownItemElement[]): DropdownItemElement => {
+ const { multiSelect } = this.props;
+
+ return multiSelect ? this.renderMultiSelectMainElement(subItemsElements) : this.renderDefaultMainElement();
+ };
+
+ public render(): DropdownGroupElement {
+ const { themedStyle } = this.props;
+ const { container } = this.getComponentStyle(themedStyle);
+ const subItemsElements: DropdownItemElement[] = this.renderSubItemsElements();
+ const mainElement: DropdownItemElement = this.renderMainElement(subItemsElements);
+
+ return (
+
+ {mainElement}
+ {subItemsElements}
+
+ );
+ }
+}
+
+export const DropdownGroup = styled(DropdownGroupComponent);
+
diff --git a/src/framework/ui/dropdown/dropdownMenu.component.tsx b/src/framework/ui/dropdown/dropdownMenu.component.tsx
new file mode 100644
index 000000000..0cd3c67d0
--- /dev/null
+++ b/src/framework/ui/dropdown/dropdownMenu.component.tsx
@@ -0,0 +1,98 @@
+/**
+ * @license
+ * Copyright Akveo. All Rights Reserved.
+ * Licensed under the MIT License. See License.txt in the project root for license information.
+ */
+
+import React from 'react';
+import {
+ StyleSheet,
+ ListRenderItemInfo,
+ GestureResponderEvent,
+} from 'react-native';
+import {
+ List,
+ ListProps,
+} from '../list/list.component';
+import {
+ DropdownItem,
+ DropdownItemType,
+ DropdownItemElement,
+} from './droppdownItem.component';
+import {
+ DropdownGroup,
+ DropdownGroupElement,
+} from './dropdownGroup.component';
+import { SelectionStrategy } from './selection.strategy';
+
+type DefaultMenuItemElement = DropdownItemElement | DropdownGroupElement;
+type MenuItemElement = DefaultMenuItemElement | React.ReactElement;
+
+export interface ComponentProps {
+ data: DropdownItemType[];
+ multiSelect?: boolean;
+ strategy: SelectionStrategy;
+ renderItem?: (item: ListRenderItemInfo) => React.ReactElement;
+ onSelect: (option: DropdownItemType, event?: GestureResponderEvent) => void;
+}
+
+export type DropdownMenuProps = Partial & ComponentProps;
+export type DropdownMenuElement = React.ReactElement;
+
+export class DropdownMenu extends React.Component {
+
+ private areThereSubItems = (dropdownItem: DropdownItemType): boolean => {
+ const { items } = dropdownItem;
+
+ return items && items.length !== 0;
+ };
+
+ private onSelect = (option: DropdownItemType, event?: GestureResponderEvent): void => {
+ this.props.onSelect(option, event);
+ };
+
+ private renderDefaultItem = (info: ListRenderItemInfo): DefaultMenuItemElement => {
+ const { renderItem, multiSelect, strategy } = this.props;
+ const selected: boolean = strategy.isSelected(info.item);
+
+ return this.areThereSubItems(info.item) ? (
+
+ ) : (
+
+ );
+ };
+
+ private renderItem = (info: ListRenderItemInfo): MenuItemElement => {
+ const { renderItem } = this.props;
+
+ return renderItem ? renderItem(info) : this.renderDefaultItem(info);
+ };
+
+ public render(): DropdownMenuElement {
+ const { style, ...restProps } = this.props;
+
+ return (
+
+ );
+ }
+}
+
+const styles = StyleSheet.create({
+ container: {},
+});
diff --git a/src/framework/ui/dropdown/droppdownItem.component.tsx b/src/framework/ui/dropdown/droppdownItem.component.tsx
new file mode 100644
index 000000000..5d1b1a3b1
--- /dev/null
+++ b/src/framework/ui/dropdown/droppdownItem.component.tsx
@@ -0,0 +1,196 @@
+/**
+ * @license
+ * Copyright Akveo. All Rights Reserved.
+ * Licensed under the MIT License. See License.txt in the project root for license information.
+ */
+
+import React from 'react';
+import {
+ GestureResponderEvent,
+ StyleSheet,
+ TextStyle,
+ TouchableOpacity,
+ TouchableOpacityProps,
+ ViewProps,
+ View,
+} from 'react-native';
+import {
+ Interaction,
+ styled,
+ StyledComponentProps,
+ StyleType,
+} from '@kitten/theme';
+import {
+ Text,
+ TextProps,
+} from '../text/text.component';
+import { CheckBox } from '../checkbox/checkbox.component';
+import { TouchableTypeReturningProps } from '../support/typings';
+
+type TextElement = React.ReactElement;
+type DefaultItemElement = React.ReactElement;
+type MultiSelectItemElement = React.ReactElement;
+
+export interface DropdownItemType {
+ text: string;
+ textStyle?: TextStyle;
+ disabled?: boolean;
+ items?: DropdownItemType[];
+}
+
+export interface ComponentProps {
+ item: DropdownItemType;
+ selected?: boolean;
+ indeterminate?: boolean;
+ multiSelect?: boolean;
+}
+
+export type DropdownItemProps = ComponentProps & StyledComponentProps & TouchableTypeReturningProps;
+export type DropdownItemElement = React.ReactElement;
+
+class DropdownItemComponent extends React.Component {
+
+ static styledComponentName: string = 'DropdownItem';
+
+ private onPress = (event: GestureResponderEvent) => {
+ const { item, onPress } = this.props;
+
+ this.props.dispatch([]);
+ onPress(item, event);
+ };
+
+ private onMultiSelectItemPress = (value: boolean): void => {
+ this.onPress(null);
+ };
+
+ private onPressIn = (event: GestureResponderEvent) => {
+ this.props.dispatch([Interaction.ACTIVE]);
+
+ if (this.props.onPressIn) {
+ this.props.onPressIn(this.props.item, event);
+ }
+ };
+
+ private onPressOut = (event: GestureResponderEvent) => {
+ this.props.dispatch([]);
+
+ if (this.props.onPressOut) {
+ this.props.onPressOut(this.props.item, event);
+ }
+ };
+
+ private onLongPress = (event: GestureResponderEvent) => {
+ if (this.props.onLongPress) {
+ this.props.onLongPress(this.props.item, event);
+ }
+ };
+
+ private getComponentStyle = (source: StyleType): StyleType => {
+ const {
+ textColor,
+ textFontSize,
+ textFontWeight,
+ textLineHeight,
+ textMarginHorizontal,
+ multiSelectBackgroundColor,
+ multiSelectTextColor,
+ ...containerStyles
+ } = source;
+
+ return {
+ container: containerStyles,
+ multiSelectContainer: {
+ ...containerStyles,
+ backgroundColor: multiSelectBackgroundColor,
+ },
+ text: {
+ color: textColor,
+ fontSize: textFontSize,
+ fontWeight: textFontWeight,
+ lineHeight: textLineHeight,
+ marginHorizontal: textMarginHorizontal,
+ },
+ multiSelectText: {
+ color: multiSelectTextColor,
+ fontSize: textFontSize,
+ fontWeight: textFontWeight,
+ lineHeight: textLineHeight,
+ marginHorizontal: textMarginHorizontal,
+ },
+ };
+ };
+
+ private renderTextElement = (style: TextStyle): TextElement => {
+ const { item } = this.props;
+
+ return (
+
+ {item.text}
+
+ );
+ };
+
+ private renderDefaultItem = (): DefaultItemElement => {
+ const { themedStyle, style, item, ...restProps } = this.props;
+ const { container, text } = this.getComponentStyle(themedStyle);
+ const textElement: TextElement = this.renderTextElement(text);
+
+ return (
+
+ {textElement}
+
+ );
+ };
+
+ private renderMultiSelectItem = (): MultiSelectItemElement => {
+ const {
+ disabled,
+ item,
+ themedStyle,
+ selected,
+ style,
+ indeterminate,
+ ...restProps
+ } = this.props;
+ const { multiSelectContainer, multiSelectText } = this.getComponentStyle(themedStyle);
+
+ return (
+
+
+
+ );
+ };
+
+ public render(): React.ReactNode {
+ const { multiSelect } = this.props;
+
+ return multiSelect ? this.renderMultiSelectItem() : this.renderDefaultItem();
+ }
+}
+
+const styles = StyleSheet.create({
+ container: {
+ flexDirection: 'row',
+ alignItems: 'center',
+ },
+ icon: {},
+ text: {},
+});
+
+export const DropdownItem = styled(DropdownItemComponent);
diff --git a/src/framework/ui/dropdown/selection.strategy.ts b/src/framework/ui/dropdown/selection.strategy.ts
new file mode 100644
index 000000000..39b40573a
--- /dev/null
+++ b/src/framework/ui/dropdown/selection.strategy.ts
@@ -0,0 +1,139 @@
+import { DropdownItemType } from './droppdownItem.component';
+
+export interface SelectionStrategy {
+ selectedOption: DropdownItemType | DropdownItemType[];
+ isSelected: (item: DropdownItemType) => boolean;
+ select: (option: DropdownItemType, callback?: () => void) => DropdownItemType | DropdownItemType[];
+ getPlaceholder: (placeholder: string) => string;
+}
+
+export class MultiSelectStrategy implements SelectionStrategy {
+
+ public selectedOption: DropdownItemType[];
+
+ constructor(options: DropdownItemType | DropdownItemType[]) {
+ if (Array.isArray(options)) {
+ this.selectedOption = options;
+ }
+ }
+
+ public select(option: DropdownItemType, callback?: () => void): DropdownItemType[] {
+ const subOptionsExist: boolean = this.areThereSubOptions(option);
+
+ if (subOptionsExist) {
+ this.selectOptionWithSubOptions(option);
+ } else {
+ this.selectDefaultOption(option);
+ }
+
+ return this.selectedOption;
+ }
+
+ private selectDefaultOption(option: DropdownItemType): void {
+ const optionAlreadyExist: boolean = this.selectedOption
+ .some((item: DropdownItemType) => {
+ return item === option;
+ });
+ if (optionAlreadyExist) {
+ this.removeOption(option);
+ } else {
+ this.selectedOption.push(option);
+ }
+ }
+
+ private selectOptionWithSubOptions(option: DropdownItemType): void {
+ const subOptionsAlreadyExist: boolean = this.selectedOption
+ .some((item: DropdownItemType) => {
+ return option.items
+ .some((subItem: DropdownItemType) => {
+ return subItem === item;
+ });
+ });
+
+ if (subOptionsAlreadyExist) {
+ option.items.forEach((subItem: DropdownItemType) => this.removeOption(subItem));
+ } else {
+ const enabledItems: DropdownItemType[] = option.items
+ .filter((item: DropdownItemType) => {
+ return !item.disabled;
+ });
+ this.selectedOption = this.selectedOption.concat(enabledItems);
+ }
+ }
+
+ public getPlaceholder(placeholder: string): string {
+ if (this.isSelectedOptionExist()) {
+ return this.selectedOption
+ .map((item: DropdownItemType) => {
+ return item && item.text;
+ })
+ .join(', ');
+ } else {
+ return placeholder;
+ }
+ }
+
+ public isSelected(item: DropdownItemType): boolean {
+ return this.selectedOption
+ .some((option: DropdownItemType) => {
+ return option === item;
+ });
+ }
+
+ private isSelectedOptionExist(): boolean {
+ return this.selectedOption && this.selectedOption.length !== 0;
+ }
+
+ private removeOption(option: DropdownItemType): void {
+ const index: number = this.selectedOption
+ .findIndex((item: DropdownItemType) => {
+ return item === option;
+ });
+ if (index !== -1) {
+ this.selectedOption.splice(index, 1);
+ }
+ }
+
+ private areThereSubOptions(option: DropdownItemType): boolean {
+ return option.items && option.items.length !== 0;
+ }
+}
+
+export class SingleSelectStrategy implements SelectionStrategy {
+
+ public selectedOption: DropdownItemType;
+
+ constructor(options: DropdownItemType | DropdownItemType[]) {
+ if (!Array.isArray(options)) {
+ this.selectedOption = options;
+ }
+ }
+
+ public select(option: DropdownItemType, callback?: () => void): DropdownItemType {
+ this.selectedOption = option;
+ callback();
+ return this.selectedOption;
+ }
+
+ public getPlaceholder(placeholder: string): string {
+ if (this.selectedOption) {
+ return this.selectedOption.text;
+ } else {
+ return placeholder;
+ }
+ }
+
+ public isSelected(item: DropdownItemType): boolean {
+ if (this.hasOptionSubItems(item)) {
+ return item.items.some((option: DropdownItemType) => {
+ return this.isSelected(option);
+ });
+ } else {
+ return this.selectedOption === item;
+ }
+ }
+
+ private hasOptionSubItems(option: DropdownItemType): boolean {
+ return option.items && option.items.length !== 0;
+ }
+}
diff --git a/src/framework/ui/icon/icon.component.tsx b/src/framework/ui/icon/icon.component.tsx
new file mode 100644
index 000000000..cb38e8eb7
--- /dev/null
+++ b/src/framework/ui/icon/icon.component.tsx
@@ -0,0 +1,198 @@
+import React from 'react';
+import {
+ Animated,
+ StyleProp,
+ ViewStyle,
+} from 'react-native';
+import {
+ IconAnimation,
+ IconAnimationRegistry,
+ IconAnimations,
+} from './iconAnimation';
+import {
+ IconRegistryService,
+ RegisteredIcon,
+} from './service/iconRegistry.service';
+
+interface ComponentProps {
+ name: string;
+ pack?: string;
+ animation?: keyof IconAnimationRegistry;
+}
+
+export type IconProps = ComponentProps & T;
+export type IconElement = React.ReactElement;
+
+/**
+ * Icon component with animation support. Allows to render any ReactElement registered for a specific name.
+ * Starting from UI Kitten 4.2, there is `@ui-kitten/eva-icons` module
+ * that renders any icon from eva-icons package in `svg` format.
+ *
+ * @extends React.Component
+ *
+ * @method {(callback?: Animated.EndCallback) => void} startAnimation - Toggle animation to start.
+ * @method {() => void} stopAnimation - Toggle animation to stop.
+ * @property {string} name - Name of registered icon.
+ * @property {string} pack - Name of icon pack that is able to provide an icon for specified name.
+ * @property {string} animation - Animation name. Available `zoom`, `pulse` and `shake`. Default is `zoom`.
+ *
+ * @overview-example Register Icons
+ *
+ * ```
+ * import React from 'react';
+ * import { mapping, light as lightTheme } from '@eva-design/eva';
+ * import { ApplicationProvider, IconRegistry } from 'react-native-ui-kitten';
+ * import { EvaIconsPack } from '@ui-kitten/eva-icons'; // <-- Make sure it is installed. npm i @ui-kitten/eva-icons
+ * import { Application } from './path-to/root.component';
+ *
+ * export default class App extends React.Component {
+ *
+ * public render(): React.ReactNode {
+ * return (
+ *
+ *
+ *
+ *
+ * );
+ * }
+ * }
+ * ```
+ *
+ * @overview-example Simple Usage
+ *
+ * ```
+ * import React from 'react';
+ * import { Icon } from 'react-native-ui-kitten';
+ *
+ * export const StarIcon = (props) => (
+ *
+ * );
+ * ```
+ *
+ * @overview-example Animation Usage
+ *
+ * ```
+ * import React from 'react';
+ * import { Icon } from 'react-native-ui-kitten';
+ *
+ * const iconRef = React.createRef();
+ *
+ * export const StarIcon = (props) => (
+ *
+ * );
+ *
+ * iconRef.current.startAnimation();
+ * ```
+ *
+ * @example Password Input
+ *
+ * ```
+ * import React from 'react';
+ * import { Input, Icon } from 'react-native-ui-kitten';
+ *
+ * export class PasswordInput extends React.Component {
+ * state = {
+ * passwordVisible: false,
+ * };
+ *
+ * onPasswordIconPress = () => {
+ * const passwordVisible = !this.state.passwordVisible;
+ * this.setState({ passwordVisible });
+ * };
+ *
+ * renderPasswordIcon = (style) => (
+ *
+ * );
+ *
+ * render() {
+ * return (
+ *
+ * );
+ * }
+ * }
+ * ```
+ *
+ * @example Like Button
+ *
+ * ```
+ * import React from 'react';
+ * import { Button, Icon } from 'react-native-ui-kitten';
+ *
+ * export class LikeButton extends React.Component {
+ * state = {
+ * liked: false,
+ * };
+ *
+ * onPress = () => {
+ * const liked = !this.state.liked;
+ * this.setState({ liked });
+ * };
+ *
+ * renderHeartIcon = (style) => (
+ *
+ * );
+ *
+ * render() {
+ * return (
+ *
+ * );
+ * }
+ * }
+ * ```
+ */
+
+export class Icon extends React.Component> {
+
+ static defaultProps: Partial = {
+ animation: 'zoom',
+ };
+
+ private readonly animation: IconAnimation;
+
+ constructor(props: IconProps) {
+ super(props);
+ this.animation = IconAnimations[props.animation];
+ }
+
+ public componentWillUnmount() {
+ this.animation.release();
+ }
+
+ public startAnimation = (callback?: Animated.EndCallback) => {
+ this.animation.start(callback);
+ };
+
+ public stopAnimation = () => {
+ this.animation.stop();
+ };
+
+ private getComponentStyle = (): StyleProp => {
+ return this.animation.toProps();
+ };
+
+ public render(): React.ReactElement {
+ const { name, pack, ...restProps } = this.props;
+ const registeredIcon: RegisteredIcon = IconRegistryService.getIcon(name, pack);
+
+ return (
+
+ {registeredIcon.icon.toReactElement(restProps as T)}
+
+ );
+ }
+}
diff --git a/src/framework/ui/icon/icon.spec.tsx b/src/framework/ui/icon/icon.spec.tsx
new file mode 100644
index 000000000..fc99b4352
--- /dev/null
+++ b/src/framework/ui/icon/icon.spec.tsx
@@ -0,0 +1,108 @@
+import React from 'react';
+import { View } from 'react-native';
+import { render } from 'react-native-testing-library';
+import { IconRegistry } from './iconRegistry.component';
+import {
+ Icon,
+ IconProps,
+} from './icon.component';
+import {
+ IconPack,
+ IconProvider,
+} from './service/type';
+
+const DefaultIcon: IconProvider = {
+ toReactElement(props?: IconProps): React.ReactElement {
+ return (
+
+ );
+ },
+};
+
+const AdditionalIcon: IconProvider = {
+ toReactElement(props?: IconProps): React.ReactElement {
+ return (
+
+ );
+ },
+};
+
+const testIconPack1: IconPack = {
+ name: 'test-icon-pack',
+ icons: {
+ home: DefaultIcon,
+ gear: DefaultIcon,
+ },
+};
+
+const testIconPack2: IconPack = {
+ name: 'additional-icon-pack',
+ icons: {
+ home: AdditionalIcon,
+ },
+};
+
+describe('@icon: component checks', () => {
+
+ beforeEach(() => {
+ render(
+ ,
+ );
+ });
+
+ it('* should render icon from default pack', () => {
+ const component = render(
+ ,
+ );
+
+ expect(component.getByTestId('default')).toBeTruthy();
+ });
+
+ it('* should render icon from additional pack', () => {
+ const component = render(
+ ,
+ );
+
+ expect(component.getByTestId('additional')).toBeTruthy();
+ });
+
+ it('* should pass props to an icon component', () => {
+ const component = render(
+ ,
+ );
+
+ expect(component.getByTestId('custom-test-id')).toBeTruthy();
+ });
+
+ it('* should throw while rendering not registered icon', () => {
+ expect(() => {
+ render(
+ ,
+ );
+ }).toThrowError();
+
+ expect(() => {
+ render(
+ ,
+ );
+ }).toThrowError();
+ });
+
+ it('* should throw while rendering icon from not registered pack', () => {
+ expect(() => {
+ render(
+ ,
+ );
+ }).toThrowError();
+ });
+
+});
diff --git a/src/framework/ui/icon/iconAnimation.ts b/src/framework/ui/icon/iconAnimation.ts
new file mode 100644
index 000000000..af22db243
--- /dev/null
+++ b/src/framework/ui/icon/iconAnimation.ts
@@ -0,0 +1,21 @@
+import { ViewStyle } from 'react-native';
+import {
+ Animation,
+ PulseAnimation,
+ ShakeAnimation,
+ ZoomAnimation,
+} from '../animation';
+
+export type IconAnimation = Animation;
+
+export interface IconAnimationRegistry {
+ zoom: IconAnimation;
+ pulse: IconAnimation;
+ shake: IconAnimation;
+}
+
+export const IconAnimations: IconAnimationRegistry = {
+ zoom: new ZoomAnimation(),
+ pulse: new PulseAnimation(),
+ shake: new ShakeAnimation(),
+};
diff --git a/src/framework/ui/icon/iconRegistry.component.tsx b/src/framework/ui/icon/iconRegistry.component.tsx
new file mode 100644
index 000000000..c67e2d863
--- /dev/null
+++ b/src/framework/ui/icon/iconRegistry.component.tsx
@@ -0,0 +1,75 @@
+import React from 'react';
+import { IconRegistryService } from './service/iconRegistry.service';
+import { IconPack } from './service/type';
+
+type IconsProp = IconPack | IconPack[];
+
+export interface IconRegistryProps {
+ icons: IconsProp;
+ defaultIcons?: string;
+}
+
+export type IconRegistryElement = React.ReactElement;
+
+/**
+ * Icon Registry component. Registers one or more icon packs for later usage in ` ` component.
+ * Renders nothing, but should be added as a child of an Application Root.
+ *
+ * @extends React.Component
+ *
+ * @property {IconPack | IconPack[]} icons - Icon packs to register.
+ * @property {string} defaultIcons - Name of an icon pack that is used by default.
+ *
+ * @overview-example Simple Usage
+ *
+ * ```
+ * import React from 'react';
+ * import { mapping, light as lightTheme } from '@eva-design/eva';
+ * import { ApplicationProvider, IconRegistry } from 'react-native-ui-kitten';
+ * import { EvaIconsPack } from '@ui-kitten/eva-icons'; // <-- Make sure it is installed. npm i @ui-kitten/eva-icons
+ * import { Application } from './path-to/root.component';
+ *
+ * export default class App extends React.Component {
+ *
+ * public render(): React.ReactNode {
+ * return (
+ *
+ *
+ *
+ *
+ * );
+ * }
+ * }
+ * ```
+ */
+export class IconRegistry extends React.Component {
+
+ static defaultProps: Partial = {
+ icons: [],
+ };
+
+ private findDefaultIconPack = (packs: IconPack[], name: string): IconPack => {
+ const requestedPackIndex: number = packs.findIndex((pack: IconPack): boolean => {
+ return pack.name === name;
+ });
+
+ return packs[Math.max(0, requestedPackIndex)];
+ };
+
+ private registerIcons = (source: IconsProp, defaultPack: string) => {
+ const packs: IconPack[] = Array.isArray(source) ? source : [source];
+ const defaultIconPack: IconPack = this.findDefaultIconPack(packs, defaultPack);
+
+ IconRegistryService.register(...packs);
+ IconRegistryService.setDefaultIconPack(defaultIconPack.name);
+ };
+
+ public render(): React.ReactNode {
+ const { icons, defaultIcons } = this.props;
+ this.registerIcons(icons, defaultIcons);
+
+ return null;
+ }
+}
diff --git a/src/framework/ui/icon/service/iconRegistry.service.ts b/src/framework/ui/icon/service/iconRegistry.service.ts
new file mode 100644
index 000000000..3ad227596
--- /dev/null
+++ b/src/framework/ui/icon/service/iconRegistry.service.ts
@@ -0,0 +1,133 @@
+/**
+ * @license
+ * Copyright Akveo. All Rights Reserved.
+ * Licensed under the MIT License. See License.txt in the project root for license information.
+ */
+import {
+ IconPack,
+ IconProvider,
+} from './type';
+
+function throwPackNotFoundError(name: string) {
+ const docRoot: string = 'https://akveo.github.io/react-native-ui-kitten/docs';
+
+ const message: string = [
+ `\nIcon: Icon Pack '${name}' is not registered`,
+ 'Using UI Kitten components is only possible with configuring ApplicationProvider.',
+ `📖 Documentation: ${docRoot}/guides/setting-up-icons`,
+ ].join('\n');
+
+ throw Error(message);
+}
+
+function throwIconNotFoundError(name: string, pack: string) {
+ const docRoot: string = 'https://akveo.github.io/react-native-ui-kitten/docs';
+
+ const message: string = [
+ `\nIcon: '${name}' icon is not registered in pack '${pack}'.`,
+ 'Check icon name or consider switching icon pack.',
+ `📖 Documentation: ${docRoot}/guides/setting-up-icons`,
+ ].join('\n');
+
+ throw Error(message);
+}
+
+export interface RegisteredIcon {
+ name: string;
+ pack: string;
+ icon: IconProvider;
+}
+
+type IconProps = any;
+
+/**
+ * This service allows to register multiple icon packs to use them later within
+ * ` ` component.
+ */
+class RegistryService {
+
+ protected packs: Map> = new Map();
+ protected defaultPack: string;
+
+ /**
+ * Registers multiple icon packs and sets the first one as default if there is no default packs
+ *
+ * @param {IconPack[]} packs - array of icon packs
+ */
+ public register(...packs: IconPack[]) {
+ packs.forEach((pack: IconPack) => {
+ this.registerIconPack(pack);
+ });
+ }
+
+ /**
+ * Sets pack as default
+ *
+ * @param {string} name
+ * @throws {Error} if pack is nor registered
+ */
+ public setDefaultIconPack(name: string) {
+ if (!this.packs.has(name)) {
+ throwPackNotFoundError(name);
+ }
+
+ this.defaultPack = name;
+ }
+
+ /**
+ * @param {string} name
+ * @returns {IconPack} pack by name
+ */
+ public getIconPack(name: string): IconPack {
+ return this.packs.get(name);
+ }
+
+ /**
+ * @param {string} name - icon name
+ * @param {string} pack - pack name
+ * @throws {Error} if requested icon pack is not registered
+ * @returns {RegisteredIcon} - registered icon of a requested/default pack
+ */
+ public getIcon(name: string, pack?: string): RegisteredIcon {
+ const iconsPack: IconPack = pack ? this.getPackOrThrow(pack) : this.getDefaultPack();
+
+ return {
+ name,
+ pack: iconsPack.name,
+ icon: this.getIconFromPack(name, iconsPack),
+ };
+ }
+
+ /**
+ * Registers single icon pack
+ *
+ * @param {IconPack} pack - icon pack to register
+ */
+ protected registerIconPack(pack: IconPack) {
+ this.packs.set(pack.name, pack);
+ }
+
+ protected getPackOrThrow(name: string): IconPack {
+ const pack: IconPack = this.packs.get(name);
+
+ if (!pack) {
+ throwPackNotFoundError(name);
+ }
+
+ return pack;
+ }
+
+ protected getDefaultPack(): IconPack {
+ return this.getIconPack(this.defaultPack);
+ }
+
+ protected getIconFromPack(name: string, pack: IconPack, shouldThrow = true): IconProvider {
+ if (shouldThrow && !pack.icons[name]) {
+ throwIconNotFoundError(name, pack.name);
+ }
+
+ return pack.icons[name];
+ }
+}
+
+export const IconRegistryService = new RegistryService();
diff --git a/src/framework/ui/icon/service/iconRegistry.spec.tsx b/src/framework/ui/icon/service/iconRegistry.spec.tsx
new file mode 100644
index 000000000..03b683c8f
--- /dev/null
+++ b/src/framework/ui/icon/service/iconRegistry.spec.tsx
@@ -0,0 +1,90 @@
+import React from 'react';
+import { View } from 'react-native';
+import { IconRegistryService } from './iconRegistry.service';
+import { IconProvider } from './type';
+
+const TestIcon: IconProvider = {
+ toReactElement(): React.ReactElement {
+ return (
+
+ );
+ },
+};
+
+describe('@icon-registry: service checks', () => {
+
+ beforeEach(() => {
+ IconRegistryService.register(
+ {
+ name: 'test-icon-pack-1',
+ icons: {
+ home: TestIcon,
+ gear: TestIcon,
+ },
+ },
+ {
+ name: 'test-icon-pack-2',
+ icons: {
+ home: TestIcon,
+ },
+ },
+ );
+
+ IconRegistryService.setDefaultIconPack('test-icon-pack-1');
+ });
+
+ it('* should register icon pack', () => {
+ IconRegistryService.register({
+ name: 'additional-icon-pack',
+ icons: {
+ star: TestIcon,
+ },
+ },
+ );
+
+ expect(IconRegistryService.getIconPack('additional-icon-pack').name).toEqual('additional-icon-pack');
+ });
+
+ it('* should register icon pack without overriding default', () => {
+ IconRegistryService.register({
+ name: 'additional-icon-pack',
+ icons: {
+ home: TestIcon,
+ },
+ },
+ );
+
+ expect(IconRegistryService.getIcon('home').pack).toEqual('test-icon-pack-1');
+ });
+
+ it('* should throw when setting not registered pack as default', () => {
+ expect(() => IconRegistryService.setDefaultIconPack('not-registered-pack')).toThrowError();
+ });
+
+ it('* should change default icon pack', () => {
+ IconRegistryService.setDefaultIconPack('test-icon-pack-2');
+
+ expect(IconRegistryService.getIcon('home').pack).toEqual('test-icon-pack-2');
+ });
+
+ it('* should set first pack as default', () => {
+ expect(IconRegistryService.getIcon('home').pack).toEqual('test-icon-pack-1');
+ });
+
+ it('* should return icon from default pack', () => {
+ expect(IconRegistryService.getIcon('home').pack).toEqual('test-icon-pack-1');
+ });
+
+ it('* should return icon from specified pack', () => {
+ expect(IconRegistryService.getIcon('home', 'test-icon-pack-2').pack).toEqual('test-icon-pack-2');
+ });
+
+ it('* should throw for getting not registered icon', () => {
+ expect(() => IconRegistryService.getIcon('not-registered-pack')).toThrowError();
+ });
+
+ it('* should throw for getting icon from not registered pack', () => {
+ expect(() => IconRegistryService.getIcon('home', 'not-registered-pack')).toThrowError();
+ });
+
+});
diff --git a/src/framework/ui/icon/service/type.ts b/src/framework/ui/icon/service/type.ts
new file mode 100644
index 000000000..ff7ad074f
--- /dev/null
+++ b/src/framework/ui/icon/service/type.ts
@@ -0,0 +1,14 @@
+import React from 'react';
+
+export interface Icons {
+ [key: string]: IconProvider;
+}
+
+export interface IconPack {
+ name: string;
+ icons: Icons;
+}
+
+export interface IconProvider {
+ toReactElement(props?: T): React.ReactElement;
+}
diff --git a/src/framework/ui/index.ts b/src/framework/ui/index.ts
index b7dc6ac14..75cc9fae2 100644
--- a/src/framework/ui/index.ts
+++ b/src/framework/ui/index.ts
@@ -28,6 +28,28 @@ export {
CheckBoxProps,
CheckBoxElement,
} from './checkbox/checkbox.component';
+export {
+ Dropdown,
+ DropdownProps,
+ DropdownElement,
+ DropdownOption,
+} from './dropdown/dropdown.component';
+export { DropdownItemType } from './dropdown/droppdownItem.component';
+export {
+ Icon,
+ IconProps,
+ IconElement,
+} from './icon/icon.component';
+export {
+ IconRegistry,
+ IconRegistryProps,
+ IconRegistryElement,
+} from './icon/iconRegistry.component';
+export {
+ IconPack,
+ IconProvider,
+ Icons,
+} from './icon/service/type';
export {
Input,
InputProps,
@@ -79,6 +101,11 @@ export {
RadioGroupProps,
RadioGroupElement,
} from './radioGroup/radioGroup.component';
+export {
+ Spinner,
+ SpinnerProps,
+ SpinnerElement,
+} from './spinner/spinner.component';
export {
TabView,
TabViewProps,
diff --git a/src/framework/ui/input/input.component.tsx b/src/framework/ui/input/input.component.tsx
index dbc5293f2..31ee32dab 100644
--- a/src/framework/ui/input/input.component.tsx
+++ b/src/framework/ui/input/input.component.tsx
@@ -449,9 +449,13 @@ const styles = StyleSheet.create({
},
placeholder: {},
icon: {},
- label: {},
+ label: {
+ textAlign: 'left',
+ },
captionIcon: {},
- captionLabel: {},
+ captionLabel: {
+ textAlign: 'left',
+ },
});
export const Input = styled(InputComponent);
diff --git a/src/framework/ui/list/listItem.component.tsx b/src/framework/ui/list/listItem.component.tsx
index 80f861703..269881f31 100644
--- a/src/framework/ui/list/listItem.component.tsx
+++ b/src/framework/ui/list/listItem.component.tsx
@@ -382,8 +382,12 @@ const styles = StyleSheet.create({
flex: 1,
},
icon: {},
- title: {},
- description: {},
+ title: {
+ textAlign: 'left',
+ },
+ description: {
+ textAlign: 'left',
+ },
accessory: {},
});
diff --git a/src/framework/ui/popover/popoverView.component.tsx b/src/framework/ui/popover/popoverView.component.tsx
index a48473b9f..016aad322 100644
--- a/src/framework/ui/popover/popoverView.component.tsx
+++ b/src/framework/ui/popover/popoverView.component.tsx
@@ -18,6 +18,7 @@ import {
PopoverPlacements,
} from './type';
import { Arrow } from '../support/components';
+import { I18nLayoutService } from '../support/services';
interface ComponentProps {
placement?: string | PopoverPlacement;
@@ -61,16 +62,18 @@ export class PopoverView extends React.Component {
// Translate indicator by passed `indicatorOffset`
// Reverse if needed
+
let indicatorTranslate: number = isVertical ? -this.props.indicatorOffset : this.props.indicatorOffset;
indicatorTranslate = isReverse ? -indicatorTranslate : indicatorTranslate;
+ const i18nVerticalIndicatorTranslate = I18nLayoutService.select(indicatorTranslate, -indicatorTranslate);
+ indicatorTranslate = isVertical ? i18nVerticalIndicatorTranslate : indicatorTranslate;
- const containerStyle: ViewStyle = {
+ const containerStyle: ViewStyle = I18nLayoutService.toI18nStyle({
flexDirection: direction,
- alignItems: alignment,
transform: [
{ translateX: containerTranslate },
],
- };
+ });
const contentStyle: ViewStyle = {
backgroundColor: 'black',
@@ -94,7 +97,10 @@ export class PopoverView extends React.Component {
};
return {
- container: containerStyle,
+ container: {
+ ...containerStyle,
+ alignItems: alignment,
+ },
content: contentStyle,
indicator: indicatorStyle,
};
diff --git a/src/framework/ui/popover/type.ts b/src/framework/ui/popover/type.ts
index c4854f381..3f904b6a7 100644
--- a/src/framework/ui/popover/type.ts
+++ b/src/framework/ui/popover/type.ts
@@ -9,6 +9,7 @@ import {
StyleProp,
StyleSheet,
} from 'react-native';
+import { I18nLayoutService } from '../support/services';
export class Point {
@@ -291,8 +292,13 @@ export class PopoverPlacements {
frame(options: PlacementOptions): Frame {
const { origin, size } = options.source.leftOf(options.other).centerVerticalOf(options.other);
- return new Frame(
+ const x: number = I18nLayoutService.select(
origin.x + options.offsets.left,
+ options.bounds.size.width - size.width - (origin.x + options.offsets.right),
+ );
+
+ return new Frame(
+ x,
origin.y,
size.width,
size.height,
@@ -323,7 +329,7 @@ export class PopoverPlacements {
}
fits(frame: Frame, other: Frame): boolean {
- return fitsLeft(frame, other) && fitsTop(frame, other) && fitsBottom(frame, other);
+ return fitsStart(frame, other) && fitsTop(frame, other) && fitsBottom(frame, other);
}
};
@@ -409,8 +415,14 @@ export class PopoverPlacements {
frame(options: PlacementOptions): Frame {
const { origin, size } = options.source.topOf(options.other).centerHorizontalOf(options.other);
- return new Frame(
+
+ const x: number = I18nLayoutService.select(
origin.x,
+ options.bounds.size.width - (origin.x + size.width),
+ );
+
+ return new Frame(
+ x,
origin.y + options.offsets.top,
size.width,
size.height,
@@ -527,8 +539,13 @@ export class PopoverPlacements {
frame(options: PlacementOptions): Frame {
const { origin, size } = options.source.rightOf(options.other).centerVerticalOf(options.other);
- return new Frame(
+ const x: number = I18nLayoutService.select(
origin.x - options.offsets.right,
+ options.bounds.size.width - size.width - (origin.x - options.offsets.right),
+ );
+
+ return new Frame(
+ x,
origin.y,
size.width,
size.height,
@@ -559,7 +576,7 @@ export class PopoverPlacements {
}
fits(frame: Frame, other: Frame): boolean {
- return fitsRight(frame, other) && fitsTop(frame, other) && fitsBottom(frame, other);
+ return fitsEnd(frame, other) && fitsTop(frame, other) && fitsBottom(frame, other);
}
};
@@ -645,8 +662,13 @@ export class PopoverPlacements {
frame(options: PlacementOptions): Frame {
const { origin, size } = options.source.bottomOf(options.other).centerHorizontalOf(options.other);
- return new Frame(
+ const x: number = I18nLayoutService.select(
origin.x,
+ options.bounds.size.width - (origin.x + size.width),
+ );
+
+ return new Frame(
+ x,
origin.y - options.offsets.bottom,
size.width,
size.height,
@@ -799,6 +821,14 @@ export class PopoverPlacements {
}
}
+const fitsStart = (frame: Frame, other: Frame): boolean => {
+ return I18nLayoutService.select(fitsLeft, fitsRight)(frame, other);
+};
+
+const fitsEnd = (frame: Frame, other: Frame): boolean => {
+ return I18nLayoutService.select(fitsRight, fitsLeft)(frame, other);
+};
+
const fitsLeft = (frame: Frame, other: Frame): boolean => {
return frame.origin.x >= other.origin.x;
};
diff --git a/src/framework/ui/spinner/animation.ts b/src/framework/ui/spinner/animation.ts
new file mode 100644
index 000000000..18f0b3da2
--- /dev/null
+++ b/src/framework/ui/spinner/animation.ts
@@ -0,0 +1,165 @@
+import {
+ Animated,
+ Easing,
+ EasingFunction,
+ ViewStyle,
+} from 'react-native';
+import {
+ Animation,
+ AnimationConfig,
+} from '../animation/animation';
+
+const PI: number = 180;
+const PI2: number = 360;
+const OFFSET_MIN: number = PI / 12;
+const OFFSET_MAX: number = PI / 6;
+
+const BaseBezierEasing: EasingFunction = Easing.bezier(0.4, 0.0, 0.7, 1.0);
+
+const StartArcEasing: EasingFunction = (progress: number): number => {
+ return -PI + OFFSET_MIN + (PI - OFFSET_MAX) * BaseBezierEasing(progress);
+};
+
+const EndArcEasing: EasingFunction = (progress: number): number => {
+ return PI2 - OFFSET_MIN + (-PI + OFFSET_MAX) * BaseBezierEasing(progress);
+};
+
+const DEFAULT_CONFIG: SpinnerAnimationConfig = {
+ duration: 2400,
+ easing: Easing.linear,
+ cycles: -1,
+};
+
+type TimingAnimationConfig = Omit;
+
+export interface SpinnerAnimationStyle {
+ container: ViewStyle;
+ start: ViewStyle;
+ end: ViewStyle;
+}
+
+export type SpinnerAnimationConfig = AnimationConfig & TimingAnimationConfig;
+
+/**
+ * Animates a Spinner in a Material Design way.
+ *
+ * Thanks these guys for open sourcing the algorithm: https://github.com/n4kz/react-native-indicators
+ */
+export class SpinnerAnimation extends Animation {
+
+ private animationValue: Animated.Value;
+ private animationFrames: number[];
+ private arcSize: number;
+
+ protected get animation(): Animated.CompositeAnimation {
+ return Animated.timing(this.animationValue, { toValue: 1.0, ...this.config });
+ }
+
+ constructor(arcSize: number, config?: SpinnerAnimationConfig) {
+ super({ ...DEFAULT_CONFIG, ...config });
+ this.arcSize = arcSize;
+ this.animationValue = new Animated.Value(0);
+ this.animationFrames = this.createFrameRange(this.config.duration);
+ }
+
+ public start(callback?: Animated.EndCallback) {
+ // reset animation value before the next animation cycle
+ this.animationValue.setValue(0);
+ super.start(callback);
+ }
+
+ public stop() {
+ super.stop();
+ this.animationValue.setValue(0);
+ }
+
+ /**
+ * @returns {SpinnerAnimationStyle} - an object that contains container, start and end arcs transform styles.
+ */
+ public toProps(): SpinnerAnimationStyle {
+ const containerInterpolation: Animated.AnimatedInterpolation = this.createContainerInterpolation();
+ const startArcInterpolation: Animated.AnimatedInterpolation = this.createArcInterpolation(StartArcEasing);
+ const endArcInterpolation: Animated.AnimatedInterpolation = this.createArcInterpolation(EndArcEasing);
+
+ return {
+ container: this.toStyleTransformProp(containerInterpolation),
+ start: this.toStyleTransformProp(startArcInterpolation),
+ end: this.toStyleTransformProp(endArcInterpolation, {
+ transform: [{ translateY: -this.arcSize / 2 }],
+ }),
+ };
+ }
+
+ /**
+ * @param {number} duration - animation duration.
+ * @returns an array of frames fitted into animation.
+ */
+ private createFrameRange = (duration: number): number[] => {
+ const numberOfFrames: number = 60 * duration / 1000;
+
+ return new Array(numberOfFrames).fill(0);
+ };
+
+ private createContainerInterpolation = (): Animated.AnimatedInterpolation => {
+ return this.animationValue.interpolate({
+ inputRange: [0, 1],
+ outputRange: [
+ this.toDegValue(OFFSET_MAX + OFFSET_MIN),
+ this.toDegValue((2 * PI2 + OFFSET_MAX + OFFSET_MIN)),
+ ],
+ });
+ };
+
+ private createArcInterpolation = (easing: EasingFunction): Animated.AnimatedInterpolation => {
+ return this.animationValue.interpolate({
+ inputRange: this.createArcInterpolationInputRange(),
+ outputRange: this.createArcInterpolationOutputRange(easing),
+ });
+ };
+
+ /**
+ * Maps the animation frames into initial animation values specific for each frame.
+ *
+ * @returns a container interpolation input range in a numeric format.
+ */
+ private createArcInterpolationInputRange = (): number[] => {
+ return this.animationFrames.map((item: number, frame: number): number => {
+ return frame / (this.animationFrames.length - 1);
+ });
+ };
+
+ /**
+ * Maps the animation frames into a final animation values specific for each frame.
+ *
+ * @param {(progress: number) => number} easing - Easing function specific for the arc.
+ * @returns an arc interpolation end values eased with an `easing` function in a StyleSheet degree format.
+ */
+ private createArcInterpolationOutputRange = (easing: EasingFunction): string[] => {
+ return this.animationFrames.map((item: number, frame: number): string => {
+ const progress: number = 2 * frame / (this.animationFrames.length - 1);
+ const boundedProgress: number = Math.min(2.0 - progress, progress);
+
+ return this.toDegValue(easing(boundedProgress));
+ });
+ };
+
+ /**
+ * @param {Animated.AnimatedInterpolation} rotate - animated rotation animationValue.
+ * @param {ViewStyle} source - initial StyleSheet object.
+ * @returns a final StyleSheet object with a `rotate` animation value.
+ */
+ private toStyleTransformProp = (rotate: Animated.AnimatedInterpolation, source: ViewStyle = {}): ViewStyle => {
+ const transform = [...(source.transform || []), { rotate }];
+
+ // @ts-ignore: AnimatedInterpolation does not fit RotateTransform type declaration
+ return { ...source, transform };
+ };
+
+ /**
+ * @param {number} source - degrees in a numeric format.
+ * @returns degrees in a StyleSheet format.
+ */
+ private toDegValue = (source: number): string => {
+ return `${source}deg`;
+ };
+}
diff --git a/src/framework/ui/spinner/spinner.component.tsx b/src/framework/ui/spinner/spinner.component.tsx
new file mode 100644
index 000000000..732737aea
--- /dev/null
+++ b/src/framework/ui/spinner/spinner.component.tsx
@@ -0,0 +1,241 @@
+import React from 'react';
+import {
+ Animated,
+ StyleSheet,
+ View,
+ ViewProps,
+ ViewStyle,
+} from 'react-native';
+import {
+ styled,
+ StyledComponentProps,
+} from '@kitten/theme';
+import {
+ SpinnerAnimation,
+ SpinnerAnimationStyle,
+} from './animation';
+// TODO: Frame, Point, Size types should be refactored to common types
+import { Size } from '../popover/type';
+
+interface ArcElementStyle {
+ container: ViewStyle;
+ arc: ViewStyle;
+ overflow?: ViewStyle;
+}
+
+interface ComponentProps extends ViewProps {
+ animating?: boolean;
+ size?: string;
+ status?: string;
+}
+
+export type SpinnerProps = StyledComponentProps & ComponentProps;
+export type SpinnerElement = React.ReactElement;
+
+/**
+ * Styled Spinner component. Designed to be used as ActivityIndicator component
+ *
+ * @extends React.Component
+ *
+ * @property {boolean} animating - Determines whether component is animating. Default is `true`.
+ *
+ * @property {string} size - Determines the the component.
+ * Can be `giant`, `large`, `medium`, `small` or `tiny`.
+ * Default is `medium`.
+ *
+ * @property {string} status - Determines the status of the component.
+ * Can be `primary`, `success`, `info`, `warning` or `danger`.
+ * Default is `primary`.
+ *
+ * @overview-example Simple Usage
+ *
+ * ```
+ * import React from 'react';
+ * import { Spinner } from 'react-native-ui-kitten';
+ *
+ * export const SpinnerShowcase = () => (
+ *
+ * );
+ * ```
+ *
+ * @overview-example Loading Data
+ *
+ * ```
+ * import React from 'react';
+ * import { View, StyleSheet } from 'react-native';
+ * import { Spinner, List, ListItem } from 'react-native-ui-kitten';
+ *
+ * export class SpinnerDataLoading extends React.Component {
+ *
+ * state = {
+ * data: [],
+ * };
+ *
+ * componentDidMount() {
+ * setTimeout(this.loadData, 3000);
+ * }
+ *
+ * loadData = () => {
+ * const data = [
+ * {
+ * title: 'Item 1',
+ * },
+ * {
+ * title: 'Item 2',
+ * },
+ * {
+ * title: 'Item 3',
+ * },
+ * ];
+ * this.setState({ data });
+ * };
+ *
+ * private renderLoading = () => (
+ *
+ *
+ *
+ * );
+ *
+ * renderDataItem = ({ item }) => (
+ *
+ * );
+ *
+ * renderData = () => (
+ *
+ * );
+ *
+ * render() {
+ * const isLoaded: boolean = this.state.data.length > 0;
+ * return isLoaded ? this.renderData() : this.renderLoading();
+ * }
+ *}
+ *
+ * const styles = StyleSheet.create({
+ * loading: {
+ * flex: 1,
+ * justifyContent: 'center',
+ * alignItems: 'center',
+ * },
+ *});
+ *```
+ *
+ * @example Size
+ *
+ * ```
+ * import React from 'react';
+ * import { Spinner } from 'react-native-ui-kitten';
+ *
+ * export const GiantSpinner = () => (
+ *
+ * );
+ * ```
+ *
+ * @example Status
+ *
+ * ```
+ * import React from 'react';
+ * import { Spinner } from 'react-native-ui-kitten';
+ *
+ * export const DangerSpinner = () => (
+ *
+ * );
+ * ```
+ */
+export class SpinnerComponent extends React.PureComponent {
+
+ static styledComponentName: string = 'Spinner';
+
+ static defaultProps: Partial = {
+ animating: true,
+ };
+
+ private animation: SpinnerAnimation = new SpinnerAnimation(this.containerSize.height);
+
+ private get containerSize(): Size {
+ const { width, height } = StyleSheet.flatten([this.props.themedStyle, this.props.style]);
+ // @ts-ignore: width and height are restricted to be a number
+ return new Size(width, height);
+ }
+
+ public componentDidMount() {
+ if (this.props.animating) {
+ this.startAnimation();
+ }
+ }
+
+ public componentDidUpdate(prevProps: SpinnerProps) {
+ const animatingChanged: boolean = this.props.animating !== prevProps.animating;
+
+ if (animatingChanged && this.props.animating) {
+ this.startAnimation();
+ }
+
+ if (animatingChanged && !this.props.animating) {
+ this.stopAnimation();
+ }
+ }
+
+ public componentWillUnmount() {
+ this.animation.release();
+ }
+
+ private startAnimation = () => {
+ this.animation.start();
+ };
+
+ private stopAnimation = () => {
+ this.animation.stop();
+ };
+
+ private getComponentStyle = (source: SpinnerAnimationStyle) => {
+ const start: ArcElementStyle = {
+ container: source.container,
+ arc: source.start,
+ };
+
+ const end: ArcElementStyle = {
+ container: source.container,
+ arc: source.end,
+ overflow: { top: this.containerSize.height / 2 },
+ };
+
+ return { start, end };
+ };
+
+ private renderArcElement = (style: ArcElementStyle, size: Size): React.ReactElement => {
+ const arcSize: Size = new Size(size.width, size.height / 2);
+
+ return (
+
+
+
+
+
+
+
+
+
+ );
+ };
+
+ public render(): React.ReactElement {
+ const containerSize: Size = this.containerSize;
+ const { start, end } = this.getComponentStyle(this.animation.toProps());
+
+ return (
+
+ {this.renderArcElement(start, containerSize)}
+ {this.renderArcElement(end, containerSize)}
+
+ );
+ }
+}
+
+const styles = StyleSheet.create({
+ absolute: StyleSheet.absoluteFillObject,
+ noOverflow: {
+ overflow: 'hidden',
+ },
+});
+
+export const Spinner = styled(SpinnerComponent);
diff --git a/src/framework/ui/support/components/checkmark/checkmark.component.tsx b/src/framework/ui/support/components/checkmark/checkmark.component.tsx
index d4947aa3c..45b172765 100644
--- a/src/framework/ui/support/components/checkmark/checkmark.component.tsx
+++ b/src/framework/ui/support/components/checkmark/checkmark.component.tsx
@@ -6,6 +6,7 @@ import {
ViewProps,
} from 'react-native';
import { StyleType } from '@kitten/theme';
+import { I18nLayoutService } from '../../services';
interface ComponentProps {
isAnimated?: boolean;
@@ -58,24 +59,25 @@ export class CheckMark extends React.Component {
return (
-
-
+
+
);
}
}
const styles = StyleSheet.create({
- container: {
+ container: I18nLayoutService.toI18nStyle({
+ flexDirection: 'row',
transform: [{ rotate: '-5deg' }],
- },
+ }),
shape: {
position: 'absolute',
},
left: {
- transform: [{ rotate: '-40deg' }, { translateY: 1 }],
+ transform: [{ rotate: '-40deg' }],
},
right: {
- transform: [{ rotate: '40deg' }, { translateY: 1 }],
+ transform: [{ rotate: '40deg' }],
},
});
diff --git a/src/framework/ui/support/components/chevron/chevron.component.tsx b/src/framework/ui/support/components/chevron/chevron.component.tsx
new file mode 100644
index 000000000..a6a332837
--- /dev/null
+++ b/src/framework/ui/support/components/chevron/chevron.component.tsx
@@ -0,0 +1,114 @@
+import React from 'react';
+import {
+ View,
+ Animated,
+ StyleSheet,
+ ViewProps,
+} from 'react-native';
+import { StyleType } from '@kitten/theme';
+
+export type ChevronDirection = 'top' | 'bottom' | 'left' | 'right';
+
+interface ComponentProps {
+ isAnimated?: boolean;
+ direction?: ChevronDirection;
+ animationStyle?: StyleType;
+}
+
+export type ChevronProps = ViewProps & ComponentProps;
+export type ChevronElement = React.ReactElement;
+
+export class Chevron extends React.Component {
+
+ static defaultProps = {
+ isAnimated: false,
+ direction: 'bottom',
+ };
+
+ private getDirectionStyle = (): StyleType => {
+ const { direction } = this.props;
+
+ switch (direction) {
+ case 'top':
+ return styles.containerTopRotate;
+ case 'right':
+ return styles.containerRightRotate;
+ case 'left':
+ return styles.containerLeftRotate;
+ default:
+ return null;
+ }
+ };
+
+ private getComponentStyle = (source: StyleType): StyleType => {
+ const {
+ width,
+ height,
+ tintColor: backgroundColor,
+ marginHorizontal,
+ } = source;
+
+ return {
+ container: {
+ width: width,
+ height: height,
+ marginHorizontal: marginHorizontal,
+ },
+ // the dependence of the variables was determined experimentally. Changes may be needed later.
+ shape: {
+ top: height * 0.25,
+ borderWidth: width * 0.06,
+ borderTopLeftRadius: height * 0.5,
+ borderTopRightRadius: height * 0.5,
+ borderBottomLeftRadius: height * 0.5,
+ borderBottomRightRadius: height * 0.5,
+ borderColor: backgroundColor,
+ backgroundColor: backgroundColor,
+ },
+ left: {
+ left: width * 0.28,
+ height: height * 0.45,
+ },
+ right: {
+ right: width * 0.28,
+ height: height * 0.45,
+ },
+ };
+ };
+
+ public render(): React.ReactNode {
+ const { style, isAnimated, animationStyle } = this.props;
+ const { container, shape, left, right } = this.getComponentStyle(StyleSheet.flatten(style));
+ const directionStyle: StyleType = this.getDirectionStyle();
+
+ const Component = isAnimated ? Animated.View : View;
+
+ return (
+
+
+
+
+ );
+ }
+}
+
+const styles = StyleSheet.create({
+ containerTopRotate: {
+ transform: [{ rotate: '180deg' }],
+ },
+ containerLeftRotate: {
+ transform: [{ rotate: '90deg' }],
+ },
+ containerRightRotate: {
+ transform: [{ rotate: '-90deg' }],
+ },
+ shape: {
+ position: 'absolute',
+ },
+ left: {
+ transform: [{ rotate: '-45deg' }, { translateY: 1 }],
+ },
+ right: {
+ transform: [{ rotate: '45deg' }, { translateY: 1 }],
+ },
+});
diff --git a/src/framework/ui/support/components/index.ts b/src/framework/ui/support/components/index.ts
index 987166763..699f42211 100644
--- a/src/framework/ui/support/components/index.ts
+++ b/src/framework/ui/support/components/index.ts
@@ -1,12 +1,21 @@
export {
Arrow,
ArrowProps,
+ ArrowElement,
} from './arrow/arrow.component';
export {
CheckMark,
CheckMarkProps,
+ CheckMarkElement,
} from './checkmark/checkmark.component';
export {
TabIndicator,
TabIndicatorProps,
+ TabIndicatorElement,
} from './tabIndicator/tabIndicator.component';
+export {
+ Chevron,
+ ChevronProps,
+ ChevronElement,
+ ChevronDirection,
+} from './chevron/chevron.component';
diff --git a/src/framework/ui/support/components/tabIndicator/tabIndicator.component.tsx b/src/framework/ui/support/components/tabIndicator/tabIndicator.component.tsx
index 74900272e..33c2f20fb 100644
--- a/src/framework/ui/support/components/tabIndicator/tabIndicator.component.tsx
+++ b/src/framework/ui/support/components/tabIndicator/tabIndicator.component.tsx
@@ -6,6 +6,7 @@ import {
ViewProps,
ViewStyle,
} from 'react-native';
+import { I18nLayoutService } from '../../services';
interface ComponentProps {
positions: number;
@@ -23,8 +24,8 @@ export class TabIndicator extends React.Component {
animationDuration: 200,
};
- private contentOffset: Animated.Value = new Animated.Value(0);
private indicatorWidth: number;
+ private contentOffset: Animated.Value = new Animated.Value(0);
public componentDidMount() {
this.contentOffset.addListener(this.onContentOffsetAnimationStateChanged);
@@ -37,10 +38,7 @@ export class TabIndicator extends React.Component {
public componentDidUpdate() {
const { selectedPosition: index } = this.props;
- this.scrollToIndex({
- index,
- animated: true,
- });
+ this.scrollToIndex({ index, animated: true });
}
public componentWillUnmount() {
@@ -86,7 +84,7 @@ export class TabIndicator extends React.Component {
const animationDuration: number = params.animated ? this.props.animationDuration : 0;
return Animated.timing(this.contentOffset, {
- toValue: params.offset,
+ toValue: I18nLayoutService.select(params.offset, -params.offset),
duration: animationDuration,
easing: Easing.linear,
});
diff --git a/src/framework/ui/support/services/i18n/i18nLayout.service.ts b/src/framework/ui/support/services/i18n/i18nLayout.service.ts
new file mode 100644
index 000000000..d3de97500
--- /dev/null
+++ b/src/framework/ui/support/services/i18n/i18nLayout.service.ts
@@ -0,0 +1,41 @@
+import {
+ I18nManager,
+ ViewStyle,
+} from 'react-native';
+import { I18nLayoutFlexMap } from './i18nLayoutFlexMap';
+import { I18nLayoutServiceType } from './type';
+
+class NativeI18nLayoutService implements I18nLayoutServiceType {
+
+ public isRTL(): boolean {
+ return I18nManager.isRTL;
+ }
+
+ public select(ltr: T, rtl): T {
+ return this.isRTL() ? rtl : ltr;
+ }
+
+ /**
+ * Iterates through I18nLayoutFlexMap and reverses style values if needed.
+ *
+ * @param {ViewStyle} source - style to convert
+ * @param {boolean} rtl - is layout currently in RTL mode (Needed for tests, because unable to mock this)
+ *
+ * @returns {ViewStyle} - style reversed to fit i18n
+ */
+ public toI18nStyle(source: ViewStyle, rtl: boolean = this.isRTL()): ViewStyle {
+ const i18nStyle: ViewStyle = Object.keys(I18nLayoutFlexMap).reduce((style: ViewStyle, prop: string): ViewStyle => {
+ const currentStyleValue = source[prop];
+ if (currentStyleValue) {
+ const i18nStyleValue = I18nLayoutFlexMap[prop].toI18n(currentStyleValue, rtl);
+ return { ...style, [prop]: i18nStyleValue };
+ }
+
+ return style;
+ }, {});
+
+ return { ...source, ...i18nStyle };
+ }
+}
+
+export const I18nLayoutService = new NativeI18nLayoutService();
diff --git a/src/framework/ui/support/services/i18n/i18nLayout.spec.ts b/src/framework/ui/support/services/i18n/i18nLayout.spec.ts
new file mode 100644
index 000000000..0b07f1bf6
--- /dev/null
+++ b/src/framework/ui/support/services/i18n/i18nLayout.spec.ts
@@ -0,0 +1,60 @@
+import { ViewStyle } from 'react-native';
+import { I18nLayoutService } from './i18nLayout.service';
+
+describe('@i18n-layout: service checks', () => {
+
+ it('* creates LTR style properly', () => {
+ const i18nStyle: ViewStyle = I18nLayoutService.toI18nStyle({
+ alignContent: 'flex-start',
+ alignItems: 'flex-end',
+ alignSelf: 'flex-start',
+ justifyContent: 'flex-end',
+ flexDirection: 'row',
+ flexWrap: 'wrap-reverse',
+ }, false);
+
+ expect(i18nStyle).toEqual({
+ alignContent: 'flex-start',
+ alignItems: 'flex-end',
+ alignSelf: 'flex-start',
+ justifyContent: 'flex-end',
+ flexDirection: 'row',
+ flexWrap: 'wrap-reverse',
+ });
+ });
+
+ it('* creates RTL style properly', () => {
+ const i18nStyle: ViewStyle = I18nLayoutService.toI18nStyle({
+ alignContent: 'flex-start',
+ alignItems: 'flex-end',
+ alignSelf: 'flex-start',
+ justifyContent: 'flex-end',
+ flexDirection: 'row',
+ flexWrap: 'wrap-reverse',
+ }, true);
+
+ expect(i18nStyle).toEqual({
+ alignContent: 'flex-end',
+ alignItems: 'flex-start',
+ alignSelf: 'flex-end',
+ justifyContent: 'flex-start',
+ flexDirection: 'row-reverse',
+ flexWrap: 'wrap',
+ });
+ });
+
+ it('* creates RTL style properly - partial', () => {
+ const i18nStyle: ViewStyle = I18nLayoutService.toI18nStyle({
+ alignItems: 'flex-end',
+ justifyContent: 'flex-end',
+ flexDirection: 'row',
+ }, true);
+
+ expect(i18nStyle).toEqual({
+ alignItems: 'flex-start',
+ justifyContent: 'flex-start',
+ flexDirection: 'row-reverse',
+ });
+ });
+
+});
diff --git a/src/framework/ui/support/services/i18n/i18nLayoutFlexMap.ts b/src/framework/ui/support/services/i18n/i18nLayoutFlexMap.ts
new file mode 100644
index 000000000..b1d916388
--- /dev/null
+++ b/src/framework/ui/support/services/i18n/i18nLayoutFlexMap.ts
@@ -0,0 +1,85 @@
+const FLEX_PREFIX: string = 'flex';
+const FLEX_ROW_PREFIX: string = 'row';
+const FLEX_WRAP_PREFIX: string = 'wrap';
+const FLEX_START_PREFIX: string = 'start';
+const FLEX_END_PREFIX: string = 'end';
+const FLEX_REVERSE_PREFIX: string = 'reverse';
+
+/**
+ * Works with FlexBox style properties that starts with `flex` and ends with `-start` or `-end`
+ *
+ * E.g justifyContent: flex-start
+ */
+const FlexStartEndMapper: I18nLayoutFlexMapper = {
+ toI18n(value: string, rtl: boolean): string {
+ if (!rtl || !value.startsWith(FLEX_PREFIX)) {
+ return value;
+ }
+
+ const isReverse: boolean = value.endsWith(FLEX_END_PREFIX);
+
+ if (isReverse) {
+ return `${FLEX_PREFIX}-${FLEX_START_PREFIX}`;
+ }
+
+ return `${FLEX_PREFIX}-${FLEX_END_PREFIX}`;
+ },
+};
+
+/**
+ * Works with FlexBox style properties that starts with `row` and optionally ends with `-reverse`
+ *
+ * E.g flexDirection: row-reverse
+ */
+const FlexRowMapper: I18nLayoutFlexMapper = {
+ toI18n(value: string, rtl: boolean): string {
+ if (!rtl || !value.startsWith(FLEX_ROW_PREFIX)) {
+ return value;
+ }
+
+ const isReverse: boolean = value.endsWith(FLEX_REVERSE_PREFIX);
+
+ if (isReverse) {
+ return FLEX_ROW_PREFIX;
+ }
+
+ return `${FLEX_ROW_PREFIX}-${FLEX_REVERSE_PREFIX}`;
+ },
+};
+
+/**
+ * Works with FlexBox style properties that starts with `wrap` and optionally ends with `-reverse`
+ *
+ * E.g flexWrap: wrap-reverse
+ */
+const FlexWrapMapper: I18nLayoutFlexMapper = {
+ toI18n(value: string, rtl: boolean): string {
+ if (!rtl || !value.startsWith(FLEX_WRAP_PREFIX)) {
+ return value;
+ }
+
+ const isReverse: boolean = value.endsWith(`-${FLEX_REVERSE_PREFIX}`);
+
+ if (isReverse) {
+ return FLEX_WRAP_PREFIX;
+ }
+
+ return `${FLEX_WRAP_PREFIX}-${FLEX_REVERSE_PREFIX}`;
+ },
+};
+
+/**
+ * Matches FlexBox style properties that can affect on Layout depending on LTR/RTL mode corresponding Mappers
+ */
+export const I18nLayoutFlexMap: { [key: string]: I18nLayoutFlexMapper } = {
+ alignContent: FlexStartEndMapper,
+ alignItems: FlexStartEndMapper,
+ alignSelf: FlexStartEndMapper,
+ justifyContent: FlexStartEndMapper,
+ flexDirection: FlexRowMapper,
+ flexWrap: FlexWrapMapper,
+};
+
+interface I18nLayoutFlexMapper {
+ toI18n(value: T, rtl: boolean): T;
+}
diff --git a/src/framework/ui/support/services/i18n/type.ts b/src/framework/ui/support/services/i18n/type.ts
new file mode 100644
index 000000000..5cdf64471
--- /dev/null
+++ b/src/framework/ui/support/services/i18n/type.ts
@@ -0,0 +1,20 @@
+import { ViewStyle } from 'react-native';
+
+export interface I18nLayoutServiceType {
+ /**
+ * Should return true if it is Right-to-Left layout
+ */
+ isRTL(): boolean;
+
+ /**
+ * Should select a value depending on current layout mode (LTR/RTL)
+ */
+ select(ltrValue: T, rtlValue: T): T;
+
+ /**
+ * Should convert flex-box value to an RTL one, ignoring RTL, e.g flex-start to flex-end
+ *
+ * @param {ViewStyle} source - style to convert
+ */
+ toI18nStyle(source: ViewStyle): ViewStyle;
+}
diff --git a/src/framework/ui/support/services/index.ts b/src/framework/ui/support/services/index.ts
index 44838ad43..3e521ad6a 100644
--- a/src/framework/ui/support/services/index.ts
+++ b/src/framework/ui/support/services/index.ts
@@ -1,6 +1,8 @@
export {
all,
allWithRest,
+ allWithPrefix,
} from './props.service';
+export { I18nLayoutService } from './i18n/i18nLayout.service';
export { isValidString } from './validation.service';
diff --git a/src/framework/ui/support/services/props.service.ts b/src/framework/ui/support/services/props.service.ts
index 88d9f8961..381b85f4d 100644
--- a/src/framework/ui/support/services/props.service.ts
+++ b/src/framework/ui/support/services/props.service.ts
@@ -1,3 +1,5 @@
+import { StyleType } from '@kitten/theme';
+
export interface Props {
[key: string]: any;
}
@@ -46,3 +48,22 @@ export function allWithRest(source: Props | undefined, from: string[]): AllWithR
return { ...allOf, rest: { ...rest, [prop]: source[prop] } };
}, {});
}
+
+/**
+ * Returns all styles with prefix
+ *
+ * @param {StyleType} source - Eva Styles
+ * @param {string} key - prefix
+ *
+ * @return {StyleType} - all styles with prefix
+ */
+export function allWithPrefix(source: StyleType, key: string): StyleType {
+ return Object.keys(source)
+ .filter((styleName: string) => styleName.includes(key))
+ .reduce((obj: StyleType, styleKey: string) => {
+ return {
+ ...obj,
+ [styleKey]: source[styleKey],
+ };
+ }, {});
+}
diff --git a/src/framework/ui/support/tests/mapping.json b/src/framework/ui/support/tests/mapping.json
index f4f6267d0..78dff736b 100644
--- a/src/framework/ui/support/tests/mapping.json
+++ b/src/framework/ui/support/tests/mapping.json
@@ -1144,6 +1144,356 @@
}
}
},
+ "Dropdown": {
+ "meta": {
+ "scope": "all",
+ "parameters": {
+ "controlMinWidth": {
+ "type": "number"
+ },
+ "controlMinHeight": {
+ "type": "number"
+ },
+ "controlPaddingHorizontal": {
+ "type": "number"
+ },
+ "controlPaddingVertical": {
+ "type": "number"
+ },
+ "controlBorderRadius": {
+ "type": "number"
+ },
+ "controlBorderColor": {
+ "type": "string"
+ },
+ "controlBorderWidth": {
+ "type": "number"
+ },
+ "controlBackgroundColor": {
+ "type": "string"
+ },
+ "placeholderMarginHorizontal": {
+ "type": "number"
+ },
+ "placeholderFontSize": {
+ "type": "number"
+ },
+ "placeholderLineHeight": {
+ "type": "number"
+ },
+ "placeholderFontWeight": {
+ "type": "string"
+ },
+ "placeholderColor": {
+ "type": "string"
+ },
+ "textMarginHorizontal": {
+ "type": "number"
+ },
+ "textFontSize": {
+ "type": "number"
+ },
+ "textLineHeight": {
+ "type": "number"
+ },
+ "textFontWeight": {
+ "type": "string"
+ },
+ "textColor": {
+ "type": "string"
+ },
+ "iconWidth": {
+ "type": "number"
+ },
+ "iconHeight": {
+ "type": "number"
+ },
+ "iconTintColor": {
+ "type": "string"
+ },
+ "iconMarginHorizontal": {
+ "type": "number"
+ },
+ "menuMaxHeight": {
+ "type": "number"
+ },
+ "menuBorderRadius": {
+ "type": "number"
+ },
+ "menuBorderColor": {
+ "type": "string"
+ },
+ "menuBorderWidth": {
+ "type": "number"
+ },
+ "labelColor": {
+ "type": "string"
+ },
+ "labelFontSize": {
+ "type": "number"
+ },
+ "labelLineHeight": {
+ "type": "number"
+ },
+ "labelFontWeight": {
+ "type": "string"
+ },
+ "labelMarginBottom": {
+ "type": "number"
+ },
+ "outlinePadding": {
+ "type": "number"
+ },
+ "outlineBorderRadius": {
+ "type": "number"
+ },
+ "outlineBackgroundColor": {
+ "type": "string"
+ }
+ },
+ "appearances": {
+ "default": {
+ "default": true
+ }
+ },
+ "variantGroups": {
+ "status": {
+ "primary": {
+ "default": true
+ },
+ "success": {
+ "default": false
+ },
+ "info": {
+ "default": false
+ },
+ "warning": {
+ "default": false
+ },
+ "danger": {
+ "default": false
+ }
+ }
+ },
+ "states": {
+ "disabled": {
+ "default": false,
+ "priority": 0,
+ "scope": "all"
+ },
+ "active": {
+ "default": false,
+ "priority": 1,
+ "scope": "all"
+ }
+ }
+ },
+ "appearances": {
+ "default": {
+ "mapping": {
+ "menuMaxHeight": 220,
+ "menuBorderRadius": 4,
+ "menuBorderColor": "border-basic-color-4",
+ "menuBorderWidth": 1,
+ "controlBorderRadius": 4,
+ "controlBorderWidth": 1,
+ "controlPaddingHorizontal": 8,
+ "controlBorderColor": "border-basic-color-3",
+ "controlBackgroundColor": "background-basic-color-2",
+ "controlMinHeight": 48,
+ "controlPaddingVertical": 7,
+ "placeholderMarginHorizontal": 8,
+ "placeholderColor": "text-hint-color",
+ "placeholderFontWeight": "text-paragraph-1-font-weight",
+ "placeholderFontSize": "text-subtitle-1-font-size",
+ "placeholderLineHeight": "text-paragraph-1-line-height",
+ "textMarginHorizontal": 8,
+ "textColor": "border-alternative-color-1",
+ "textFontWeight": "text-subtitle-1-font-weight",
+ "textFontSize": "text-subtitle-1-font-size",
+ "textLineHeight": "text-subtitle-1-line-height",
+ "iconWidth": 24,
+ "iconHeight": 24,
+ "iconMarginHorizontal": 8,
+ "iconTintColor": "text-hint-color",
+ "labelColor": "text-hint-color",
+ "labelMarginBottom": 4,
+ "outlineBackgroundColor": "transparent",
+ "outlinePadding": 4,
+ "outlineBorderRadius": 4,
+ "state": {
+ "active": {
+ "outlineBackgroundColor": "outline-color",
+ "controlBackgroundColor": "background-basic-color-1",
+ "iconTintColor": "border-alternative-color-1"
+ },
+ "disabled": {
+ "controlBorderColor": "border-basic-color-4",
+ "placeholderColor": "text-disabled-color",
+ "textColor": "text-disabled-color",
+ "iconTintColor": "icon-disabled-color"
+ }
+ }
+ },
+ "variantGroups": {
+ "status": {
+ "primary": {
+ "state": {
+ "active": {
+ "controlBorderColor": "color-primary-default"
+ }
+ }
+ },
+ "success": {
+ "state": {
+ "active": {
+ "controlBorderColor": "color-success-default"
+ }
+ }
+ },
+ "info": {
+ "state": {
+ "active": {
+ "controlBorderColor": "color-info-default"
+ }
+ }
+ },
+ "warning": {
+ "state": {
+ "active": {
+ "controlBorderColor": "color-warning-default"
+ }
+ }
+ },
+ "danger": {
+ "state": {
+ "active": {
+ "controlBorderColor": "color-danger-default"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "DropdownItem": {
+ "meta": {
+ "scope": "all",
+ "parameters": {
+ "paddingVertical": {
+ "type": "number"
+ },
+ "paddingHorizontal": {
+ "type": "number"
+ },
+ "backgroundColor": {
+ "type": "string"
+ },
+ "multiSelectBackgroundColor": {
+ "type": "string"
+ },
+ "multiSelectTextColor": {
+ "type": "string"
+ },
+ "textMarginHorizontal": {
+ "type": "number"
+ },
+ "textFontSize": {
+ "type": "number"
+ },
+ "textLineHeight": {
+ "type": "number"
+ },
+ "textFontWeight": {
+ "type": "string"
+ },
+ "textColor": {
+ "type": "string"
+ }
+ },
+ "appearances": {
+ "default": {
+ "default": true
+ }
+ },
+ "variantGroups": {},
+ "states": {
+ "disabled": {
+ "default": false,
+ "priority": 0,
+ "scope": "all"
+ },
+ "active": {
+ "default": false,
+ "priority": 1,
+ "scope": "all"
+ },
+ "selected": {
+ "default": false,
+ "priority": 2,
+ "scope": "all"
+ }
+ }
+ },
+ "appearances": {
+ "default": {
+ "mapping": {
+ "paddingHorizontal": 8,
+ "paddingVertical": 8,
+ "textMarginHorizontal": 8,
+ "backgroundColor": "background-basic-color-1",
+ "multiSelectBackgroundColor": "background-basic-color-1",
+ "multiSelectTextColor": "background-alternative-color-1",
+ "textFontSize": "text-subtitle-1-font-size",
+ "textFontWeight": "text-subtitle-1-font-weight",
+ "textLineHeight": "text-subtitle-2-line-height",
+ "textColor": "background-alternative-color-1",
+ "state": {
+ "active": {
+ "backgroundColor": "background-basic-color-2"
+ },
+ "selected": {
+ "textColor": "text-alternate-color",
+ "backgroundColor": "color-primary-default"
+ },
+ "disabled": {
+ "textColor": "text-hint-color",
+ "multiSelectTextColor": "text-hint-color"
+ }
+ }
+ }
+ }
+ }
+ },
+ "DropdownGroup": {
+ "meta": {
+ "scope": "all",
+ "parameters": {
+ "backgroundColor": {
+ "type": "string"
+ },
+ "itemPaddingLeft": {
+ "type": "number"
+ }
+ },
+ "appearances": {
+ "default": {
+ "default": true
+ }
+ },
+ "variantGroups": {},
+ "states": {}
+ },
+ "appearances": {
+ "default": {
+ "mapping": {
+ "backgroundColor": "background-basic-color-1",
+ "itemPaddingLeft": 20
+ }
+ }
+ }
+ },
"Input": {
"meta": {
"scope": "all",
diff --git a/src/framework/ui/support/typings/index.ts b/src/framework/ui/support/typings/index.ts
index 59b57c1b7..e2cab34b8 100644
--- a/src/framework/ui/support/typings/index.ts
+++ b/src/framework/ui/support/typings/index.ts
@@ -8,4 +8,5 @@ export {
Omit,
TouchableIndexedProps,
ModalPresentingBased,
+ TouchableTypeReturningProps,
} from './type';
diff --git a/src/framework/ui/support/typings/type.ts b/src/framework/ui/support/typings/type.ts
index 3d2641013..c5cb3d59e 100644
--- a/src/framework/ui/support/typings/type.ts
+++ b/src/framework/ui/support/typings/type.ts
@@ -3,6 +3,7 @@ import {
GestureResponderEvent,
NativeScrollEvent,
NativeSyntheticEvent,
+ TargetedEvent,
TextInputFocusEventData,
TouchableOpacityProps,
} from 'react-native';
@@ -17,8 +18,16 @@ export type TouchableIndexedProps = Override void;
}>;
+export type TouchableTypeReturningProps = Override void;
+ onPressIn?: (item: T, event: GestureResponderEvent) => void;
+ onPressOut?: (item: T, event: GestureResponderEvent) => void;
+ onLongPress?: (item: T, event: GestureResponderEvent) => void;
+}>;
+
export type ScrollEvent = NativeSyntheticEvent;
export type InputFocusEvent = NativeSyntheticEvent;
+export type TouchableFocusEvent = NativeSyntheticEvent;
export interface ModalPresentingBased {
children?: React.ReactNode;
diff --git a/src/framework/ui/toggle/toggle.component.tsx b/src/framework/ui/toggle/toggle.component.tsx
index dd29e43ed..4871a00ca 100644
--- a/src/framework/ui/toggle/toggle.component.tsx
+++ b/src/framework/ui/toggle/toggle.component.tsx
@@ -25,6 +25,7 @@ import {
styled,
} from '@kitten/theme';
import { CheckMark } from '../support/components';
+import { I18nLayoutService } from '../support/services';
interface ComponentProps {
checked?: boolean;
@@ -286,7 +287,7 @@ export class ToggleComponent extends React.Component implements Pan
this.thumbTranslateAnimationActive = true;
Animated.timing(this.thumbTranslateAnimation, {
- toValue: value,
+ toValue: I18nLayoutService.select(value, -value),
duration: 150,
easing: Easing.linear,
}).start(() => {
@@ -358,7 +359,7 @@ export class ToggleComponent extends React.Component implements Pan
-
+
implements Pan
-
+
;
type ChildrenProp = ChildElement | ChildElement[];
@@ -160,7 +161,8 @@ export class ViewPager extends React.Component implements PanRes
const isHorizontalMove: boolean = Math.abs(state.dx) > 0 && Math.abs(state.dx) > Math.abs(state.dy);
if (isHorizontalMove) {
- const nextSelectedIndex: number = this.props.selectedIndex - Math.sign(state.dx);
+ const i18nOffset: number = I18nLayoutService.select(state.dx, -state.dx);
+ const nextSelectedIndex: number = this.props.selectedIndex - Math.sign(i18nOffset);
return nextSelectedIndex >= 0 && nextSelectedIndex < this.getChildCount();
}
@@ -169,14 +171,16 @@ export class ViewPager extends React.Component implements PanRes
};
public onPanResponderMove = (event: GestureResponderEvent, state: PanResponderGestureState) => {
- const selectedPageOffset: number = this.props.selectedIndex * this.contentWidth;
+ const i18nOffset: number = I18nLayoutService.select(this.contentWidth, -this.contentWidth);
+ const selectedPageOffset: number = this.props.selectedIndex * i18nOffset;
this.contentOffset.setValue(state.dx - selectedPageOffset);
};
public onPanResponderRelease = (event: GestureResponderEvent, state: PanResponderGestureState) => {
if (Math.abs(state.vx) >= 0.5 || Math.abs(state.dx) >= 0.5 * this.contentWidth) {
- const index: number = state.dx > 0 ? this.props.selectedIndex - 1 : this.props.selectedIndex + 1;
+ const i18nOffset: number = I18nLayoutService.select(state.dx, -state.dx);
+ const index: number = i18nOffset > 0 ? this.props.selectedIndex - 1 : this.props.selectedIndex + 1;
this.scrollToIndex({ index, animated: true });
} else {
const index: number = this.props.selectedIndex;
@@ -204,7 +208,7 @@ export class ViewPager extends React.Component implements PanRes
};
private onContentOffsetAnimationStateChanged = (state: { value: number }) => {
- this.contentOffsetValue = -state.value;
+ this.contentOffsetValue = I18nLayoutService.select(-state.value, state.value);
if (this.props.onOffsetChange) {
this.props.onOffsetChange(this.contentOffsetValue);
@@ -223,7 +227,7 @@ export class ViewPager extends React.Component implements PanRes
const animationDuration: number = params.animated ? 300 : 0;
return Animated.timing(this.contentOffset, {
- toValue: -params.offset,
+ toValue: I18nLayoutService.select(-params.offset, params.offset),
easing: Easing.linear,
duration: animationDuration,
});
diff --git a/src/playground/app.json b/src/playground/app.json
index 3b8677123..6e45500f5 100644
--- a/src/playground/app.json
+++ b/src/playground/app.json
@@ -3,7 +3,7 @@
"name": "react-native-ui-kitten-playground",
"description": "react-native-ui-kitten-playground",
"slug": "playground",
- "sdkVersion": "33.0.0",
+ "sdkVersion": "34.0.0",
"platforms": [
"android",
"ios",
diff --git a/src/playground/babel.config.js b/src/playground/babel.config.js
index 597cf4eb7..13b158039 100644
--- a/src/playground/babel.config.js
+++ b/src/playground/babel.config.js
@@ -1,19 +1,31 @@
const path = require('path');
const Config = require('../../config');
-// FIXME: Resolve `transform[stderr]: Could not resolve` command-line warnings.
-// FIXME: Reproducible when starting with clearing cache (npm start -- -c)
-//
-// TODO: Framework path aliasing even not needed here. Replace?
-// TODO: Replace nested package.json-s with aliases
+/**
+ * UI Kitten modules aliases.
+ * Allows importing framework modules into playground
+ */
+const moduleAliases = {
+ 'react-native-ui-kitten': path.resolve(__dirname, '../framework'),
+ '@kitten/theme': path.resolve(__dirname, '../framework/theme'),
+ '@kitten/ui': path.resolve(__dirname, '../framework/ui'),
+ '@ui-kitten/eva-icons': path.resolve(__dirname, '../eva-icons'),
+};
+
+/**
+ * Eva modules aliases.
+ * Allows importing Eva modules into playground depending on environment
+ */
+const evaAliases = {
+ '@eva-design/processor': path.resolve(Config.PROCESSOR_PATH),
+ '@eva-design/eva': path.resolve(Config.MAPPING_PATH),
+};
const moduleResolverConfig = {
root: path.resolve('./'),
alias: {
- '@kitten/theme': path.resolve(Config.KITTEN_PATH, 'theme'),
- '@kitten/ui': path.resolve(Config.KITTEN_PATH, 'ui'),
- '@eva-design/eva': path.resolve(Config.MAPPING_PATH),
- '@eva-design/processor': path.resolve(Config.PROCESSOR_PATH),
+ ...evaAliases,
+ ...moduleAliases,
},
};
diff --git a/src/playground/metro.config.js b/src/playground/metro.config.js
index 79614b7c0..b6f7943ab 100644
--- a/src/playground/metro.config.js
+++ b/src/playground/metro.config.js
@@ -1,28 +1,55 @@
const path = require('path');
const Config = require('../../config');
+/**
+ * Resolves Eva modules Haste Map
+ */
+const evaFolders = [
+ path.resolve(Config.MAPPING_PATH),
+ path.resolve(Config.PROCESSOR_PATH),
+];
+
+/**
+ * Resolves UI Kitten modules Haste Map
+ */
+const moduleFolders = [
+ path.resolve(__dirname, '../framework'),
+ path.resolve(__dirname, '../framework/theme'),
+ path.resolve(__dirname, '../framework/ui'),
+ path.resolve(__dirname, '../eva-icons'),
+];
+
+/**
+ * Resolves Root Dependencies Haste Map
+ */
+const rootDependencyFolders = [
+ path.resolve(__dirname, '../../node_modules/@babel'),
+ path.resolve(__dirname, '../../node_modules/hoist-non-react-statics'),
+ path.resolve(__dirname, '../../node_modules/react-is'),
+ path.resolve(__dirname, '../../node_modules/lodash.merge'),
+ path.resolve(__dirname, '../../node_modules/react-native-eva-icons'),
+ path.resolve(__dirname, '../../node_modules/react-native-svg'),
+];
+
+/**
+ * Resolves Playground Dependencies Haste Map
+ */
+const playgroundExtraModules = {
+ '@babel/runtime': path.resolve(__dirname, './node_modules/@babel/runtime'),
+ 'react': path.resolve(__dirname, './node_modules/react'),
+ 'react-native': path.resolve(__dirname, './node_modules/react-native'),
+};
+
module.exports = {
resolver: {
- sourceExts: [
- 'js',
- 'ts',
- 'tsx',
- ],
extraNodeModules: {
- '@babel/runtime': path.resolve(__dirname, './node_modules/@babel/runtime'),
- 'react': path.resolve(__dirname, './node_modules/react'),
- 'react-native': path.resolve(__dirname, './node_modules/react-native'),
+ ...playgroundExtraModules
},
},
projectRoot: path.resolve(__dirname),
watchFolders: [
- path.resolve(Config.KITTEN_PATH, 'theme'),
- path.resolve(Config.KITTEN_PATH, 'ui'),
- path.resolve(Config.MAPPING_PATH),
- path.resolve(Config.PROCESSOR_PATH),
- path.resolve(__dirname, '../../node_modules/@babel'),
- path.resolve(__dirname, '../../node_modules/hoist-non-react-statics'),
- path.resolve(__dirname, '../../node_modules/react-is'),
- path.resolve(__dirname, '../../node_modules/lodash.merge'),
+ ...evaFolders,
+ ...moduleFolders,
+ ...rootDependencyFolders,
],
};
diff --git a/src/playground/package-lock.json b/src/playground/package-lock.json
index 7cdb949d3..a220c4023 100644
--- a/src/playground/package-lock.json
+++ b/src/playground/package-lock.json
@@ -4,42 +4,42 @@
"lockfileVersion": 1,
"dependencies": {
"@babel/code-frame": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz",
- "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz",
+ "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==",
"requires": {
"@babel/highlight": "^7.0.0"
}
},
"@babel/core": {
- "version": "7.4.5",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.4.5.tgz",
- "integrity": "sha512-OvjIh6aqXtlsA8ujtGKfC7LYWksYSX8yQcM8Ay3LuvVeQ63lcOKgoZWVqcpFwkd29aYU9rVx7jxhfhiEDV9MZA==",
- "requires": {
- "@babel/code-frame": "^7.0.0",
- "@babel/generator": "^7.4.4",
- "@babel/helpers": "^7.4.4",
- "@babel/parser": "^7.4.5",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.5.5.tgz",
+ "integrity": "sha512-i4qoSr2KTtce0DmkuuQBV4AuQgGPUcPXMr9L5MyYAtk06z068lQ10a4O009fe5OB/DfNV+h+qqT7ddNV8UnRjg==",
+ "requires": {
+ "@babel/code-frame": "^7.5.5",
+ "@babel/generator": "^7.5.5",
+ "@babel/helpers": "^7.5.5",
+ "@babel/parser": "^7.5.5",
"@babel/template": "^7.4.4",
- "@babel/traverse": "^7.4.5",
- "@babel/types": "^7.4.4",
+ "@babel/traverse": "^7.5.5",
+ "@babel/types": "^7.5.5",
"convert-source-map": "^1.1.0",
"debug": "^4.1.0",
"json5": "^2.1.0",
- "lodash": "^4.17.11",
+ "lodash": "^4.17.13",
"resolve": "^1.3.2",
"semver": "^5.4.1",
"source-map": "^0.5.0"
}
},
"@babel/generator": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.4.4.tgz",
- "integrity": "sha512-53UOLK6TVNqKxf7RUh8NE851EHRxOOeVXKbK2bivdb+iziMyk03Sr4eaE9OELCbyZAAafAKPDwF2TPUES5QbxQ==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.5.5.tgz",
+ "integrity": "sha512-ETI/4vyTSxTzGnU2c49XHv2zhExkv9JHLTwDAFz85kmcwuShvYG2H08FwgIguQf4JC75CBnXAUM5PqeF4fj0nQ==",
"requires": {
- "@babel/types": "^7.4.4",
+ "@babel/types": "^7.5.5",
"jsesc": "^2.5.1",
- "lodash": "^4.17.11",
+ "lodash": "^4.17.13",
"source-map": "^0.5.0",
"trim-right": "^1.0.1"
}
@@ -81,26 +81,26 @@
}
},
"@babel/helper-create-class-features-plugin": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.4.4.tgz",
- "integrity": "sha512-UbBHIa2qeAGgyiNR9RszVF7bUHEdgS4JAUNT8SiqrAN6YJVxlOxeLr5pBzb5kan302dejJ9nla4RyKcR1XT6XA==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.5.5.tgz",
+ "integrity": "sha512-ZsxkyYiRA7Bg+ZTRpPvB6AbOFKTFFK4LrvTet8lInm0V468MWCaSYJE+I7v2z2r8KNLtYiV+K5kTCnR7dvyZjg==",
"requires": {
"@babel/helper-function-name": "^7.1.0",
- "@babel/helper-member-expression-to-functions": "^7.0.0",
+ "@babel/helper-member-expression-to-functions": "^7.5.5",
"@babel/helper-optimise-call-expression": "^7.0.0",
"@babel/helper-plugin-utils": "^7.0.0",
- "@babel/helper-replace-supers": "^7.4.4",
+ "@babel/helper-replace-supers": "^7.5.5",
"@babel/helper-split-export-declaration": "^7.4.4"
}
},
"@babel/helper-define-map": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.4.4.tgz",
- "integrity": "sha512-IX3Ln8gLhZpSuqHJSnTNBWGDE9kdkTEWl21A/K7PQ00tseBwbqCHTvNLHSBd9M0R5rER4h5Rsvj9vw0R5SieBg==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz",
+ "integrity": "sha512-fTfxx7i0B5NJqvUOBBGREnrqbTxRh7zinBANpZXAVDlsZxYdclDp467G1sQ8VZYMnAURY3RpBUAgOYT9GfzHBg==",
"requires": {
"@babel/helper-function-name": "^7.1.0",
- "@babel/types": "^7.4.4",
- "lodash": "^4.17.11"
+ "@babel/types": "^7.5.5",
+ "lodash": "^4.17.13"
}
},
"@babel/helper-explode-assignable-expression": {
@@ -139,11 +139,11 @@
}
},
"@babel/helper-member-expression-to-functions": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz",
- "integrity": "sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz",
+ "integrity": "sha512-5qZ3D1uMclSNqYcXqiHoA0meVdv+xUEex9em2fqMnrk/scphGlGgg66zjMrPJESPwrFJ6sbfFQYUSa0Mz7FabA==",
"requires": {
- "@babel/types": "^7.0.0"
+ "@babel/types": "^7.5.5"
}
},
"@babel/helper-module-imports": {
@@ -155,16 +155,16 @@
}
},
"@babel/helper-module-transforms": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.4.4.tgz",
- "integrity": "sha512-3Z1yp8TVQf+B4ynN7WoHPKS8EkdTbgAEy0nU0rs/1Kw4pDgmvYH3rz3aI11KgxKCba2cn7N+tqzV1mY2HMN96w==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz",
+ "integrity": "sha512-jBeCvETKuJqeiaCdyaheF40aXnnU1+wkSiUs/IQg3tB85up1LyL8x77ClY8qJpuRJUcXQo+ZtdNESmZl4j56Pw==",
"requires": {
"@babel/helper-module-imports": "^7.0.0",
"@babel/helper-simple-access": "^7.1.0",
"@babel/helper-split-export-declaration": "^7.4.4",
"@babel/template": "^7.4.4",
- "@babel/types": "^7.4.4",
- "lodash": "^4.17.11"
+ "@babel/types": "^7.5.5",
+ "lodash": "^4.17.13"
}
},
"@babel/helper-optimise-call-expression": {
@@ -181,11 +181,11 @@
"integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA=="
},
"@babel/helper-regex": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.4.4.tgz",
- "integrity": "sha512-Y5nuB/kESmR3tKjU8Nkn1wMGEx1tjJX076HBMeL3XLQCu6vA/YRzuTW0bbb+qRnXvQGn+d6Rx953yffl8vEy7Q==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.5.5.tgz",
+ "integrity": "sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw==",
"requires": {
- "lodash": "^4.17.11"
+ "lodash": "^4.17.13"
}
},
"@babel/helper-remap-async-to-generator": {
@@ -201,14 +201,14 @@
}
},
"@babel/helper-replace-supers": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.4.4.tgz",
- "integrity": "sha512-04xGEnd+s01nY1l15EuMS1rfKktNF+1CkKmHoErDppjAAZL+IUBZpzT748x262HF7fibaQPhbvWUl5HeSt1EXg==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz",
+ "integrity": "sha512-XvRFWrNnlsow2u7jXDuH4jDDctkxbS7gXssrP4q2nUD606ukXHRvydj346wmNg+zAgpFx4MWf4+usfC93bElJg==",
"requires": {
- "@babel/helper-member-expression-to-functions": "^7.0.0",
+ "@babel/helper-member-expression-to-functions": "^7.5.5",
"@babel/helper-optimise-call-expression": "^7.0.0",
- "@babel/traverse": "^7.4.4",
- "@babel/types": "^7.4.4"
+ "@babel/traverse": "^7.5.5",
+ "@babel/types": "^7.5.5"
}
},
"@babel/helper-simple-access": {
@@ -240,19 +240,19 @@
}
},
"@babel/helpers": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.4.4.tgz",
- "integrity": "sha512-igczbR/0SeuPR8RFfC7tGrbdTbFL3QTvH6D+Z6zNxnTe//GyqmtHmDkzrqDmyZ3eSwPqB/LhyKoU5DXsp+Vp2A==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.5.5.tgz",
+ "integrity": "sha512-nRq2BUhxZFnfEn/ciJuhklHvFOqjJUD5wpx+1bxUF2axL9C+v4DE/dmp5sT2dKnpOs4orZWzpAZqlCy8QqE/7g==",
"requires": {
"@babel/template": "^7.4.4",
- "@babel/traverse": "^7.4.4",
- "@babel/types": "^7.4.4"
+ "@babel/traverse": "^7.5.5",
+ "@babel/types": "^7.5.5"
}
},
"@babel/highlight": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz",
- "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==",
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz",
+ "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==",
"requires": {
"chalk": "^2.0.0",
"esutils": "^2.0.2",
@@ -260,9 +260,9 @@
}
},
"@babel/parser": {
- "version": "7.4.5",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.4.5.tgz",
- "integrity": "sha512-9mUqkL1FF5T7f0WDFfAoDdiMVPWsdD1gZYzSnaXsxUCUqzuch/8of9G3VUSNiZmMBoRxT3neyVsqeiL/ZPcjew=="
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.5.5.tgz",
+ "integrity": "sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g=="
},
"@babel/plugin-external-helpers": {
"version": "7.2.0",
@@ -283,11 +283,11 @@
}
},
"@babel/plugin-proposal-class-properties": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.4.4.tgz",
- "integrity": "sha512-WjKTI8g8d5w1Bc9zgwSz2nfrsNQsXcCf9J9cdCvrJV6RF56yztwm4TmJC0MgJ9tvwO9gUA/mcYe89bLdGfiXFg==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.5.5.tgz",
+ "integrity": "sha512-AF79FsnWFxjlaosgdi421vmYG6/jg79bVD0dpD44QdgobzHKuLZ6S3vl8la9qIeSwGi8i1fS0O1mfuDAAdo1/A==",
"requires": {
- "@babel/helper-create-class-features-plugin": "^7.4.4",
+ "@babel/helper-create-class-features-plugin": "^7.5.5",
"@babel/helper-plugin-utils": "^7.0.0"
}
},
@@ -301,10 +301,19 @@
"@babel/plugin-syntax-decorators": "^7.2.0"
}
},
+ "@babel/plugin-proposal-dynamic-import": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.5.0.tgz",
+ "integrity": "sha512-x/iMjggsKTFHYC6g11PL7Qy58IK8H5zqfm9e6hu4z1iH2IRyAp9u9dL80zA6R76yFovETFLKz2VJIC2iIPBuFw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-syntax-dynamic-import": "^7.2.0"
+ }
+ },
"@babel/plugin-proposal-export-default-from": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.2.0.tgz",
- "integrity": "sha512-NVfNe7F6nsasG1FnvcFxh2FN0l04ZNe75qTOAVOILWPam0tw9a63RtT/Dab8dPjedZa4fTQaQ83yMMywF9OSug==",
+ "version": "7.5.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.5.2.tgz",
+ "integrity": "sha512-wr9Itk05L1/wyyZKVEmXWCdcsp/e185WUNl6AfYZeEKYaUPPvHXRDqO5K1VH7/UamYqGJowFRuCv30aDYZawsg==",
"requires": {
"@babel/helper-plugin-utils": "^7.0.0",
"@babel/plugin-syntax-export-default-from": "^7.2.0"
@@ -329,9 +338,9 @@
}
},
"@babel/plugin-proposal-object-rest-spread": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.4.4.tgz",
- "integrity": "sha512-dMBG6cSPBbHeEBdFXeQ2QLc5gUpg4Vkaz8octD4aoW/ISO+jBOcsuxYL7bsb5WSu8RLP6boxrBIALEHgoHtO9g==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.5.5.tgz",
+ "integrity": "sha512-F2DxJJSQ7f64FyTVl5cw/9MWn6naXGdk3Q3UhDbFEEHv+EilCPoeRD3Zh/Utx1CJz4uyKlQ4uH+bJPbEhMV7Zw==",
"requires": {
"@babel/helper-plugin-utils": "^7.0.0",
"@babel/plugin-syntax-object-rest-spread": "^7.2.0"
@@ -478,9 +487,9 @@
}
},
"@babel/plugin-transform-async-to-generator": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.4.4.tgz",
- "integrity": "sha512-YiqW2Li8TXmzgbXw+STsSqPBPFnGviiaSp6CYOq55X8GQ2SGVLrXB6pNid8HkqkZAzOH6knbai3snhP7v0fNwA==",
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz",
+ "integrity": "sha512-mqvkzwIGkq0bEF1zLRRiTdjfomZJDV33AH3oQzHVGkI2VzEmXLpKKOBvEVaFZBJdN0XTyH38s9j/Kiqr68dggg==",
"requires": {
"@babel/helper-module-imports": "^7.0.0",
"@babel/helper-plugin-utils": "^7.0.0",
@@ -496,25 +505,25 @@
}
},
"@babel/plugin-transform-block-scoping": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.4.4.tgz",
- "integrity": "sha512-jkTUyWZcTrwxu5DD4rWz6rDB5Cjdmgz6z7M7RLXOJyCUkFBawssDGcGh8M/0FTSB87avyJI1HsTwUXp9nKA1PA==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.5.5.tgz",
+ "integrity": "sha512-82A3CLRRdYubkG85lKwhZB0WZoHxLGsJdux/cOVaJCJpvYFl1LVzAIFyRsa7CvXqW8rBM4Zf3Bfn8PHt5DP0Sg==",
"requires": {
"@babel/helper-plugin-utils": "^7.0.0",
- "lodash": "^4.17.11"
+ "lodash": "^4.17.13"
}
},
"@babel/plugin-transform-classes": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.4.4.tgz",
- "integrity": "sha512-/e44eFLImEGIpL9qPxSRat13I5QNRgBLu2hOQJCF7VLy/otSM/sypV1+XaIw5+502RX/+6YaSAPmldk+nhHDPw==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz",
+ "integrity": "sha512-U2htCNK/6e9K7jGyJ++1p5XRU+LJjrwtoiVn9SzRlDT2KubcZ11OOwy3s24TjHxPgxNwonCYP7U2K51uVYCMDg==",
"requires": {
"@babel/helper-annotate-as-pure": "^7.0.0",
- "@babel/helper-define-map": "^7.4.4",
+ "@babel/helper-define-map": "^7.5.5",
"@babel/helper-function-name": "^7.1.0",
"@babel/helper-optimise-call-expression": "^7.0.0",
"@babel/helper-plugin-utils": "^7.0.0",
- "@babel/helper-replace-supers": "^7.4.4",
+ "@babel/helper-replace-supers": "^7.5.5",
"@babel/helper-split-export-declaration": "^7.4.4",
"globals": "^11.1.0"
}
@@ -528,9 +537,9 @@
}
},
"@babel/plugin-transform-destructuring": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.4.4.tgz",
- "integrity": "sha512-/aOx+nW0w8eHiEHm+BTERB2oJn5D127iye/SUQl7NjHy0lf+j7h4MKMMSOwdazGq9OxgiNADncE+SRJkCxjZpQ==",
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.5.0.tgz",
+ "integrity": "sha512-YbYgbd3TryYYLGyC7ZR+Tq8H/+bCmwoaxHfJHupom5ECstzbRLTch6gOQbhEY9Z4hiCNHEURgq06ykFv9JZ/QQ==",
"requires": {
"@babel/helper-plugin-utils": "^7.0.0"
}
@@ -546,9 +555,9 @@
}
},
"@babel/plugin-transform-duplicate-keys": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.2.0.tgz",
- "integrity": "sha512-q+yuxW4DsTjNceUiTzK0L+AfQ0zD9rWaTLiUqHA8p0gxx7lu1EylenfzjeIWNkPy6e/0VG/Wjw9uf9LueQwLOw==",
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz",
+ "integrity": "sha512-igcziksHizyQPlX9gfSjHkE2wmoCH3evvD2qR5w29/Dk0SMKE/eOI7f1HhBdNhR/zxJDqrgpoDTq5YSLH/XMsQ==",
"requires": {
"@babel/helper-plugin-utils": "^7.0.0"
}
@@ -605,31 +614,34 @@
}
},
"@babel/plugin-transform-modules-amd": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.2.0.tgz",
- "integrity": "sha512-mK2A8ucqz1qhrdqjS9VMIDfIvvT2thrEsIQzbaTdc5QFzhDjQv2CkJJ5f6BXIkgbmaoax3zBr2RyvV/8zeoUZw==",
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz",
+ "integrity": "sha512-n20UsQMKnWrltocZZm24cRURxQnWIvsABPJlw/fvoy9c6AgHZzoelAIzajDHAQrDpuKFFPPcFGd7ChsYuIUMpg==",
"requires": {
"@babel/helper-module-transforms": "^7.1.0",
- "@babel/helper-plugin-utils": "^7.0.0"
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "babel-plugin-dynamic-import-node": "^2.3.0"
}
},
"@babel/plugin-transform-modules-commonjs": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.4.4.tgz",
- "integrity": "sha512-4sfBOJt58sEo9a2BQXnZq+Q3ZTSAUXyK3E30o36BOGnJ+tvJ6YSxF0PG6kERvbeISgProodWuI9UVG3/FMY6iw==",
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.5.0.tgz",
+ "integrity": "sha512-xmHq0B+ytyrWJvQTc5OWAC4ii6Dhr0s22STOoydokG51JjWhyYo5mRPXoi+ZmtHQhZZwuXNN+GG5jy5UZZJxIQ==",
"requires": {
"@babel/helper-module-transforms": "^7.4.4",
"@babel/helper-plugin-utils": "^7.0.0",
- "@babel/helper-simple-access": "^7.1.0"
+ "@babel/helper-simple-access": "^7.1.0",
+ "babel-plugin-dynamic-import-node": "^2.3.0"
}
},
"@babel/plugin-transform-modules-systemjs": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.4.4.tgz",
- "integrity": "sha512-MSiModfILQc3/oqnG7NrP1jHaSPryO6tA2kOMmAQApz5dayPxWiHqmq4sWH2xF5LcQK56LlbKByCd8Aah/OIkQ==",
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.5.0.tgz",
+ "integrity": "sha512-Q2m56tyoQWmuNGxEtUyeEkm6qJYFqs4c+XyXH5RAuYxObRNz9Zgj/1g2GMnjYp2EUyEy7YTrxliGCXzecl/vJg==",
"requires": {
"@babel/helper-hoist-variables": "^7.4.4",
- "@babel/helper-plugin-utils": "^7.0.0"
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "babel-plugin-dynamic-import-node": "^2.3.0"
}
},
"@babel/plugin-transform-modules-umd": {
@@ -666,12 +678,12 @@
}
},
"@babel/plugin-transform-object-super": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz",
- "integrity": "sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz",
+ "integrity": "sha512-un1zJQAhSosGFBduPgN/YFNvWVpRuHKU7IHBglLoLZsGmruJPOo6pbInneflUdmq7YvSVqhpPs5zdBvLnteltQ==",
"requires": {
"@babel/helper-plugin-utils": "^7.0.0",
- "@babel/helper-replace-supers": "^7.1.0"
+ "@babel/helper-replace-supers": "^7.5.5"
}
},
"@babel/plugin-transform-parameters": {
@@ -711,9 +723,9 @@
}
},
"@babel/plugin-transform-react-jsx-source": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.2.0.tgz",
- "integrity": "sha512-A32OkKTp4i5U6aE88GwwcuV4HAprUgHcTq0sSafLxjr6AW0QahrCRCjxogkbbcdtpbXkuTOlgpjophCxb6sh5g==",
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.5.0.tgz",
+ "integrity": "sha512-58Q+Jsy4IDCZx7kqEZuSDdam/1oW8OdDX8f+Loo6xyxdfg1yF0GE2XNJQSTZCaMol93+FBzpWiPEwtbMloAcPg==",
"requires": {
"@babel/helper-plugin-utils": "^7.0.0",
"@babel/plugin-syntax-jsx": "^7.2.0"
@@ -736,9 +748,9 @@
}
},
"@babel/plugin-transform-runtime": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.4.4.tgz",
- "integrity": "sha512-aMVojEjPszvau3NRg+TIH14ynZLvPewH4xhlCW1w6A3rkxTS1m4uwzRclYR9oS+rl/dr+kT+pzbfHuAWP/lc7Q==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.5.5.tgz",
+ "integrity": "sha512-6Xmeidsun5rkwnGfMOp6/z9nSzWpHFNVr2Jx7kwoq4mVatQfQx5S56drBgEHF+XQbKOdIaOiMIINvp/kAwMN+w==",
"requires": {
"@babel/helper-module-imports": "^7.0.0",
"@babel/helper-plugin-utils": "^7.0.0",
@@ -789,10 +801,11 @@
}
},
"@babel/plugin-transform-typescript": {
- "version": "7.4.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.4.5.tgz",
- "integrity": "sha512-RPB/YeGr4ZrFKNwfuQRlMf2lxoCUaU01MTw39/OFE/RiL8HDjtn68BwEPft1P7JN4akyEmjGWAMNldOV7o9V2g==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.5.5.tgz",
+ "integrity": "sha512-pehKf4m640myZu5B2ZviLaiBlxMCjSZ1qTEO459AXKX5GnPueyulJeCqZFs1nz/Ya2dDzXQ1NxZ/kKNWyD4h6w==",
"requires": {
+ "@babel/helper-create-class-features-plugin": "^7.5.5",
"@babel/helper-plugin-utils": "^7.0.0",
"@babel/plugin-syntax-typescript": "^7.2.0"
}
@@ -826,42 +839,44 @@
}
},
"@babel/preset-env": {
- "version": "7.4.5",
- "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.4.5.tgz",
- "integrity": "sha512-f2yNVXM+FsR5V8UwcFeIHzHWgnhXg3NpRmy0ADvALpnhB0SLbCvrCRr4BLOUYbQNLS+Z0Yer46x9dJXpXewI7w==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.5.5.tgz",
+ "integrity": "sha512-GMZQka/+INwsMz1A5UEql8tG015h5j/qjptpKY2gJ7giy8ohzU710YciJB5rcKsWGWHiW3RUnHib0E5/m3Tp3A==",
"requires": {
"@babel/helper-module-imports": "^7.0.0",
"@babel/helper-plugin-utils": "^7.0.0",
"@babel/plugin-proposal-async-generator-functions": "^7.2.0",
+ "@babel/plugin-proposal-dynamic-import": "^7.5.0",
"@babel/plugin-proposal-json-strings": "^7.2.0",
- "@babel/plugin-proposal-object-rest-spread": "^7.4.4",
+ "@babel/plugin-proposal-object-rest-spread": "^7.5.5",
"@babel/plugin-proposal-optional-catch-binding": "^7.2.0",
"@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
"@babel/plugin-syntax-async-generators": "^7.2.0",
+ "@babel/plugin-syntax-dynamic-import": "^7.2.0",
"@babel/plugin-syntax-json-strings": "^7.2.0",
"@babel/plugin-syntax-object-rest-spread": "^7.2.0",
"@babel/plugin-syntax-optional-catch-binding": "^7.2.0",
"@babel/plugin-transform-arrow-functions": "^7.2.0",
- "@babel/plugin-transform-async-to-generator": "^7.4.4",
+ "@babel/plugin-transform-async-to-generator": "^7.5.0",
"@babel/plugin-transform-block-scoped-functions": "^7.2.0",
- "@babel/plugin-transform-block-scoping": "^7.4.4",
- "@babel/plugin-transform-classes": "^7.4.4",
+ "@babel/plugin-transform-block-scoping": "^7.5.5",
+ "@babel/plugin-transform-classes": "^7.5.5",
"@babel/plugin-transform-computed-properties": "^7.2.0",
- "@babel/plugin-transform-destructuring": "^7.4.4",
+ "@babel/plugin-transform-destructuring": "^7.5.0",
"@babel/plugin-transform-dotall-regex": "^7.4.4",
- "@babel/plugin-transform-duplicate-keys": "^7.2.0",
+ "@babel/plugin-transform-duplicate-keys": "^7.5.0",
"@babel/plugin-transform-exponentiation-operator": "^7.2.0",
"@babel/plugin-transform-for-of": "^7.4.4",
"@babel/plugin-transform-function-name": "^7.4.4",
"@babel/plugin-transform-literals": "^7.2.0",
"@babel/plugin-transform-member-expression-literals": "^7.2.0",
- "@babel/plugin-transform-modules-amd": "^7.2.0",
- "@babel/plugin-transform-modules-commonjs": "^7.4.4",
- "@babel/plugin-transform-modules-systemjs": "^7.4.4",
+ "@babel/plugin-transform-modules-amd": "^7.5.0",
+ "@babel/plugin-transform-modules-commonjs": "^7.5.0",
+ "@babel/plugin-transform-modules-systemjs": "^7.5.0",
"@babel/plugin-transform-modules-umd": "^7.2.0",
"@babel/plugin-transform-named-capturing-groups-regex": "^7.4.5",
"@babel/plugin-transform-new-target": "^7.4.4",
- "@babel/plugin-transform-object-super": "^7.2.0",
+ "@babel/plugin-transform-object-super": "^7.5.5",
"@babel/plugin-transform-parameters": "^7.4.4",
"@babel/plugin-transform-property-literals": "^7.2.0",
"@babel/plugin-transform-regenerator": "^7.4.5",
@@ -872,7 +887,7 @@
"@babel/plugin-transform-template-literals": "^7.4.4",
"@babel/plugin-transform-typeof-symbol": "^7.2.0",
"@babel/plugin-transform-unicode-regex": "^7.4.4",
- "@babel/types": "^7.4.4",
+ "@babel/types": "^7.5.5",
"browserslist": "^4.6.0",
"core-js-compat": "^3.1.1",
"invariant": "^2.2.2",
@@ -881,29 +896,29 @@
}
},
"@babel/register": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.4.4.tgz",
- "integrity": "sha512-sn51H88GRa00+ZoMqCVgOphmswG4b7mhf9VOB0LUBAieykq2GnRFerlN+JQkO/ntT7wz4jaHNSRPg9IdMPEUkA==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.5.5.tgz",
+ "integrity": "sha512-pdd5nNR+g2qDkXZlW1yRCWFlNrAn2PPdnZUB72zjX4l1Vv4fMRRLwyf+n/idFCLI1UgVGboUU8oVziwTBiyNKQ==",
"requires": {
"core-js": "^3.0.0",
"find-cache-dir": "^2.0.0",
- "lodash": "^4.17.11",
+ "lodash": "^4.17.13",
"mkdirp": "^0.5.1",
"pirates": "^4.0.0",
"source-map-support": "^0.5.9"
},
"dependencies": {
"core-js": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.1.4.tgz",
- "integrity": "sha512-YNZN8lt82XIMLnLirj9MhKDFZHalwzzrL9YLt6eb0T5D0EDl4IQ90IGkua8mHbnxNrkj1d8hbdizMc0Qmg1WnQ=="
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.2.1.tgz",
+ "integrity": "sha512-Qa5XSVefSVPRxy2XfUC13WbvqkxhkwB3ve+pgCQveNgYzbM/UxZeu1dcOX/xr4UmfUd+muuvsaxilQzCyUurMw=="
}
}
},
"@babel/runtime": {
- "version": "7.4.5",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.4.5.tgz",
- "integrity": "sha512-TuI4qpWZP6lGOGIuGWtp9sPluqYICmbk8T/1vpSysqJxRPkudh/ofFWyqdcMsDf2s7KvDL4/YHgKyvcS3g9CJQ==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.5.5.tgz",
+ "integrity": "sha512-28QvEGyQyNkB0/m2B4FU7IEZGK2NUrcMtT6BZEFALTguLk+AUT6ofsHtPk5QyjAdUkpMJ+/Em+quwz4HOt30AQ==",
"requires": {
"regenerator-runtime": "^0.13.2"
}
@@ -919,28 +934,28 @@
}
},
"@babel/traverse": {
- "version": "7.4.5",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.4.5.tgz",
- "integrity": "sha512-Vc+qjynwkjRmIFGxy0KYoPj4FdVDxLej89kMHFsWScq999uX+pwcX4v9mWRjW0KcAYTPAuVQl2LKP1wEVLsp+A==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.5.5.tgz",
+ "integrity": "sha512-MqB0782whsfffYfSjH4TM+LMjrJnhCNEDMDIjeTpl+ASaUvxcjoiVCo/sM1GhS1pHOXYfWVCYneLjMckuUxDaQ==",
"requires": {
- "@babel/code-frame": "^7.0.0",
- "@babel/generator": "^7.4.4",
+ "@babel/code-frame": "^7.5.5",
+ "@babel/generator": "^7.5.5",
"@babel/helper-function-name": "^7.1.0",
"@babel/helper-split-export-declaration": "^7.4.4",
- "@babel/parser": "^7.4.5",
- "@babel/types": "^7.4.4",
+ "@babel/parser": "^7.5.5",
+ "@babel/types": "^7.5.5",
"debug": "^4.1.0",
"globals": "^11.1.0",
- "lodash": "^4.17.11"
+ "lodash": "^4.17.13"
}
},
"@babel/types": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz",
- "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.5.5.tgz",
+ "integrity": "sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw==",
"requires": {
"esutils": "^2.0.2",
- "lodash": "^4.17.11",
+ "lodash": "^4.17.13",
"to-fast-properties": "^2.0.0"
}
},
@@ -950,12 +965,12 @@
"integrity": "sha512-rcRCLTXEMCuflsUg8jcXWXzpGW+WmMqKit8OIY38K5EgJ9UhbdKScZz1GhtWW9PRaXcivbtYpvzFbuNfYBjTDQ=="
},
"@expo/config": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@expo/config/-/config-2.0.4.tgz",
- "integrity": "sha512-c5uJlbmBOcPqR9wbaoIPxsqgz5j67xnwli45tuSkVyOOmJ3qqdSp3/TiV7fsstkiY+w3fN7OesbZ6lxFLSrHKA==",
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/@expo/config/-/config-2.1.3.tgz",
+ "integrity": "sha512-h+h+YIHK1UjT2FxCbVOBzQZWKzLqLWQTMDxcg9u36UiEhKGemZOUYelMZ3DLwL2ddu9b6GWWvtPmcc1kQu9F8g==",
"dev": true,
"requires": {
- "@expo/json-file": "^8.1.6",
+ "@expo/json-file": "^8.1.10",
"find-yarn-workspace-root": "^1.2.1",
"fs-extra": "^7.0.1",
"resolve-from": "^5.0.0",
@@ -982,9 +997,9 @@
}
},
"@expo/image-utils": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.2.1.tgz",
- "integrity": "sha512-cyWjMLCb4t7GXE9vDyw/wvO7buxndkGnUdD2ZdwTJW8Kh/3IVULbqHhcj10w9z/BXhXDxsSx/wAMgma6OGHrfg==",
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.2.5.tgz",
+ "integrity": "sha512-gG/3gwwOH5ETtBbRBoKOZIiEUAxy0xpGb6cmodEZycvzmiPTB+SjDbS/LqCMMAdvjWbA+9HuJhPX30PDqnas6g==",
"dev": true,
"requires": {
"@expo/spawn-async": "1.5.0",
@@ -1001,15 +1016,15 @@
}
},
"@expo/json-file": {
- "version": "8.1.6",
- "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.1.6.tgz",
- "integrity": "sha512-hjbLppBWzr2AgRnxCkAw5BlzIJh6bCgfdSxTKVD9mtpTir4/aFWvc0NXN2df/bUuJV+GQCuONro41NImMx1NuQ==",
+ "version": "8.1.10",
+ "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.1.10.tgz",
+ "integrity": "sha512-FIxGkM/wBq10DBLqPVDHjuonK5PryuoTnhgQ9c8CjXHaePuzlpgpMZxZFQdWAeJMbCaJi+/IWVyees8jNjZrxg==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.0.0-beta.44",
"fs-extra": "^8.0.1",
"json5": "^1.0.1",
- "lodash": "^4.17.4",
+ "lodash": "^4.17.11",
"util.promisify": "^1.0.0",
"write-file-atomic": "^2.3.0"
},
@@ -1057,9 +1072,9 @@
}
},
"@expo/vector-icons": {
- "version": "10.0.2",
- "resolved": "https://registry.npmjs.org/@expo/vector-icons/-/vector-icons-10.0.2.tgz",
- "integrity": "sha512-ea3cNMTfSsXo1QU/drBFTw93cMbqC6MxYOisxGyzZ9UiDIqvz3PJ9CQDtbqjZX9UASxLmg0mHWLVdsygAQJYwQ==",
+ "version": "10.0.5",
+ "resolved": "https://registry.npmjs.org/@expo/vector-icons/-/vector-icons-10.0.5.tgz",
+ "integrity": "sha512-SWdAx2Qzxp5TgT3hZEoF/KHnaDW7ajIFztrDdaDZl3nPo7ExK0YiQ03V0z0xMd+uQwl3SZO3JMwPZ7YnuxcMEg==",
"requires": {
"lodash": "^4.17.4"
}
@@ -1116,12 +1131,12 @@
}
},
"@expo/webpack-pwa-manifest-plugin": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/@expo/webpack-pwa-manifest-plugin/-/webpack-pwa-manifest-plugin-1.1.5.tgz",
- "integrity": "sha512-yatRfixPdTJGDrXjEC+vvyMAuIG0sL39J1QoAQr+CIS2bz14StJV5MpdLVaXJfg1Q8HbDn76soObL+xvXKFZUw==",
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/@expo/webpack-pwa-manifest-plugin/-/webpack-pwa-manifest-plugin-1.2.3.tgz",
+ "integrity": "sha512-yaRcqWnM69Or3EY5rqP5paPD6mYtxlICPOm6/0S/lERXo6zqfcMUNaJPtnxNcpAPg2CKuZhJACIm72loHvL96g==",
"dev": true,
"requires": {
- "@expo/image-utils": "^0.2.1",
+ "@expo/image-utils": "^0.2.5",
"css-color-names": "^1.0.1",
"mime": "^2.4.0",
"tempy": "^0.3.0"
@@ -1164,9 +1179,9 @@
"dev": true
},
"@react-native-community/cli": {
- "version": "1.9.11",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-1.9.11.tgz",
- "integrity": "sha512-VVu/tmTTzODfW2xlqIz0pZgeELG2ppPAIgbBEKLgHCO9DMxNZIKSqmei/JqkAi0gEipqQoP6YPAemHPd43lyrA==",
+ "version": "1.11.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-1.11.2.tgz",
+ "integrity": "sha512-5NuYd30f5PCTrGUbZLnusZKv5nfTWvTDTRa/3Q4vwdMnUQrhm9sZXWGQ5CnFoQ7cE58EAqhj6/ShXeJF3DZ9uQ==",
"requires": {
"chalk": "^1.1.1",
"commander": "^2.19.0",
@@ -1243,11 +1258,6 @@
}
}
},
- "@react-native-community/netinfo": {
- "version": "2.0.10",
- "resolved": "https://registry.npmjs.org/@react-native-community/netinfo/-/netinfo-2.0.10.tgz",
- "integrity": "sha512-NrIzyLe0eSbhgMnHl2QdSEhaA7yXh6p9jzMomfUa//hoTXE+xbObGDdiWWSQm2bnXnZJg8XCU3AB9qzvqcuLnA=="
- },
"@react-navigation/core": {
"version": "3.4.2",
"resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-3.4.2.tgz",
@@ -1295,14 +1305,14 @@
"integrity": "sha1-jtIE2g9U6cjq7DGx7skeJRMtCCw="
},
"@types/invariant": {
- "version": "2.2.29",
- "resolved": "https://registry.npmjs.org/@types/invariant/-/invariant-2.2.29.tgz",
- "integrity": "sha512-lRVw09gOvgviOfeUrKc/pmTiRZ7g7oDOU6OAutyuSHpm1/o2RaBQvRhgK8QEdu+FFuw/wnWb29A/iuxv9i8OpQ=="
+ "version": "2.2.30",
+ "resolved": "https://registry.npmjs.org/@types/invariant/-/invariant-2.2.30.tgz",
+ "integrity": "sha512-98fB+yo7imSD2F7PF7GIpELNgtLNgo5wjivu0W5V4jx+KVVJxo6p/qN4zdzSTBWy4/sN3pPyXwnhRSD28QX+ag=="
},
"@types/lodash": {
- "version": "4.14.135",
- "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.135.tgz",
- "integrity": "sha512-Ed+tSZ9qM1oYpi5kzdsBuOzcAIn1wDW+e8TFJ50IMJMlSopGdJgKAbhHzN6h1E1OfjlGOr2JepzEWtg9NIfoNg=="
+ "version": "4.14.137",
+ "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.137.tgz",
+ "integrity": "sha512-g4rNK5SRKloO+sUGbuO7aPtwbwzMgjK+bm9BBhLD7jGUiGR7zhwYEhSln/ihgYQBeIJ5j7xjyaYzrWTcu3UotQ=="
},
"@types/lodash.zipobject": {
"version": "4.1.6",
@@ -1340,17 +1350,17 @@
"integrity": "sha1-Yhpman8CAY58u0q6uVaiVzbCfXE="
},
"@unimodules/core": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@unimodules/core/-/core-2.0.1.tgz",
- "integrity": "sha512-evbJUEAf8TvIfzR2/T9npWuqyYE8042qvmE7uWF+uDAt8KclMS9g7clbNTEG1ck5ov9AYWMMgohFaPfDCkJicw==",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@unimodules/core/-/core-3.0.2.tgz",
+ "integrity": "sha512-EMZjVp+yrtoPKpDBPvj4+hyDWALl7gvpWeUsDz2Nb9MMBPLnhag1uNk3KC98StJdnjbSXKSdKrCMMidOXnyKcg==",
"requires": {
"compare-versions": "^3.4.0"
}
},
"@unimodules/react-native-adapter": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@unimodules/react-native-adapter/-/react-native-adapter-2.0.1.tgz",
- "integrity": "sha512-D9CSGLIWX0iWLv4Voq0i+xo0YZcraTN1uCdJ+EepwmBplRHDrDCoh2M9Upm4aIso5812pXOBHmGf31AhIKKhYA==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@unimodules/react-native-adapter/-/react-native-adapter-3.0.0.tgz",
+ "integrity": "sha512-zkFFE0HQ2Flfx/aY3hBKDgMvQ1meUm3H6vMIacY1KywexCuKW8ivBobkOsHIet4jf7km0Eklt6WtB3LqQVw5yw==",
"requires": {
"invariant": "^2.2.4",
"lodash": "^4.5.0",
@@ -1571,9 +1581,9 @@
}
},
"acorn-walk": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.1.1.tgz",
- "integrity": "sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw==",
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz",
+ "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==",
"dev": true
},
"address": {
@@ -1583,9 +1593,9 @@
"dev": true
},
"ajv": {
- "version": "6.10.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz",
- "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==",
+ "version": "6.10.2",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
+ "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
"dev": true,
"requires": {
"fast-deep-equal": "^2.0.1",
@@ -1601,9 +1611,9 @@
"dev": true
},
"ajv-keywords": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.0.tgz",
- "integrity": "sha512-aUjdRFISbuFOl0EIZc+9e4FfZp0bDZgAdOOf30bJmw8VM9v84SHyVyxDfbWxpGYbdZD/9XoKxfHVNmxPkhwyGw==",
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz",
+ "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==",
"dev": true
},
"alphanum-sort": {
@@ -2107,11 +2117,11 @@
"dev": true
},
"async": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz",
- "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==",
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
+ "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
"requires": {
- "lodash": "^4.17.11"
+ "lodash": "^4.17.14"
}
},
"async-each": {
@@ -2121,9 +2131,9 @@
"dev": true
},
"async-limiter": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz",
- "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg=="
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
+ "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ=="
},
"atob": {
"version": "2.1.2",
@@ -2159,6 +2169,14 @@
}
}
},
+ "babel-plugin-dynamic-import-node": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz",
+ "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==",
+ "requires": {
+ "object.assign": "^4.1.0"
+ }
+ },
"babel-plugin-module-resolver": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-3.2.0.tgz",
@@ -2172,9 +2190,9 @@
}
},
"babel-plugin-react-native-web": {
- "version": "0.11.4",
- "resolved": "https://registry.npmjs.org/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.11.4.tgz",
- "integrity": "sha512-xREobnt2fN0AsANhvm5Vh7JKRdYj9BlXvyoBWSTAT3+gmh1mtEgeRFj4CuhyiBcgKAfR8kj8v9BLj/LfOdenow=="
+ "version": "0.11.7",
+ "resolved": "https://registry.npmjs.org/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.11.7.tgz",
+ "integrity": "sha512-CxE7uhhqkzAFkwV2X7+Mc/UVPujQQDtja/EGxCXRJvdYRi72QTmaJYKbK1lV9qgTZuB+TDguU89coaA9Z1BNbg=="
},
"babel-plugin-syntax-object-rest-spread": {
"version": "6.13.0",
@@ -2201,6 +2219,7 @@
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-5.2.0.tgz",
"integrity": "sha512-yNHYwSFk7fvVCVJM3m3Vi/BVBNAeox1Iw1tHhCJGbLnpYkR94wst/I8IF9y+K01FhJ98epIK1S0Go3EmHJbbzA==",
+ "dev": true,
"requires": {
"@babel/core": "^7.1.0",
"@babel/plugin-proposal-decorators": "^7.1.0",
@@ -2249,6 +2268,7 @@
"version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
+ "dev": true,
"requires": {
"core-js": "^2.4.0",
"regenerator-runtime": "^0.11.0"
@@ -2257,12 +2277,14 @@
"core-js": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz",
- "integrity": "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A=="
+ "integrity": "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A==",
+ "dev": true
},
"regenerator-runtime": {
"version": "0.11.1",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
- "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
+ "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
+ "dev": true
}
}
},
@@ -2338,9 +2360,9 @@
}
},
"base64-js": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz",
- "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw=="
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz",
+ "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g=="
},
"basic-auth": {
"version": "2.0.1",
@@ -2397,9 +2419,9 @@
"dev": true
},
"blueimp-md5": {
- "version": "2.10.0",
- "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.10.0.tgz",
- "integrity": "sha512-EkNUOi7tpV68TqjpiUz9D9NcT8um2+qtgntmMbi5UKssVX2m/2PLqotcric0RE63pB3HPN/fjf3cKHN2ufGSUQ=="
+ "version": "2.11.1",
+ "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.11.1.tgz",
+ "integrity": "sha512-4UiOAmql2XO0Sws07OVzYdCKK0K2Va5g6AVgYXoGhEQiKrdSOefjUCm1frPk6E+xiIOHRqaFg+TUGo7cClKg5g=="
},
"bn.js": {
"version": "4.11.8",
@@ -2464,6 +2486,12 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
"dev": true
+ },
+ "qs": {
+ "version": "6.7.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
+ "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
+ "dev": true
}
}
},
@@ -2608,13 +2636,13 @@
}
},
"browserslist": {
- "version": "4.6.3",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.6.3.tgz",
- "integrity": "sha512-CNBqTCq22RKM8wKJNowcqihHJ4SkI8CGeK7KOR9tPboXUuS5Zk5lQgzzTbs4oxD8x+6HUshZUa2OyNI9lR93bQ==",
+ "version": "4.6.6",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.6.6.tgz",
+ "integrity": "sha512-D2Nk3W9JL9Fp/gIcWei8LrERCS+eXu9AM5cfXA8WEZ84lFks+ARnZ0q/R69m2SV3Wjma83QDDPxsNKXUwdIsyA==",
"requires": {
- "caniuse-lite": "^1.0.30000975",
- "electron-to-chromium": "^1.3.164",
- "node-releases": "^1.1.23"
+ "caniuse-lite": "^1.0.30000984",
+ "electron-to-chromium": "^1.3.191",
+ "node-releases": "^1.1.25"
}
},
"bser": {
@@ -2803,11 +2831,6 @@
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
"integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0="
},
- "can-use-dom": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/can-use-dom/-/can-use-dom-0.1.0.tgz",
- "integrity": "sha1-IsxKNKCrxDlQ9CxkEQJKP2NmtFo="
- },
"caniuse-api": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz",
@@ -2821,9 +2844,9 @@
}
},
"caniuse-lite": {
- "version": "1.0.30000978",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000978.tgz",
- "integrity": "sha512-H6gK6kxUzG6oAwg/Jal279z8pHw0BzrpZfwo/CA9FFm/vA0l8IhDfkZtepyJNE2Y4V6Dp3P3ubz6czby1/Mgsw=="
+ "version": "1.0.30000989",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000989.tgz",
+ "integrity": "sha512-vrMcvSuMz16YY6GSVZ0dWDTJP8jqk3iFQ/Aq5iqblPwxSVVZI+zxDyTX0VPqtQsDnfdrBDcsmhgTEOh5R8Lbpw=="
},
"capture-exit": {
"version": "1.2.0",
@@ -2849,11 +2872,6 @@
"supports-color": "^5.3.0"
}
},
- "change-emitter": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/change-emitter/-/change-emitter-0.1.6.tgz",
- "integrity": "sha1-6LL+PX8at9aaMhma/5HqaTFAlRU="
- },
"chardet": {
"version": "0.4.2",
"resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz",
@@ -2990,9 +3008,9 @@
}
},
"chownr": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz",
- "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.2.tgz",
+ "integrity": "sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A==",
"dev": true
},
"chrome-trace-event": {
@@ -3189,9 +3207,9 @@
"integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs="
},
"compare-versions": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.5.0.tgz",
- "integrity": "sha512-hX+4kt2Rcwu+x1U0SsEFCn1quURjEjPEGH/cPBlpME/IidGimAdwfMU+B+xDr7et/KTR7VH2+ZqWGerv4NGs2w=="
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.5.1.tgz",
+ "integrity": "sha512-9fGPIB7C6AyM18CJJBHt5EnCZDG3oiTJYy0NjfIAGjKpzv0tkxWko7TNQHF5ymqm7IH03tqmeuBxtvD+Izh6mg=="
},
"component-emitter": {
"version": "1.3.0",
@@ -3367,12 +3385,12 @@
"integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40="
},
"copy-webpack-plugin": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-5.0.3.tgz",
- "integrity": "sha512-PlZRs9CUMnAVylZq+vg2Juew662jWtwOXOqH4lbQD9ZFhRG9R7tVStOgHt21CBGVq7k5yIJaz8TXDLSjV+Lj8Q==",
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-5.0.4.tgz",
+ "integrity": "sha512-YBuYGpSzoCHSSDGyHy6VJ7SHojKp6WHT4D7ItcQFNAYx2hrwkMe56e97xfVR0/ovDuMTrMffXUiltvQljtAGeg==",
"dev": true,
"requires": {
- "cacache": "^11.3.2",
+ "cacache": "^11.3.3",
"find-cache-dir": "^2.1.0",
"glob-parent": "^3.1.0",
"globby": "^7.1.1",
@@ -3429,9 +3447,9 @@
"dev": true
},
"p-limit": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz",
- "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==",
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz",
+ "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==",
"dev": true,
"requires": {
"p-try": "^2.0.0"
@@ -3451,27 +3469,21 @@
"integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY="
},
"core-js-compat": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.1.4.tgz",
- "integrity": "sha512-Z5zbO9f1d0YrJdoaQhphVAnKPimX92D6z8lCGphH89MNRxlL1prI9ExJPqVwP0/kgkQCv8c4GJGT8X16yUncOg==",
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.2.1.tgz",
+ "integrity": "sha512-MwPZle5CF9dEaMYdDeWm73ao/IflDH+FjeJCWEADcEgFSE9TLimFKwJsfmkwzI8eC0Aj0mgvMDjeQjrElkz4/A==",
"requires": {
- "browserslist": "^4.6.2",
- "core-js-pure": "3.1.4",
- "semver": "^6.1.1"
+ "browserslist": "^4.6.6",
+ "semver": "^6.3.0"
},
"dependencies": {
"semver": {
- "version": "6.1.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.1.2.tgz",
- "integrity": "sha512-z4PqiCpomGtWj8633oeAdXm1Kn1W++3T8epkZYnwiVgIYIJ0QHszhInYSJTYxebByQH7KVCEAn8R9duzZW2PhQ=="
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
}
}
},
- "core-js-pure": {
- "version": "3.1.4",
- "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.1.4.tgz",
- "integrity": "sha512-uJ4Z7iPNwiu1foygbcZYJsJs1jiXrTTCvxfLDXNhI/I+NHbSIEyr548y4fcsCEyWY0XgfAG/qqaunJ1SThHenA=="
- },
"core-util-is": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
@@ -3656,12 +3668,12 @@
"dev": true
},
"css-tree": {
- "version": "1.0.0-alpha.28",
- "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.28.tgz",
- "integrity": "sha512-joNNW1gCp3qFFzj4St6zk+Wh/NBv0vM5YbEreZk0SD4S23S+1xBKb6cLDg2uj4P4k/GUMlIm6cKIDqIG+vdt0w==",
+ "version": "1.0.0-alpha.33",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.33.tgz",
+ "integrity": "sha512-SPt57bh5nQnpsTBsx/IXbO14sRc9xXu5MtMAVuo0BaQQmyf0NupNPPSoMaqiAF5tDFafYsTkfeH4Q/HCKXkg4w==",
"dev": true,
"requires": {
- "mdn-data": "~1.1.0",
+ "mdn-data": "2.0.4",
"source-map": "^0.5.3"
}
},
@@ -3671,12 +3683,6 @@
"integrity": "sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=",
"dev": true
},
- "css-url-regex": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/css-url-regex/-/css-url-regex-1.1.0.tgz",
- "integrity": "sha1-g4NCMMyfdMRX3lnuvRVD/uuDt+w=",
- "dev": true
- },
"css-what": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz",
@@ -3784,6 +3790,12 @@
"mdn-data": "~1.1.0",
"source-map": "^0.5.3"
}
+ },
+ "mdn-data": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-1.1.4.tgz",
+ "integrity": "sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA==",
+ "dev": true
}
}
},
@@ -3831,11 +3843,6 @@
"mimic-response": "^1.0.0"
}
},
- "dedent": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.6.0.tgz",
- "integrity": "sha1-Dm2o8M5Sg471zsXI+TlrDBtko8s="
- },
"deep-assign": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/deep-assign/-/deep-assign-3.0.0.tgz",
@@ -3858,9 +3865,9 @@
"optional": true
},
"deep-scope-analyser": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/deep-scope-analyser/-/deep-scope-analyser-1.6.1.tgz",
- "integrity": "sha512-t4wtDt0eKygcVwi+KE+eCAOAUciHRdJ9IqSkRJdni5O2v9IwFWibkSFYc6sWGotZerj9JolsC42QnVuf10lYqA==",
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/deep-scope-analyser/-/deep-scope-analyser-1.7.0.tgz",
+ "integrity": "sha512-rl5Dmt2IZkFpZo6XbEY1zG8st2Wpq8Pi/dV2gz8ZF6BDYt3fnor2JNxHwdO1WLo0k6JbmYp0x8MNy8kE4l1NtA==",
"dev": true,
"requires": {
"esrecurse": "^4.2.1",
@@ -3871,7 +3878,6 @@
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
"integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
- "dev": true,
"requires": {
"object-keys": "^1.0.12"
}
@@ -4033,13 +4039,21 @@
}
},
"dom-serializer": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz",
- "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==",
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.1.tgz",
+ "integrity": "sha512-sK3ujri04WyjwQXVoK4PU3y8ula1stq10GJZpqHIUgoGZdsGzAGu65BnU3d08aTVSvO7mGPZUc0wTEDL+qGE0Q==",
"dev": true,
"requires": {
- "domelementtype": "^1.3.0",
- "entities": "^1.1.1"
+ "domelementtype": "^2.0.1",
+ "entities": "^2.0.0"
+ },
+ "dependencies": {
+ "domelementtype": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz",
+ "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==",
+ "dev": true
+ }
}
},
"dom-walk": {
@@ -4117,9 +4131,9 @@
"dev": true
},
"electron-to-chromium": {
- "version": "1.3.176",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.176.tgz",
- "integrity": "sha512-hsQ/BH6x2iCvJ7WOIbNTAlsT39vsVGIVoJJ9i6ZkGXUE2LdzWsNv0xJI2uZ5/Hkqv1oTTLxAYjbtGKVJzqYbjA=="
+ "version": "1.3.235",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.235.tgz",
+ "integrity": "sha512-xNabEDbMIKPLQd6xgv4nyyeMaWXIKSJr6G51ZhUemHhbz6kjZAYcygA8CvfEcMF+Mt5eLmDWaLmfSOWdQxzBVQ=="
},
"elliptic": {
"version": "6.5.0",
@@ -4175,9 +4189,9 @@
}
},
"entities": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
- "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz",
+ "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==",
"dev": true
},
"envinfo": {
@@ -4281,15 +4295,15 @@
}
},
"estraverse": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
- "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
"dev": true
},
"esutils": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
- "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs="
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="
},
"etag": {
"version": "1.8.1",
@@ -4377,418 +4391,148 @@
"optional": true
},
"expo": {
- "version": "33.0.7",
- "resolved": "https://registry.npmjs.org/expo/-/expo-33.0.7.tgz",
- "integrity": "sha512-+mDBQ/KeJnDWg8bUoiuP/OpMXwUYaypgHMDPgH7+AXw8OJuedMhJlH+7UEX2OB+UePnWPcQER411sC7m819pag==",
+ "version": "34.0.4",
+ "resolved": "https://registry.npmjs.org/expo/-/expo-34.0.4.tgz",
+ "integrity": "sha512-sZQQoZnN5ASrkSA4qSsk7HPBewHB6b3k9VPZvchT0FBZ1fP5vpmzfIbVOqOLRXHf2VdjNnQVme617TnpPlruJg==",
"requires": {
"@babel/runtime": "^7.1.2",
- "@expo/vector-icons": "^10.0.1",
- "@react-native-community/netinfo": "2.0.10",
+ "@expo/vector-icons": "^10.0.2",
"@types/fbemitter": "^2.0.32",
"@types/invariant": "^2.2.29",
"@types/lodash.zipobject": "^4.1.4",
"@types/qs": "^6.5.1",
"@types/uuid-js": "^0.7.1",
- "@unimodules/core": "^2.0.0",
- "@unimodules/react-native-adapter": "^2.0.0",
- "babel-preset-expo": "^5.0.0",
+ "@unimodules/core": "~3.0.0",
+ "@unimodules/react-native-adapter": "~3.0.0",
+ "babel-preset-expo": "^6.0.0",
"cross-spawn": "^6.0.5",
- "expo-ads-admob": "~5.0.1",
- "expo-ads-facebook": "~5.0.1",
- "expo-analytics-amplitude": "~5.0.1",
- "expo-analytics-segment": "~5.0.1",
- "expo-app-auth": "~5.0.1",
- "expo-app-loader-provider": "~5.0.1",
- "expo-asset": "~5.0.1",
- "expo-av": "~5.0.2",
- "expo-background-fetch": "~5.0.1",
- "expo-barcode-scanner": "~5.0.1",
- "expo-blur": "~5.0.1",
- "expo-brightness": "~5.0.1",
- "expo-calendar": "~5.0.1",
- "expo-camera": "~5.0.1",
- "expo-constants": "~5.0.1",
- "expo-contacts": "~5.0.2",
- "expo-crypto": "~5.0.1",
- "expo-document-picker": "~5.0.1",
- "expo-face-detector": "~5.0.1",
- "expo-facebook": "~5.0.1",
- "expo-file-system": "~5.0.1",
- "expo-font": "~5.0.1",
- "expo-gl": "~5.0.1",
- "expo-gl-cpp": "~5.0.1",
- "expo-google-sign-in": "~5.0.1",
- "expo-haptics": "~5.0.1",
- "expo-image-manipulator": "~5.0.1",
- "expo-image-picker": "~5.0.2",
- "expo-intent-launcher": "~5.0.1",
- "expo-keep-awake": "~5.0.1",
- "expo-linear-gradient": "~5.0.1",
- "expo-local-authentication": "~5.0.1",
- "expo-localization": "~5.0.1",
- "expo-location": "~5.0.1",
- "expo-mail-composer": "~5.0.1",
- "expo-media-library": "~5.0.1",
- "expo-payments-stripe": "~5.0.1",
- "expo-permissions": "~5.0.1",
- "expo-print": "~5.0.1",
- "expo-random": "~5.0.1",
- "expo-secure-store": "~5.0.1",
- "expo-sensors": "~5.0.1",
- "expo-sharing": "~5.0.1",
- "expo-sms": "~5.0.1",
- "expo-speech": "~5.0.2",
- "expo-sqlite": "~5.0.1",
- "expo-task-manager": "~5.0.1",
- "expo-web-browser": "~5.0.3",
+ "expo-app-loader-provider": "~6.0.0",
+ "expo-asset": "~6.0.0",
+ "expo-constants": "~6.0.0",
+ "expo-file-system": "~6.0.0",
+ "expo-font": "~6.0.1",
+ "expo-keep-awake": "~6.0.0",
+ "expo-linear-gradient": "~6.0.0",
+ "expo-location": "~6.0.0",
+ "expo-permissions": "~6.0.0",
+ "expo-sqlite": "~6.0.0",
+ "expo-web-browser": "~6.0.0",
"fbemitter": "^2.1.1",
"invariant": "^2.2.2",
"lodash": "^4.6.0",
- "lottie-react-native": "2.6.1",
"md5-file": "^3.2.3",
"nullthrows": "^1.1.0",
"pretty-format": "^23.6.0",
"prop-types": "^15.6.0",
"qs": "^6.5.0",
- "react-google-maps": "^9.4.5",
- "react-native-branch": "2.2.5",
- "react-native-gesture-handler": "1.2.1",
- "react-native-maps": "0.24.2",
- "react-native-reanimated": "1.0.1",
- "react-native-screens": "1.0.0-alpha.22",
- "react-native-svg": "9.4.0",
+ "react-native-branch": "~3.0.1",
"react-native-view-shot": "2.6.0",
- "react-native-webview": "5.8.1",
"serialize-error": "^2.1.0",
- "unimodules-barcode-scanner-interface": "~2.0.1",
- "unimodules-camera-interface": "~2.0.1",
- "unimodules-constants-interface": "~2.0.1",
- "unimodules-face-detector-interface": "~2.0.1",
- "unimodules-file-system-interface": "~2.0.1",
- "unimodules-font-interface": "~2.0.1",
- "unimodules-image-loader-interface": "~2.0.1",
- "unimodules-permissions-interface": "~2.0.1",
- "unimodules-sensors-interface": "~2.0.1",
+ "unimodules-barcode-scanner-interface": "~3.0.0",
+ "unimodules-camera-interface": "~3.0.0",
+ "unimodules-constants-interface": "~3.0.0",
+ "unimodules-face-detector-interface": "~3.0.0",
+ "unimodules-file-system-interface": "~3.0.0",
+ "unimodules-font-interface": "~3.0.0",
+ "unimodules-image-loader-interface": "~3.0.0",
+ "unimodules-permissions-interface": "~3.0.0",
+ "unimodules-sensors-interface": "~3.0.0",
+ "unimodules-task-manager-interface": "~3.0.0",
"uuid-js": "^0.7.5"
- }
- },
- "expo-ads-admob": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/expo-ads-admob/-/expo-ads-admob-5.0.1.tgz",
- "integrity": "sha512-9eKifW2HQpfk4pNlUXetZHEXUFyflK/nwfMPkXYRxay6tG3OsKKKfF42pod6KohguEtwEy+RFM3lGUf4tLgG5Q==",
- "requires": {
- "prop-types": "^15.6.2"
- }
- },
- "expo-ads-facebook": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/expo-ads-facebook/-/expo-ads-facebook-5.0.1.tgz",
- "integrity": "sha512-PPPc4AwGUsmCUGwH6/7iE8nMyG7XqdAqMTo/WVN+Tfit3KVte46SLnaKCT53CAhqPuFvKTy6t9a1mqz6eglAqA==",
- "requires": {
- "fbemitter": "^2.1.1",
- "nullthrows": "^1.1.0"
- }
- },
- "expo-analytics-amplitude": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/expo-analytics-amplitude/-/expo-analytics-amplitude-5.0.1.tgz",
- "integrity": "sha512-zzH82IbA/MTfpEbSQuDq4fHR1O3srNTwdOsBYSizn/mvt7+5DPHn4pHJuf9QRtm8FhmpuQQ7d26I6/2/5JCKKA=="
- },
- "expo-analytics-segment": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/expo-analytics-segment/-/expo-analytics-segment-5.0.1.tgz",
- "integrity": "sha512-IfGmtzbyBOJEvDYKiXbr/L5RMtZsVqagnOXDhd5LlHYXPSsVyLZUYzi61blyy/Yoc3fPDfAzk9BTfjYR+zD3MQ=="
- },
- "expo-app-auth": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/expo-app-auth/-/expo-app-auth-5.0.1.tgz",
- "integrity": "sha512-7t2UCw2Ga4t71v4LlaWTu6ikZLG8LEhv3f7dQ82FYO09cQck7PPMJZyWbw7B8pgaFuO7A3mLF1H2F3MXLMZzRw==",
- "requires": {
- "invariant": "^2.2.4"
+ },
+ "dependencies": {
+ "babel-preset-expo": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-6.0.0.tgz",
+ "integrity": "sha512-MvDy86afmCt4sFYkg7yXsZyGL0yONT5JQHZSK1r8cu26Zm1No0yQyll+w78e2OkkYwVFtC1u70GyBPdERG7BZg==",
+ "requires": {
+ "@babel/core": "^7.1.0",
+ "@babel/plugin-proposal-decorators": "^7.1.0",
+ "@babel/plugin-transform-modules-commonjs": "^7.4.4",
+ "@babel/preset-env": "^7.3.1",
+ "babel-plugin-module-resolver": "^3.1.1",
+ "babel-plugin-react-native-web": "^0.11.2",
+ "metro-react-native-babel-preset": "^0.51.1"
+ }
+ }
}
},
"expo-app-loader-provider": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/expo-app-loader-provider/-/expo-app-loader-provider-5.0.1.tgz",
- "integrity": "sha512-RrbKXYmy980MdSgroY0fWPEFp4qqRGfE2oixPgN52poXJyrLbFeSmV/92IDsEOFv02jtrbbHJ8i3tiIF63czXA=="
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/expo-app-loader-provider/-/expo-app-loader-provider-6.0.0.tgz",
+ "integrity": "sha512-GtpztJVxOz+vVwdLyHskpzVzFWMXZPIFC/zczHZPsTwjS+wXj6n8MVaLxX6GaTyhNEtYjp0VIQUw3b7eP+vO6w=="
},
"expo-asset": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-5.0.1.tgz",
- "integrity": "sha512-dDu2jgFVd5UdBVfCgiznaib7R8bF3fZ0H3cLEO8q05lXV5NwFc/ftC2BXy0+tvV5u/yEtnRvQFAQQBJVhtbvpQ==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-6.0.0.tgz",
+ "integrity": "sha512-M0sJphdCQ0mq+7kg6rQmq4rU5hbsL72AZCNrga565JchCLeevJhv6j72erh2viqDAPdvjZpGwc7pwI/dxu1+zg==",
"requires": {
"blueimp-md5": "^2.10.0",
"path-browserify": "^1.0.0",
"url-parse": "^1.4.4"
}
},
- "expo-av": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/expo-av/-/expo-av-5.0.2.tgz",
- "integrity": "sha512-InvEYDinIv5enZR1HM6oIKFrvFoIsXuxAKcbZmgtqeuRzeJpOLJgzEJ5XlqPDfCM9/RX2Fhv4b2mSQsL20T4IQ==",
- "requires": {
- "lodash": "^4.17.11"
- }
- },
- "expo-background-fetch": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/expo-background-fetch/-/expo-background-fetch-5.0.1.tgz",
- "integrity": "sha512-nisjKhpqY9B4XoFcTXtT2tjiSgt0ApuKRxGbECG3q4vq85o13cGoOYuNJv7XkKuuEpVkvuCK6yjh+WVgOoouRw==",
- "requires": {
- "expo-task-manager": "~5.0.1"
- }
- },
- "expo-barcode-scanner": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/expo-barcode-scanner/-/expo-barcode-scanner-5.0.1.tgz",
- "integrity": "sha512-9IGXvfd5w8P3swhauSXgCjR55qDvrSgQIc9AdyPZ70V5+UyBB6rmRF7NVPyNAWd3t41HhZ9mo9TKhOmggboG0Q==",
- "requires": {
- "lodash": "^4.6.0",
- "prop-types": "^15.6.0"
- }
- },
- "expo-blur": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/expo-blur/-/expo-blur-5.0.1.tgz",
- "integrity": "sha512-tOrVAut04HBkGQ+CizvCXCluHYWVkBvJ4b4OJnLmVV6WzW7Q2cfWglPzGRn/ue/Yw5IZ6p6mZInEqLt/SFkGDg==",
- "requires": {
- "prop-types": "^15.6.0"
- }
- },
- "expo-brightness": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/expo-brightness/-/expo-brightness-5.0.1.tgz",
- "integrity": "sha512-jUbbucNYoBiWiQhHJG78SB4e7DVTRpcm19DKxvvtcwyDMDUch6YFtk1+pImOjkPDlD6xVFm4xPpSWdW3Y2Md3Q=="
- },
- "expo-calendar": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/expo-calendar/-/expo-calendar-5.0.1.tgz",
- "integrity": "sha512-muMxE5W7itpTmsveuEQwRD6bDi5ccDBxkiFNEsqOYheVzAQA55XwIad5a7PrZ4tT4QfeEVvhR1+mE+ShdWqCmw=="
- },
- "expo-camera": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/expo-camera/-/expo-camera-5.0.1.tgz",
- "integrity": "sha512-FlgTV6dubDE1IMRKiOipTl2uH1eCravcFDfUQlQaxIlz73YEilZhJT7MAentq8VLJoYXsD99F3TfGcIltMA46Q==",
- "requires": {
- "lodash": "^4.6.0",
- "prop-types": "^15.6.0"
- }
- },
"expo-constants": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-5.0.1.tgz",
- "integrity": "sha512-Ny3teALKaE/jFzBg6DHr2GOoHpwQ/OLs3q3VugZOoR6hXCeVcCEP9MyNvhgn/cheeBDAa6UIgarv2Yufb5RMqQ==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-6.0.0.tgz",
+ "integrity": "sha512-O0yL3Ok0YUEWpAqsWjOdgFD/lMfg8PUGH/nq31CZ1s7cuFUlksD42i5YhIRlb0Pa/btK8X9LpfY3eWhx9eTmbg==",
"requires": {
"ua-parser-js": "^0.7.19"
}
},
- "expo-contacts": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/expo-contacts/-/expo-contacts-5.0.2.tgz",
- "integrity": "sha512-mOsov0eomKsscsdRU2HQPLLZ61lzojHNgO3FVyBF/yoxKAIyMYLTjneHbiOEKAFX4yfFT4bztHgcrL26aLooXQ==",
- "requires": {
- "uuid-js": "^0.7.5"
- }
- },
- "expo-crypto": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/expo-crypto/-/expo-crypto-5.0.1.tgz",
- "integrity": "sha512-Tu3d+KJ9eXBNhP5XYvBFQ2n0I0kwlbOw8iEXnbzXmasvhOqr/fPZEdXVbX7xX0/QJE5G1c+OTIV0z/cS8GdVVQ=="
- },
- "expo-document-picker": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/expo-document-picker/-/expo-document-picker-5.0.2.tgz",
- "integrity": "sha512-m8oLY6zmqzbZv2ZLx4R4tpVLJfD68OSC8wlBQHcdzo9TTalsxjO62kp3mxRqfe4Jpj0h7icrl4bqNN4bxSGNNw==",
- "requires": {
- "uuid": "^3.3.2"
- }
- },
- "expo-face-detector": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/expo-face-detector/-/expo-face-detector-5.0.1.tgz",
- "integrity": "sha512-UUsbLtmENF8S86AJIeeLkj89Q1gvk69wYe1lQflNN7Wy8YLhrRq3V833Gt0Mna5tKThTnj0MkfOcmR2w2skgtg=="
- },
- "expo-facebook": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/expo-facebook/-/expo-facebook-5.0.1.tgz",
- "integrity": "sha512-rm28dfPtUcdJEB+7zFgZvwl4G8liYGIfDgxECJGqQZNqFVeRQVxbqyxEBuTBuRmYL/nA5n8egTTeW62NC7v85g=="
- },
"expo-file-system": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-5.0.1.tgz",
- "integrity": "sha512-8AD8Tt0vR8XNIPXOg5akPUPGuf+SCiE9kY5JppUwfJtfIsiH3BZnebu1bkYCVOMojSgFA017kr8VmH57vEWdnQ==",
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-6.0.2.tgz",
+ "integrity": "sha512-s+6oQpLhcT7MQp7fcoj1E+zttMr0WX6c0FrddzqB4dUfhIggV+nb35nQMASIiTHAj8VPUanTFliY5rETHRMHRA==",
"requires": {
"uuid-js": "^0.7.5"
}
},
"expo-font": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-5.0.1.tgz",
- "integrity": "sha512-fa/z31lLi1ut6IGTf9/Kvw9KAlwSGQaBkuunuqjrW2ephqiXlHTeOOsaqKMirtmiqgsKOJysdlYUH1Aw03Y2bg==",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-6.0.1.tgz",
+ "integrity": "sha512-zQwGFTKSrsTWmFzS0l87i6TyqM0YFDK4ui4sSzpbdQsUHXpeG7wfa67i09roLS0xtp85nrR9Vm2bUJp9njV8JQ==",
"requires": {
"fontfaceobserver": "^2.1.0"
}
},
- "expo-gl": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/expo-gl/-/expo-gl-5.0.1.tgz",
- "integrity": "sha512-S3LRjIpyedR04QeeSXOJRxPgq8s+o0W3bFlvKZS0ch54xFYJqDk/TM2YTJYY5j9aR4HY/hypnDbP231NwNm30w==",
- "requires": {
- "expo-gl-cpp": "~5.0.1",
- "prop-types": "^15.6.2"
- }
- },
- "expo-gl-cpp": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/expo-gl-cpp/-/expo-gl-cpp-5.0.1.tgz",
- "integrity": "sha512-4RMylFwAyakmi5Dp8Vqomq6N+Ywx81ehM3UqhFLuaEkS7dmKd8UQBKwiTiaFcDLsNkvLbTnyllAx7/qctJLQvQ=="
- },
- "expo-google-sign-in": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/expo-google-sign-in/-/expo-google-sign-in-5.0.1.tgz",
- "integrity": "sha512-VwKIiG+S7uswF27RN9+WBO4dGQhmBPeqYnlBjuw3Zf8pS+tZcE5VROb1PBzyhgn4WEvGEql+40axm8fIMlensw==",
- "requires": {
- "invariant": "^2.2.4"
- }
- },
- "expo-haptics": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/expo-haptics/-/expo-haptics-5.0.1.tgz",
- "integrity": "sha512-+ULs5ZNJXT81PILX+Dpp1l9AvcfZZUazg9wX7Dho//ZIaWncPpd5kkiqZpgBlIJNmr7W0rjGcaD8SqVXgesnKg=="
- },
- "expo-image-manipulator": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/expo-image-manipulator/-/expo-image-manipulator-5.0.1.tgz",
- "integrity": "sha512-9SOp1hAF4CghwsnO3odx1/ia7NlMrXX/6uIWx+1nxDYGhRg52YFB/Kv84vXS/a5cSGuewBPc4t3++QTo9S7qdQ=="
- },
- "expo-image-picker": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/expo-image-picker/-/expo-image-picker-5.0.2.tgz",
- "integrity": "sha512-6Lf0rd21JhcOxL0ThL0VLewaR0w8SZ/49FYFsyx/XGpo6CSqu9AOZrS11BnVqlwHPaiS4OPsFSlO4IhEF72mFQ=="
- },
- "expo-intent-launcher": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/expo-intent-launcher/-/expo-intent-launcher-5.0.1.tgz",
- "integrity": "sha512-fvcwkKBcDwKo6JxTGRM3112zgmPbuPtmQx6TdJWuRPJTBWmeCAG2AelohMt1+xzqpnJxnkXEXET2WoMuI+BXvw=="
- },
"expo-keep-awake": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-5.0.1.tgz",
- "integrity": "sha512-DPWAqgxbmLyJoCXPbDXbj+1XFjP/ulv4AYzvi1a+jsvZRU2uiFdho0w269Y++DLCQf30vbuu3zs5HiaJGU43fA=="
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-6.0.0.tgz",
+ "integrity": "sha512-MAtZknf6FtIC0ipkDS2FVa87al8YBsrpsQ2qMf+H/cI6FOd6aahaggN4x75xGnt5UzozgWfjhGNCi1XCr14rJw=="
},
"expo-linear-gradient": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/expo-linear-gradient/-/expo-linear-gradient-5.0.1.tgz",
- "integrity": "sha512-5dKn9JIXmXXHq6itC/Jpqo65Tkgjwacyw1kpD8sekoFTEVfT6ciFd2djqIcciUqIa57FF/5d2q54mUvjoqD/TA=="
- },
- "expo-local-authentication": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/expo-local-authentication/-/expo-local-authentication-5.0.1.tgz",
- "integrity": "sha512-Fy4T/5N/WUIFsbuRCDWOZzKejbe90nuCbyD4I5rOmHTZRbIxDfGePUUF/fJv5JhjxEl87QdrIlNMpLLyTLiRqw==",
- "requires": {
- "invariant": "^2.2.4"
- }
- },
- "expo-localization": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/expo-localization/-/expo-localization-5.0.1.tgz",
- "integrity": "sha512-tPubS0oSO9nI3rdqnhnuhegV1REE1h3ltXNgtKX9oj9gHeZ+j7trQChF4xb1IGwaKTVm/ur1f4mkhRpQddJIUg==",
- "requires": {
- "rtl-detect": "^1.0.2"
- }
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/expo-linear-gradient/-/expo-linear-gradient-6.0.0.tgz",
+ "integrity": "sha512-TGHSK7MsoU1wZXx9uEivMggAR/KT4wTSE0xBfhB8qsziGXoHZdoT79/tZ3HyWtCG7+JVUEFXfUOBxtOlZOu5tg=="
},
"expo-location": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/expo-location/-/expo-location-5.0.1.tgz",
- "integrity": "sha512-YXMrPuYlLfqcHxKjwdc99XjCpeJYWtxu6kqaM9f++u/zjeup95YNnlzeq8uD7YhNuWk8O6boVAFTSXPn9bY+9w==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/expo-location/-/expo-location-6.0.0.tgz",
+ "integrity": "sha512-5uSebmZos0DKJ/xpi+2e9myWVPUWk+fshFedi55wzlGqy2YpTG5MlDcCLlJlamgJ5Tm8+3ECdhbFX3g1pNRDVQ==",
"requires": {
"invariant": "^2.2.4"
}
},
- "expo-mail-composer": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/expo-mail-composer/-/expo-mail-composer-5.0.1.tgz",
- "integrity": "sha512-ps927F7BY+m1BzVqDYamIgVxmcaE8USQmBXNoligDzl/VqyKhS+68FijkLRdowRo5zGdXIHiZF9EW1Cvbcm3Vw==",
- "requires": {
- "lodash": "^4.6.0",
- "query-string": "^6.2.0"
- }
- },
- "expo-media-library": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/expo-media-library/-/expo-media-library-5.0.1.tgz",
- "integrity": "sha512-b5DHS+Ga8dyhw1+xQDB7Dafiea1jd91iOXbaE8LWg+awUDXTh6Ss14KMh8WI2mE3DVbBkcuLPTQ9NXlM2Oz67Q=="
- },
- "expo-payments-stripe": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/expo-payments-stripe/-/expo-payments-stripe-5.0.1.tgz",
- "integrity": "sha512-U1SP9QPrCUUgYURGysUsQN1VEHs88ok+vTd30vsdbKq3TkguIPc0HuL/p2VE48KpVuykLKTmD4j9Ey56qUUiLg=="
- },
"expo-permissions": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/expo-permissions/-/expo-permissions-5.0.1.tgz",
- "integrity": "sha512-cOg9f9TaV8grORTwLSuoPfviDGcJSALjaALvxdmQD5ujPW6lxO6Ofd/s4/dV4L3lJww4HXiurjPJnT5yo+3ydw=="
- },
- "expo-print": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/expo-print/-/expo-print-5.0.1.tgz",
- "integrity": "sha512-cQ7kyKoAfL52iRnXH7b0aHNmZdORURBXZLZ6z495XG/S52nox1GtuXdZSSfo9qptDwWaKbsetVzDAM58LVIoWw=="
- },
- "expo-random": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/expo-random/-/expo-random-5.0.1.tgz",
- "integrity": "sha512-VUPDd8Ds1adaQoaCxTvEsSdiE02LuszazkxwvDjykE+oPG9CYOcc19yvk8wivyciEkMnjD5zYkM67ystFELGXw==",
- "requires": {
- "base64-js": "^1.3.0"
- }
- },
- "expo-secure-store": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/expo-secure-store/-/expo-secure-store-5.0.1.tgz",
- "integrity": "sha512-iA0/MJCHZk9z5OdxEXH5TYEDKq5sEIdASBr/7XkdCl+gB7+3peSeEXsXPRK+TK/Tzo9JGgfYrXha/CsVC9nD5A=="
- },
- "expo-sensors": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/expo-sensors/-/expo-sensors-5.0.1.tgz",
- "integrity": "sha512-mPpcPKUDeVO/vtpHnHix3yczxlYWv+cHw6w2aeVem3zaXGeg+1pHH95h/pzUgO4B7Y8lci+OnozA5YFy0yNyjA==",
- "requires": {
- "invariant": "^2.2.4"
- }
- },
- "expo-sharing": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/expo-sharing/-/expo-sharing-5.0.1.tgz",
- "integrity": "sha512-oBrRpVnhPxDb6qgC4RkcGz82JfTz7ao4uI+/DC8OJGUkRyCczVHuDG0v4R6jLMPld8dkjAxUmUkba7JVgg53FQ=="
- },
- "expo-sms": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/expo-sms/-/expo-sms-5.0.1.tgz",
- "integrity": "sha512-rGZkTsCLqbigUD7OKYHEt9vYBMG43ne+j8NvWbBwl1DFtkPcAZQIBN7pMFnXjRY0FLZnFePFDeYpboGquyQrgQ=="
- },
- "expo-speech": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/expo-speech/-/expo-speech-5.0.2.tgz",
- "integrity": "sha512-AbLIM0lPUA9X+iCq20W7KW4Z/k6CvtKdCHZXEzJXqmm45YnCqENpSmrhVwePG6Lem6MJ4Bzg4DTC0UXl57SD4Q=="
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/expo-permissions/-/expo-permissions-6.0.0.tgz",
+ "integrity": "sha512-O+RdyfGiq7i+5Vi9fE38DgKn436lNWiqhnS5/Z7CC00bmKahhjVMNDbZvNn/nrdRGyaPneJk1Co1s1sexSnv0A=="
},
"expo-sqlite": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/expo-sqlite/-/expo-sqlite-5.0.1.tgz",
- "integrity": "sha512-NQXFcjSScpjCRAC+oKQ1Fn+RYSLkYHudaiJSG5wqN28pKqg3yLqjpPG2gDbq/PvgHYkjZXBnvrNgmddjFzDyIQ==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/expo-sqlite/-/expo-sqlite-6.0.0.tgz",
+ "integrity": "sha512-M8heovLeJoq7tb4f7PipDu0dqHSklbI2EqNvDM8XLjSZdSv6CqCMHg5Kvx0L9CLYTchjzktDPClZKjgvtGOVug==",
"requires": {
"@expo/websql": "^1.0.1",
"@types/websql": "^0.0.27",
"lodash": "^4.17.11"
}
},
- "expo-task-manager": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/expo-task-manager/-/expo-task-manager-5.0.1.tgz",
- "integrity": "sha512-ManMdoYH++K2ZaRCYc2hfi1N33XTzjn1o1O8Qkj8JH49VssOzW9TF1URw2j+qRt3iN5Iba4+ECONoi++GoCiqw=="
- },
"expo-web-browser": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/expo-web-browser/-/expo-web-browser-5.0.3.tgz",
- "integrity": "sha512-Etue3QfBki4shFChsVd3Of3xvY7KsXoNINKvckiRCmcCjOC5bGiZ+Grhf70YEHVUB2bEcAUeZhC9Tg0Ip2tdEQ=="
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/expo-web-browser/-/expo-web-browser-6.0.0.tgz",
+ "integrity": "sha512-7XkFPd4PRlVP6FscTnn78c0tY6+yLzb2Eai/ed+l+LB+hZWuhyY3ONzYM7/IKAiPmfhZr4Qs80vIa7iiavti8A=="
},
"express": {
"version": "4.17.1",
@@ -4848,6 +4592,12 @@
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
"integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=",
"dev": true
+ },
+ "qs": {
+ "version": "6.7.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
+ "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
+ "dev": true
}
}
},
@@ -5888,25 +5638,21 @@
"dependencies": {
"abbrev": {
"version": "1.1.1",
- "resolved": false,
- "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
+ "bundled": true,
"optional": true
},
"ansi-regex": {
"version": "2.1.1",
- "resolved": false,
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
+ "bundled": true
},
"aproba": {
"version": "1.2.0",
- "resolved": false,
- "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
+ "bundled": true,
"optional": true
},
"are-we-there-yet": {
"version": "1.1.5",
- "resolved": false,
- "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
+ "bundled": true,
"optional": true,
"requires": {
"delegates": "^1.0.0",
@@ -5915,13 +5661,11 @@
},
"balanced-match": {
"version": "1.0.0",
- "resolved": false,
- "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
+ "bundled": true
},
"brace-expansion": {
"version": "1.1.11",
- "resolved": false,
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "bundled": true,
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -5929,35 +5673,29 @@
},
"chownr": {
"version": "1.1.1",
- "resolved": false,
- "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==",
+ "bundled": true,
"optional": true
},
"code-point-at": {
"version": "1.1.0",
- "resolved": false,
- "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
+ "bundled": true
},
"concat-map": {
"version": "0.0.1",
- "resolved": false,
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ "bundled": true
},
"console-control-strings": {
"version": "1.1.0",
- "resolved": false,
- "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
+ "bundled": true
},
"core-util-is": {
"version": "1.0.2",
- "resolved": false,
- "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+ "bundled": true,
"optional": true
},
"debug": {
"version": "4.1.1",
- "resolved": false,
- "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+ "bundled": true,
"optional": true,
"requires": {
"ms": "^2.1.1"
@@ -5965,26 +5703,22 @@
},
"deep-extend": {
"version": "0.6.0",
- "resolved": false,
- "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
+ "bundled": true,
"optional": true
},
"delegates": {
"version": "1.0.0",
- "resolved": false,
- "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
+ "bundled": true,
"optional": true
},
"detect-libc": {
"version": "1.0.3",
- "resolved": false,
- "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=",
+ "bundled": true,
"optional": true
},
"fs-minipass": {
"version": "1.2.5",
- "resolved": false,
- "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==",
+ "bundled": true,
"optional": true,
"requires": {
"minipass": "^2.2.1"
@@ -5992,14 +5726,12 @@
},
"fs.realpath": {
"version": "1.0.0",
- "resolved": false,
- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "bundled": true,
"optional": true
},
"gauge": {
"version": "2.7.4",
- "resolved": false,
- "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
+ "bundled": true,
"optional": true,
"requires": {
"aproba": "^1.0.3",
@@ -6014,8 +5746,7 @@
},
"glob": {
"version": "7.1.3",
- "resolved": false,
- "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
+ "bundled": true,
"optional": true,
"requires": {
"fs.realpath": "^1.0.0",
@@ -6028,14 +5759,12 @@
},
"has-unicode": {
"version": "2.0.1",
- "resolved": false,
- "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
+ "bundled": true,
"optional": true
},
"iconv-lite": {
"version": "0.4.24",
- "resolved": false,
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "bundled": true,
"optional": true,
"requires": {
"safer-buffer": ">= 2.1.2 < 3"
@@ -6043,8 +5772,7 @@
},
"ignore-walk": {
"version": "3.0.1",
- "resolved": false,
- "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==",
+ "bundled": true,
"optional": true,
"requires": {
"minimatch": "^3.0.4"
@@ -6052,8 +5780,7 @@
},
"inflight": {
"version": "1.0.6",
- "resolved": false,
- "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "bundled": true,
"optional": true,
"requires": {
"once": "^1.3.0",
@@ -6062,46 +5789,39 @@
},
"inherits": {
"version": "2.0.3",
- "resolved": false,
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+ "bundled": true
},
"ini": {
"version": "1.3.5",
- "resolved": false,
- "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
+ "bundled": true,
"optional": true
},
"is-fullwidth-code-point": {
"version": "1.0.0",
- "resolved": false,
- "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "bundled": true,
"requires": {
"number-is-nan": "^1.0.0"
}
},
"isarray": {
"version": "1.0.0",
- "resolved": false,
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "bundled": true,
"optional": true
},
"minimatch": {
"version": "3.0.4",
- "resolved": false,
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "bundled": true,
"requires": {
"brace-expansion": "^1.1.7"
}
},
"minimist": {
"version": "0.0.8",
- "resolved": false,
- "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
+ "bundled": true
},
"minipass": {
"version": "2.3.5",
- "resolved": false,
- "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==",
+ "bundled": true,
"requires": {
"safe-buffer": "^5.1.2",
"yallist": "^3.0.0"
@@ -6109,8 +5829,7 @@
},
"minizlib": {
"version": "1.2.1",
- "resolved": false,
- "integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==",
+ "bundled": true,
"optional": true,
"requires": {
"minipass": "^2.2.1"
@@ -6118,22 +5837,19 @@
},
"mkdirp": {
"version": "0.5.1",
- "resolved": false,
- "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "bundled": true,
"requires": {
"minimist": "0.0.8"
}
},
"ms": {
"version": "2.1.1",
- "resolved": false,
- "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+ "bundled": true,
"optional": true
},
"needle": {
"version": "2.3.0",
- "resolved": false,
- "integrity": "sha512-QBZu7aAFR0522EyaXZM0FZ9GLpq6lvQ3uq8gteiDUp7wKdy0lSd2hPlgFwVuW1CBkfEs9PfDQsQzZghLs/psdg==",
+ "bundled": true,
"optional": true,
"requires": {
"debug": "^4.1.0",
@@ -6143,8 +5859,7 @@
},
"node-pre-gyp": {
"version": "0.12.0",
- "resolved": false,
- "integrity": "sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A==",
+ "bundled": true,
"optional": true,
"requires": {
"detect-libc": "^1.0.2",
@@ -6161,8 +5876,7 @@
},
"nopt": {
"version": "4.0.1",
- "resolved": false,
- "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=",
+ "bundled": true,
"optional": true,
"requires": {
"abbrev": "1",
@@ -6171,14 +5885,12 @@
},
"npm-bundled": {
"version": "1.0.6",
- "resolved": false,
- "integrity": "sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==",
+ "bundled": true,
"optional": true
},
"npm-packlist": {
"version": "1.4.1",
- "resolved": false,
- "integrity": "sha512-+TcdO7HJJ8peiiYhvPxsEDhF3PJFGUGRcFsGve3vxvxdcpO2Z4Z7rkosRM0kWj6LfbK/P0gu3dzk5RU1ffvFcw==",
+ "bundled": true,
"optional": true,
"requires": {
"ignore-walk": "^3.0.1",
@@ -6187,8 +5899,7 @@
},
"npmlog": {
"version": "4.1.2",
- "resolved": false,
- "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
+ "bundled": true,
"optional": true,
"requires": {
"are-we-there-yet": "~1.1.2",
@@ -6199,39 +5910,33 @@
},
"number-is-nan": {
"version": "1.0.1",
- "resolved": false,
- "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
+ "bundled": true
},
"object-assign": {
"version": "4.1.1",
- "resolved": false,
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "bundled": true,
"optional": true
},
"once": {
"version": "1.4.0",
- "resolved": false,
- "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "bundled": true,
"requires": {
"wrappy": "1"
}
},
"os-homedir": {
"version": "1.0.2",
- "resolved": false,
- "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
+ "bundled": true,
"optional": true
},
"os-tmpdir": {
"version": "1.0.2",
- "resolved": false,
- "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
+ "bundled": true,
"optional": true
},
"osenv": {
"version": "0.1.5",
- "resolved": false,
- "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
+ "bundled": true,
"optional": true,
"requires": {
"os-homedir": "^1.0.0",
@@ -6240,20 +5945,17 @@
},
"path-is-absolute": {
"version": "1.0.1",
- "resolved": false,
- "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "bundled": true,
"optional": true
},
"process-nextick-args": {
"version": "2.0.0",
- "resolved": false,
- "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
+ "bundled": true,
"optional": true
},
"rc": {
"version": "1.2.8",
- "resolved": false,
- "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+ "bundled": true,
"optional": true,
"requires": {
"deep-extend": "^0.6.0",
@@ -6264,16 +5966,14 @@
"dependencies": {
"minimist": {
"version": "1.2.0",
- "resolved": false,
- "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "bundled": true,
"optional": true
}
}
},
"readable-stream": {
"version": "2.3.6",
- "resolved": false,
- "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
+ "bundled": true,
"optional": true,
"requires": {
"core-util-is": "~1.0.0",
@@ -6287,8 +5987,7 @@
},
"rimraf": {
"version": "2.6.3",
- "resolved": false,
- "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
+ "bundled": true,
"optional": true,
"requires": {
"glob": "^7.1.3"
@@ -6296,43 +5995,36 @@
},
"safe-buffer": {
"version": "5.1.2",
- "resolved": false,
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ "bundled": true
},
"safer-buffer": {
"version": "2.1.2",
- "resolved": false,
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+ "bundled": true,
"optional": true
},
"sax": {
"version": "1.2.4",
- "resolved": false,
- "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
+ "bundled": true,
"optional": true
},
"semver": {
"version": "5.7.0",
- "resolved": false,
- "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
+ "bundled": true,
"optional": true
},
"set-blocking": {
"version": "2.0.0",
- "resolved": false,
- "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
+ "bundled": true,
"optional": true
},
"signal-exit": {
"version": "3.0.2",
- "resolved": false,
- "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
+ "bundled": true,
"optional": true
},
"string-width": {
"version": "1.0.2",
- "resolved": false,
- "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "bundled": true,
"requires": {
"code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0",
@@ -6341,8 +6033,7 @@
},
"string_decoder": {
"version": "1.1.1",
- "resolved": false,
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "bundled": true,
"optional": true,
"requires": {
"safe-buffer": "~5.1.0"
@@ -6350,22 +6041,19 @@
},
"strip-ansi": {
"version": "3.0.1",
- "resolved": false,
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "bundled": true,
"requires": {
"ansi-regex": "^2.0.0"
}
},
"strip-json-comments": {
"version": "2.0.1",
- "resolved": false,
- "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
+ "bundled": true,
"optional": true
},
"tar": {
"version": "4.4.8",
- "resolved": false,
- "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==",
+ "bundled": true,
"optional": true,
"requires": {
"chownr": "^1.1.1",
@@ -6379,14 +6067,12 @@
},
"util-deprecate": {
"version": "1.0.2",
- "resolved": false,
- "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+ "bundled": true,
"optional": true
},
"wide-align": {
"version": "1.1.3",
- "resolved": false,
- "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
+ "bundled": true,
"optional": true,
"requires": {
"string-width": "^1.0.2 || 2"
@@ -6394,21 +6080,18 @@
},
"wrappy": {
"version": "1.0.2",
- "resolved": false,
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ "bundled": true
},
"yallist": {
"version": "3.0.3",
- "resolved": false,
- "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A=="
+ "bundled": true
}
}
},
"function-bind": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
- "dev": true
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
},
"gauge": {
"version": "1.2.7",
@@ -6559,15 +6242,10 @@
}
}
},
- "google-maps-infobox": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/google-maps-infobox/-/google-maps-infobox-2.0.0.tgz",
- "integrity": "sha512-hTuWmWZZSOxf5D/z7l3/hTF1grgRvLG53BEKMdjiKOG+FcK/kH7vqseUeyIU9Zj2ZIqKTOaro0nknxpAuRq4Vw=="
- },
"graceful-fs": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.0.tgz",
- "integrity": "sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg=="
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
+ "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q=="
},
"growly": {
"version": "1.3.0",
@@ -6624,8 +6302,7 @@
"has-symbols": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
- "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
- "dev": true
+ "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q="
},
"has-unicode": {
"version": "2.0.1",
@@ -6747,9 +6424,9 @@
"dev": true
},
"hosted-git-info": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz",
- "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w=="
+ "version": "2.8.4",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.4.tgz",
+ "integrity": "sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ=="
},
"hsl-regex": {
"version": "1.0.0",
@@ -6858,6 +6535,12 @@
"readable-stream": "^3.1.1"
},
"dependencies": {
+ "entities": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
+ "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==",
+ "dev": true
+ },
"readable-stream": {
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz",
@@ -7045,6 +6728,12 @@
"integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=",
"dev": true
},
+ "infer-owner": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz",
+ "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==",
+ "dev": true
+ },
"inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@@ -7410,9 +7099,9 @@
}
},
"jest-serializer": {
- "version": "24.4.0",
- "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.4.0.tgz",
- "integrity": "sha512-k//0DtglVstc1fv+GY/VHDIjrtNjdYvYjMlbLUed4kxrE92sIUewOi5Hj3vrpB8CXfkJntRPDRjCrCvUhBdL8Q=="
+ "version": "24.9.0",
+ "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.9.0.tgz",
+ "integrity": "sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ=="
},
"jest-worker": {
"version": "24.0.0-alpha.6",
@@ -7596,9 +7285,9 @@
}
},
"lodash": {
- "version": "4.17.11",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
- "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg=="
+ "version": "4.17.15",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
+ "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
},
"lodash._reinterpolate": {
"version": "3.0.0",
@@ -7628,22 +7317,22 @@
"integrity": "sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs="
},
"lodash.template": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz",
- "integrity": "sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=",
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz",
+ "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==",
"dev": true,
"requires": {
- "lodash._reinterpolate": "~3.0.0",
+ "lodash._reinterpolate": "^3.0.0",
"lodash.templatesettings": "^4.0.0"
}
},
"lodash.templatesettings": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz",
- "integrity": "sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz",
+ "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==",
"dev": true,
"requires": {
- "lodash._reinterpolate": "~3.0.0"
+ "lodash._reinterpolate": "^3.0.0"
}
},
"lodash.throttle": {
@@ -7665,22 +7354,6 @@
"js-tokens": "^3.0.0 || ^4.0.0"
}
},
- "lottie-ios": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/lottie-ios/-/lottie-ios-2.5.0.tgz",
- "integrity": "sha1-VcgI54XUppM7DBCzlVMLFwmLBd4="
- },
- "lottie-react-native": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/lottie-react-native/-/lottie-react-native-2.6.1.tgz",
- "integrity": "sha512-Z+6lARvWWhB8n8OSmW7/aHkV71ftsmO7hYXFt0D+REy/G40mpkQt1H7Cdy1HqY4cKAp7EYDWVxhu5+fkdD6o4g==",
- "requires": {
- "invariant": "^2.2.2",
- "lottie-ios": "2.5.0",
- "prop-types": "^15.5.10",
- "react-native-safe-module": "^1.1.0"
- }
- },
"lower-case": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
@@ -7743,16 +7416,6 @@
"object-visit": "^1.0.0"
}
},
- "marker-clusterer-plus": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/marker-clusterer-plus/-/marker-clusterer-plus-2.1.4.tgz",
- "integrity": "sha1-+O/3TVmdqzt9Dj/tUmTqDnBPXWc="
- },
- "markerwithlabel": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/markerwithlabel/-/markerwithlabel-2.0.2.tgz",
- "integrity": "sha512-C/cbm1A0h/u54gwHk5ZJNdUU3V3+1BbCpRPMsMyFA7vF4yL+aB4rWpxACz29TpQ+cTg6/iQroExh0PMSRGtQFg=="
- },
"math-random": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz",
@@ -7778,9 +7441,9 @@
}
},
"mdn-data": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-1.1.4.tgz",
- "integrity": "sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA==",
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz",
+ "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==",
"dev": true
},
"media-typer": {
@@ -7827,9 +7490,9 @@
}
},
"merge2": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.3.tgz",
- "integrity": "sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA==",
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.4.tgz",
+ "integrity": "sha512-FYE8xI+6pjFOhokZu0We3S5NKCirLbCzSh2Usf3qEyr4X8U+0jNg9P8RZ4qz+V2UoECLVwSyzU3LxXBaLGtD3A==",
"dev": true
},
"methods": {
@@ -8528,9 +8191,9 @@
}
},
"node-abi": {
- "version": "2.9.0",
- "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.9.0.tgz",
- "integrity": "sha512-jmEOvv0eanWjhX8dX1pmjb7oJl1U1oR4FOh0b2GnvALwSYoOdU7sj+kLDSAyjo4pfC9aj/IxkloxdLJQhSSQBA==",
+ "version": "2.11.0",
+ "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.11.0.tgz",
+ "integrity": "sha512-kuy/aEg75u40v378WRllQ4ZexaXJiCvB68D2scDXclp/I4cRq6togpbOoKhmN07tns9Zldu51NNERo0wehfX9g==",
"dev": true,
"optional": true,
"requires": {
@@ -8602,9 +8265,9 @@
"integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA="
},
"node-notifier": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.0.tgz",
- "integrity": "sha512-SUDEb+o71XR5lXSTyivXd9J7fCloE3SyP4lSgt3lU2oSANiox+SxlNRGPjDKrwU1YN3ix2KN/VGGCg0t01rttQ==",
+ "version": "5.4.3",
+ "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.3.tgz",
+ "integrity": "sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q==",
"requires": {
"growly": "^1.3.0",
"is-wsl": "^1.1.0",
@@ -8614,9 +8277,9 @@
}
},
"node-releases": {
- "version": "1.1.24",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.24.tgz",
- "integrity": "sha512-wym2jptfuKowMmkZsfCSTsn8qAVo8zm+UiQA6l5dNqUcpfChZSnS/vbbpOeXczf+VdPhutxh+99lWHhdd6xKzg==",
+ "version": "1.1.27",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.27.tgz",
+ "integrity": "sha512-9iXUqHKSGo6ph/tdXVbHFbhRVQln4ZDTIBJCzsa90HimnBYc5jw8RWYt4wBYFHehGyC3koIz5O4mb2fHrbPOuA==",
"requires": {
"semver": "^5.3.0"
}
@@ -8728,8 +8391,7 @@
"object-keys": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "dev": true
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
},
"object-visit": {
"version": "1.0.1",
@@ -8750,7 +8412,6 @@
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
"integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
- "dev": true,
"requires": {
"define-properties": "^1.1.2",
"function-bind": "^1.1.1",
@@ -9172,9 +8833,9 @@
}
},
"p-limit": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz",
- "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==",
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz",
+ "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==",
"requires": {
"p-try": "^2.0.0"
}
@@ -10023,14 +9684,14 @@
"dev": true
},
"qs": {
- "version": "6.7.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
- "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
+ "version": "6.8.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.8.0.tgz",
+ "integrity": "sha512-tPSkj8y92PfZVbinY1n84i1Qdx75lZjMQYx9WZhnkofyxzw2r7Ho39G3/aEvSUdebxpnnM4LZJCtvE/Aq3+s9w=="
},
"query-string": {
- "version": "6.8.1",
- "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.8.1.tgz",
- "integrity": "sha512-g6y0Lbq10a5pPQpjlFuojfMfV1Pd2Jw9h75ypiYPPia3Gcq2rgkKiIwbkS6JxH7c5f5u/B/sB+d13PU+g1eu4Q==",
+ "version": "6.8.2",
+ "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.8.2.tgz",
+ "integrity": "sha512-J3Qi8XZJXh93t2FiKyd/7Ec6GNifsjKXUsVFkSBj/kjLsDylWhnCz4NT1bkPcKotttPW+QbKGqqPH8OoI2pdqw==",
"requires": {
"decode-uri-component": "^0.2.0",
"split-on-first": "^1.0.0",
@@ -10153,14 +9814,14 @@
}
},
"react": {
- "version": "16.8.6",
- "resolved": "https://registry.npmjs.org/react/-/react-16.8.6.tgz",
- "integrity": "sha512-pC0uMkhLaHm11ZSJULfOBqV4tIZkx87ZLvbbQYunNixAAvjnC+snJCg0XQXn9VIsttVsbZP/H/ewzgsd5fxKXw==",
+ "version": "16.8.3",
+ "resolved": "https://registry.npmjs.org/react/-/react-16.8.3.tgz",
+ "integrity": "sha512-3UoSIsEq8yTJuSu0luO1QQWYbgGEILm+eJl2QN/VLDi7hL+EN18M3q3oVZwmVzzBJ3DkM7RMdRwBmZZ+b4IzSA==",
"requires": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1",
"prop-types": "^15.6.2",
- "scheduler": "^0.13.6"
+ "scheduler": "^0.13.3"
}
},
"react-clone-referenced-element": {
@@ -10205,6 +9866,15 @@
"text-table": "0.2.0"
},
"dependencies": {
+ "@babel/code-frame": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz",
+ "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==",
+ "dev": true,
+ "requires": {
+ "@babel/highlight": "^7.0.0"
+ }
+ },
"ansi-regex": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
@@ -10239,9 +9909,9 @@
}
},
"external-editor": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz",
- "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
+ "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
"dev": true,
"requires": {
"chardet": "^0.7.0",
@@ -10314,9 +9984,9 @@
}
},
"p-limit": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz",
- "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==",
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz",
+ "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==",
"dev": true,
"requires": {
"p-try": "^2.0.0"
@@ -10370,9 +10040,9 @@
}
},
"react-devtools-core": {
- "version": "3.6.1",
- "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-3.6.1.tgz",
- "integrity": "sha512-I/LSX+tpeTrGKaF1wXSfJ/kP+6iaP2JfshEjW8LtQBdz6c6HhzOJtjZXhqOUrAdysuey8M1/JgPY1flSVVt8Ig==",
+ "version": "3.6.3",
+ "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-3.6.3.tgz",
+ "integrity": "sha512-+P+eFy/yo8Z/UH9J0DqHZuUM5+RI2wl249TNvMx3J2jpUomLQa4Zxl56GEotGfw3PIP1eI+hVf1s53FlUONStQ==",
"requires": {
"shell-quote": "^1.6.1",
"ws": "^3.3.1"
@@ -10396,14 +10066,25 @@
}
},
"react-dom": {
- "version": "16.8.6",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.8.6.tgz",
- "integrity": "sha512-1nL7PIq9LTL3fthPqwkvr2zY7phIPjYrT0jp4HjyEQrEROnw4dG41VVwi/wfoCneoleqrNX7iAD+pXebJZwrwA==",
+ "version": "16.9.0",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.9.0.tgz",
+ "integrity": "sha512-YFT2rxO9hM70ewk9jq0y6sQk8cL02xm4+IzYBz75CQGlClQQ1Bxq0nhHF6OtSbit+AIahujJgb/CPRibFkMNJQ==",
"requires": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1",
"prop-types": "^15.6.2",
- "scheduler": "^0.13.6"
+ "scheduler": "^0.15.0"
+ },
+ "dependencies": {
+ "scheduler": {
+ "version": "0.15.0",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.15.0.tgz",
+ "integrity": "sha512-xAefmSfN6jqAa7Kuq7LIJY0bwAPG3xlCj0HMEBQk1lxYiDKZscY2xJ5U/61ZTrYbmNQbXa+gc7czPkVo11tnCg==",
+ "requires": {
+ "loose-envify": "^1.1.0",
+ "object-assign": "^4.1.1"
+ }
+ }
}
},
"react-error-overlay": {
@@ -10412,28 +10093,10 @@
"integrity": "sha512-X1Y+0jR47ImDVr54Ab6V9eGk0Hnu7fVWGeHQSOXHf/C2pF9c6uy3gef8QUeuUiWlNb0i08InPSE5a/KJzNzw1Q==",
"dev": true
},
- "react-google-maps": {
- "version": "9.4.5",
- "resolved": "https://registry.npmjs.org/react-google-maps/-/react-google-maps-9.4.5.tgz",
- "integrity": "sha512-8z5nX9DxIcBCXuEiurmRT1VXVwnzx0C6+3Es6lxB2/OyY2SLax2/LcDu6Aldxnl3HegefTL7NJzGeaKAJ61pOA==",
- "requires": {
- "babel-runtime": "^6.11.6",
- "can-use-dom": "^0.1.0",
- "google-maps-infobox": "^2.0.0",
- "invariant": "^2.2.1",
- "lodash": "^4.16.2",
- "marker-clusterer-plus": "^2.1.4",
- "markerwithlabel": "^2.0.1",
- "prop-types": "^15.5.8",
- "recompose": "^0.26.0",
- "scriptjs": "^2.5.8",
- "warning": "^3.0.0"
- }
- },
"react-is": {
- "version": "16.8.6",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.6.tgz",
- "integrity": "sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA=="
+ "version": "16.9.0",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.9.0.tgz",
+ "integrity": "sha512-tJBzzzIgnnRfEm046qRcURvwQnZVXmuCbscxUO5RWrGTXpon2d4c8mI0D8WE6ydVIm29JiLB6+RslkIvym9Rjw=="
},
"react-lifecycles-compat": {
"version": "3.0.4",
@@ -10556,56 +10219,41 @@
}
},
"react-native-branch": {
- "version": "2.2.5",
- "resolved": "https://registry.npmjs.org/react-native-branch/-/react-native-branch-2.2.5.tgz",
- "integrity": "sha1-QHTdY7SXPmOX2c5Q6XtXx3pRjp0="
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/react-native-branch/-/react-native-branch-3.0.1.tgz",
+ "integrity": "sha512-vbcYxPZlpF5f39GAEUF8kuGQqCNeD3E6zEdvtOq8oCGZunHXlWlKgAS6dgBKCvsHvXgHuMtpvs39VgOp8DaKig=="
},
"react-native-gesture-handler": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-1.2.1.tgz",
- "integrity": "sha512-c1+L72Vjc/bwHKcIJ8a2/88SW9l3/axcAIpg3zB1qTzwdCxHZJeQn6d58cQXHPepxFBbgfTCo60B7SipSfo+zw==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-1.3.0.tgz",
+ "integrity": "sha512-ASRFIXBuKRvqlmwkWJhV8yP2dTpvcqVrLNpd7FKVBFHYWr6SAxjGyO9Ik8w1lAxDhMlRP2IcJ9p9eq5X2WWeLQ==",
"requires": {
"hoist-non-react-statics": "^2.3.1",
"invariant": "^2.2.2",
"prop-types": "^15.5.10"
}
},
- "react-native-maps": {
- "version": "0.24.2",
- "resolved": "https://registry.npmjs.org/react-native-maps/-/react-native-maps-0.24.2.tgz",
- "integrity": "sha512-1iNIDikp2dkCG+8DguaEviYZiMSYyvwqYT7pO2YTZvuFRDSc/P9jXMhTUnSh4wNDlEeQ47OJ09l0pwWVBZ7wxg=="
- },
"react-native-reanimated": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-1.0.1.tgz",
- "integrity": "sha512-RENoo6/sJc3FApP7vJ1Js7WyDuTVh97bbr5aMjJyw3kqpR2/JDHyL/dQFfOvSSAc+VjitpR9/CfPPad7tLRiIA=="
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-1.2.0.tgz",
+ "integrity": "sha512-vkWRHrPK5qfHP/ZawlRoo38oeYe9NZaaOH/lmFxRcsKzaSK6x3H5ZPXI8lK6MfTLveqwo1QhJje3zIKXO4nQQw=="
},
"react-native-safe-area-view": {
- "version": "0.14.5",
- "resolved": "https://registry.npmjs.org/react-native-safe-area-view/-/react-native-safe-area-view-0.14.5.tgz",
- "integrity": "sha512-1NxWK1G0gzwCOuyNV/zf4n18s6FWsiqgwkzU3P9C0Iu8AErjhstK1jUqpRwzLH8+/7hGLsrQedmn+ZbQTOrJPg==",
+ "version": "0.14.7",
+ "resolved": "https://registry.npmjs.org/react-native-safe-area-view/-/react-native-safe-area-view-0.14.7.tgz",
+ "integrity": "sha512-fmuBYpvKDJK33bimo4JXrK2BN2CGw7nof1y1LDRgzqv+FZ3eADSDGshprN8WeQqSZjQ20hJx1CiWk28Edg/v4Q==",
"requires": {
"hoist-non-react-statics": "^2.3.1"
}
},
- "react-native-safe-module": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/react-native-safe-module/-/react-native-safe-module-1.2.0.tgz",
- "integrity": "sha1-ojgkyiTtwpAZE2lKdmRkdRE9Vw0=",
+ "react-native-screens": {
+ "version": "1.0.0-alpha.23",
+ "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-1.0.0-alpha.23.tgz",
+ "integrity": "sha512-tOxHGQUN83MTmQB4ghoQkibqOdGiX4JQEmeyEv96MKWO/x8T2PJv84ECUos9hD3blPRQwVwSpAid1PPPhrVEaw==",
"requires": {
- "dedent": "^0.6.0"
+ "debounce": "^1.2.0"
}
},
- "react-native-screens": {
- "version": "1.0.0-alpha.22",
- "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-1.0.0-alpha.22.tgz",
- "integrity": "sha512-kSyAt0AeVU6N7ZonfV6dP6iZF8B7Bce+tk3eujXhzBGsLg0VSLnU7uE9VqJF0xdQrHR91ZjGgVMieo/8df9KTA=="
- },
- "react-native-svg": {
- "version": "9.4.0",
- "resolved": "https://registry.npmjs.org/react-native-svg/-/react-native-svg-9.4.0.tgz",
- "integrity": "sha512-IVJlVbS2dAPerPr927fEi4uXzrPXzlra5ddgyJXZZ2IKA2ZygyYWFZDM+vsQs+Vj20CfL8nOWszQQV57vdQgFg=="
- },
"react-native-tab-view": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/react-native-tab-view/-/react-native-tab-view-1.4.1.tgz",
@@ -10620,9 +10268,9 @@
"integrity": "sha512-yO9vWi/11m2hEJl8FrW1SMeVzFfPtMKh20MUInGqlsL0H8Ya2JGGlFfrBzx1KiFR2hFb5OdsTLYNtcVZtJ6pLQ=="
},
"react-native-web": {
- "version": "0.11.4",
- "resolved": "https://registry.npmjs.org/react-native-web/-/react-native-web-0.11.4.tgz",
- "integrity": "sha512-xuiHd9mxtOUlCY/CY8UO25a3cX5u3qsEdhl7zXLDNbJ0nu1Tf98GsplBZgdnDB0q/LpYVPQWmjnTEerncsO2vw==",
+ "version": "0.11.7",
+ "resolved": "https://registry.npmjs.org/react-native-web/-/react-native-web-0.11.7.tgz",
+ "integrity": "sha512-w1KAxX2FYLS2GAi3w3BnEZg/IUu7FdgHnLmFKHplRnHMV3u1OPB2EVA7ndNdfu7ds4Rn2OZjSXoNh6F61g3gkA==",
"requires": {
"array-find-index": "^1.0.2",
"create-react-class": "^15.6.2",
@@ -10658,19 +10306,10 @@
}
}
},
- "react-native-webview": {
- "version": "5.8.1",
- "resolved": "https://registry.npmjs.org/react-native-webview/-/react-native-webview-5.8.1.tgz",
- "integrity": "sha512-b6pSvmjoiWtcz6YspggW02X+BRXJWuquHwkh37BRx1NMW1iwMZA31SnFQvTpPzWYYIb9WF/mRsy2nGtt9C6NIg==",
- "requires": {
- "escape-string-regexp": "1.0.5",
- "invariant": "2.2.4"
- }
- },
"react-navigation": {
- "version": "3.11.0",
- "resolved": "https://registry.npmjs.org/react-navigation/-/react-navigation-3.11.0.tgz",
- "integrity": "sha512-wlPcDtNiIdPeYxNQ/MN4arY5Xe9EphD2QVpRuvvuPWW+BamF3AJaIy060r3Yz59DODAoWllscabat/yqnih8Tg==",
+ "version": "3.11.1",
+ "resolved": "https://registry.npmjs.org/react-navigation/-/react-navigation-3.11.1.tgz",
+ "integrity": "sha512-n64HxLG5s5ucVFo1Gs+D9ujChhHDd98lpQ1p27wL7gq8V1PaRJMvsBEIsguhtc2rTIL/TWDynOesXQDG+Eg6FQ==",
"requires": {
"@react-navigation/core": "~3.4.1",
"@react-navigation/native": "~3.5.0",
@@ -11081,17 +10720,6 @@
}
}
},
- "recompose": {
- "version": "0.26.0",
- "resolved": "https://registry.npmjs.org/recompose/-/recompose-0.26.0.tgz",
- "integrity": "sha512-KwOu6ztO0mN5vy3+zDcc45lgnaUoaQse/a5yLVqtzTK13czSWnFGmXbQVmnoMgDkI5POd1EwIKSbjU1V7xdZog==",
- "requires": {
- "change-emitter": "^0.1.2",
- "fbjs": "^0.8.1",
- "hoist-non-react-statics": "^2.3.1",
- "symbol-observable": "^1.0.4"
- }
- },
"recursive-readdir": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz",
@@ -11115,14 +10743,14 @@
}
},
"regenerator-runtime": {
- "version": "0.13.2",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz",
- "integrity": "sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA=="
+ "version": "0.13.3",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz",
+ "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw=="
},
"regenerator-transform": {
- "version": "0.14.0",
- "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.0.tgz",
- "integrity": "sha512-rtOelq4Cawlbmq9xuMR5gdFmv7ku/sFoB7sRiywx7aq53bc52b4j6zvH7Te1Vt/X2YveDKnCGUbioieU7FEL3w==",
+ "version": "0.14.1",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz",
+ "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==",
"requires": {
"private": "^0.1.6"
}
@@ -11145,17 +10773,17 @@
}
},
"regexp-tree": {
- "version": "0.1.10",
- "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.10.tgz",
- "integrity": "sha512-K1qVSbcedffwuIslMwpe6vGlj+ZXRnGkvjAtFHfDZZZuEdA/h0dxljAPu9vhUo6Rrx2U2AwJ+nSQ6hK+lrP5MQ=="
+ "version": "0.1.11",
+ "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.11.tgz",
+ "integrity": "sha512-7/l/DgapVVDzZobwMCCgMlqiqyLFJ0cduo/j+3BcDJIB+yJdsYCfKuI3l/04NV+H/rfNRdPIDbXNZHM9XvQatg=="
},
"regexpu-core": {
- "version": "4.5.4",
- "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.5.4.tgz",
- "integrity": "sha512-BtizvGtFQKGPUcTy56o3nk1bGRp4SZOTYrDtGNlqCQufptV5IkkLN6Emw+yunAJjzf+C9FQFtvq7IoA3+oMYHQ==",
+ "version": "4.5.5",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.5.5.tgz",
+ "integrity": "sha512-FpI67+ky9J+cDizQUJlIlNZFKual/lUkFr1AG6zOCpwZ9cLrg8UUVakyUQJD7fCDIe9Z2nwTQJNPyonatNmDFQ==",
"requires": {
"regenerate": "^1.4.0",
- "regenerate-unicode-properties": "^8.0.2",
+ "regenerate-unicode-properties": "^8.1.0",
"regjsgen": "^0.5.0",
"regjsparser": "^0.6.0",
"unicode-match-property-ecmascript": "^1.0.4",
@@ -11237,9 +10865,9 @@
"integrity": "sha1-79qpjqdFEyTQkrKyFjpqHXqaIUc="
},
"resolve": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz",
- "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==",
+ "version": "1.12.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz",
+ "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==",
"requires": {
"path-parse": "^1.0.6"
}
@@ -11281,9 +10909,9 @@
"dev": true
},
"rimraf": {
- "version": "2.6.3",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
- "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
"requires": {
"glob": "^7.1.3"
}
@@ -11303,11 +10931,6 @@
"resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz",
"integrity": "sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw=="
},
- "rtl-detect": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/rtl-detect/-/rtl-detect-1.0.2.tgz",
- "integrity": "sha512-5X1422hvphzg2a/bo4tIDbjFjbJUOaPZwqE6dnyyxqwFqfR+tBcvfqapJr0o0VygATVCGKiODEewhZtKF+90AA=="
- },
"run-async": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
@@ -11670,15 +11293,10 @@
"ajv-keywords": "^3.1.0"
}
},
- "scriptjs": {
- "version": "2.5.9",
- "resolved": "https://registry.npmjs.org/scriptjs/-/scriptjs-2.5.9.tgz",
- "integrity": "sha512-qGVDoreyYiP1pkQnbnFAUIS5AjenNwwQBdl7zeos9etl+hYKWahjRTfzAZZYBv5xNHx7vNKCmaLDQZ6Fr2AEXg=="
- },
"semver": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
- "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA=="
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
},
"send": {
"version": "0.17.1",
@@ -11850,9 +11468,9 @@
}
},
"semver": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz",
- "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==",
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
"dev": true,
"optional": true
},
@@ -11973,9 +11591,9 @@
}
},
"p-limit": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz",
- "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==",
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz",
+ "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==",
"dev": true,
"optional": true,
"requires": {
@@ -12304,9 +11922,9 @@
}
},
"source-map-support": {
- "version": "0.5.12",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz",
- "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==",
+ "version": "0.5.13",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz",
+ "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==",
"requires": {
"buffer-from": "^1.0.0",
"source-map": "^0.6.0"
@@ -12348,9 +11966,9 @@
}
},
"spdx-license-ids": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz",
- "integrity": "sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA=="
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz",
+ "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q=="
},
"split-on-first": {
"version": "1.1.0",
@@ -12586,17 +12204,16 @@
}
},
"svgo": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.2.2.tgz",
- "integrity": "sha512-rAfulcwp2D9jjdGu+0CuqlrAUin6bBWrpoqXWwKDZZZJfXcUXQSxLJOFJCQCSA0x0pP2U0TxSlJu2ROq5Bq6qA==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.0.tgz",
+ "integrity": "sha512-MLfUA6O+qauLDbym+mMZgtXCGRfIxyQoeH6IKVcFslyODEe/ElJNwr0FohQ3xG4C6HK6bk3KYPPXwHVJk3V5NQ==",
"dev": true,
"requires": {
"chalk": "^2.4.1",
"coa": "^2.0.2",
"css-select": "^2.0.0",
"css-select-base-adapter": "^0.1.1",
- "css-tree": "1.0.0-alpha.28",
- "css-url-regex": "^1.1.0",
+ "css-tree": "1.0.0-alpha.33",
"csso": "^3.5.1",
"js-yaml": "^3.13.1",
"mkdirp": "~0.5.1",
@@ -12637,11 +12254,6 @@
}
}
},
- "symbol-observable": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
- "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ=="
- },
"tapable": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz",
@@ -12749,14 +12361,14 @@
}
},
"terser": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/terser/-/terser-4.0.2.tgz",
- "integrity": "sha512-IWLuJqTvx97KP3uTYkFVn93cXO+EtlzJu8TdJylq+H0VBDlPMIfQA9MBS5Vc5t3xTEUG1q0hIfHMpAP2R+gWTw==",
+ "version": "4.1.4",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-4.1.4.tgz",
+ "integrity": "sha512-+ZwXJvdSwbd60jG0Illav0F06GDJF0R4ydZ21Q3wGAFKoBGyJGo34F63vzJHgvYxc1ukOtIjvwEvl9MkjzM6Pg==",
"dev": true,
"requires": {
- "commander": "^2.19.0",
+ "commander": "^2.20.0",
"source-map": "~0.6.1",
- "source-map-support": "~0.5.10"
+ "source-map-support": "~0.5.12"
},
"dependencies": {
"source-map": {
@@ -12768,28 +12380,71 @@
}
},
"terser-webpack-plugin": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.3.0.tgz",
- "integrity": "sha512-W2YWmxPjjkUcOWa4pBEv4OP4er1aeQJlSo2UhtCFQCuRXEHjOFscO8VyWHj9JLlA0RzQb8Y2/Ta78XZvT54uGg==",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz",
+ "integrity": "sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg==",
"dev": true,
"requires": {
- "cacache": "^11.3.2",
- "find-cache-dir": "^2.0.0",
+ "cacache": "^12.0.2",
+ "find-cache-dir": "^2.1.0",
"is-wsl": "^1.1.0",
- "loader-utils": "^1.2.3",
"schema-utils": "^1.0.0",
"serialize-javascript": "^1.7.0",
"source-map": "^0.6.1",
- "terser": "^4.0.0",
- "webpack-sources": "^1.3.0",
+ "terser": "^4.1.2",
+ "webpack-sources": "^1.4.0",
"worker-farm": "^1.7.0"
},
"dependencies": {
+ "cacache": {
+ "version": "12.0.2",
+ "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.2.tgz",
+ "integrity": "sha512-ifKgxH2CKhJEg6tNdAwziu6Q33EvuG26tYcda6PT3WKisZcYDXsnEdnRv67Po3yCzFfaSoMjGZzJyD2c3DT1dg==",
+ "dev": true,
+ "requires": {
+ "bluebird": "^3.5.5",
+ "chownr": "^1.1.1",
+ "figgy-pudding": "^3.5.1",
+ "glob": "^7.1.4",
+ "graceful-fs": "^4.1.15",
+ "infer-owner": "^1.0.3",
+ "lru-cache": "^5.1.1",
+ "mississippi": "^3.0.0",
+ "mkdirp": "^0.5.1",
+ "move-concurrently": "^1.0.1",
+ "promise-inflight": "^1.0.1",
+ "rimraf": "^2.6.3",
+ "ssri": "^6.0.1",
+ "unique-filename": "^1.1.1",
+ "y18n": "^4.0.0"
+ }
+ },
+ "lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "dev": true,
+ "requires": {
+ "yallist": "^3.0.2"
+ }
+ },
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true
+ },
+ "y18n": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
+ "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
+ "dev": true
+ },
+ "yallist": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
+ "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==",
+ "dev": true
}
}
},
@@ -12824,9 +12479,9 @@
"integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM="
},
"timers-browserify": {
- "version": "2.0.10",
- "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz",
- "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==",
+ "version": "2.0.11",
+ "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz",
+ "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==",
"dev": true,
"requires": {
"setimmediate": "^1.0.4"
@@ -13174,49 +12829,54 @@
"integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw=="
},
"unimodules-barcode-scanner-interface": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/unimodules-barcode-scanner-interface/-/unimodules-barcode-scanner-interface-2.0.1.tgz",
- "integrity": "sha512-Rp3428am/4vCcvVsreqaaGcJNcjtVOMDHVX0yjF2yr8QfD07UVzRYo8ZBhQHc/hYSVWwe+19Pbmk0b+sTnTgkg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unimodules-barcode-scanner-interface/-/unimodules-barcode-scanner-interface-3.0.0.tgz",
+ "integrity": "sha512-EtJBfKU5VgZbyIfIZwyWfUo59pIgW6s7YGzlpj9jk4UWKyqqhYT/FoaZqudCJcPcfh2eYxkc9VxBGieRBpQrzg=="
},
"unimodules-camera-interface": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/unimodules-camera-interface/-/unimodules-camera-interface-2.0.1.tgz",
- "integrity": "sha512-m+sYhFFahaPWYl0aVCq9VU8u6CiLVI4cSywYl9rwbIMAifi83rO5GUKKDIaMfAqMj9z77i/RF53x3nVdpclpyA=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unimodules-camera-interface/-/unimodules-camera-interface-3.0.0.tgz",
+ "integrity": "sha512-STjf1FAdYlN27ilJSR4kIUYyHTPrkQSR/mEg4S4pZX6tazmcuG2KzLCXCoV+xMWsrwmsMBjgLzw6yzg87N5Ydw=="
},
"unimodules-constants-interface": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/unimodules-constants-interface/-/unimodules-constants-interface-2.0.1.tgz",
- "integrity": "sha512-Ue/5CpfHvc9jrVc9bvDRgMVMQznvgpJ27hQoNia0sUhsMtHDvnFhXrcNfLO4tG5zGgcda6fuKtTMz91vLz8uqw=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unimodules-constants-interface/-/unimodules-constants-interface-3.0.0.tgz",
+ "integrity": "sha512-S4ap11UJH7D+Y4fXC7DyMNAkqIWD8B7rNCTS30wAF9beHXMZa1Od66rkJgSHqFRURy06h+Jr7qfJm9H5mtMz8Q=="
},
"unimodules-face-detector-interface": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/unimodules-face-detector-interface/-/unimodules-face-detector-interface-2.0.1.tgz",
- "integrity": "sha512-uM25vRESCRXwhmgVlkiDhxx1R0yGFjoiTYjqG7bfqzSnc964HR3Qy5KaWvJUOtFpLun50pfBw+lzutqFnshCpg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unimodules-face-detector-interface/-/unimodules-face-detector-interface-3.0.0.tgz",
+ "integrity": "sha512-fMQ3ZnhdOjbQ5ZXW62s/t1bbqBaenxzVIcgVEcwvLIFek0mx/EMHFkySgFkFjU11icUvaPEXW1yJtkK4QEpLhg=="
},
"unimodules-file-system-interface": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/unimodules-file-system-interface/-/unimodules-file-system-interface-2.0.1.tgz",
- "integrity": "sha512-1z//JY7ifBxq3e4dgjID2JgX3uTYEZqVFS1PqlVb9FEmdD+nvuGI2w+ohe+3Y20FYX1lZrffGCeT/Si3xa4tkA=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unimodules-file-system-interface/-/unimodules-file-system-interface-3.0.0.tgz",
+ "integrity": "sha512-LkLIKRE3CwsXLRFw8vx0++Cfjj+pAvvidVb7yhGWKFmNlVaWUW9Z8jkhFLBFXDsGFAOU69bUTrz25jmB2MRt0Q=="
},
"unimodules-font-interface": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/unimodules-font-interface/-/unimodules-font-interface-2.0.1.tgz",
- "integrity": "sha512-LirIkEZyBJMakQkYwSZBBbqXWY5KFBbBF97CCAaV/uzp6UaNawExD8kYhexajM3+uNdIPlnCIfdqQbpbXBdkVg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unimodules-font-interface/-/unimodules-font-interface-3.0.0.tgz",
+ "integrity": "sha512-DOQI0uTn7CGvA9lNUuiTWfQYuKQEM8LZKn6gNS8G+HVHVb+TZl/37qdhuoMBi5jkAZ4VOD/GpgnPv8qr0pJi1Q=="
},
"unimodules-image-loader-interface": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/unimodules-image-loader-interface/-/unimodules-image-loader-interface-2.0.1.tgz",
- "integrity": "sha512-o6HHXNcWmDiT8NhBR/wRB/MTf64sQ3c9sSf13BMvmKt2nt64lkhzQC7IVDl1oxx2ejHTfwhC/XK/EafaJvvHWQ=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unimodules-image-loader-interface/-/unimodules-image-loader-interface-3.0.0.tgz",
+ "integrity": "sha512-hC/VWdT33GkOZ4FLaqPoKGNKxhw+miFhM+7Re57snWIWYewSv0lRvCqqwc/hbGLocvd2qF3YYrBx9woqPI8NzA=="
},
"unimodules-permissions-interface": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/unimodules-permissions-interface/-/unimodules-permissions-interface-2.0.1.tgz",
- "integrity": "sha512-eqs6Bub19RiUHxCMrrdyro+xOpab1reHjGHBBoMOndY4bKkARpKDN7x1gDxJv3HCtP8a2hAm0xae0cDZ5S38Tw=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unimodules-permissions-interface/-/unimodules-permissions-interface-3.0.0.tgz",
+ "integrity": "sha512-rfyGDBMtO8IOlk9hJN44EKz7vk6nt/PXByAumsptRdgsd+knokMlaWGYatrxKW2g/08WUbEkgKspvMxjJ0M1Tg=="
},
"unimodules-sensors-interface": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/unimodules-sensors-interface/-/unimodules-sensors-interface-2.0.1.tgz",
- "integrity": "sha512-JvR04JZHqt+EJiGL/9KWsaTpTJQ53qqNMmZAC+MX6NUgnz1bWiUw9eY9MAAIaQbmorCwKyCqfpX9twTUM8z1yA=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unimodules-sensors-interface/-/unimodules-sensors-interface-3.0.0.tgz",
+ "integrity": "sha512-1JJT/lqCfxHqUSJc3o6b0WUply/lFOJjcuzN0QcAfmdAW8d+lEXA7BJ7DV/Nn/OKpMlHriEyxkM+FoGoXKJJcg=="
+ },
+ "unimodules-task-manager-interface": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unimodules-task-manager-interface/-/unimodules-task-manager-interface-3.0.0.tgz",
+ "integrity": "sha512-og4UiUOxc7PqT8uQQqXY+pOBvdS204xmgyUG2AjM2L3kVsw/6WH4pIW084WG8/e9M5SLsSXdrjecIUBQ/zLf8w=="
},
"union-value": {
"version": "1.0.1",
@@ -13496,14 +13156,6 @@
"makeerror": "1.0.x"
}
},
- "warning": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz",
- "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=",
- "requires": {
- "loose-envify": "^1.0.0"
- }
- },
"watch": {
"version": "0.18.0",
"resolved": "https://registry.npmjs.org/watch/-/watch-0.18.0.tgz",
@@ -13858,9 +13510,9 @@
}
},
"webpack-bundle-analyzer": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.3.2.tgz",
- "integrity": "sha512-7qvJLPKB4rRWZGjVp5U1KEjwutbDHSKboAl0IfafnrdXMrgC0tOtZbQD6Rw0u4cmpgRN4O02Fc0t8eAT+FgGzA==",
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.4.1.tgz",
+ "integrity": "sha512-Bs8D/1zF+17lhqj2OYmzi7HEVYqEVxu7lCO9Ff8BwajenOU0vAwEoV8e4ICCPNZAcqR1PCR/7o2SkW+cnCmF0A==",
"dev": true,
"requires": {
"acorn": "^6.0.7",
@@ -13872,16 +13524,16 @@
"express": "^4.16.3",
"filesize": "^3.6.1",
"gzip-size": "^5.0.0",
- "lodash": "^4.17.10",
+ "lodash": "^4.17.15",
"mkdirp": "^0.5.1",
"opener": "^1.5.1",
"ws": "^6.0.0"
},
"dependencies": {
"acorn": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz",
- "integrity": "sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==",
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.3.0.tgz",
+ "integrity": "sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA==",
"dev": true
},
"ws": {
@@ -13896,12 +13548,12 @@
}
},
"webpack-deep-scope-plugin": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/webpack-deep-scope-plugin/-/webpack-deep-scope-plugin-1.6.1.tgz",
- "integrity": "sha512-S/O7ifv0iYOc3JBvKIvt635qLT1ok7DUE/GiYjZNWX3JRIYidj8uoPW61dumCLMcwWvpsCDUZE7QECpkK2a00Q==",
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/webpack-deep-scope-plugin/-/webpack-deep-scope-plugin-1.6.2.tgz",
+ "integrity": "sha512-S5ZM1i7oTIVPIS1z/Fu41tqFzaXpy8vZnwEDC9I7NLj5XD8GGrDZbDXtG5FCGkHPGxtAzF4O21DKZZ76vpBGzw==",
"dev": true,
"requires": {
- "deep-scope-analyser": "^1.6.1"
+ "deep-scope-analyser": "^1.7.0"
}
},
"webpack-log": {
@@ -13956,9 +13608,9 @@
}
},
"webpack-sources": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz",
- "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==",
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz",
+ "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==",
"dev": true,
"requires": {
"source-list-map": "^2.0.0",
@@ -14291,9 +13943,9 @@
"integrity": "sha1-jdi/Rfw/f1Xw4FS4ePQ6YmFNr98="
},
"xtend": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
- "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
},
"y18n": {
"version": "3.2.1",
diff --git a/src/playground/package.json b/src/playground/package.json
index 4b519a14e..7377337cd 100644
--- a/src/playground/package.json
+++ b/src/playground/package.json
@@ -7,12 +7,14 @@
},
"dependencies": {
"@eva-design/eva": "1.0.0",
- "expo": "^33.0.6",
- "react": "^16.8.3",
+ "expo": "^34.0.3",
+ "react": "16.8.3",
"react-dom": "^16.8.6",
"react-native": "https://github.com/expo/react-native/archive/sdk-33.0.0.tar.gz",
+ "react-native-gesture-handler": "^1.3.0",
+ "react-native-reanimated": "^1.1.0",
"react-native-web": "^0.11.4",
- "react-navigation": "^3.11.0"
+ "react-navigation": "^3.11.1"
},
"devDependencies": {
"@expo/webpack-config": "^0.5.11",
diff --git a/src/playground/src/app.component.tsx b/src/playground/src/app.component.tsx
index 6e716ac26..861706a4d 100644
--- a/src/playground/src/app.component.tsx
+++ b/src/playground/src/app.component.tsx
@@ -1,14 +1,23 @@
import React from 'react';
import { mapping } from '@eva-design/eva';
+import { EvaIconsPack } from '@ui-kitten/eva-icons';
import {
ApplicationProvider,
ApplicationProviderElement,
} from '@kitten/theme';
+import { IconRegistry } from '@kitten/ui';
+import {
+ AntDesignIconsPack,
+ FeatherIconsPack,
+ FontAwesomeIconsPack,
+ MaterialCommunityIconsPack,
+ MaterialIconsPack,
+} from './icons';
import { Router } from './navigation';
import {
+ ThemeContext,
ThemeKey,
themes,
- ThemeContext,
} from './themes';
interface State {
@@ -21,6 +30,15 @@ export default class App extends React.Component {
theme: 'Eva Light',
};
+ private icons = [
+ EvaIconsPack,
+ AntDesignIconsPack,
+ FeatherIconsPack,
+ FontAwesomeIconsPack,
+ MaterialIconsPack,
+ MaterialCommunityIconsPack,
+ ];
+
private toggleTheme = (theme: string) => {
this.setState({ theme });
};
@@ -30,8 +48,12 @@ export default class App extends React.Component {
+
+ value={{
+ name: this.state.theme,
+ toggleTheme: this.toggleTheme,
+ }}>
diff --git a/src/playground/src/icons/ant.tsx b/src/playground/src/icons/ant.tsx
new file mode 100644
index 000000000..46d688221
--- /dev/null
+++ b/src/playground/src/icons/ant.tsx
@@ -0,0 +1,35 @@
+import React from 'react';
+import { StyleSheet } from 'react-native';
+import { AntDesign } from '@expo/vector-icons';
+
+export const AntDesignIconsPack = {
+ name: 'ant',
+ icons: createIconsMap(),
+};
+
+function createIconsMap() {
+ return new Proxy({}, {
+ get(target, name) {
+ return IconProvider(name);
+ },
+ });
+}
+
+function IconProvider(name) {
+ return {
+ toReactElement: (props) => AntDesignIcon({ name, ...props }),
+ };
+}
+
+function AntDesignIcon(props) {
+ const { name, style } = props;
+ const { height, tintColor, ...iconStyle } = StyleSheet.flatten(style);
+ return (
+
+ );
+}
diff --git a/src/playground/src/icons/feather.tsx b/src/playground/src/icons/feather.tsx
new file mode 100644
index 000000000..7ec770e5f
--- /dev/null
+++ b/src/playground/src/icons/feather.tsx
@@ -0,0 +1,35 @@
+import React from 'react';
+import { StyleSheet } from 'react-native';
+import { Feather } from '@expo/vector-icons';
+
+export const FeatherIconsPack = {
+ name: 'feather',
+ icons: createIconsMap(),
+};
+
+function createIconsMap() {
+ return new Proxy({}, {
+ get(target, name) {
+ return IconProvider(name);
+ },
+ });
+}
+
+function IconProvider(name) {
+ return {
+ toReactElement: (props) => FeatherIcon({ name, ...props }),
+ };
+}
+
+function FeatherIcon(props) {
+ const { name, style } = props;
+ const { height, tintColor, ...iconStyle } = StyleSheet.flatten(style);
+ return (
+
+ );
+}
diff --git a/src/playground/src/icons/fontAwesome.tsx b/src/playground/src/icons/fontAwesome.tsx
new file mode 100644
index 000000000..d26931fba
--- /dev/null
+++ b/src/playground/src/icons/fontAwesome.tsx
@@ -0,0 +1,35 @@
+import React from 'react';
+import { FontAwesome } from '@expo/vector-icons';
+import { StyleSheet } from 'react-native';
+
+export const FontAwesomeIconsPack = {
+ name: 'font-awesome',
+ icons: createIconsMap(),
+};
+
+function createIconsMap() {
+ return new Proxy({}, {
+ get(target, name) {
+ return IconProvider(name);
+ },
+ });
+}
+
+function IconProvider(name) {
+ return {
+ toReactElement: (props) => FontAwesomeIcon({ name, ...props }),
+ };
+}
+
+function FontAwesomeIcon(props) {
+ const { name, style } = props;
+ const { height, tintColor, ...iconStyle } = StyleSheet.flatten(style);
+ return (
+
+ );
+}
diff --git a/src/playground/src/icons/index.ts b/src/playground/src/icons/index.ts
new file mode 100644
index 000000000..c4ff77376
--- /dev/null
+++ b/src/playground/src/icons/index.ts
@@ -0,0 +1,5 @@
+export { AntDesignIconsPack } from './ant';
+export { FeatherIconsPack } from './feather';
+export { FontAwesomeIconsPack } from './fontAwesome';
+export { MaterialIconsPack } from './material';
+export { MaterialCommunityIconsPack } from './materialCommunity';
diff --git a/src/playground/src/icons/material.tsx b/src/playground/src/icons/material.tsx
new file mode 100644
index 000000000..6b0ad7bdf
--- /dev/null
+++ b/src/playground/src/icons/material.tsx
@@ -0,0 +1,35 @@
+import React from 'react';
+import { StyleSheet } from 'react-native';
+import { MaterialIcons } from '@expo/vector-icons';
+
+export const MaterialIconsPack = {
+ name: 'material',
+ icons: createIconsMap(),
+};
+
+function createIconsMap() {
+ return new Proxy({}, {
+ get(target, name) {
+ return IconProvider(name);
+ },
+ });
+}
+
+function IconProvider(name) {
+ return {
+ toReactElement: (props) => MaterialIcon({ name, ...props }),
+ };
+}
+
+function MaterialIcon(props) {
+ const { name, style } = props;
+ const { height, tintColor, ...iconStyle } = StyleSheet.flatten(style);
+ return (
+
+ );
+}
diff --git a/src/playground/src/icons/materialCommunity.tsx b/src/playground/src/icons/materialCommunity.tsx
new file mode 100644
index 000000000..786249d6f
--- /dev/null
+++ b/src/playground/src/icons/materialCommunity.tsx
@@ -0,0 +1,35 @@
+import React from 'react';
+import { StyleSheet } from 'react-native';
+import { MaterialCommunityIcons } from '@expo/vector-icons';
+
+export const MaterialCommunityIconsPack = {
+ name: 'material-community',
+ icons: createIconsMap(),
+};
+
+function createIconsMap() {
+ return new Proxy({}, {
+ get(target, name) {
+ return IconProvider(name);
+ },
+ });
+}
+
+function IconProvider(name) {
+ return {
+ toReactElement: (props) => MaterialCommunityIcon({ name, ...props }),
+ };
+}
+
+function MaterialCommunityIcon(props) {
+ const { name, style } = props;
+ const { height, tintColor, ...iconStyle } = StyleSheet.flatten(style);
+ return (
+
+ );
+}
diff --git a/src/playground/src/navigation/navigation.component.tsx b/src/playground/src/navigation/navigation.component.tsx
index 95771b53a..45116ce36 100644
--- a/src/playground/src/navigation/navigation.component.tsx
+++ b/src/playground/src/navigation/navigation.component.tsx
@@ -24,6 +24,9 @@ import {
LayoutContainer,
SampleContainer,
ModalContainer,
+ DropdownContainer,
+ SpinnerContainer,
+ IconContainer,
} from '../ui/screen';
export interface RouteType {
@@ -37,12 +40,15 @@ const AppNavigator = createStackNavigator({
['Button']: ButtonContainer,
['Button Group']: ButtonGroupContainer,
['Checkbox']: CheckBoxContainer,
+ ['Dropdown']: DropdownContainer,
+ ['Icon']: IconContainer,
['Input']: InputContainer,
['Layout']: LayoutContainer,
['List']: ListContainer,
['Popover']: PopoverContainer,
['Radio']: RadioContainer,
['Radio Group']: RadioGroupContainer,
+ ['Spinner']: SpinnerContainer,
['Tab View']: TabViewContainer,
['Tooltip']: TooltipContainer,
['Text']: TextContainer,
diff --git a/src/playground/src/ui/screen/button/type.tsx b/src/playground/src/ui/screen/button/type.tsx
index 6aa4cd49d..f34b31fa7 100644
--- a/src/playground/src/ui/screen/button/type.tsx
+++ b/src/playground/src/ui/screen/button/type.tsx
@@ -10,12 +10,10 @@ import {
ComponentShowcaseSetting,
} from '../common/type';
import { StyleType } from '@kitten/theme';
+import { Icon } from '@kitten/ui';
const IconElement = (style: StyleType): React.ReactElement => (
-
+
);
const defaultButton: ComponentShowcaseItem = {
diff --git a/src/playground/src/ui/screen/common/showcaseItem.component.tsx b/src/playground/src/ui/screen/common/showcaseItem.component.tsx
index 541d849e5..3e039faa5 100644
--- a/src/playground/src/ui/screen/common/showcaseItem.component.tsx
+++ b/src/playground/src/ui/screen/common/showcaseItem.component.tsx
@@ -69,6 +69,7 @@ export const ShowcaseItem = withStyles(ShowcaseItemComponent, (theme: ThemeType)
titleLabel: {
minWidth: 128,
fontSize: 13,
+ textAlign: 'left',
},
element: {},
}));
diff --git a/src/playground/src/ui/screen/common/showcaseSection.component.tsx b/src/playground/src/ui/screen/common/showcaseSection.component.tsx
index 6aad7b76c..7da330fc1 100644
--- a/src/playground/src/ui/screen/common/showcaseSection.component.tsx
+++ b/src/playground/src/ui/screen/common/showcaseSection.component.tsx
@@ -73,6 +73,7 @@ export const ShowcaseSection = withStyles(ShowcaseSectionComponent, (theme: Them
marginVertical: 8,
fontSize: 20,
lineHeight: 28,
+ textAlign: 'left',
},
item: {
marginVertical: 8,
diff --git a/src/playground/src/ui/screen/common/showcaseSettings.component.tsx b/src/playground/src/ui/screen/common/showcaseSettings.component.tsx
index 2299e5124..f8ba0a36c 100644
--- a/src/playground/src/ui/screen/common/showcaseSettings.component.tsx
+++ b/src/playground/src/ui/screen/common/showcaseSettings.component.tsx
@@ -1,8 +1,10 @@
import React from 'react';
import {
+ I18nManager,
View,
ViewProps,
} from 'react-native';
+import { Updates } from 'expo';
import {
ThemedComponentProps,
ThemeType,
@@ -10,6 +12,7 @@ import {
} from '@kitten/theme';
import {
Button,
+ CheckBox,
OverflowMenu,
OverflowMenuItemType,
} from '@kitten/ui';
@@ -98,6 +101,12 @@ class ShowcaseSettingsComponent extends React.Component {
+ I18nManager.forceRTL(!I18nManager.isRTL);
+ I18nManager.allowRTL(I18nManager.isRTL);
+ Updates.reload();
+ };
+
public render(): React.ReactNode {
const { style, themedStyle } = this.props;
@@ -110,7 +119,7 @@ class ShowcaseSettingsComponent extends React.Component
THEMES
@@ -123,18 +132,23 @@ class ShowcaseSettingsComponent extends React.Component
SETTINGS
RESET
+
);
}
@@ -145,6 +159,6 @@ export const ShowcaseSettings = withStyles(ShowcaseSettingsComponent, (theme: Th
flexDirection: 'row',
justifyContent: 'space-evenly',
paddingVertical: 16,
- backgroundColor: theme['background-basic-color-1'],
+ backgroundColor: theme['background-basic-color-2'],
},
}));
diff --git a/src/playground/src/ui/screen/dropdown/dropdown.container.tsx b/src/playground/src/ui/screen/dropdown/dropdown.container.tsx
new file mode 100644
index 000000000..8072181e4
--- /dev/null
+++ b/src/playground/src/ui/screen/dropdown/dropdown.container.tsx
@@ -0,0 +1,30 @@
+import React from 'react';
+import {
+ DropdownProps,
+ DropdownElement,
+} from '@kitten/ui';
+import { ShowcaseContainer } from '../common/showcase.container';
+import { DropdownShowcase } from './dropdownShowcase.component';
+import {
+ dropdownShowcase,
+ dropdownSettings,
+} from './type';
+
+export class DropdownContainer extends React.Component {
+
+ private renderItem = (props: DropdownProps): DropdownElement => {
+ return (
+
+ );
+ };
+
+ public render(): React.ReactNode {
+ return (
+
+
+ );
+ }
+}
diff --git a/src/playground/src/ui/screen/dropdown/dropdownShowcase.component.tsx b/src/playground/src/ui/screen/dropdown/dropdownShowcase.component.tsx
new file mode 100644
index 000000000..342bbfb23
--- /dev/null
+++ b/src/playground/src/ui/screen/dropdown/dropdownShowcase.component.tsx
@@ -0,0 +1,49 @@
+import React from 'react';
+import { StyleSheet } from 'react-native';
+import {
+ Dropdown,
+ DropdownOption,
+ DropdownProps,
+ DropdownElement,
+} from '@kitten/ui';
+
+interface DropdownShowcaseComponentState {
+ selectedOption: DropdownOption;
+}
+
+class DropdownShowcaseComponent extends React.Component {
+
+ public constructor(props: DropdownProps) {
+ super(props);
+ this.state = {
+ selectedOption: props.multiSelect ? [] : null,
+ };
+ }
+
+ private setSelectedOption = (selectedOption: DropdownOption): void => {
+ this.setState({ selectedOption });
+ };
+
+ public render(): DropdownElement {
+ return (
+
+ );
+ }
+}
+
+const styles = StyleSheet.create({
+ dropdown: {
+ width: 200,
+ },
+});
+
+export const DropdownShowcase = (props: DropdownProps): DropdownElement => {
+ return (
+
+ );
+};
diff --git a/src/playground/src/ui/screen/dropdown/type.tsx b/src/playground/src/ui/screen/dropdown/type.tsx
new file mode 100644
index 000000000..de225c747
--- /dev/null
+++ b/src/playground/src/ui/screen/dropdown/type.tsx
@@ -0,0 +1,180 @@
+import React from 'react';
+import {
+ Image,
+ ImageProps,
+} from 'react-native';
+import { DropdownItemType } from '@kitten/ui';
+import { StyleType } from '@kitten/theme';
+import {
+ ComponentShowcase,
+ ComponentShowcaseItem,
+ ComponentShowcaseSection,
+ ComponentShowcaseSetting,
+} from '../common/type';
+
+const iconClosedUri: string = 'https://akveo.github.io/eva-icons/fill/png/128/arrow-ios-downward.png';
+const iconOpenedUri: string = 'https://akveo.github.io/eva-icons/fill/png/128/arrow-ios-upward.png';
+
+const defaultDropdownOption: DropdownItemType[] = [
+ { text: 'Option 1', disabled: true },
+ { text: 'Option 2' },
+ { text: 'Option 3' },
+ { text: 'Option 4' },
+ { text: 'Option 5' },
+ { text: 'Option 6' },
+ { text: 'Option 7' },
+ { text: 'Option 8' },
+];
+
+const withGroupsDropdownOption: DropdownItemType[] = [
+ { text: 'Option 1' },
+ {
+ text: 'Option 2',
+ items: [
+ { text: 'Option 21', disabled: true },
+ { text: 'Option 22' },
+ { text: 'Option 23' },
+ ],
+ },
+ { text: 'Option 3' },
+ { text: 'Option 4' },
+ { text: 'Option 5' },
+];
+
+const renderIcon = (style: StyleType, visible: boolean): React.ReactElement => {
+ const uri: string = visible ? iconOpenedUri : iconClosedUri;
+
+ return (
+
+ );
+};
+
+const defaultDropdown: ComponentShowcaseItem = {
+ title: 'Default',
+ props: {
+ data: defaultDropdownOption,
+ },
+};
+
+const defaultSection: ComponentShowcaseSection = {
+ title: 'Default Dropdown',
+ items: [
+ defaultDropdown,
+ ],
+};
+
+const multiSelectDropdown: ComponentShowcaseItem = {
+ title: 'Multiselect',
+ props: {
+ multiSelect: true,
+ data: defaultDropdownOption,
+ },
+};
+
+const multiSelectSection: ComponentShowcaseSection = {
+ title: 'Multiselect Dropdown',
+ items: [
+ multiSelectDropdown,
+ ],
+};
+
+const groupDropdown: ComponentShowcaseItem = {
+ title: 'With Groups',
+ props: {
+ data: withGroupsDropdownOption,
+ },
+};
+
+const groupDropdownMultiselect: ComponentShowcaseItem = {
+ title: 'Multiselect',
+ props: {
+ multiSelect: true,
+ data: withGroupsDropdownOption,
+ },
+};
+
+const withGroupsSection: ComponentShowcaseSection = {
+ title: 'Groups Dropdown',
+ items: [
+ groupDropdown,
+ groupDropdownMultiselect,
+ ],
+};
+
+const withIconDropdown: ComponentShowcaseItem = {
+ title: 'With icon',
+ props: {
+ data: defaultDropdownOption,
+ icon: renderIcon,
+ multiSelect: true,
+ },
+};
+
+const withIconSection: ComponentShowcaseSection = {
+ title: 'With icon',
+ items: [
+ withIconDropdown,
+ ],
+};
+
+const withLabelDropdown: ComponentShowcaseItem = {
+ title: 'Label',
+ props: {
+ data: defaultDropdownOption,
+ icon: renderIcon,
+ label: 'Label',
+ },
+};
+
+const withCustomPlaceholderDropdown: ComponentShowcaseItem = {
+ title: 'Placeholder',
+ props: {
+ data: defaultDropdownOption,
+ icon: renderIcon,
+ placeholder: 'Custom Placeholder',
+ },
+};
+
+const customTextsSection: ComponentShowcaseSection = {
+ title: 'Texts',
+ items: [
+ withLabelDropdown,
+ withCustomPlaceholderDropdown,
+ ],
+};
+
+export const dropdownShowcase: ComponentShowcase = {
+ sections: [
+ defaultSection,
+ multiSelectSection,
+ withGroupsSection,
+ withIconSection,
+ customTextsSection,
+ ],
+};
+
+export const dropdownSettings: ComponentShowcaseSetting[] = [
+ {
+ propertyName: 'status',
+ value: 'primary',
+ },
+ {
+ propertyName: 'status',
+ value: 'success',
+ },
+ {
+ propertyName: 'status',
+ value: 'info',
+ },
+ {
+ propertyName: 'status',
+ value: 'warning',
+ },
+ {
+ propertyName: 'status',
+ value: 'danger',
+ },
+];
diff --git a/src/playground/src/ui/screen/home.component.tsx b/src/playground/src/ui/screen/home.component.tsx
index 282295852..ae810c7a4 100644
--- a/src/playground/src/ui/screen/home.component.tsx
+++ b/src/playground/src/ui/screen/home.component.tsx
@@ -1,5 +1,5 @@
import React from 'react';
-import { ListRenderItemInfo } from 'react-native';
+import { ListRenderItemInfo, Button, I18nManager } from 'react-native';
import { NavigationScreenProps } from 'react-navigation';
import {
ThemedComponentProps,
@@ -13,6 +13,7 @@ import {
ListItemElement,
} from '@kitten/ui';
import { RouteType } from '../../navigation';
+import { Updates } from 'expo';
export const routes: RouteType[] = [
{ name: 'Avatar' },
@@ -20,6 +21,8 @@ export const routes: RouteType[] = [
{ name: 'Button' },
{ name: 'Button Group' },
{ name: 'Checkbox' },
+ { name: 'Icon' },
+ { name: 'Dropdown' },
{ name: 'Input' },
{ name: 'Layout' },
{ name: 'List' },
@@ -27,6 +30,7 @@ export const routes: RouteType[] = [
{ name: 'Popover' },
{ name: 'Radio' },
{ name: 'Radio Group' },
+ { name: 'Spinner' },
{ name: 'Tab View' },
{ name: 'Tooltip' },
{ name: 'Text' },
@@ -40,10 +44,6 @@ type Props = ThemedComponentProps & NavigationScreenProps;
class HomeScreen extends React.Component {
- static navigationOptions = {
- title: 'Home',
- };
-
private onItemPress = (index: number) => {
const { [index]: route } = routes;
diff --git a/src/playground/src/ui/screen/icon/icon.container.tsx b/src/playground/src/ui/screen/icon/icon.container.tsx
new file mode 100644
index 000000000..f60b09227
--- /dev/null
+++ b/src/playground/src/ui/screen/icon/icon.container.tsx
@@ -0,0 +1,28 @@
+import React from 'react';
+import { IconProps } from '@kitten/ui';
+import {
+ iconSettings,
+ iconShowcase,
+} from './type';
+import { ShowcaseContainer } from '../common/showcase.container';
+import { IconShowcase } from './iconShowcase.component';
+
+export class IconContainer extends React.Component {
+
+ private renderItem = (props: IconProps): React.ReactElement => {
+ return (
+
+ );
+ };
+
+ public render(): React.ReactNode {
+ return (
+
+
+ );
+ }
+}
+
diff --git a/src/playground/src/ui/screen/icon/iconShowcase.component.tsx b/src/playground/src/ui/screen/icon/iconShowcase.component.tsx
new file mode 100644
index 000000000..d3a3c2ab3
--- /dev/null
+++ b/src/playground/src/ui/screen/icon/iconShowcase.component.tsx
@@ -0,0 +1,71 @@
+import React from 'react';
+import { ViewProps } from 'react-native';
+import {
+ Icon,
+ IconProps,
+ Input,
+} from '@kitten/ui';
+import { StyleType } from '@kitten/theme';
+
+interface State {
+ iconName: string;
+}
+
+const DEFAULT_ICON: string = 'star';
+
+export class IconShowcase extends React.Component {
+
+ private iconRef: React.RefObject> = React.createRef();
+ private animationTimeout: NodeJS.Timeout;
+
+ public state: State = {
+ iconName: DEFAULT_ICON,
+ };
+
+ public componentDidMount() {
+ this.animationTimeout = setTimeout(this.startAnimation, 500);
+ }
+
+ public componentWillUnmount() {
+ clearTimeout(this.animationTimeout);
+ }
+
+ private onInputChangeText = (text: string) => {
+ this.state.iconName = text.length > 0 ? text : DEFAULT_ICON;
+ };
+
+ private onInputBlur = () => {
+ this.iconRef.current.startAnimation();
+ };
+
+ private startAnimation = () => {
+ this.iconRef.current.startAnimation();
+ };
+
+ private renderIcon = (style: StyleType) => {
+ return (
+
+ );
+ };
+
+ public render(): React.ReactElement {
+ return (
+
+ );
+ }
+}
diff --git a/src/playground/src/ui/screen/icon/type.ts b/src/playground/src/ui/screen/icon/type.ts
new file mode 100644
index 000000000..a7a68cccf
--- /dev/null
+++ b/src/playground/src/ui/screen/icon/type.ts
@@ -0,0 +1,82 @@
+import {
+ ComponentShowcase,
+ ComponentShowcaseItem,
+ ComponentShowcaseSection,
+ ComponentShowcaseSetting,
+} from '../common/type';
+
+const defaultIcon: ComponentShowcaseItem = {
+ title: 'Default',
+ props: {},
+};
+
+const zoomIcon: ComponentShowcaseItem = {
+ title: 'Zoom',
+ props: {
+ animation: 'zoom',
+ },
+};
+
+const pulseIcon: ComponentShowcaseItem = {
+ title: 'Pulse',
+ props: {
+ animation: 'pulse',
+ },
+};
+
+const shakeIcon: ComponentShowcaseItem = {
+ title: 'Shake',
+ props: {
+ animation: 'shake',
+ },
+};
+
+const defaultSection: ComponentShowcaseSection = {
+ title: 'Default',
+ items: [
+ defaultIcon,
+ ],
+};
+
+const animationSection: ComponentShowcaseSection = {
+ title: 'Animations',
+ items: [
+ zoomIcon,
+ pulseIcon,
+ shakeIcon,
+ ],
+};
+
+export const iconShowcase: ComponentShowcase = {
+ sections: [
+ defaultSection,
+ animationSection,
+ ],
+};
+
+export const iconSettings: ComponentShowcaseSetting[] = [
+ {
+ propertyName: 'pack',
+ value: 'eva',
+ },
+ {
+ propertyName: 'pack',
+ value: 'ant',
+ },
+ {
+ propertyName: 'pack',
+ value: 'feather',
+ },
+ {
+ propertyName: 'pack',
+ value: 'font-awesome',
+ },
+ {
+ propertyName: 'pack',
+ value: 'material',
+ },
+ {
+ propertyName: 'pack',
+ value: 'material-community',
+ },
+];
diff --git a/src/playground/src/ui/screen/index.ts b/src/playground/src/ui/screen/index.ts
index 11d21a28a..f4cfaac3d 100644
--- a/src/playground/src/ui/screen/index.ts
+++ b/src/playground/src/ui/screen/index.ts
@@ -2,13 +2,15 @@ export { AvatarContainer } from './avatar/avatar.container';
export { BottomNavigationContainer } from './bottomNavigation/bottomNavigation.container';
export { ButtonContainer } from './button/button.container';
export { ButtonGroupContainer } from './buttonGroup/buttonGroup.container';
-export { CheckBoxContainer} from './checkbox/checkbox.container';
+export { CheckBoxContainer } from './checkbox/checkbox.container';
+export { IconContainer } from './icon/icon.container';
export { InputContainer } from './input/input.container';
export { LayoutContainer } from './layout/layout.container';
export { ListContainer } from './list/list.container';
export { PopoverContainer } from './popover/popover.container';
export { RadioContainer } from './radio/radio.container';
export { RadioGroupContainer } from './radioGroup/radioGroup.container';
+export { SpinnerContainer } from './spinner/spinner.container';
export { TabViewContainer } from './tabView/tabView.container';
export { TooltipContainer } from './tooltip/tooltip.container';
export { TextContainer } from './text/text.container';
@@ -17,4 +19,5 @@ export { TopNavigationContainer } from './topNavigation/topNavigation.container'
export { OverflowMenuContainer } from './overflowMenu/overflowMenu.container';
export { SampleContainer } from './sample/sample.container';
export { ModalContainer } from './modal/modal.container';
+export { DropdownContainer } from './dropdown/dropdown.container';
export { default as Home } from './home.component';
diff --git a/src/playground/src/ui/screen/input/type.tsx b/src/playground/src/ui/screen/input/type.tsx
index 24c301b98..bdc7d2af9 100644
--- a/src/playground/src/ui/screen/input/type.tsx
+++ b/src/playground/src/ui/screen/input/type.tsx
@@ -1,6 +1,6 @@
import React from 'react';
-import { Image } from 'react-native';
import { StyleType } from '@kitten/theme';
+import { Icon } from '@kitten/ui';
import {
ComponentShowcase,
ComponentShowcaseItem,
@@ -24,11 +24,9 @@ const disabledInput: ComponentShowcaseItem = {
const iconInput: ComponentShowcaseItem = {
title: 'Icon',
props: {
- icon: (style: StyleType) =>
- ,
+ icon: (style: StyleType) => (
+
+ ),
},
};
@@ -50,11 +48,9 @@ const captionIconInput: ComponentShowcaseItem = {
title: 'Caption Icon',
props: {
caption: 'Place your text',
- captionIcon: (style: StyleType) =>
- ,
+ captionIcon: (style: StyleType) => (
+
+ ),
},
};
diff --git a/src/playground/src/ui/screen/list/listItemShowcase.component.tsx b/src/playground/src/ui/screen/list/listItemShowcase.component.tsx
index d539c8c7a..f1e96c8d8 100644
--- a/src/playground/src/ui/screen/list/listItemShowcase.component.tsx
+++ b/src/playground/src/ui/screen/list/listItemShowcase.component.tsx
@@ -7,6 +7,7 @@ import { StyleType } from '@kitten/theme';
import {
CheckBox,
CheckBoxProps,
+ Icon,
ListItem,
ListItemElement,
ListItemProps,
@@ -20,37 +21,37 @@ export const ListItemShowcase = (props?: ListItemProps): ListItemElement => {
export const ListItemIconShowcase = (props?: ListItemProps): ListItemElement => {
- const Icon = (style: StyleType, index: number): React.ReactElement => (
-
+ const IconElement = (style: StyleType, index: number): React.ReactElement => (
+
);
return (
-
+
);
};
export const ListItemAccessoryShowcase = (props?: ListItemProps): ListItemElement => {
- const Accessory = (style: StyleType, index: number): React.ReactElement => (
+ const AccessoryElement = (style: StyleType, index: number): React.ReactElement => (
);
return (
-
+
);
};
export const ListItemIconAccessoryShowcase = (props?: ListItemProps): ListItemElement => {
- const Icon = (style: StyleType, index: number): React.ReactElement => (
-
+ const IconElement = (style: StyleType, index: number): React.ReactElement => (
+
);
- const Accessory = (style: StyleType, index: number): React.ReactElement => (
+ const AccessoryElement = (style: StyleType, index: number): React.ReactElement => (
);
return (
-
+
);
};
diff --git a/src/playground/src/ui/screen/overflowMenu/type.tsx b/src/playground/src/ui/screen/overflowMenu/type.tsx
index e158616da..915015168 100644
--- a/src/playground/src/ui/screen/overflowMenu/type.tsx
+++ b/src/playground/src/ui/screen/overflowMenu/type.tsx
@@ -5,19 +5,16 @@ import {
ComponentShowcaseSection,
ComponentShowcaseSetting,
} from '../common/type';
-import { OverflowMenuItemType } from '@kitten/ui';
import {
- Image,
- ImageProps,
-} from 'react-native';
+ Icon,
+ OverflowMenuItemType,
+} from '@kitten/ui';
+import { ImageProps } from 'react-native';
import { StyleType } from '@kitten/theme';
-const Icon = (style: StyleType): React.ReactElement => {
+const IconElement = (style: StyleType): React.ReactElement => {
return (
-
+
);
};
@@ -27,7 +24,7 @@ const items: OverflowMenuItemType[] = [
},
{
text: 'Icon Item',
- icon: Icon,
+ icon: IconElement,
},
{
text: 'Disabled Item',
diff --git a/src/playground/src/ui/screen/sample/sample.component.tsx b/src/playground/src/ui/screen/sample/sample.component.tsx
index 9a69f2d58..08786de88 100644
--- a/src/playground/src/ui/screen/sample/sample.component.tsx
+++ b/src/playground/src/ui/screen/sample/sample.component.tsx
@@ -1,11 +1,13 @@
import React from 'react';
import {
+ ImageProps,
ImageSourcePropType,
View,
} from 'react-native';
import {
Avatar,
Button,
+ Icon,
Input,
Layout,
LayoutElement,
@@ -13,6 +15,7 @@ import {
Toggle,
} from '@kitten/ui';
import {
+ StyleType,
ThemedComponentProps,
ThemeType,
withStyles,
@@ -24,9 +27,30 @@ interface ComponentProps {
setTheme: (dark: boolean) => void;
}
+interface State {
+ passwordVisible: boolean;
+}
+
type SampleComponentProps = ComponentProps & ThemedComponentProps;
-class SampleComponent extends React.Component {
+class SampleComponent extends React.Component {
+
+ public state: State = {
+ passwordVisible: false,
+ };
+
+ private onPasswordIconPress = () => {
+ const passwordVisible: boolean = !this.state.passwordVisible;
+ this.setState({ passwordVisible });
+ };
+
+ private renderPasswordIcon = (style: StyleType): React.ReactElement => {
+ const icon: string = this.state.passwordVisible ? 'eye' : 'eye-off';
+
+ return (
+
+ );
+ };
public render(): LayoutElement {
const { themedStyle, profileImage, isDark, setTheme } = this.props;
@@ -70,8 +94,11 @@ class SampleComponent extends React.Component {
/>
SIGN IN
diff --git a/src/playground/src/ui/screen/sample/sample.component.web.tsx b/src/playground/src/ui/screen/sample/sample.component.web.tsx
index cfb945621..ed3617719 100644
--- a/src/playground/src/ui/screen/sample/sample.component.web.tsx
+++ b/src/playground/src/ui/screen/sample/sample.component.web.tsx
@@ -1,11 +1,13 @@
import React from 'react';
import {
+ ImageProps,
ImageSourcePropType,
View,
} from 'react-native';
import {
Avatar,
Button,
+ Icon,
Input,
Layout,
LayoutElement,
@@ -13,6 +15,7 @@ import {
Toggle,
} from '@kitten/ui';
import {
+ StyleType,
ThemedComponentProps,
ThemeType,
withStyles,
@@ -24,9 +27,31 @@ interface ComponentProps {
setTheme: (dark: boolean) => void;
}
+interface State {
+ passwordVisible: boolean;
+}
+
type SampleComponentProps = ComponentProps & ThemedComponentProps;
-class SampleComponent extends React.Component {
+class SampleComponent extends React.Component {
+
+
+ public state: State = {
+ passwordVisible: false,
+ };
+
+ private onPasswordIconPress = () => {
+ const passwordVisible: boolean = !this.state.passwordVisible;
+ this.setState({ passwordVisible });
+ };
+
+ private renderPasswordIcon = (style: StyleType): React.ReactElement => {
+ const icon: string = this.state.passwordVisible ? 'eye' : 'eye-off';
+
+ return (
+
+ );
+ };
public render(): LayoutElement {
const { themedStyle, profileImage, isDark, setTheme } = this.props;
@@ -72,8 +97,11 @@ class SampleComponent extends React.Component {
SIGN IN
diff --git a/src/playground/src/ui/screen/spinner/spinner.container.tsx b/src/playground/src/ui/screen/spinner/spinner.container.tsx
new file mode 100644
index 000000000..e418cff38
--- /dev/null
+++ b/src/playground/src/ui/screen/spinner/spinner.container.tsx
@@ -0,0 +1,30 @@
+import React from 'react';
+import {
+ SpinnerProps,
+ SpinnerElement,
+} from '@kitten/ui';
+import { SpinnerShowcase } from './spinnerShowcase.component';
+import {
+ spinnerSettings,
+ spinnerShowcase,
+} from './type';
+import { ShowcaseContainer } from '../common/showcase.container';
+
+export class SpinnerContainer extends React.Component {
+
+ private renderItem = (props: SpinnerProps): SpinnerElement => {
+ return (
+
+ );
+ };
+
+ public render(): React.ReactNode {
+ return (
+
+ );
+ }
+}
diff --git a/src/playground/src/ui/screen/spinner/spinnerShowcase.component.tsx b/src/playground/src/ui/screen/spinner/spinnerShowcase.component.tsx
new file mode 100644
index 000000000..31fd701a6
--- /dev/null
+++ b/src/playground/src/ui/screen/spinner/spinnerShowcase.component.tsx
@@ -0,0 +1,43 @@
+import React from 'react';
+import {
+ StyleSheet,
+ View,
+ ViewProps,
+} from 'react-native';
+import {
+ Spinner,
+ SpinnerProps,
+ SpinnerElement,
+} from '@kitten/ui';
+
+export const SpinnerShowcase = (props?: SpinnerProps): SpinnerElement => {
+ if (props.status === 'white') {
+ return WhiteSpinner(props);
+ } else {
+ return DefaultSpinner(props);
+ }
+};
+
+const DefaultSpinner = (props?: SpinnerProps): SpinnerElement => {
+ return (
+
+ );
+};
+
+const WhiteSpinner = (props?: SpinnerProps): React.ReactElement => {
+ return (
+
+
+
+ );
+};
+
+const styles = StyleSheet.create({
+ blackSpinnerContainer: {
+ width: 40,
+ height: 40,
+ backgroundColor: '#7f7e82',
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+});
diff --git a/src/playground/src/ui/screen/spinner/type.ts b/src/playground/src/ui/screen/spinner/type.ts
new file mode 100644
index 000000000..d23bed760
--- /dev/null
+++ b/src/playground/src/ui/screen/spinner/type.ts
@@ -0,0 +1,133 @@
+import {
+ ComponentShowcase,
+ ComponentShowcaseItem,
+ ComponentShowcaseSection,
+ ComponentShowcaseSetting,
+} from '../common/type';
+
+const giantSpinner: ComponentShowcaseItem = {
+ title: 'Giant',
+ props: {
+ size: 'giant',
+ },
+};
+
+const largeSpinner: ComponentShowcaseItem = {
+ title: 'Large',
+ props: {
+ size: 'large',
+ },
+};
+
+const mediumSpinner: ComponentShowcaseItem = {
+ title: 'Medium',
+ props: {
+ size: 'medium',
+ },
+};
+
+const smallSpinner: ComponentShowcaseItem = {
+ title: 'Small',
+ props: {
+ size: 'small',
+ },
+};
+
+const tinySpinner: ComponentShowcaseItem = {
+ title: 'Tiny',
+ props: {
+ size: 'tiny',
+ },
+};
+
+const primarySpinner: ComponentShowcaseItem = {
+ title: 'Primary',
+ props: {
+ status: 'primary',
+ },
+};
+
+const successSpinner: ComponentShowcaseItem = {
+ title: 'Success',
+ props: {
+ status: 'success',
+ },
+};
+
+const infoSpinner: ComponentShowcaseItem = {
+ title: 'Info',
+ props: {
+ status: 'info',
+ },
+};
+
+const warningSpinner: ComponentShowcaseItem = {
+ title: 'Warning',
+ props: {
+ status: 'warning',
+ },
+};
+
+const dangerSpinner: ComponentShowcaseItem = {
+ title: 'Danger',
+ props: {
+ status: 'danger',
+ },
+};
+
+const blackSpinner: ComponentShowcaseItem = {
+ title: 'Black',
+ props: {
+ status: 'black',
+ },
+};
+
+const whiteSpinner: ComponentShowcaseItem = {
+ title: 'White',
+ props: {
+ status: 'white',
+ },
+};
+
+const sizeSection: ComponentShowcaseSection = {
+ title: 'Size',
+ items: [
+ giantSpinner,
+ largeSpinner,
+ mediumSpinner,
+ smallSpinner,
+ tinySpinner,
+ ],
+};
+
+const statusSection: ComponentShowcaseSection = {
+ title: 'Status',
+ items: [
+ primarySpinner,
+ successSpinner,
+ infoSpinner,
+ warningSpinner,
+ dangerSpinner,
+ blackSpinner,
+ whiteSpinner,
+ ],
+};
+
+export const spinnerShowcase: ComponentShowcase = {
+ sections: [
+ sizeSection,
+ statusSection,
+ ],
+};
+
+export const spinnerSettings: ComponentShowcaseSetting[] = [
+ {
+ propertyName: 'animating',
+ value: true,
+ },
+ {
+ propertyName: 'animating',
+ value: false,
+ },
+];
+
diff --git a/src/playground/src/ui/screen/topNavigation/type.tsx b/src/playground/src/ui/screen/topNavigation/type.tsx
index caa60fc44..05940d6a7 100644
--- a/src/playground/src/ui/screen/topNavigation/type.tsx
+++ b/src/playground/src/ui/screen/topNavigation/type.tsx
@@ -4,7 +4,10 @@ import {
ImageProps,
} from 'react-native';
import { StyleType } from '@kitten/theme';
-import { TopNavigationAction } from '@kitten/ui';
+import {
+ Icon,
+ TopNavigationAction,
+} from '@kitten/ui';
import {
ComponentShowcase,
ComponentShowcaseItem,
@@ -14,10 +17,7 @@ import {
const RightControlIcon = (style: StyleType): React.ReactElement => {
return (
-
+
);
};
diff --git a/src/templates/template-ui-kitten-typescript/App.tsx b/src/templates/template-ui-kitten-typescript/App.tsx
new file mode 100644
index 000000000..6c6d0ebc5
--- /dev/null
+++ b/src/templates/template-ui-kitten-typescript/App.tsx
@@ -0,0 +1,39 @@
+/**
+ * @license
+ * Copyright Akveo. All Rights Reserved.
+ * Licensed under the MIT License. See License.txt in the project root for license information.
+ */
+
+import React from 'react';
+import { StyleSheet } from 'react-native';
+import { ApplicationProvider, Layout, Text } from 'react-native-ui-kitten';
+import { mapping, light as theme } from '@eva-design/eva';
+
+const App = () => (
+
+
+
+ Welcome to UI Kitten 😻
+
+
+ Start with editing App.tsx to configure your App
+
+
+ For example, try changing theme to Dark by simply changing an import
+
+
+
+);
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ text: {
+ textAlign: 'center',
+ },
+});
+
+export default App;
diff --git a/src/templates/template-ui-kitten-typescript/_tsconfig.json b/src/templates/template-ui-kitten-typescript/_tsconfig.json
new file mode 100644
index 000000000..1bfc717a7
--- /dev/null
+++ b/src/templates/template-ui-kitten-typescript/_tsconfig.json
@@ -0,0 +1,15 @@
+{
+ "compilerOptions": {
+ "allowJs": true,
+ "allowSyntheticDefaultImports": true,
+ "esModuleInterop": true,
+ "isolatedModules": true,
+ "jsx": "react",
+ "lib": ["es6"],
+ "moduleResolution": "node",
+ "noEmit": true,
+ "strict": true,
+ "target": "esnext"
+ },
+ "exclude": ["node_modules", "babel.config.js", "metro.config.js", "jest.config.js"]
+}
diff --git a/src/templates/template-ui-kitten-typescript/dependencies.json b/src/templates/template-ui-kitten-typescript/dependencies.json
new file mode 100644
index 000000000..0fbfce8a2
--- /dev/null
+++ b/src/templates/template-ui-kitten-typescript/dependencies.json
@@ -0,0 +1,4 @@
+{
+ "@eva-design/eva": "^1.0.1",
+ "react-native-ui-kitten": "^4.1.0"
+}
diff --git a/src/templates/template-ui-kitten-typescript/devDependencies.json b/src/templates/template-ui-kitten-typescript/devDependencies.json
new file mode 100644
index 000000000..4846c5445
--- /dev/null
+++ b/src/templates/template-ui-kitten-typescript/devDependencies.json
@@ -0,0 +1,7 @@
+{
+ "@types/jest": "latest",
+ "@types/react-native": "latest",
+ "@types/react-test-renderer": "latest",
+ "@types/react": "latest",
+ "typescript": "latest"
+}
diff --git a/src/templates/template-ui-kitten-typescript/install.js b/src/templates/template-ui-kitten-typescript/install.js
new file mode 100644
index 000000000..7b166cdc6
--- /dev/null
+++ b/src/templates/template-ui-kitten-typescript/install.js
@@ -0,0 +1,72 @@
+/**
+ * @license
+ * Copyright Akveo. All Rights Reserved.
+ * Licensed under the MIT License. See License.txt in the project root for license information.
+ */
+
+/**
+ * Additional scripts needed to correctly setup a project.
+ * Based on https://github.com/react-native-community/react-native-template-typescript.
+ *
+ * Runs as install script on `npm install` and replaces self after everything is done.
+ *
+ * - Replaces useless .js files
+ * - Adds tsconfig.json
+ */
+
+const fs = require('fs');
+const path = require('path');
+
+if (fs.existsSync(path.join(__dirname, '.travis.yml'))) {
+ process.exit()
+}
+
+const projectFilesToDelete = [
+ '.flowconfig',
+ 'App.js',
+ '__tests__/App-test.js',
+];
+
+const templateFilesToAdd = [
+ '_tsconfig.json',
+];
+
+const templateFilesToDelete = [
+ 'install.js',
+ '_tsconfig.json',
+];
+
+const deleteFile = (filePath) => {
+ if (!fs.existsSync(filePath)) {
+ return
+ }
+
+ fs.unlinkSync(filePath)
+};
+
+const projectPath = path.join(__dirname, '..', '..');
+
+const projectFilePath = (fileName) => {
+ return path.join(projectPath, fileName);
+};
+
+const templateFilePath = (fileName) => {
+ return path.join(__dirname, fileName);
+};
+
+const replaceTemplateFile = (fileName) => {
+ const newName = fileName.replace('_', '');
+ fs.copyFileSync(templateFilePath(fileName), templateFilePath(newName));
+};
+
+const deleteProjectFile = (fileName) => {
+ deleteFile(projectFilePath(fileName));
+};
+
+const deleteTemplateFile = (fileName) => {
+ deleteFile(templateFilePath(fileName));
+};
+
+templateFilesToAdd.forEach(replaceTemplateFile);
+projectFilesToDelete.forEach(deleteProjectFile);
+templateFilesToDelete.forEach(deleteTemplateFile);
diff --git a/src/templates/template-ui-kitten-typescript/jest.config.js b/src/templates/template-ui-kitten-typescript/jest.config.js
new file mode 100644
index 000000000..4ee5f1683
--- /dev/null
+++ b/src/templates/template-ui-kitten-typescript/jest.config.js
@@ -0,0 +1,4 @@
+module.exports = {
+ preset: 'react-native',
+ moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
+};
diff --git a/src/templates/template-ui-kitten-typescript/package.json b/src/templates/template-ui-kitten-typescript/package.json
new file mode 100644
index 000000000..7dedf86e9
--- /dev/null
+++ b/src/templates/template-ui-kitten-typescript/package.json
@@ -0,0 +1,22 @@
+{
+ "name": "react-native-template-ui-kitten-typescript",
+ "description": "React Native template with UI Kitten and TypeScript",
+ "version": "4.1.0",
+ "license": "MIT",
+ "author": "akveo ",
+ "homepage": "https://github.com/akveo/react-native-ui-kitten#readme",
+ "repository": "git+https://github.com/akveo/react-native-ui-kitten.git",
+ "bugs": {
+ "url": "https://github.com/akveo/react-native-ui-kitten/issues"
+ },
+ "keywords": [
+ "react-native",
+ "ui-kitten",
+ "typescript",
+ "template",
+ "boilerplate"
+ ],
+ "scripts": {
+ "install": "node install.js"
+ }
+}
diff --git a/src/templates/template-ui-kitten/App.js b/src/templates/template-ui-kitten/App.js
new file mode 100644
index 000000000..152e0ebfb
--- /dev/null
+++ b/src/templates/template-ui-kitten/App.js
@@ -0,0 +1,39 @@
+/**
+ * @license
+ * Copyright Akveo. All Rights Reserved.
+ * Licensed under the MIT License. See License.txt in the project root for license information.
+ */
+
+import React from 'react';
+import { StyleSheet } from 'react-native';
+import { ApplicationProvider, Layout, Text } from 'react-native-ui-kitten';
+import { mapping, light as theme } from '@eva-design/eva';
+
+const App = () => (
+
+
+
+ Welcome to UI Kitten 😻
+
+
+ Start with editing App.js to configure your App
+
+
+ For example, try changing theme to Dark by simply changing an import
+
+
+
+);
+
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ justifyContent: 'center',
+ alignItems: 'center',
+ },
+ text: {
+ textAlign: 'center',
+ },
+});
+
+export default App;
diff --git a/src/templates/template-ui-kitten/dependencies.json b/src/templates/template-ui-kitten/dependencies.json
new file mode 100644
index 000000000..0fbfce8a2
--- /dev/null
+++ b/src/templates/template-ui-kitten/dependencies.json
@@ -0,0 +1,4 @@
+{
+ "@eva-design/eva": "^1.0.1",
+ "react-native-ui-kitten": "^4.1.0"
+}
diff --git a/src/templates/template-ui-kitten/package.json b/src/templates/template-ui-kitten/package.json
new file mode 100644
index 000000000..210b72e1a
--- /dev/null
+++ b/src/templates/template-ui-kitten/package.json
@@ -0,0 +1,18 @@
+{
+ "name": "react-native-template-ui-kitten",
+ "description": "React Native template with UI Kitten",
+ "version": "4.1.0",
+ "license": "MIT",
+ "author": "akveo ",
+ "homepage": "https://github.com/akveo/react-native-ui-kitten#readme",
+ "repository": "git+https://github.com/akveo/react-native-ui-kitten.git",
+ "bugs": {
+ "url": "https://github.com/akveo/react-native-ui-kitten/issues"
+ },
+ "keywords": [
+ "react-native",
+ "ui-kitten",
+ "template",
+ "boilerplate"
+ ]
+}
diff --git a/tsconfig.dev.json b/tsconfig.dev.json
index 7d790e923..352a2bcf5 100644
--- a/tsconfig.dev.json
+++ b/tsconfig.dev.json
@@ -5,7 +5,6 @@
"jsx": "react-native",
"target": "es2015",
"lib": [
- "dom",
"es2018"
]
},
diff --git a/tsconfig.json b/tsconfig.json
index 4e6f3266a..37c56350c 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -8,12 +8,19 @@
"sourceMap": true,
"moduleResolution": "node",
"jsx": "react-native",
+ "target": "es2015",
"typeRoots": [
"./node_modules/@types"
],
"paths": {
"@kitten/*": [
"./src/framework/*"
+ ],
+ "@ui-kitten/*": [
+ "./src/*"
+ ],
+ "react-native-ui-kitten": [
+ "./src/framework"
]
}
}