diff --git a/platform/ui/gatsby-config.js b/platform/ui/gatsby-config.js index 28c727247..7f29ad5e9 100644 --- a/platform/ui/gatsby-config.js +++ b/platform/ui/gatsby-config.js @@ -1,3 +1,7 @@ module.exports = { - plugins: ['gatsby-plugin-sass', `gatsby-plugin-postcss`], + plugins: [ + 'gatsby-plugin-react-svg', + 'gatsby-plugin-sass', + `gatsby-plugin-postcss`, + ], }; diff --git a/platform/ui/index.js b/platform/ui/index.js index b3b200368..744d7d629 100644 --- a/platform/ui/index.js +++ b/platform/ui/index.js @@ -1,6 +1,8 @@ -import ThemeWrapper from './src/components/ThemeWrapper/'; -import Button from './src/components/Button'; -import IconButton from './src/components/IconButton'; -import Typography from './src/components/Typography'; - -export { ThemeWrapper, Button, IconButton, Typography }; +export { + Button, + ButtonGroup, + Icon, + IconButton, + ThemeWrapper, + Typography, +} from './src/components'; diff --git a/platform/ui/package.json b/platform/ui/package.json index dd91d4b50..2fabfc281 100644 --- a/platform/ui/package.json +++ b/platform/ui/package.json @@ -28,6 +28,7 @@ "classnames": "^2.2.6", "docz": "^2.2.0", "gatsby-plugin-postcss": "^2.1.20", + "gatsby-plugin-react-svg": "^3.0.0", "gatsby-plugin-sass": "^2.1.28", "node-sass": "^4.13.1", "prop-types": "^15.7.2", diff --git a/platform/ui/src/assets/icons/active.svg b/platform/ui/src/assets/icons/active.svg new file mode 100644 index 000000000..d0f4c9f08 --- /dev/null +++ b/platform/ui/src/assets/icons/active.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/platform/ui/src/assets/icons/cancel.svg b/platform/ui/src/assets/icons/cancel.svg new file mode 100644 index 000000000..dbf6c1df1 --- /dev/null +++ b/platform/ui/src/assets/icons/cancel.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/platform/ui/src/assets/icons/chevron-down.svg b/platform/ui/src/assets/icons/chevron-down.svg new file mode 100644 index 000000000..0f21c5a9b --- /dev/null +++ b/platform/ui/src/assets/icons/chevron-down.svg @@ -0,0 +1,3 @@ + + + diff --git a/platform/ui/src/assets/icons/chevron-right.svg b/platform/ui/src/assets/icons/chevron-right.svg new file mode 100644 index 000000000..355ccbff1 --- /dev/null +++ b/platform/ui/src/assets/icons/chevron-right.svg @@ -0,0 +1,3 @@ + + + diff --git a/platform/ui/src/assets/icons/info-link.svg b/platform/ui/src/assets/icons/info-link.svg new file mode 100644 index 000000000..743fdbb6b --- /dev/null +++ b/platform/ui/src/assets/icons/info-link.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/platform/ui/src/assets/icons/launch-arrow.svg b/platform/ui/src/assets/icons/launch-arrow.svg new file mode 100644 index 000000000..58f1d6d63 --- /dev/null +++ b/platform/ui/src/assets/icons/launch-arrow.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/platform/ui/src/assets/icons/launch-info.svg b/platform/ui/src/assets/icons/launch-info.svg new file mode 100644 index 000000000..f4f14e4c8 --- /dev/null +++ b/platform/ui/src/assets/icons/launch-info.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/platform/ui/src/assets/icons/settings.svg b/platform/ui/src/assets/icons/settings.svg new file mode 100644 index 000000000..6770652e6 --- /dev/null +++ b/platform/ui/src/assets/icons/settings.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/platform/ui/src/assets/icons/sorting-active-down.svg b/platform/ui/src/assets/icons/sorting-active-down.svg new file mode 100644 index 000000000..cbe93cd50 --- /dev/null +++ b/platform/ui/src/assets/icons/sorting-active-down.svg @@ -0,0 +1,3 @@ + + + diff --git a/platform/ui/src/assets/icons/sorting-active-up.svg b/platform/ui/src/assets/icons/sorting-active-up.svg new file mode 100644 index 000000000..d1a422bb0 --- /dev/null +++ b/platform/ui/src/assets/icons/sorting-active-up.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/platform/ui/src/assets/icons/sorting.svg b/platform/ui/src/assets/icons/sorting.svg new file mode 100644 index 000000000..cdd422f34 --- /dev/null +++ b/platform/ui/src/assets/icons/sorting.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/platform/ui/src/components/Button/Button.mdx b/platform/ui/src/components/Button/Button.mdx index cf09571dd..55c1068d9 100644 --- a/platform/ui/src/components/Button/Button.mdx +++ b/platform/ui/src/components/Button/Button.mdx @@ -6,6 +6,8 @@ route: components/button import { Playground, Props } from 'docz'; import Button from './'; +import IconButton from '../IconButton'; +import Icon from './../Icon'; # Button @@ -140,13 +142,12 @@ import { Button } from '@ohfi/ui'; ## Buttons with icons -{() => { - return ( - - + } +======= + startIcon={} +>>>>>>> 98a130b58... feat: Icon component (#1499) > - Download + Settings - } + > + Download + + } + > + Download + + +>>>>>>> 98a130b58... feat: Icon component (#1499) ## Icon Buttons @@ -190,42 +211,101 @@ import { IconButton } from '@ohfi/ui'; ``` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/platform/ui/src/components/ButtonGroup/ButtonGroup.mdx b/platform/ui/src/components/ButtonGroup/ButtonGroup.mdx index b58904b1e..73934ca85 100644 --- a/platform/ui/src/components/ButtonGroup/ButtonGroup.mdx +++ b/platform/ui/src/components/ButtonGroup/ButtonGroup.mdx @@ -6,7 +6,8 @@ route: components/buttonGroup import { Playground, Props } from 'docz'; import Button from '../Button'; -import IconButton from '../IconButton'; +import IconButton from './../IconButton'; +import Icon from './../Icon'; import ButtonGroup from './'; # ButtonGroup @@ -100,16 +101,9 @@ import { ButtonGroup } from '@ohfi/ui'; - Search + Options - - - + diff --git a/platform/ui/src/components/Icon/Icon.jsx b/platform/ui/src/components/Icon/Icon.jsx new file mode 100644 index 000000000..992aabec5 --- /dev/null +++ b/platform/ui/src/components/Icon/Icon.jsx @@ -0,0 +1,13 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import getIcon from './getIcon'; + +const Icon = ({ name, ...otherProps }) => { + return {getIcon(name, otherProps)}; +}; + +Icon.propTypes = { + name: PropTypes.string.isRequired, +}; + +export default Icon; diff --git a/platform/ui/src/components/Icon/getIcon.jsx b/platform/ui/src/components/Icon/getIcon.jsx new file mode 100644 index 000000000..deb3218ad --- /dev/null +++ b/platform/ui/src/components/Icon/getIcon.jsx @@ -0,0 +1,42 @@ +import React from 'react'; +// Icons +import active from './../../assets/icons/active.svg'; +import cancel from './../../assets/icons/cancel.svg'; +import chevronDown from './../../assets/icons/chevron-down.svg'; +import chevronRight from './../../assets/icons/chevron-right.svg'; +import infoLink from './../../assets/icons/info-link.svg'; +import launchArrow from './../../assets/icons/launch-arrow.svg'; +import launchInfo from './../../assets/icons/launch-info.svg'; +import settings from './../../assets/icons/settings.svg'; +import sortingActiveDown from './../../assets/icons/sorting-active-down.svg'; +import sortingActiveUp from './../../assets/icons/sorting-active-up.svg'; +import sorting from './../../assets/icons/sorting.svg'; + +const ICONS = { + active: active, + cancel: cancel, + 'chevron-down': chevronDown, + 'chevron-right': chevronRight, + 'info-link': infoLink, + 'launch-arrow': launchArrow, + 'launch-info': launchInfo, + settings: settings, + 'sorting-active-down': sortingActiveDown, + 'sorting-active-up': sortingActiveUp, + sorting: sorting, +}; + +/** + * Return the matching SVG Icon as a React Component. + * Results in an inlined SVG Element. If there's no match, + * return `null` + */ +export default function getIcon(key, props) { + if (!key || !ICONS[key]) { + return React.createElement('div', null, 'Missing Icon'); + } + + return React.createElement(ICONS[key], props); +} + +export { ICONS }; diff --git a/platform/ui/src/components/Icon/icon.mdx b/platform/ui/src/components/Icon/icon.mdx new file mode 100644 index 000000000..de029ba1a --- /dev/null +++ b/platform/ui/src/components/Icon/icon.mdx @@ -0,0 +1,43 @@ +--- +name: Icon +menu: Components +route: components/icon +--- + +import { Playground, Props } from 'docz'; +import Icon from './Icon'; +import { ICONS } from './getIcon'; + +# Icon + +## Basic usage + + + + + +## All Icons + + + {Object.keys(ICONS) + .sort() + .map((name, i) => { + return ( + + + + + + {name} + + + ); + })} + + +## Properties + + + +The `Icon` component takes a single prop of `name`, which indicates which Icon +should be displayed. The icon inherit the component text/font styles. diff --git a/platform/ui/src/components/Icon/index.js b/platform/ui/src/components/Icon/index.js new file mode 100644 index 000000000..22795b9a7 --- /dev/null +++ b/platform/ui/src/components/Icon/index.js @@ -0,0 +1,2 @@ +import Icon from './Icon'; +export default Icon; diff --git a/platform/ui/src/components/index.js b/platform/ui/src/components/index.js new file mode 100644 index 000000000..42984a806 --- /dev/null +++ b/platform/ui/src/components/index.js @@ -0,0 +1,8 @@ +import Button from './Button'; +import ButtonGroup from './ButtonGroup'; +import Icon from './Icon'; +import IconButton from './IconButton'; +import ThemeWrapper from './ThemeWrapper/'; +import Typography from './Typography'; + +export { Button, ButtonGroup, Icon, IconButton, ThemeWrapper, Typography }; diff --git a/yarn.lock b/yarn.lock index 5d0765a75..56d194937 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6051,7 +6051,7 @@ css-what@^3.2.1: resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.2.1.tgz#f4a8f12421064621b456755e34a03a2c22df5da1" integrity sha512-WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw== -css@^2.0.0: +css@2.2.4, css@^2.0.0: version "2.2.4" resolved "https://registry.yarnpkg.com/css/-/css-2.2.4.tgz#c646755c73971f2bba6a601e2cf2fd71b1298929" integrity sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw== @@ -6562,7 +6562,7 @@ detect-indent@^6.0.0: resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.0.0.tgz#0abd0f549f69fc6659a254fe96786186b6f528fd" integrity sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA== -detect-libc@^1.0.2, detect-libc@^1.0.3: +detect-libc@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= @@ -8825,6 +8825,13 @@ gatsby-plugin-react-helmet-async@^1.0.5: resolved "https://registry.yarnpkg.com/gatsby-plugin-react-helmet-async/-/gatsby-plugin-react-helmet-async-1.0.15.tgz#b03bceb9fd0ec5bcaa93739a1970fd804ceaf573" integrity sha512-rdNRxqY+szgOJGHnoONmXsfzGsOFiQrVWQtRlq5M9GluNkANzCNHjT2JoUyH8s261GK5MvME0m4rOO8BJHZkEQ== +gatsby-plugin-react-svg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/gatsby-plugin-react-svg/-/gatsby-plugin-react-svg-3.0.0.tgz#67984bf350bce0532bef965fab094b0b461cdf68" + integrity sha512-myZl5NjVZwLLn4ovwSDM7cufa8yjaRiU5KoufJrz8FEalRroZ/hFSCCKNVna3blTwxcS0rZgISigYn9/xY7rkw== + dependencies: + svg-react-loader "^0.4.4" + gatsby-plugin-root-import@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/gatsby-plugin-root-import/-/gatsby-plugin-root-import-2.0.5.tgz#04e520dc661d67f49aa7950f11b7c780fd2fdbd3" @@ -10405,7 +10412,7 @@ i18next@^17.0.3: dependencies: "@babel/runtime" "^7.3.1" -iconv-lite@0.4.24, iconv-lite@^0.4.13, iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13: +iconv-lite@0.4.24, iconv-lite@^0.4.13, iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@~0.4.13: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -12361,6 +12368,15 @@ loader-runner@^2.4.0: resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== +loader-utils@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" + integrity sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0= + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + loader-utils@1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" @@ -13589,15 +13605,6 @@ ndarray@^1.0.18: iota-array "^1.0.0" is-buffer "^1.0.2" -needle@^2.2.1: - version "2.3.3" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.3.3.tgz#a041ad1d04a871b0ebb666f40baaf1fb47867117" - integrity sha512-EkY0GeSq87rWp1hoq/sH/wnTWgFVhYlnIkbJ0YJFfRgEFlz2RraCjBpFQ+vrEgEdp0ThfyHADmkChEhcb7PKyw== - dependencies: - debug "^3.2.6" - iconv-lite "^0.4.4" - sax "^1.2.4" - negotiator@0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" @@ -13785,22 +13792,6 @@ node-object-hash@^2.0.0: resolved "https://registry.yarnpkg.com/node-object-hash/-/node-object-hash-2.0.0.tgz#9971fcdb7d254f05016bd9ccf508352bee11116b" integrity sha512-VZR0zroAusy1ETZMZiGeLkdu50LGjG5U1KHZqTruqtTyQ2wfWhHG2Ow4nsUbfTFGlaREgNHcCWoM/OzEm6p+NQ== -node-pre-gyp@*: - version "0.14.0" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz#9a0596533b877289bcad4e143982ca3d904ddc83" - integrity sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA== - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.1" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.2.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4.4.2" - node-releases@^1.1.50: version "1.1.50" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.50.tgz#803c40d2c45db172d0410e4efec83aa8c6ad0592" @@ -13966,7 +13957,7 @@ npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1: semver "^5.6.0" validate-npm-package-name "^3.0.0" -npm-packlist@^1.1.6, npm-packlist@^1.4.4: +npm-packlist@^1.4.4: version "1.4.8" resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e" integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A== @@ -14005,7 +13996,7 @@ npm-run-path@^4.0.0: dependencies: path-key "^3.0.0" -"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.1, npmlog@^4.0.2, npmlog@^4.1.2: +"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.1, npmlog@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== @@ -16253,6 +16244,11 @@ raf@^3.4.1: dependencies: performance-now "^2.1.0" +ramda@0.21.0: + version "0.21.0" + resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.21.0.tgz#a001abedb3ff61077d4ff1d577d44de77e8d0a35" + integrity sha1-oAGr7bP/YQd9T/HVd9RN536NCjU= + ramda@0.24.1: version "0.24.1" resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.24.1.tgz#c3b7755197f35b8dc3502228262c4c91ddb6b857" @@ -17875,7 +17871,7 @@ rx-lite@*, rx-lite@^4.0.8: resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" integrity sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ= -rx@^4.1.0: +rx@4.1.0, rx@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" integrity sha1-pfE/957zt0D+MKqAP7CfmIBdR4I= @@ -18067,7 +18063,7 @@ semver-diff@^2.0.0: dependencies: semver "^5.0.3" -"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", semver@^5.0.3, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: +"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", semver@^5.0.3, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -19399,6 +19395,18 @@ supports-hyperlinks@^1.0.1: has-flag "^2.0.0" supports-color "^5.0.0" +svg-react-loader@^0.4.4: + version "0.4.6" + resolved "https://registry.yarnpkg.com/svg-react-loader/-/svg-react-loader-0.4.6.tgz#b263efb3e3d2fff4c682a729351aba5f185051a1" + integrity sha512-HVEypjWQsQuJdBIPzXGxpmQsQts7QwfQuYgK1rah6BVCMoLNSCh/ESKVNd7/tHq8DkWYHHTyaUMDA1FjqZYrgA== + dependencies: + css "2.2.4" + loader-utils "1.1.0" + ramda "0.21.0" + rx "4.1.0" + traverse "0.6.6" + xml2js "0.4.17" + svg-tags@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" @@ -19526,7 +19534,7 @@ tar@^2.0.0: fstream "^1.0.12" inherits "2" -tar@^4.4.10, tar@^4.4.12, tar@^4.4.2, tar@^4.4.8: +tar@^4.4.10, tar@^4.4.12, tar@^4.4.8: version "4.4.13" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== @@ -19870,6 +19878,11 @@ tr46@^1.0.1: dependencies: punycode "^2.1.0" +traverse@0.6.6: + version "0.6.6" + resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" + integrity sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc= + treeify@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/treeify/-/treeify-1.1.0.tgz#4e31c6a463accd0943879f30667c4fdaff411bb8" @@ -21539,6 +21552,14 @@ xml-name-validator@^3.0.0: resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== +xml2js@0.4.17: + version "0.4.17" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.17.tgz#17be93eaae3f3b779359c795b419705a8817e868" + integrity sha1-F76T6q4/O3eTWceVtBlwWogX6Gg= + dependencies: + sax ">=0.6.0" + xmlbuilder "^4.1.0" + xml2js@0.4.19: version "0.4.19" resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7" @@ -21557,6 +21578,13 @@ xmlbuilder@9.0.7, xmlbuilder@~9.0.1: resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= +xmlbuilder@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-4.2.1.tgz#aa58a3041a066f90eaa16c2f5389ff19f3f461a5" + integrity sha1-qlijBBoGb5DqoWwvU4n/GfP0YaU= + dependencies: + lodash "^4.0.0" + xmlhttprequest-ssl@~1.5.4: version "1.5.5" resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e"