From d77c99adfa722bad741c740f20db99286e9f6542 Mon Sep 17 00:00:00 2001 From: Josh McDonald Date: Mon, 16 Jan 2017 14:15:10 +1000 Subject: [PATCH] JENKINS-39763 Move new header components to blueocean-core-js for use in web and dashboard (#705) * Move the header / logo components into blueocean-core-js, add storybook support * Make some adjustments to i18n so it doesn't block components from appearing in other modules' storybooks * Fix a couple of small issues in RunButton * Remove components from -dashboard that have been migrated to -core-js, and related stories * Add some excludes to storybook webpack config, which we haven't noticed because browserify is smart enough to know them already * Re-indent routes so they make sense --- blueocean-core-js/.storybook/config.js | 7 + blueocean-core-js/.storybook/head.html | 16 + .../.storybook/webpack.config.js | 16 + blueocean-core-js/npm-shrinkwrap.json | 1511 ++++++++++++++++- blueocean-core-js/package.json | 5 + .../src}/js/components/BlueLogo.jsx | 0 .../src}/js/components/ContentPageHeader.jsx | 2 + .../src}/js/components/ResultPageHeader.jsx | 0 .../src/js/components/RunButton.jsx | 7 +- .../stories/ContentPageHeaderStories.js | 0 .../src/js/components/stories/index.js | 9 + blueocean-core-js/src/js/i18n/i18n.js | 46 +- blueocean-core-js/src/js/index.js | 15 + blueocean-core-js/src/less/core.less | 1 + .../src}/less/header.less | 0 blueocean-core-js/test/js/test-entrypoint.js | 4 +- .../.storybook/webpack.config.js | 5 + .../src/main/js/PipelineRoutes.jsx | 36 +- .../src/main/js/components/stories/index.js | 1 - .../src/main/less/extensions.less | 1 - .../.storybook/webpack.config.js | 5 + 21 files changed, 1594 insertions(+), 93 deletions(-) create mode 100644 blueocean-core-js/.storybook/config.js create mode 100644 blueocean-core-js/.storybook/head.html create mode 100644 blueocean-core-js/.storybook/webpack.config.js rename {blueocean-dashboard/src/main => blueocean-core-js/src}/js/components/BlueLogo.jsx (100%) rename {blueocean-dashboard/src/main => blueocean-core-js/src}/js/components/ContentPageHeader.jsx (97%) rename {blueocean-dashboard/src/main => blueocean-core-js/src}/js/components/ResultPageHeader.jsx (100%) rename blueocean-dashboard/src/main/js/components/stories/headers.js => blueocean-core-js/src/js/components/stories/ContentPageHeaderStories.js (100%) create mode 100644 blueocean-core-js/src/js/components/stories/index.js rename {blueocean-dashboard/src/main => blueocean-core-js/src}/less/header.less (100%) diff --git a/blueocean-core-js/.storybook/config.js b/blueocean-core-js/.storybook/config.js new file mode 100644 index 00000000000..8386cb2a9f2 --- /dev/null +++ b/blueocean-core-js/.storybook/config.js @@ -0,0 +1,7 @@ +import { configure } from '@kadira/storybook'; + +function loadStories() { + require('../src/js/components/stories/index'); +} + +configure(loadStories, module); diff --git a/blueocean-core-js/.storybook/head.html b/blueocean-core-js/.storybook/head.html new file mode 100644 index 00000000000..81ece4e81e0 --- /dev/null +++ b/blueocean-core-js/.storybook/head.html @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/blueocean-core-js/.storybook/webpack.config.js b/blueocean-core-js/.storybook/webpack.config.js new file mode 100644 index 00000000000..19e257b119d --- /dev/null +++ b/blueocean-core-js/.storybook/webpack.config.js @@ -0,0 +1,16 @@ +const path = require('path'); + +module.exports = { + module: {}, + node: { + net: "empty", + dns: "empty", + tls: "empty" + }, + resolve: { + extensions: [ + '.js', // required by storybook + '', '.jsx' // for blueocean files + ], + } +}; diff --git a/blueocean-core-js/npm-shrinkwrap.json b/blueocean-core-js/npm-shrinkwrap.json index ed53fa45241..68329ea5261 100644 --- a/blueocean-core-js/npm-shrinkwrap.json +++ b/blueocean-core-js/npm-shrinkwrap.json @@ -2,6 +2,18 @@ "name": "@jenkins-cd/blueocean-core-js", "version": "0.0.45-unpublished", "dependencies": { + "@jenkins-cd/design-language": { + "version": "0.0.97", + "from": "@jenkins-cd/design-language@latest", + "resolved": "https://registry.npmjs.org/@jenkins-cd/design-language/-/design-language-0.0.97.tgz", + "dependencies": { + "moment": { + "version": "2.15.1", + "from": "moment@2.15.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.15.1.tgz" + } + } + }, "@jenkins-cd/diag": { "version": "0.0.2", "from": "@jenkins-cd/diag@0.0.2", @@ -38,12 +50,101 @@ "from": "@jenkins-cd/storage@0.0.3", "resolved": "https://registry.npmjs.org/@jenkins-cd/storage/-/storage-0.0.3.tgz" }, + "@kadira/react-split-pane": { + "version": "1.4.7", + "from": "@kadira/react-split-pane@>=1.4.0 <2.0.0", + "resolved": "https://registry.npmjs.org/@kadira/react-split-pane/-/react-split-pane-1.4.7.tgz", + "dev": true + }, + "@kadira/storybook": { + "version": "2.20.1", + "from": "@kadira/storybook@2.20.1", + "resolved": "https://registry.npmjs.org/@kadira/storybook/-/storybook-2.20.1.tgz", + "dev": true, + "dependencies": { + "shelljs": { + "version": "0.7.6", + "from": "shelljs@>=0.7.4 <0.8.0", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.6.tgz", + "dev": true + }, + "uuid": { + "version": "2.0.3", + "from": "uuid@>=2.0.2 <3.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", + "dev": true + } + } + }, + "@kadira/storybook-addon-actions": { + "version": "1.1.1", + "from": "@kadira/storybook-addon-actions@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/@kadira/storybook-addon-actions/-/storybook-addon-actions-1.1.1.tgz", + "dev": true + }, + "@kadira/storybook-addon-links": { + "version": "1.0.1", + "from": "@kadira/storybook-addon-links@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/@kadira/storybook-addon-links/-/storybook-addon-links-1.0.1.tgz", + "dev": true + }, + "@kadira/storybook-addons": { + "version": "1.6.1", + "from": "@kadira/storybook-addons@>=1.5.0 <2.0.0", + "resolved": "https://registry.npmjs.org/@kadira/storybook-addons/-/storybook-addons-1.6.1.tgz", + "dev": true + }, + "@kadira/storybook-channel": { + "version": "1.1.0", + "from": "@kadira/storybook-channel@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/@kadira/storybook-channel/-/storybook-channel-1.1.0.tgz", + "dev": true + }, + "@kadira/storybook-channel-postmsg": { + "version": "1.1.0", + "from": "@kadira/storybook-channel-postmsg@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/@kadira/storybook-channel-postmsg/-/storybook-channel-postmsg-1.1.0.tgz", + "dev": true + }, + "@kadira/storybook-database": { + "version": "2.1.0", + "from": "@kadira/storybook-database@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/@kadira/storybook-database/-/storybook-database-2.1.0.tgz", + "dev": true, + "dependencies": { + "uuid": { + "version": "2.0.3", + "from": "uuid@^2.0.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", + "dev": true + } + } + }, + "@kadira/storybook-database-local": { + "version": "1.2.2", + "from": "@kadira/storybook-database-local@>=1.2.1 <2.0.0", + "resolved": "https://registry.npmjs.org/@kadira/storybook-database-local/-/storybook-database-local-1.2.2.tgz", + "dev": true, + "dependencies": { + "whatwg-fetch": { + "version": "1.1.1", + "from": "whatwg-fetch@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-1.1.1.tgz", + "dev": true + } + } + }, + "@kadira/storybook-ui": { + "version": "3.11.0", + "from": "@kadira/storybook-ui@>=3.6.0 <4.0.0", + "resolved": "https://registry.npmjs.org/@kadira/storybook-ui/-/storybook-ui-3.11.0.tgz", + "dev": true + }, "abab": { "version": "1.0.3", "from": "abab@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.3.tgz", - "dev": true, - "optional": true + "dev": true }, "accepts": { "version": "1.1.4", @@ -102,14 +203,12 @@ "from": "acorn-globals@>=1.0.4 <2.0.0", "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz", "dev": true, - "optional": true, "dependencies": { "acorn": { "version": "2.7.0", "from": "acorn@>=2.1.0 <3.0.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz", - "dev": true, - "optional": true + "dev": true } } }, @@ -133,6 +232,12 @@ "resolved": "https://registry.npmjs.org/after/-/after-0.8.1.tgz", "dev": true }, + "airbnb-js-shims": { + "version": "1.0.1", + "from": "airbnb-js-shims@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/airbnb-js-shims/-/airbnb-js-shims-1.0.1.tgz", + "dev": true + }, "ajv": { "version": "4.9.0", "from": "ajv@>=4.7.0 <5.0.0", @@ -151,6 +256,12 @@ "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", "dev": true }, + "alphanum-sort": { + "version": "1.0.2", + "from": "alphanum-sort@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "dev": true + }, "amdefine": { "version": "1.0.1", "from": "amdefine@>=0.0.4", @@ -162,6 +273,12 @@ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", "dev": true }, + "ansi-html": { + "version": "0.0.6", + "from": "ansi-html@0.0.6", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.6.tgz", + "dev": true + }, "ansi-regex": { "version": "2.0.0", "from": "ansi-regex@>=2.0.0 <3.0.0", @@ -209,6 +326,12 @@ "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", "dev": true }, + "array-equal": { + "version": "1.0.0", + "from": "array-equal@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", + "dev": true + }, "array-filter": { "version": "0.0.1", "from": "array-filter@>=0.0.0 <0.1.0", @@ -221,6 +344,18 @@ "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", "dev": true }, + "array-flatten": { + "version": "1.1.1", + "from": "array-flatten@1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "dev": true + }, + "array-includes": { + "version": "3.0.2", + "from": "array-includes@>=3.0.2 <4.0.0", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.2.tgz", + "dev": true + }, "array-map": { "version": "0.0.0", "from": "array-map@>=0.0.0 <0.1.0", @@ -272,8 +407,7 @@ "asap": { "version": "2.0.5", "from": "asap@>=2.0.3 <2.1.0", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.5.tgz", - "dev": true + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.5.tgz" }, "asn1": { "version": "0.2.3", @@ -339,8 +473,13 @@ "version": "0.4.0", "from": "asynckit@>=0.4.0 <0.5.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "dev": true, - "optional": true + "dev": true + }, + "autoprefixer": { + "version": "6.6.1", + "from": "autoprefixer@>=6.3.7 <7.0.0", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.6.1.tgz", + "dev": true }, "aws-sign2": { "version": "0.6.0", @@ -476,6 +615,12 @@ "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.16.0.tgz", "dev": true }, + "babel-loader": { + "version": "6.2.10", + "from": "babel-loader@>=6.2.4 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-6.2.10.tgz", + "dev": true + }, "babel-messages": { "version": "6.8.0", "from": "babel-messages@>=6.8.0 <7.0.0", @@ -776,6 +921,12 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.19.0.tgz", "dev": true }, + "babel-plugin-transform-react-constant-elements": { + "version": "6.9.1", + "from": "babel-plugin-transform-react-constant-elements@>=6.9.1 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-constant-elements/-/babel-plugin-transform-react-constant-elements-6.9.1.tgz", + "dev": true + }, "babel-plugin-transform-react-display-name": { "version": "6.8.0", "from": "babel-plugin-transform-react-display-name@>=6.3.13 <7.0.0", @@ -806,6 +957,12 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.16.1.tgz", "dev": true }, + "babel-plugin-transform-runtime": { + "version": "6.15.0", + "from": "babel-plugin-transform-runtime@>=6.12.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.15.0.tgz", + "dev": true + }, "babel-plugin-transform-strict-mode": { "version": "6.18.0", "from": "babel-plugin-transform-strict-mode@>=6.18.0 <7.0.0", @@ -824,6 +981,12 @@ "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.16.0.tgz", "dev": true }, + "babel-preset-es2016": { + "version": "6.16.0", + "from": "babel-preset-es2016@>=6.11.3 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-preset-es2016/-/babel-preset-es2016-6.16.0.tgz", + "dev": true + }, "babel-preset-react": { "version": "6.16.0", "from": "babel-preset-react@6.16.0", @@ -965,6 +1128,12 @@ "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", "dev": true }, + "big.js": { + "version": "3.1.3", + "from": "big.js@>=3.1.3 <4.0.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.1.3.tgz", + "dev": true + }, "binary-extensions": { "version": "1.7.0", "from": "binary-extensions@>=1.0.0 <2.0.0", @@ -1134,6 +1303,12 @@ "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", "dev": true }, + "browserslist": { + "version": "1.5.2", + "from": "browserslist@>=1.5.1 <1.6.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.5.2.tgz", + "dev": true + }, "buffer": { "version": "4.9.1", "from": "buffer@>=4.1.0 <5.0.0", @@ -1217,6 +1392,38 @@ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", "dev": true }, + "caniuse-api": { + "version": "1.5.2", + "from": "caniuse-api@>=1.5.2 <2.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.5.2.tgz", + "dev": true, + "dependencies": { + "lodash.memoize": { + "version": "4.1.2", + "from": "lodash.memoize@>=4.1.0 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "dev": true + }, + "shelljs": { + "version": "0.7.6", + "from": "shelljs@^0.7.0", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.6.tgz", + "dev": true + } + } + }, + "caniuse-db": { + "version": "1.0.30000607", + "from": "caniuse-db@>=1.0.30000604 <2.0.0", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000607.tgz", + "dev": true + }, + "case-sensitive-paths-webpack-plugin": { + "version": "1.1.4", + "from": "case-sensitive-paths-webpack-plugin@>=1.1.2 <2.0.0", + "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-1.1.4.tgz", + "dev": true + }, "caseless": { "version": "0.11.0", "from": "caseless@>=0.11.0 <0.12.0", @@ -1265,6 +1472,18 @@ "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.1.tgz", "dev": true }, + "clap": { + "version": "1.1.2", + "from": "clap@>=1.0.9 <2.0.0", + "resolved": "https://registry.npmjs.org/clap/-/clap-1.1.2.tgz", + "dev": true + }, + "classnames": { + "version": "2.2.5", + "from": "classnames@>=2.2.3 <3.0.0", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.5.tgz", + "dev": true + }, "cli-cursor": { "version": "1.0.2", "from": "cli-cursor@>=1.0.1 <2.0.0", @@ -1309,12 +1528,48 @@ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", "dev": true }, + "coa": { + "version": "1.0.1", + "from": "coa@>=1.0.1 <1.1.0", + "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.1.tgz", + "dev": true + }, "code-point-at": { "version": "1.1.0", "from": "code-point-at@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "dev": true }, + "color": { + "version": "0.11.4", + "from": "color@>=0.11.0 <0.12.0", + "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", + "dev": true + }, + "color-convert": { + "version": "1.8.2", + "from": "color-convert@>=1.3.0 <2.0.0", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.8.2.tgz", + "dev": true + }, + "color-name": { + "version": "1.1.1", + "from": "color-name@>=1.1.1 <2.0.0", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "dev": true + }, + "color-string": { + "version": "0.3.0", + "from": "color-string@>=0.3.0 <0.4.0", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz", + "dev": true + }, + "colormin": { + "version": "1.1.2", + "from": "colormin@>=1.0.5 <2.0.0", + "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", + "dev": true + }, "colors": { "version": "1.1.2", "from": "colors@>=1.1.0 <2.0.0", @@ -1352,6 +1607,12 @@ "from": "commander@>=2.9.0 <3.0.0", "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz" }, + "commondir": { + "version": "1.0.1", + "from": "commondir@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "dev": true + }, "commoner": { "version": "0.10.8", "from": "commoner@>=0.10.1 <0.11.0", @@ -1393,6 +1654,20 @@ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz", "dev": true }, + "configstore": { + "version": "2.1.0", + "from": "configstore@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-2.1.0.tgz", + "dev": true, + "dependencies": { + "uuid": { + "version": "2.0.3", + "from": "uuid@^2.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", + "dev": true + } + } + }, "connect": { "version": "3.5.0", "from": "connect@>=3.3.5 <4.0.0", @@ -1425,18 +1700,42 @@ "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", "dev": true }, + "content-disposition": { + "version": "0.5.1", + "from": "content-disposition@0.5.1", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.1.tgz", + "dev": true + }, "content-type": { "version": "1.0.2", "from": "content-type@>=1.0.2 <1.1.0", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz", "dev": true }, + "content-type-parser": { + "version": "1.0.1", + "from": "content-type-parser@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/content-type-parser/-/content-type-parser-1.0.1.tgz", + "dev": true + }, "convert-source-map": { "version": "1.3.0", "from": "convert-source-map@>=1.1.0 <2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.3.0.tgz", "dev": true }, + "cookie": { + "version": "0.3.1", + "from": "cookie@0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "from": "cookie-signature@1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "dev": true + }, "core-js": { "version": "2.4.1", "from": "core-js@>=2.4.0 <3.0.0", @@ -1487,18 +1786,62 @@ "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.0.tgz", "dev": true }, + "css-color-names": { + "version": "0.0.4", + "from": "css-color-names@0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "dev": true + }, + "css-loader": { + "version": "0.25.0", + "from": "css-loader@0.25.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.25.0.tgz", + "dev": true + }, "css-select": { "version": "1.2.0", "from": "css-select@>=1.2.0 <1.3.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", "dev": true }, + "css-selector-tokenizer": { + "version": "0.6.0", + "from": "css-selector-tokenizer@>=0.6.0 <0.7.0", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.6.0.tgz", + "dev": true, + "dependencies": { + "regexpu-core": { + "version": "1.0.0", + "from": "regexpu-core@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", + "dev": true + } + } + }, "css-what": { "version": "2.1.0", "from": "css-what@>=2.1.0 <2.2.0", "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz", "dev": true }, + "cssesc": { + "version": "0.1.0", + "from": "cssesc@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", + "dev": true + }, + "cssnano": { + "version": "3.10.0", + "from": "cssnano@>=2.6.1 <4.0.0", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz", + "dev": true + }, + "csso": { + "version": "2.2.1", + "from": "csso@>=2.2.1 <2.3.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-2.2.1.tgz", + "dev": true + }, "cssom": { "version": "0.3.1", "from": "cssom@>=0.3.0 <0.4.0", @@ -1509,8 +1852,7 @@ "version": "0.2.37", "from": "cssstyle@>=0.2.29 <0.3.0", "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz", - "dev": true, - "optional": true + "dev": true }, "currently-unhandled": { "version": "0.4.1", @@ -1582,6 +1924,12 @@ } } }, + "deep-equal": { + "version": "1.0.1", + "from": "deep-equal@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "dev": true + }, "deep-is": { "version": "0.1.3", "from": "deep-is@>=0.1.3 <0.2.0", @@ -1641,6 +1989,12 @@ "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", "dev": true }, + "destroy": { + "version": "1.0.4", + "from": "destroy@>=1.0.4 <1.1.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "dev": true + }, "detect-file": { "version": "0.1.0", "from": "detect-file@>=0.1.0 <0.2.0", @@ -1741,6 +2095,12 @@ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", "dev": true }, + "dot-prop": { + "version": "3.0.0", + "from": "dot-prop@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz", + "dev": true + }, "duplexer2": { "version": "0.1.4", "from": "duplexer2@>=0.1.2 <0.2.0", @@ -1765,6 +2125,12 @@ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "dev": true }, + "element-class": { + "version": "0.2.2", + "from": "element-class@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/element-class/-/element-class-0.2.2.tgz", + "dev": true + }, "elliptic": { "version": "6.3.2", "from": "elliptic@>=6.0.0 <7.0.0", @@ -1779,11 +2145,23 @@ } } }, + "emojis-list": { + "version": "2.1.0", + "from": "emojis-list@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "dev": true + }, "enabled": { "version": "1.0.2", "from": "enabled@1.0.2", "resolved": "https://registry.npmjs.org/enabled/-/enabled-1.0.2.tgz" }, + "encodeurl": { + "version": "1.0.1", + "from": "encodeurl@>=1.0.1 <1.1.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", + "dev": true + }, "encoding": { "version": "0.1.12", "from": "encoding@>=0.1.11 <0.2.0", @@ -1863,6 +2241,20 @@ } } }, + "enhanced-resolve": { + "version": "0.9.1", + "from": "enhanced-resolve@>=0.9.0 <0.10.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", + "dev": true, + "dependencies": { + "memory-fs": { + "version": "0.2.0", + "from": "memory-fs@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz", + "dev": true + } + } + }, "ent": { "version": "2.2.0", "from": "ent@>=2.2.0 <2.3.0", @@ -1895,8 +2287,7 @@ "version": "0.1.4", "from": "errno@>=0.1.1 <0.2.0", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", - "dev": true, - "optional": true + "dev": true }, "error-ex": { "version": "1.3.0", @@ -1904,6 +2295,12 @@ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.0.tgz", "dev": true }, + "error-stack-parser": { + "version": "1.3.6", + "from": "error-stack-parser@>=1.3.6 <2.0.0", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-1.3.6.tgz", + "dev": true + }, "es-abstract": { "version": "1.6.1", "from": "es-abstract@>=1.3.2 <2.0.0", @@ -1922,6 +2319,12 @@ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.12.tgz", "dev": true }, + "es5-shim": { + "version": "4.5.9", + "from": "es5-shim@>=4.5.9 <5.0.0", + "resolved": "https://registry.npmjs.org/es5-shim/-/es5-shim-4.5.9.tgz", + "dev": true + }, "es6-iterator": { "version": "2.0.0", "from": "es6-iterator@>=2.0.0 <3.0.0", @@ -1945,6 +2348,12 @@ "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.4.tgz", "dev": true }, + "es6-shim": { + "version": "0.35.2", + "from": "es6-shim@>=0.35.1 <0.36.0", + "resolved": "https://registry.npmjs.org/es6-shim/-/es6-shim-0.35.2.tgz", + "dev": true + }, "es6-symbol": { "version": "3.1.0", "from": "es6-symbol@>=3.1.0 <3.2.0", @@ -1974,14 +2383,12 @@ "from": "escodegen@>=1.6.1 <2.0.0", "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", "dev": true, - "optional": true, "dependencies": { "estraverse": { "version": "1.9.3", "from": "estraverse@>=1.9.1 <2.0.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", - "dev": true, - "optional": true + "dev": true }, "source-map": { "version": "0.2.0", @@ -2053,6 +2460,12 @@ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", "dev": true }, + "etag": { + "version": "1.7.0", + "from": "etag@>=1.7.0 <1.8.0", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz", + "dev": true + }, "event-emitter": { "version": "0.3.4", "from": "event-emitter@>=0.3.4 <0.4.0", @@ -2082,6 +2495,12 @@ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz", "dev": true }, + "exenv": { + "version": "1.2.0", + "from": "exenv@1.2.0", + "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.0.tgz", + "dev": true + }, "exit-hook": { "version": "1.1.1", "from": "exit-hook@>=1.0.0 <2.0.0", @@ -2138,6 +2557,44 @@ "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz", "dev": true }, + "express": { + "version": "4.14.0", + "from": "express@>=4.13.3 <5.0.0", + "resolved": "https://registry.npmjs.org/express/-/express-4.14.0.tgz", + "dev": true, + "dependencies": { + "accepts": { + "version": "1.3.3", + "from": "accepts@>=1.3.3 <1.4.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", + "dev": true + }, + "debug": { + "version": "2.2.0", + "from": "debug@>=2.2.0 <2.3.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "dev": true + }, + "ms": { + "version": "0.7.1", + "from": "ms@0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "dev": true + }, + "negotiator": { + "version": "0.6.1", + "from": "negotiator@0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "dev": true + }, + "qs": { + "version": "6.2.0", + "from": "qs@6.2.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.0.tgz", + "dev": true + } + } + }, "extend": { "version": "3.0.0", "from": "extend@>=3.0.0 <3.1.0", @@ -2194,17 +2651,21 @@ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.5.tgz", "dev": true }, + "fastparse": { + "version": "1.1.1", + "from": "fastparse@>=1.1.1 <2.0.0", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz", + "dev": true + }, "fbjs": { "version": "0.8.6", "from": "fbjs@>=0.8.4 <0.9.0", "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.6.tgz", - "dev": true, "dependencies": { "core-js": { "version": "1.2.7", "from": "core-js@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", - "dev": true + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz" } } }, @@ -2226,6 +2687,12 @@ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-1.3.1.tgz", "dev": true }, + "file-loader": { + "version": "0.9.0", + "from": "file-loader@>=0.9.0 <0.10.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-0.9.0.tgz", + "dev": true + }, "filename-regex": { "version": "2.0.0", "from": "filename-regex@>=2.0.0 <3.0.0", @@ -2258,6 +2725,12 @@ } } }, + "find-cache-dir": { + "version": "0.1.1", + "from": "find-cache-dir@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", + "dev": true + }, "find-index": { "version": "0.1.1", "from": "find-index@>=0.1.1 <0.2.0", @@ -2300,6 +2773,12 @@ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.1.tgz", "dev": true }, + "flatten": { + "version": "1.0.2", + "from": "flatten@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", + "dev": true + }, "flow-bin": { "version": "0.34.0", "from": "flow-bin@0.34.0", @@ -2348,8 +2827,7 @@ "version": "2.1.2", "from": "form-data@>=2.1.1 <2.2.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.2.tgz", - "dev": true, - "optional": true + "dev": true }, "formatio": { "version": "1.1.1", @@ -2357,6 +2835,18 @@ "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.1.1.tgz", "dev": true }, + "forwarded": { + "version": "0.1.0", + "from": "forwarded@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz", + "dev": true + }, + "fresh": { + "version": "0.3.0", + "from": "fresh@0.3.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz", + "dev": true + }, "fs-access": { "version": "1.0.1", "from": "fs-access@>=1.0.0 <2.0.0", @@ -3193,6 +3683,18 @@ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz", "dev": true }, + "fuse.js": { + "version": "2.6.1", + "from": "fuse.js@>=2.2.0 <3.0.0", + "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-2.6.1.tgz", + "dev": true + }, + "fuzzysearch": { + "version": "1.0.3", + "from": "fuzzysearch@>=1.0.3 <2.0.0", + "resolved": "https://registry.npmjs.org/fuzzysearch/-/fuzzysearch-1.0.3.tgz", + "dev": true + }, "gaze": { "version": "0.5.2", "from": "gaze@>=0.5.1 <0.6.0", @@ -3710,6 +4212,24 @@ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.1.5.tgz", "dev": true }, + "html-comment-regex": { + "version": "1.1.1", + "from": "html-comment-regex@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz", + "dev": true + }, + "html-encoding-sniffer": { + "version": "1.0.1", + "from": "html-encoding-sniffer@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.1.tgz", + "dev": true + }, + "html-entities": { + "version": "1.2.0", + "from": "html-entities@>=1.2.0 <2.0.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.0.tgz", + "dev": true + }, "htmlescape": { "version": "1.1.1", "from": "htmlescape@>=1.1.0 <2.0.0", @@ -3786,6 +4306,12 @@ "from": "iconv-lite@>=0.4.13 <0.5.0", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz" }, + "icss-replace-symbols": { + "version": "1.0.2", + "from": "icss-replace-symbols@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.0.2.tgz", + "dev": true + }, "ieee754": { "version": "1.1.8", "from": "ieee754@>=1.1.4 <2.0.0", @@ -3805,6 +4331,12 @@ "dev": true, "optional": true }, + "immutable": { + "version": "3.8.1", + "from": "immutable@>=3.8.1 <4.0.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.1.tgz", + "dev": true + }, "imurmurhash": { "version": "0.1.4", "from": "imurmurhash@>=0.1.4 <0.2.0", @@ -3817,6 +4349,12 @@ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", "dev": true }, + "indexes-of": { + "version": "1.0.1", + "from": "indexes-of@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "dev": true + }, "indexof": { "version": "0.0.1", "from": "indexof@0.0.1", @@ -3874,12 +4412,24 @@ "from": "invariant@>=2.2.0 <3.0.0", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz" }, + "ipaddr.js": { + "version": "1.1.1", + "from": "ipaddr.js@1.1.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.1.1.tgz", + "dev": true + }, "is-absolute": { "version": "0.2.6", "from": "is-absolute@>=0.2.3 <0.3.0", "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.2.6.tgz", "dev": true }, + "is-absolute-url": { + "version": "2.1.0", + "from": "is-absolute-url@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "dev": true + }, "is-arrayish": { "version": "0.2.1", "from": "is-arrayish@>=0.2.1 <0.3.0", @@ -3916,6 +4466,32 @@ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", "dev": true }, + "is-dom": { + "version": "1.0.7", + "from": "is-dom@>=1.0.5 <2.0.0", + "resolved": "https://registry.npmjs.org/is-dom/-/is-dom-1.0.7.tgz", + "dev": true, + "dependencies": { + "acorn": { + "version": "2.7.0", + "from": "acorn@>=2.4.0 <3.0.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz", + "dev": true + }, + "jsdom": { + "version": "9.9.1", + "from": "jsdom@>=9.9.1 <10.0.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-9.9.1.tgz", + "dev": true + }, + "webidl-conversions": { + "version": "3.0.1", + "from": "webidl-conversions@>=3.0.1 <4.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "dev": true + } + } + }, "is-dotfile": { "version": "1.0.2", "from": "is-dotfile@>=1.0.0 <2.0.0", @@ -3970,6 +4546,12 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", "dev": true }, + "is-obj": { + "version": "1.0.1", + "from": "is-obj@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "dev": true + }, "is-path-cwd": { "version": "1.0.0", "from": "is-path-cwd@>=1.0.0 <2.0.0", @@ -3988,6 +4570,12 @@ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", "dev": true }, + "is-plain-obj": { + "version": "1.1.0", + "from": "is-plain-obj@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "dev": true + }, "is-posix-bracket": { "version": "0.1.1", "from": "is-posix-bracket@>=0.1.0 <0.2.0", @@ -4000,6 +4588,12 @@ "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", "dev": true }, + "is-promise": { + "version": "2.1.0", + "from": "is-promise@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "dev": true + }, "is-property": { "version": "1.0.2", "from": "is-property@>=1.0.0 <2.0.0", @@ -4035,6 +4629,12 @@ "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", "dev": true }, + "is-svg": { + "version": "2.1.0", + "from": "is-svg@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", + "dev": true + }, "is-symbol": { "version": "1.0.1", "from": "is-symbol@>=1.0.1 <2.0.0", @@ -4105,6 +4705,12 @@ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "dev": true }, + "jju": { + "version": "1.3.0", + "from": "jju@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/jju/-/jju-1.3.0.tgz", + "dev": true + }, "jodid25519": { "version": "1.0.2", "from": "jodid25519@>=1.0.0 <2.0.0", @@ -4117,6 +4723,12 @@ "from": "joi@>=6.10.1 <7.0.0", "resolved": "https://registry.npmjs.org/joi/-/joi-6.10.1.tgz" }, + "js-base64": { + "version": "2.1.9", + "from": "js-base64@>=2.1.9 <3.0.0", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz", + "dev": true + }, "js-string-escape": { "version": "1.0.1", "from": "js-string-escape@>=1.0.0 <2.0.0", @@ -4162,6 +4774,18 @@ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", "dev": true }, + "json-loader": { + "version": "0.5.4", + "from": "json-loader@>=0.5.4 <0.6.0", + "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.4.tgz", + "dev": true + }, + "json-parse-helpfulerror": { + "version": "1.0.3", + "from": "json-parse-helpfulerror@>=1.0.3 <2.0.0", + "resolved": "https://registry.npmjs.org/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz", + "dev": true + }, "json-schema": { "version": "0.2.3", "from": "json-schema@0.2.3", @@ -4329,6 +4953,12 @@ "resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz", "dev": true }, + "keycode": { + "version": "2.1.8", + "from": "keycode@>=2.1.1 <3.0.0", + "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.1.8.tgz", + "dev": true + }, "kind-of": { "version": "3.0.4", "from": "kind-of@>=3.0.2 <4.0.0", @@ -4391,6 +5021,12 @@ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", "dev": true }, + "loader-utils": { + "version": "0.2.16", + "from": "loader-utils@>=0.2.11 <0.3.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.16.tgz", + "dev": true + }, "localstorage-memory": { "version": "1.0.2", "from": "localstorage-memory@>=1.0.2 <2.0.0", @@ -4402,6 +5038,12 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.2.tgz", "dev": true }, + "lodash-es": { + "version": "4.17.4", + "from": "lodash-es@>=4.2.1 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.4.tgz", + "dev": true + }, "lodash._baseassign": { "version": "3.2.0", "from": "lodash._baseassign@>=3.0.0 <4.0.0", @@ -4432,6 +5074,12 @@ "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", "dev": true }, + "lodash._createcompounder": { + "version": "3.0.0", + "from": "lodash._createcompounder@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash._createcompounder/-/lodash._createcompounder-3.0.0.tgz", + "dev": true + }, "lodash._escapehtmlchar": { "version": "2.4.1", "from": "lodash._escapehtmlchar@>=2.4.1 <2.5.0", @@ -4518,18 +5166,41 @@ "resolved": "https://registry.npmjs.org/lodash._shimkeys/-/lodash._shimkeys-2.4.1.tgz", "dev": true }, + "lodash.assign": { + "version": "4.2.0", + "from": "lodash.assign@>=4.2.0 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", + "dev": true + }, "lodash.assignwith": { "version": "4.2.0", "from": "lodash.assignwith@>=4.0.7 <5.0.0", "resolved": "https://registry.npmjs.org/lodash.assignwith/-/lodash.assignwith-4.2.0.tgz", "dev": true }, + "lodash.camelcase": { + "version": "3.0.1", + "from": "lodash.camelcase@>=3.0.1 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-3.0.1.tgz", + "dev": true + }, "lodash.create": { "version": "3.1.1", "from": "lodash.create@3.1.1", "resolved": "https://registry.npmjs.org/lodash.create/-/lodash.create-3.1.1.tgz", "dev": true }, + "lodash.debounce": { + "version": "4.0.8", + "from": "lodash.debounce@4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" + }, + "lodash.deburr": { + "version": "3.2.0", + "from": "lodash.deburr@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-3.2.0.tgz", + "dev": true + }, "lodash.defaults": { "version": "2.4.1", "from": "lodash.defaults@>=2.4.1 <2.5.0", @@ -4550,6 +5221,12 @@ "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", "dev": true }, + "lodash.indexof": { + "version": "4.0.5", + "from": "lodash.indexof@>=4.0.5 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash.indexof/-/lodash.indexof-4.0.5.tgz", + "dev": true + }, "lodash.isarguments": { "version": "3.1.0", "from": "lodash.isarguments@>=3.0.0 <4.0.0", @@ -4627,6 +5304,12 @@ "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", "dev": true }, + "lodash.sortby": { + "version": "4.7.0", + "from": "lodash.sortby@>=4.7.0 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "dev": true + }, "lodash.template": { "version": "3.6.2", "from": "lodash.template@>=3.0.0 <4.0.0", @@ -4639,6 +5322,12 @@ "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", "dev": true }, + "lodash.uniq": { + "version": "4.5.0", + "from": "lodash.uniq@>=4.3.0 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "dev": true + }, "lodash.values": { "version": "2.4.1", "from": "lodash.values@>=2.4.1 <2.5.0", @@ -4653,6 +5342,12 @@ } } }, + "lodash.words": { + "version": "3.2.0", + "from": "lodash.words@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lodash.words/-/lodash.words-3.2.0.tgz", + "dev": true + }, "log4js": { "version": "0.6.38", "from": "log4js@>=0.6.31 <0.7.0", @@ -4696,12 +5391,38 @@ "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", "dev": true }, + "lowdb": { + "version": "0.13.1", + "from": "lowdb@>=0.13.1 <0.14.0", + "resolved": "https://registry.npmjs.org/lowdb/-/lowdb-0.13.1.tgz", + "dev": true + }, "lru-cache": { "version": "2.7.3", "from": "lru-cache@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", "dev": true }, + "macaddress": { + "version": "0.2.8", + "from": "macaddress@>=0.2.8 <0.3.0", + "resolved": "https://registry.npmjs.org/macaddress/-/macaddress-0.2.8.tgz", + "dev": true + }, + "mantra-core": { + "version": "1.7.0", + "from": "mantra-core@>=1.7.0 <2.0.0", + "resolved": "https://registry.npmjs.org/mantra-core/-/mantra-core-1.7.0.tgz", + "dev": true, + "dependencies": { + "react-komposer": { + "version": "1.13.1", + "from": "react-komposer@>=1.9.0 <2.0.0", + "resolved": "https://registry.npmjs.org/react-komposer/-/react-komposer-1.13.1.tgz", + "dev": true + } + } + }, "map-cache": { "version": "0.2.2", "from": "map-cache@>=0.2.0 <0.3.0", @@ -4714,12 +5435,24 @@ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", "dev": true }, + "math-expression-evaluator": { + "version": "1.2.14", + "from": "math-expression-evaluator@>=1.2.14 <2.0.0", + "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.14.tgz", + "dev": true + }, "media-typer": { "version": "0.3.0", "from": "media-typer@0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "dev": true }, + "memory-fs": { + "version": "0.3.0", + "from": "memory-fs@>=0.3.0 <0.4.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.3.0.tgz", + "dev": true + }, "meow": { "version": "3.7.0", "from": "meow@>=3.3.0 <4.0.0", @@ -4734,6 +5467,18 @@ } } }, + "merge-descriptors": { + "version": "1.0.1", + "from": "merge-descriptors@1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "dev": true + }, + "methods": { + "version": "1.1.2", + "from": "methods@>=1.1.2 <1.2.0", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "dev": true + }, "micromatch": { "version": "2.3.11", "from": "micromatch@>=2.3.7 <3.0.0", @@ -4851,6 +5596,11 @@ "from": "moment@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/moment/-/moment-2.16.0.tgz" }, + "moment-duration-format": { + "version": "1.3.0", + "from": "moment-duration-format@1.3.0", + "resolved": "https://registry.npmjs.org/moment-duration-format/-/moment-duration-format-1.3.0.tgz" + }, "ms": { "version": "0.7.2", "from": "ms@0.7.2", @@ -4918,6 +5668,50 @@ "from": "node-fetch@>=1.0.1 <2.0.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.6.3.tgz" }, + "node-libs-browser": { + "version": "0.7.0", + "from": "node-libs-browser@>=0.7.0 <0.8.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.7.0.tgz", + "dev": true, + "dependencies": { + "browserify-aes": { + "version": "0.4.0", + "from": "browserify-aes@0.4.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-0.4.0.tgz", + "dev": true + }, + "crypto-browserify": { + "version": "3.3.0", + "from": "crypto-browserify@3.3.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.3.0.tgz", + "dev": true + }, + "os-browserify": { + "version": "0.2.1", + "from": "os-browserify@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.2.1.tgz", + "dev": true + }, + "ripemd160": { + "version": "0.2.0", + "from": "ripemd160@0.2.0", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz", + "dev": true + }, + "sha.js": { + "version": "2.2.6", + "from": "sha.js@2.2.6", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz", + "dev": true + }, + "timers-browserify": { + "version": "2.0.2", + "from": "timers-browserify@>=2.0.2 <3.0.0", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.2.tgz", + "dev": true + } + } + }, "normalize-package-data": { "version": "2.3.5", "from": "normalize-package-data@>=2.3.4 <3.0.0", @@ -4930,6 +5724,18 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.0.1.tgz", "dev": true }, + "normalize-range": { + "version": "0.1.2", + "from": "normalize-range@>=0.1.2 <0.2.0", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "dev": true + }, + "normalize-url": { + "version": "1.9.0", + "from": "normalize-url@>=1.4.0 <2.0.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.0.tgz", + "dev": true + }, "nth-check": { "version": "1.0.1", "from": "nth-check@>=1.0.1 <1.1.0", @@ -4942,6 +5748,12 @@ "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz", "dev": true }, + "num2fraction": { + "version": "1.2.2", + "from": "num2fraction@>=1.2.2 <2.0.0", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "dev": true + }, "number-is-nan": { "version": "1.0.1", "from": "number-is-nan@>=1.0.0 <2.0.0", @@ -4952,8 +5764,7 @@ "version": "1.3.9", "from": "nwmatcher@>=1.3.7 <2.0.0", "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.3.9.tgz", - "dev": true, - "optional": true + "dev": true }, "oauth-sign": { "version": "0.8.2", @@ -4990,6 +5801,18 @@ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.0.4.tgz", "dev": true }, + "object.entries": { + "version": "1.0.4", + "from": "object.entries@>=1.0.3 <2.0.0", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.0.4.tgz", + "dev": true + }, + "object.getownpropertydescriptors": { + "version": "2.0.3", + "from": "object.getownpropertydescriptors@>=2.0.3 <3.0.0", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", + "dev": true + }, "object.omit": { "version": "2.0.1", "from": "object.omit@>=2.0.0 <3.0.0", @@ -5152,8 +5975,7 @@ "version": "1.5.1", "from": "parse5@>=1.5.1 <2.0.0", "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz", - "dev": true, - "optional": true + "dev": true }, "parsejson": { "version": "0.0.1", @@ -5220,6 +6042,12 @@ "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", "dev": true }, + "path-to-regexp": { + "version": "0.1.7", + "from": "path-to-regexp@0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "dev": true + }, "path-type": { "version": "1.1.0", "from": "path-type@>=1.0.0 <2.0.0", @@ -5232,6 +6060,12 @@ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.9.tgz", "dev": true }, + "pbkdf2-compat": { + "version": "2.0.1", + "from": "pbkdf2-compat@2.0.1", + "resolved": "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz", + "dev": true + }, "pem-jwk": { "version": "1.5.1", "from": "pem-jwk@1.5.1", @@ -5305,18 +6139,248 @@ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "dev": true }, + "pkg-dir": { + "version": "1.0.0", + "from": "pkg-dir@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "dev": true + }, "pluralize": { "version": "1.2.1", "from": "pluralize@>=1.2.1 <2.0.0", "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz", "dev": true }, + "podda": { + "version": "1.2.2", + "from": "podda@>=1.2.1 <2.0.0", + "resolved": "https://registry.npmjs.org/podda/-/podda-1.2.2.tgz", + "dev": true + }, + "postcss": { + "version": "5.2.10", + "from": "postcss@>=5.2.8 <6.0.0", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.10.tgz", + "dev": true, + "dependencies": { + "supports-color": { + "version": "3.1.2", + "from": "supports-color@>=3.1.2 <4.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz", + "dev": true + } + } + }, + "postcss-calc": { + "version": "5.3.1", + "from": "postcss-calc@>=5.2.0 <6.0.0", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", + "dev": true + }, + "postcss-colormin": { + "version": "2.2.1", + "from": "postcss-colormin@>=2.1.8 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.1.tgz", + "dev": true + }, + "postcss-convert-values": { + "version": "2.6.0", + "from": "postcss-convert-values@>=2.3.4 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.0.tgz", + "dev": true + }, + "postcss-discard-comments": { + "version": "2.0.4", + "from": "postcss-discard-comments@>=2.0.4 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz", + "dev": true + }, + "postcss-discard-duplicates": { + "version": "2.0.2", + "from": "postcss-discard-duplicates@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.0.2.tgz", + "dev": true + }, + "postcss-discard-empty": { + "version": "2.1.0", + "from": "postcss-discard-empty@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz", + "dev": true + }, + "postcss-discard-overridden": { + "version": "0.1.1", + "from": "postcss-discard-overridden@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz", + "dev": true + }, + "postcss-discard-unused": { + "version": "2.2.3", + "from": "postcss-discard-unused@>=2.2.1 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz", + "dev": true + }, + "postcss-filter-plugins": { + "version": "2.0.2", + "from": "postcss-filter-plugins@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz", + "dev": true + }, + "postcss-loader": { + "version": "0.13.0", + "from": "postcss-loader@0.13.0", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-0.13.0.tgz", + "dev": true + }, + "postcss-merge-idents": { + "version": "2.1.7", + "from": "postcss-merge-idents@>=2.1.5 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", + "dev": true + }, + "postcss-merge-longhand": { + "version": "2.0.1", + "from": "postcss-merge-longhand@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.1.tgz", + "dev": true + }, + "postcss-merge-rules": { + "version": "2.1.1", + "from": "postcss-merge-rules@>=2.0.3 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.1.tgz", + "dev": true + }, + "postcss-message-helpers": { + "version": "2.0.0", + "from": "postcss-message-helpers@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz", + "dev": true + }, + "postcss-minify-font-values": { + "version": "1.0.5", + "from": "postcss-minify-font-values@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz", + "dev": true + }, + "postcss-minify-gradients": { + "version": "1.0.5", + "from": "postcss-minify-gradients@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz", + "dev": true + }, + "postcss-minify-params": { + "version": "1.2.2", + "from": "postcss-minify-params@>=1.0.4 <2.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz", + "dev": true + }, + "postcss-minify-selectors": { + "version": "2.1.1", + "from": "postcss-minify-selectors@>=2.0.4 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz", + "dev": true + }, + "postcss-modules-extract-imports": { + "version": "1.0.1", + "from": "postcss-modules-extract-imports@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.0.1.tgz", + "dev": true + }, + "postcss-modules-local-by-default": { + "version": "1.1.1", + "from": "postcss-modules-local-by-default@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.1.1.tgz", + "dev": true + }, + "postcss-modules-scope": { + "version": "1.0.2", + "from": "postcss-modules-scope@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.0.2.tgz", + "dev": true + }, + "postcss-modules-values": { + "version": "1.2.2", + "from": "postcss-modules-values@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.2.2.tgz", + "dev": true + }, + "postcss-normalize-charset": { + "version": "1.1.1", + "from": "postcss-normalize-charset@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", + "dev": true + }, + "postcss-normalize-url": { + "version": "3.0.8", + "from": "postcss-normalize-url@>=3.0.7 <4.0.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz", + "dev": true + }, + "postcss-ordered-values": { + "version": "2.2.3", + "from": "postcss-ordered-values@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz", + "dev": true + }, + "postcss-reduce-idents": { + "version": "2.4.0", + "from": "postcss-reduce-idents@>=2.2.2 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz", + "dev": true + }, + "postcss-reduce-initial": { + "version": "1.0.1", + "from": "postcss-reduce-initial@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz", + "dev": true + }, + "postcss-reduce-transforms": { + "version": "1.0.4", + "from": "postcss-reduce-transforms@>=1.0.3 <2.0.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz", + "dev": true + }, + "postcss-selector-parser": { + "version": "2.2.2", + "from": "postcss-selector-parser@>=2.2.2 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.2.tgz", + "dev": true + }, + "postcss-svgo": { + "version": "2.1.6", + "from": "postcss-svgo@>=2.1.1 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz", + "dev": true + }, + "postcss-unique-selectors": { + "version": "2.0.2", + "from": "postcss-unique-selectors@>=2.0.2 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", + "dev": true + }, + "postcss-value-parser": { + "version": "3.3.0", + "from": "postcss-value-parser@>=3.2.3 <4.0.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", + "dev": true + }, + "postcss-zindex": { + "version": "2.2.0", + "from": "postcss-zindex@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz", + "dev": true + }, "prelude-ls": { "version": "1.1.2", "from": "prelude-ls@>=1.1.2 <1.2.0", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", "dev": true }, + "prepend-http": { + "version": "1.0.4", + "from": "prepend-http@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "dev": true + }, "preserve": { "version": "0.2.0", "from": "preserve@>=0.2.0 <0.3.0", @@ -5355,15 +6419,19 @@ "promise": { "version": "7.1.1", "from": "promise@>=7.1.1 <8.0.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.1.1.tgz", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.1.1.tgz" + }, + "proxy-addr": { + "version": "1.1.2", + "from": "proxy-addr@>=1.1.2 <1.2.0", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.2.tgz", "dev": true }, "prr": { "version": "0.0.0", "from": "prr@>=0.0.0 <0.1.0", "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", - "dev": true, - "optional": true + "dev": true }, "public-encrypt": { "version": "4.0.0", @@ -5400,8 +6468,7 @@ "version": "6.3.0", "from": "qs@>=6.3.0 <6.4.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.0.tgz", - "dev": true, - "optional": true + "dev": true }, "query-string": { "version": "4.2.3", @@ -5452,8 +6519,12 @@ "react": { "version": "15.3.2", "from": "react@15.3.2", - "resolved": "https://registry.npmjs.org/react/-/react-15.3.2.tgz", - "dev": true + "resolved": "https://registry.npmjs.org/react/-/react-15.3.2.tgz" + }, + "react-addons-css-transition-group": { + "version": "15.3.2", + "from": "react-addons-css-transition-group@15.3.2", + "resolved": "https://registry.npmjs.org/react-addons-css-transition-group/-/react-addons-css-transition-group-15.3.2.tgz" }, "react-addons-test-utils": { "version": "15.3.2", @@ -5464,7 +6535,30 @@ "react-dom": { "version": "15.3.2", "from": "react-dom@15.3.2", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-15.3.2.tgz", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-15.3.2.tgz" + }, + "react-fuzzy": { + "version": "0.3.3", + "from": "react-fuzzy@>=0.3.3 <0.4.0", + "resolved": "https://registry.npmjs.org/react-fuzzy/-/react-fuzzy-0.3.3.tgz", + "dev": true + }, + "react-inspector": { + "version": "1.1.2", + "from": "react-inspector@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/react-inspector/-/react-inspector-1.1.2.tgz", + "dev": true + }, + "react-komposer": { + "version": "2.0.0", + "from": "react-komposer@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/react-komposer/-/react-komposer-2.0.0.tgz", + "dev": true + }, + "react-modal": { + "version": "1.6.5", + "from": "react-modal@>=1.2.0 <2.0.0", + "resolved": "https://registry.npmjs.org/react-modal/-/react-modal-1.6.5.tgz", "dev": true }, "react-router": { @@ -5472,6 +6566,18 @@ "from": "react-router@3.0.0", "resolved": "https://registry.npmjs.org/react-router/-/react-router-3.0.0.tgz" }, + "react-simple-di": { + "version": "1.2.0", + "from": "react-simple-di@>=1.2.0 <2.0.0", + "resolved": "https://registry.npmjs.org/react-simple-di/-/react-simple-di-1.2.0.tgz", + "dev": true + }, + "react-stubber": { + "version": "1.0.0", + "from": "react-stubber@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/react-stubber/-/react-stubber-1.0.0.tgz", + "dev": true + }, "read-only-stream": { "version": "2.0.0", "from": "read-only-stream@>=2.0.0 <3.0.0", @@ -5526,12 +6632,36 @@ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", "dev": true }, + "redbox-react": { + "version": "1.3.3", + "from": "redbox-react@>=1.2.2 <2.0.0", + "resolved": "https://registry.npmjs.org/redbox-react/-/redbox-react-1.3.3.tgz", + "dev": true + }, "redent": { "version": "1.0.0", "from": "redent@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", "dev": true }, + "reduce-css-calc": { + "version": "1.3.0", + "from": "reduce-css-calc@>=1.2.6 <2.0.0", + "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", + "dev": true + }, + "reduce-function-call": { + "version": "1.0.2", + "from": "reduce-function-call@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz", + "dev": true + }, + "redux": { + "version": "3.6.0", + "from": "redux@>=3.5.2 <4.0.0", + "resolved": "https://registry.npmjs.org/redux/-/redux-3.6.0.tgz", + "dev": true + }, "regenerate": { "version": "1.3.2", "from": "regenerate@>=1.2.1 <2.0.0", @@ -5596,8 +6726,7 @@ "version": "2.79.0", "from": "request@>=2.55.0 <3.0.0", "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", - "dev": true, - "optional": true + "dev": true }, "request-progress": { "version": "2.0.1", @@ -5691,8 +6820,7 @@ "version": "1.2.1", "from": "sax@>=1.1.4 <2.0.0", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", - "dev": true, - "optional": true + "dev": true }, "semver": { "version": "4.3.6", @@ -5700,18 +6828,56 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", "dev": true }, + "send": { + "version": "0.14.1", + "from": "send@0.14.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.14.1.tgz", + "dev": true, + "dependencies": { + "debug": { + "version": "2.2.0", + "from": "debug@~2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "dev": true + }, + "ms": { + "version": "0.7.1", + "from": "ms@0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "dev": true + } + } + }, "sequencify": { "version": "0.0.7", "from": "sequencify@>=0.0.7 <0.1.0", "resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz", "dev": true }, + "serve-favicon": { + "version": "2.3.2", + "from": "serve-favicon@>=2.3.0 <3.0.0", + "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.3.2.tgz", + "dev": true + }, + "serve-static": { + "version": "1.11.1", + "from": "serve-static@>=1.11.1 <1.12.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.11.1.tgz", + "dev": true + }, "set-immediate-shim": { "version": "1.0.1", "from": "set-immediate-shim@>=1.0.1 <2.0.0", "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", "dev": true }, + "setimmediate": { + "version": "1.0.5", + "from": "setimmediate@>=1.0.4 <2.0.0", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "dev": true + }, "setprototypeof": { "version": "1.0.2", "from": "setprototypeof@1.0.2", @@ -5724,6 +6890,12 @@ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz", "dev": true }, + "shallowequal": { + "version": "0.2.2", + "from": "shallowequal@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-0.2.2.tgz", + "dev": true + }, "shasum": { "version": "1.0.2", "from": "shasum@>=1.0.0 <2.0.0", @@ -5780,6 +6952,12 @@ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", "dev": true }, + "slide": { + "version": "1.1.6", + "from": "slide@>=1.1.5 <2.0.0", + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "dev": true + }, "sntp": { "version": "1.0.9", "from": "sntp@>=1.0.0 <2.0.0", @@ -5904,6 +7082,18 @@ } } }, + "sort-keys": { + "version": "1.1.2", + "from": "sort-keys@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "dev": true + }, + "source-list-map": { + "version": "0.1.8", + "from": "source-list-map@>=0.1.4 <0.2.0", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz", + "dev": true + }, "source-map": { "version": "0.5.6", "from": "source-map@>=0.5.0 <0.6.0", @@ -5958,12 +7148,30 @@ } } }, + "stack-source-map": { + "version": "1.0.6", + "from": "stack-source-map@>=1.0.5 <2.0.0", + "resolved": "https://registry.npmjs.org/stack-source-map/-/stack-source-map-1.0.6.tgz", + "dev": true + }, + "stackframe": { + "version": "0.3.1", + "from": "stackframe@>=0.3.1 <0.4.0", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-0.3.1.tgz", + "dev": true + }, "statuses": { "version": "1.3.1", "from": "statuses@>=1.3.1 <2.0.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", "dev": true }, + "steno": { + "version": "0.4.4", + "from": "steno@>=0.4.1 <0.5.0", + "resolved": "https://registry.npmjs.org/steno/-/steno-0.4.4.tgz", + "dev": true + }, "stream-browserify": { "version": "2.0.1", "from": "stream-browserify@>=2.0.0 <3.0.0", @@ -6019,6 +7227,18 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "dev": true }, + "string.prototype.padend": { + "version": "3.0.0", + "from": "string.prototype.padend@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz", + "dev": true + }, + "string.prototype.padstart": { + "version": "3.0.0", + "from": "string.prototype.padstart@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.padstart/-/string.prototype.padstart-3.0.0.tgz", + "dev": true + }, "stringstream": { "version": "0.0.5", "from": "stringstream@>=0.0.4 <0.1.0", @@ -6049,6 +7269,12 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", "dev": true }, + "style-loader": { + "version": "0.13.1", + "from": "style-loader@0.13.1", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.13.1.tgz", + "dev": true + }, "subarg": { "version": "1.0.0", "from": "subarg@>=1.0.0 <2.0.0", @@ -6069,12 +7295,31 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "dev": true }, + "svgo": { + "version": "0.7.1", + "from": "svgo@>=0.7.0 <0.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.1.tgz", + "dev": true, + "dependencies": { + "js-yaml": { + "version": "3.6.1", + "from": "js-yaml@>=3.6.1 <3.7.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.6.1.tgz", + "dev": true + } + } + }, + "symbol-observable": { + "version": "1.0.4", + "from": "symbol-observable@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.4.tgz", + "dev": true + }, "symbol-tree": { "version": "3.1.4", "from": "symbol-tree@>=3.1.0 <4.0.0", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.1.4.tgz", - "dev": true, - "optional": true + "dev": true }, "syntax-error": { "version": "1.1.6", @@ -6110,6 +7355,12 @@ } } }, + "tapable": { + "version": "0.1.10", + "from": "tapable@>=0.1.8 <0.2.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz", + "dev": true + }, "text-table": { "version": "0.2.0", "from": "text-table@>=0.2.0 <0.3.0", @@ -6198,8 +7449,7 @@ "version": "0.0.3", "from": "tr46@>=0.0.1 <0.1.0", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "dev": true, - "optional": true + "dev": true }, "trim-newlines": { "version": "1.0.0", @@ -6259,8 +7509,7 @@ "ua-parser-js": { "version": "0.7.12", "from": "ua-parser-js@>=0.7.9 <0.8.0", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.12.tgz", - "dev": true + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.12.tgz" }, "uglify-js": { "version": "2.7.4", @@ -6292,6 +7541,24 @@ "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", "dev": true }, + "uniq": { + "version": "1.0.1", + "from": "uniq@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "dev": true + }, + "uniqid": { + "version": "4.1.1", + "from": "uniqid@>=4.0.0 <5.0.0", + "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz", + "dev": true + }, + "uniqs": { + "version": "2.0.0", + "from": "uniqs@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "dev": true + }, "unique-stream": { "version": "1.0.0", "from": "unique-stream@>=1.0.0 <2.0.0", @@ -6318,6 +7585,20 @@ } } }, + "url-loader": { + "version": "0.5.7", + "from": "url-loader@>=0.5.7 <0.6.0", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-0.5.7.tgz", + "dev": true, + "dependencies": { + "mime": { + "version": "1.2.11", + "from": "mime@>=1.2.0 <1.3.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz", + "dev": true + } + } + }, "url-parse": { "version": "1.0.5", "from": "url-parse@>=1.0.0 <1.1.0", @@ -6379,8 +7660,7 @@ "version": "3.0.0", "from": "uuid@>=3.0.0 <4.0.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.0.tgz", - "dev": true, - "optional": true + "dev": true }, "v8flags": { "version": "2.0.11", @@ -6402,6 +7682,18 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", "dev": true }, + "vary": { + "version": "1.1.0", + "from": "vary@>=1.1.0 <1.2.0", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.0.tgz", + "dev": true + }, + "vendors": { + "version": "1.0.1", + "from": "vendors@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.1.tgz", + "dev": true + }, "verror": { "version": "1.3.6", "from": "verror@1.3.6", @@ -6493,6 +7785,20 @@ "resolved": "https://registry.npmjs.org/watchify/-/watchify-3.7.0.tgz", "dev": true }, + "watchpack": { + "version": "0.2.9", + "from": "watchpack@>=0.2.1 <0.3.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-0.2.9.tgz", + "dev": true, + "dependencies": { + "async": { + "version": "0.9.2", + "from": "async@>=0.9.0 <0.10.0", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "dev": true + } + } + }, "webidl-conversions": { "version": "2.0.1", "from": "webidl-conversions@>=2.0.0 <3.0.0", @@ -6500,11 +7806,97 @@ "dev": true, "optional": true }, + "webpack": { + "version": "1.14.0", + "from": "webpack@>=1.13.1 <2.0.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-1.14.0.tgz", + "dev": true, + "dependencies": { + "acorn": { + "version": "3.3.0", + "from": "acorn@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "dev": true + }, + "async": { + "version": "1.5.2", + "from": "async@>=1.3.0 <2.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "dev": true + }, + "interpret": { + "version": "0.6.6", + "from": "interpret@>=0.6.4 <0.7.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-0.6.6.tgz", + "dev": true + }, + "supports-color": { + "version": "3.1.2", + "from": "supports-color@^3.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz", + "dev": true + } + } + }, + "webpack-core": { + "version": "0.6.9", + "from": "webpack-core@>=0.6.9 <0.7.0", + "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.9.tgz", + "dev": true, + "dependencies": { + "source-map": { + "version": "0.4.4", + "from": "source-map@>=0.4.1 <0.5.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "dev": true + } + } + }, + "webpack-dev-middleware": { + "version": "1.9.0", + "from": "webpack-dev-middleware@>=1.6.0 <2.0.0", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.9.0.tgz", + "dev": true, + "dependencies": { + "memory-fs": { + "version": "0.4.1", + "from": "memory-fs@>=0.4.1 <0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "dev": true + } + } + }, + "webpack-hot-middleware": { + "version": "2.15.0", + "from": "webpack-hot-middleware@>=2.10.0 <3.0.0", + "resolved": "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.15.0.tgz", + "dev": true + }, + "whatwg-encoding": { + "version": "1.0.1", + "from": "whatwg-encoding@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.1.tgz", + "dev": true + }, "whatwg-fetch": { "version": "2.0.1", "from": "whatwg-fetch@>=0.10.0", "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.1.tgz" }, + "whatwg-url": { + "version": "4.3.0", + "from": "whatwg-url@>=4.1.0 <5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-4.3.0.tgz", + "dev": true, + "dependencies": { + "webidl-conversions": { + "version": "3.0.1", + "from": "webidl-conversions@^3.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "dev": true + } + } + }, "whatwg-url-compat": { "version": "0.6.5", "from": "whatwg-url-compat@>=0.6.5 <0.7.0", @@ -6518,6 +7910,12 @@ "resolved": "https://registry.npmjs.org/when/-/when-3.7.7.tgz", "dev": true }, + "whet.extend": { + "version": "0.9.9", + "from": "whet.extend@>=0.9.9 <0.10.0", + "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", + "dev": true + }, "which": { "version": "1.2.12", "from": "which@>=1.2.10 <2.0.0", @@ -6547,18 +7945,37 @@ "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", "dev": true }, + "write-file-atomic": { + "version": "1.3.1", + "from": "write-file-atomic@>=1.1.2 <2.0.0", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.1.tgz", + "dev": true, + "dependencies": { + "graceful-fs": { + "version": "4.1.11", + "from": "graceful-fs@>=4.1.11 <5.0.0", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "dev": true + } + } + }, "ws": { "version": "1.0.1", "from": "ws@1.0.1", "resolved": "https://registry.npmjs.org/ws/-/ws-1.0.1.tgz", "dev": true }, + "xdg-basedir": { + "version": "2.0.0", + "from": "xdg-basedir@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-2.0.0.tgz", + "dev": true + }, "xml-name-validator": { "version": "2.0.1", "from": "xml-name-validator@>=2.0.1 <3.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz", - "dev": true, - "optional": true + "dev": true }, "xmlbuilder": { "version": "8.2.2", diff --git a/blueocean-core-js/package.json b/blueocean-core-js/package.json index 720c1cf8512..49f0acd8b7b 100644 --- a/blueocean-core-js/package.json +++ b/blueocean-core-js/package.json @@ -4,6 +4,9 @@ "description": "Shared JavaScript libraries for use with Jenkins Blue Ocean", "main": "dist/js/index.js", "scripts": { + "start-storybook": "start-storybook --static-dir ./dist/assets/,./node_modules/@jenkins-cd/design-language/dist/assets/", + "storybook": "npm run start-storybook -- -p 9001", + "storybook:port": "npm run start-storybook -- -p ", "gulp": "gulp", "test": "gulp test", "prepublish": "gulp" @@ -24,6 +27,7 @@ "url": "https://github.com/jenkinsci/blueocean-plugin.git" }, "dependencies": { + "@jenkins-cd/design-language": "0.0.97", "@jenkins-cd/js-extensions": "0.0.32", "@jenkins-cd/js-modules": "0.0.8", "@jenkins-cd/react-material-icons": "1.0.0", @@ -46,6 +50,7 @@ }, "devDependencies": { "@jenkins-cd/eslint-config-jenkins": "0.0.2", + "@kadira/storybook": "2.20.1", "babel-eslint": "7.0.0", "babel-plugin-transform-decorators-legacy": "1.3.4", "babel-polyfill": "6.16.0", diff --git a/blueocean-dashboard/src/main/js/components/BlueLogo.jsx b/blueocean-core-js/src/js/components/BlueLogo.jsx similarity index 100% rename from blueocean-dashboard/src/main/js/components/BlueLogo.jsx rename to blueocean-core-js/src/js/components/BlueLogo.jsx diff --git a/blueocean-dashboard/src/main/js/components/ContentPageHeader.jsx b/blueocean-core-js/src/js/components/ContentPageHeader.jsx similarity index 97% rename from blueocean-dashboard/src/main/js/components/ContentPageHeader.jsx rename to blueocean-core-js/src/js/components/ContentPageHeader.jsx index fafb8055765..4528fd30e8f 100644 --- a/blueocean-dashboard/src/main/js/components/ContentPageHeader.jsx +++ b/blueocean-core-js/src/js/components/ContentPageHeader.jsx @@ -46,3 +46,5 @@ ContentPageHeader.propTypes = { pageTabLinks: PropTypes.node, children: PropTypes.node, }; + +export default ContentPageHeader; diff --git a/blueocean-dashboard/src/main/js/components/ResultPageHeader.jsx b/blueocean-core-js/src/js/components/ResultPageHeader.jsx similarity index 100% rename from blueocean-dashboard/src/main/js/components/ResultPageHeader.jsx rename to blueocean-core-js/src/js/components/ResultPageHeader.jsx diff --git a/blueocean-core-js/src/js/components/RunButton.jsx b/blueocean-core-js/src/js/components/RunButton.jsx index 99f35de0399..b0e77dc6606 100644 --- a/blueocean-core-js/src/js/components/RunButton.jsx +++ b/blueocean-core-js/src/js/components/RunButton.jsx @@ -81,6 +81,7 @@ export class RunButton extends Component { } render() { + const buttonType = this.props.buttonType; const outerClass = this.props.className ? this.props.className : ''; const outerClassNames = outerClass.split(' '); const innerButtonClass = outerClassNames.indexOf('icon-button') === -1 ? this.props.innerButtonClasses : ''; @@ -90,8 +91,8 @@ export class RunButton extends Component { const isPaused = status.toLowerCase() === 'paused'; const runningStatus = status && (isPaused || status.toLowerCase() === 'running' || status.toLowerCase() === 'queued'); - let showRunButton = this.props.buttonType === 'run-only' || (this.props.buttonType === 'toggle' && !runningStatus); - let showStopButton = runningStatus && (this.props.buttonType === 'toggle' || this.props.buttonType === 'stop-only'); + let showRunButton = buttonType === 'run-only' || (buttonType === 'toggle' && !runningStatus); + let showStopButton = runningStatus && (buttonType === 'toggle' || buttonType === 'stop-only'); showRunButton = showRunButton && permit(this.props.runnable).start(); showStopButton = showStopButton && permit(this.props.runnable).stop(); @@ -141,7 +142,7 @@ export class RunButton extends Component { } RunButton.propTypes = { - buttonType: PropTypes.oneOf('toggle', 'stop-only', 'run-only'), + buttonType: PropTypes.oneOf(['toggle', 'stop-only', 'run-only']), className: PropTypes.string, runnable: PropTypes.object, latestRun: PropTypes.object, diff --git a/blueocean-dashboard/src/main/js/components/stories/headers.js b/blueocean-core-js/src/js/components/stories/ContentPageHeaderStories.js similarity index 100% rename from blueocean-dashboard/src/main/js/components/stories/headers.js rename to blueocean-core-js/src/js/components/stories/ContentPageHeaderStories.js diff --git a/blueocean-core-js/src/js/components/stories/index.js b/blueocean-core-js/src/js/components/stories/index.js new file mode 100644 index 00000000000..018b130fe64 --- /dev/null +++ b/blueocean-core-js/src/js/components/stories/index.js @@ -0,0 +1,9 @@ +const ext = require('@jenkins-cd/js-extensions'); +ext.store.init({ + extensionData: [], + typeInfoProvider: (type, cb) => { + cb(null); + }, +}); + +require('./ContentPageHeaderStories'); // TODO: Split this into two diff --git a/blueocean-core-js/src/js/i18n/i18n.js b/blueocean-core-js/src/js/i18n/i18n.js index 31263d86a66..fac737f2917 100644 --- a/blueocean-core-js/src/js/i18n/i18n.js +++ b/blueocean-core-js/src/js/i18n/i18n.js @@ -128,31 +128,35 @@ export default function i18nTranslator(pluginName, namespace) { return translator; } - if (useMockFallback) { - return function mockTranslate(key) { - return key; - }; - } - - const I18n = pluginI18next(pluginName, namespace); - - // Create and cache the translator instance. - let detectedLang; - try { - detectedLang = defaultLngDetector.detect(); - } catch (e) { - detectedLang = FALLBACK_LANG; - } - translator = I18n.getFixedT(detectedLang, namespace); - translatorCache[translatorCacheKey] = translator; - - return translator; + // Lazily construct what we need instead of on creation + return function translate(key, params) { + if (useMockFallback) { + return (params && params.defaultValue) || key; + } + + if (!translator) { + const I18n = pluginI18next(pluginName, namespace); + + // Create and cache the translator instance. + let detectedLang; + try { + detectedLang = defaultLngDetector.detect(); + } catch (e) { + detectedLang = FALLBACK_LANG; + } + translator = I18n.getFixedT(detectedLang, namespace); + translatorCache[translatorCacheKey] = translator; + } + + return translator(key, params); + }; } -export function enableMocks() { +export function enableMocksForI18n() { useMockFallback = true; } -export function disableMocks() { +export function disableMocksForI18n() { useMockFallback = false; } + diff --git a/blueocean-core-js/src/js/index.js b/blueocean-core-js/src/js/index.js index 7e2fe9b4348..2d1a25afdaf 100644 --- a/blueocean-core-js/src/js/index.js +++ b/blueocean-core-js/src/js/index.js @@ -34,6 +34,12 @@ export NotFound from './NotFound'; export { ReplayButton } from './components/ReplayButton'; export { RunButton } from './components/RunButton'; +export { + BlueLogo, + BlueOceanIcon, +} from './components/BlueLogo'; +export { ContentPageHeader } from './components/ContentPageHeader'; +export { ResultPageHeader } from './components/ResultPageHeader'; // Create and export the SSE connection that will be shared by other // Blue Ocean components via this package. @@ -63,3 +69,12 @@ export const locationService = new LocationService(); const defaultSSEhandler = new DefaultSSEHandler(pipelineService, activityService, pagerService); sseService.registerHandler(defaultSSEhandler.handleEvents); + +// Export some debugging stuff client code may need + +import { enableMocksForI18n, disableMocksForI18n } from './i18n/i18n'; + +export const DEBUG = { + enableMocksForI18n, + disableMocksForI18n, +}; diff --git a/blueocean-core-js/src/less/core.less b/blueocean-core-js/src/less/core.less index af25b9763bf..7ff2dc6b694 100644 --- a/blueocean-core-js/src/less/core.less +++ b/blueocean-core-js/src/less/core.less @@ -1,3 +1,4 @@ @import 'variables'; @import 'replay-button'; @import 'run-button'; +@import 'header'; diff --git a/blueocean-dashboard/src/main/less/header.less b/blueocean-core-js/src/less/header.less similarity index 100% rename from blueocean-dashboard/src/main/less/header.less rename to blueocean-core-js/src/less/header.less diff --git a/blueocean-core-js/test/js/test-entrypoint.js b/blueocean-core-js/test/js/test-entrypoint.js index 4cae17f7e18..ffe73e59fb3 100644 --- a/blueocean-core-js/test/js/test-entrypoint.js +++ b/blueocean-core-js/test/js/test-entrypoint.js @@ -5,5 +5,5 @@ import 'babel-polyfill'; -import { enableMocks } from '../../src/js/i18n/i18n'; -enableMocks(); +import { enableMocksForI18n } from '../../src/js/i18n/i18n'; +enableMocksForI18n(); diff --git a/blueocean-dashboard/.storybook/webpack.config.js b/blueocean-dashboard/.storybook/webpack.config.js index 44708d43542..19e257b119d 100644 --- a/blueocean-dashboard/.storybook/webpack.config.js +++ b/blueocean-dashboard/.storybook/webpack.config.js @@ -2,6 +2,11 @@ const path = require('path'); module.exports = { module: {}, + node: { + net: "empty", + dns: "empty", + tls: "empty" + }, resolve: { extensions: [ '.js', // required by storybook diff --git a/blueocean-dashboard/src/main/js/PipelineRoutes.jsx b/blueocean-dashboard/src/main/js/PipelineRoutes.jsx index 9eded57715c..6e6be160b44 100644 --- a/blueocean-dashboard/src/main/js/PipelineRoutes.jsx +++ b/blueocean-dashboard/src/main/js/PipelineRoutes.jsx @@ -33,7 +33,7 @@ function cleanupCopy(el) { for (let i = 0; i < el.childNodes.length; i++) { const child = el.childNodes[i]; if (child.nodeType !== Node.TEXT_NODE - && child.nodeType !== Node.ELEMENT_NODE) { + && child.nodeType !== Node.ELEMENT_NODE) { el.removeChild(child); } else if (child.nodeType === Node.ELEMENT_NODE) { cleanupCopy(child); @@ -101,7 +101,7 @@ function persistBackgroundOnNavigationChange(prevState, nextState, replace, call if (isPersistBackgroundRoute(prevState, nextState)) { persistModalBackground(); } else if (isRemovePersistedBackgroundRoute(prevState, nextState)) { - // need to delay this a little to let the route re-render + // need to delay this a little to let the route re-render setTimeout(discardPersistedBackground, 200); } callback(); @@ -110,28 +110,28 @@ function persistBackgroundOnNavigationChange(prevState, nextState, replace, call export default ( - + - - - - + + + + - - - - - - - - + + + + + + + + + + - - - + diff --git a/blueocean-dashboard/src/main/js/components/stories/index.js b/blueocean-dashboard/src/main/js/components/stories/index.js index d08f9ee6cfb..2144db0fc3e 100644 --- a/blueocean-dashboard/src/main/js/components/stories/index.js +++ b/blueocean-dashboard/src/main/js/components/stories/index.js @@ -13,4 +13,3 @@ require('./logDisplay'); require('./changes'); require('./moments'); require('./inputStep'); -require('./headers'); diff --git a/blueocean-dashboard/src/main/less/extensions.less b/blueocean-dashboard/src/main/less/extensions.less index 7c6a1e9cb56..7d0fa4818be 100644 --- a/blueocean-dashboard/src/main/less/extensions.less +++ b/blueocean-dashboard/src/main/less/extensions.less @@ -8,4 +8,3 @@ @import "run-details-artifact"; @import "testing"; @import "forms/index"; -@import "header"; diff --git a/blueocean-personalization/.storybook/webpack.config.js b/blueocean-personalization/.storybook/webpack.config.js index 44708d43542..19e257b119d 100644 --- a/blueocean-personalization/.storybook/webpack.config.js +++ b/blueocean-personalization/.storybook/webpack.config.js @@ -2,6 +2,11 @@ const path = require('path'); module.exports = { module: {}, + node: { + net: "empty", + dns: "empty", + tls: "empty" + }, resolve: { extensions: [ '.js', // required by storybook