diff --git a/.build-info b/.build-info
new file mode 100644
index 000000000..22cfa9517
--- /dev/null
+++ b/.build-info
@@ -0,0 +1 @@
+{"rndkey":"\\þû\u001c±7åI\u0007ïRªÞǤ¦\u0015¦\u0007¥ç\u001e:ÄX)P§","timestamp":"2018-02-17T13:13:13.277Z"}
\ No newline at end of file
diff --git a/.circleci/config.yml b/.circleci/config.yml
new file mode 100644
index 000000000..6eec9f7f6
--- /dev/null
+++ b/.circleci/config.yml
@@ -0,0 +1,59 @@
+version: 2
+jobs:
+ test:
+ docker:
+ - image: circleci/node:8.9.4
+ steps:
+ - checkout
+ - restore_cache:
+ key: test-node-modules-{{ checksum "package-lock.json" }}
+ - run: npm install
+ - save_cache:
+ key: test-node-modules-{{ checksum "package-lock.json" }}
+ paths:
+ - node_modules
+ - run: npm run lint
+ - run: npm run test
+ - run: npm run build
+ - persist_to_workspace:
+ root: .
+ paths:
+ - dist
+
+ # Just tests commited code.
+ deployDev:
+ docker:
+ - image: cibuilds/aws
+ steps:
+ - checkout
+ - attach_workspace:
+ at: ./workspace
+ - run: ./deploy.sh DEV no-cache
+
+ deployProd:
+ docker:
+ - image: cibuilds/aws
+ steps:
+ - checkout
+ - attach_workspace:
+ at: ./workspace
+ - run: ./deploy.sh PROD
+
+workflows:
+ version: 2
+ build:
+ jobs:
+ - test
+ - deployDev:
+ requires:
+ - test
+ filters:
+ branches:
+ only: dev
+ - deployProd:
+ requires:
+ - test
+ filters:
+ branches:
+ only: master
+
\ No newline at end of file
diff --git a/.eslintrc.json b/.eslintrc.json
index e17758928..fa74680ed 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -28,7 +28,7 @@
"react/jsx-closing-bracket-location": 2,
"jsx-quotes": [2, "prefer-double"],
"react/jsx-boolean-value": 2,
- "react/wrap-multilines": 2,
+ "react/jsx-wrap-multilines": 2,
"react/self-closing-comp": 2,
"react/no-is-mounted": 2
},
diff --git a/README.md b/README.md
index a844f8200..45335bfc0 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-#### For folks working on this code base, we're ogaznizing coding style and general guidelines [here](https://github.com/appirio-tech/connect-app/wiki/Community-Work-Read-Me-First!).
+#### For folks working on this code base, we're organizing coding style and general guidelines [here](https://github.com/appirio-tech/connect-app/wiki/Community-Work-Read-Me-First!).
# TC Deployment Notes
_[TC Deployment Notes should always be kept up to date **on the default branch**. Update these notes when changes to this information occur]_
diff --git a/circle.yml b/circle.yml
deleted file mode 100644
index d9a7ba478..000000000
--- a/circle.yml
+++ /dev/null
@@ -1,45 +0,0 @@
-machine:
- node:
- version: 6.11.2
- environment:
- CXX: g++-4.8
-
-dependencies:
- pre:
- - sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
- - sudo apt-get update -y
- - sudo apt-get install g++-4.8 -y
- override:
- - npm install
-
-compile:
- override:
- - npm cache clean
- - npm run lint && npm test && npm run build
-
-deployment:
- development:
- branch: dev
- owner: appirio-tech
- commands:
- - ./deploy.sh DEV no-cache
- test:
- branch: [qa]
- owner: appirio-tech
- commands:
- - ./deploy.sh TEST01
- test02:
- branch: bugBash06
- owner: appirio-tech
- commands:
- - ./deploy.sh TEST02
- qa:
- branch: qa
- owner: appirio-tech
- commands:
- - ./deploy.sh QA
- production:
- branch: master
- owner: appirio-tech
- commands:
- - ./deploy.sh PROD
diff --git a/config/babel/webpack-coffee.js b/config/babel/webpack-coffee.js
new file mode 100644
index 000000000..6f3d0e146
--- /dev/null
+++ b/config/babel/webpack-coffee.js
@@ -0,0 +1,12 @@
+/**
+ * Babel config for CoffeeScript only.
+ *
+ * We disable modules for `env` preset of `babel` for CoffeeScript to avoid error
+ * 'Uncaught ReferenceError exports is not defined'
+ */
+const topCoderBabelConfig = require('topcoder-react-utils/config/babel/webpack')
+
+const envPresetIndex = topCoderBabelConfig.presets.find((preset) => preset === 'env')
+topCoderBabelConfig.presets.splice(envPresetIndex, 1, ['env', { modules: false }])
+
+module.exports = topCoderBabelConfig
diff --git a/config/webpack/common-modifications.js b/config/webpack/common-modifications.js
new file mode 100644
index 000000000..01a424072
--- /dev/null
+++ b/config/webpack/common-modifications.js
@@ -0,0 +1,44 @@
+/**
+ * Function which is applied to webpack config from topcoder-react-utils
+ * and perform some common modification specific to connect app which cannot be applied using
+ * webpack merge.
+ */
+
+module.exports = function (config) {
+ /*
+ Exclude some folders from babel-loader
+ */
+ const jsxRule = config.module.rules.find(rule => /jsx/.test(rule.test.toString()))
+ jsxRule.exclude = [
+ /node_modules[\\/](?!appirio-tech.*|topcoder|tc-)/,
+ /src[\\/]assets[\\/]fonts/
+ ]
+
+ /*
+ Add babel-plugin-lodash to exclude full lodash lib and include only necessary methods
+ */
+ jsxRule.options.plugins = (jsxRule.options.plugins || []).concat(['lodash'])
+
+ /*
+ Include packages `appirio-tech-react-components` and `tc-ui`
+ to `.scss` rule
+ */
+ const scssRule = config.module.rules.find(rule => /scss/.test(rule.test.toString()))
+ scssRule.exclude = /node_modules[\\/](?!appirio-tech-react-components|tc-ui)/
+
+ /*
+ Remove outputPath as otherwise in development mode files cannot be found
+ in the webpack in-memory filesystem
+ TODO understand why it happens, fix it another way, remove this
+ */
+ const imagesRule = config.module.rules.find(rule => /gif/.test(rule.test.toString()))
+ delete imagesRule.options.outputPath
+
+ /*
+ Remove outputPath as otherwise in development mode files cannot be found
+ in the webpack in-memory filesystem
+ TODO understand why it happens, fix it another way, remove this
+ */
+ const fontsRule = config.module.rules.find(rule => /woff2/.test(rule.test.toString()))
+ delete fontsRule.options.outputPath
+}
diff --git a/config/webpack/common.js b/config/webpack/common.js
new file mode 100644
index 000000000..a6b4c7a53
--- /dev/null
+++ b/config/webpack/common.js
@@ -0,0 +1,100 @@
+/**
+ * Common part of webpack config specific to connect app
+ *
+ * This config is merged to development and production configs
+ * and is not supposed to be used directly by itself.
+ */
+'use strict'
+
+const _ = require('lodash')
+const path = require('path')
+const webpack = require('webpack')
+const HtmlWebpackPlugin = require('html-webpack-plugin')
+const constants = require('../constants')
+
+const dirname = path.resolve(__dirname, '../..')
+
+module.exports = {
+ /*
+ Connect app has different output folder rather than topcoder-react-utils
+ So update it
+ */
+ output: {
+ path: path.join(dirname, '/dist'),
+ filename: '[name].[hash].js',
+ chunkFilename: '[name].[hash].js',
+ publicPath: '/'
+ },
+
+ resolve: {
+ /*
+ Connect app depends on `appirio-tech-react-components` which uses
+ CoffeeScript so we have to add support for these formats
+ */
+ extensions: [
+ '.coffee',
+ '.litcoffee',
+ '.cjsx'
+ ],
+ alias: {
+ /*
+ Connect app uses handlebars which has some issue with webpack
+ We have to create an alias to concrete file in order to import it
+ */
+ handlebars: 'handlebars/dist/handlebars.min.js'
+ }
+ },
+
+ module: {
+ rules: [{
+ /*
+ Connect app depends on `appirio-tech-react-components` which uses
+ CoffeeScript so we have to add support for it
+
+ Note, that we use custom babel config for coffee script which disables modules
+ */
+ test: /\.(coffee|litcoffee|cjsx)$/,
+ use: [
+ {
+ loader: 'babel-loader',
+ options: {
+ babelrc: false,
+ forceEnv: 'development', // by default set env to 'development'
+ presets: [path.resolve(dirname, './config/babel/webpack-coffee.js')],
+ plugins: ['lodash']
+ }
+ },
+ 'coffee-loader',
+ 'cjsx-loader'
+ ]
+ }, {
+ /*
+ Load SVG files not handled by inline-react-svg babel plugin
+ */
+ test: /\.svg$/,
+ loader: 'file-loader'
+ }],
+ },
+
+ plugins: [
+ /*
+ Connect app has a custom html template file, so we use it
+ */
+ new HtmlWebpackPlugin({
+ template: path.join(dirname, '/src/index.html'),
+ inject: 'body'
+ }),
+
+ /*
+ Connect app requires a lot of env vars which are defined in constants.
+ */
+ new webpack.DefinePlugin({
+ 'process.env': _.mapValues(constants, (value) => JSON.stringify(value))
+ }),
+
+ /*
+ Remove some unused files to reduce bundle size
+ */
+ new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/)
+ ]
+}
diff --git a/config/webpack/default.js b/config/webpack/default.js
deleted file mode 100644
index 49fbe7b49..000000000
--- a/config/webpack/default.js
+++ /dev/null
@@ -1,120 +0,0 @@
-'use strict'
-
-const _ = require('lodash')
-const path = require('path')
-const webpack = require('webpack')
-const FaviconsWebpackPlugin = require('favicons-webpack-plugin')
-const ExtractCssChunks = require('extract-css-chunks-webpack-plugin')
-const HtmlWebpackPlugin = require('html-webpack-plugin')
-
-const constants = require('../constants')
-
-const dirname = path.resolve(__dirname, '../..')
-
-module.exports = {
- context: dirname,
-
- entry: [
- './src/styles/main.scss',
- './src/index'
- ],
-
- output: {
- path : path.join(dirname, '/dist'),
- filename : '[name].[hash].js',
- chunkFilename : '[name].[hash].js',
- publicPath : '/'
- },
-
- module: {
- rules: [{
- test: /\.(js|jsx)$/,
- loader: 'babel-loader',
- exclude: /node_modules\/(?!appirio-tech.*|topcoder|tc-)/,
- options: {
- babelrc: false,
- presets: [ 'env', 'react', 'stage-2' ],
- plugins: ['lodash', 'inline-react-svg']
- }
- }, {
- test: /\.(coffee|litcoffee|cjsx)$/,
- use: [
- {
- loader: 'babel-loader',
- options: {
- babelrc: false,
- presets: [ 'env', 'react', 'stage-2' ],
- plugins: [ 'lodash' ]
- }
- },
- 'coffee-loader',
- 'cjsx-loader'
- ]
- }, {
- test: /\.json$/,
- loader: 'json-loader'
- }, {
- /* We have to support css loading for third-party plugins,
- * we are not supposed to use css files inside the project. */
- test: /\.css$/,
- use: ExtractCssChunks.extract({
- fallback: 'style-loader',
- use: ['css-loader']
- })
- }, {
- // ASSET LOADER
- // Copy png, jpg, jpeg, gif, svg, woff, woff2, ttf, eot files to output
- // Rename the file using the asset hash
- // Pass along the updated reference to your code
- // You can add here any file extension you want to get copied to your output
- test: /\.(png|jpg|jpeg|gif)$/,
- loader: 'file-loader'
- }, {
- test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/,
- loader: 'file-loader'
- }, {
- test: /\.(ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
- loader: 'file-loader'
- }]
-
- },
-
- resolve: {
- extensions: [
- '.js',
- '.jsx',
- '.json',
- '.coffee',
- '.scss',
- '.svg',
- '.png',
- '.gif',
- '.jpg',
- '.cjsx'
- ],
- alias: {
- handlebars: 'handlebars/dist/handlebars.min.js'
- }
- },
-
- plugins: [
- new webpack.DefinePlugin({
- 'process.env': _.mapValues(constants, (value) => JSON.stringify(value))
- }),
- new FaviconsWebpackPlugin({
- logo: './src/favicon.png',
- // disable cache, otherwise when there is a dist folder with icons
- // icons don't wanna be generated in memory using webpack-dev-server
- persistentCache: false
- }),
- new HtmlWebpackPlugin({
- template: path.join(dirname, '/src/index.html'),
- inject: 'body'
- }),
- // Only emit files when there are no errors
- new webpack.NoEmitOnErrorsPlugin(),
- new ExtractCssChunks({
- filename: '[name].css'
- })
- ]
-}
diff --git a/config/webpack/development.js b/config/webpack/development.js
index 33f7de41b..e3df9d470 100644
--- a/config/webpack/development.js
+++ b/config/webpack/development.js
@@ -1,65 +1,55 @@
+/**
+ * Webpack config for development mode
+ */
const path = require('path')
-const webpack = require('webpack')
const webpackMerge = require('webpack-merge')
-const defaultConfig = require('./default')
-
const dirname = path.resolve(__dirname, '../..')
-module.exports = webpackMerge.strategy({
- entry: 'prepend' // to put 'react-hot-loader/patch' first
-})(defaultConfig, {
+const commonProjectConfig = require('./common')
+const applyCommonModifications = require('./common-modifications')
+const configFactory = require('topcoder-react-utils/config/webpack/app-development')
+
+// get standard TopCoder development webpack config
+const developmentTopCoderConfig = configFactory({
+ context: dirname,
+
entry: [
- 'react-hot-loader/patch'
- ],
+ 'babel-polyfill', // Load this first
+ 'react-hot-loader/patch', // This package already requires/loads react (but not react-dom). It must be loaded after babel-polyfill to ensure both react and react-dom use the same Symbol.
+ 'react', // Include this to enforce order
+ 'react-dom', // Include this to enforce order
+ './src/index'
+ ]
+})
- devtool: 'eval',
+// merge standard development TopCoder config with common config specific to connect app
+const combinedConfig = webpackMerge.smart(
+ developmentTopCoderConfig,
+ commonProjectConfig
+)
- module: {
- rules: [{
- test: /\.(js|jsx)$/,
- loader: 'babel-loader',
- exclude: /node_modules\/(?!appirio-tech.*|topcoder|tc-)/,
- options: {
- babelrc: false,
- presets: [ ['env', { modules: false }], 'react', 'stage-2' ],
- plugins: [
- 'lodash',
- // add react hot reloader
- 'react-hot-loader/babel',
- 'inline-react-svg'
- ]
- }
- }, {
- test: /\.scss$/,
- use: [
- 'style-loader',
- {
- loader: 'css-loader',
- options: {
- sourceMap: true
- }
- },
- 'resolve-url-loader',
- {
- loader: 'sass-loader',
- options: {
- sourceMap: true,
- includePaths: [
- path.join(dirname, '/node_modules/bourbon/app/assets/stylesheets'),
- path.join(dirname, '/node_modules/tc-ui/src/styles')
- ]
- }
- }
- ]
- }]
- },
+// apply common modifications specific to connect app which cannot by applied by webpack merge
+applyCommonModifications(combinedConfig)
- plugins: [
- // don't add HotModuleReplacementPlugin, because run webpack-dev-server with --hot param
- // otherwise this plugin will be added twice and cause bugs
- // new webpack.HotModuleReplacementPlugin(),
+/*
+ Remove HotModuleReplacementPlugin, because we run webpack-dev-server with --hot param
+ Otherwise this plugin will be added twice and cause bugs
+ */
+const hotReloadPluginIndex = combinedConfig.plugins.findIndex(plugin => plugin.constructor.name === 'HotModuleReplacementPlugin')
+combinedConfig.plugins.splice(hotReloadPluginIndex, 1)
- new webpack.NamedModulesPlugin()
- ]
-})
+/*
+ Remove 'webpack-hot-middleware/client?reload=true' as we use webpack-dev-server, not middleware
+ */
+combinedConfig.entry.main = combinedConfig.entry.main.filter((entry) => (
+ entry !== 'webpack-hot-middleware/client?reload=true'
+))
+
+/*
+ Enable source maps.
+ This also let us see original file names in browser console.
+ */
+combinedConfig.devtool = 'eval'
+
+module.exports = combinedConfig
diff --git a/config/webpack/production.js b/config/webpack/production.js
index 238742d7e..b47e9fdb5 100644
--- a/config/webpack/production.js
+++ b/config/webpack/production.js
@@ -1,54 +1,56 @@
-const path = require('path')
-const webpack = require('webpack')
+/**
+ * Webpack config for production mode
+ */
+const path = require('path')
const webpackMerge = require('webpack-merge')
const CompressionPlugin = require('compression-webpack-plugin')
-const ExtractCssChunks = require('extract-css-chunks-webpack-plugin')
-
-const defaultConfig = require('./default')
const dirname = path.resolve(__dirname, '../..')
-module.exports = webpackMerge(defaultConfig, {
- devtool: 'source-map',
-
- module: {
- rules: [{
- test: /\.scss$/,
- use: ExtractCssChunks.extract({
- fallback: 'style-loader',
- use: [{
- loader: 'css-loader',
- options: {
- sourceMap: true
- }
- },
- 'resolve-url-loader',
- {
- loader: 'sass-loader',
- options: {
- sourceMap: true,
- includePaths: [
- path.join(dirname, '/node_modules/bourbon/app/assets/stylesheets'),
- path.join(dirname, '/node_modules/tc-ui/src/styles')
- ]
- }
- }]
- })
- }]
- },
-
- plugins: [
- // Do not include any .mock.js files if this is a build
- new webpack.IgnorePlugin(/\.mock\.js/),
- new webpack.optimize.UglifyJsPlugin({
- mangle: true
- }),
- new CompressionPlugin({
- asset: '[file]',
- algorithm: 'gzip',
- regExp: /\.js$|\.css$/,
- threshold: 10240,
- minRatio: 0.8
- })
+const commonProjectConfig = require('./common')
+const applyCommonModifications = require('./common-modifications')
+const configFactory = require('topcoder-react-utils/config/webpack/app-production')
+
+// get standard TopCoder production webpack config
+const productionTopCoderConfig = configFactory({
+ context: dirname,
+
+ entry: [
+ 'babel-polyfill', // Load this first
+ 'react-hot-loader/patch', // This package already requires/loads react (but not react-dom). It must be loaded after babel-polyfill to ensure both react and react-dom use the same Symbol.
+ 'react', // Include this to enforce order
+ 'react-dom', // Include this to enforce order
+ './src/index'
]
})
+
+// merge standard production TopCoder config with common config specific to connect app
+const combinedConfig = webpackMerge.smart(
+ productionTopCoderConfig,
+ commonProjectConfig
+)
+
+// apply common modifications specific to connect app which cannot by applied by webpack merge
+applyCommonModifications(combinedConfig)
+
+/*
+ Set babel environment to `production` for CoffeeScript babel config
+ */
+const coffeeRule = combinedConfig.module.rules.find(rule => /coffee/.test(rule.test.toString()))
+const coffeeBabelUse = coffeeRule.use.find((use) => use.loader === 'babel-loader')
+coffeeBabelUse.options.forceEnv = 'production'
+
+/*
+ Add compression plugin which gzip files output files
+ */
+combinedConfig.plugins.push(
+ new CompressionPlugin({
+ asset: '[file]',
+ algorithm: 'gzip',
+ regExp: /\.js$|\.css$/,
+ threshold: 10240,
+ minRatio: 0.8
+ })
+)
+
+module.exports = combinedConfig
diff --git a/deploy.sh b/deploy.sh
index 3740a3bdc..d720d7c70 100755
--- a/deploy.sh
+++ b/deploy.sh
@@ -28,9 +28,9 @@ deploy_s3bucket() {
fi
S3_OPTIONS="--exclude '*.txt' --exclude '*.js' --exclude '*.css'"
- echo aws s3 sync ${HOME}/${CIRCLE_PROJECT_REPONAME}/dist s3://${AWS_S3_BUCKET} ${S3_CACHE_OPTIONS} ${S3_OPTIONS}
- eval "aws s3 sync --dryrun ${HOME}/${CIRCLE_PROJECT_REPONAME}/dist s3://${AWS_S3_BUCKET} ${S3_CACHE_OPTIONS} ${S3_OPTIONS}"
- result=`eval "aws s3 sync ${HOME}/${CIRCLE_PROJECT_REPONAME}/dist s3://${AWS_S3_BUCKET} ${S3_CACHE_OPTIONS} ${S3_OPTIONS}"`
+ echo aws s3 sync ./workspace/dist s3://${AWS_S3_BUCKET} ${S3_CACHE_OPTIONS} ${S3_OPTIONS}
+ eval "aws s3 sync --dryrun ./workspace/dist s3://${AWS_S3_BUCKET} ${S3_CACHE_OPTIONS} ${S3_OPTIONS}"
+ result=`eval "aws s3 sync ./workspace/dist s3://${AWS_S3_BUCKET} ${S3_CACHE_OPTIONS} ${S3_OPTIONS}"`
if [ $? -eq 0 ]; then
echo "All html, font, image, map and media files are Deployed without gzip encoding!"
else
@@ -39,9 +39,9 @@ deploy_s3bucket() {
fi
S3_OPTIONS="--exclude '*' --include '*.txt' --include '*.js' --include '*.css' --content-encoding gzip"
- echo aws s3 sync --dryrun ${HOME}/${CIRCLE_PROJECT_REPONAME}/dist s3://${AWS_S3_BUCKET} ${S3_CACHE_OPTIONS} ${S3_OPTIONS}
- eval "aws s3 sync --dryrun ${HOME}/${CIRCLE_PROJECT_REPONAME}/dist s3://${AWS_S3_BUCKET} ${S3_CACHE_OPTIONS} ${S3_OPTIONS}"
- result=`eval "aws s3 sync ${HOME}/${CIRCLE_PROJECT_REPONAME}/dist s3://${AWS_S3_BUCKET} ${S3_CACHE_OPTIONS} ${S3_OPTIONS}"`
+ echo aws s3 sync --dryrun ./workspace/dist s3://${AWS_S3_BUCKET} ${S3_CACHE_OPTIONS} ${S3_OPTIONS}
+ eval "aws s3 sync --dryrun ./workspace/dist s3://${AWS_S3_BUCKET} ${S3_CACHE_OPTIONS} ${S3_OPTIONS}"
+ result=`eval "aws s3 sync ./workspace/dist s3://${AWS_S3_BUCKET} ${S3_CACHE_OPTIONS} ${S3_OPTIONS}"`
if [ $? -eq 0 ]; then
echo "All txt, css, and js files are Deployed! with gzip"
else
diff --git a/npm-shrinkwrap.json b/package-lock.json
similarity index 82%
rename from npm-shrinkwrap.json
rename to package-lock.json
index 5ea04cc5d..4f5caeabd 100644
--- a/npm-shrinkwrap.json
+++ b/package-lock.json
@@ -13,8 +13,7 @@
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz",
"integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=",
- "dev": true,
- "optional": true
+ "dev": true
},
"abbrev": {
"version": "1.1.1",
@@ -33,9 +32,9 @@
}
},
"acorn": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.3.0.tgz",
- "integrity": "sha512-Yej+zOJ1Dm/IMZzzj78OntP/r3zHEaKcyNoU2lAaxPtrseM6rF0xwqoz5Q5ysAiED9hTjI2hgtvLXitlCN1/Ug=="
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.4.1.tgz",
+ "integrity": "sha512-XLmq3H/BVvW6/GbxKryGxWORz1ebilSsUDlyC27bXhWGWAZWkGwS6FLHjOlwFXNFoWFQEO/Df4u0YYd0K3BQgQ=="
},
"acorn-dynamic-import": {
"version": "2.0.2",
@@ -59,7 +58,6 @@
"resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz",
"integrity": "sha1-VbtemGkVB7dFedBRNBMhfDgMVM8=",
"dev": true,
- "optional": true,
"requires": {
"acorn": "2.7.0"
},
@@ -68,8 +66,7 @@
"version": "2.7.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz",
"integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc=",
- "dev": true,
- "optional": true
+ "dev": true
}
}
},
@@ -158,9 +155,9 @@
}
},
"ajv-keywords": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz",
- "integrity": "sha1-MU3QpLM2j609/NxU7eYXG4htrzw=",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz",
+ "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=",
"dev": true
},
"align-text": {
@@ -185,9 +182,9 @@
"integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU="
},
"ansi-escapes": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz",
- "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.0.0.tgz",
+ "integrity": "sha512-O/klc27mWNUigtv0F8NJWbLF00OcegQalkqKURWdosW08YZKi4m6CnSUSvIZG1otNJbTWhN01Hhz389DW7mvDQ==",
"dev": true
},
"ansi-html": {
@@ -199,12 +196,17 @@
"ansi-regex": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
},
"ansi-styles": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
- "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
+ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
+ "dev": true,
+ "requires": {
+ "color-convert": "1.9.1"
+ }
},
"anymatch": {
"version": "1.3.2",
@@ -235,7 +237,7 @@
"humps": "0.6.0",
"isomorphic-fetch": "2.2.1",
"jwt-decode": "1.5.1",
- "lodash": "4.17.4",
+ "lodash": "4.17.5",
"normalizr": "1.4.1",
"q": "1.5.1",
"react": "0.14.9",
@@ -314,14 +316,14 @@
}
},
"appirio-tech-react-components": {
- "version": "github:appirio-tech/react-components#d982493c9a46e95bc302fbd76a4b135c644d1434",
+ "version": "github:appirio-tech/react-components#2850ce193c8b6a264306f32a88f7dfe73380084a",
"requires": {
"appirio-tech-api-schemas": "5.0.70",
"appirio-tech-client-app-layer": "0.1.3",
"classnames": "2.2.5",
"formsy-react": "0.18.1",
"isomorphic-fetch": "2.2.1",
- "lodash": "4.17.4",
+ "lodash": "4.17.5",
"moment": "2.20.1",
"react": "15.6.2",
"react-addons-pure-render-mixin": "15.6.2",
@@ -330,13 +332,15 @@
"react-datetime": "2.7.1",
"react-dom": "15.6.2",
"react-dropzone": "3.13.4",
+ "react-popper": "0.7.5",
"react-redux": "4.4.8",
"react-router-dom": "4.2.2",
"react-select": "0.9.1",
"react-switch-button": "1.1.2",
- "react-textarea-autosize": "4.3.2",
+ "react-textarea-autosize": "5.2.1",
+ "react-transition-group": "2.2.1",
"redux-thunk": "2.2.0",
- "tc-ui": "git+https://github.com/appirio-tech/tc-ui.git#44b6473cc9a6d0386409b297d8c0423f72003e6f",
+ "tc-ui": "git+https://github.com/appirio-tech/tc-ui.git#dd4d227ebe51c47bff233f3be7583812d9688d54",
"uncontrollable": "4.1.0"
},
"dependencies": {
@@ -367,11 +371,30 @@
}
},
"argparse": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
- "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=",
+ "version": "0.1.16",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz",
+ "integrity": "sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=",
+ "requires": {
+ "underscore": "1.7.0",
+ "underscore.string": "2.4.0"
+ }
+ },
+ "aria-query": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-0.7.1.tgz",
+ "integrity": "sha1-Jsu1r/ZBRLCoJb4YRuCxbPoAsR4=",
+ "dev": true,
"requires": {
- "sprintf-js": "1.0.3"
+ "ast-types-flow": "0.0.7",
+ "commander": "2.13.0"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "2.13.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz",
+ "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==",
+ "dev": true
+ }
}
},
"arr-diff": {
@@ -417,6 +440,12 @@
"es-abstract": "1.10.0"
}
},
+ "array-iterate": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array-iterate/-/array-iterate-1.1.1.tgz",
+ "integrity": "sha1-hlv3+K851rCYLGCQKRSsdrwBCPY=",
+ "dev": true
+ },
"array-union": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
@@ -487,6 +516,37 @@
"integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
"dev": true
},
+ "asset-require-hook": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/asset-require-hook/-/asset-require-hook-1.2.0.tgz",
+ "integrity": "sha512-MgFMBC6SaYKiE0CqkYd5kZaKyWgxYErnoAmjAhJ8RZt7GKIvx0OvXIsqCqk3fo+wxjeA+tz4/QPS23s3WW/+jA==",
+ "dev": true,
+ "requires": {
+ "loader-utils": "0.2.17",
+ "lodash.assign": "4.2.0",
+ "mime": "1.6.0"
+ },
+ "dependencies": {
+ "loader-utils": {
+ "version": "0.2.17",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz",
+ "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=",
+ "dev": true,
+ "requires": {
+ "big.js": "3.2.0",
+ "emojis-list": "2.1.0",
+ "json5": "0.5.1",
+ "object-assign": "4.1.1"
+ }
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ }
+ }
+ },
"assign-symbols": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
@@ -498,6 +558,12 @@
"resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.9.6.tgz",
"integrity": "sha1-ECyenpAF0+fjgpvwxPok7oYu6bk="
},
+ "ast-types-flow": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz",
+ "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=",
+ "dev": true
+ },
"async": {
"version": "0.2.10",
"resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
@@ -545,29 +611,17 @@
"integrity": "sha1-NCQX2PLzRhsUzwkIjV7fh5HcmDI="
},
"autoprefixer": {
- "version": "6.7.7",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz",
- "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=",
+ "version": "7.2.5",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-7.2.5.tgz",
+ "integrity": "sha512-XqHfo8Ht0VU+T5P+eWEVoXza456KJ4l62BPewu3vpNf3LP9s2+zYXkXBznzYby4XeECXgG3N4i+hGvOhXErZmA==",
"dev": true,
"requires": {
- "browserslist": "1.7.7",
- "caniuse-db": "1.0.30000793",
+ "browserslist": "2.11.3",
+ "caniuse-lite": "1.0.30000792",
"normalize-range": "0.1.2",
"num2fraction": "1.2.2",
- "postcss": "5.2.18",
+ "postcss": "6.0.17",
"postcss-value-parser": "3.3.0"
- },
- "dependencies": {
- "browserslist": {
- "version": "1.7.7",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz",
- "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=",
- "dev": true,
- "requires": {
- "caniuse-db": "1.0.30000793",
- "electron-to-chromium": "1.3.31"
- }
- }
}
},
"aws-sign2": {
@@ -590,14 +644,102 @@
"follow-redirects": "0.0.7"
}
},
+ "axobject-query": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-0.1.0.tgz",
+ "integrity": "sha1-YvWdvFnJ+SQnWco0mWDnov48NsA=",
+ "dev": true,
+ "requires": {
+ "ast-types-flow": "0.0.7"
+ }
+ },
+ "babel-cli": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz",
+ "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=",
+ "dev": true,
+ "requires": {
+ "babel-core": "6.26.0",
+ "babel-polyfill": "6.26.0",
+ "babel-register": "6.26.0",
+ "babel-runtime": "6.26.0",
+ "chokidar": "1.7.0",
+ "commander": "2.13.0",
+ "convert-source-map": "1.5.1",
+ "fs-readdir-recursive": "1.1.0",
+ "glob": "7.1.2",
+ "lodash": "4.17.5",
+ "output-file-sync": "1.1.2",
+ "path-is-absolute": "1.0.1",
+ "slash": "1.0.0",
+ "source-map": "0.5.7",
+ "v8flags": "2.1.1"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "2.13.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz",
+ "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==",
+ "dev": true
+ },
+ "glob": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "1.0.0",
+ "inflight": "1.0.6",
+ "inherits": "2.0.1",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ }
+ }
+ },
"babel-code-frame": {
"version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
"integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
+ "dev": true,
"requires": {
"chalk": "1.1.3",
"esutils": "2.0.2",
"js-tokens": "3.0.2"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
}
},
"babel-core": {
@@ -607,7 +749,7 @@
"dev": true,
"requires": {
"babel-code-frame": "6.26.0",
- "babel-generator": "6.26.0",
+ "babel-generator": "6.26.1",
"babel-helpers": "6.24.1",
"babel-messages": "6.23.0",
"babel-register": "6.26.0",
@@ -619,7 +761,7 @@
"convert-source-map": "1.5.1",
"debug": "2.6.9",
"json5": "0.5.1",
- "lodash": "4.17.4",
+ "lodash": "4.17.5",
"minimatch": "3.0.4",
"path-is-absolute": "1.0.1",
"private": "0.1.8",
@@ -635,10 +777,22 @@
}
}
},
+ "babel-eslint": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-7.2.3.tgz",
+ "integrity": "sha1-sv4tgBJkcPXBlELcdXJTqJdxCCc=",
+ "dev": true,
+ "requires": {
+ "babel-code-frame": "6.26.0",
+ "babel-traverse": "6.26.0",
+ "babel-types": "6.26.0",
+ "babylon": "6.18.0"
+ }
+ },
"babel-generator": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz",
- "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=",
+ "version": "6.26.1",
+ "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz",
+ "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==",
"dev": true,
"requires": {
"babel-messages": "6.23.0",
@@ -646,17 +800,11 @@
"babel-types": "6.26.0",
"detect-indent": "4.0.0",
"jsesc": "1.3.0",
- "lodash": "4.17.4",
+ "lodash": "4.17.5",
"source-map": "0.5.7",
"trim-right": "1.0.1"
},
"dependencies": {
- "jsesc": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",
- "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=",
- "dev": true
- },
"source-map": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
@@ -719,7 +867,7 @@
"babel-helper-function-name": "6.24.1",
"babel-runtime": "6.26.0",
"babel-types": "6.26.0",
- "lodash": "4.17.4"
+ "lodash": "4.17.5"
}
},
"babel-helper-explode-assignable-expression": {
@@ -785,7 +933,7 @@
"dev": true,
"requires": {
"babel-types": "7.0.0-beta.3",
- "lodash": "4.17.4"
+ "lodash": "4.17.5"
},
"dependencies": {
"babel-types": {
@@ -795,7 +943,7 @@
"dev": true,
"requires": {
"esutils": "2.0.2",
- "lodash": "4.17.4",
+ "lodash": "4.17.5",
"to-fast-properties": "2.0.0"
}
},
@@ -825,7 +973,7 @@
"requires": {
"babel-runtime": "6.26.0",
"babel-types": "6.26.0",
- "lodash": "4.17.4"
+ "lodash": "4.17.5"
}
},
"babel-helper-remap-async-to-generator": {
@@ -880,6 +1028,7 @@
"version": "6.23.0",
"resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
"integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
+ "dev": true,
"requires": {
"babel-runtime": "6.26.0"
}
@@ -893,10 +1042,30 @@
"babel-runtime": "6.26.0"
}
},
+ "babel-plugin-css-modules-transform": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-css-modules-transform/-/babel-plugin-css-modules-transform-1.4.0.tgz",
+ "integrity": "sha512-byonF+wNC2anhyfAz07EnWLcMOh+29e9jJqsVA0e3BNz7pMZxyr7BC3D8QKmMHAwDp0hy+SqyqG9qCwef9prVg==",
+ "dev": true,
+ "requires": {
+ "css-modules-require-hook": "4.2.3",
+ "mkdirp": "0.5.1"
+ }
+ },
+ "babel-plugin-dynamic-import-node": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-1.2.0.tgz",
+ "integrity": "sha512-yeDwKaLgGdTpXL7RgGt5r6T4LmnTza/hUn5Ul8uZSGGMtEjYo13Nxai7SQaGCTEzUtg9Zq9qJn0EjEr7SeSlTQ==",
+ "dev": true,
+ "requires": {
+ "babel-plugin-syntax-dynamic-import": "6.18.0"
+ }
+ },
"babel-plugin-inline-react-svg": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/babel-plugin-inline-react-svg/-/babel-plugin-inline-react-svg-0.5.2.tgz",
"integrity": "sha1-9MnqU4To0Ip6T5ahnyKl6rDd86k=",
+ "dev": true,
"requires": {
"babel-template": "6.26.0",
"babel-traverse": "6.26.0",
@@ -915,7 +1084,7 @@
"babel-helper-module-imports": "7.0.0-beta.3",
"babel-types": "6.26.0",
"glob": "7.1.2",
- "lodash": "4.17.4",
+ "lodash": "4.17.5",
"require-package-name": "2.0.1"
},
"dependencies": {
@@ -935,6 +1104,55 @@
}
}
},
+ "babel-plugin-module-resolver": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-3.0.0.tgz",
+ "integrity": "sha512-U394VtqR+uGozwV43paA9tUOJ2WYP/OpLMla7u/Qi+/A0chDwuRoYu1hkqkkNTAvoq21ybSIgdCeDV4GVvqfeA==",
+ "dev": true,
+ "requires": {
+ "find-babel-config": "1.1.0",
+ "glob": "7.1.2",
+ "pkg-up": "2.0.0",
+ "reselect": "3.0.1",
+ "resolve": "1.5.0"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "1.0.0",
+ "inflight": "1.0.6",
+ "inherits": "2.0.1",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ }
+ }
+ },
+ "babel-plugin-react-css-modules": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/babel-plugin-react-css-modules/-/babel-plugin-react-css-modules-3.3.3.tgz",
+ "integrity": "sha1-XbKxfU958SpwF9dDB9XHmZtbv0o=",
+ "dev": true,
+ "requires": {
+ "ajv": "5.5.2",
+ "ajv-keywords": "2.1.1",
+ "babel-plugin-syntax-jsx": "6.18.0",
+ "babel-types": "6.26.0",
+ "generic-names": "1.0.3",
+ "postcss": "6.0.17",
+ "postcss-modules": "0.6.4",
+ "postcss-modules-extract-imports": "1.1.0",
+ "postcss-modules-local-by-default": "1.2.0",
+ "postcss-modules-parser": "1.1.1",
+ "postcss-modules-scope": "1.1.0",
+ "postcss-modules-values": "1.3.0"
+ }
+ },
"babel-plugin-syntax-async-functions": {
"version": "6.13.0",
"resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz",
@@ -995,6 +1213,15 @@
"integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=",
"dev": true
},
+ "babel-plugin-transform-assets": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-assets/-/babel-plugin-transform-assets-0.2.0.tgz",
+ "integrity": "sha1-Z96j7zohqpM6oj10B0AV7Z1KoGw=",
+ "dev": true,
+ "requires": {
+ "asset-require-hook": "1.2.0"
+ }
+ },
"babel-plugin-transform-async-generator-functions": {
"version": "6.24.1",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz",
@@ -1070,7 +1297,7 @@
"babel-template": "6.26.0",
"babel-traverse": "6.26.0",
"babel-types": "6.26.0",
- "lodash": "4.17.4"
+ "lodash": "4.17.5"
}
},
"babel-plugin-transform-es2015-classes": {
@@ -1274,6 +1501,19 @@
"babel-helper-regex": "6.26.0",
"babel-runtime": "6.26.0",
"regexpu-core": "2.0.0"
+ },
+ "dependencies": {
+ "regexpu-core": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz",
+ "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=",
+ "dev": true,
+ "requires": {
+ "regenerate": "1.3.3",
+ "regjsgen": "0.2.0",
+ "regjsparser": "0.1.5"
+ }
+ }
}
},
"babel-plugin-transform-exponentiation-operator": {
@@ -1356,6 +1596,15 @@
"regenerator-transform": "0.10.1"
}
},
+ "babel-plugin-transform-runtime": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz",
+ "integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.26.0"
+ }
+ },
"babel-plugin-transform-strict-mode": {
"version": "6.24.1",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz",
@@ -1487,7 +1736,7 @@
"babel-runtime": "6.26.0",
"core-js": "2.5.3",
"home-or-tmp": "2.0.0",
- "lodash": "4.17.4",
+ "lodash": "4.17.5",
"mkdirp": "0.5.1",
"source-map-support": "0.4.18"
},
@@ -1520,18 +1769,20 @@
"version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz",
"integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=",
+ "dev": true,
"requires": {
"babel-runtime": "6.26.0",
"babel-traverse": "6.26.0",
"babel-types": "6.26.0",
"babylon": "6.18.0",
- "lodash": "4.17.4"
+ "lodash": "4.17.5"
}
},
"babel-traverse": {
"version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
"integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
+ "dev": true,
"requires": {
"babel-code-frame": "6.26.0",
"babel-messages": "6.23.0",
@@ -1541,24 +1792,32 @@
"debug": "2.6.9",
"globals": "9.18.0",
"invariant": "2.2.2",
- "lodash": "4.17.4"
+ "lodash": "4.17.5"
}
},
"babel-types": {
"version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
"integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
+ "dev": true,
"requires": {
"babel-runtime": "6.26.0",
"esutils": "2.0.2",
- "lodash": "4.17.4",
+ "lodash": "4.17.5",
"to-fast-properties": "1.0.3"
}
},
"babylon": {
"version": "6.18.0",
"resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
- "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ=="
+ "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
+ "dev": true
+ },
+ "bail": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.2.tgz",
+ "integrity": "sha1-99bBcxYwqfnw1NNe0fli4gdKF2Q=",
+ "dev": true
},
"balanced-match": {
"version": "1.0.0",
@@ -1578,14 +1837,6 @@
"isobject": "3.0.1",
"mixin-deep": "1.3.0",
"pascalcase": "0.1.1"
- },
- "dependencies": {
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
- }
}
},
"base62": {
@@ -1691,7 +1942,7 @@
"deep-equal": "1.0.1",
"dns-equal": "1.0.0",
"dns-txt": "2.0.2",
- "multicast-dns": "6.2.2",
+ "multicast-dns": "6.2.3",
"multicast-dns-service-types": "1.1.0"
}
},
@@ -1834,7 +2085,7 @@
"dev": true,
"requires": {
"caniuse-lite": "1.0.30000792",
- "electron-to-chromium": "1.3.31"
+ "electron-to-chromium": "1.3.32"
}
},
"buffer": {
@@ -1895,7 +2146,7 @@
"glob": "7.1.2",
"graceful-fs": "4.1.11",
"lru-cache": "4.1.1",
- "mississippi": "1.3.0",
+ "mississippi": "1.3.1",
"mkdirp": "0.5.1",
"move-concurrently": "1.0.1",
"promise-inflight": "1.0.1",
@@ -1936,14 +2187,6 @@
"to-object-path": "0.3.0",
"union-value": "1.0.0",
"unset-value": "1.0.0"
- },
- "dependencies": {
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
- }
}
},
"caller-path": {
@@ -2000,7 +2243,7 @@
"dev": true,
"requires": {
"browserslist": "1.7.7",
- "caniuse-db": "1.0.30000793",
+ "caniuse-db": "1.0.30000802",
"lodash.memoize": "4.1.2",
"lodash.uniq": "4.5.0"
},
@@ -2011,16 +2254,16 @@
"integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=",
"dev": true,
"requires": {
- "caniuse-db": "1.0.30000793",
- "electron-to-chromium": "1.3.31"
+ "caniuse-db": "1.0.30000802",
+ "electron-to-chromium": "1.3.32"
}
}
}
},
"caniuse-db": {
- "version": "1.0.30000793",
- "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000793.tgz",
- "integrity": "sha1-PADGbkI6ehkHx92Wdpp4sq+opy4=",
+ "version": "1.0.30000802",
+ "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000802.tgz",
+ "integrity": "sha1-99yjQtocEs+E/yyAQy4kx+HMNtk=",
"dev": true
},
"caniuse-lite": {
@@ -2035,6 +2278,12 @@
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
"dev": true
},
+ "ccount": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.0.2.tgz",
+ "integrity": "sha1-U7ai+BW7d7nChx97mnLDol8djok=",
+ "dev": true
+ },
"center-align": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
@@ -2061,15 +2310,25 @@
"integrity": "sha1-DUqzfn4Y6tC9xHuSB2QRjOWHM9w="
},
"chalk": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz",
+ "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==",
+ "dev": true,
"requires": {
- "ansi-styles": "2.2.1",
+ "ansi-styles": "3.2.0",
"escape-string-regexp": "1.0.5",
- "has-ansi": "2.0.0",
- "strip-ansi": "3.0.1",
- "supports-color": "2.0.0"
+ "supports-color": "4.5.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
+ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
+ "dev": true,
+ "requires": {
+ "has-flag": "2.0.0"
+ }
+ }
}
},
"change-case": {
@@ -2100,9 +2359,39 @@
"resolved": "https://registry.npmjs.org/change-emitter/-/change-emitter-0.1.6.tgz",
"integrity": "sha1-6LL+PX8at9aaMhma/5HqaTFAlRU="
},
- "charenc": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz",
+ "character-entities": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.1.tgz",
+ "integrity": "sha1-92hxvl72bdt/j440eOzDdMJ9bco=",
+ "dev": true
+ },
+ "character-entities-html4": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.1.tgz",
+ "integrity": "sha1-NZoqSg9+KdPcKsmb2+Ie45Q46lA=",
+ "dev": true
+ },
+ "character-entities-legacy": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.1.tgz",
+ "integrity": "sha1-9Ad53xoQGHK7UQo9KV4fzPFHIC8=",
+ "dev": true
+ },
+ "character-reference-invalid": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.1.tgz",
+ "integrity": "sha1-lCg191Dk7GGjCOYMLvjMEBEgLvw=",
+ "dev": true
+ },
+ "chardet": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz",
+ "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=",
+ "dev": true
+ },
+ "charenc": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz",
"integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc="
},
"cheerio": {
@@ -2116,7 +2405,70 @@
"entities": "1.1.1",
"htmlparser2": "3.8.3",
"jsdom": "7.2.2",
- "lodash": "4.17.4"
+ "lodash": "4.17.5"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz",
+ "integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc=",
+ "dev": true
+ },
+ "acorn-globals": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz",
+ "integrity": "sha1-VbtemGkVB7dFedBRNBMhfDgMVM8=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "acorn": "2.7.0"
+ }
+ },
+ "jsdom": {
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-7.2.2.tgz",
+ "integrity": "sha1-QLQCdwwr2iNGkJa+6Rq2deOx/G4=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "abab": "1.0.4",
+ "acorn": "2.7.0",
+ "acorn-globals": "1.0.9",
+ "cssom": "0.3.2",
+ "cssstyle": "0.2.37",
+ "escodegen": "1.9.0",
+ "nwmatcher": "1.4.3",
+ "parse5": "1.5.1",
+ "request": "2.83.0",
+ "sax": "1.2.4",
+ "symbol-tree": "3.2.2",
+ "tough-cookie": "2.3.3",
+ "webidl-conversions": "2.0.1",
+ "whatwg-url-compat": "0.6.5",
+ "xml-name-validator": "2.0.1"
+ }
+ },
+ "parse5": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz",
+ "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=",
+ "dev": true,
+ "optional": true
+ },
+ "webidl-conversions": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-2.0.1.tgz",
+ "integrity": "sha1-O/glj30xjHRDw28uFpQCoaZwNQY=",
+ "dev": true,
+ "optional": true
+ },
+ "xml-name-validator": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz",
+ "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=",
+ "dev": true,
+ "optional": true
+ }
}
},
"chokidar": {
@@ -2191,8 +2543,36 @@
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz",
"integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==",
+ "dev": true,
"requires": {
"chalk": "1.1.3"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
}
},
"class-utils": {
@@ -2267,12 +2647,6 @@
"kind-of": "5.1.0"
}
},
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
- },
"kind-of": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
@@ -2306,12 +2680,12 @@
}
},
"cli-cursor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
- "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
"dev": true,
"requires": {
- "restore-cursor": "1.0.1"
+ "restore-cursor": "2.0.0"
}
},
"cli-width": {
@@ -2359,6 +2733,16 @@
}
}
},
+ "clone-regexp": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-1.0.0.tgz",
+ "integrity": "sha1-6uCiQT9VwJQvgYwin+/OhF1/Oxw=",
+ "dev": true,
+ "requires": {
+ "is-regexp": "1.0.0",
+ "is-supported-regexp-flag": "1.0.0"
+ }
+ },
"clone-stats": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz",
@@ -2375,6 +2759,7 @@
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz",
"integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=",
+ "dev": true,
"requires": {
"q": "1.5.1"
}
@@ -2405,6 +2790,12 @@
"resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-1.12.7.tgz",
"integrity": "sha512-pLXHFxQMPklVoEekowk8b3erNynC+DVJzChxS/LCBBgR6/8AJkHivkm//zbowcfc7BTCAjryuhx6gPqPRfsFoA=="
},
+ "collapse-white-space": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.3.tgz",
+ "integrity": "sha1-S5BvZw5aljqHt2sOFolkM0G2Ajw=",
+ "dev": true
+ },
"collection-visit": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
@@ -2464,7 +2855,8 @@
"colors": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
- "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM="
+ "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=",
+ "dev": true
},
"combined-stream": {
"version": "1.0.5",
@@ -2549,9 +2941,9 @@
}
},
"compression-webpack-plugin": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/compression-webpack-plugin/-/compression-webpack-plugin-1.1.3.tgz",
- "integrity": "sha512-DIvTIkihu1tyoPdoan5Lh9GVvXgcNMDEgXSfyjlAriW3UaILoPhUFHFTU7Zsui+rPEexmFNlTyiLe0TCkQFJGg==",
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/compression-webpack-plugin/-/compression-webpack-plugin-1.1.6.tgz",
+ "integrity": "sha512-oNao3kC1JiQC781akjCgm7zu7K1pxDw9sd2oUUbW128cp2OpvOD4xm1s/WDuAdRsOl4m6rsTGAzcdILvA/7nFg==",
"dev": true,
"requires": {
"async": "2.6.0",
@@ -2567,7 +2959,7 @@
"integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==",
"dev": true,
"requires": {
- "lodash": "4.17.4"
+ "lodash": "4.17.5"
}
}
}
@@ -2623,6 +3015,12 @@
"integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=",
"dev": true
},
+ "contains-path": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz",
+ "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=",
+ "dev": true
+ },
"content-disposition": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz",
@@ -2683,6 +3081,35 @@
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
},
+ "cosmiconfig": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz",
+ "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==",
+ "dev": true,
+ "requires": {
+ "is-directory": "0.3.1",
+ "js-yaml": "3.7.0",
+ "minimist": "1.2.0",
+ "object-assign": "4.1.1",
+ "os-homedir": "1.0.2",
+ "parse-json": "2.2.0",
+ "require-from-string": "1.2.1"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ }
+ }
+ },
"create-ecdh": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz",
@@ -2764,9 +3191,9 @@
}
},
"create-react-class": {
- "version": "15.6.2",
- "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.2.tgz",
- "integrity": "sha1-zx7RXxKq1/FO9fLf4F5sQvke8Co=",
+ "version": "15.6.3",
+ "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.3.tgz",
+ "integrity": "sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg==",
"requires": {
"fbjs": "0.8.16",
"loose-envify": "1.3.1",
@@ -2908,14 +3335,221 @@
"source-list-map": "2.0.0"
},
"dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "icss-utils": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz",
+ "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=",
+ "dev": true,
+ "requires": {
+ "postcss": "6.0.17"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.17",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.17.tgz",
+ "integrity": "sha512-Bl1nybsSzWYbP8O4gAVD8JIjZIul9hLNOPTGBIlVmZNUnNAGL+W0cpYWzVwfImZOwumct4c1SDvSbncVWKtXUw==",
+ "dev": true,
+ "requires": {
+ "chalk": "2.3.0",
+ "source-map": "0.6.1",
+ "supports-color": "5.1.0"
+ }
+ }
+ }
+ },
"object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
"dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.3",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-modules-extract-imports": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz",
+ "integrity": "sha1-ZhQOzs447wa/DT41XWm/WdFB6oU=",
+ "dev": true,
+ "requires": {
+ "postcss": "6.0.17"
+ },
+ "dependencies": {
+ "postcss": {
+ "version": "6.0.17",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.17.tgz",
+ "integrity": "sha512-Bl1nybsSzWYbP8O4gAVD8JIjZIul9hLNOPTGBIlVmZNUnNAGL+W0cpYWzVwfImZOwumct4c1SDvSbncVWKtXUw==",
+ "dev": true,
+ "requires": {
+ "chalk": "2.3.0",
+ "source-map": "0.6.1",
+ "supports-color": "5.1.0"
+ }
+ }
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "css-modules-loader-core": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/css-modules-loader-core/-/css-modules-loader-core-1.1.0.tgz",
+ "integrity": "sha1-WQhmgpShvs0mGuCkziGwtVHyHRY=",
+ "dev": true,
+ "requires": {
+ "icss-replace-symbols": "1.1.0",
+ "postcss": "6.0.1",
+ "postcss-modules-extract-imports": "1.1.0",
+ "postcss-modules-local-by-default": "1.2.0",
+ "postcss-modules-scope": "1.1.0",
+ "postcss-modules-values": "1.3.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.1.tgz",
+ "integrity": "sha1-AA29H47vIXqjaLmiEsX8QLKo8/I=",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
}
}
},
+ "css-modules-require-hook": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/css-modules-require-hook/-/css-modules-require-hook-4.2.3.tgz",
+ "integrity": "sha1-Z5LKQSsV4j5vm+agfc739Xf/kE0=",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "generic-names": "1.0.3",
+ "glob-to-regexp": "0.3.0",
+ "icss-replace-symbols": "1.1.0",
+ "lodash": "4.17.5",
+ "postcss": "6.0.17",
+ "postcss-modules-extract-imports": "1.1.0",
+ "postcss-modules-local-by-default": "1.2.0",
+ "postcss-modules-resolve-imports": "1.3.0",
+ "postcss-modules-scope": "1.1.0",
+ "postcss-modules-values": "1.3.0",
+ "seekout": "1.0.2"
+ }
+ },
"css-select": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
@@ -2937,19 +3571,6 @@
"cssesc": "0.1.0",
"fastparse": "1.1.1",
"regexpu-core": "1.0.0"
- },
- "dependencies": {
- "regexpu-core": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz",
- "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=",
- "dev": true,
- "requires": {
- "regenerate": "1.3.3",
- "regjsgen": "0.2.0",
- "regjsparser": "0.1.5"
- }
- }
}
},
"css-what": {
@@ -3004,11 +3625,95 @@
"postcss-zindex": "2.2.0"
},
"dependencies": {
- "object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "autoprefixer": {
+ "version": "6.7.7",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz",
+ "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=",
+ "dev": true,
+ "requires": {
+ "browserslist": "1.7.7",
+ "caniuse-db": "1.0.30000802",
+ "normalize-range": "0.1.2",
+ "num2fraction": "1.2.2",
+ "postcss": "5.2.18",
+ "postcss-value-parser": "3.3.0"
+ }
+ },
+ "browserslist": {
+ "version": "1.7.7",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz",
+ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=",
+ "dev": true,
+ "requires": {
+ "caniuse-db": "1.0.30000802",
+ "electron-to-chromium": "1.3.32"
+ }
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.3",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
"dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
}
}
},
@@ -3016,6 +3721,7 @@
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz",
"integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=",
+ "dev": true,
"requires": {
"clap": "1.2.3",
"source-map": "0.5.7"
@@ -3024,7 +3730,8 @@
"source-map": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
}
}
},
@@ -3039,7 +3746,6 @@
"resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz",
"integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=",
"dev": true,
- "optional": true,
"requires": {
"cssom": "0.3.2"
}
@@ -3068,6 +3774,12 @@
"es5-ext": "0.10.38"
}
},
+ "damerau-levenshtein": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz",
+ "integrity": "sha1-AxkcQyy27qFou3fzpV/9zLiXhRQ=",
+ "dev": true
+ },
"dashdash": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
@@ -3096,6 +3808,16 @@
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
"integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
},
+ "decamelize-keys": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz",
+ "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=",
+ "dev": true,
+ "requires": {
+ "decamelize": "1.2.0",
+ "map-obj": "1.0.1"
+ }
+ },
"decode-uri-component": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
@@ -3253,7 +3975,7 @@
"resolved": "https://registry.npmjs.org/detective/-/detective-4.7.1.tgz",
"integrity": "sha512-H6PmeeUcZloWtdt4DAkFyzFL94arpHr3NOwwmVILFiy+9Qd4JTxxXrzfyGk/lmct2qVGBwTSwSXagqu2BxmWig==",
"requires": {
- "acorn": "5.3.0",
+ "acorn": "5.4.1",
"defined": "1.0.0"
}
},
@@ -3274,6 +3996,27 @@
"randombytes": "2.0.6"
}
},
+ "dir-glob": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz",
+ "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==",
+ "dev": true,
+ "requires": {
+ "arrify": "1.0.1",
+ "path-type": "3.0.0"
+ },
+ "dependencies": {
+ "path-type": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
+ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
+ "dev": true,
+ "requires": {
+ "pify": "3.0.0"
+ }
+ }
+ }
+ },
"dns-equal": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz",
@@ -3300,13 +4043,12 @@
}
},
"doctrine": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz",
- "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
"dev": true,
"requires": {
- "esutils": "2.0.2",
- "isarray": "1.0.0"
+ "esutils": "2.0.2"
}
},
"dom-align": {
@@ -3361,9 +4103,9 @@
"dev": true
},
"domain-browser": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz",
- "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
+ "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==",
"dev": true
},
"domelementtype": {
@@ -3399,6 +4141,15 @@
"sentence-case": "1.1.3"
}
},
+ "dot-prop": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz",
+ "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==",
+ "dev": true,
+ "requires": {
+ "is-obj": "1.0.1"
+ }
+ },
"draft-js": {
"version": "0.10.5",
"resolved": "https://registry.npmjs.org/draft-js/-/draft-js-0.10.5.tgz",
@@ -3455,7 +4206,7 @@
"resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.0.0.tgz",
"integrity": "sha1-Yd41xfIsNjMYmnXTxAzT3Jasu5Q=",
"requires": {
- "uc.micro": "1.0.3"
+ "uc.micro": "1.0.5"
}
},
"tlds": {
@@ -3524,9 +4275,9 @@
"dev": true
},
"electron-to-chromium": {
- "version": "1.3.31",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.31.tgz",
- "integrity": "sha512-XE4CLbswkZgZFn34cKFy1xaX+F5LHxeDLjY1+rsK9asDzknhbrd9g/n/01/acbU25KTsUSiLKwvlLyA+6XLUOA==",
+ "version": "1.3.32",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.32.tgz",
+ "integrity": "sha1-EdBoTAhA4APEvoko+KxfNdvCtOY=",
"dev": true
},
"element-class": {
@@ -3549,6 +4300,12 @@
"minimalistic-crypto-utils": "1.0.1"
}
},
+ "emoji-regex": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.5.1.tgz",
+ "integrity": "sha512-PAHp6TxrCy7MGMFidro8uikr+zlJJKJ/Q6mm2ExZ7HwkyR9lSVFfE3kt36qcwa24BQL7y0G9axycGjK1A/0uNQ==",
+ "dev": true
+ },
"emojis-list": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
@@ -3747,14 +4504,14 @@
"escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true
},
"escodegen": {
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz",
"integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==",
"dev": true,
- "optional": true,
"requires": {
"esprima": "3.1.3",
"estraverse": "4.2.0",
@@ -3767,8 +4524,7 @@
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz",
"integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=",
- "dev": true,
- "optional": true
+ "dev": true
},
"source-map": {
"version": "0.5.7",
@@ -3792,46 +4548,102 @@
}
},
"eslint": {
- "version": "2.13.1",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-2.13.1.tgz",
- "integrity": "sha1-5MyPoPAJ+4KaquI4VaKTYL4fbBE=",
+ "version": "4.17.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.17.0.tgz",
+ "integrity": "sha512-AyxBUCANU/o/xC0ijGMKavo5Ls3oK6xykiOITlMdjFjrKOsqLrA7Nf5cnrDgcKrHzBirclAZt63XO7YZlVUPwA==",
"dev": true,
"requires": {
- "chalk": "1.1.3",
- "concat-stream": "1.5.2",
- "debug": "2.6.9",
- "doctrine": "1.5.0",
- "es6-map": "0.1.5",
- "escope": "3.6.0",
- "espree": "3.5.2",
- "estraverse": "4.2.0",
+ "ajv": "5.5.2",
+ "babel-code-frame": "6.26.0",
+ "chalk": "2.3.0",
+ "concat-stream": "1.6.0",
+ "cross-spawn": "5.1.0",
+ "debug": "3.1.0",
+ "doctrine": "2.1.0",
+ "eslint-scope": "3.7.1",
+ "eslint-visitor-keys": "1.0.0",
+ "espree": "3.5.3",
+ "esquery": "1.0.0",
"esutils": "2.0.2",
- "file-entry-cache": "1.3.1",
+ "file-entry-cache": "2.0.0",
+ "functional-red-black-tree": "1.0.1",
"glob": "7.1.2",
- "globals": "9.18.0",
+ "globals": "11.3.0",
"ignore": "3.3.7",
"imurmurhash": "0.1.4",
- "inquirer": "0.12.0",
- "is-my-json-valid": "2.17.1",
+ "inquirer": "3.3.0",
"is-resolvable": "1.1.0",
- "js-yaml": "3.7.0",
- "json-stable-stringify": "1.0.1",
+ "js-yaml": "3.10.0",
+ "json-stable-stringify-without-jsonify": "1.0.1",
"levn": "0.3.0",
- "lodash": "4.17.4",
+ "lodash": "4.17.5",
+ "minimatch": "3.0.4",
"mkdirp": "0.5.1",
+ "natural-compare": "1.4.0",
"optionator": "0.8.2",
- "path-is-absolute": "1.0.1",
"path-is-inside": "1.0.2",
- "pluralize": "1.2.1",
- "progress": "1.1.8",
+ "pluralize": "7.0.0",
+ "progress": "2.0.0",
"require-uncached": "1.0.3",
- "shelljs": "0.6.1",
- "strip-json-comments": "1.0.4",
- "table": "3.8.3",
- "text-table": "0.2.0",
- "user-home": "2.0.0"
+ "semver": "5.5.0",
+ "strip-ansi": "4.0.0",
+ "strip-json-comments": "2.0.1",
+ "table": "4.0.2",
+ "text-table": "0.2.0"
},
"dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "argparse": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
+ "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "1.0.3"
+ }
+ },
+ "concat-stream": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz",
+ "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3",
+ "readable-stream": "2.3.3",
+ "typedarray": "0.0.6"
+ }
+ },
+ "cross-spawn": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+ "dev": true,
+ "requires": {
+ "lru-cache": "4.1.1",
+ "shebang-command": "1.2.0",
+ "which": "1.3.0"
+ }
+ },
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "esprima": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz",
+ "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==",
+ "dev": true
+ },
"glob": {
"version": "7.1.2",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
@@ -3840,43 +4652,275 @@
"requires": {
"fs.realpath": "1.0.0",
"inflight": "1.0.6",
- "inherits": "2.0.1",
+ "inherits": "2.0.3",
"minimatch": "3.0.4",
"once": "1.4.0",
"path-is-absolute": "1.0.1"
}
+ },
+ "globals": {
+ "version": "11.3.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.3.0.tgz",
+ "integrity": "sha512-kkpcKNlmQan9Z5ZmgqKH/SMbSmjxQ7QjyNqfXVc8VJcoBV2UEg+sxQD15GQofGRh2hfpwUb70VC31DR7Rq5Hdw==",
+ "dev": true
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz",
+ "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==",
+ "dev": true,
+ "requires": {
+ "argparse": "1.0.9",
+ "esprima": "4.0.0"
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
+ "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "1.0.0",
+ "process-nextick-args": "1.0.7",
+ "safe-buffer": "5.1.1",
+ "string_decoder": "1.0.3",
+ "util-deprecate": "1.0.2"
+ }
+ },
+ "string_decoder": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
+ "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "5.1.1"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "3.0.0"
+ }
}
}
},
- "eslint-plugin-react": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-4.3.0.tgz",
- "integrity": "sha1-x5qsgGnWLeJ4h8E7gpjVkgiN43g=",
- "dev": true
+ "eslint-config-airbnb": {
+ "version": "15.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-15.1.0.tgz",
+ "integrity": "sha512-m0q9fiMBzDAIbirlGnpJNWToIhdhJmXXnMG+IFflYzzod9231ZhtmGKegKg8E9T8F1YuVaDSU1FnCm5b9iXVhQ==",
+ "dev": true,
+ "requires": {
+ "eslint-config-airbnb-base": "11.3.2"
+ }
},
- "espree": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.2.tgz",
- "integrity": "sha512-sadKeYwaR/aJ3stC2CdvgXu1T16TdYN+qwCpcWbMnGJ8s0zNWemzrvb2GbD4OhmJ/fwpJjudThAlLobGbWZbCQ==",
+ "eslint-config-airbnb-base": {
+ "version": "11.3.2",
+ "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-11.3.2.tgz",
+ "integrity": "sha512-/fhjt/VqzBA2SRsx7ErDtv6Ayf+XLw9LIOqmpBuHFCVwyJo2EtzGWMB9fYRFBoWWQLxmNmCpenNiH0RxyeS41w==",
"dev": true,
"requires": {
- "acorn": "5.3.0",
- "acorn-jsx": "3.0.1"
+ "eslint-restricted-globals": "0.1.1"
}
},
- "esprima-fb": {
- "version": "15001.1.0-dev-harmony-fb",
- "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1.0-dev-harmony-fb.tgz",
- "integrity": "sha1-MKlHMDxrjV6VW+4rmbHSMyBqaQE="
+ "eslint-import-resolver-babel-module": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-babel-module/-/eslint-import-resolver-babel-module-4.0.0.tgz",
+ "integrity": "sha512-aPj0+pG0H3HCaMD9eRDYEzPdMyKrLE2oNhAzTXd2w86ZBe3s7drSrrPwVTfzO1CBp13FGk8S84oRmZHZvSo0mA==",
+ "dev": true,
+ "requires": {
+ "pkg-up": "2.0.0",
+ "resolve": "1.5.0"
+ }
},
- "esrecurse": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz",
- "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=",
+ "eslint-import-resolver-node": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz",
+ "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==",
"dev": true,
"requires": {
- "estraverse": "4.2.0",
- "object-assign": "4.1.1"
+ "debug": "2.6.9",
+ "resolve": "1.5.0"
+ }
+ },
+ "eslint-module-utils": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.1.1.tgz",
+ "integrity": "sha512-jDI/X5l/6D1rRD/3T43q8Qgbls2nq5km5KSqiwlyUbGo5+04fXhMKdCPhjwbqAa6HXWaMxj8Q4hQDIh7IadJQw==",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "pkg-dir": "1.0.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+ "dev": true,
+ "requires": {
+ "path-exists": "2.1.0",
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "path-exists": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+ "dev": true,
+ "requires": {
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "pkg-dir": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz",
+ "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=",
+ "dev": true,
+ "requires": {
+ "find-up": "1.1.2"
+ }
+ }
+ }
+ },
+ "eslint-plugin-import": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.8.0.tgz",
+ "integrity": "sha512-Rf7dfKJxZ16QuTgVv1OYNxkZcsu/hULFnC+e+w0Gzi6jMC3guQoWQgxYxc54IDRinlb6/0v5z/PxxIKmVctN+g==",
+ "dev": true,
+ "requires": {
+ "builtin-modules": "1.1.1",
+ "contains-path": "0.1.0",
+ "debug": "2.6.9",
+ "doctrine": "1.5.0",
+ "eslint-import-resolver-node": "0.3.2",
+ "eslint-module-utils": "2.1.1",
+ "has": "1.0.1",
+ "lodash.cond": "4.5.2",
+ "minimatch": "3.0.4",
+ "read-pkg-up": "2.0.0"
+ },
+ "dependencies": {
+ "doctrine": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz",
+ "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=",
+ "dev": true,
+ "requires": {
+ "esutils": "2.0.2",
+ "isarray": "1.0.0"
+ }
+ }
+ }
+ },
+ "eslint-plugin-jest": {
+ "version": "21.7.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-21.7.0.tgz",
+ "integrity": "sha512-ccXTDOiHe2c7e0riu9UIh3l9INIJaK1aZckwtl7luX9TymtKL0htAE+epNo/4w6uvj0vFc2hRvasHoLOCXVdtQ==",
+ "dev": true
+ },
+ "eslint-plugin-jsx-a11y": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-5.1.1.tgz",
+ "integrity": "sha512-5I9SpoP7gT4wBFOtXT8/tXNPYohHBVfyVfO17vkbC7r9kEIxYJF12D3pKqhk8+xnk12rfxKClS3WCFpVckFTPQ==",
+ "dev": true,
+ "requires": {
+ "aria-query": "0.7.1",
+ "array-includes": "3.0.3",
+ "ast-types-flow": "0.0.7",
+ "axobject-query": "0.1.0",
+ "damerau-levenshtein": "1.0.4",
+ "emoji-regex": "6.5.1",
+ "jsx-ast-utils": "1.4.1"
+ }
+ },
+ "eslint-plugin-react": {
+ "version": "7.6.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.6.1.tgz",
+ "integrity": "sha512-30aMOHWX/DOaaLJVBHz6RMvYM2qy5GH63+y2PLFdIrYe4YLtODFmT3N1YA7ZqUnaBweVbedr4K4cqxOlWAPjIw==",
+ "dev": true,
+ "requires": {
+ "doctrine": "2.1.0",
+ "has": "1.0.1",
+ "jsx-ast-utils": "2.0.1",
+ "prop-types": "15.6.0"
+ },
+ "dependencies": {
+ "jsx-ast-utils": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz",
+ "integrity": "sha1-6AGxs5mF4g//yHtA43SAgOLcrH8=",
+ "dev": true,
+ "requires": {
+ "array-includes": "3.0.3"
+ }
+ }
+ }
+ },
+ "eslint-restricted-globals": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz",
+ "integrity": "sha1-NfDVy8ZMLj7WLpO0saevBbp+1Nc=",
+ "dev": true
+ },
+ "eslint-scope": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz",
+ "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=",
+ "dev": true,
+ "requires": {
+ "esrecurse": "4.2.0",
+ "estraverse": "4.2.0"
+ }
+ },
+ "eslint-visitor-keys": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz",
+ "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==",
+ "dev": true
+ },
+ "espree": {
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.3.tgz",
+ "integrity": "sha512-Zy3tAJDORxQZLl2baguiRU1syPERAIg0L+JB2MWorORgTu/CplzvxS9WWA7Xh4+Q+eOQihNs/1o1Xep8cvCxWQ==",
+ "dev": true,
+ "requires": {
+ "acorn": "5.4.1",
+ "acorn-jsx": "3.0.1"
+ }
+ },
+ "esprima-fb": {
+ "version": "15001.1.0-dev-harmony-fb",
+ "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1.0-dev-harmony-fb.tgz",
+ "integrity": "sha1-MKlHMDxrjV6VW+4rmbHSMyBqaQE="
+ },
+ "esquery": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz",
+ "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=",
+ "dev": true,
+ "requires": {
+ "estraverse": "4.2.0"
+ }
+ },
+ "esrecurse": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz",
+ "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=",
+ "dev": true,
+ "requires": {
+ "estraverse": "4.2.0",
+ "object-assign": "4.1.1"
},
"dependencies": {
"object-assign": {
@@ -3896,7 +4940,8 @@
"esutils": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
- "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs="
+ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
+ "dev": true
},
"etag": {
"version": "1.8.1",
@@ -3978,6 +5023,15 @@
}
}
},
+ "execall": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/execall/-/execall-1.0.0.tgz",
+ "integrity": "sha1-c9CQTjlbPKsGWLCNCewlMH8pu3M=",
+ "dev": true,
+ "requires": {
+ "clone-regexp": "1.0.0"
+ }
+ },
"exenv": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.0.tgz",
@@ -3989,12 +5043,6 @@
"integrity": "sha1-WKnS1ywCwfbwKg70qRZicrd2CSI=",
"dev": true
},
- "exit-hook": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz",
- "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=",
- "dev": true
- },
"expand-brackets": {
"version": "0.1.5",
"resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
@@ -4080,6 +5128,17 @@
"is-extendable": "0.1.1"
}
},
+ "external-editor": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.1.0.tgz",
+ "integrity": "sha512-E44iT5QVOUJBKij4IIV3uvxuNlbKS38Tw1HiupxEIHPv9qtC2PrDYohbXV5U+1jnfIXttny8gUhj+oZvflFlzA==",
+ "dev": true,
+ "requires": {
+ "chardet": "0.4.2",
+ "iconv-lite": "0.4.19",
+ "tmp": "0.0.33"
+ }
+ },
"extglob": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
@@ -4090,7 +5149,9 @@
}
},
"extract-css-chunks-webpack-plugin": {
- "version": "github:birdofpreyru/extract-css-chunks-webpack-plugin#b1d48e1354104f1533eb88dfe6359d88282e965b",
+ "version": "2.0.18",
+ "resolved": "https://registry.npmjs.org/extract-css-chunks-webpack-plugin/-/extract-css-chunks-webpack-plugin-2.0.18.tgz",
+ "integrity": "sha512-wqUcO5cSjc9BegjEc/6o6xx/b1go1fSMwAfsJiQyKrbeAcH7RFhSS7wvE/euYGuTbgYuRroGvFBgWJYrhnys5A==",
"dev": true,
"requires": {
"ajv": "4.11.2",
@@ -4117,7 +5178,17 @@
"integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==",
"dev": true,
"requires": {
- "lodash": "4.17.4"
+ "lodash": "4.17.5"
+ }
+ },
+ "style-loader": {
+ "version": "0.18.2",
+ "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.18.2.tgz",
+ "integrity": "sha512-WPpJPZGUxWYHWIUMNNOYqql7zh85zGmr84FdTVWq52WTIkqlW9xSxD3QYWi/T31cqn9UNSsietVEgGn2aaSCzw==",
+ "dev": true,
+ "requires": {
+ "loader-utils": "1.1.0",
+ "schema-utils": "0.3.0"
}
}
}
@@ -4310,7 +5381,7 @@
"requires": {
"favicons": "4.8.6",
"loader-utils": "0.2.17",
- "lodash": "4.17.4",
+ "lodash": "4.17.5",
"webpack": "1.15.0"
},
"dependencies": {
@@ -4326,6 +5397,12 @@
"integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
"dev": true
},
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
"loader-utils": {
"version": "0.2.17",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz",
@@ -4452,27 +5529,18 @@
}
},
"figures": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
- "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
+ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
"dev": true,
"requires": {
- "escape-string-regexp": "1.0.5",
- "object-assign": "4.1.1"
- },
- "dependencies": {
- "object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
- "dev": true
- }
+ "escape-string-regexp": "1.0.5"
}
},
"file-entry-cache": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-1.3.1.tgz",
- "integrity": "sha1-RMYepgeuS+nBQC9B9EJwy/4zT/g=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz",
+ "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=",
"dev": true,
"requires": {
"flat-cache": "1.3.0",
@@ -4488,12 +5556,13 @@
}
},
"file-loader": {
- "version": "0.11.2",
- "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-0.11.2.tgz",
- "integrity": "sha512-N+uhF3mswIFeziHQjGScJ/yHXYt3DiLBeC+9vWW+WjUBiClMSOlV1YrXQi+7KM2aA3Rn4Bybgv+uXFQbfkzpvg==",
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.6.tgz",
+ "integrity": "sha512-873ztuL+/hfvXbLDJ262PGO6XjERnybJu2gW1/5j8HUfxSiFJI9Hj/DhZ50ZGRUxBvuNiazb/cM2rh9pqrxP6Q==",
"dev": true,
"requires": {
- "loader-utils": "1.1.0"
+ "loader-utils": "1.1.0",
+ "schema-utils": "0.3.0"
}
},
"file-type": {
@@ -4514,9 +5583,9 @@
"integrity": "sha1-gquFC5lEsSJY82F/5RbUfUileVw="
},
"filesize": {
- "version": "3.5.11",
- "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.5.11.tgz",
- "integrity": "sha512-ZH7loueKBoDb7yG9esn1U+fgq7BzlzW6NRi5/rMdxIZ05dj7GFD/Xc5rq2CDt5Yq86CyfSYVyx4242QQNZbx1g=="
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.0.tgz",
+ "integrity": "sha512-g5OWtoZWcPI56js1DFhIEqyG9tnu/7sG3foHwgS9KGYFMfsYguI3E+PRVCmtmE96VajQIEMRU2OhN+ME589Gdw=="
},
"fill-range": {
"version": "2.2.3",
@@ -4529,6 +5598,17 @@
"randomatic": "1.1.7",
"repeat-element": "1.1.2",
"repeat-string": "1.6.1"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+ "dev": true,
+ "requires": {
+ "isarray": "1.0.0"
+ }
+ }
}
},
"finalhandler": {
@@ -4546,6 +5626,16 @@
"unpipe": "1.0.0"
}
},
+ "find-babel-config": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/find-babel-config/-/find-babel-config-1.1.0.tgz",
+ "integrity": "sha1-rMAQQ6Z0n+w0Qpvmtk9ULrtdY1U=",
+ "dev": true,
+ "requires": {
+ "json5": "0.5.1",
+ "path-exists": "3.0.0"
+ }
+ },
"find-cache-dir": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz",
@@ -4726,6 +5816,12 @@
"klaw": "1.3.1"
}
},
+ "fs-readdir-recursive": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz",
+ "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==",
+ "dev": true
+ },
"fs-write-stream-atomic": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz",
@@ -4762,6 +5858,12 @@
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
"dev": true
},
+ "functional-red-black-tree": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
+ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
+ "dev": true
+ },
"gauge": {
"version": "2.7.4",
"resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
@@ -4778,11 +5880,31 @@
"wide-align": "1.1.2"
},
"dependencies": {
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
"object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
"dev": true
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ }
}
}
},
@@ -4810,6 +5932,35 @@
"is-property": "1.0.2"
}
},
+ "generic-names": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/generic-names/-/generic-names-1.0.3.tgz",
+ "integrity": "sha1-LXhqEhruUIh2eWk56OO/+DbCCRc=",
+ "dev": true,
+ "requires": {
+ "loader-utils": "0.2.17"
+ },
+ "dependencies": {
+ "loader-utils": {
+ "version": "0.2.17",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz",
+ "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=",
+ "dev": true,
+ "requires": {
+ "big.js": "3.2.0",
+ "emojis-list": "2.1.0",
+ "json5": "0.5.1",
+ "object-assign": "4.1.1"
+ }
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ }
+ }
+ },
"get-caller-file": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz",
@@ -4886,6 +6037,12 @@
"is-glob": "2.0.1"
}
},
+ "glob-to-regexp": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz",
+ "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=",
+ "dev": true
+ },
"global": {
"version": "4.3.2",
"resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz",
@@ -4899,7 +6056,8 @@
"globals": {
"version": "9.18.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
- "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ=="
+ "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==",
+ "dev": true
},
"globby": {
"version": "5.0.0",
@@ -4943,6 +6101,12 @@
}
}
},
+ "globjoin": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz",
+ "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=",
+ "dev": true
+ },
"globule": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/globule/-/globule-1.2.0.tgz",
@@ -4950,7 +6114,7 @@
"dev": true,
"requires": {
"glob": "7.1.2",
- "lodash": "4.17.4",
+ "lodash": "4.17.5",
"minimatch": "3.0.4"
},
"dependencies": {
@@ -4970,6 +6134,23 @@
}
}
},
+ "gonzales-pe": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.2.3.tgz",
+ "integrity": "sha512-Kjhohco0esHQnOiqqdJeNz/5fyPkOMD/d6XVjwTAoPGUFh0mCollPUTUTa2OZy4dYNAqlPIQdTiNzJTWdd9Htw==",
+ "dev": true,
+ "requires": {
+ "minimist": "1.1.3"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.1.3.tgz",
+ "integrity": "sha1-O+39kaktOQFvz6ocaB6Pqhoe/ag=",
+ "dev": true
+ }
+ }
+ },
"graceful-fs": {
"version": "4.1.11",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
@@ -5045,14 +6226,15 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
"integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "dev": true,
"requires": {
"ansi-regex": "2.1.1"
}
},
"has-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
- "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
+ "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
"dev": true
},
"has-unicode": {
@@ -5070,14 +6252,6 @@
"get-value": "2.0.6",
"has-values": "1.0.0",
"isobject": "3.0.1"
- },
- "dependencies": {
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
- }
}
},
"has-values": {
@@ -5273,6 +6447,12 @@
"uglify-js": "2.6.4"
}
},
+ "html-tags": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-2.0.0.tgz",
+ "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=",
+ "dev": true
+ },
"html-webpack-plugin": {
"version": "2.30.1",
"resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-2.30.1.tgz",
@@ -5282,7 +6462,7 @@
"bluebird": "3.5.1",
"html-minifier": "3.5.8",
"loader-utils": "0.2.17",
- "lodash": "4.17.4",
+ "lodash": "4.17.5",
"pretty-error": "2.1.1",
"toposort": "1.0.6"
},
@@ -5331,7 +6511,7 @@
"ncname": "1.0.0",
"param-case": "2.1.1",
"relateurl": "0.2.7",
- "uglify-js": "3.3.8"
+ "uglify-js": "3.3.9"
}
},
"loader-utils": {
@@ -5368,9 +6548,9 @@
"dev": true
},
"uglify-js": {
- "version": "3.3.8",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.3.8.tgz",
- "integrity": "sha512-X0jAGtpSZRtd4RhbVNuGHyjZNa/h2MrVkKrR3Ew5iL2MJw6d7FmBke+fhVCALWySv1ygHnjjROG1KI1FAPvddw==",
+ "version": "3.3.9",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.3.9.tgz",
+ "integrity": "sha512-J2t8B5tj9JdPTW4+sNZXmiIWHzTvcoITkaqzTiilu/biZF/9crqf/Fi7k5hqbOmVRh9/hVNxAxBYIMF7N6SqMQ==",
"dev": true,
"requires": {
"commander": "2.13.0",
@@ -5479,9 +6659,9 @@
}
},
"http-parser-js": {
- "version": "0.4.9",
- "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.9.tgz",
- "integrity": "sha1-6hoE+2St/wJC6ZdPKX3Uw8rSceE=",
+ "version": "0.4.10",
+ "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz",
+ "integrity": "sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=",
"dev": true
},
"http-proxy": {
@@ -5510,7 +6690,7 @@
"requires": {
"http-proxy": "1.16.2",
"is-glob": "3.1.0",
- "lodash": "4.17.4",
+ "lodash": "4.17.5",
"micromatch": "2.3.11"
},
"dependencies": {
@@ -5565,77 +6745,12 @@
"dev": true
},
"icss-utils": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz",
- "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-3.0.1.tgz",
+ "integrity": "sha1-7nDTroysOMa+XtkehRsn7tNDrQ8=",
"dev": true,
"requires": {
- "postcss": "6.0.16"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
- "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
- "dev": true,
- "requires": {
- "color-convert": "1.9.1"
- }
- },
- "chalk": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz",
- "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==",
- "dev": true,
- "requires": {
- "ansi-styles": "3.2.0",
- "escape-string-regexp": "1.0.5",
- "supports-color": "4.5.0"
- },
- "dependencies": {
- "supports-color": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
- "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
- "dev": true,
- "requires": {
- "has-flag": "2.0.0"
- }
- }
- }
- },
- "has-flag": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
- "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
- "dev": true
- },
- "postcss": {
- "version": "6.0.16",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.16.tgz",
- "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==",
- "dev": true,
- "requires": {
- "chalk": "2.3.0",
- "source-map": "0.6.1",
- "supports-color": "5.1.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true
- },
- "supports-color": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz",
- "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==",
- "dev": true,
- "requires": {
- "has-flag": "2.0.0"
- }
- }
+ "postcss": "6.0.17"
}
},
"ieee754": {
@@ -5731,24 +6846,42 @@
"integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE="
},
"inquirer": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz",
- "integrity": "sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz",
+ "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==",
"dev": true,
"requires": {
- "ansi-escapes": "1.4.0",
- "ansi-regex": "2.1.1",
- "chalk": "1.1.3",
- "cli-cursor": "1.0.2",
+ "ansi-escapes": "3.0.0",
+ "chalk": "2.3.0",
+ "cli-cursor": "2.1.0",
"cli-width": "2.2.0",
- "figures": "1.7.0",
- "lodash": "4.17.4",
- "readline2": "1.0.1",
- "run-async": "0.1.0",
- "rx-lite": "3.1.2",
- "string-width": "1.0.2",
- "strip-ansi": "3.0.1",
+ "external-editor": "2.1.0",
+ "figures": "2.0.0",
+ "lodash": "4.17.5",
+ "mute-stream": "0.0.7",
+ "run-async": "2.3.0",
+ "rx-lite": "4.0.8",
+ "rx-lite-aggregates": "4.0.8",
+ "string-width": "2.1.1",
+ "strip-ansi": "4.0.0",
"through": "2.3.8"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "3.0.0"
+ }
+ }
}
},
"internal-ip": {
@@ -5821,6 +6954,28 @@
}
}
},
+ "is-alphabetical": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.1.tgz",
+ "integrity": "sha1-x3B5zJHU76x3W+EDS/LSQ/lebwg=",
+ "dev": true
+ },
+ "is-alphanumeric": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz",
+ "integrity": "sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ=",
+ "dev": true
+ },
+ "is-alphanumerical": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.1.tgz",
+ "integrity": "sha1-37SqTRCF4zvbYcLe6cgOnGwZ9Ts=",
+ "dev": true,
+ "requires": {
+ "is-alphabetical": "1.0.1",
+ "is-decimal": "1.0.1"
+ }
+ },
"is-arrayish": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
@@ -5879,6 +7034,12 @@
"integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
"dev": true
},
+ "is-decimal": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.1.tgz",
+ "integrity": "sha1-9ftqlJlq2ejjdh+/vQkfH8qMToI=",
+ "dev": true
+ },
"is-descriptor": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
@@ -5898,6 +7059,12 @@
}
}
},
+ "is-directory": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
+ "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=",
+ "dev": true
+ },
"is-dotfile": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
@@ -5935,13 +7102,10 @@
}
},
"is-fullwidth-code-point": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
- "dev": true,
- "requires": {
- "number-is-nan": "1.0.1"
- }
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
},
"is-function": {
"version": "1.0.1",
@@ -5958,6 +7122,12 @@
"is-extglob": "1.0.0"
}
},
+ "is-hexadecimal": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.1.tgz",
+ "integrity": "sha1-bghLvJIGH7sJcexYts5tQE4k2mk=",
+ "dev": true
+ },
"is-lower-case": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz",
@@ -5987,6 +7157,12 @@
"kind-of": "3.2.2"
}
},
+ "is-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
+ "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
+ "dev": true
+ },
"is-odd": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-odd/-/is-odd-1.0.0.tgz",
@@ -6044,14 +7220,6 @@
"dev": true,
"requires": {
"isobject": "3.0.1"
- },
- "dependencies": {
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
- }
}
},
"is-posix-bracket": {
@@ -6086,6 +7254,12 @@
"has": "1.0.1"
}
},
+ "is-regexp": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz",
+ "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=",
+ "dev": true
+ },
"is-resolvable": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz",
@@ -6102,6 +7276,12 @@
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
"integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
},
+ "is-supported-regexp-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.0.tgz",
+ "integrity": "sha1-i1IMhfrnolM4LUsCZS4EVXbhO7g=",
+ "dev": true
+ },
"is-svg": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz",
@@ -6137,6 +7317,18 @@
"integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
"dev": true
},
+ "is-whitespace-character": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.1.tgz",
+ "integrity": "sha1-muAXbzKCtlRXoZks2whPil+DPjs=",
+ "dev": true
+ },
+ "is-word-character": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.1.tgz",
+ "integrity": "sha1-WgP6HqkazopusMfNdw64bWXIvvs=",
+ "dev": true
+ },
"is-wsl": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
@@ -6155,13 +7347,9 @@
"dev": true
},
"isobject": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
- "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
- "dev": true,
- "requires": {
- "isarray": "1.0.0"
- }
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
},
"isomorphic-fetch": {
"version": "2.2.1",
@@ -6233,9 +7421,9 @@
"dev": true
},
"js-base64": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.1.tgz",
- "integrity": "sha512-2h586r2I/CqU7z1aa1kBgWaVAXWAZK+zHnceGi/jFgn7+7VSluxYer/i3xOZVearCxxXvyDkLtTBo+OeJCA3kA==",
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.3.tgz",
+ "integrity": "sha512-H7ErYLM34CvDMto3GbD6xD0JLUGYXR3QTcH6B/tr4Hi/QpSThnCsIp+Sy5FRTw3B0d6py4HcNkW7nO/wdtGWEw==",
"dev": true
},
"js-cookie": {
@@ -6252,15 +7440,26 @@
"version": "3.7.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz",
"integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=",
+ "dev": true,
"requires": {
"argparse": "1.0.9",
"esprima": "2.7.3"
},
"dependencies": {
+ "argparse": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
+ "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "1.0.3"
+ }
+ },
"esprima": {
"version": "2.7.3",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
- "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE="
+ "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
+ "dev": true
}
}
},
@@ -6276,7 +7475,6 @@
"resolved": "https://registry.npmjs.org/jsdom/-/jsdom-7.2.2.tgz",
"integrity": "sha1-QLQCdwwr2iNGkJa+6Rq2deOx/G4=",
"dev": true,
- "optional": true,
"requires": {
"abab": "1.0.4",
"acorn": "2.7.0",
@@ -6299,15 +7497,14 @@
"version": "2.7.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz",
"integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc=",
- "dev": true,
- "optional": true
+ "dev": true
}
}
},
"jsesc": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
- "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",
+ "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=",
"dev": true
},
"json-loader": {
@@ -6316,6 +7513,12 @@
"integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==",
"dev": true
},
+ "json-parse-better-errors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.1.tgz",
+ "integrity": "sha512-xyQpxeWWMKyJps9CuGJYeng6ssI5bpqS9ltQpdVQ90t4ql6NdnxFKh95JcRt2cun/DjMVNrdjniLPuMA69xmCw==",
+ "dev": true
+ },
"json-schema": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
@@ -6337,6 +7540,12 @@
"jsonify": "0.0.0"
}
},
+ "json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
+ "dev": true
+ },
"json-stringify-safe": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
@@ -6405,6 +7614,12 @@
"source-map": "0.4.4"
}
},
+ "jsx-ast-utils": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz",
+ "integrity": "sha1-OGchPo3Xm/Ho8jAMDPwe+xgsDfE=",
+ "dev": true
+ },
"jwt-decode": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-1.5.1.tgz",
@@ -6442,6 +7657,22 @@
"graceful-fs": "4.1.11"
}
},
+ "known-css-properties": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.5.0.tgz",
+ "integrity": "sha512-LOS0CoS8zcZnB1EjLw4LLqDXw8nvt3AGH5dXLQP3D9O1nLLA+9GC5GnPl5mmF+JiQAtSX4VyZC7KvEtcA4kUtA==",
+ "dev": true
+ },
+ "last-call-webpack-plugin": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-2.1.2.tgz",
+ "integrity": "sha512-CZc+m2xZm51J8qSwdODeiiNeqh8CYkKEq6Rw8IkE4i/4yqf2cJhjQPsA6BtAV970ePRNhwEOXhy2U5xc5Jwh9Q==",
+ "dev": true,
+ "requires": {
+ "lodash": "4.17.5",
+ "webpack-sources": "1.1.0"
+ }
+ },
"lazy-cache": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
@@ -6471,7 +7702,7 @@
"resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.0.3.tgz",
"integrity": "sha1-2UpGSPmxwXnWT6lykSaL22zpQ08=",
"requires": {
- "uc.micro": "1.0.3"
+ "uc.micro": "1.0.5"
}
},
"load-bmfont": {
@@ -6490,16 +7721,15 @@
}
},
"load-json-file": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
- "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
+ "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
"dev": true,
"requires": {
"graceful-fs": "4.1.11",
"parse-json": "2.2.0",
"pify": "2.3.0",
- "pinkie-promise": "2.0.1",
- "strip-bom": "2.0.0"
+ "strip-bom": "3.0.0"
},
"dependencies": {
"pify": {
@@ -6537,14 +7767,20 @@
}
},
"lodash": {
- "version": "4.17.4",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
- "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4="
+ "version": "4.17.5",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz",
+ "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw=="
},
"lodash-es": {
- "version": "4.17.4",
- "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.4.tgz",
- "integrity": "sha1-3MHXVS4VCgZABzupyzHXDwMpUOc="
+ "version": "4.17.5",
+ "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.5.tgz",
+ "integrity": "sha512-Ez3ONp3TK9gX1HYKp6IhetcVybD+2F+Yp6GS9dfH8ue6EOCEzQtQEh4K0FYWBP9qLv+lzeQAYXw+3ySfxyZqkw=="
+ },
+ "lodash._arrayeach": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._arrayeach/-/lodash._arrayeach-3.0.0.tgz",
+ "integrity": "sha1-urFWsqkNPxu9XGU0AzSeXlkz754=",
+ "dev": true
},
"lodash._baseassign": {
"version": "3.2.0",
@@ -6562,6 +7798,15 @@
"integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=",
"dev": true
},
+ "lodash._baseeach": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/lodash._baseeach/-/lodash._baseeach-3.0.4.tgz",
+ "integrity": "sha1-z4cGVyyhROjZ11InyZDamC+TKvM=",
+ "dev": true,
+ "requires": {
+ "lodash.keys": "3.1.2"
+ }
+ },
"lodash._bindcallback": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz",
@@ -6607,6 +7852,12 @@
"integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=",
"dev": true
},
+ "lodash.cond": {
+ "version": "4.5.2",
+ "resolved": "https://registry.npmjs.org/lodash.cond/-/lodash.cond-4.5.2.tgz",
+ "integrity": "sha1-9HGh2khr5g9quVXRcRVSPdHSVdU=",
+ "dev": true
+ },
"lodash.defaults": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz",
@@ -6618,6 +7869,18 @@
"resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz",
"integrity": "sha1-ZHYsSGGAglGKw99Mz11YhtriA0c="
},
+ "lodash.foreach": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-3.0.3.tgz",
+ "integrity": "sha1-b9fvt5aRrs1n/erCdhyY5wHWw5o=",
+ "dev": true,
+ "requires": {
+ "lodash._arrayeach": "3.0.0",
+ "lodash._baseeach": "3.0.4",
+ "lodash._bindcallback": "3.0.1",
+ "lodash.isarray": "3.0.4"
+ }
+ },
"lodash.isarguments": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
@@ -6631,7 +7894,8 @@
"lodash.isplainobject": {
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
- "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs="
+ "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=",
+ "dev": true
},
"lodash.keys": {
"version": "3.1.2",
@@ -6650,9 +7914,9 @@
"dev": true
},
"lodash.mergewith": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz",
- "integrity": "sha1-FQzwoWeR9ZA7iJHqsVRgknS96lU=",
+ "version": "4.6.1",
+ "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz",
+ "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==",
"dev": true
},
"lodash.restparam": {
@@ -6673,6 +7937,15 @@
"integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=",
"dev": true
},
+ "log-symbols": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
+ "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
+ "dev": true,
+ "requires": {
+ "chalk": "2.3.0"
+ }
+ },
"loglevel": {
"version": "1.6.1",
"resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.1.tgz",
@@ -6689,6 +7962,12 @@
"resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
"integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc="
},
+ "longest-streak": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.2.tgz",
+ "integrity": "sha512-TmYTeEYxiAmSVdpbnQDXGtvYOIRsCMg89CVZzwzc2o7GFL1CjoiRPjH5ec0NFAVlAx3fVof9dX/t6KKRAo2OWA==",
+ "dev": true
+ },
"loose-envify": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz",
@@ -6766,6 +8045,18 @@
"object-visit": "1.0.1"
}
},
+ "markdown-escapes": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.1.tgz",
+ "integrity": "sha1-GZTfLTr0gR3lmmcUk0wrIpJzRRg=",
+ "dev": true
+ },
+ "markdown-table": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.1.tgz",
+ "integrity": "sha1-Sz3ToTPRUYuO8NvHCb8qG0gkvIw=",
+ "dev": true
+ },
"material-colors": {
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/material-colors/-/material-colors-1.2.5.tgz",
@@ -6777,6 +8068,12 @@
"integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=",
"dev": true
},
+ "mathml-tag-names": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.0.1.tgz",
+ "integrity": "sha1-jUEmgWi/htEQK5gQnijlMeejRXg=",
+ "dev": true
+ },
"md5": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz",
@@ -6809,6 +8106,16 @@
}
}
},
+ "mdast-util-compact": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-1.0.1.tgz",
+ "integrity": "sha1-zbX4TitqLTEU3zO9BdnLMuPECDo=",
+ "dev": true,
+ "requires": {
+ "unist-util-modify-children": "1.1.1",
+ "unist-util-visit": "1.3.0"
+ }
+ },
"media-typer": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
@@ -6821,7 +8128,7 @@
"integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=",
"dev": true,
"requires": {
- "mimic-fn": "1.1.0"
+ "mimic-fn": "1.2.0"
}
},
"memory-fs": {
@@ -6852,6 +8159,29 @@
"trim-newlines": "1.0.0"
},
"dependencies": {
+ "find-up": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+ "dev": true,
+ "requires": {
+ "path-exists": "2.1.0",
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "load-json-file": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "parse-json": "2.2.0",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1",
+ "strip-bom": "2.0.0"
+ }
+ },
"minimist": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
@@ -6863,6 +8193,62 @@
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
"dev": true
+ },
+ "path-exists": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+ "dev": true,
+ "requires": {
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "path-type": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ },
+ "read-pkg": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "1.1.0",
+ "normalize-package-data": "2.4.0",
+ "path-type": "1.1.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+ "dev": true,
+ "requires": {
+ "find-up": "1.1.2",
+ "read-pkg": "1.1.0"
+ }
+ },
+ "strip-bom": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+ "dev": true,
+ "requires": {
+ "is-utf8": "0.2.1"
+ }
}
}
},
@@ -6948,9 +8334,9 @@
}
},
"mimic-fn": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz",
- "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+ "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
"dev": true
},
"min-document": {
@@ -6987,10 +8373,20 @@
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
},
- "mississippi": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-1.3.0.tgz",
- "integrity": "sha1-0gFYPrEjJ+PFwWQqQEqcrPlONPU=",
+ "minimist-options": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz",
+ "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==",
+ "dev": true,
+ "requires": {
+ "arrify": "1.0.1",
+ "is-plain-obj": "1.1.0"
+ }
+ },
+ "mississippi": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-1.3.1.tgz",
+ "integrity": "sha512-/6rB8YXFbAtsUVRphIRQqB0+9c7VaPHCjVtvto+JqwVxgz8Zz+I+f68/JgQ+Pb4VlZb2svA9OtdXnHHsZz7ltg==",
"dev": true,
"requires": {
"concat-stream": "1.5.2",
@@ -7162,13 +8558,13 @@
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
"multicast-dns": {
- "version": "6.2.2",
- "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.2.tgz",
- "integrity": "sha512-xTO41ApiRHMVDBYhNL9bEhx7kRf1hq3OqPOnOy8bpTi0JZSxVPDre7ZRpTHLDlxmhf6d/FL+10E8VX1QRd+0DA==",
+ "version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz",
+ "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==",
"dev": true,
"requires": {
"dns-packet": "1.3.1",
- "thunky": "0.1.0"
+ "thunky": "1.0.2"
}
},
"multicast-dns-service-types": {
@@ -7178,9 +8574,9 @@
"dev": true
},
"mute-stream": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz",
- "integrity": "sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA=",
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
+ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
"dev": true
},
"nan": {
@@ -7228,6 +8624,12 @@
}
}
},
+ "natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
+ "dev": true
+ },
"ncname": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/ncname/-/ncname-1.0.0.tgz",
@@ -7293,9 +8695,9 @@
}
},
"node-forge": {
- "version": "0.6.33",
- "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.6.33.tgz",
- "integrity": "sha1-RjgRh59XPUUVWtap9D3ClujoXrw=",
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.1.tgz",
+ "integrity": "sha1-naYR6giYL0uUIGs760zJZl8gwwA=",
"dev": true
},
"node-gyp": {
@@ -7353,7 +8755,7 @@
"console-browserify": "1.1.0",
"constants-browserify": "1.0.0",
"crypto-browserify": "3.3.0",
- "domain-browser": "1.1.7",
+ "domain-browser": "1.2.0",
"events": "1.1.1",
"https-browserify": "0.0.1",
"os-browserify": "0.2.1",
@@ -7365,7 +8767,7 @@
"stream-browserify": "2.0.1",
"stream-http": "2.8.0",
"string_decoder": "0.10.31",
- "timers-browserify": "2.0.4",
+ "timers-browserify": "2.0.6",
"tty-browserify": "0.0.0",
"url": "0.11.0",
"util": "0.10.3",
@@ -7431,7 +8833,7 @@
"in-publish": "2.0.0",
"lodash.assign": "4.2.0",
"lodash.clonedeep": "4.5.0",
- "lodash.mergewith": "4.6.0",
+ "lodash.mergewith": "4.6.1",
"meow": "3.7.0",
"mkdirp": "0.5.1",
"nan": "2.8.0",
@@ -7443,6 +8845,12 @@
"true-case-path": "1.0.2"
},
"dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
"assert-plus": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
@@ -7470,6 +8878,19 @@
"integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=",
"dev": true
},
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ }
+ },
"cryptiles": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
@@ -7588,6 +9009,12 @@
"hoek": "2.16.3"
}
},
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ },
"tunnel-agent": {
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz",
@@ -7596,6 +9023,12 @@
}
}
},
+ "nodelist-foreach-polyfill": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/nodelist-foreach-polyfill/-/nodelist-foreach-polyfill-1.2.0.tgz",
+ "integrity": "sha512-hPW0tSoi1gJ3diSOyjFYOsYLZjnxF04psobzKA5GGGCz3fKHnLODwgdyXQq2cddYlvmT3q+ZNEBrfBdMkYPLaA==",
+ "dev": true
+ },
"nopt": {
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
@@ -7632,6 +9065,12 @@
"integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=",
"dev": true
},
+ "normalize-selector": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/normalize-selector/-/normalize-selector-0.2.0.tgz",
+ "integrity": "sha1-0LFF62kRicY6eNIB3E/bEpPvDAM=",
+ "dev": true
+ },
"normalize-url": {
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz",
@@ -7713,8 +9152,7 @@
"version": "1.4.3",
"resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.3.tgz",
"integrity": "sha512-IKdSTiDWCarf2JTS5e9e2+5tPZGdkRJ79XjYV0pzK8Q9BpsFyBq1RGKxzs7Q8UBushGw7m6TzVKz6fcY99iSWw==",
- "dev": true,
- "optional": true
+ "dev": true
},
"oauth-sign": {
"version": "0.8.2",
@@ -7805,14 +9243,6 @@
"dev": true,
"requires": {
"isobject": "3.0.1"
- },
- "dependencies": {
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
- }
}
},
"object.omit": {
@@ -7829,17 +9259,8 @@
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
"integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
- "dev": true,
"requires": {
"isobject": "3.0.1"
- },
- "dependencies": {
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
- }
}
},
"obuf": {
@@ -7872,10 +9293,13 @@
}
},
"onetime": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
- "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
- "dev": true
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "1.2.0"
+ }
},
"opn": {
"version": "5.2.0",
@@ -7895,6 +9319,16 @@
"wordwrap": "0.0.2"
}
},
+ "optimize-css-assets-webpack-plugin": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-3.2.0.tgz",
+ "integrity": "sha512-Fjn7wyyadPAriuH2DHamDQw5B8GohEWbroBkKoPeP+vSF2PIAPI7WDihi8WieMRb/At4q7Ea7zTKaMDuSoIAAg==",
+ "dev": true,
+ "requires": {
+ "cssnano": "3.10.0",
+ "last-call-webpack-plugin": "2.1.2"
+ }
+ },
"optionator": {
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
@@ -7926,6 +9360,12 @@
"url-parse": "1.0.5"
},
"dependencies": {
+ "querystringify": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-0.0.4.tgz",
+ "integrity": "sha1-DPf4T5Rj/wrlHExLFC2VvjdyTZw=",
+ "dev": true
+ },
"url-parse": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.0.5.tgz",
@@ -7975,6 +9415,25 @@
"os-tmpdir": "1.0.2"
}
},
+ "output-file-sync": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz",
+ "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "mkdirp": "0.5.1",
+ "object-assign": "4.1.1"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ }
+ }
+ },
"p-finally": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
@@ -8119,6 +9578,20 @@
"xml2js": "0.4.17"
}
},
+ "parse-entities": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.1.1.tgz",
+ "integrity": "sha1-gRLYhHExnyerrk1klksSL+ThuJA=",
+ "dev": true,
+ "requires": {
+ "character-entities": "1.2.1",
+ "character-entities-legacy": "1.1.1",
+ "character-reference-invalid": "1.1.1",
+ "is-alphanumerical": "1.0.1",
+ "is-decimal": "1.0.1",
+ "is-hexadecimal": "1.0.1"
+ }
+ },
"parse-glob": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
@@ -8163,8 +9636,7 @@
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz",
"integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=",
- "dev": true,
- "optional": true
+ "dev": true
},
"parseurl": {
"version": "1.3.2",
@@ -8230,6 +9702,12 @@
"integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
"dev": true
},
+ "path-parse": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz",
+ "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=",
+ "dev": true
+ },
"path-to-regexp": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz",
@@ -8246,14 +9724,12 @@
}
},
"path-type": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
- "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
+ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
"dev": true,
"requires": {
- "graceful-fs": "4.1.11",
- "pify": "2.3.0",
- "pinkie-promise": "2.0.1"
+ "pify": "2.3.0"
},
"dependencies": {
"pify": {
@@ -8322,7 +9798,7 @@
"integrity": "sha1-79ISpKOWbTZHaE6ouniFSb4q7+8=",
"dev": true,
"requires": {
- "es6-promise": "4.2.2",
+ "es6-promise": "4.2.4",
"extract-zip": "1.6.6",
"fs-extra": "1.0.0",
"hasha": "2.2.0",
@@ -8334,9 +9810,15 @@
},
"dependencies": {
"es6-promise": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.2.tgz",
- "integrity": "sha512-LSas5vsuA6Q4nEdf9wokY5/AJYXry98i0IzXsv49rYsgDGDNDPbqAYR1Pe23iFxygfbGZNR/5VrHXBCh2BhvUQ==",
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz",
+ "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==",
+ "dev": true
+ },
+ "progress": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz",
+ "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=",
"dev": true
}
}
@@ -8380,10 +9862,19 @@
"find-up": "2.1.0"
}
},
+ "pkg-up": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz",
+ "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=",
+ "dev": true,
+ "requires": {
+ "find-up": "2.1.0"
+ }
+ },
"pluralize": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz",
- "integrity": "sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU=",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz",
+ "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
"pn": {
@@ -8398,6 +9889,11 @@
"integrity": "sha512-ggXCTsqHRIsGMkHlCEhbHhUmNTA2r1lpkE0NL4Q9S8spkXbm4vE9TVmPso2AGYn90Gltdz8W5CyzhcIGg2Gejg==",
"dev": true
},
+ "popper.js": {
+ "version": "1.12.9",
+ "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.12.9.tgz",
+ "integrity": "sha1-DfvC3/lsRRuzMu3Pz6r1ZtMx1bM="
+ },
"portfinder": {
"version": "1.0.13",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.13.tgz",
@@ -8424,17 +9920,80 @@
"dev": true
},
"postcss": {
- "version": "5.2.18",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
- "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "version": "6.0.17",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.17.tgz",
+ "integrity": "sha512-Bl1nybsSzWYbP8O4gAVD8JIjZIul9hLNOPTGBIlVmZNUnNAGL+W0cpYWzVwfImZOwumct4c1SDvSbncVWKtXUw==",
"dev": true,
"requires": {
- "chalk": "1.1.3",
- "js-base64": "2.4.1",
- "source-map": "0.5.7",
- "supports-color": "3.2.3"
+ "chalk": "2.3.0",
+ "source-map": "0.6.1",
+ "supports-color": "5.1.0"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "postcss-calc": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz",
+ "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.18",
+ "postcss-message-helpers": "2.0.0",
+ "reduce-css-calc": "1.3.0"
},
"dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.3",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
"source-map": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
@@ -8452,17 +10011,6 @@
}
}
},
- "postcss-calc": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz",
- "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=",
- "dev": true,
- "requires": {
- "postcss": "5.2.18",
- "postcss-message-helpers": "2.0.0",
- "reduce-css-calc": "1.3.0"
- }
- },
"postcss-colormin": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz",
@@ -8472,6 +10020,68 @@
"colormin": "1.1.2",
"postcss": "5.2.18",
"postcss-value-parser": "3.3.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.3",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-convert-values": {
@@ -8482,518 +10092,1782 @@
"requires": {
"postcss": "5.2.18",
"postcss-value-parser": "3.3.0"
- }
- },
- "postcss-discard-comments": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz",
- "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=",
- "dev": true,
- "requires": {
- "postcss": "5.2.18"
- }
- },
- "postcss-discard-duplicates": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz",
- "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=",
- "dev": true,
- "requires": {
- "postcss": "5.2.18"
- }
- },
- "postcss-discard-empty": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz",
- "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=",
- "dev": true,
- "requires": {
- "postcss": "5.2.18"
- }
- },
- "postcss-discard-overridden": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz",
- "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=",
- "dev": true,
- "requires": {
- "postcss": "5.2.18"
- }
- },
- "postcss-discard-unused": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz",
- "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=",
- "dev": true,
- "requires": {
- "postcss": "5.2.18",
- "uniqs": "2.0.0"
- }
- },
- "postcss-filter-plugins": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz",
- "integrity": "sha1-bYWGJTTXNaxCDkqFgG4fXUKG2Ew=",
- "dev": true,
- "requires": {
- "postcss": "5.2.18",
- "uniqid": "4.1.1"
- }
- },
- "postcss-merge-idents": {
- "version": "2.1.7",
- "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz",
- "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=",
- "dev": true,
- "requires": {
- "has": "1.0.1",
- "postcss": "5.2.18",
- "postcss-value-parser": "3.3.0"
- }
- },
- "postcss-merge-longhand": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz",
- "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=",
- "dev": true,
- "requires": {
- "postcss": "5.2.18"
- }
- },
- "postcss-merge-rules": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz",
- "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=",
- "dev": true,
- "requires": {
- "browserslist": "1.7.7",
- "caniuse-api": "1.6.1",
- "postcss": "5.2.18",
- "postcss-selector-parser": "2.2.3",
- "vendors": "1.0.1"
- },
- "dependencies": {
- "browserslist": {
- "version": "1.7.7",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz",
- "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=",
- "dev": true,
- "requires": {
- "caniuse-db": "1.0.30000793",
- "electron-to-chromium": "1.3.31"
- }
- }
- }
- },
- "postcss-message-helpers": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz",
- "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=",
- "dev": true
- },
- "postcss-minify-font-values": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz",
- "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=",
- "dev": true,
- "requires": {
- "object-assign": "4.1.1",
- "postcss": "5.2.18",
- "postcss-value-parser": "3.3.0"
- },
- "dependencies": {
- "object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
- "dev": true
- }
- }
- },
- "postcss-minify-gradients": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz",
- "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=",
- "dev": true,
- "requires": {
- "postcss": "5.2.18",
- "postcss-value-parser": "3.3.0"
- }
- },
- "postcss-minify-params": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz",
- "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=",
- "dev": true,
- "requires": {
- "alphanum-sort": "1.0.2",
- "postcss": "5.2.18",
- "postcss-value-parser": "3.3.0",
- "uniqs": "2.0.0"
- }
- },
- "postcss-minify-selectors": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz",
- "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=",
- "dev": true,
- "requires": {
- "alphanum-sort": "1.0.2",
- "has": "1.0.1",
- "postcss": "5.2.18",
- "postcss-selector-parser": "2.2.3"
- }
- },
- "postcss-modules-extract-imports": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz",
- "integrity": "sha1-ZhQOzs447wa/DT41XWm/WdFB6oU=",
- "dev": true,
- "requires": {
- "postcss": "6.0.16"
},
"dependencies": {
"ansi-styles": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
- "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
- "dev": true,
- "requires": {
- "color-convert": "1.9.1"
- }
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
},
"chalk": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz",
- "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
"dev": true,
"requires": {
- "ansi-styles": "3.2.0",
+ "ansi-styles": "2.2.1",
"escape-string-regexp": "1.0.5",
- "supports-color": "4.5.0"
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
},
"dependencies": {
"supports-color": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
- "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
- "dev": true,
- "requires": {
- "has-flag": "2.0.0"
- }
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
}
}
},
"has-flag": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
- "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
"dev": true
},
"postcss": {
- "version": "6.0.16",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.16.tgz",
- "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==",
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
"dev": true,
"requires": {
- "chalk": "2.3.0",
- "source-map": "0.6.1",
- "supports-color": "5.1.0"
+ "chalk": "1.1.3",
+ "js-base64": "2.4.3",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
}
},
"source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
"dev": true
},
"supports-color": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz",
- "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==",
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
"dev": true,
"requires": {
- "has-flag": "2.0.0"
+ "has-flag": "1.0.0"
}
}
}
},
- "postcss-modules-local-by-default": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz",
- "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=",
+ "postcss-discard-comments": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz",
+ "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=",
"dev": true,
"requires": {
- "css-selector-tokenizer": "0.7.0",
- "postcss": "6.0.16"
+ "postcss": "5.2.18"
},
"dependencies": {
"ansi-styles": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
- "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
- "dev": true,
- "requires": {
- "color-convert": "1.9.1"
- }
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
},
"chalk": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz",
- "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
"dev": true,
"requires": {
- "ansi-styles": "3.2.0",
+ "ansi-styles": "2.2.1",
"escape-string-regexp": "1.0.5",
- "supports-color": "4.5.0"
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
},
"dependencies": {
"supports-color": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
- "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
- "dev": true,
- "requires": {
- "has-flag": "2.0.0"
- }
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
}
}
},
"has-flag": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
- "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
"dev": true
},
"postcss": {
- "version": "6.0.16",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.16.tgz",
- "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==",
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
"dev": true,
"requires": {
- "chalk": "2.3.0",
- "source-map": "0.6.1",
- "supports-color": "5.1.0"
+ "chalk": "1.1.3",
+ "js-base64": "2.4.3",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
}
},
"source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
"dev": true
},
"supports-color": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz",
- "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==",
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
"dev": true,
"requires": {
- "has-flag": "2.0.0"
+ "has-flag": "1.0.0"
}
}
}
},
- "postcss-modules-scope": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz",
- "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=",
+ "postcss-discard-duplicates": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz",
+ "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=",
"dev": true,
"requires": {
- "css-selector-tokenizer": "0.7.0",
- "postcss": "6.0.16"
+ "postcss": "5.2.18"
},
"dependencies": {
"ansi-styles": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
- "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
- "dev": true,
- "requires": {
- "color-convert": "1.9.1"
- }
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
},
"chalk": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz",
- "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
"dev": true,
"requires": {
- "ansi-styles": "3.2.0",
+ "ansi-styles": "2.2.1",
"escape-string-regexp": "1.0.5",
- "supports-color": "4.5.0"
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
},
"dependencies": {
"supports-color": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
- "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
- "dev": true,
- "requires": {
- "has-flag": "2.0.0"
- }
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
}
}
},
"has-flag": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
- "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
"dev": true
},
"postcss": {
- "version": "6.0.16",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.16.tgz",
- "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==",
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
"dev": true,
"requires": {
- "chalk": "2.3.0",
- "source-map": "0.6.1",
- "supports-color": "5.1.0"
+ "chalk": "1.1.3",
+ "js-base64": "2.4.3",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
}
},
"source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
"dev": true
},
"supports-color": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz",
- "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==",
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
"dev": true,
"requires": {
- "has-flag": "2.0.0"
+ "has-flag": "1.0.0"
}
}
}
},
- "postcss-modules-values": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz",
- "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=",
+ "postcss-discard-empty": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz",
+ "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=",
"dev": true,
"requires": {
- "icss-replace-symbols": "1.1.0",
- "postcss": "6.0.16"
+ "postcss": "5.2.18"
},
"dependencies": {
"ansi-styles": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
- "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
- "dev": true,
- "requires": {
- "color-convert": "1.9.1"
- }
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
},
"chalk": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz",
- "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
"dev": true,
"requires": {
- "ansi-styles": "3.2.0",
+ "ansi-styles": "2.2.1",
"escape-string-regexp": "1.0.5",
- "supports-color": "4.5.0"
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
},
"dependencies": {
"supports-color": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
- "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
- "dev": true,
- "requires": {
- "has-flag": "2.0.0"
- }
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
}
}
},
"has-flag": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
- "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
"dev": true
},
"postcss": {
- "version": "6.0.16",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.16.tgz",
- "integrity": "sha512-m758RWPmSjFH/2MyyG3UOW1fgYbR9rtdzz5UNJnlm7OLtu4B2h9C6gi+bE4qFKghsBRFfZT8NzoQBs6JhLotoA==",
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
"dev": true,
"requires": {
- "chalk": "2.3.0",
- "source-map": "0.6.1",
- "supports-color": "5.1.0"
+ "chalk": "1.1.3",
+ "js-base64": "2.4.3",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
}
},
"source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
"dev": true
},
"supports-color": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz",
- "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==",
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
"dev": true,
"requires": {
- "has-flag": "2.0.0"
+ "has-flag": "1.0.0"
}
}
}
},
- "postcss-normalize-charset": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz",
- "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=",
+ "postcss-discard-overridden": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz",
+ "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=",
"dev": true,
"requires": {
"postcss": "5.2.18"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.3",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
- "postcss-normalize-url": {
- "version": "3.0.8",
- "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz",
- "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=",
+ "postcss-discard-unused": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz",
+ "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=",
"dev": true,
"requires": {
- "is-absolute-url": "2.1.0",
- "normalize-url": "1.9.1",
"postcss": "5.2.18",
- "postcss-value-parser": "3.3.0"
+ "uniqs": "2.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.3",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
- "postcss-ordered-values": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz",
- "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=",
+ "postcss-filter-plugins": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz",
+ "integrity": "sha1-bYWGJTTXNaxCDkqFgG4fXUKG2Ew=",
"dev": true,
"requires": {
"postcss": "5.2.18",
- "postcss-value-parser": "3.3.0"
+ "uniqid": "4.1.1"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.3",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
- "postcss-reduce-idents": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz",
- "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=",
+ "postcss-html": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-0.12.0.tgz",
+ "integrity": "sha512-KxKUpj7AY7nlCbLcTOYxdfJnGE7QFAfU2n95ADj1Q90RM/pOLdz8k3n4avOyRFs7MDQHcRzJQWM1dehCwJxisQ==",
"dev": true,
"requires": {
- "postcss": "5.2.18",
- "postcss-value-parser": "3.3.0"
+ "htmlparser2": "3.9.2",
+ "remark": "8.0.0",
+ "unist-util-find-all-after": "1.0.1"
+ },
+ "dependencies": {
+ "htmlparser2": {
+ "version": "3.9.2",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz",
+ "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=",
+ "dev": true,
+ "requires": {
+ "domelementtype": "1.3.0",
+ "domhandler": "2.3.0",
+ "domutils": "1.5.1",
+ "entities": "1.1.1",
+ "inherits": "2.0.1",
+ "readable-stream": "2.0.6"
+ }
+ }
}
},
- "postcss-reduce-initial": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz",
- "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=",
+ "postcss-less": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/postcss-less/-/postcss-less-1.1.3.tgz",
+ "integrity": "sha512-WS0wsQxRm+kmN8wEYAGZ3t4lnoNfoyx9EJZrhiPR1K0lMHR0UNWnz52Ya5QRXChHtY75Ef+kDc05FpnBujebgw==",
"dev": true,
"requires": {
"postcss": "5.2.18"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.3",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
- "postcss-reduce-transforms": {
+ "postcss-load-config": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-1.2.0.tgz",
+ "integrity": "sha1-U56a/J3chiASHr+djDZz4M5Q0oo=",
+ "dev": true,
+ "requires": {
+ "cosmiconfig": "2.2.2",
+ "object-assign": "4.1.1",
+ "postcss-load-options": "1.2.0",
+ "postcss-load-plugins": "2.3.0"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-load-options": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-load-options/-/postcss-load-options-1.2.0.tgz",
+ "integrity": "sha1-sJixVZ3awt8EvAuzdfmaXP4rbYw=",
+ "dev": true,
+ "requires": {
+ "cosmiconfig": "2.2.2",
+ "object-assign": "4.1.1"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-load-plugins": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz",
+ "integrity": "sha1-dFdoEWWZrKLwCfrUJrABdQSdjZI=",
+ "dev": true,
+ "requires": {
+ "cosmiconfig": "2.2.2",
+ "object-assign": "4.1.1"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-loader": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.1.0.tgz",
+ "integrity": "sha512-S/dKzpDwGFmP9g8eyCu9sUIV+/+3UooeTpYlsKf23qKDdrhHuA4pTSfytVu0rEJ0iDqUavXrgtOPq5KhNyNMOw==",
+ "dev": true,
+ "requires": {
+ "loader-utils": "1.1.0",
+ "postcss": "6.0.17",
+ "postcss-load-config": "1.2.0",
+ "schema-utils": "0.4.3"
+ },
+ "dependencies": {
+ "schema-utils": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.3.tgz",
+ "integrity": "sha512-sgv/iF/T4/SewJkaVpldKC4WjSkz0JsOh2eKtxCPpCO1oR05+7MOF+H476HVRbLArkgA7j5TRJJ4p2jdFkUGQQ==",
+ "dev": true,
+ "requires": {
+ "ajv": "5.5.2",
+ "ajv-keywords": "2.1.1"
+ }
+ }
+ }
+ },
+ "postcss-media-query-parser": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz",
+ "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=",
+ "dev": true
+ },
+ "postcss-merge-idents": {
+ "version": "2.1.7",
+ "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz",
+ "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=",
+ "dev": true,
+ "requires": {
+ "has": "1.0.1",
+ "postcss": "5.2.18",
+ "postcss-value-parser": "3.3.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.3",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-merge-longhand": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz",
+ "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.18"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.3",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-merge-rules": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz",
+ "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=",
+ "dev": true,
+ "requires": {
+ "browserslist": "1.7.7",
+ "caniuse-api": "1.6.1",
+ "postcss": "5.2.18",
+ "postcss-selector-parser": "2.2.3",
+ "vendors": "1.0.1"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "browserslist": {
+ "version": "1.7.7",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz",
+ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=",
+ "dev": true,
+ "requires": {
+ "caniuse-db": "1.0.30000802",
+ "electron-to-chromium": "1.3.32"
+ }
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.3",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-message-helpers": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz",
+ "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=",
+ "dev": true
+ },
+ "postcss-minify-font-values": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz",
+ "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=",
+ "dev": true,
+ "requires": {
+ "object-assign": "4.1.1",
+ "postcss": "5.2.18",
+ "postcss-value-parser": "3.3.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.3",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-minify-gradients": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz",
+ "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.18",
+ "postcss-value-parser": "3.3.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.3",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-minify-params": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz",
+ "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=",
+ "dev": true,
+ "requires": {
+ "alphanum-sort": "1.0.2",
+ "postcss": "5.2.18",
+ "postcss-value-parser": "3.3.0",
+ "uniqs": "2.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.3",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-minify-selectors": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz",
+ "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=",
+ "dev": true,
+ "requires": {
+ "alphanum-sort": "1.0.2",
+ "has": "1.0.1",
+ "postcss": "5.2.18",
+ "postcss-selector-parser": "2.2.3"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.3",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-modules": {
+ "version": "0.6.4",
+ "resolved": "https://registry.npmjs.org/postcss-modules/-/postcss-modules-0.6.4.tgz",
+ "integrity": "sha1-d6WLt3uhtDkrJwwLWYUv116JqLQ=",
+ "dev": true,
+ "requires": {
+ "css-modules-loader-core": "1.1.0",
+ "generic-names": "1.0.3",
+ "postcss": "5.2.18",
+ "string-hash": "1.1.3"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.3",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-modules-extract-imports": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz",
+ "integrity": "sha1-thTJcgvmgW6u41+zpfqh26agXds=",
+ "dev": true,
+ "requires": {
+ "postcss": "6.0.17"
+ }
+ },
+ "postcss-modules-local-by-default": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz",
+ "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=",
+ "dev": true,
+ "requires": {
+ "css-selector-tokenizer": "0.7.0",
+ "postcss": "6.0.17"
+ }
+ },
+ "postcss-modules-parser": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-modules-parser/-/postcss-modules-parser-1.1.1.tgz",
+ "integrity": "sha1-lfca15FvDzkge7gcQBM2yNJFc4w=",
+ "dev": true,
+ "requires": {
+ "icss-replace-symbols": "1.1.0",
+ "lodash.foreach": "3.0.3",
+ "postcss": "5.2.18"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.3",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-modules-resolve-imports": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-resolve-imports/-/postcss-modules-resolve-imports-1.3.0.tgz",
+ "integrity": "sha1-OY0wALla6WlCDN9M2D+oBn8cXq4=",
+ "dev": true,
+ "requires": {
+ "css-selector-tokenizer": "0.7.0",
+ "icss-utils": "3.0.1",
+ "minimist": "1.2.0"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ }
+ }
+ },
+ "postcss-modules-scope": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz",
+ "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=",
+ "dev": true,
+ "requires": {
+ "css-selector-tokenizer": "0.7.0",
+ "postcss": "6.0.17"
+ }
+ },
+ "postcss-modules-values": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz",
+ "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=",
+ "dev": true,
+ "requires": {
+ "icss-replace-symbols": "1.1.0",
+ "postcss": "6.0.17"
+ }
+ },
+ "postcss-normalize-charset": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz",
+ "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.18"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.3",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-normalize-url": {
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz",
+ "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=",
+ "dev": true,
+ "requires": {
+ "is-absolute-url": "2.1.0",
+ "normalize-url": "1.9.1",
+ "postcss": "5.2.18",
+ "postcss-value-parser": "3.3.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.3",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-ordered-values": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz",
+ "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.18",
+ "postcss-value-parser": "3.3.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.3",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-reduce-idents": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz",
+ "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.18",
+ "postcss-value-parser": "3.3.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.3",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-reduce-initial": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz",
+ "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=",
+ "dev": true,
+ "requires": {
+ "postcss": "5.2.18"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.3",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-reduce-transforms": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz",
"integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=",
@@ -9002,6 +11876,114 @@
"has": "1.0.1",
"postcss": "5.2.18",
"postcss-value-parser": "3.3.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.3",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-reporter": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-5.0.0.tgz",
+ "integrity": "sha512-rBkDbaHAu5uywbCR2XE8a25tats3xSOsGNx6mppK6Q9kSFGKc/FyAzfci+fWM2l+K402p1D0pNcfDGxeje5IKg==",
+ "dev": true,
+ "requires": {
+ "chalk": "2.3.0",
+ "lodash": "4.17.5",
+ "log-symbols": "2.2.0",
+ "postcss": "6.0.17"
+ }
+ },
+ "postcss-resolve-nested-selector": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz",
+ "integrity": "sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=",
+ "dev": true
+ },
+ "postcss-safe-parser": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-3.0.1.tgz",
+ "integrity": "sha1-t1Pv9sfArqXoN1++TN6L+QY/8UI=",
+ "dev": true,
+ "requires": {
+ "postcss": "6.0.17"
+ }
+ },
+ "postcss-sass": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-sass/-/postcss-sass-0.2.0.tgz",
+ "integrity": "sha512-cUmYzkP747fPCQE6d+CH2l1L4VSyIlAzZsok3HPjb5Gzsq3jE+VjpAdGlPsnQ310WKWI42sw+ar0UNN59/f3hg==",
+ "dev": true,
+ "requires": {
+ "gonzales-pe": "4.2.3",
+ "postcss": "6.0.17"
+ }
+ },
+ "postcss-scss": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-1.0.3.tgz",
+ "integrity": "sha512-N2ZPDOV5PGEGVwdiB7b1QppxKkmkHodNWkemja7PV+/mHqbUlA6ZcYRreden5Ag5nwBBX8/aRE7lfg1xjdszyg==",
+ "dev": true,
+ "requires": {
+ "postcss": "6.0.17"
}
},
"postcss-selector-parser": {
@@ -9025,6 +12007,68 @@
"postcss": "5.2.18",
"postcss-value-parser": "3.3.0",
"svgo": "0.7.2"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.3",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-unique-selectors": {
@@ -9036,6 +12080,68 @@
"alphanum-sort": "1.0.2",
"postcss": "5.2.18",
"uniqs": "2.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.3",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"postcss-value-parser": {
@@ -9053,6 +12159,68 @@
"has": "1.0.1",
"postcss": "5.2.18",
"uniqs": "2.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "2.2.1",
+ "escape-string-regexp": "1.0.5",
+ "has-ansi": "2.0.0",
+ "strip-ansi": "3.0.1",
+ "supports-color": "2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "1.1.3",
+ "js-base64": "2.4.3",
+ "source-map": "0.5.7",
+ "supports-color": "3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "1.0.0"
+ }
+ }
}
},
"prelude-ls": {
@@ -9100,9 +12268,9 @@
"integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M="
},
"progress": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz",
- "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz",
+ "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=",
"dev": true
},
"promise": {
@@ -9262,9 +12430,14 @@
"dev": true
},
"querystringify": {
- "version": "0.0.4",
- "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-0.0.4.tgz",
- "integrity": "sha1-DPf4T5Rj/wrlHExLFC2VvjdyTZw=",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-1.0.0.tgz",
+ "integrity": "sha1-YoYkIRLFtxL6ZU5SZlK/ahP/Bcs="
+ },
+ "quick-lru": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz",
+ "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=",
"dev": true
},
"raf": {
@@ -9419,7 +12592,7 @@
"integrity": "sha512-j8MHq0jES4vXShFbSExyty/WVR238lrZzUfsSaIDeiziBIiUAOP6SR2HBEi2gSGK239Jm3bWIJvwGA85kFMgmQ==",
"requires": {
"babel-runtime": "6.26.0",
- "create-react-class": "15.6.2",
+ "create-react-class": "15.6.3",
"prop-types": "15.6.0",
"rc-align": "2.3.5",
"rc-animate": "2.4.4",
@@ -9452,7 +12625,7 @@
"resolved": "https://registry.npmjs.org/react/-/react-15.6.2.tgz",
"integrity": "sha1-26BDSrQ5z+gvEI8PURZjkIF5qnI=",
"requires": {
- "create-react-class": "15.6.2",
+ "create-react-class": "15.6.3",
"fbjs": "0.8.16",
"loose-envify": "1.3.1",
"object-assign": "4.1.1",
@@ -9472,6 +12645,28 @@
"integrity": "sha1-nkN2vPQLUhfRTsaFUwgc7ksIptY=",
"requires": {
"react-transition-group": "1.2.1"
+ },
+ "dependencies": {
+ "react-transition-group": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-1.2.1.tgz",
+ "integrity": "sha512-CWaL3laCmgAFdxdKbhhps+c0HRGF4c+hdM4H23+FI1QBNUyx/AMeIJGWorehPNSaKnQNOAxL7PQmqMu78CDj3Q==",
+ "requires": {
+ "chain-function": "1.0.0",
+ "dom-helpers": "3.3.1",
+ "loose-envify": "1.3.1",
+ "prop-types": "15.6.0",
+ "warning": "3.0.0"
+ }
+ },
+ "warning": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz",
+ "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=",
+ "requires": {
+ "loose-envify": "1.3.1"
+ }
+ }
}
},
"react-addons-pure-render-mixin": {
@@ -9545,13 +12740,22 @@
"resolved": "https://registry.npmjs.org/react-color/-/react-color-2.13.8.tgz",
"integrity": "sha1-vMWPeaciub/DfEAuaM0Y8mlwruQ=",
"requires": {
- "lodash": "4.17.4",
+ "lodash": "4.17.5",
"material-colors": "1.2.5",
"prop-types": "15.6.0",
"reactcss": "1.2.3",
"tinycolor2": "1.4.1"
}
},
+ "react-css-super-themr": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/react-css-super-themr/-/react-css-super-themr-2.2.0.tgz",
+ "integrity": "sha512-fcSRGHVhYEBU8zx530RViXd7rjosirUjv0PFXimKNHRsoGuhnu1wb0lYDJ1xwhUfehJ/rr3O60+H3jRFP78KaQ==",
+ "requires": {
+ "hoist-non-react-statics": "1.2.0",
+ "invariant": "2.2.2"
+ }
+ },
"react-datetime": {
"version": "2.7.1",
"resolved": "https://registry.npmjs.org/react-datetime/-/react-datetime-2.7.1.tgz",
@@ -9598,11 +12802,11 @@
"integrity": "sha1-63cFxNs2+1AbOqOP91lhaqD/luA="
},
"react-dotdotdot": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/react-dotdotdot/-/react-dotdotdot-1.1.0.tgz",
- "integrity": "sha1-tnRrG/BJxrKAajJAMvckyW+hfvE=",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/react-dotdotdot/-/react-dotdotdot-1.2.1.tgz",
+ "integrity": "sha512-dOjabujL+DmrSRfg8BVJVpt5knJr3s9QLHBmyRVBn7x9WTci06SCRbRQLtUZUnU+OO6J50cYRafZOX7sJiav+Q==",
"requires": {
- "prop-types": "15.6.0"
+ "object.pick": "1.3.0"
}
},
"react-dropzone": {
@@ -9710,7 +12914,7 @@
"resolved": "https://registry.npmjs.org/react-modal/-/react-modal-1.9.7.tgz",
"integrity": "sha512-oZNqI0ZnPD7NnfObrCMz2hxHTAw5oEuhZJ+gnyFNIQB2rR8h1YbLQTfhms1mtSJigb0J23OOWElHjXYYaKO+wg==",
"requires": {
- "create-react-class": "15.6.2",
+ "create-react-class": "15.6.3",
"element-class": "0.2.2",
"exenv": "1.2.0",
"lodash.assign": "4.2.0",
@@ -9733,13 +12937,22 @@
}
}
},
+ "react-popper": {
+ "version": "0.7.5",
+ "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-0.7.5.tgz",
+ "integrity": "sha512-ya9dhhGCf74JTOB2uyksEHhIGw7w9tNZRUJF73lEq2h4H5JT6MBa4PdT4G+sx6fZwq+xKZAL/sVNAIuojPn7Dg==",
+ "requires": {
+ "popper.js": "1.12.9",
+ "prop-types": "15.6.0"
+ }
+ },
"react-proxy": {
"version": "3.0.0-alpha.1",
"resolved": "https://registry.npmjs.org/react-proxy/-/react-proxy-3.0.0-alpha.1.tgz",
"integrity": "sha1-RABCa8+oDKpnJMd1VpUxUgn6Swc=",
"dev": true,
"requires": {
- "lodash": "4.17.4"
+ "lodash": "4.17.5"
}
},
"react-redux": {
@@ -9747,10 +12960,10 @@
"resolved": "https://registry.npmjs.org/react-redux/-/react-redux-4.4.8.tgz",
"integrity": "sha1-57wd0QDotk6WrIIS2xEyObni4I8=",
"requires": {
- "create-react-class": "15.6.2",
+ "create-react-class": "15.6.3",
"hoist-non-react-statics": "1.2.0",
"invariant": "2.2.2",
- "lodash": "4.17.4",
+ "lodash": "4.17.5",
"loose-envify": "1.3.1",
"prop-types": "15.6.0"
}
@@ -9849,9 +13062,9 @@
}
},
"react-stickynode": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/react-stickynode/-/react-stickynode-1.4.0.tgz",
- "integrity": "sha512-36Rm+wt9rF+InkF/iT+Je1DCCCJyNd610FvS45JA3cFhbzKqrt4ZE6/oPv160Anlp/ppmbkFgRcmSq4mwlb78A==",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/react-stickynode/-/react-stickynode-1.4.1.tgz",
+ "integrity": "sha512-V2ep9tgDcK3SLhVzz24OOFxOBMUz55lDM77m6tlstxc0mudQ9vx+RNBl9Tnt1Y96quSyNq0iZnEadviR2hDo9A==",
"requires": {
"classnames": "2.2.5",
"prop-types": "15.6.0",
@@ -9870,19 +13083,20 @@
"integrity": "sha1-MRA4dTHpNE/13aXCXDfsfZ4Bf38="
},
"react-textarea-autosize": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-4.3.2.tgz",
- "integrity": "sha1-lipSxoys6uQIwYrOzsKQSbgeQvo=",
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-5.2.1.tgz",
+ "integrity": "sha512-bx6z2I35aapr71ggw2yZIA4qhmqeTa4ZVsSaTeFvtf9kfcZppDBh2PbMt8lvbdmzEk7qbSFhAxR9vxEVm6oiMg==",
"requires": {
"prop-types": "15.6.0"
}
},
"react-transition-group": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-1.2.1.tgz",
- "integrity": "sha512-CWaL3laCmgAFdxdKbhhps+c0HRGF4c+hdM4H23+FI1QBNUyx/AMeIJGWorehPNSaKnQNOAxL7PQmqMu78CDj3Q==",
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.2.1.tgz",
+ "integrity": "sha512-q54UBM22bs/CekG8r3+vi9TugSqh0t7qcEVycaRc9M0p0aCEu+h6rp/RFiW7fHfgd1IKpd9oILFTl5QK+FpiPA==",
"requires": {
"chain-function": "1.0.0",
+ "classnames": "2.2.5",
"dom-helpers": "3.3.1",
"loose-envify": "1.3.1",
"prop-types": "15.6.0",
@@ -9909,7 +13123,7 @@
"resolved": "https://registry.npmjs.org/reactcss/-/reactcss-1.2.3.tgz",
"integrity": "sha512-KiwVUcFu1RErkI97ywr8nvx8dNOpT03rbnma0SSalTYjkrPYaEajR4a/MRt6DZ46K6arDRbWMNHF+xH7G7n/8A==",
"requires": {
- "lodash": "4.17.4"
+ "lodash": "4.17.5"
}
},
"read-chunk": {
@@ -9919,45 +13133,24 @@
"dev": true
},
"read-pkg": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
- "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
+ "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
"dev": true,
"requires": {
- "load-json-file": "1.1.0",
+ "load-json-file": "2.0.0",
"normalize-package-data": "2.4.0",
- "path-type": "1.1.0"
+ "path-type": "2.0.0"
}
},
"read-pkg-up": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
- "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
+ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
"dev": true,
"requires": {
- "find-up": "1.1.2",
- "read-pkg": "1.1.0"
- },
- "dependencies": {
- "find-up": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
- "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
- "dev": true,
- "requires": {
- "path-exists": "2.1.0",
- "pinkie-promise": "2.0.1"
- }
- },
- "path-exists": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
- "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
- "dev": true,
- "requires": {
- "pinkie-promise": "2.0.1"
- }
- }
+ "find-up": "2.1.0",
+ "read-pkg": "2.0.0"
}
},
"readable-stream": {
@@ -9985,17 +13178,6 @@
"set-immediate-shim": "1.0.1"
}
},
- "readline2": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz",
- "integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=",
- "dev": true,
- "requires": {
- "code-point-at": "1.1.0",
- "is-fullwidth-code-point": "1.0.0",
- "mute-stream": "0.0.5"
- }
- },
"recast": {
"version": "0.11.23",
"resolved": "https://registry.npmjs.org/recast/-/recast-0.11.23.tgz",
@@ -10020,20 +13202,20 @@
}
},
"recompose": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/recompose/-/recompose-0.20.2.tgz",
- "integrity": "sha1-ET1qx+KcpmTP/+wWtoHd3fFSULw=",
+ "version": "0.26.0",
+ "resolved": "https://registry.npmjs.org/recompose/-/recompose-0.26.0.tgz",
+ "integrity": "sha512-KwOu6ztO0mN5vy3+zDcc45lgnaUoaQse/a5yLVqtzTK13czSWnFGmXbQVmnoMgDkI5POd1EwIKSbjU1V7xdZog==",
"requires": {
"change-emitter": "0.1.6",
"fbjs": "0.8.16",
- "hoist-non-react-statics": "1.2.0",
- "symbol-observable": "0.2.4"
+ "hoist-non-react-statics": "2.3.1",
+ "symbol-observable": "1.2.0"
},
"dependencies": {
- "symbol-observable": {
- "version": "0.2.4",
- "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-0.2.4.tgz",
- "integrity": "sha1-lag9smGG1q9+ehjb2XYKL4bQj0A="
+ "hoist-non-react-statics": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.3.1.tgz",
+ "integrity": "sha1-ND24TGAYxlB3iJgkATWhQg7iLOA="
}
}
},
@@ -10108,10 +13290,10 @@
"resolved": "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz",
"integrity": "sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==",
"requires": {
- "lodash": "4.17.4",
- "lodash-es": "4.17.4",
+ "lodash": "4.17.5",
+ "lodash-es": "4.17.5",
"loose-envify": "1.3.1",
- "symbol-observable": "1.1.0"
+ "symbol-observable": "1.2.0"
}
},
"redux-form": {
@@ -10134,9 +13316,9 @@
}
},
"redux-mock-store": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/redux-mock-store/-/redux-mock-store-1.4.0.tgz",
- "integrity": "sha512-y+SGh/SONWwqs4DiyHjd0H6NMgz368wXDiUjSHuOnMEr4dN9PmjV6N3bNvxoILaIQ7zeVKclLyxsCQ2TwGZfEw==",
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/redux-mock-store/-/redux-mock-store-1.5.1.tgz",
+ "integrity": "sha512-B+iZ98ESHw4EAWVLKUknQlop1OdLKOayGRmd6KavNtC0zoSsycD8hTt0hEr1eUTw2gmYJOdfBY5QAgZweTUcLQ==",
"dev": true,
"requires": {
"lodash.isplainobject": "4.0.6"
@@ -10212,9 +13394,9 @@
"dev": true
},
"regexpu-core": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz",
- "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz",
+ "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=",
"dev": true,
"requires": {
"regenerate": "1.3.3",
@@ -10235,6 +13417,14 @@
"dev": true,
"requires": {
"jsesc": "0.5.0"
+ },
+ "dependencies": {
+ "jsesc": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+ "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
+ "dev": true
+ }
}
},
"relateurl": {
@@ -10242,6 +13432,62 @@
"resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz",
"integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk="
},
+ "remark": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/remark/-/remark-8.0.0.tgz",
+ "integrity": "sha512-K0PTsaZvJlXTl9DN6qYlvjTkqSZBFELhROZMrblm2rB+085flN84nz4g/BscKRMqDvhzlK1oQ/xnWQumdeNZYw==",
+ "dev": true,
+ "requires": {
+ "remark-parse": "4.0.0",
+ "remark-stringify": "4.0.0",
+ "unified": "6.1.6"
+ }
+ },
+ "remark-parse": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-4.0.0.tgz",
+ "integrity": "sha512-XZgICP2gJ1MHU7+vQaRM+VA9HEL3X253uwUM/BGgx3iv6TH2B3bF3B8q00DKcyP9YrJV+/7WOWEWBFF/u8cIsw==",
+ "dev": true,
+ "requires": {
+ "collapse-white-space": "1.0.3",
+ "is-alphabetical": "1.0.1",
+ "is-decimal": "1.0.1",
+ "is-whitespace-character": "1.0.1",
+ "is-word-character": "1.0.1",
+ "markdown-escapes": "1.0.1",
+ "parse-entities": "1.1.1",
+ "repeat-string": "1.6.1",
+ "state-toggle": "1.0.0",
+ "trim": "0.0.1",
+ "trim-trailing-lines": "1.1.0",
+ "unherit": "1.1.0",
+ "unist-util-remove-position": "1.1.1",
+ "vfile-location": "2.0.2",
+ "xtend": "4.0.1"
+ }
+ },
+ "remark-stringify": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-4.0.0.tgz",
+ "integrity": "sha512-xLuyKTnuQer3ke9hkU38SUYLiTmS078QOnoFavztmbt/pAJtNSkNtFgR0U//uCcmG0qnyxao+PDuatQav46F1w==",
+ "dev": true,
+ "requires": {
+ "ccount": "1.0.2",
+ "is-alphanumeric": "1.0.0",
+ "is-decimal": "1.0.1",
+ "is-whitespace-character": "1.0.1",
+ "longest-streak": "2.0.2",
+ "markdown-escapes": "1.0.1",
+ "markdown-table": "1.1.1",
+ "mdast-util-compact": "1.0.1",
+ "parse-entities": "1.1.1",
+ "repeat-string": "1.6.1",
+ "state-toggle": "1.0.0",
+ "stringify-entities": "1.3.1",
+ "unherit": "1.1.0",
+ "xtend": "4.0.1"
+ }
+ },
"remarkable": {
"version": "1.7.1",
"resolved": "https://registry.npmjs.org/remarkable/-/remarkable-1.7.1.tgz",
@@ -10249,17 +13495,6 @@
"requires": {
"argparse": "0.1.16",
"autolinker": "0.15.3"
- },
- "dependencies": {
- "argparse": {
- "version": "0.1.16",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz",
- "integrity": "sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=",
- "requires": {
- "underscore": "1.7.0",
- "underscore.string": "2.4.0"
- }
- }
}
},
"remove-trailing-separator": {
@@ -10408,6 +13643,12 @@
"integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
"dev": true
},
+ "require-from-string": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz",
+ "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=",
+ "dev": true
+ },
"require-main-filename": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
@@ -10441,7 +13682,12 @@
"requires-port": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
- "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
+ "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8="
+ },
+ "reselect": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/reselect/-/reselect-3.0.1.tgz",
+ "integrity": "sha1-79qpjqdFEyTQkrKyFjpqHXqaIUc=",
"dev": true
},
"resize-img": {
@@ -10472,6 +13718,15 @@
}
}
},
+ "resolve": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz",
+ "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==",
+ "dev": true,
+ "requires": {
+ "path-parse": "1.0.5"
+ }
+ },
"resolve-cwd": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz",
@@ -10492,7 +13747,8 @@
"resolve-from": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz",
- "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c="
+ "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=",
+ "dev": true
},
"resolve-pathname": {
"version": "2.2.0",
@@ -10536,13 +13792,13 @@
}
},
"restore-cursor": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz",
- "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
"dev": true,
"requires": {
- "exit-hook": "1.1.1",
- "onetime": "1.1.0"
+ "onetime": "2.0.1",
+ "signal-exit": "3.0.2"
}
},
"rework": {
@@ -10609,12 +13865,12 @@
"dev": true
},
"run-async": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz",
- "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
+ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
"dev": true,
"requires": {
- "once": "1.4.0"
+ "is-promise": "2.1.0"
}
},
"run-queue": {
@@ -10632,11 +13888,20 @@
"integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I="
},
"rx-lite": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz",
- "integrity": "sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI=",
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz",
+ "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=",
"dev": true
},
+ "rx-lite-aggregates": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz",
+ "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=",
+ "dev": true,
+ "requires": {
+ "rx-lite": "4.0.8"
+ }
+ },
"safe-buffer": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
@@ -10655,7 +13920,7 @@
"dev": true,
"requires": {
"glob": "7.1.2",
- "lodash": "4.17.4",
+ "lodash": "4.17.5",
"scss-tokenizer": "0.2.3",
"yargs": "7.1.0"
},
@@ -10677,6 +13942,16 @@
"wrap-ansi": "2.1.0"
}
},
+ "find-up": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+ "dev": true,
+ "requires": {
+ "path-exists": "2.1.0",
+ "pinkie-promise": "2.0.1"
+ }
+ },
"glob": {
"version": "7.1.2",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
@@ -10691,6 +13966,95 @@
"path-is-absolute": "1.0.1"
}
},
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
+ "load-json-file": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "parse-json": "2.2.0",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1",
+ "strip-bom": "2.0.0"
+ }
+ },
+ "path-exists": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+ "dev": true,
+ "requires": {
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "path-type": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ },
+ "read-pkg": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "1.1.0",
+ "normalize-package-data": "2.4.0",
+ "path-type": "1.1.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+ "dev": true,
+ "requires": {
+ "find-up": "1.1.2",
+ "read-pkg": "1.1.0"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ }
+ },
+ "strip-bom": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+ "dev": true,
+ "requires": {
+ "is-utf8": "0.2.1"
+ }
+ },
"yargs": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz",
@@ -10733,7 +14097,7 @@
"integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==",
"dev": true,
"requires": {
- "lodash": "4.17.4"
+ "lodash": "4.17.5"
}
}
}
@@ -10758,10 +14122,16 @@
"integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=",
"dev": true,
"requires": {
- "js-base64": "2.4.1",
+ "js-base64": "2.4.3",
"source-map": "0.4.4"
}
},
+ "seekout": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/seekout/-/seekout-1.0.2.tgz",
+ "integrity": "sha1-CbqfG9W0b7sTRxjrGaaDgsuxuck=",
+ "dev": true
+ },
"select-hose": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
@@ -10769,12 +14139,12 @@
"dev": true
},
"selfsigned": {
- "version": "1.10.1",
- "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.1.tgz",
- "integrity": "sha1-v4y3uDJWxFUeMTR8YxF3jbme7FI=",
+ "version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.2.tgz",
+ "integrity": "sha1-tESVgNmZKbZbEKSDiTAaZZIIh1g=",
"dev": true,
"requires": {
- "node-forge": "0.6.33"
+ "node-forge": "0.7.1"
}
},
"semver": {
@@ -10952,12 +14322,6 @@
"integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
"dev": true
},
- "shelljs": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.6.1.tgz",
- "integrity": "sha1-7GIRvtGSBEIIj+D3Cyg3Iy7SyKg=",
- "dev": true
- },
"sigmund": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
@@ -10989,10 +14353,13 @@
"dev": true
},
"slice-ansi": {
- "version": "0.0.4",
- "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz",
- "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=",
- "dev": true
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz",
+ "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "2.0.0"
+ }
},
"snake-case": {
"version": "1.1.2",
@@ -11126,14 +14493,6 @@
"define-property": "1.0.0",
"isobject": "3.0.1",
"snapdragon-util": "3.0.1"
- },
- "dependencies": {
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
- }
}
},
"snapdragon-util": {
@@ -11344,6 +14703,12 @@
}
}
},
+ "specificity": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/specificity/-/specificity-0.3.2.tgz",
+ "integrity": "sha512-Nc/QN/A425Qog7j9aHmwOrlwX2e7pNI47ciwxwy4jOlvbbMHkNNJchit+FX+UjF3IAdiaaV5BKeWuDUnws6G1A==",
+ "dev": true
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -11377,7 +14742,8 @@
"sprintf-js": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+ "dev": true
},
"sshpk": {
"version": "1.13.1",
@@ -11410,6 +14776,12 @@
"integrity": "sha1-M6qE8Rd6VUjIk1Uzy/6zQgl19aQ=",
"dev": true
},
+ "state-toggle": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.0.tgz",
+ "integrity": "sha1-0g+aYWu08MO5i5GSLSW2QKorxCU=",
+ "dev": true
+ },
"static-extend": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
@@ -11475,200 +14847,542 @@
"integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
"dev": true,
"requires": {
- "is-accessor-descriptor": "0.1.6",
- "is-data-descriptor": "0.1.4",
- "kind-of": "5.1.0"
+ "is-accessor-descriptor": "0.1.6",
+ "is-data-descriptor": "0.1.4",
+ "kind-of": "5.1.0"
+ }
+ },
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "dev": true
+ }
+ }
+ },
+ "statuses": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz",
+ "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=",
+ "dev": true
+ },
+ "stdout-stream": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.0.tgz",
+ "integrity": "sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=",
+ "dev": true,
+ "requires": {
+ "readable-stream": "2.0.6"
+ }
+ },
+ "stream-browserify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz",
+ "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.1",
+ "readable-stream": "2.0.6"
+ }
+ },
+ "stream-consume": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.0.tgz",
+ "integrity": "sha1-pB6tGm1ggc63n2WwYZAbbY89HQ8="
+ },
+ "stream-each": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz",
+ "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "1.4.1",
+ "stream-shift": "1.0.0"
+ }
+ },
+ "stream-http": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.0.tgz",
+ "integrity": "sha512-sZOFxI/5xw058XIRHl4dU3dZ+TTOIGJR78Dvo0oEAejIt4ou27k+3ne1zYmCV+v7UucbxIFQuOgnkTVHh8YPnw==",
+ "dev": true,
+ "requires": {
+ "builtin-status-codes": "3.0.0",
+ "inherits": "2.0.1",
+ "readable-stream": "2.3.3",
+ "to-arraybuffer": "1.0.1",
+ "xtend": "4.0.1"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
+ "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3",
+ "isarray": "1.0.0",
+ "process-nextick-args": "1.0.7",
+ "safe-buffer": "5.1.1",
+ "string_decoder": "1.0.3",
+ "util-deprecate": "1.0.2"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "dev": true
+ }
+ }
+ },
+ "string_decoder": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
+ "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "5.1.1"
+ }
+ }
+ }
+ },
+ "stream-shift": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz",
+ "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=",
+ "dev": true
+ },
+ "stream-to": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/stream-to/-/stream-to-0.2.2.tgz",
+ "integrity": "sha1-hDBgmNhf25kLn6MAsbPM9V6O8B0=",
+ "dev": true
+ },
+ "stream-to-buffer": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/stream-to-buffer/-/stream-to-buffer-0.1.0.tgz",
+ "integrity": "sha1-JnmdkDqyAlyb1VCsRxcbAPjdgKk=",
+ "dev": true,
+ "requires": {
+ "stream-to": "0.2.2"
+ }
+ },
+ "strict-uri-encode": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
+ "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM="
+ },
+ "string-hash": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz",
+ "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "2.0.0",
+ "strip-ansi": "4.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "3.0.0"
}
- },
- "kind-of": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
- "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
- "dev": true
}
}
},
- "statuses": {
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+ },
+ "stringify-entities": {
"version": "1.3.1",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz",
- "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=",
+ "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-1.3.1.tgz",
+ "integrity": "sha1-sVDsLXKsTBtfMktR+2soyc3/BYw=",
+ "dev": true,
+ "requires": {
+ "character-entities-html4": "1.1.1",
+ "character-entities-legacy": "1.1.1",
+ "is-alphanumerical": "1.0.1",
+ "is-hexadecimal": "1.0.1"
+ }
+ },
+ "stringstream": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
+ "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=",
"dev": true
},
- "stdout-stream": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.0.tgz",
- "integrity": "sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=",
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"dev": true,
"requires": {
- "readable-stream": "2.0.6"
+ "ansi-regex": "2.1.1"
}
},
- "stream-browserify": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz",
- "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=",
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
+ },
+ "strip-eof": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+ "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
+ "dev": true
+ },
+ "strip-indent": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
+ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
"dev": true,
"requires": {
- "inherits": "2.0.1",
- "readable-stream": "2.0.6"
+ "get-stdin": "4.0.1"
}
},
- "stream-consume": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.0.tgz",
- "integrity": "sha1-pB6tGm1ggc63n2WwYZAbbY89HQ8="
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
+ "dev": true
},
- "stream-each": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz",
- "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==",
+ "style-loader": {
+ "version": "0.19.1",
+ "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.19.1.tgz",
+ "integrity": "sha512-IRE+ijgojrygQi3rsqT0U4dd+UcPCqcVvauZpCnQrGAlEe+FUIyrK93bUDScamesjP08JlQNsFJU+KmPedP5Og==",
"dev": true,
"requires": {
- "end-of-stream": "1.4.1",
- "stream-shift": "1.0.0"
+ "loader-utils": "1.1.0",
+ "schema-utils": "0.3.0"
}
},
- "stream-http": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.0.tgz",
- "integrity": "sha512-sZOFxI/5xw058XIRHl4dU3dZ+TTOIGJR78Dvo0oEAejIt4ou27k+3ne1zYmCV+v7UucbxIFQuOgnkTVHh8YPnw==",
+ "style-search": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz",
+ "integrity": "sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=",
+ "dev": true
+ },
+ "stylelint": {
+ "version": "8.4.0",
+ "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-8.4.0.tgz",
+ "integrity": "sha512-56hPH5mTFnk8LzlEuTWq0epa34fHuS54UFYQidBOFt563RJBNi1nz1F2HK2MoT1X1waq47milvRsRahFCCJs/Q==",
"dev": true,
"requires": {
- "builtin-status-codes": "3.0.0",
- "inherits": "2.0.1",
- "readable-stream": "2.3.3",
- "to-arraybuffer": "1.0.1",
- "xtend": "4.0.1"
+ "autoprefixer": "7.2.5",
+ "balanced-match": "1.0.0",
+ "chalk": "2.3.0",
+ "cosmiconfig": "3.1.0",
+ "debug": "3.1.0",
+ "execall": "1.0.0",
+ "file-entry-cache": "2.0.0",
+ "get-stdin": "5.0.1",
+ "globby": "7.1.1",
+ "globjoin": "0.1.4",
+ "html-tags": "2.0.0",
+ "ignore": "3.3.7",
+ "imurmurhash": "0.1.4",
+ "known-css-properties": "0.5.0",
+ "lodash": "4.17.5",
+ "log-symbols": "2.2.0",
+ "mathml-tag-names": "2.0.1",
+ "meow": "4.0.0",
+ "micromatch": "2.3.11",
+ "normalize-selector": "0.2.0",
+ "pify": "3.0.0",
+ "postcss": "6.0.17",
+ "postcss-html": "0.12.0",
+ "postcss-less": "1.1.3",
+ "postcss-media-query-parser": "0.2.3",
+ "postcss-reporter": "5.0.0",
+ "postcss-resolve-nested-selector": "0.1.1",
+ "postcss-safe-parser": "3.0.1",
+ "postcss-sass": "0.2.0",
+ "postcss-scss": "1.0.3",
+ "postcss-selector-parser": "3.1.1",
+ "postcss-value-parser": "3.3.0",
+ "resolve-from": "4.0.0",
+ "specificity": "0.3.2",
+ "string-width": "2.1.1",
+ "style-search": "0.1.0",
+ "sugarss": "1.0.1",
+ "svg-tags": "1.0.0",
+ "table": "4.0.2"
},
"dependencies": {
- "readable-stream": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
- "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==",
+ "argparse": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
+ "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=",
"dev": true,
"requires": {
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
- "isarray": "1.0.0",
- "process-nextick-args": "1.0.7",
- "safe-buffer": "5.1.1",
- "string_decoder": "1.0.3",
- "util-deprecate": "1.0.2"
+ "sprintf-js": "1.0.3"
+ }
+ },
+ "camelcase": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
+ "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
+ "dev": true
+ },
+ "camelcase-keys": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz",
+ "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=",
+ "dev": true,
+ "requires": {
+ "camelcase": "4.1.0",
+ "map-obj": "2.0.0",
+ "quick-lru": "1.1.0"
+ }
+ },
+ "cosmiconfig": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-3.1.0.tgz",
+ "integrity": "sha512-zedsBhLSbPBms+kE7AH4vHg6JsKDz6epSv2/+5XHs8ILHlgDciSJfSWf8sX9aQ52Jb7KI7VswUTsLpR/G0cr2Q==",
+ "dev": true,
+ "requires": {
+ "is-directory": "0.3.1",
+ "js-yaml": "3.10.0",
+ "parse-json": "3.0.0",
+ "require-from-string": "2.0.1"
+ }
+ },
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "esprima": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz",
+ "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==",
+ "dev": true
+ },
+ "get-stdin": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz",
+ "integrity": "sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g=",
+ "dev": true
+ },
+ "glob": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "1.0.0",
+ "inflight": "1.0.6",
+ "inherits": "2.0.1",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ },
+ "globby": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz",
+ "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=",
+ "dev": true,
+ "requires": {
+ "array-union": "1.0.2",
+ "dir-glob": "2.0.0",
+ "glob": "7.1.2",
+ "ignore": "3.3.7",
+ "pify": "3.0.0",
+ "slash": "1.0.0"
+ }
+ },
+ "indent-string": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz",
+ "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz",
+ "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==",
+ "dev": true,
+ "requires": {
+ "argparse": "1.0.9",
+ "esprima": "4.0.0"
+ }
+ },
+ "load-json-file": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
+ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "parse-json": "4.0.0",
+ "pify": "3.0.0",
+ "strip-bom": "3.0.0"
},
"dependencies": {
- "inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
- "dev": true
+ "parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+ "dev": true,
+ "requires": {
+ "error-ex": "1.3.1",
+ "json-parse-better-errors": "1.0.1"
+ }
}
}
},
- "string_decoder": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
- "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
+ "map-obj": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz",
+ "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=",
+ "dev": true
+ },
+ "meow": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.0.tgz",
+ "integrity": "sha512-Me/kel335m6vMKmEmA6c87Z6DUFW3JqkINRnxkbC+A/PUm0D5Fl2dEBQrPKnqCL9Te/CIa1MUt/0InMJhuC/sw==",
"dev": true,
"requires": {
- "safe-buffer": "5.1.1"
+ "camelcase-keys": "4.2.0",
+ "decamelize-keys": "1.1.0",
+ "loud-rejection": "1.6.0",
+ "minimist": "1.2.0",
+ "minimist-options": "3.0.2",
+ "normalize-package-data": "2.4.0",
+ "read-pkg-up": "3.0.0",
+ "redent": "2.0.0",
+ "trim-newlines": "2.0.0"
+ }
+ },
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ },
+ "parse-json": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-3.0.0.tgz",
+ "integrity": "sha1-+m9HsY4jgm6tMvJj50TQ4ehH+xM=",
+ "dev": true,
+ "requires": {
+ "error-ex": "1.3.1"
+ }
+ },
+ "path-type": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
+ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
+ "dev": true,
+ "requires": {
+ "pify": "3.0.0"
+ }
+ },
+ "postcss-selector-parser": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz",
+ "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=",
+ "dev": true,
+ "requires": {
+ "dot-prop": "4.2.0",
+ "indexes-of": "1.0.1",
+ "uniq": "1.0.1"
}
+ },
+ "read-pkg": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
+ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "4.0.0",
+ "normalize-package-data": "2.4.0",
+ "path-type": "3.0.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz",
+ "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=",
+ "dev": true,
+ "requires": {
+ "find-up": "2.1.0",
+ "read-pkg": "3.0.0"
+ }
+ },
+ "redent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz",
+ "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=",
+ "dev": true,
+ "requires": {
+ "indent-string": "3.2.0",
+ "strip-indent": "2.0.0"
+ }
+ },
+ "require-from-string": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.1.tgz",
+ "integrity": "sha1-xUUjPp19pmFunVmt+zn8n1iGdv8=",
+ "dev": true
+ },
+ "resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "dev": true
+ },
+ "strip-indent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz",
+ "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=",
+ "dev": true
+ },
+ "trim-newlines": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz",
+ "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=",
+ "dev": true
}
}
},
- "stream-shift": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz",
- "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=",
- "dev": true
- },
- "stream-to": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/stream-to/-/stream-to-0.2.2.tgz",
- "integrity": "sha1-hDBgmNhf25kLn6MAsbPM9V6O8B0=",
- "dev": true
- },
- "stream-to-buffer": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/stream-to-buffer/-/stream-to-buffer-0.1.0.tgz",
- "integrity": "sha1-JnmdkDqyAlyb1VCsRxcbAPjdgKk=",
- "dev": true,
- "requires": {
- "stream-to": "0.2.2"
- }
- },
- "strict-uri-encode": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
- "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM="
- },
- "string-width": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
- "dev": true,
- "requires": {
- "code-point-at": "1.1.0",
- "is-fullwidth-code-point": "1.0.0",
- "strip-ansi": "3.0.1"
- }
- },
- "string_decoder": {
- "version": "0.10.31",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
- },
- "stringstream": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
- "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=",
- "dev": true
- },
- "strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
- "requires": {
- "ansi-regex": "2.1.1"
- }
- },
- "strip-bom": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
- "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
- "dev": true,
- "requires": {
- "is-utf8": "0.2.1"
- }
- },
- "strip-eof": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
- "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
- "dev": true
- },
- "strip-indent": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
- "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
- "dev": true,
- "requires": {
- "get-stdin": "4.0.1"
- }
- },
- "strip-json-comments": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz",
- "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=",
+ "stylelint-config-recommended": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-2.0.1.tgz",
+ "integrity": "sha512-FXdgdOEGpaFQoKGhsi8IbsCI6dkxHQPa1CCqIybkN1d8LKtdxrn/A1rgu8DpJ6J+/4L30FOJeVdPttGfxCDHBQ==",
"dev": true
},
- "style-loader": {
- "version": "0.18.2",
- "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.18.2.tgz",
- "integrity": "sha512-WPpJPZGUxWYHWIUMNNOYqql7zh85zGmr84FdTVWq52WTIkqlW9xSxD3QYWi/T31cqn9UNSsietVEgGn2aaSCzw==",
+ "stylelint-config-standard": {
+ "version": "18.0.0",
+ "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-18.0.0.tgz",
+ "integrity": "sha1-DYcrQPr9zdz0GI+1tk3bOIforvw=",
"dev": true,
"requires": {
- "loader-utils": "1.1.0",
- "schema-utils": "0.3.0"
+ "stylelint-config-recommended": "2.0.1"
}
},
"subscribe-ui-event": {
@@ -11677,7 +15391,7 @@
"integrity": "sha1-4OSqd9xIh0PucL/+uBN21TPUgG8=",
"requires": {
"eventemitter3": "2.0.3",
- "lodash": "4.17.4",
+ "lodash": "4.17.5",
"raf": "3.4.0"
},
"dependencies": {
@@ -11688,10 +15402,23 @@
}
}
},
+ "sugarss": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/sugarss/-/sugarss-1.0.1.tgz",
+ "integrity": "sha512-3qgLZytikQQEVn1/FrhY7B68gPUUGY3R1Q1vTiD5xT+Ti1DP/8iZuwFet9ONs5+bmL8pZoDQ6JrQHVgrNlK6mA==",
+ "dev": true,
+ "requires": {
+ "postcss": "6.0.17"
+ }
+ },
"supports-color": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
- "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz",
+ "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==",
+ "dev": true,
+ "requires": {
+ "has-flag": "2.0.0"
+ }
},
"svg-react-loader": {
"version": "0.4.5",
@@ -11706,6 +15433,12 @@
"xml2js": "0.4.17"
}
},
+ "svg-tags": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz",
+ "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=",
+ "dev": true
+ },
"svg2png": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/svg2png/-/svg2png-3.0.1.tgz",
@@ -11734,6 +15467,26 @@
"wrap-ansi": "2.1.0"
}
},
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ }
+ },
"window-size": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz",
@@ -11761,6 +15514,7 @@
"version": "0.7.2",
"resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz",
"integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=",
+ "dev": true,
"requires": {
"coa": "1.0.4",
"colors": "1.1.2",
@@ -11781,72 +15535,28 @@
}
},
"symbol-observable": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.1.0.tgz",
- "integrity": "sha512-dQoid9tqQ+uotGhuTKEY11X4xhyYePVnqGSoSm3OGKh2E8LZ6RPULp1uXTctk33IeERlrRJYoVSBglsL05F5Uw=="
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
+ "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ=="
},
"symbol-tree": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz",
"integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=",
- "dev": true,
- "optional": true
+ "dev": true
},
"table": {
- "version": "3.8.3",
- "resolved": "https://registry.npmjs.org/table/-/table-3.8.3.tgz",
- "integrity": "sha1-K7xULw/amGGnVdOUf+/Ys/UThV8=",
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz",
+ "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==",
"dev": true,
"requires": {
- "ajv": "4.11.8",
- "ajv-keywords": "1.5.1",
- "chalk": "1.1.3",
- "lodash": "4.17.4",
- "slice-ansi": "0.0.4",
+ "ajv": "5.5.2",
+ "ajv-keywords": "2.1.1",
+ "chalk": "2.3.0",
+ "lodash": "4.17.5",
+ "slice-ansi": "1.0.0",
"string-width": "2.1.1"
- },
- "dependencies": {
- "ajv": {
- "version": "4.11.8",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz",
- "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=",
- "dev": true,
- "requires": {
- "co": "4.6.0",
- "json-stable-stringify": "1.0.1"
- }
- },
- "ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
- "dev": true
- },
- "is-fullwidth-code-point": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
- "dev": true
- },
- "string-width": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
- "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
- "dev": true,
- "requires": {
- "is-fullwidth-code-point": "2.0.0",
- "strip-ansi": "4.0.0"
- }
- },
- "strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
- "dev": true,
- "requires": {
- "ansi-regex": "3.0.0"
- }
- }
}
},
"tapable": {
@@ -18482,10 +22192,10 @@
}
},
"tc-ui": {
- "version": "git+https://github.com/appirio-tech/tc-ui.git#44b6473cc9a6d0386409b297d8c0423f72003e6f",
+ "version": "git+https://github.com/appirio-tech/tc-ui.git#dd4d227ebe51c47bff233f3be7583812d9688d54",
"requires": {
"classnames": "2.2.5",
- "lodash": "4.17.4",
+ "lodash": "4.17.5",
"moment": "2.20.1",
"node-neat": "1.7.2",
"react": "0.14.9",
@@ -18645,9 +22355,9 @@
}
},
"thunky": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/thunky/-/thunky-0.1.0.tgz",
- "integrity": "sha1-vzAUaCTituZ7Dy16Ssi+smkIaE4=",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.2.tgz",
+ "integrity": "sha1-qGLgGOP7HqLsP85dVWBc9X8kc3E=",
"dev": true
},
"time-stamp": {
@@ -18657,9 +22367,9 @@
"dev": true
},
"timers-browserify": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.4.tgz",
- "integrity": "sha512-uZYhyU3EX8O7HQP+J9fTVYwsq90Vr68xPEFo7yrVImIxYvHgukBEgOB/SgGoorWVTzGM/3Z+wUNnboA4M8jWrg==",
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.6.tgz",
+ "integrity": "sha512-HQ3nbYRAowdVd0ckGFvmJPPCOH/CHleFN/Y0YQCX1DVaB7t+KFvisuyN09fuP8Jtp1CpfSh8O8bMkHbdbPe6Pw==",
"dev": true,
"requires": {
"setimmediate": "1.0.5"
@@ -18684,6 +22394,15 @@
"resolved": "https://registry.npmjs.org/tlds/-/tlds-1.199.0.tgz",
"integrity": "sha512-NM0jUhibJjEX4g0+1ETxOhuODIDpyvCC0A2BjxrTfMUMZ+uRZc6ZnJl9SmFtAW1s5iQgQIxezFpUij6/6OiRbg=="
},
+ "tmp": {
+ "version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+ "dev": true,
+ "requires": {
+ "os-tmpdir": "1.0.2"
+ }
+ },
"to-arraybuffer": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
@@ -18693,7 +22412,8 @@
"to-fast-properties": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
- "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc="
+ "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
+ "dev": true
},
"to-ico": {
"version": "1.1.2",
@@ -18830,6 +22550,51 @@
}
}
},
+ "topcoder-react-utils": {
+ "version": "0.0.39",
+ "resolved": "https://registry.npmjs.org/topcoder-react-utils/-/topcoder-react-utils-0.0.39.tgz",
+ "integrity": "sha512-7H2O7PIZ1zeDYiD3BxaqoB/ChzQQyLmMt/vfl9kP9zyJ5S9WeH9Ro8i5Rm3TUdGWzqmvJxT3RCAgBoAQIb04ug==",
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "lodash": "4.17.5",
+ "moment": "2.20.1",
+ "prop-types": "15.6.0",
+ "react": "16.2.0",
+ "react-css-super-themr": "2.2.0",
+ "react-dom": "16.2.0",
+ "react-router-dom": "4.2.2",
+ "url-parse": "1.2.0"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+ },
+ "react": {
+ "version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/react/-/react-16.2.0.tgz",
+ "integrity": "sha512-ZmIomM7EE1DvPEnSFAHZn9Vs9zJl5A9H7el0EGTE6ZbW9FKe/14IYAlPbC8iH25YarEQxZL+E8VW7Mi7kfQrDQ==",
+ "requires": {
+ "fbjs": "0.8.16",
+ "loose-envify": "1.3.1",
+ "object-assign": "4.1.1",
+ "prop-types": "15.6.0"
+ }
+ },
+ "react-dom": {
+ "version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.2.0.tgz",
+ "integrity": "sha512-zpGAdwHVn9K0091d+hr+R0qrjoJ84cIBFL2uU60KvWBPfZ7LPSrfqviTxGHWN0sjPZb2hxWzMexwrvJdKePvjg==",
+ "requires": {
+ "fbjs": "0.8.16",
+ "loose-envify": "1.3.1",
+ "object-assign": "4.1.1",
+ "prop-types": "15.6.0"
+ }
+ }
+ }
+ },
"toposort": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.6.tgz",
@@ -18845,13 +22610,6 @@
"punycode": "1.4.1"
}
},
- "tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=",
- "dev": true,
- "optional": true
- },
"traverse": {
"version": "0.6.6",
"resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz",
@@ -18875,6 +22633,18 @@
"integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
"dev": true
},
+ "trim-trailing-lines": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.0.tgz",
+ "integrity": "sha1-eu+7eAjfnWafbaLkOMrIxGradoQ=",
+ "dev": true
+ },
+ "trough": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.1.tgz",
+ "integrity": "sha1-qf2LA5Swro//guBjOgo2zK1bX4Y=",
+ "dev": true
+ },
"true-case-path": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.2.tgz",
@@ -18957,9 +22727,9 @@
"integrity": "sha512-uRdSdu1oA1rncCQL7sCj8vSyZkgtL7faaw9Tc9rZ3mGgraQ7+Pdx7w5mnOSF3gw9ZNG6oc+KXfkon3bKuROm0g=="
},
"uc.micro": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.3.tgz",
- "integrity": "sha1-ftUNXg+an7ClczeSWfKndFjVAZI="
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.5.tgz",
+ "integrity": "sha512-JoLI4g5zv5qNyT09f4YAvEZIIV1oOjqnewYg5D38dkQljIzpPT296dbIGvKro3digYI1bkb7W6EP1y4uDlmzLg=="
},
"uglify-js": {
"version": "2.6.4",
@@ -19032,6 +22802,31 @@
"resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz",
"integrity": "sha1-jN2PusTi0uoefi6Al8QvRCKA+Fs="
},
+ "unherit": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.0.tgz",
+ "integrity": "sha1-a5qu379z3xdWrZ4xbdmBiFhAzX0=",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.1",
+ "xtend": "4.0.1"
+ }
+ },
+ "unified": {
+ "version": "6.1.6",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-6.1.6.tgz",
+ "integrity": "sha512-pW2f82bCIo2ifuIGYcV12fL96kMMYgw7JKVEgh7ODlrM9rj6vXSY3BV+H6lCcv1ksxynFf582hwWLnA1qRFy4w==",
+ "dev": true,
+ "requires": {
+ "bail": "1.0.2",
+ "extend": "3.0.1",
+ "is-plain-obj": "1.1.0",
+ "trough": "1.0.1",
+ "vfile": "2.3.0",
+ "x-is-function": "1.0.4",
+ "x-is-string": "0.1.0"
+ }
+ },
"union-class-names": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/union-class-names/-/union-class-names-1.0.0.tgz",
@@ -19102,6 +22897,54 @@
"imurmurhash": "0.1.4"
}
},
+ "unist-util-find-all-after": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/unist-util-find-all-after/-/unist-util-find-all-after-1.0.1.tgz",
+ "integrity": "sha1-TlUSq/734GFnga7Pex7XUcAK+Qg=",
+ "dev": true,
+ "requires": {
+ "unist-util-is": "2.1.1"
+ }
+ },
+ "unist-util-is": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-2.1.1.tgz",
+ "integrity": "sha1-DDEmKeP5YMZukx6BLT2A53AQlHs=",
+ "dev": true
+ },
+ "unist-util-modify-children": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/unist-util-modify-children/-/unist-util-modify-children-1.1.1.tgz",
+ "integrity": "sha1-ZtfmpEnm9nIguXarPLi166w55R0=",
+ "dev": true,
+ "requires": {
+ "array-iterate": "1.1.1"
+ }
+ },
+ "unist-util-remove-position": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.1.tgz",
+ "integrity": "sha1-WoXBVV/BugwQG4ZwfRXlD6TIcbs=",
+ "dev": true,
+ "requires": {
+ "unist-util-visit": "1.3.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.1.tgz",
+ "integrity": "sha1-PMvcU2ee7W7PN3fdf14yKcG2qjw=",
+ "dev": true
+ },
+ "unist-util-visit": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.3.0.tgz",
+ "integrity": "sha512-9ntYcxPFtl44gnwXrQKZ5bMqXMY0ZHzUpqMFiU4zcc8mmf/jzYm8GhYgezuUlX4cJIM1zIDYaO6fG/fI+L6iiQ==",
+ "dev": true,
+ "requires": {
+ "unist-util-is": "2.1.1"
+ }
+ },
"unpipe": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
@@ -19145,12 +22988,6 @@
"resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
"integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
"dev": true
- },
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
}
}
},
@@ -19194,18 +23031,9 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.2.0.tgz",
"integrity": "sha512-DT1XbYAfmQP65M/mE6OALxmXzZ/z1+e5zk2TcSKe/KiYbNGZxgtttzC0mR/sjopbpOXcbniq7eIKmocJnUWlEw==",
- "dev": true,
"requires": {
"querystringify": "1.0.0",
"requires-port": "1.0.0"
- },
- "dependencies": {
- "querystringify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-1.0.0.tgz",
- "integrity": "sha1-YoYkIRLFtxL6ZU5SZlK/ahP/Bcs=",
- "dev": true
- }
}
},
"url-regex": {
@@ -19286,13 +23114,7 @@
"is-accessor-descriptor": "0.1.6",
"is-data-descriptor": "0.1.4",
"kind-of": "5.1.0"
- }
- },
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
+ }
},
"kind-of": {
"version": "5.1.0",
@@ -19312,13 +23134,10 @@
}
},
"user-home": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz",
- "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=",
- "dev": true,
- "requires": {
- "os-homedir": "1.0.2"
- }
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz",
+ "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=",
+ "dev": true
},
"util": {
"version": "0.10.3",
@@ -19351,6 +23170,15 @@
"integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==",
"dev": true
},
+ "v8flags": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz",
+ "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=",
+ "dev": true,
+ "requires": {
+ "user-home": "1.1.1"
+ }
+ },
"validate-npm-package-license": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz",
@@ -19389,6 +23217,41 @@
"extsprintf": "1.3.0"
}
},
+ "vfile": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-2.3.0.tgz",
+ "integrity": "sha512-ASt4mBUHcTpMKD/l5Q+WJXNtshlWxOogYyGYYrg4lt/vuRjC1EFQtlAofL5VmtVNIZJzWYFJjzGWZ0Gw8pzW1w==",
+ "dev": true,
+ "requires": {
+ "is-buffer": "1.1.6",
+ "replace-ext": "1.0.0",
+ "unist-util-stringify-position": "1.1.1",
+ "vfile-message": "1.0.0"
+ },
+ "dependencies": {
+ "replace-ext": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz",
+ "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=",
+ "dev": true
+ }
+ }
+ },
+ "vfile-location": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.2.tgz",
+ "integrity": "sha1-02dcWch3SY5JK0dW/2Xkrxp1IlU=",
+ "dev": true
+ },
+ "vfile-message": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-1.0.0.tgz",
+ "integrity": "sha512-HPREhzTOB/sNDc9/Mxf8w0FmHnThg5CRSJdR9VRFkD2riqYWs+fuXlj5z8mIpv2LrD7uU41+oPWFOL4Mjlf+dw==",
+ "dev": true,
+ "requires": {
+ "unist-util-stringify-position": "1.1.1"
+ }
+ },
"vinyl": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz",
@@ -19460,8 +23323,7 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-2.0.1.tgz",
"integrity": "sha1-O/glj30xjHRDw28uFpQCoaZwNQY=",
- "dev": true,
- "optional": true
+ "dev": true
},
"webpack": {
"version": "3.10.0",
@@ -19469,7 +23331,7 @@
"integrity": "sha512-fxxKXoicjdXNUMY7LIdY89tkJJJ0m1Oo8PQutZ5rLgWbV5QVKI15Cn7+/IHnRTd3vfKfiwBx6SBqlorAuNA8LA==",
"dev": true,
"requires": {
- "acorn": "5.3.0",
+ "acorn": "5.4.1",
"acorn-dynamic-import": "2.0.2",
"ajv": "5.5.2",
"ajv-keywords": "2.1.1",
@@ -19493,25 +23355,13 @@
"yargs": "8.0.2"
},
"dependencies": {
- "ajv-keywords": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz",
- "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=",
- "dev": true
- },
- "ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
- "dev": true
- },
"async": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz",
"integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==",
"dev": true,
"requires": {
- "lodash": "4.17.4"
+ "lodash": "4.17.5"
}
},
"browserify-zlib": {
@@ -19584,12 +23434,6 @@
"tapable": "0.2.8"
}
},
- "has-flag": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
- "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
- "dev": true
- },
"https-browserify": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
@@ -19602,16 +23446,13 @@
"integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=",
"dev": true
},
- "load-json-file": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
- "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
"dev": true,
"requires": {
- "graceful-fs": "4.1.11",
- "parse-json": "2.2.0",
- "pify": "2.3.0",
- "strip-bom": "3.0.0"
+ "number-is-nan": "1.0.1"
}
},
"memory-fs": {
@@ -19636,7 +23477,7 @@
"console-browserify": "1.1.0",
"constants-browserify": "1.0.0",
"crypto-browserify": "3.12.0",
- "domain-browser": "1.1.7",
+ "domain-browser": "1.2.0",
"events": "1.1.1",
"https-browserify": "1.0.0",
"os-browserify": "0.3.0",
@@ -19648,7 +23489,7 @@
"stream-browserify": "2.0.1",
"stream-http": "2.8.0",
"string_decoder": "1.0.3",
- "timers-browserify": "2.0.4",
+ "timers-browserify": "2.0.6",
"tty-browserify": "0.0.0",
"url": "0.11.0",
"util": "0.10.3",
@@ -19707,81 +23548,18 @@
"integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==",
"dev": true
},
- "path-type": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
- "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
- "dev": true,
- "requires": {
- "pify": "2.3.0"
- }
- },
- "pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
- "dev": true
- },
"process": {
"version": "0.11.10",
"resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
"integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
"dev": true
},
- "read-pkg": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
- "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
- "dev": true,
- "requires": {
- "load-json-file": "2.0.0",
- "normalize-package-data": "2.4.0",
- "path-type": "2.0.0"
- }
- },
- "read-pkg-up": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
- "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
- "dev": true,
- "requires": {
- "find-up": "2.1.0",
- "read-pkg": "2.0.0"
- }
- },
"source-map": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
"dev": true
},
- "string-width": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
- "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
- "dev": true,
- "requires": {
- "is-fullwidth-code-point": "2.0.0",
- "strip-ansi": "4.0.0"
- },
- "dependencies": {
- "is-fullwidth-code-point": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
- "dev": true
- },
- "strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
- "dev": true,
- "requires": {
- "ansi-regex": "3.0.0"
- }
- }
- }
- },
"string_decoder": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
@@ -19791,12 +23569,6 @@
"safe-buffer": "5.1.1"
}
},
- "strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
- "dev": true
- },
"supports-color": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
@@ -19928,7 +23700,7 @@
"loglevel": "1.6.1",
"opn": "5.2.0",
"portfinder": "1.0.13",
- "selfsigned": "1.10.1",
+ "selfsigned": "1.10.2",
"serve-index": "1.9.1",
"sockjs": "0.3.19",
"sockjs-client": "1.1.4",
@@ -20101,6 +23873,16 @@
"to-regex-range": "2.1.1"
}
},
+ "find-up": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+ "dev": true,
+ "requires": {
+ "path-exists": "2.1.0",
+ "pinkie-promise": "2.0.1"
+ }
+ },
"glob": {
"version": "7.1.2",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
@@ -20157,12 +23939,6 @@
}
}
},
- "has-flag": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
- "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
- "dev": true
- },
"is-accessor-descriptor": {
"version": "0.1.6",
"resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
@@ -20228,6 +24004,15 @@
"integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
"dev": true
},
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
"is-glob": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz",
@@ -20257,18 +24042,33 @@
}
}
},
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "dev": true
- },
"kind-of": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
"integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
"dev": true
},
+ "load-json-file": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "parse-json": "2.2.0",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1",
+ "strip-bom": "2.0.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ }
+ }
+ },
"micromatch": {
"version": "3.1.5",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.5.tgz",
@@ -20296,13 +24096,73 @@
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
"dev": true
},
- "supports-color": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.1.0.tgz",
- "integrity": "sha512-Ry0AwkoKjDpVKK4sV4h6o3UJmNRbjYm2uXhwfj3J56lMVdvnUNqzQVRztOOMGQ++w1K/TjNDFvpJk0F/LoeBCQ==",
+ "path-exists": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
"dev": true,
"requires": {
- "has-flag": "2.0.0"
+ "pinkie-promise": "2.0.1"
+ }
+ },
+ "path-type": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "4.1.11",
+ "pify": "2.3.0",
+ "pinkie-promise": "2.0.1"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ }
+ }
+ },
+ "read-pkg": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "1.1.0",
+ "normalize-package-data": "2.4.0",
+ "path-type": "1.1.0"
+ }
+ },
+ "read-pkg-up": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+ "dev": true,
+ "requires": {
+ "find-up": "1.1.2",
+ "read-pkg": "1.1.0"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ }
+ },
+ "strip-bom": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+ "dev": true,
+ "requires": {
+ "is-utf8": "0.2.1"
}
},
"yargs": {
@@ -20337,13 +24197,25 @@
}
}
},
+ "webpack-hot-middleware": {
+ "version": "2.21.0",
+ "resolved": "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.21.0.tgz",
+ "integrity": "sha512-P6xiOLy10QlSVSO7GanU9PLxN6zLLQ7RG16MPTvmFwf2KUG7jMp6m+fmdgsR7xoaVVLA7OlX3YO6JjoZEKjCuA==",
+ "dev": true,
+ "requires": {
+ "ansi-html": "0.0.7",
+ "html-entities": "1.2.1",
+ "querystring": "0.2.0",
+ "strip-ansi": "3.0.1"
+ }
+ },
"webpack-merge": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.1.1.tgz",
"integrity": "sha512-geQsZ86YkXOVOjvPC5yv3JSNnL6/X3Kzh935AQ/gJNEYXEfJDQFu/sdFuktS9OW2JcH/SJec8TGfRdrpHshH7A==",
"dev": true,
"requires": {
- "lodash": "4.17.4"
+ "lodash": "4.17.5"
}
},
"webpack-sources": {
@@ -20370,7 +24242,7 @@
"integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=",
"dev": true,
"requires": {
- "http-parser-js": "0.4.9",
+ "http-parser-js": "0.4.10",
"websocket-extensions": "0.1.3"
}
},
@@ -20390,15 +24262,23 @@
"resolved": "https://registry.npmjs.org/whatwg-url-compat/-/whatwg-url-compat-0.6.5.tgz",
"integrity": "sha1-AImBEa9om7CXVBzVpFymyHmERb8=",
"dev": true,
- "optional": true,
"requires": {
"tr46": "0.0.3"
+ },
+ "dependencies": {
+ "tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=",
+ "dev": true
+ }
}
},
"whet.extend": {
"version": "0.9.9",
"resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz",
- "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE="
+ "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=",
+ "dev": true
},
"which": {
"version": "1.3.0",
@@ -20422,6 +24302,28 @@
"dev": true,
"requires": {
"string-width": "1.0.2"
+ },
+ "dependencies": {
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ }
+ }
}
},
"window-size": {
@@ -20442,6 +24344,28 @@
"requires": {
"string-width": "1.0.2",
"strip-ansi": "3.0.1"
+ },
+ "dependencies": {
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ }
+ }
}
},
"wrappy": {
@@ -20458,6 +24382,18 @@
"mkdirp": "0.5.1"
}
},
+ "x-is-function": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/x-is-function/-/x-is-function-1.0.4.tgz",
+ "integrity": "sha1-XSlNw9Joy90GJYDgxd93o5HR+h4=",
+ "dev": true
+ },
+ "x-is-string": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/x-is-string/-/x-is-string-0.1.0.tgz",
+ "integrity": "sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI=",
+ "dev": true
+ },
"xhr": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/xhr/-/xhr-2.4.1.tgz",
@@ -20479,8 +24415,7 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz",
"integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=",
- "dev": true,
- "optional": true
+ "dev": true
},
"xml-parse-from-string": {
"version": "1.0.1",
@@ -20502,7 +24437,7 @@
"resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.2.1.tgz",
"integrity": "sha1-qlijBBoGb5DqoWwvU4n/GfP0YaU=",
"requires": {
- "lodash": "4.17.4"
+ "lodash": "4.17.5"
}
},
"xtend": {
diff --git a/package.json b/package.json
index 9ff16ced2..c6dce2568 100644
--- a/package.json
+++ b/package.json
@@ -14,12 +14,22 @@
"fsevents": "*"
},
"devDependencies": {
+ "autoprefixer": "^7.2.5",
+ "babel-cli": "^6.26.0",
+ "babel-eslint": "^7.2.3",
"babel-loader": "^7.1.2",
+ "babel-plugin-css-modules-transform": "^1.4.0",
+ "babel-plugin-dynamic-import-node": "^1.2.0",
+ "babel-plugin-inline-react-svg": "^0.5.2",
"babel-plugin-lodash": "^3.2.11",
- "babel-polyfill": "^6.6.1",
- "babel-preset-env": "^1.2.1",
- "babel-preset-react": "^6.23.0",
- "babel-preset-stage-2": "^6.22.0",
+ "babel-plugin-module-resolver": "^3.0.0",
+ "babel-plugin-react-css-modules": "^3.3.3",
+ "babel-plugin-transform-assets": "^0.2.0",
+ "babel-plugin-transform-runtime": "^6.23.0",
+ "babel-polyfill": "^6.26.0",
+ "babel-preset-env": "^1.6.1",
+ "babel-preset-react": "^6.24.1",
+ "babel-preset-stage-2": "^6.24.1",
"babel-register": "^6.26.0",
"chai": "^3.5.0",
"cheerio": "^0.20.0",
@@ -27,43 +37,57 @@
"coffee-loader": "^0.8.0",
"compression-webpack-plugin": "^1.0.1",
"cross-env": "^1.0.7",
- "css-loader": "^0.28.7",
+ "css-loader": "^0.28.9",
"deep-freeze-node": "^1.1.2",
- "eslint": "^2.2.0",
- "eslint-plugin-react": "^4.1.0",
- "extract-css-chunks-webpack-plugin": "github:birdofpreyru/extract-css-chunks-webpack-plugin#develop",
+ "eslint": "^4.16.0",
+ "eslint-config-airbnb": "^15.1.0",
+ "eslint-import-resolver-babel-module": "^4.0.0",
+ "eslint-plugin-import": "^2.8.0",
+ "eslint-plugin-jest": "^21.7.0",
+ "eslint-plugin-jsx-a11y": "^5.1.1",
+ "eslint-plugin-react": "^7.6.1",
+ "extract-css-chunks-webpack-plugin": "^2.0.18",
"favicons-webpack-plugin": "0.0.7",
- "file-loader": "^0.11.2",
+ "file-loader": "^1.1.6",
"html-webpack-plugin": "^2.30.1",
"ignore-styles": "^1.2.0",
+ "jsdom": "^7.2.2",
"mocha": "^2.4.5",
"mocha-jsdom": "^1.1.0",
"nock": "^8.0.0",
- "node-sass": "^4.5.0",
- "react-hot-loader": "^3.0.0-beta.6",
+ "node-forge": "^0.7.1",
+ "node-sass": "^4.7.2",
+ "nodelist-foreach-polyfill": "^1.2.0",
+ "optimize-css-assets-webpack-plugin": "^3.2.0",
+ "postcss-loader": "^2.0.10",
+ "postcss-scss": "^1.0.3",
+ "react-hot-loader": "^3.1.3",
"redux-logger": "^2.5.0",
"redux-mock-store": "^1.0.2",
- "resolve-url-loader": "^2.0.2",
- "sass-loader": "^6.0.3",
- "style-loader": "^0.18.2",
+ "resolve-url-loader": "^2.2.1",
+ "rimraf": "^2.6.2",
+ "sass-loader": "^6.0.6",
+ "style-loader": "^0.19.1",
+ "stylelint": "^8.4.0",
+ "stylelint-config-standard": "^18.0.0",
"to-ico": "1.1.2",
"watch-run": "^1.2.4",
- "webpack": "^3.6.0",
+ "webpack": "^3.10.0",
"webpack-dev-server": "^2.9.1",
- "webpack-merge": "^4.0.0"
+ "webpack-hot-middleware": "^2.21.0",
+ "webpack-merge": "^4.1.1"
},
"dependencies": {
"appirio-tech-react-components": "github:appirio-tech/react-components#feature/connectv2",
"axios": "^0.13.1",
- "babel-plugin-inline-react-svg": "^0.5.2",
"classnames": "^2.2.3",
"coffeescript": "^1.12.7",
"draft-js": "^0.10.1",
"draft-js-drag-n-drop-plugin": "^2.0.0-rc2",
"draft-js-image-plugin": "^2.0.0-rc2",
"draft-js-link-plugin": "^1.2.2",
- "draft-js-plugins-editor": "^2.0.0-rc2",
"draft-js-mention-plugin": "^2.0.0-rc2",
+ "draft-js-plugins-editor": "^2.0.0-rc2",
"draft-js-utils": "^0.1.7",
"fbemitter": "^2.1.1",
"fbjs": "^0.8.12",
@@ -74,7 +98,6 @@
"handlebars": "^4.0.11",
"history": "^1.17.0",
"html5-uploader": "^0.1.1",
- "isomorphic-fetch": "^2.2.1",
"js-cookie": "^2.1.4",
"linkify-it": "^2.0.3",
"lodash": "^4.16.4",
@@ -101,7 +124,7 @@
"react-select": "^0.9.1",
"react-stickynode": "^1.2.1",
"react-text-truncate": "^0.8.3",
- "recompose": "^0.20.2",
+ "recompose": "^0.26.0",
"redux": "^3.7.1",
"redux-promise-middleware": "4.2.1",
"redux-segment": "^1.6.2",
@@ -110,6 +133,7 @@
"svg-react-loader": "^0.4.5",
"tc-accounts": "git+https://github.com/appirio-tech/accounts-app.git#0.0.11",
"tc-ui": "git+https://github.com/appirio-tech/tc-ui.git#feature/connectv2",
- "tlds": "^1.191.0"
+ "tlds": "^1.191.0",
+ "topcoder-react-utils": "0.0.39"
}
}
diff --git a/src/actions/loadUser.js b/src/actions/loadUser.js
index 2194920ac..119b52c7b 100644
--- a/src/actions/loadUser.js
+++ b/src/actions/loadUser.js
@@ -102,13 +102,13 @@ export function loadUserSuccess(dispatch, token) {
}
})
})
- .catch((err) => {
+ .catch((err) => {
// if we fail to load user's profile, still dispatch user load success
// ideally it shouldn't happen, but if it is, we can render the page
// without profile information
- console.log(err)
- dispatch({ type: LOAD_USER_SUCCESS, user : currentUser })
- })
+ console.log(err)
+ dispatch({ type: LOAD_USER_SUCCESS, user : currentUser })
+ })
}
}
diff --git a/src/actions/navSearch.js b/src/actions/navSearch.js
index fc95f245c..4649d9042 100644
--- a/src/actions/navSearch.js
+++ b/src/actions/navSearch.js
@@ -1,5 +1,4 @@
// import _ from 'lodash'
-// import { fetchJSON } from '../helpers'
import { CLEAR_PROJECT_SEARCH, SET_SEARCH_TERM } from '../config/constants'
export function loadSearchSuggestions(searchTerm) {
@@ -28,4 +27,4 @@ export function search(searchTerm) {
dispatch({ type: SET_SEARCH_TERM, prevSearchTerm, searchTerm })
})
-}
\ No newline at end of file
+}
diff --git a/src/api/projectMembers.js b/src/api/projectMembers.js
index 64a08f5d4..f158b6f97 100644
--- a/src/api/projectMembers.js
+++ b/src/api/projectMembers.js
@@ -12,37 +12,37 @@ export function getMembersById (userIds) {
+ `&query=${encodeURIComponent(query)}`
+ '&limit=' + userIds.length
return axios.get(url)
- .then(resp => {
- return resp.data.result.content
- })
+ .then(resp => {
+ return resp.data.result.content
+ })
}
export function loadMemberSuggestions(value) {
const url = `${TC_API_URL}/v3/members/_suggest/${value}`
return axios.get(url)
- .then(resp => {
- return resp.data.result.content
- })
+ .then(resp => {
+ return resp.data.result.content
+ })
}
export function addProjectMember(projectId, newMember) {
const url = `${PROJECTS_API_URL}/v4/projects/${projectId}/members/`
return axios.post(url, { param: newMember})
- .then(resp => {
- return axios.put(`${CONNECT_MESSAGE_API_URL}/v4/topics/syncUsers`,
- { reference: 'project', referenceId: projectId })
- .then(() => resp.data.result.content)
- })
+ .then(resp => {
+ return axios.put(`${CONNECT_MESSAGE_API_URL}/v4/topics/syncUsers`,
+ { reference: 'project', referenceId: projectId })
+ .then(() => resp.data.result.content)
+ })
}
export function updateProjectMember(projectId, memberId, updatedProps) {
const url = `${PROJECTS_API_URL}/v4/projects/${projectId}/members/${memberId}/`
return axios.patch(url, { param: updatedProps })
- .then(resp => {
- return resp.data.result.content
- })
+ .then(resp => {
+ return resp.data.result.content
+ })
}
export function removeProjectMember(projectId, memberId, isUserLeaving) {
@@ -54,14 +54,14 @@ export function removeProjectMember(projectId, memberId, isUserLeaving) {
}
return promise.then(() => {
return axios.delete(url)
- .then(() => {
- if (!isUserLeaving) {
- return axios.put(`${CONNECT_MESSAGE_API_URL}/v4/topics/syncUsers`,
- { reference: 'project', referenceId: projectId })
- .then(() => memberId)
- }
- // return the member id just removed
- return memberId
- })
+ .then(() => {
+ if (!isUserLeaving) {
+ return axios.put(`${CONNECT_MESSAGE_API_URL}/v4/topics/syncUsers`,
+ { reference: 'project', referenceId: projectId })
+ .then(() => memberId)
+ }
+ // return the member id just removed
+ return memberId
+ })
})
}
diff --git a/src/assets/icons/icon-refresh.svg b/src/assets/icons/icon-refresh.svg
new file mode 100644
index 000000000..709db822e
--- /dev/null
+++ b/src/assets/icons/icon-refresh.svg
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/src/components/ActionCard/ActionCard.jsx b/src/components/ActionCard/ActionCard.jsx
index c66a0718d..2ca005e78 100644
--- a/src/components/ActionCard/ActionCard.jsx
+++ b/src/components/ActionCard/ActionCard.jsx
@@ -53,20 +53,20 @@ class Header extends React.Component{
const content = topicMessage.newContent === null || topicMessage.newContent === undefined ? topicMessage.rawContent : topicMessage.newContent
return (
)
}
diff --git a/src/components/ActionCard/ActionCard.scss b/src/components/ActionCard/ActionCard.scss
index 6dca0d69b..4b0da9ad0 100644
--- a/src/components/ActionCard/ActionCard.scss
+++ b/src/components/ActionCard/ActionCard.scss
@@ -1,689 +1,716 @@
-@import "tc-includes";
-.action-card {
- padding: $base-unit*4 0;
- box-shadow: 0px 1px 3px 0px $tc-gray-30;
-
- // FIXME: Hide the top border on the new post composer to be better looking
- .new-post-title + .tc-textarea .textarea-footer {
- border-top: none;
- }
-
- .panel-row,
- .modal-row {
- padding: $base-unit*2 $base-unit*6;
- }
+@import '~tc-ui/src/styles/tc-includes';
- .edit-toggle-container {
- display: inline;
- float: right;
+:global {
+ .action-card {
+ padding: $base-unit*4 0;
+ box-shadow: 0 1px 2px 0 rgba($tc-black, 0.2);
+ border-radius: 6px;
- .edit-toggle {
- background-size: 15px;
- user-select: none;
- position: relative;
- margin-left: auto;
- border-radius: 20px;
- font-family: 'Roboto', Helvetica, Arial, sans-serif;
- font-weight: 500;
- font-size: 12px;
- color: $tc-white;
- line-height: 20px;
- height: 20px;
- padding: 0 25px 0 25px;
- cursor: pointer;
+ .panel-body {
+ padding: 0 20px;
}
- .dropdown-menu-list a {
- text-decoration: none;
- font-weight: 400;
- padding: 0px;
+ // FIXME: Hide the top border on the new post composer to be better looking
+ .new-post-title + .tc-textarea .textarea-footer {
+ border-top: none;
+ }
- &:hover {
- background: transparent;
- }
+ .panel-row {
+ padding: $base-unit*2 $base-unit*6;
}
- .dropdown-menu-list li {
- padding: 0px 20px 0 20px;
+ // Edit post section
+ //
+
+ .dropdownContainer {
+ display: block;
+ position: absolute;
+ right: 0;
+ top: 10px;
+ height: 20px;
+ width: 16px;
+ margin: 0;
- &:hover {
- background: $tc-gray-10;
+ .down-layer {
+ top: 22px;
}
- }
- .pointer-shadow .dropdown-menu-list {
- transform: translate(-50%, 0%);
+ .pointer-shadow {
+ box-shadow: none;
+ }
}
- .pointer-shadow .dropdown-menu-list::before {
- content: '';
+ .edit-toggle-container {
display: block;
- position: absolute;
- top: -4px;
- right: 18px;
- margin-left: -24px;
- width: 12px;
- height: 12px;
- background: $tc-white;
- transform: rotate(-135deg);
- z-index: 999;
- }
+ margin: 0;
+ // float: right;
- .pointer-shadow.hide {
- display: none;
- }
- }
+ .edit-toggle {
+ background-size: 16px;
+ user-select: none;
+ position: relative;
+ font-family: 'Roboto', Helvetica, Arial, sans-serif;
+ font-weight: 500;
+ font-size: 12px;
+ color: $tc-white;
+ line-height: 20px;
+ height: 20px;
+ padding: 0;
+ cursor: pointer;
+ }
- .card-header {
- display: flex;
- align-items: center;
- justify-content: center;
+ .dropdown-menu-list a {
+ text-decoration: none;
+ font-weight: 400;
+ padding: 0px;
- .buttons {
- margin-bottom: $base-unit*2;
- }
- }
+ &:hover {
+ background: transparent;
+ }
+ }
- .card-title {
- @include roboto-medium;
- flex-grow: 1;
- word-break: break-word;
- align-items: center;
- line-height: $base-unit*6;
- font-size: $base-unit*4;
- margin-bottom: 10px;
- position: relative;
+ .dropdown-menu-list li {
+ padding: 0px 20px 0 20px;
- div {
- display: inline;
- }
+ &:hover {
+ background: $tc-gray-10;
+ }
+ }
- .edit-toggle-container {
- .edit-dropdown {
- top: 5px !important;
+ .pointer-shadow .dropdown-menu-list {
+ transform: translate(-65%, 0%);
+ }
+
+ .pointer-shadow .dropdown-menu-list::after {
+ content: '';
+ display: block;
+ position: absolute;
+ top: -4px;
+ right: 18px;
+ width: 12px;
+ height: 12px;
+ background: $tc-white;
+ transform: rotate(-135deg);
+ z-index: 9;
+ box-shadow: 0 0 9px rgba($tc-black, 0.15);
+ }
+
+ .pointer-shadow.hide {
+ display: none;
}
}
- }
+ // End drop-down
- .card-profile {
- @include roboto-medium;
- font-size: $tc-label-md;
- line-height: $base-unit*4;
- margin-bottom: 10px;
- position: relative;
+ .card-header {
+ display: flex;
+ align-items: center;
+ justify-content: center;
- .card-author {
- white-space: nowrap;
- display: inline-block;
+ .buttons {
+ margin-bottom: $base-unit*2;
+ }
}
- .card-time {
- white-space: nowrap;
- display: inline-block;
- color: $tc-gray-40;
+ .card-title {
+ @include roboto-medium;
+ flex-grow: 1;
+ word-break: break-word;
+ align-items: center;
+ line-height: $base-unit*6;
+ font-size: $base-unit*4;
+ margin-bottom: 10px;
+ position: relative;
- &::before {
- content: " · ";
+ div {
+ display: inline;
}
- a {
- color: $tc-gray-70;
+ .edit-toggle-container {
+ .edit-dropdown {
+ top: 5px !important;
+ }
}
}
- .card-status {
- display: inline-block;
- margin-left: 20px;
- }
- }
+ .card-profile {
+ @include roboto-medium;
+ font-size: $tc-label-md;
+ line-height: $base-unit*4;
+ margin-bottom: 10px;
+ position: relative;
+ padding: 10px 25px 0 0;
- .topicBody {
- width: calc(100% - 40px);
- }
+ .card-author {
+ white-space: nowrap;
+ display: inline-block;
+ }
- .card-body {
- @include roboto;
- font-size: $tc-label-lg;
- color: $tc-gray-70;
- line-height: $base-unit*5;
- padding: 10px 0;
- word-break: break-word;
- overflow-x: auto;
+ .card-time {
+ white-space: nowrap;
+ display: inline-block;
+ color: $tc-gray-40;
- &.comment-section {
- margin-bottom: -50px;
+ &::before {
+ content: " · ";
+ }
- .comment-count {
- @include roboto;
- font-size: $tc-label-md;
- color: $tc-gray-40;
- line-height: $base-unit*4;
+ a {
+ color: $tc-gray-70;
+ }
}
- hr {
- margin: $base-unit 0 $base-unit*2 0;
- background-color: $tc-gray-10;
- height: 1px;
- border: 0;
+ .card-status {
+ display: inline-block;
+ margin-left: 20px;
}
+ }
- .comment-collapse {
- text-align: center;
- height: 20px;
- position: relative;
- margin-bottom: 35px;
+ .topicBody {
+ width: calc(100% - 40px);
+ }
- .comment-collapse-button {
- background: $tc-gray-10;
- border-radius: 176px;
- border: none;
- z-index: 5;
- position: relative;
- padding: 0 15px;
- display: inline-block;
- color: $tc-gray-50;
+ .card-body {
+ @include roboto;
+ font-size: $tc-label-md;
+ color: $tc-gray-80;
+ line-height: $base-unit*5;
+ padding: 10px 0;
+ word-break: break-word;
+ overflow-x: auto;
+
+ &.comment-section {
+ margin-bottom: -50px;
+
+ .comment-count {
+ @include roboto;
+ font-size: $tc-label-md;
+ color: $tc-gray-40;
line-height: $base-unit*4;
- font-size: 12px;
+ border-bottom: 1px solid $tc-gray-20;
}
- &::after {
- content: "";
- position: absolute;
- top: 12px;
- left: 0;
- right: 0;
- width: 100%;
- border-top: solid 1px $tc-gray-10;
- z-index: 1;
+ hr {
+ margin: $base-unit 0 $base-unit*2 0;
+ background-color: $tc-gray-10;
+ height: 1px;
+ border: 0;
}
- &.loading-comments {
+ .comment-collapse {
+ text-align: center;
+ height: 20px;
+ position: relative;
+ margin-bottom: 56px;
+
.comment-collapse-button {
- cursor: default;
+ background: $tc-gray-10;
+ border-radius: 176px;
+ border: none;
+ z-index: 5;
+ position: relative;
+ padding: 0 15px;
+ display: inline-block;
+ color: $tc-gray-50;
+ line-height: $base-unit*4;
+ font-size: 12px;
+ }
+
+ &::after {
+ content: "";
+ position: absolute;
+ top: 12px;
+ left: 0;
+ right: 0;
+ width: 100%;
+ border-top: solid 1px $tc-gray-10;
+ z-index: 1;
+ }
+
+ &.loading-comments {
+ .comment-collapse-button {
+ cursor: default;
+ }
}
}
}
- }
- p {
- line-height: 1.5em;
- }
+ p {
+ line-height: 20px;
+ }
- sup {
- font-size: 0.5em;
- vertical-align: text-top;
- }
+ sup {
+ font-size: 0.5em;
+ vertical-align: text-top;
+ }
- sub {
- font-size: 0.5em;
- vertical-align: text-bottom;
+ sub {
+ font-size: 0.5em;
+ vertical-align: text-bottom;
+ }
}
- }
- // Embedded content overrides -- start
- .onebox-body h3 {
- font-size: 15px;
- font-weight: bold;
- }
-
- .comment-body .elided {
- display: none;
- }
- // Embedded content overrides -- end
-
- .comment {
- box-shadow: 0px 0px 3px 0px rgba($tc-dark-blue-70, 0.00);
- border-radius: 4px;
- padding: $base-unit*2;
- margin-bottom: -10px;
- width: calc(100% - 40px);
+ // Embedded content overrides -- start
+ .onebox-body h3 {
+ font-size: 15px;
+ font-weight: bold;
+ }
- &.self {
- background: $tc-dark-blue-10;
+ .comment-body .elided {
+ display: none;
+ }
+ // Embedded content overrides -- end
- &:before {
- border-right: 14px solid $tc-dark-blue-10;
- }
+ .comment {
+ background-color: $tc-gray-neutral-light;
+ border-radius: 4px;
+ padding: 0 $base-unit*2;
+ width: calc(100% - 40px);
+ position: relative;
- &:before {
+ &::before {
width: 0;
height: 0;
border-top: 12px solid transparent;
border-bottom: 12px solid transparent;
- border-right: 12px solid $tc-dark-blue-10;
+ border-right: 12px solid $tc-gray-neutral-light;
content: '';
display: block;
position: absolute;
top: 10px;
left: -6px;
transform: rotate(-90deg);
- z-index: 18;
}
- position: relative;
- }
- .comment-body {
- @include roboto;
- font-size: 13px;
- color: $tc-gray-80;
- line-height: $base-unit*4;
- width: 100%;
- overflow-x: auto;
- }
+ &.self {
+ background: $tc-dark-blue-10;
- .comment-read-more {
- @include roboto;
- font-size: 11px;
- color: $tc-dark-blue-70;
- line-height: $base-unit*6;
- }
- }
-
- .commentEdit {
- padding-left: 0px;
- padding-right: 0px;
- }
-
- .comment-form {
- textarea,
- input {
- @include roboto;
- font-size: $tc-label-md;
-
- @include placeholder {
- font-size: $tc-label-md;
- color: $tc-gray-40;
- text-transform: none;
+ &:before {
+ border-right-color: $tc-dark-blue-10;
+ }
+ position: relative;
}
- }
- .tc-textarea {
- margin-top: 0;
-
- textarea {
+ .comment-body {
@include roboto;
font-size: 13px;
color: $tc-gray-80;
line-height: 20px;
- min-height: 80px;
+ width: 100%;
+ overflow-x: auto;
+ margin-bottom: 10px;
+ }
+
+ .comment-read-more {
+ @include roboto;
+ font-size: 11px;
+ color: $tc-dark-blue-70;
+ line-height: $base-unit*6;
}
}
- }
- .panel-buttons,
- .modal-buttons {
- padding: 0 0 10px 0;
- text-align: center;
- }
+ .commentEdit {
+ padding-left: 0px;
+ padding-right: 0px;
- .tc-textarea {
- .public-DraftEditor-content,
- textarea {
- @include roboto;
- min-height: 145px;
- color: $tc-gray-70;
- line-height: $base-unit*5;
- font-size: $tc-label-lg;
+ &::before {
+ display: none;
+ }
}
- &.has-footer {
- textarea {
- margin-bottom: 0;
- border-bottom: none;
+ .comment-form {
+ textarea,
+ input {
+ @include roboto;
+ font-size: $tc-label-md;
+ @include placeholder {
+ font-size: $tc-label-md;
+ color: $tc-gray-40;
+ text-transform: none;
+ }
+ }
+
+ .tc-textarea {
+ margin-top: 0;
+
+ textarea {
+ @include roboto;
+ font-size: 13px;
+ color: $tc-gray-80;
+ line-height: 25px;
+ min-height: 80px;
+ }
}
}
- .textarea-footer {
- padding: 12px 15px;
- background: $tc-gray-neutral-light;
- border: 1px solid $tc-gray-20;
- border-top: 1px solid $tc-dark-blue;
- display: flex;
+ .panel-buttons,
+ .modal-buttons {
+ padding: 0 0 10px 0;
+ text-align: center;
+ }
- .textarea-buttons {
- display: flex;
- align-items: center;
+ .tc-textarea {
+ .public-DraftEditor-content,
+ textarea {
+ @include roboto;
+ min-height: 75px;
+ color: $tc-gray-80;
+ line-height: $base-unit*5;
+ font-size: $tc-label-md;
+ }
- button,
- .separator {
- margin-right: 1px;
- display: inline-block;
- border: none;
- background-color: transparent;
- padding: 0px;
+ &.has-footer {
+ textarea {
+ margin-bottom: 0;
+ border-bottom: none;
}
+ }
- .button {
- cursor: pointer;
- }
+ .textarea-footer {
+ padding: 12px 15px;
+ background: $tc-gray-neutral-light;
+ border: 1px solid $tc-gray-20;
+ border-top: 1px solid $tc-dark-blue;
+ display: flex;
- .separator {
- width: 1px;
- height: 20px;
- background-color: $tc-gray-30;
- margin-left: 8px;
- margin-right: 8px;
- }
+ .textarea-buttons {
+ display: flex;
+ align-items: center;
+
+ button,
+ .separator {
+ margin-right: 1px;
+ display: inline-block;
+ border: none;
+ background-color: transparent;
+ padding: 0px;
+ }
- button {
- &:hover,
- &:disabled {
- opacity: 0.5;
+ .button {
+ cursor: pointer;
}
- &.active {
- opacity: 1;
+ .separator {
+ width: 1px;
+ height: 20px;
+ background-color: $tc-gray-30;
+ margin-left: 8px;
+ margin-right: 8px;
}
- }
- }
- .tc-btn {
- margin-left: auto;
- }
+ button {
+ &:hover,
+ &:disabled {
+ opacity: 0.5;
+ }
- .tc-btns {
- margin-left: auto;
+ &.active {
+ opacity: 1;
+ }
+ }
+ }
.tc-btn {
- margin-left: 10px;
+ margin-left: auto;
+ }
+
+ .tc-btns {
+ margin-left: auto;
+
+ .tc-btn {
+ margin-left: 10px;
+ }
}
}
}
- }
- input {
- @include roboto-medium;
- font-size: $base-unit*4;
-
- @include placeholder {
+ input {
+ @include roboto-medium;
font-size: $base-unit*4;
- color: $tc-gray-40;
+ @include placeholder {
+ font-size: $base-unit*4;
+ color: $tc-gray-40;
+ }
}
- }
- input,
- textarea {
- border: 1px solid $tc-gray-20;
- border-radius: $corner-radius;
- }
+ input,
+ textarea {
+ border: 1px solid $tc-gray-20;
+ border-radius: $corner-radius;
+ }
- // Link colors
- a:link,
- a:visited {
- color: $tc-dark-blue;
- text-decoration: none;
- }
+ // Link colors
+ a:link,
+ a:visited {
+ color: $tc-dark-blue;
+ text-decoration: none;
+ }
- a:hover,
- a:active {
- color: $tc-dark-blue-70;
- text-decoration: underline;
- }
+ a:hover,
+ a:active {
+ color: $tc-dark-blue-70;
+ text-decoration: underline;
+ }
- input {
- @include placeholder {
- text-transform: none;
+ input {
+ @include placeholder {
+ text-transform: none;
+ }
}
}
-}
-.dashboard-container {
- .action-card {
- &.modal {
- padding: $base-unit*4 0;
+ // .dashboard-container {
+ // .action-card {
+ // &.modal {
+ // padding: $base-unit*4 0;
+ // }
+ // }
+ // }
+
+ .panel,
+ .modal {
+ .object {
+ flex-grow: 1;
+ margin-left: $base-unit*2;
}
- }
-}
-.panel,
-.modal {
- .object {
- flex-grow: 1;
- margin-left: $base-unit*2;
- }
+ .panel-body {
+ display: flex;
+ }
- .panel-body {
- display: flex;
- }
+ .panel-row,
+ .modal-row {
+ padding: 0 20px;
+ @include roboto;
+ font-size: $tc-label-lg;
+ display: flex;
- .panel-row,
- .modal-row {
- padding: $base-unit*2 $base-unit*4;
- @include roboto;
- font-size: $tc-label-lg;
- display: flex;
+ .profile {
+ flex-grow: 1;
+ margin-left: $base-unit*2;
- .profile {
- flex-grow: 1;
- margin-left: $base-unit*2;
+ .name {
+ font-weight: bold;
+ }
- .name {
- font-weight: bold;
- }
+ .self {
+ color: $tc-gray-30;
+ font-weight: bold;
+ }
- .self {
- color: $tc-gray-30;
- font-weight: bold;
+ .handle {
+ font-size: $tc-label-md;
+ color: $tc-gray-50;
+ display: block;
+ margin-top: 6px;
+ }
}
- .handle {
- font-size: $tc-label-md;
+ .title {
+ margin-left: $base-unit*2;
color: $tc-gray-50;
- display: block;
- margin-top: 6px;
+ font-size: $tc-label-sm;
+
+ &.highlight {
+ color: $tc-orange;
+ }
}
- }
- .title {
- margin-left: $base-unit*2;
- color: $tc-gray-50;
- font-size: $tc-label-sm;
+ .new-post-title {
+ max-width: 640px;
+ margin-left: 0px;
+ }
+
+ &.add-team-member {
+ cursor: pointer;
+ display: flex;
+ align-items: center;
+ }
- &.highlight {
- color: $tc-orange;
+ &:hover,
+ &.active {
+ background-color: white;
}
}
- .new-post-title {
- max-width: 640px;
- margin-left: 0px;
+ .portrait {
+ height: 40px;
+ width: 40px;
+ min-width: 40px;
+
+ img {
+ width: 40px;
+ height: 40px;
+ border-radius: 33px;
+ }
+
+ .Tooltip {
+ height: 35px;
+ width: 35px;
+ }
}
- &.add-team-member {
- cursor: pointer;
+ .buttons {
display: flex;
align-items: center;
- }
+ justify-content: center;
- &:hover,
- &.active {
- background-color: white;
+ button,
+ a {
+ border: none;
+ cursor: pointer;
+ opacity: 0.4;
+ height: 16px;
+ width: 16px;
+ background-size: 16px;
+ display: inline-block;
+ margin-left: $base-unit*3;
+
+ &:hover {
+ opacity: 1.0;
+ }
+ }
}
}
- .portrait {
- height: 40px;
- width: 40px;
- min-width: 40px;
-
- img {
- width: 40px;
- height: 40px;
- border-radius: 33px;
- }
-
- .Tooltip {
- height: 35px;
- width: 35px;
+ .timeline {
+ & > .panel,
+ & > .modal {
+ margin-bottom: $base-unit*4;
}
}
- .buttons {
- display: flex;
- align-items: center;
- justify-content: center;
-
- button,
- a {
- border: none;
- cursor: pointer;
- opacity: 0.4;
- height: 16px;
- width: 16px;
- background-size: 16px;
- display: inline-block;
- margin-left: $base-unit*3;
-
- &:hover {
- opacity: 1.0;
+ .comment-form-collapsed {
+ .comment-form {
+ .tc-textarea {
+ textarea {
+ min-height: 0;
+ height: 40px !important;
+ resize: none;
+ overflow: hidden;
+ margin-bottom: 0;
+ }
}
}
}
-}
-.timeline {
- & > .panel,
- & > .modal {
- margin-bottom: $base-unit*4;
- }
-}
+ .panel-body.comment-count-container {
+ padding-bottom: 0;
-.comment-form-collapsed {
- .comment-form {
- .tc-textarea {
- textarea {
- min-height: 0;
- height: 40px !important;
- resize: none;
- overflow: hidden;
- margin-bottom: 0;
+ .card-body {
+ padding-bottom: 0;
+
+ &.comment-section {
+ hr.no-margin {
+ margin-bottom: 0;
+ }
}
}
}
-}
-.panel-body.comment-count-container {
- padding-bottom: 0;
+ .comment-panel-body,
+ .topic-panel-body {
+ position: relative;
+ margin-bottom: 10px;
+ line-height: 20px;
+ }
- .card-body {
- padding-bottom: 0;
+ .editing-layer {
+ z-index: 21;
+ top: 0;
+ left: 0;
+ height: 100%;
+ width: 100%;
+ position: absolute;
+ background-color: whitesmoke;
+ opacity: 0.7;
- &.comment-section {
- hr.no-margin {
- margin-bottom: 0;
- }
+ div {
+ text-align: center;
+ color: green;
+ font-weight: bold;
}
}
-}
-.comment-panel-body,
-.topic-panel-body {
- position: relative;
-}
-
-.editing-layer {
- z-index: 21;
- top: 0;
- left: 0;
- height: 100%;
- width: 100%;
- position: absolute;
- background-color: whitesmoke;
- opacity: 0.7;
-
- div {
- text-align: center;
- color: green;
- font-weight: bold;
- }
-}
+ .deleting-layer {
+ z-index: 21;
+ top: 0;
+ left: 0;
+ height: 100%;
+ width: 100%;
+ position: absolute;
+ background: $tc-dark-blue-10;
+ border-radius: 3px;
+ display: flex;
+ justify-content: center; /* align horizontal */
+ align-items: center; /* align vertical */
+ div {
+ @include roboto-bold;
+ font-size: 15px;
+ color: $tc-dark-blue-70;
+ letter-spacing: 0;
+ }
-.deleting-layer {
- z-index: 21;
- top: 0;
- left: 0;
- height: 100%;
- width: 100%;
- position: absolute;
- background: $tc-dark-blue-10;
- border-radius: 3px;
- display: flex;
- justify-content: center; /* align horizontal */
- align-items: center; /* align vertical */
- div {
- @include roboto-bold;
- font-size: 15px;
- color: $tc-dark-blue-70;
- letter-spacing: 0;
+ &:before {
+ width: 0;
+ height: 0;
+ border-top: 12px solid transparent;
+ border-bottom: 12px solid transparent;
+ border-right: 12px solid $tc-dark-blue-10;
+ content: '';
+ display: block;
+ position: absolute;
+ top: 10px;
+ left: -6px;
+ transform: rotate(-90deg);
+ z-index: 18;
+ }
}
- &:before {
- width: 0;
- height: 0;
- border-top: 12px solid transparent;
- border-bottom: 12px solid transparent;
- border-right: 12px solid $tc-dark-blue-10;
- content: '';
- display: block;
+ .delete-post-dialog {
+ padding: 50px 40px 50px 40px;
+ top: 50%;
+ left: 50%;
+ right: auto;
+ bottom: auto;
+ transform: translate(-50%, -50%);
position: absolute;
- top: 10px;
- left: -6px;
- transform: rotate(-90deg);
- z-index: 18;
+ background: white;
+ box-shadow: 0 2px 9px 0 rgba($tc-gray-90, 0.15);
+ border-radius: 6px;
}
-}
-.delete-post-dialog {
- padding: 50px 40px 50px 40px;
- top: 50%;
- left: 50%;
- right: auto;
- bottom: auto;
- transform: translate(-50%, -50%);
- position: absolute;
- background: white;
- box-shadow: 0 2px 9px 0 rgba($tc-gray-90, 0.15);
- border-radius: 6px;
-}
-
-.delete-post-dialog-overlay {
- background: rgba($tc-gray-90, 0.6);
- z-index: 20;
- position: fixed;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
-}
-
-.modal-title {
- font-family: Roboto-Medium;
- font-size: 20px;
- color: $tc-gray-80;
- line-height: 30px;
-}
-
-.modal-body {
- margin-top: 20px;
- font-family: Roboto-Regular;
- font-size: 15px;
- color: $tc-gray-60;
- line-height: 25px;
-}
+ .delete-post-dialog-overlay {
+ background: rgba($tc-gray-90, 0.6);
+ z-index: 20;
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ }
-.action-btn {
- margin-left: 10px;
-}
+ .modal-title {
+ font-family: Roboto-Medium;
+ font-size: 20px;
+ color: $tc-gray-80;
+ line-height: 30px;
+ }
-.action-area {
- margin-top: 45px;
-}
+ .modal-body {
+ margin-top: 20px;
+ font-family: Roboto-Regular;
+ font-size: 15px;
+ color: $tc-gray-60;
+ line-height: 25px;
+ }
-.dropdownContainer {
- display: inline;
+ .action-btn {
+ margin-left: 10px;
+ }
- .down-layer {
- top: 22px;
+ .action-area {
+ margin-top: 45px;
}
}
+
\ No newline at end of file
diff --git a/src/components/ActionCard/AddComment.jsx b/src/components/ActionCard/AddComment.jsx
index 1fd075fd7..0926910ee 100644
--- a/src/components/ActionCard/AddComment.jsx
+++ b/src/components/ActionCard/AddComment.jsx
@@ -29,16 +29,16 @@ export default class AddComment extends React.Component {
return (
)
}
diff --git a/src/components/ActionCard/Comment.jsx b/src/components/ActionCard/Comment.jsx
index a938c80b8..874f9fcbb 100644
--- a/src/components/ActionCard/Comment.jsx
+++ b/src/components/ActionCard/Comment.jsx
@@ -61,20 +61,20 @@ class Comment extends React.Component {
const content = message.newContent === null || message.newContent === undefined ? message.rawContent : message.newContent
return (
)
}
diff --git a/src/components/ActionCard/CommentEditToggle.jsx b/src/components/ActionCard/CommentEditToggle.jsx
index 979e93375..b04b2bf76 100644
--- a/src/components/ActionCard/CommentEditToggle.jsx
+++ b/src/components/ActionCard/CommentEditToggle.jsx
@@ -1,7 +1,8 @@
import React from 'react'
import PropTypes from 'prop-types'
import cn from 'classnames'
-import { Dropdown, DropdownItem } from 'appirio-tech-react-components'
+import Dropdown from 'appirio-tech-react-components/components/Dropdown/Dropdown'
+import DropdownItem from 'appirio-tech-react-components/components/Dropdown/DropdownItem'
import Modal from 'react-modal'
import EditComment from '../../assets/icons/ui-16px-1_edit-73.svg'
@@ -39,48 +40,48 @@ export default class CommentEditToggle extends React.Component {
const editOptions = {label:this.props.forTopic ? 'Edit post' : 'Edit comment', val:'1'}
const deleteOptions = {label:this.props.forTopic ? 'Delete post' : 'Delete comment', val:'2'}
return (
-
-
-
-
-
-
-
-
- {! this.props.hideDelete &&
+
+
+
+
+
+
+
+
+ {! this.props.hideDelete &&
}
-
-
-
-
+
+
+
+
-
+
Are you sure you want to delete this post?
-
+
-
+
This action cannot be undone.
-
+
-
- Cancel
- Delete Post
-
-
+
+ Cancel
+ Delete Post
+
+
-
+
)
diff --git a/src/components/App/App.scss b/src/components/App/App.scss
index 40905e4ad..4b9e70f43 100644
--- a/src/components/App/App.scss
+++ b/src/components/App/App.scss
@@ -1,18 +1,21 @@
-@import 'tc-styles';
+@import '~tc-ui/src/styles/tc-styles';
-body {
- min-width: 320px;
- background-color: $tc-gray-neutral-dark;
-
- iframe#tc-accounts-iframe {
- display: none;
+:global {
+ body {
+ min-width: 320px;
+ background-color: $tc-gray-neutral-dark;
+
+ iframe#tc-accounts-iframe {
+ display: none;
+ }
+ }
+
+ .ReactModal__Body--open {
+ overflow: hidden;
+ }
+
+ .ReactModal__Content--after-open {
+ outline: none;
}
}
-
-.ReactModal__Body--open {
- overflow: hidden;
-}
-
-.ReactModal__Content--after-open {
- outline: none;
-}
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/components/AuthenticatedComponent.jsx b/src/components/AuthenticatedComponent.jsx
index 9dbbbbeb5..620b27f0c 100644
--- a/src/components/AuthenticatedComponent.jsx
+++ b/src/components/AuthenticatedComponent.jsx
@@ -35,8 +35,8 @@ export function requiresAuthentication(Component) {
{
this.state.isLoggedIn === true
- ?
- : null
+ ?
+ : null
}
)
diff --git a/src/components/AvatarGroup/AvatarGroup.scss b/src/components/AvatarGroup/AvatarGroup.scss
index 7fae3e0c5..ba1e55761 100644
--- a/src/components/AvatarGroup/AvatarGroup.scss
+++ b/src/components/AvatarGroup/AvatarGroup.scss
@@ -1,15 +1,18 @@
-@import "tc-includes";
+@import '~tc-ui/src/styles/tc-includes';
-.AvatarGroup {
- display: flex;
-
- .Tooltip + .Tooltip {
- margin-left: $base_unit;
- }
-
- .Tooltip.customer-data .stack-avatar-1,
- .Tooltip.customer-data .stack-avatar-2,
- .Tooltip.customer-data .stack-avatar-3 {
- margin-left: 0;
+:global {
+ .AvatarGroup {
+ display: flex;
+
+ .Tooltip + .Tooltip {
+ margin-left: $base_unit;
+ }
+
+ .Tooltip.customer-data .stack-avatar-1,
+ .Tooltip.customer-data .stack-avatar-2,
+ .Tooltip.customer-data .stack-avatar-3 {
+ margin-left: 0;
+ }
}
}
+
\ No newline at end of file
diff --git a/src/components/BtnGroup/BtnGroup.scss b/src/components/BtnGroup/BtnGroup.scss
index 17ba45a0f..785d123e1 100644
--- a/src/components/BtnGroup/BtnGroup.scss
+++ b/src/components/BtnGroup/BtnGroup.scss
@@ -1,26 +1,29 @@
// this is to include tc styles in the output library
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.btn-group {
- > .tc-btn {
- border-radius: 0;
- border-left-width: 0;
- }
-
- > .tc-btn:first-child {
- border-radius: 2 * $corner-radius 0 0 2 * $corner-radius;
- border-left-width: 1px;
- }
-
- > .tc-btn:last-child {
- border-radius: 0 2 * $corner-radius 2 * $corner-radius 0;
- }
-
- > .tc-btn.active,
- > .tc-btn.active:hover,
- > .tc-btn.active:active {
- background: $tc-gray-20;
- box-shadow: inset 0 1px 3px 0 rgba($tc-gray-80, 0.38);
- cursor: default;
+:global {
+ .btn-group {
+ > .tc-btn {
+ border-radius: 0;
+ border-left-width: 0;
+ }
+
+ > .tc-btn:first-child {
+ border-radius: 2 * $corner-radius 0 0 2 * $corner-radius;
+ border-left-width: 1px;
+ }
+
+ > .tc-btn:last-child {
+ border-radius: 0 2 * $corner-radius 2 * $corner-radius 0;
+ }
+
+ > .tc-btn.active,
+ > .tc-btn.active:hover,
+ > .tc-btn.active:active {
+ background: $tc-gray-20;
+ box-shadow: inset 0 1px 3px 0 rgba($tc-gray-80, 0.38);
+ cursor: default;
+ }
}
}
+
\ No newline at end of file
diff --git a/src/components/CoderBot/CoderBot.jsx b/src/components/CoderBot/CoderBot.jsx
index b8eca2ee1..4265b89ec 100644
--- a/src/components/CoderBot/CoderBot.jsx
+++ b/src/components/CoderBot/CoderBot.jsx
@@ -32,7 +32,7 @@ const CoderBot = ({code, message}) => {
{ getHeading(code) }
-
+
{code !== 200 && code}
diff --git a/src/components/CoderBot/CoderBot.scss b/src/components/CoderBot/CoderBot.scss
index 08aa6512c..3962e51ab 100644
--- a/src/components/CoderBot/CoderBot.scss
+++ b/src/components/CoderBot/CoderBot.scss
@@ -1,57 +1,60 @@
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.content.content-error {
- .container {
- width: 100%;
- background: $tc-gray-neutral-dark;
- }
-}
-
-.page-error {
- border-radius:4px;
- position: relative;
- padding-top: 55px;
- text-align: center;
- min-height: 606px;
- min-width: 768px;
- width: 970px;
- margin: 20px auto 0;
- background: #ffffff;
- .icon-coder-broken {
- margin: 6% 20%;
- float: left;
- }
- background-size: 307px 300px;
- a{
- color: $tc-dark-blue;
- &:hover {
- text-decoration: underline;
+:global {
+ .content.content-error {
+ .container {
+ width: 100%;
+ background: $tc-gray-neutral-dark;
}
}
- h3{
- color: $tc-gray-70;
- @include roboto-medium;
- font-size: 48px;
- letter-spacing: 0px;
- padding: 0 168px 25px 168px;
- line-height: inherit;
- }
- p{
- text-align: left;
- padding: 0 168px;
- @include roboto;
- font-size: $tc-label-lg;
- color: $tc-gray-70;
- letter-spacing: 0px;
- line-height: 23px;
- }
- span{
- position: absolute;
- left: 49%;
- top: 45%;
- @include roboto-medium;
- font-size: 190px;
- color: $tc-orange-30;
- letter-spacing: 0px;
+
+ .page-error {
+ border-radius:4px;
+ position: relative;
+ padding-top: 55px;
+ text-align: center;
+ min-height: 606px;
+ min-width: 768px;
+ width: 970px;
+ margin: 20px auto 0;
+ background: #ffffff;
+ .icon-coder-broken {
+ margin: 6% 20%;
+ float: left;
+ }
+ background-size: 307px 300px;
+ a{
+ color: $tc-dark-blue;
+ &:hover {
+ text-decoration: underline;
+ }
+ }
+ h3{
+ color: $tc-gray-70;
+ @include roboto-medium;
+ font-size: 48px;
+ letter-spacing: 0px;
+ padding: 0 168px 25px 168px;
+ line-height: inherit;
+ }
+ p{
+ text-align: left;
+ padding: 0 168px;
+ @include roboto;
+ font-size: $tc-label-lg;
+ color: $tc-gray-70;
+ letter-spacing: 0px;
+ line-height: 23px;
+ }
+ span{
+ position: absolute;
+ left: 49%;
+ top: 45%;
+ @include roboto-medium;
+ font-size: 190px;
+ color: $tc-orange-30;
+ letter-spacing: 0px;
+ }
}
}
+
\ No newline at end of file
diff --git a/src/components/ColorSelector/ColorSelector.jsx b/src/components/ColorSelector/ColorSelector.jsx
index a710c4a07..234e2a90f 100644
--- a/src/components/ColorSelector/ColorSelector.jsx
+++ b/src/components/ColorSelector/ColorSelector.jsx
@@ -9,7 +9,7 @@ import './ColorSelector.scss'
class ColorSelector extends React.Component {
-
+
constructor(props) {
super(props)
@@ -18,7 +18,7 @@ class ColorSelector extends React.Component {
newColor: '#fff'
}
}
-
+
render() {
const {getValue, name, onChange, setValue, defaultColors } = this.props
const value = getValue() || defaultColors
@@ -42,10 +42,10 @@ class ColorSelector extends React.Component {
updateNewColorPalette(newValue)
}
-
+
return (
- }
- }
+ }
+ }
)
}
-
+
}
ColorSelector.propTypes = {
diff --git a/src/components/ColorSelector/ColorSelector.scss b/src/components/ColorSelector/ColorSelector.scss
index 0ded06f61..b8b98adfe 100644
--- a/src/components/ColorSelector/ColorSelector.scss
+++ b/src/components/ColorSelector/ColorSelector.scss
@@ -1,55 +1,66 @@
-@import "tc-includes";
-
-.colorSelector {
- text-align: center;
- .color-card{
- height: 40px;
- width: 40px;
- display: inline-block;
- border: 1px solid $tc-gray-60;
- border-radius: 4px;
- margin: 0 15px;
- position: relative;
- .remove-color {
- background-color: $tc-gray-60;
- opacity: 0.7;
- display: none;
- position: absolute;
- width: 39px;
- height: 38px;
- }
- &:hover {
+@import '~tc-ui/src/styles/tc-includes';
+
+:global {
+ .colorSelector {
+ text-align: center;
+
+ .color-card {
+ height: 40px;
+ width: 40px;
+ display: inline-block;
+ border: 1px solid $tc-gray-60;
+ border-radius: 4px;
+ margin: 0 15px;
+ position: relative;
+
.remove-color {
- display: flex;
- justify-content: center;
- align-items: center;
+ background-color: $tc-gray-60;
+ opacity: 0.7;
+ display: none;
+ position: absolute;
+ width: 39px;
+ height: 38px;
+ }
+
+ &:hover {
+ .remove-color {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ }
+ }
+
+ svg {
+ position: relative;
+ border-color: $tc-gray-30;
+ margin: 10px;
}
}
- svg {
- position: relative;
- border-color: $tc-gray-30;
- margin: 10px;
- }
- }
- .picker-wrapper {
- z-index: 2;
- right: 0;
- top: 50px;
- width: 340px;
- background: white;
- position: absolute;
- display: flex;
- padding: 10px;
- box-shadow: rgba($tc-black, 0.14902) 0px 0px 0px 1px, rgba($tc-black, 0.14902) 0px 8px 16px;
- > div {
- box-shadow: none !important;
- }
- .buttons {
- width: 100px;
- .tc-btn {
- width: 100%;
- margin-top: 10px;
+
+ .picker-wrapper {
+ z-index: 2;
+ right: 0;
+ top: 50px;
+ width: 340px;
+ background: white;
+ position: absolute;
+ display: flex;
+ padding: 10px;
+ box-shadow: rgba($tc-black, 0.14902) 0px 0px 0px 1px, rgba($tc-black, 0.14902) 0px 8px 16px;
+
+ > div {
+ // box-shadow: none !important;
+ }
+
+ .buttons {
+ width: 100px;
+
+ .tc-btn {
+ width: 100%;
+ margin-top: 10px;
+ }
}
}
}
-}
\ No newline at end of file
+}
+
\ No newline at end of file
diff --git a/src/components/ConnectTerms/ConnectTerms.jsx b/src/components/ConnectTerms/ConnectTerms.jsx
index edc927f83..816769a36 100644
--- a/src/components/ConnectTerms/ConnectTerms.jsx
+++ b/src/components/ConnectTerms/ConnectTerms.jsx
@@ -4,132 +4,132 @@ require('./ConnectTerms.scss')
const ConnectTerms = () => (
-
-
TOPCODER CONNECT USER AGREEMENT
-
Date of Last Revision: Oct 04, 2017
-
This User Agreement (the "Agreement ") is a contract between you (referred to herein as "User ") and Appirio Inc. and its affiliates, d/b/a Topcoder Inc. ("Topcoder") and applies to User's use and viewing of connect.topcoder.com and related sub-domains ("Topcoder Connect ") and all services available through Topcoder Connect (the "Services "). By visiting Topcoder Connect or executing an Order Form (as defined below), User has accepted this Agreement and has agreed to be bound by the terms of this Agreement. Any Custom Software ordered (as defined below) or Services used through Topcoder Connect are also governed by these Terms. Topcoder may amend this Agreement at any time by posting a revised version on Topcoder Connect. The revised version will be effective at the time Topcoder posts it.
-
-
-
- SERVICES AND SPECIFICATIONS.
-
- Services and Deliverables. The Services may be purchased either on Topcoder Connect or pursuant to an Order Form entered into by you and Topcoder referencing this Agreement (an “Order Form ”). Topcoder agrees to provide the Services ordered on Topcoder Connect or described in an Order Form (the "Deliverables "). All Services and Deliverables are created by launching Challenges (as defined below) using Topcoder's crowdsourcing platform, available at the topcoder.com website and online and mobile tools for engaging the Topcoder community through crowdsourced competitions (the “Platform ”). For all Deliverables purchased under this Agreement, the crowdsourcing platform will be accessed by a “User Success Manager ” which may be either a Topcoder representative or a Topcoder co-pilot, which is a member of Topcoder’s crowdsourcing community who has been directed to by Topcoder to carry out certain of the Services.
- Process and Specifications for Online Orders. If ordering the Services and Deliverables online via Topcoder Connect (referred to as an “Online Order ”):
+
+
TOPCODER CONNECT USER AGREEMENT
+
Date of Last Revision: Oct 04, 2017
+
This User Agreement (the "Agreement ") is a contract between you (referred to herein as "User ") and Appirio Inc. and its affiliates, d/b/a Topcoder Inc. ("Topcoder") and applies to User's use and viewing of connect.topcoder.com and related sub-domains ("Topcoder Connect ") and all services available through Topcoder Connect (the "Services "). By visiting Topcoder Connect or executing an Order Form (as defined below), User has accepted this Agreement and has agreed to be bound by the terms of this Agreement. Any Custom Software ordered (as defined below) or Services used through Topcoder Connect are also governed by these Terms. Topcoder may amend this Agreement at any time by posting a revised version on Topcoder Connect. The revised version will be effective at the time Topcoder posts it.
+
+
+
+ SERVICES AND SPECIFICATIONS.
+
+ Services and Deliverables. The Services may be purchased either on Topcoder Connect or pursuant to an Order Form entered into by you and Topcoder referencing this Agreement (an “Order Form ”). Topcoder agrees to provide the Services ordered on Topcoder Connect or described in an Order Form (the "Deliverables "). All Services and Deliverables are created by launching Challenges (as defined below) using Topcoder's crowdsourcing platform, available at the topcoder.com website and online and mobile tools for engaging the Topcoder community through crowdsourced competitions (the “Platform ”). For all Deliverables purchased under this Agreement, the crowdsourcing platform will be accessed by a “User Success Manager ” which may be either a Topcoder representative or a Topcoder co-pilot, which is a member of Topcoder’s crowdsourcing community who has been directed to by Topcoder to carry out certain of the Services.
+ Process and Specifications for Online Orders. If ordering the Services and Deliverables online via Topcoder Connect (referred to as an “Online Order ”):
To utilize the Services, User has provided specifications with respect to the Deliverables in reasonable detail as prompted in several fields on webpages associated with Topcoder Connect where the User was requested to enter information regarding the intended Deliverable(s) (such information, the "Preliminary Specifications "). After payment of Project Fees (as defined below) associated with the Deliverable, a User Success Manager shall contact User to gather additional information regarding the Deliverables, as may be necessary in Topcoder's sole discretion. Topcoder and User shall mutually agree on a final set of specifications, which shall be referred to herein as the "Specifications ". As part of this process, Topcoder may provide services to User on an hourly basis as may be mutually agreed by the parties.
To the extent the parties are not able to reach agreement on the Specifications, including, but not limited to situations where the information provided by User is insufficient to create Specifications or the Preliminary Specifications are outside the scope of the services described on Topcoder Connect, Topcoder shall refund to User any Project Fees paid by User (excluding fees associated with hourly services previously provided) and Topcoder shall have no further liability or obligations under this Agreement.
-
- Services Purchased with an Order Form. If purchasing the Services and Deliverables via an Order Form (an “Order Form Purchase ”), the Specifications are those mutually agreed upon specifications as described in the Order Form.
-
-
-
-
- DEFINITIONS.
- For the purposes of this Agreement, the following capitalized terms have the meanings assigned to them in this Section 2. Any capitalized terms used in this Agreement but not otherwise defined in this Section shall have the meanings assigned to them elsewhere in this Agreement.
-
- “Project Fees” : The fees associated with the Services and the creation of the Deliverables as either specified on Topcoder Connect (or as may be further mutually agreed between the parties with respect to an Online Order) or mutually agreed in an Order Form.
- “Challenge” : An online innovation competition run exclusively on the Platform (as defined below) utilizing the Topcoder Community. Challenges may also be referred to as "Competitions" or "Contests."
- “Effective Date” : For Online Orders, the Effective Date is the date that User registers to use Topcoder Connect and pays Project Fees associated therewith. For Order Form Purchases, the Effective Date is the date listed on the Order Form as the “Effective Date.”
- “Topcoder Community” : Members of Topcoder’s global development community
-
-
-
-
- THE PLATFORM.
- Using Topcoder Connect allows User to utilize the Topcoder Community indirectly through the User Success Manager only. To the extent User desires to access the Topcoder Platform and/or launch Challenges directly, User must enter into a separate agreement with Topcoder to purchase challenges and/or a subscription for such services. Contact Topcoder by email to support@topcoder.com for more details about subscription pricing and fees associated with Challenges when utilized with a subscription.
-
-
-
- TITLE AND OWNERSHIP.
-
- Title to the Platform . Topcoder retains all right, title and interest in and to the Platform, tools and associated documentation or materials. Any use of the Platform, tools or associated documentation or materials beyond the scope of the rights expressly granted in this Agreement is prohibited and shall constitute a breach of this Agreement, pursuant to which Topcoder may immediately terminate this Agreement and any work-in-progress. User shall retain Topcoder's copyright notices and authorship credits in the Platform, tools and associated documentation or materials.
- Submissions . For design Challenges, Challenge submissions may be provided to, or otherwise made available to, User for User review and selection of a winning Challenge submission. User shall select one (1) winning design Challenge submission (the "Winning Submission ") and shall notify the User Success Manager promptly of such Winning Submission. For all other types of Challenges (other than design Challenges), the Winning Submission shall be the submission with the highest score based on Topcoder’s standard community review and scoring processes. Unless otherwise agreed to by the parties pursuant to this Section 4.2, User acknowledges and agrees that it will obtain rights solely in and to the Winning Submission, as further described in Section 7.2, and no other Challenge submissions. The rights in and to any Challenge submissions other than the Winning Submission shall be retained by the member of the Topcoder Community who submitted such Challenge submission and, for the purposes of this Agreement, such Challenge submissions shall be deemed to be Topcoder Confidential Information. Upon mutual agreement of the parties, User may purchase more than one (1) Challenge submission and Topcoder shall invoice User for such additional payment necessary to purchase such additional Challenge submission(s), and upon Topcoder's receipt of such payment, such purchased additional Challenge submission(s) shall also be deemed to be Winning Submissions.
-
-
-
-
- PAYMENT.
- All Project Fees are due and payable fifteen (15) days from the date of invoice. User is responsible for paying all Project Fees in a timely manner and for providing Topcoder with a valid payment method for all Project Fees. The parties understand and acknowledge that Topcoder is under no obligation to provide any Services or deliver any Deliverables until the Project Fees are paid in full, using the payment method Topcoder determines to be acceptable as described on Topcoder Connect and/or any invoices issued in relation thereto or pursuant to an Order Form. User agrees that Topcoder may charge the payment method provided by User for all Project Fees and User represents and warrants that User has the legal right to use any credit cards or other payment means used to initiate any transaction. User agrees to pay all charges incurred by User at the prices in effect when such charges are incurred. User will also be responsible for paying any applicable taxes relating to User's purchases. Except as explicitly set forth in Section 1 or Section 10.1, all Project Fees are final and non-refundable.
-
-
-
-
- TERM AND TERMINATION.
- This Agreement will begin on the Effective Date and will continue unless terminated as set forth in this Agreement ("Term "). Either party may terminate this Agreement if the other party: (a) fails to cure any material breach of this Agreement within thirty (30) days after written notice of such breach; (b) ceases operation without a successor; or (c) seeks protection under any bankruptcy or comparable proceeding, or if any such proceeding is instituted against such party (and not dismissed within sixty (60) days thereafter). Section 5 (Payment), Section 6 (Term and Termination), Section 8 (Confidential Information), Section 9 (Limitation of Liability), and Section 13 (General) of this Agreement shall survive any termination or expiration hereof.
-
-
-
-
- CROWDSOURCING CHALLENGES AND SOFTWARE.
-
- Challenges . Topcoder will conduct Challenges for User on the Platform among members of the Topcoder Community using the Platform tools to provide the Services. Topcoder shall have final control over all Challenge documents (e.g., specifications, contest rules and requirements, prizes, etc.).
- Custom Software . Subject to payment in full of all Project Fees, Topcoder does hereby assign and agrees to assign to User all right, title and interest to work product, other than Licensed Software and Third-Party Software (each, as defined below), resultant of the Winning Submission (the "Custom Software "). Under no circumstances shall the Platform, tools or documentation be deemed to be included in the Custom Software.
- Third-Party Software . If the Specifications (as mutually agreed by the parties) provide for the Custom Software to interface with, accompany, or include software or material not developed by Topcoder or its affiliates, including any open source software ("Third-Party Software "), any such Third-Party Software shall be subject to its own terms and conditions, and shall not be considered part of the Custom Software or the Licensed Software under this Agreement. Third-Party Software shall accompany or be included in Custom Software only with User's permission. User shall bear all license fees and other expenses, if any, applicable to such Third-Party Software.
- Export Compliance . Regardless of whether User is a U.S.-based entity, User shall not export or re-export any of the Custom Software, Third-Party Software or Licensed Software (in whole or in part) to any country without ensuring that such export complies with the Export Administration Regulations of the U.S. Department of Commerce, and any other applicable statute, regulation, or government order. User warrants that it is not named on any U.S. government denied-party list.
-
-
-
-
-
- CONFIDENTIAL INFORMATION.
-
- Confidential Information . "Confidential Information " means information which provided by either party under this Agreement (in such capacity, the "Disclosing Party ") to the other party (in such capacity, the "Receiving Party ") which is proprietary, trade secret and/or confidential, including, but not limited to, techniques, designs, specifications, drawings, blueprints, tracings, diagrams, models, samples, flow charts, data, computer programs, disks, diskettes, tapes, business plans, marketing plans, User names and other technical, financial or commercial information and intellectual property. For the avoidance of doubt, the Platform, tools and associated documentation or materials, and any other information that Topcoder provides to User hereunder that should reasonably be known to be confidential, shall constitute Topcoder's Confidential Information. Expect as expressly authorized herein, the Receiving Party will hold in confidence and not use or disclose any Confidential Information.
- Exceptions . These confidentiality obligations shall not apply to any Confidential Information which: (a) is generally known to the public at the time of disclosure or later becomes so generally known (including Confidential Information which is disclosed as part of a Challenge); and (b) is required by law, court order or a governmental agency to be disclosed
- Title and License to User's Confidential Information . All right, title, and ownership to Confidential Information provided by User hereunder, including the Preliminary Specifications, remains with User. User represents that it has all rights in the Confidential Information necessary to include it in a Challenge. User hereby grants to Topcoder a license to use such Confidential Information provided by User solely for the purposes of providing the Services, including conducting the applicable Challenges.
- Equitable Relief . The Receiving Party acknowledges that disclosure of Confidential Information would cause substantial harm for which damages alone may not be a sufficient remedy, and therefore that upon any such disclosure by the Receiving Party the Disclosing Party shall be entitled to seek appropriate equitable relief in addition to whatever other remedies it might have at law.
- Confidentiality on the Platform. User acknowledges and agrees that members of the Topcoder Community are not bound by the confidentiality obligations under this Section 8 and User acknowledges that any Specifications, information contained in an Order Form or other information that the Topcoder Community is provided in connection with the Services (except for personally identifiable information or payment information) is not Confidential Information.
-
-
-
-
- LIMITATION OF LIABILITY.
- NEITHER PARTY WILL BE LIABLE FOR ANY LOSS OF USE, INTERRUPTION OF BUSINESS, LOST PROFITS, OR ANY INDIRECT, PUNITIVE, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY KIND REGARDLESS OF THE FORM OF ACTION WHETHER IN CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT PRODUCT LIABILITY, OR OTHERWISE, EVEN IF IT HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. IN NO EVENT SHALL TOPCODER'S LIABILITY TO USER EXCEED THE PROJECT FEES PAID BY USER TO TOPCODER. THE EXISTENCE OF ONE OR MORE CLAIMS WILL NOT ENLARGE THIS LIMIT. THE PARTIES AGREE THAT THE LIMITATIONS SPECIFIED IN THIS SECTION 8 WILL SURVIVE AND APPLY EVEN IF ANY LIMITED REMEDY SPECIFIED IN THIS AGREEMENT IS FOUND TO HAVE FAILED OF ITS ESSENTIAL PURPOSE
-
-
-
- WARRANTY.
-
- Limited Warranty . For a period of ten (10) days from the provision of the Challenge submissions to the User, Topcoder warrants that the Custom Software will materially conform to the Specifications. If the Custom Software does not materially conform to the Specifications, User shall, within ten (10) days from the provision of the Challenge submissions to the Customer, notify Topcoder in writing of and adequately describe any such non-conformance, and User's exclusive remedy and Topcoder's sole obligation shall be to, at Topcoder' sole discretion, either (1) investigate the errors and use commercially reasonable efforts to bring the Custom Software into material conformance with the Specifications; or (2) refund or credit the Project Fees paid for that Custom Software. The warranty set forth in this section does not apply to Custom Software that have been modified, damaged or operated contrary to the Specifications.
- Disclaimer . THE FOREGOING WARRANTIES ARE EXCLUSIVE REMEDIES AND ARE IN LIEU OF ALL OTHER REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, STATUTORY OR OTHERWISE RELATED TO THIS AGREEMENT, INCLUDING TOPCODER CONNECT, THE SERVICES AND THE DELIVERABLES, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE, TITLE, OR NONINFRINGEMENT. TOPCODER MAKES NO OTHER WARRANTY OF ANY KIND TO USER OR TO ANY OTHER PARTY. The parties acknowledge and agree that the Project Fees charged by Topcoder under this Agreement reflect the allocation of risks provided by the foregoing warranty, the limitations of liability, and other terms set forth in this Agreement, and any modification of the allocation of risks would affect the Project Fees charged.
-
-
-
-
- ACCOUNT.
- User may set up an account in connection with the use of Topcoder Connect. User may not use a third party's account without permission. When setting up an account, User must supply accurate and complete information. User is solely responsibility for its account and everything that happens on its account. User shall protect its account log-in information and User shall report any unauthorized use of its account to Topcoder immediately. User may not transfer its account to any third party. Topcoder is not liable for any damages or losses caused by someone using User's account without User's permission.
-
-
-
- PRIVACY.
- User agrees to comply with all terms of the Topcoder Privacy Policy available at http://www.topcoder.com/community/how-it-works/privacy-policy/
-
-
-
- GENERAL USE OF TOPCODER CONNECT AND SERVICES.
- Except as expressly authorized hereunder, Topcoder Connect and content therein may not be reproduced, duplicated, copied, sold, resold, visited, reverse-engineered or otherwise exploited for any commercial purpose without Topcoder's prior written authorization. Topcoder reserves the right to alter or discontinue Topcoder Connect and Services, in whole or in part, at any time in Topcoder's sole discretion. Topcoder Connect is not intended for use by children under the age of 13. Parental permission is required to use this Website if the User has not reached the age of majority in the User's jurisdiction of primary residence and citizenship. The User must be at least 18 years old and have reached the age of majority in such User's jurisdiction of primary residence and citizenship to make any purchases from Topcoder Connect. Subject to and conditioned upon User's compliance with this Agreement, Topcoder grants User a non-exclusive, non-transferable, limited right and license, without right of sublicense, to access and use Topcoder Connect, including any images, text, graphics, sounds, data, links and other materials incorporated therein solely as made available by Topcoder and solely for User's own personal purposes. Except as expressly authorized by this Agreement, User may not use, reproduce, distribute, modify, transmit or publicly display any portion of Topcoder Connect or create derivative works of any portion Topcoder Connect without Topcoder's written consent. While using Topcoder Connect and the Services, User agrees not to:
-
- Impersonate any person or entity or use any fraudulent, misleading or inaccurate email address or other contact information;
- Restrict or inhibit any other user from using Topcoder Connect or the Services, including, without limitation, by means of "hacking" or defacing any portion of Topcoder Connect;
- Violate any applicable laws or regulations;
- Upload to, transmit through, or display on Topcoder Connect or via communications related to the Services (a) any material that is unlawful, fraudulent, threatening, abusive, libelous, defamatory, obscene or otherwise objectionable, or infringes our or any third party's intellectual property or other rights; (b) any confidential, proprietary or trade secret information of any third party; or (c) any advertisements, solicitations, chain letters, pyramid schemes, investment opportunities or other unsolicited commercial communication (except as otherwise expressly permitted by us);
- Engage in spamming;
- Transmit any software or other materials that contain any viruses, worms, trojan horses, defects, or other destructive items;
- Modify, adapt, translate, distribute, reverse engineer, decompile or disassemble any portion of our Sites and Apps; and
- Remove any copyright, trademark or other proprietary rights notices contained in or displayed on any portion of Topcoder Connect.
- If User fails to comply with the above rules, such failure will constitute a violation of this Agreement, and, in addition to any other rights or remedies Topcoder may have, Topcoder may immediately terminate User's access to and use of Topcoder Connect and related Services.
-
-
-
-
- GENERAL.
- Each party is an independent contractor of the other and neither is an employee, agent, partner or joint venturer of the other. Neither party shall make any commitment, by contract or otherwise, binding upon the other or represent that it has any authority to do so. This Agreement will bind and inure to the benefit of each party's permitted successors and assigns. Neither party shall assign this Agreement without the advance written consent of the other party, except that Topcoder may assign this Agreement to an affiliate or in connection with a merger, reorganization, acquisition or other transfer of all or part of Topcoder's assets or voting securities. Any notice, report, approval or consent required or permitted under this Agreement will be sent to Topcoder at c/o Appirio Inc., 201 South Capitol Avenue Ste. 1100, Indianapolis, Indiana 46225, Attention: General Counsel, Email: gc@appirio.com or to User at the contact information provided by User through Topcoder Connect or in an Order Form. Any waiver by either party of any breach of this Agreement, whether express or implied, will not constitute a waiver of any other or subsequent breach. No provision of the Agreement will be waived by any act, omission or knowledge of a party or its agents or employees except by an instrument in writing expressly waiving such provision and signed by a duly authorized officer of the waiving party. If any provision of this Agreement is adjudged by any court of competent jurisdiction to be unenforceable or invalid, that provision shall be limited or eliminated to the minimum extent necessary so that this Agreement will otherwise remain in full force and effect. Neither party shall be liable to the other for any delay of failure to perform any obligation under this Agreement (except for a failure to pay fees) if the delay or failure is due to events which are beyond the reasonable control of such party, including but not limited to any strike, blockade, war, act of terrorism, riot, natural disaster, failure or diminishment of power or of telecommunications or data networks or services, or refusal of approval or a license by a government agency. This Agreement will be deemed to have been made in, and shall be construed pursuant to the laws of the State of California without regard to its conflicts of laws provisions. The jurisdiction and venue for actions related to this Agreement shall be the state and federal courts located in San Francisco County, California and both parties hereby submit to the personal jurisdiction of such courts. Any waivers or amendments shall be effective only if made in writing signed by a representative of the respective parties authorized to bind the parties. No provision of any purchase order or other business form (including but not limited to security access forms of any kind) employed by either party will supersede the terms and conditions of this Agreement, and any such document shall be for administrative purposes only and shall have no legal effect. In the event of any inconsistency between this Agreement and the Privacy Policy on Topcoder Connect, the terms of this Agreement shall control. Both parties agree that this Agreement is the complete and exclusive statement of the mutual understanding of the parties, and supersedes and cancels all previous written and oral agreements and communications relating to the subject matter of this Agreement.
-
-
-
-
+
+
Services Purchased with an Order Form. If purchasing the Services and Deliverables via an Order Form (an “Order Form Purchase ”), the Specifications are those mutually agreed upon specifications as described in the Order Form.
+
+
+
+
+ DEFINITIONS.
+ For the purposes of this Agreement, the following capitalized terms have the meanings assigned to them in this Section 2. Any capitalized terms used in this Agreement but not otherwise defined in this Section shall have the meanings assigned to them elsewhere in this Agreement.
+
+ “Project Fees” : The fees associated with the Services and the creation of the Deliverables as either specified on Topcoder Connect (or as may be further mutually agreed between the parties with respect to an Online Order) or mutually agreed in an Order Form.
+ “Challenge” : An online innovation competition run exclusively on the Platform (as defined below) utilizing the Topcoder Community. Challenges may also be referred to as "Competitions" or "Contests."
+ “Effective Date” : For Online Orders, the Effective Date is the date that User registers to use Topcoder Connect and pays Project Fees associated therewith. For Order Form Purchases, the Effective Date is the date listed on the Order Form as the “Effective Date.”
+ “Topcoder Community” : Members of Topcoder’s global development community
+
+
+
+
+ THE PLATFORM.
+ Using Topcoder Connect allows User to utilize the Topcoder Community indirectly through the User Success Manager only. To the extent User desires to access the Topcoder Platform and/or launch Challenges directly, User must enter into a separate agreement with Topcoder to purchase challenges and/or a subscription for such services. Contact Topcoder by email to support@topcoder.com for more details about subscription pricing and fees associated with Challenges when utilized with a subscription.
+
+
+
+ TITLE AND OWNERSHIP.
+
+ Title to the Platform . Topcoder retains all right, title and interest in and to the Platform, tools and associated documentation or materials. Any use of the Platform, tools or associated documentation or materials beyond the scope of the rights expressly granted in this Agreement is prohibited and shall constitute a breach of this Agreement, pursuant to which Topcoder may immediately terminate this Agreement and any work-in-progress. User shall retain Topcoder's copyright notices and authorship credits in the Platform, tools and associated documentation or materials.
+ Submissions . For design Challenges, Challenge submissions may be provided to, or otherwise made available to, User for User review and selection of a winning Challenge submission. User shall select one (1) winning design Challenge submission (the "Winning Submission ") and shall notify the User Success Manager promptly of such Winning Submission. For all other types of Challenges (other than design Challenges), the Winning Submission shall be the submission with the highest score based on Topcoder’s standard community review and scoring processes. Unless otherwise agreed to by the parties pursuant to this Section 4.2, User acknowledges and agrees that it will obtain rights solely in and to the Winning Submission, as further described in Section 7.2, and no other Challenge submissions. The rights in and to any Challenge submissions other than the Winning Submission shall be retained by the member of the Topcoder Community who submitted such Challenge submission and, for the purposes of this Agreement, such Challenge submissions shall be deemed to be Topcoder Confidential Information. Upon mutual agreement of the parties, User may purchase more than one (1) Challenge submission and Topcoder shall invoice User for such additional payment necessary to purchase such additional Challenge submission(s), and upon Topcoder's receipt of such payment, such purchased additional Challenge submission(s) shall also be deemed to be Winning Submissions.
+
+
+
+
+ PAYMENT.
+ All Project Fees are due and payable fifteen (15) days from the date of invoice. User is responsible for paying all Project Fees in a timely manner and for providing Topcoder with a valid payment method for all Project Fees. The parties understand and acknowledge that Topcoder is under no obligation to provide any Services or deliver any Deliverables until the Project Fees are paid in full, using the payment method Topcoder determines to be acceptable as described on Topcoder Connect and/or any invoices issued in relation thereto or pursuant to an Order Form. User agrees that Topcoder may charge the payment method provided by User for all Project Fees and User represents and warrants that User has the legal right to use any credit cards or other payment means used to initiate any transaction. User agrees to pay all charges incurred by User at the prices in effect when such charges are incurred. User will also be responsible for paying any applicable taxes relating to User's purchases. Except as explicitly set forth in Section 1 or Section 10.1, all Project Fees are final and non-refundable.
+
+
+
+
+ TERM AND TERMINATION.
+ This Agreement will begin on the Effective Date and will continue unless terminated as set forth in this Agreement ("Term "). Either party may terminate this Agreement if the other party: (a) fails to cure any material breach of this Agreement within thirty (30) days after written notice of such breach; (b) ceases operation without a successor; or (c) seeks protection under any bankruptcy or comparable proceeding, or if any such proceeding is instituted against such party (and not dismissed within sixty (60) days thereafter). Section 5 (Payment), Section 6 (Term and Termination), Section 8 (Confidential Information), Section 9 (Limitation of Liability), and Section 13 (General) of this Agreement shall survive any termination or expiration hereof.
+
+
+
+
+ CROWDSOURCING CHALLENGES AND SOFTWARE.
+
+ Challenges . Topcoder will conduct Challenges for User on the Platform among members of the Topcoder Community using the Platform tools to provide the Services. Topcoder shall have final control over all Challenge documents (e.g., specifications, contest rules and requirements, prizes, etc.).
+ Custom Software . Subject to payment in full of all Project Fees, Topcoder does hereby assign and agrees to assign to User all right, title and interest to work product, other than Licensed Software and Third-Party Software (each, as defined below), resultant of the Winning Submission (the "Custom Software "). Under no circumstances shall the Platform, tools or documentation be deemed to be included in the Custom Software.
+ Third-Party Software . If the Specifications (as mutually agreed by the parties) provide for the Custom Software to interface with, accompany, or include software or material not developed by Topcoder or its affiliates, including any open source software ("Third-Party Software "), any such Third-Party Software shall be subject to its own terms and conditions, and shall not be considered part of the Custom Software or the Licensed Software under this Agreement. Third-Party Software shall accompany or be included in Custom Software only with User's permission. User shall bear all license fees and other expenses, if any, applicable to such Third-Party Software.
+ Export Compliance . Regardless of whether User is a U.S.-based entity, User shall not export or re-export any of the Custom Software, Third-Party Software or Licensed Software (in whole or in part) to any country without ensuring that such export complies with the Export Administration Regulations of the U.S. Department of Commerce, and any other applicable statute, regulation, or government order. User warrants that it is not named on any U.S. government denied-party list.
+
+
+
+
+
+ CONFIDENTIAL INFORMATION.
+
+ Confidential Information . "Confidential Information " means information which provided by either party under this Agreement (in such capacity, the "Disclosing Party ") to the other party (in such capacity, the "Receiving Party ") which is proprietary, trade secret and/or confidential, including, but not limited to, techniques, designs, specifications, drawings, blueprints, tracings, diagrams, models, samples, flow charts, data, computer programs, disks, diskettes, tapes, business plans, marketing plans, User names and other technical, financial or commercial information and intellectual property. For the avoidance of doubt, the Platform, tools and associated documentation or materials, and any other information that Topcoder provides to User hereunder that should reasonably be known to be confidential, shall constitute Topcoder's Confidential Information. Expect as expressly authorized herein, the Receiving Party will hold in confidence and not use or disclose any Confidential Information.
+ Exceptions . These confidentiality obligations shall not apply to any Confidential Information which: (a) is generally known to the public at the time of disclosure or later becomes so generally known (including Confidential Information which is disclosed as part of a Challenge); and (b) is required by law, court order or a governmental agency to be disclosed
+ Title and License to User's Confidential Information . All right, title, and ownership to Confidential Information provided by User hereunder, including the Preliminary Specifications, remains with User. User represents that it has all rights in the Confidential Information necessary to include it in a Challenge. User hereby grants to Topcoder a license to use such Confidential Information provided by User solely for the purposes of providing the Services, including conducting the applicable Challenges.
+ Equitable Relief . The Receiving Party acknowledges that disclosure of Confidential Information would cause substantial harm for which damages alone may not be a sufficient remedy, and therefore that upon any such disclosure by the Receiving Party the Disclosing Party shall be entitled to seek appropriate equitable relief in addition to whatever other remedies it might have at law.
+ Confidentiality on the Platform. User acknowledges and agrees that members of the Topcoder Community are not bound by the confidentiality obligations under this Section 8 and User acknowledges that any Specifications, information contained in an Order Form or other information that the Topcoder Community is provided in connection with the Services (except for personally identifiable information or payment information) is not Confidential Information.
+
+
+
+
+ LIMITATION OF LIABILITY.
+ NEITHER PARTY WILL BE LIABLE FOR ANY LOSS OF USE, INTERRUPTION OF BUSINESS, LOST PROFITS, OR ANY INDIRECT, PUNITIVE, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY KIND REGARDLESS OF THE FORM OF ACTION WHETHER IN CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT PRODUCT LIABILITY, OR OTHERWISE, EVEN IF IT HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. IN NO EVENT SHALL TOPCODER'S LIABILITY TO USER EXCEED THE PROJECT FEES PAID BY USER TO TOPCODER. THE EXISTENCE OF ONE OR MORE CLAIMS WILL NOT ENLARGE THIS LIMIT. THE PARTIES AGREE THAT THE LIMITATIONS SPECIFIED IN THIS SECTION 8 WILL SURVIVE AND APPLY EVEN IF ANY LIMITED REMEDY SPECIFIED IN THIS AGREEMENT IS FOUND TO HAVE FAILED OF ITS ESSENTIAL PURPOSE
+
+
+
+ WARRANTY.
+
+ Limited Warranty . For a period of ten (10) days from the provision of the Challenge submissions to the User, Topcoder warrants that the Custom Software will materially conform to the Specifications. If the Custom Software does not materially conform to the Specifications, User shall, within ten (10) days from the provision of the Challenge submissions to the Customer, notify Topcoder in writing of and adequately describe any such non-conformance, and User's exclusive remedy and Topcoder's sole obligation shall be to, at Topcoder' sole discretion, either (1) investigate the errors and use commercially reasonable efforts to bring the Custom Software into material conformance with the Specifications; or (2) refund or credit the Project Fees paid for that Custom Software. The warranty set forth in this section does not apply to Custom Software that have been modified, damaged or operated contrary to the Specifications.
+ Disclaimer . THE FOREGOING WARRANTIES ARE EXCLUSIVE REMEDIES AND ARE IN LIEU OF ALL OTHER REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, STATUTORY OR OTHERWISE RELATED TO THIS AGREEMENT, INCLUDING TOPCODER CONNECT, THE SERVICES AND THE DELIVERABLES, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE, TITLE, OR NONINFRINGEMENT. TOPCODER MAKES NO OTHER WARRANTY OF ANY KIND TO USER OR TO ANY OTHER PARTY. The parties acknowledge and agree that the Project Fees charged by Topcoder under this Agreement reflect the allocation of risks provided by the foregoing warranty, the limitations of liability, and other terms set forth in this Agreement, and any modification of the allocation of risks would affect the Project Fees charged.
+
+
+
+
+ ACCOUNT.
+ User may set up an account in connection with the use of Topcoder Connect. User may not use a third party's account without permission. When setting up an account, User must supply accurate and complete information. User is solely responsibility for its account and everything that happens on its account. User shall protect its account log-in information and User shall report any unauthorized use of its account to Topcoder immediately. User may not transfer its account to any third party. Topcoder is not liable for any damages or losses caused by someone using User's account without User's permission.
+
+
+
+ PRIVACY.
+ User agrees to comply with all terms of the Topcoder Privacy Policy available at http://www.topcoder.com/community/how-it-works/privacy-policy/
+
+
+
+ GENERAL USE OF TOPCODER CONNECT AND SERVICES.
+ Except as expressly authorized hereunder, Topcoder Connect and content therein may not be reproduced, duplicated, copied, sold, resold, visited, reverse-engineered or otherwise exploited for any commercial purpose without Topcoder's prior written authorization. Topcoder reserves the right to alter or discontinue Topcoder Connect and Services, in whole or in part, at any time in Topcoder's sole discretion. Topcoder Connect is not intended for use by children under the age of 13. Parental permission is required to use this Website if the User has not reached the age of majority in the User's jurisdiction of primary residence and citizenship. The User must be at least 18 years old and have reached the age of majority in such User's jurisdiction of primary residence and citizenship to make any purchases from Topcoder Connect. Subject to and conditioned upon User's compliance with this Agreement, Topcoder grants User a non-exclusive, non-transferable, limited right and license, without right of sublicense, to access and use Topcoder Connect, including any images, text, graphics, sounds, data, links and other materials incorporated therein solely as made available by Topcoder and solely for User's own personal purposes. Except as expressly authorized by this Agreement, User may not use, reproduce, distribute, modify, transmit or publicly display any portion of Topcoder Connect or create derivative works of any portion Topcoder Connect without Topcoder's written consent. While using Topcoder Connect and the Services, User agrees not to:
+
+ Impersonate any person or entity or use any fraudulent, misleading or inaccurate email address or other contact information;
+ Restrict or inhibit any other user from using Topcoder Connect or the Services, including, without limitation, by means of "hacking" or defacing any portion of Topcoder Connect;
+ Violate any applicable laws or regulations;
+ Upload to, transmit through, or display on Topcoder Connect or via communications related to the Services (a) any material that is unlawful, fraudulent, threatening, abusive, libelous, defamatory, obscene or otherwise objectionable, or infringes our or any third party's intellectual property or other rights; (b) any confidential, proprietary or trade secret information of any third party; or (c) any advertisements, solicitations, chain letters, pyramid schemes, investment opportunities or other unsolicited commercial communication (except as otherwise expressly permitted by us);
+ Engage in spamming;
+ Transmit any software or other materials that contain any viruses, worms, trojan horses, defects, or other destructive items;
+ Modify, adapt, translate, distribute, reverse engineer, decompile or disassemble any portion of our Sites and Apps; and
+ Remove any copyright, trademark or other proprietary rights notices contained in or displayed on any portion of Topcoder Connect.
+ If User fails to comply with the above rules, such failure will constitute a violation of this Agreement, and, in addition to any other rights or remedies Topcoder may have, Topcoder may immediately terminate User's access to and use of Topcoder Connect and related Services.
+
+
+
+
+ GENERAL.
+ Each party is an independent contractor of the other and neither is an employee, agent, partner or joint venturer of the other. Neither party shall make any commitment, by contract or otherwise, binding upon the other or represent that it has any authority to do so. This Agreement will bind and inure to the benefit of each party's permitted successors and assigns. Neither party shall assign this Agreement without the advance written consent of the other party, except that Topcoder may assign this Agreement to an affiliate or in connection with a merger, reorganization, acquisition or other transfer of all or part of Topcoder's assets or voting securities. Any notice, report, approval or consent required or permitted under this Agreement will be sent to Topcoder at c/o Appirio Inc., 201 South Capitol Avenue Ste. 1100, Indianapolis, Indiana 46225, Attention: General Counsel, Email: gc@appirio.com or to User at the contact information provided by User through Topcoder Connect or in an Order Form. Any waiver by either party of any breach of this Agreement, whether express or implied, will not constitute a waiver of any other or subsequent breach. No provision of the Agreement will be waived by any act, omission or knowledge of a party or its agents or employees except by an instrument in writing expressly waiving such provision and signed by a duly authorized officer of the waiving party. If any provision of this Agreement is adjudged by any court of competent jurisdiction to be unenforceable or invalid, that provision shall be limited or eliminated to the minimum extent necessary so that this Agreement will otherwise remain in full force and effect. Neither party shall be liable to the other for any delay of failure to perform any obligation under this Agreement (except for a failure to pay fees) if the delay or failure is due to events which are beyond the reasonable control of such party, including but not limited to any strike, blockade, war, act of terrorism, riot, natural disaster, failure or diminishment of power or of telecommunications or data networks or services, or refusal of approval or a license by a government agency. This Agreement will be deemed to have been made in, and shall be construed pursuant to the laws of the State of California without regard to its conflicts of laws provisions. The jurisdiction and venue for actions related to this Agreement shall be the state and federal courts located in San Francisco County, California and both parties hereby submit to the personal jurisdiction of such courts. Any waivers or amendments shall be effective only if made in writing signed by a representative of the respective parties authorized to bind the parties. No provision of any purchase order or other business form (including but not limited to security access forms of any kind) employed by either party will supersede the terms and conditions of this Agreement, and any such document shall be for administrative purposes only and shall have no legal effect. In the event of any inconsistency between this Agreement and the Privacy Policy on Topcoder Connect, the terms of this Agreement shall control. Both parties agree that this Agreement is the complete and exclusive statement of the mutual understanding of the parties, and supersedes and cancels all previous written and oral agreements and communications relating to the subject matter of this Agreement.
+
+
+
+
+
-
)
export default ConnectTerms
diff --git a/src/components/ConnectTerms/ConnectTerms.scss b/src/components/ConnectTerms/ConnectTerms.scss
index a7b18238c..eccef49f4 100644
--- a/src/components/ConnectTerms/ConnectTerms.scss
+++ b/src/components/ConnectTerms/ConnectTerms.scss
@@ -1,138 +1,141 @@
-@import 'tc-includes';
-
-.terms-page-wrapper {
- text-align: center;
- padding-right: 40px;
- padding-left: 40px;
- padding-bottom: 40px;
- @include roboto-light;
-
- .terms-page {
- display: block;
- max-width: 960px;
- padding: 70px 100px;
- margin: 20px auto;
- text-align: left;
- background: $tc-white;
- box-shadow: 0px 1px 3px 0px $tc-gray-30;
- border-radius: 6px;
-
- strong {
- @include roboto-bold;
- }
-
- h1,
- h2,
- h3 {
- text-transform: uppercase;
- color: $tc-gray-80;
- }
-
- ol {
+@import '~tc-ui/src/styles/tc-includes';
+
+:global {
+ .terms-page-wrapper {
+ text-align: center;
+ padding-right: 40px;
+ padding-left: 40px;
+ padding-bottom: 40px;
+ @include roboto-light;
+
+ .terms-page {
+ display: block;
+ max-width: 960px;
+ padding: 70px 100px;
+ margin: 20px auto;
+ text-align: left;
+ background: $tc-white;
+ box-shadow: 0px 1px 3px 0px $tc-gray-30;
+ border-radius: 6px;
+
+ strong {
+ @include roboto-bold;
+ }
+
h1,
h2,
h3 {
- display: inline-block;
+ text-transform: uppercase;
+ color: $tc-gray-80;
}
- }
-
- h1 {
- font-size: 28px;
- line-height: 35px;
- font-weight: 300;
- padding-bottom: 15px;
- }
-
- h2 {
- font-size: 20px;
- line-height: 30px;
- padding-bottom: 0;
- padding-top: 10px;
- font-weight: 500;
- }
-
- h3 {
- font-size: 16px;
- line-height: 25px;
- padding-bottom: 0;
- padding-top: 10px;
- font-weight: bold;
- }
-
- p {
- @include roboto;
- font-size: 16px;
- line-height: 25px;
- color: $tc-gray-80;
- font-weight: 300;
- padding-bottom: 1em;
- }
-
- a {
- color: $tc-dark-blue;
-
- &:hover {
- text-decoration: underline;
+
+ ol {
+ h1,
+ h2,
+ h3 {
+ display: inline-block;
+ }
}
- }
-
- ol {
- list-style: none;
- padding-left: 1em;
- padding-bottom: 1em;
- font-weight: bold;
-
- li {
- @include roboto-light;
+
+ h1 {
+ font-size: 28px;
+ line-height: 35px;
+ font-weight: 300;
+ padding-bottom: 15px;
+ }
+
+ h2 {
+ font-size: 20px;
+ line-height: 30px;
+ padding-bottom: 0;
+ padding-top: 10px;
+ font-weight: 500;
+ }
+
+ h3 {
+ font-size: 16px;
+ line-height: 25px;
+ padding-bottom: 0;
+ padding-top: 10px;
+ font-weight: bold;
+ }
+
+ p {
+ @include roboto;
font-size: 16px;
line-height: 25px;
color: $tc-gray-80;
+ font-weight: 300;
padding-bottom: 1em;
+ }
+
+ a {
+ color: $tc-dark-blue;
+
+ &:hover {
+ text-decoration: underline;
+ }
+ }
+
+ ol {
+ list-style: none;
padding-left: 1em;
- font-weight: 300;
+ padding-bottom: 1em;
+ font-weight: bold;
+
+ li {
+ @include roboto-light;
+ font-size: 16px;
+ line-height: 25px;
+ color: $tc-gray-80;
+ padding-bottom: 1em;
+ padding-left: 1em;
+ font-weight: 300;
+ }
+
+ & > li:before {
+ content: counters(item, ".") " ";
+ counter-increment: item;
+ display: inline-block;
+ margin-left: -2em;
+ padding-right: 1em;
+ width: 2em;
+ font-weight: 500;
+ }
}
-
- & > li:before {
- content: counters(item, ".") " ";
- counter-increment: item;
- display: inline-block;
- margin-left: -2em;
- padding-right: 1em;
- width: 2em;
- font-weight: 500;
+
+ li.heading:before {
+ font-size: 20px;
+ line-height: 30px;
+ padding: 10px 10px 0 0;
+ width: auto;
}
- }
-
- li.heading:before {
- font-size: 20px;
- line-height: 30px;
- padding: 10px 10px 0 0;
- width: auto;
- }
-
- ol {
- list-style-type: none;
- counter-reset: item;
- }
-
- ul {
- list-style-type: disc;
- list-style-position: inside;
-
- & > li {
- padding-left: 0;
+
+ ol {
+ list-style-type: none;
+ counter-reset: item;
+ }
+
+ ul {
+ list-style-type: disc;
+ list-style-position: inside;
+
+ & > li {
+ padding-left: 0;
+ }
+ }
+
+ li > ul {
+ margin-top: 15px;
+ }
+
+ small {
+ font-size: 12px;
+ color: $tc-gray-50;
+ line-height: 25px;
+ margin-bottom: 25px;
}
- }
-
- li > ul {
- margin-top: 15px;
- }
-
- small {
- font-size: 12px;
- color: $tc-gray-50;
- line-height: 25px;
- margin-bottom: 25px;
}
}
-}
\ No newline at end of file
+}
+
\ No newline at end of file
diff --git a/src/components/EndOfResults/EndOfResults.scss b/src/components/EndOfResults/EndOfResults.scss
index f3f49d2a9..f3df905f6 100644
--- a/src/components/EndOfResults/EndOfResults.scss
+++ b/src/components/EndOfResults/EndOfResults.scss
@@ -1,8 +1,11 @@
@import '~tc-ui/src/styles/tc-includes';
-.end-of-results {
- margin: 20px auto;
- text-align: center;
- font-size: 12px;
- color: $tc-gray-50;
+:global {
+ .end-of-results {
+ margin: 20px auto;
+ text-align: center;
+ font-size: 12px;
+ color: $tc-gray-50;
+ }
}
+
\ No newline at end of file
diff --git a/src/components/Feed/Feed.jsx b/src/components/Feed/Feed.jsx
index b9fee19f8..4d6c9b71e 100644
--- a/src/components/Feed/Feed.jsx
+++ b/src/components/Feed/Feed.jsx
@@ -56,7 +56,7 @@ class Feed extends React.Component {
return (
{editTopicMode && (
-
+ />
)}
{!editTopicMode && (
-
-
-
-
-
{title}
- {self && (
-
0}
- onEdit={this.onEditTopic}
- onDelete={onDeleteTopic}
- />
- )}
+
+
-
-
- { authorName }
+
+
+
{title}
+ {self && (
+
0}
+ onEdit={this.onEditTopic}
+ onDelete={onDeleteTopic}
+ />
+ )}
-
-
{moment(date).fromNow()}
+
+
+ { authorName }
+
+
+ {moment(date).fromNow()}
+
+
-
-
-
+
)}
{
this.setState({showAll: true})
- // TODO - handle the case when a topic has more than 20 comments
- // since those will have to retrieved from the server
+ // TODO - handle the case when a topic has more than 20 comments
+ // since those will have to retrieved from the server
if (!isLoadingComments) {
onLoadMoreComments()
}
@@ -53,45 +53,44 @@ class FeedComments extends React.Component {
// }
return (
-
-
-
-
-
-
- {getCommentCount(totalComments)}
+
+
+
+
+
+
+ {getCommentCount(totalComments)}
+
+ {hasMoreComments &&
}
-
- {hasMoreComments &&
}
-
-
- {comments.map((item, idx) =>
-
-
-
- )}
- {allowComments &&
+
+ {comments.map((item, idx) => (
+
+
+
+ ))}
+ {allowComments &&
}
-
- )
+
+ )
}
}
FeedComments.propTypes = {
diff --git a/src/components/Feed/NewPost.jsx b/src/components/Feed/NewPost.jsx
index 9c4a67e37..72f9d48f9 100644
--- a/src/components/Feed/NewPost.jsx
+++ b/src/components/Feed/NewPost.jsx
@@ -25,15 +25,15 @@ class NewPost extends React.Component {
return (
)
}
diff --git a/src/components/Feed/draftjs.scss b/src/components/Feed/draftjs.scss
index a5cc1ef4d..10aa48116 100644
--- a/src/components/Feed/draftjs.scss
+++ b/src/components/Feed/draftjs.scss
@@ -1,110 +1,74 @@
-@import "tc-includes";
+@import '~tc-ui/src/styles/tc-includes';
-.collapsedEditor {
- display: none !important;
-}
-
-.expandedEditor {
- display: block !important;
-}
-
-.new-post-composer {
- .modal-title {
- text-transform: uppercase;
+:global {
+ .collapsedEditor {
+ display: none !important;
}
-}
-
-.public-DraftEditor-content {
- width: 100%;
- font-size: 15px;
- @include roboto;
- line-height: 20px;
- color: $tc-gray-80;
- padding-left: 10px;
- outline: none;
- background: $tc-white;
- border: 1px solid $tc-gray-20;
- box-shadow: inset 0px 0px 2px 0px rgba($tc-gray-30, 0.2);
- border-radius: 2px;
- cursor: auto;
-
- &:hover {
- border: 1px solid $tc-gray-80;
- box-shadow: inset 0px 0px 2px 0px $tc-gray-30;
+
+ .expandedEditor {
+ display: block !important;
}
-
- &:focus,
- &.focus {
- border: 1px solid $tc-dark-blue;
- outline: none;
- box-shadow: inset 0px 0px 2px 1px rgba($tc-light-blue-70, 0.4);
+
+ .new-post-composer {
+ .modal-title {
+ text-transform: uppercase;
+ }
}
- transition: .15s all;
-
- blockquote {
- @include roboto-medium;
- font-weight: 600;
- margin: $base-unit*2 0 $base-unit*2 $base-unit*6;
- padding: $base-unit*3 0 $base-unit*3 $base-unit*3;
- border-left: $corner-radius * 2 solid $tc-gray-10;
- }
-
- figure img {
- max-width: 600px;
+
+ .public-DraftEditor-content {
+ width: 100%;
+ font-size: 15px;
+ @include roboto;
+ line-height: 20px;
+ color: $tc-gray-80;
+ padding-left: 10px;
+ outline: none;
+ background: $tc-white;
+ border: 1px solid $tc-gray-20;
+ box-shadow: inset 0px 0px 2px 0px rgba($tc-gray-30, 0.2);
+ border-radius: 2px;
+ cursor: auto;
+
+ &:hover {
+ border: 1px solid $tc-gray-80;
+ box-shadow: inset 0px 0px 2px 0px $tc-gray-30;
+ }
+
+ &:focus,
+ &.focus {
+ border: 1px solid $tc-dark-blue;
+ outline: none;
+ box-shadow: inset 0px 0px 2px 1px rgba($tc-light-blue-70, 0.4);
+ }
+ transition: .15s all;
+
+ blockquote {
+ @include roboto-medium;
+ font-weight: 600;
+ margin: $base-unit*2 0 $base-unit*2 $base-unit*6;
+ padding: $base-unit*3 0 $base-unit*3 $base-unit*3;
+ border-left: $corner-radius * 2 solid $tc-gray-10;
+ }
+
+ figure img {
+ max-width: 600px;
+ }
}
-}
-
-.public-DraftStyleDefault-ul,
-.public-DraftStyleDefault-ol {
- margin: $base-unit*2 0 $base-unit*2 $base-unit*6;
-}
-
-.public-DraftStyleDefault-ol {
- list-style-type: decimal;
-}
-
-.public-DraftStyleDefault-ul {
- list-style-type: disc;
-}
-
-.public-DraftStyleDefault-pre {
- background: $tc-gray-neutral-light;
- padding: 10px;
- font-family: Roboto Mono, SF Mono, monospace;
- font-size: 13px;
- font-weight: normal;
- color: $tc-gray-90;
- border: 1px solid $tc-gray-10;
- border-radius: 4px;
-}
-
-.public-DraftStyleDefault-block {
- white-space: pre-wrap;
-}
-
-.draftjs-post {
- ul,
- ol {
+
+ .public-DraftStyleDefault-ul,
+ .public-DraftStyleDefault-ol {
margin: $base-unit*2 0 $base-unit*2 $base-unit*6;
}
-
- ul {
- list-style-type: disc;
- }
-
- ol {
+
+ .public-DraftStyleDefault-ol {
list-style-type: decimal;
}
-
- blockquote {
- @include roboto-medium;
- font-weight: 600;
- margin: $base-unit*2 0 $base-unit*2 $base-unit*6;
- padding: $base-unit*3 0 $base-unit*3 $base-unit*3;
- border-left: $corner-radius * 2 solid $tc-gray-10;
+
+ .public-DraftStyleDefault-ul {
+ list-style-type: disc;
}
-
- pre {
+
+ .public-DraftStyleDefault-pre {
background: $tc-gray-neutral-light;
padding: 10px;
font-family: Roboto Mono, SF Mono, monospace;
@@ -113,18 +77,57 @@
color: $tc-gray-90;
border: 1px solid $tc-gray-10;
border-radius: 4px;
- white-space: inherit;
}
-
- strong {
- font-weight: bold;
- }
-
- em {
- font-style: italic;
+
+ .public-DraftStyleDefault-block {
+ white-space: pre-wrap;
}
-
- img {
- max-width: 600px;
+
+ .draftjs-post {
+ ul,
+ ol {
+ margin: $base-unit*2 0 $base-unit*2 $base-unit*6;
+ }
+
+ ul {
+ list-style-type: disc;
+ }
+
+ ol {
+ list-style-type: decimal;
+ }
+
+ blockquote {
+ @include roboto-medium;
+ font-weight: 600;
+ margin: $base-unit*2 0 $base-unit*2 $base-unit*6;
+ padding: $base-unit*3 0 $base-unit*3 $base-unit*3;
+ border-left: $corner-radius * 2 solid $tc-gray-10;
+ }
+
+ pre {
+ background: $tc-gray-neutral-light;
+ padding: 10px;
+ font-family: Roboto Mono, SF Mono, monospace;
+ font-size: 13px;
+ font-weight: normal;
+ color: $tc-gray-90;
+ border: 1px solid $tc-gray-10;
+ border-radius: 4px;
+ white-space: inherit;
+ }
+
+ strong {
+ font-weight: bold;
+ }
+
+ em {
+ font-style: italic;
+ }
+
+ img {
+ max-width: 600px;
+ }
}
}
+
\ No newline at end of file
diff --git a/src/components/FileBtn/FileBtn.scss b/src/components/FileBtn/FileBtn.scss
index d18dbe85b..976459f25 100644
--- a/src/components/FileBtn/FileBtn.scss
+++ b/src/components/FileBtn/FileBtn.scss
@@ -1,35 +1,38 @@
// this is to include tc styles in the output library
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.file-btn {
- display: inline-block;
- overflow: hidden;
- position: relative;
-
- > .file {
- cursor: pointer;
- opacity: 0;
- position: absolute;
- right: 0;
- top: 0;
- font-size: 100px;
- }
-
- /* here we reproduce styles for tc-btn-default from tc-ui package */
- > .file.loading:enabled + .tc-btn-default,
- > .file:focus:enabled + .tc-btn-default {
- background: $tc-white;
- border-color: $tc-dark-blue-70;
- box-shadow: 0 0 2px 1px $tc-dark-blue-30;
- }
-
- > .file:active:enabled + .tc-btn-default,
- > .file:hover:enabled + .tc-btn-default {
- background-image: linear-gradient(0deg, #F5F5F5 0%, #FFFFFF 49%, #FFFFFF 100%);
- border-color: $tc-gray-40;
- }
-
- > .file:active:enabled + .tc-btn-default {
- box-shadow: inset 0 1px 2px 0 rgba($tc-black, 0.20);
+:global {
+ .file-btn {
+ display: inline-block;
+ overflow: hidden;
+ position: relative;
+
+ > .file {
+ cursor: pointer;
+ opacity: 0;
+ position: absolute;
+ right: 0;
+ top: 0;
+ font-size: 100px;
+ }
+
+ /* here we reproduce styles for tc-btn-default from tc-ui package */
+ > .file.loading:enabled + .tc-btn-default,
+ > .file:focus:enabled + .tc-btn-default {
+ background: $tc-white;
+ border-color: $tc-dark-blue-70;
+ box-shadow: 0 0 2px 1px $tc-dark-blue-30;
+ }
+
+ > .file:active:enabled + .tc-btn-default,
+ > .file:hover:enabled + .tc-btn-default {
+ background-image: linear-gradient(0deg, #F5F5F5 0%, #FFFFFF 49%, #FFFFFF 100%);
+ border-color: $tc-gray-40;
+ }
+
+ > .file:active:enabled + .tc-btn-default {
+ box-shadow: inset 0 1px 2px 0 rgba($tc-black, 0.20);
+ }
}
}
+
\ No newline at end of file
diff --git a/src/components/FileList/AddFiles.jsx b/src/components/FileList/AddFiles.jsx
index 5720f2623..407719dd9 100644
--- a/src/components/FileList/AddFiles.jsx
+++ b/src/components/FileList/AddFiles.jsx
@@ -1,6 +1,6 @@
import React from 'react'
import PropTypes from 'prop-types'
-import { FilePicker } from 'appirio-tech-react-components'
+import FilePicker from 'appirio-tech-react-components/components/FilePicker/FilePicker'
import './AddFiles.scss'
import { FILE_PICKER_API_KEY, FILE_PICKER_SUBMISSION_CONTAINER_NAME } from '../../config/constants'
diff --git a/src/components/FileList/AddFiles.scss b/src/components/FileList/AddFiles.scss
index a98239a71..580ca875e 100644
--- a/src/components/FileList/AddFiles.scss
+++ b/src/components/FileList/AddFiles.scss
@@ -1,14 +1,17 @@
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.add-file {
- position: relative;
- margin-top: 10px;
-
- .tc-btn {
- position: absolute;
- bottom: $base-unit*4;
- left: 50%;
- transform: translateX(-50%);
- z-index: 1;
+:global {
+ .add-file {
+ position: relative;
+ margin-top: 10px;
+
+ .tc-btn {
+ position: absolute;
+ bottom: $base-unit*4;
+ left: 50%;
+ transform: translateX(-50%);
+ z-index: 1;
+ }
}
-}
\ No newline at end of file
+}
+
\ No newline at end of file
diff --git a/src/components/FileList/FileIcons.jsx b/src/components/FileList/FileIcons.jsx
index cb4247b00..9f8cba099 100644
--- a/src/components/FileList/FileIcons.jsx
+++ b/src/components/FileList/FileIcons.jsx
@@ -3,31 +3,31 @@ import React from 'react'
const Gzip = ({ width = '42px', height = '42px' }) => {
return (
- {/* */}
- Group
- Created with Sketch.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ {/* */}
+ Group
+ Created with Sketch.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
)
}
const Default = ({width = '42px', height = '42px'}) => (
-
-
+
+
)
const FileIcons = {
diff --git a/src/components/FileList/FileList.scss b/src/components/FileList/FileList.scss
index 1ea49f87b..f4cacac09 100644
--- a/src/components/FileList/FileList.scss
+++ b/src/components/FileList/FileList.scss
@@ -1,133 +1,136 @@
-@import 'tc-includes';
-
-.file-list {
- // reset styles of panel class, we need panel class to activate the modal-overlay
- border: none;
- box-shadow: none;
-
- &.panel {
- padding: 0;
- }
-
- > h4 {
- @include roboto-medium;
- font-size: 15px;
- color: $tc-gray-50;
- line-height: 20px;
- margin-bottom: 2px;
- }
-}
-
-.file-list-item {
- display: flex;
- border-top: 1px dashed $tc-gray-30;
- padding: 15px 0;
- width: 100%;
- align-items: stretch;
-
- .icon-col {
- padding-top: 3px;
- width: 60px;
- }
-
- .content-col {
- flex: 2;
-
- h4 {
- @include roboto-bold;
- font-size: 15px;
- color: $tc-gray-80;
- max-width: 380px;
+@import '~tc-ui/src/styles/tc-includes';
+
+:global {
+ .file-list {
+ // reset styles of panel class, we need panel class to activate the modal-overlay
+ border: none;
+ box-shadow: none;
+
+ &.panel {
+ padding: 0;
}
-
- p {
- @include roboto;
- font-size: 13px;
- font-weight: 400;
- color: $tc-gray-70;
+
+ > h4 {
+ @include roboto-medium;
+ font-size: 15px;
+ color: $tc-gray-50;
line-height: 20px;
+ margin-bottom: 2px;
}
-
- .title {
- width: 100%;
- display: flex;
- line-height: 25px;
+ }
+
+ .file-list-item {
+ display: flex;
+ border-top: 1px dashed $tc-gray-30;
+ padding: 15px 0;
+ width: 100%;
+ align-items: stretch;
+
+ .icon-col {
+ padding-top: 3px;
+ width: 60px;
}
-
- .size {
- @include roboto;
- font-size: 15px;
- color: $tc-gray-60;
- margin-left: auto;
- text-align: right;
-
- .Tooltip {
- line-height: 100%;
+
+ .content-col {
+ flex: 2;
+
+ h4 {
+ @include roboto-bold;
+ font-size: 15px;
+ color: $tc-gray-80;
+ max-width: 380px;
}
-
- .date {
+
+ p {
+ @include roboto;
font-size: 13px;
- line-height: normal;
- margin-top: 5px;
+ font-weight: 400;
+ color: $tc-gray-70;
+ line-height: 20px;
}
- }
-
- .edit-icons {
- margin-left: 5px;
-
- i {
- cursor: pointer;
+
+ .title {
+ width: 100%;
+ display: flex;
+ line-height: 25px;
}
- }
-
- .title-edit {
- display: flex;
- align-items: center;
- margin-bottom: 10px;
-
- input {
- @include roboto-bold;
+
+ .size {
+ @include roboto;
font-size: 15px;
- color: $tc-gray-80;
- width: 80%;
- height: 30px;
+ color: $tc-gray-60;
+ margin-left: auto;
+ text-align: right;
+
+ .Tooltip {
+ line-height: 100%;
+ }
+
+ .date {
+ font-size: 13px;
+ line-height: normal;
+ margin-top: 5px;
+ }
+ }
+
+ .edit-icons {
+ margin-left: 5px;
+
+ i {
+ cursor: pointer;
+ }
+ }
+
+ .title-edit {
+ display: flex;
+ align-items: center;
+ margin-bottom: 10px;
+
+ input {
+ @include roboto-bold;
+ font-size: 15px;
+ color: $tc-gray-80;
+ width: 80%;
+ height: 30px;
+ margin-left: 0;
+ margin-bottom: 0;
+ background: $tc-gray-neutral-light;
+ }
+ }
+
+ .tc-textarea {
margin-left: 0;
- margin-bottom: 0;
+ padding: 5px 10px;
+ font-size: 13px;
background: $tc-gray-neutral-light;
+ color: $tc-gray-50;
+ min-height: 55px;
+ max-width: 100%;
+ line-height: 20px;
+ resize: none;
}
}
-
- .tc-textarea {
- margin-left: 0;
- padding: 5px 10px;
- font-size: 13px;
- background: $tc-gray-neutral-light;
- color: $tc-gray-50;
- min-height: 55px;
- max-width: 100%;
- line-height: 20px;
- resize: none;
+
+ .icon-trash,
+ .icon-edit {
+ margin-left: 13px;
+ vertical-align: middle;
+ }
+
+ .icon-trash {
+ margin-left: 22px;
+ }
+
+ .icon-save {
+ margin-right: 25px;
+ }
+
+ .icon-close {
+ margin-right: 10px;
}
}
-
- .icon-trash,
- .icon-edit {
- margin-left: 13px;
- vertical-align: middle;
- }
-
- .icon-trash {
- margin-left: 22px;
- }
-
- .icon-save {
- margin-right: 25px;
- }
-
- .icon-close {
- margin-right: 10px;
+
+ .delete-file-modal {
}
}
-
-.delete-file-modal {
-}
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/components/FileList/FileListItem.jsx b/src/components/FileList/FileListItem.jsx
index 74894a356..18cb31177 100644
--- a/src/components/FileList/FileListItem.jsx
+++ b/src/components/FileList/FileListItem.jsx
@@ -3,7 +3,7 @@ import React from 'react'
import PropTypes from 'prop-types'
import filesize from 'filesize'
import moment from 'moment'
-import { Tooltip } from 'appirio-tech-react-components'
+import Tooltip from 'appirio-tech-react-components/components/Tooltip/Tooltip'
import UserWithName from '../User/UserWithName'
import { TOOLTIP_DEFAULT_DELAY } from '../../config/constants'
import TrashIcon from '../../assets/icons/icon-trash.svg'
diff --git a/src/components/Footer/Footer.jsx b/src/components/Footer/Footer.jsx
index 4f75ef96e..65ce7135b 100644
--- a/src/components/Footer/Footer.jsx
+++ b/src/components/Footer/Footer.jsx
@@ -1,5 +1,5 @@
import React from 'react'
-import { MenuBar } from 'appirio-tech-react-components'
+import MenuBar from 'appirio-tech-react-components/components/MenuBar/MenuBar'
import moment from 'moment'
import { NEW_PROJECT_PATH } from '../../config/constants'
diff --git a/src/components/Footer/Footer.scss b/src/components/Footer/Footer.scss
index a4603140a..ea7f9cbec 100644
--- a/src/components/Footer/Footer.scss
+++ b/src/components/Footer/Footer.scss
@@ -1,31 +1,34 @@
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.Footer {
- @include roboto;
- display: flex;
- flex-direction: row;
- justify-content: space-between;
- padding: calc(2 * #{$base-unit}) calc(4 * #{$base-unit});
-
- .copyright-notice {
- font-size: 13px;
- line-height: 20px;
- color: $tc-gray-40;
- }
-
- ul.MenuBar {
-
- li {
- a {
- font-size: 13px;
- line-height: 20px;
- color: $tc-gray-40;
- text-transform: none;
- }
+:global {
+ .Footer {
+ @include roboto;
+ display: flex;
+ flex-direction: row;
+ justify-content: space-between;
+ padding: calc(2 * #{$base-unit}) calc(4 * #{$base-unit});
+
+ .copyright-notice {
+ font-size: 13px;
+ line-height: 20px;
+ color: $tc-gray-40;
}
-
- li:last-child {
- margin-right: 0px;
+
+ ul.MenuBar {
+
+ li {
+ a {
+ font-size: 13px;
+ line-height: 20px;
+ color: $tc-gray-40;
+ text-transform: none;
+ }
+ }
+
+ li:last-child {
+ margin-right: 0px;
+ }
}
}
-}
\ No newline at end of file
+}
+
\ No newline at end of file
diff --git a/src/components/FooterV2/FooterV2.scss b/src/components/FooterV2/FooterV2.scss
index 7d3043917..08557ed0a 100644
--- a/src/components/FooterV2/FooterV2.scss
+++ b/src/components/FooterV2/FooterV2.scss
@@ -1,35 +1,38 @@
-@import "tc-includes";
+@import '~tc-ui/src/styles/tc-includes';
-.footer-v2 {
- @include roboto;
- display: flex;
- justify-content: space-between;
- flex-wrap: wrap;
- font-size: $tc-label-xs;
- color: $tc-gray-50;
- line-height: $base-unit*6;
- padding: 0 10px;
- margin-top: $base-unit*2;
+:global {
+ .footer-v2 {
+ @include roboto;
+ display: flex;
+ justify-content: space-between;
+ flex-wrap: wrap;
+ font-size: $tc-label-xs;
+ color: $tc-gray-50;
+ line-height: $base-unit*6;
+ // padding: 0 10px;
+ margin-top: $base-unit*2;
- ul {
- white-space: nowrap;
- }
+ ul {
+ white-space: nowrap;
+ }
- li {
- display: inline-block;
- }
+ li {
+ display: inline-block;
+ }
- li:not(:first-child)::before {
- content: " • "; // U+00B7
- padding-left: $base-unit;
- }
+ li:not(:first-child)::before {
+ content: " • "; // U+00B7
+ padding-left: $base-unit;
+ }
- a:hover {
- color: $tc-dark-blue;
- }
+ a:hover {
+ color: $tc-dark-blue-110;
+ }
- .footer-copyright {
- color: $tc-gray-30;
- white-space: nowrap;
+ .footer-copyright {
+ color: $tc-gray-30;
+ white-space: nowrap;
+ }
}
}
+
\ No newline at end of file
diff --git a/src/components/Grid/GridView.jsx b/src/components/Grid/GridView.jsx
index 62aa6006c..d74c7c650 100644
--- a/src/components/Grid/GridView.jsx
+++ b/src/components/Grid/GridView.jsx
@@ -57,35 +57,31 @@ const GridView = props => {
}
}
return (
- isLoading && currentPageNum === 1 ? (
-
- ) : (
-
-
-
-
-
- {}}
- hasMore={hasMore}
- threshold={500}
- >
- {[...resultSet, ...placeholders].map(renderItem)}
-
-
+
+
+
+
+
+ {}}
+ hasMore={hasMore}
+ threshold={500}
+ >
+ {[...resultSet, ...placeholders].map(renderItem)}
+
- { false && isLoading &&
}
- { !isLoading && !infiniteAutoload && hasMore &&
+
+ { false && isLoading &&
}
+ { !isLoading && !infiniteAutoload && hasMore &&
Load more projects
- }
- { !isLoading && !hasMore &&
No more {projectsStatus} projects
}
-
- )
+ }
+ { !isLoading && !hasMore &&
No more {projectsStatus} projects
}
+
)
}
diff --git a/src/components/Grid/GridView.scss b/src/components/Grid/GridView.scss
index 7fd0eedef..d510bca8c 100644
--- a/src/components/Grid/GridView.scss
+++ b/src/components/Grid/GridView.scss
@@ -1,535 +1,535 @@
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.gridview-content.content {
- overflow: visible;
- width: 100%;
-
- .container {
- width: auto;
- min-width: 1120px;
- padding: 0;
- background: $tc-white;
- margin: 0 20px 20px 20px;
- border-radius: 6px;
- border: 1px solid $tc-gray-20;
- }
-}
-
-.flex-data {
- .hide {
- display: none;
- }
-
- .show {
- display: block;
- }
-
- .txt-black {
- color: $tc-black;
- }
- /* .flex-area .flex-row */
- .row {
- margin: 0;
- border-bottom: 1px solid $tc-gray-10;
-
- &.header:first-child {
- border-color: $tc-gray-20;
+:global {
+ .gridview-content.content {
+ overflow: visible;
+ width: 100%;
+
+ .container {
+ width: auto;
+ min-width: 1120px;
+ padding: 0;
+ background: $tc-white;
+ margin: 0 20px 20px 20px;
+ border-radius: 6px;
+ border: 1px solid $tc-gray-20;
}
}
-
- .flex-row {
- display: box;
- display: -webkit-box;
- display: -webkit-flex;
- display: flex;
- position: relative;
- transition: 200ms all;
-
- &:hover {
- background-color: rgba($tc-dark-blue-10, .5);
+
+ .flex-data {
+ .hide {
+ display: none;
}
-
- .flex-item-title,
- .flex-item {
- -webkit-align-items: center;
- align-items: center;
- display: -webkit-inline-flex;
- display: inline-flex;
- min-height: 71px;
-
- &.item-id .spacing {
- color: $tc-gray-30;
+
+ .show {
+ display: block;
+ }
+
+ .txt-black {
+ color: $tc-black;
+ }
+ /* .flex-area .flex-row */
+ .row {
+ margin: 0;
+ border-bottom: 1px solid $tc-gray-10;
+
+ &.header:first-child {
+ border-color: $tc-gray-20;
}
-
- .spacing {
- @include roboto-medium;
- font-size: $tc-label-md;
- color: $tc-gray-50;
- line-height: $base-unit + 11;
-
- .sort-txt {
- &.icon-up,
- &.icon-down {
- color: $tc-black;
- position: relative;
- padding: 0 20px 0 0;
- }
-
- &.icon-up::after,
- &.icon-down::after {
- font-size: 0;
- line-height: 0;
- width: 16px;
- height: 24px;
- content: "";
- display: block;
- position: absolute;
- top: 50%;
- right: 0;
- margin-top: -12px;
- }
-
- &a:hover {
- cursor: pointer;
+ }
+
+ .flex-row {
+ display: flex;
+ position: relative;
+ transition: 200ms all;
+
+ &:hover {
+ background-color: rgba($tc-dark-blue-10, .5);
+ }
+
+ .flex-item-title,
+ .flex-item {
+ -webkit-align-items: center;
+ align-items: center;
+ display: -webkit-inline-flex;
+ display: inline-flex;
+ min-height: 71px;
+
+ &.item-id .spacing {
+ color: $tc-gray-30;
+ }
+
+ .spacing {
+ @include roboto-medium;
+ font-size: $tc-label-md;
+ color: $tc-gray-50;
+ line-height: $base-unit + 11;
+
+ .sort-txt {
+ &.icon-up,
+ &.icon-down {
+ color: $tc-black;
+ position: relative;
+ padding: 0 20px 0 0;
+ }
+
+ &.icon-up::after,
+ &.icon-down::after {
+ font-size: 0;
+ line-height: 0;
+ width: 16px;
+ height: 24px;
+ content: "";
+ display: block;
+ position: absolute;
+ top: 50%;
+ right: 0;
+ margin-top: -12px;
+ }
+
+ &a:hover {
+ cursor: pointer;
+ }
}
}
}
+
+ .flex-item-title.item-type,
+ .flex-item.item-type .blue-block {
+ padding-left: 15px;
+ }
+
+ .blue-border {
+ background: $tc-dark-blue-70;
+ width: 2px;
+ height: 100%;
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 9;
+ }
}
-
- .flex-item-title.item-type,
- .flex-item.item-type .blue-block {
- padding-left: 15px;
+ /* .flex-area .row-th */
+ .row-th {
+ background: $tc-gray-neutral-light;
+ height: 70px;
+ border-radius: 6px 6px 0 0;
+ user-select: none;
+
+ &:hover {
+ background-color: rgba($tc-gray-10, .5);
+ }
}
-
- .blue-border {
- background: $tc-dark-blue-70;
- width: 2px;
+
+ .mask-layer {
+ background: rgba($tc-white, 0.7);
+ width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
- z-index: 9;
+ z-index: 99;
}
- }
- /* .flex-area .row-th */
- .row-th {
- background: $tc-gray-neutral-light;
- height: 70px;
- border-radius: 6px 6px 0 0;
- user-select: none;
-
- &:hover {
- background-color: rgba($tc-gray-10, .5);
+
+ .spacing-grid {
+ overflow: hidden;
}
- }
-
- .mask-layer {
- background: rgba($tc-white, 0.7);
- width: 100%;
- height: 100%;
- position: absolute;
- top: 0;
- left: 0;
- z-index: 99;
- }
-
- .spacing-grid {
- overflow: hidden;
- }
-
- .link-title {
- @include roboto-medium;
- @include ellipsis;
- display: block;
- font-size: $tc-label-lg;
- color: $tc-gray-90;
- line-height: $base-unit * 4;
- display: block;
- white-space: nowrap;
- padding-right: 20px;
- overflow: hidden;
- text-overflow: ellipsis;
-
- &:hover {
- text-decoration: underline;
+
+ .link-title {
+ @include roboto-medium;
+ @include ellipsis;
+ display: block;
+ font-size: $tc-label-lg;
+ color: $tc-gray-90;
+ line-height: $base-unit * 4;
+ display: block;
+ white-space: nowrap;
+ padding-right: 20px;
+ overflow: hidden;
+ text-overflow: ellipsis;
+
+ &:hover {
+ text-decoration: underline;
+ }
+ }
+
+ .txt-time {
+ font-size: $tc-label-sm;
+ color: $tc-gray-50;
+ line-height: $base-unit * 3;
+ padding: 3px 0;
+ display: block;
+ font-weight: normal;
+ }
+
+ .txt-normal {
+ font-weight: normal;
}
}
-
- .txt-time {
- font-size: $tc-label-sm;
- color: $tc-gray-50;
+
+ /* .txt-italic */
+ .txt-italic {
+ @include roboto;
+ font-style: italic;
+ font-size: $tc-label-md;
+ color: $tc-gray-30;
line-height: $base-unit * 3;
- padding: 3px 0;
- display: block;
- font-weight: normal;
- }
-
- .txt-normal {
- font-weight: normal;
- }
-}
-
-/* .txt-italic */
-.txt-italic {
- @include roboto;
- font-style: italic;
- font-size: $tc-label-md;
- color: $tc-gray-30;
- line-height: $base-unit * 3;
-
- &.txt-normal {
- font-style: normal;
- }
-
- &.txt-red {
- color: $tc-red;
- }
-}
-
-.item-projects {
- .spacing {
- width: 100%;
+
+ &.txt-normal {
+ font-style: normal;
+ }
+
+ &.txt-red {
+ color: $tc-red;
+ }
}
-}
-
-.user-block {
- white-space: nowrap;
-
- .txt-box span {
- font-weight: normal;
+
+ .item-projects {
+ .spacing {
+ width: 100%;
+ }
}
-
- .linnk-black {
+
+ .user-block {
white-space: nowrap;
- text-overflow: ellipsis;
+
+ .txt-box span {
+ font-weight: normal;
+ }
+
+ .linnk-black {
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ }
}
-}
-
-.gridview-load-more {
- text-align: center;
-}
-
-.gridview-no-more {
- @include roboto;
- color: $tc-gray-40;
- font-size: 13px;
- padding: 10px 0;
- text-align: center;
-}
-
-/* .txt-status */
-.txt-status {
- @include roboto-medium;
- font-size: $tc-label-sm;
- color: $tc-gray-80;
- line-height: $base-unit * 4;
- padding-left: 30px;
- position: relative;
- display: inline-block;
-
- &:after {
- font-size: 0;
- line-height: 0;
- width: 24px;
- height: 24px;
- content: "";
- display: block;
- position: absolute;
- top: 50%;
- left: 0;
- margin-top: -12px;
+
+ .gridview-load-more {
+ text-align: center;
}
-}
-
-.project-status-title {
- position: relative;
- display: block;
- background-position: center center;
- height: 16px;
- width: 16px;
-
- & * {
- fill: $tc-gray-40;
+
+ .gridview-no-more {
+ @include roboto;
+ color: $tc-gray-40;
+ font-size: 13px;
+ padding: 10px 0;
+ text-align: center;
}
-}
-
-.drop-down {
- position: relative;
- display: inline-block;
- margin-left: 15px;
-
- .txt-link {
- color: $tc-gray-50;
+
+ /* .txt-status */
+ .txt-status {
+ @include roboto-medium;
+ font-size: $tc-label-sm;
+ color: $tc-gray-80;
+ line-height: $base-unit * 4;
+ padding-left: 30px;
position: relative;
- padding-right: 14px;
- display: block;
-
- &.active {
- color: $tc-dark-blue;
- }
-
+ display: inline-block;
+
&:after {
font-size: 0;
line-height: 0;
- width: 9px;
- height: 12px;
+ width: 24px;
+ height: 24px;
content: "";
display: block;
position: absolute;
- top: 2px;
- right: 0;
+ top: 50%;
+ left: 0;
+ margin-top: -12px;
}
}
-
- .down-layer {
- background: $tc-white;
- border-radius: 5px;
- min-width: 150px;
- min-height: 45px;
- position: absolute;
- top: 20px;
- left: -20px;
- box-shadow: 0 0 10px rgba($tc-black, 0.2);
- z-index: 599;
-
- ul {
- padding: 10px 0;
-
- li {
- a {
- font-size: $tc-label-md;
- color: $tc-gray-80;
- line-height: $base-unit * 6;
- display: block;
- padding: 0 10px 0 20px;
-
- &:hover {
- background-color: $tc-dark-blue-10;
+
+ .project-status-title {
+ position: relative;
+ display: block;
+ background-position: center center;
+ height: 16px;
+ width: 16px;
+
+ & * {
+ fill: $tc-gray-40;
+ }
+ }
+
+ .drop-down {
+ position: relative;
+ display: inline-block;
+ margin-left: 15px;
+
+ .txt-link {
+ color: $tc-gray-50;
+ position: relative;
+ padding-right: 14px;
+ display: block;
+
+ &.active {
+ color: $tc-dark-blue;
+ }
+
+ &:after {
+ font-size: 0;
+ line-height: 0;
+ width: 9px;
+ height: 12px;
+ content: "";
+ display: block;
+ position: absolute;
+ top: 2px;
+ right: 0;
+ }
+ }
+
+ .down-layer {
+ background: $tc-white;
+ border-radius: 5px;
+ min-width: 150px;
+ min-height: 45px;
+ position: absolute;
+ top: 20px;
+ left: -20px;
+ box-shadow: 0 0 10px rgba($tc-black, 0.2);
+ z-index: 599;
+
+ ul {
+ padding: 10px 0;
+
+ li {
+ a {
+ font-size: $tc-label-md;
+ color: $tc-gray-80;
+ line-height: $base-unit * 6;
+ display: block;
+ padding: 0 10px 0 20px;
+
+ &:hover {
+ background-color: $tc-dark-blue-10;
+ }
+ }
+
+ &.active,
+ &.active:hover {
+ @include roboto-bold;
+ background: $tc-gray-neutral-light;
}
- }
-
- &.active,
- &.active:hover {
- @include roboto-bold;
- background: $tc-gray-neutral-light;
}
}
}
}
-}
-
-/* .pages */
-.pages {
- background: $tc-gray-neutral-light;
- min-height: 70px;
- border-bottom-left-radius: 4px;
- border-bottom-right-radius: 4px;
-
- .right-page {
- background: $tc-white;
- border: 1px solid $tc-gray-30;
- border-radius: 2px;
- height: 30px;
- margin: 20px 20px 0 0;
- float: right;
- display: flex;
-
- ul {
+
+ /* .pages */
+ .pages {
+ background: $tc-gray-neutral-light;
+ min-height: 70px;
+ border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 4px;
+
+ .right-page {
+ background: $tc-white;
+ border: 1px solid $tc-gray-30;
+ border-radius: 2px;
+ height: 30px;
+ margin: 20px 20px 0 0;
+ float: right;
display: flex;
- }
-
- ul,
- li,
- .btn-prev,
- .btn-next {
- text-align: center;
- // float: left;
- }
-
- li {
- border-right: 1px solid $tc-gray-30;
- position: relative;
-
- &.active a {
- background: $tc-gray-20;
- box-shadow: inset -1px 1px 2px 0px rgba($tc-gray-80, 0.20);
+
+ ul {
+ display: flex;
}
-
- .down-layer {
- background: $tc-white;
- border-radius: 5px;
- text-align: left;
- min-width: 140px;
- min-height: 55px;
- margin-bottom: 15px;
- position: absolute;
- top: 40px;
- left: 50%;
- margin-left: -70px;
- box-shadow: 0 0 10px rgba($tc-black, 0.2);
- z-index: 99;
-
- &::before {
- font-size: 0;
- line-height: 0;
- width: 0;
- height: 0;
- border-left: 7px solid transparent;
- border-right: 7px solid transparent;
- border-bottom: 7px solid $tc-white;
- content: "";
- display: block;
+
+ ul,
+ li,
+ .btn-prev,
+ .btn-next {
+ text-align: center;
+ // float: left;
+ }
+
+ li {
+ border-right: 1px solid $tc-gray-30;
+ position: relative;
+
+ &.active a {
+ background: $tc-gray-20;
+ box-shadow: inset -1px 1px 2px 0px rgba($tc-gray-80, 0.20);
+ }
+
+ .down-layer {
+ background: $tc-white;
+ border-radius: 5px;
+ text-align: left;
+ min-width: 140px;
+ min-height: 55px;
+ margin-bottom: 15px;
position: absolute;
- top: -7px;
+ top: 40px;
left: 50%;
- margin-left: -7px;
- }
-
- .txt {
- @include roboto;
- font-size: $tc-label-md;
- color: $tc-gray-80;
- line-height: $base-unit * 6;
- padding: 13px 0 0 13px;
- display: block;
- float: left;
- }
-
- .inputs {
- width: 34px;
- height: 30px;
- display: block;
- margin: 13px 0 0 90px;
-
- input {
+ margin-left: -70px;
+ box-shadow: 0 0 10px rgba($tc-black, 0.2);
+ z-index: 99;
+
+ &::before {
+ font-size: 0;
+ line-height: 0;
+ width: 0;
+ height: 0;
+ border-left: 7px solid transparent;
+ border-right: 7px solid transparent;
+ border-bottom: 7px solid $tc-white;
+ content: "";
+ display: block;
+ position: absolute;
+ top: -7px;
+ left: 50%;
+ margin-left: -7px;
+ }
+
+ .txt {
@include roboto;
font-size: $tc-label-md;
color: $tc-gray-80;
- background: $tc-gray-neutral-light;
- line-height: $base-unit * 4;
- text-align: center;
+ line-height: $base-unit * 6;
+ padding: 13px 0 0 13px;
+ display: block;
+ float: left;
+ }
+
+ .inputs {
+ width: 34px;
height: 30px;
- padding: 2px 0 0 0;
- margin: 0;
+ display: block;
+ margin: 13px 0 0 90px;
+
+ input {
+ @include roboto;
+ font-size: $tc-label-md;
+ color: $tc-gray-80;
+ background: $tc-gray-neutral-light;
+ line-height: $base-unit * 4;
+ text-align: center;
+ height: 30px;
+ padding: 2px 0 0 0;
+ margin: 0;
+ }
}
}
- }
-
- &.go-to-page-pill {
- .tooltip-target {
- min-width: 27px;
- height: 28px;
- }
-
- .go-to-page-tooltip {
- display: flex;
- align-items: center;
- @include tc-label-md;
- line-height: $base-unit * 6;
-
- input[type="number"] {
- width: 50px;
- height: $base-unit * 6;
- margin-bottom: 0px;
- margin-left: $base-unit * 2;
+
+ &.go-to-page-pill {
+ .tooltip-target {
+ min-width: 27px;
+ height: 28px;
+ }
+
+ .go-to-page-tooltip {
+ display: flex;
+ align-items: center;
+ @include tc-label-md;
+ line-height: $base-unit * 6;
+
+ input[type="number"] {
+ width: 50px;
+ height: $base-unit * 6;
+ margin-bottom: 0px;
+ margin-left: $base-unit * 2;
+ }
}
}
}
- }
-
- a {
- @include roboto;
- font-size: $tc-label-md;
- color: $tc-gray-80;
- height: 28px;
- min-width: 27px;
- padding: 1px 8px;
- line-height: $base-unit + 23;
- display: block;
-
- &.btn-prev {
- border-right: 1px solid $tc-gray-30;
- min-width: 70px;
- padding-left: 24px;
- position: relative;
-
- &:before {
- font-size: 0;
- line-height: 0;
- width: 12px;
- height: 12px;
- content: "";
- display: block;
- position: absolute;
- top: 9px;
- left: 12px;
+
+ a {
+ @include roboto;
+ font-size: $tc-label-md;
+ color: $tc-gray-80;
+ height: 28px;
+ min-width: 27px;
+ padding: 1px 8px;
+ line-height: $base-unit + 23;
+ display: block;
+
+ &.btn-prev {
+ border-right: 1px solid $tc-gray-30;
+ min-width: 70px;
+ padding-left: 24px;
+ position: relative;
+
+ &:before {
+ font-size: 0;
+ line-height: 0;
+ width: 12px;
+ height: 12px;
+ content: "";
+ display: block;
+ position: absolute;
+ top: 9px;
+ left: 12px;
+ }
}
- }
-
- &.btn-next {
- min-width: 70px;
- padding-right: 24px;
- position: relative;
-
- &:after {
- font-size: 0;
- line-height: 0;
- width: 12px;
- height: 12px;
- content: "";
- display: block;
- position: absolute;
- top: 9px;
- right: 12px;
+
+ &.btn-next {
+ min-width: 70px;
+ padding-right: 24px;
+ position: relative;
+
+ &:after {
+ font-size: 0;
+ line-height: 0;
+ width: 12px;
+ height: 12px;
+ content: "";
+ display: block;
+ position: absolute;
+ top: 9px;
+ right: 12px;
+ }
}
}
}
}
-}
-
-
-/*fix layout issue when smaller than 1024px width*/
-@media (max-width: 1003px) {
- /* .flex-data */
- .flex-data {
- .link-title {
- font-size: $tc-label-sm;
- line-height: $base-unit * 3;
- }
-
- .txt-black {
- display: block;
- }
-
- .flex-59 {
- .flex-item-title .spacing,
- .flex-item .spacing {
- padding-top: 5px;
- padding-bottom: 5px;
+
+
+ /*fix layout issue when smaller than 1024px width*/
+ @media (max-width: 1003px) {
+ /* .flex-data */
+ .flex-data {
+ .link-title {
+ font-size: $tc-label-sm;
line-height: $base-unit * 3;
}
-
- .item-ref-code .spacing {
- padding: 0 30px 0 0;
- min-width: 85px;
+
+ .txt-black {
+ display: block;
+ }
+
+ .flex-59 {
+ .flex-item-title .spacing,
+ .flex-item .spacing {
+ padding-top: 5px;
+ padding-bottom: 5px;
+ line-height: $base-unit * 3;
+ }
+
+ .item-ref-code .spacing {
+ padding: 0 30px 0 0;
+ min-width: 85px;
+ }
+ }
+
+ .txt-box .link-black,
+ .txt-gray-md,
+ .txt-italic {
+ font-size: $tc-label-sm;
}
}
-
- .txt-box .link-black,
- .txt-gray-md,
- .txt-italic {
- font-size: $tc-label-sm;
+ /* .txt-status */
+ .txt-status {
+ line-height: $base-unit + 9;
+ padding-top: 3px;
+ padding-bottom: 3px;
+ min-height: 20px;
+ }
+ /* .drop-down */
+ .drop-down {
+ margin-left: 0;
}
- }
- /* .txt-status */
- .txt-status {
- line-height: $base-unit + 9;
- padding-top: 3px;
- padding-bottom: 3px;
- min-height: 20px;
- }
- /* .drop-down */
- .drop-down {
- margin-left: 0;
}
}
+
\ No newline at end of file
diff --git a/src/components/Grid/ListItem.jsx b/src/components/Grid/ListItem.jsx
index 13b163bba..eda82f8d1 100644
--- a/src/components/Grid/ListItem.jsx
+++ b/src/components/Grid/ListItem.jsx
@@ -7,7 +7,7 @@ const ListItem = ({ item, columns }) => {
const divClasses = `flex-item-title ${col.classes}`
return (
- {col.renderText(item)}
+ {col.renderText(item)}
)
}
@@ -18,8 +18,8 @@ const ListItem = ({ item, columns }) => {
return (
-
- {columns.map(renderColumn)}
+
+ {columns.map(renderColumn)}
)
diff --git a/src/components/Grid/PaginationBar.jsx b/src/components/Grid/PaginationBar.jsx
index e71aef637..b0cff09c7 100644
--- a/src/components/Grid/PaginationBar.jsx
+++ b/src/components/Grid/PaginationBar.jsx
@@ -3,7 +3,7 @@ import PropTypes from 'prop-types'
import cn from 'classnames'
import _ from 'lodash'
import { branch, renderComponent } from 'recompose'
-import { Tooltip } from 'appirio-tech-react-components'
+import Tooltip from 'appirio-tech-react-components/components/Tooltip/Tooltip'
import BtnPrev from '../../assets/icons/arrow-left.svg'
import BtnNext from '../../assets/icons/arrow-left.svg'
@@ -15,7 +15,7 @@ const noop = () =>
*/
const identity = t => t
const showPagination = (hasPages) =>
- branch (hasPages, identity, renderComponent(noop))
+ branch (hasPages, identity, renderComponent(noop))
const enhance = showPagination( ({totalCount, pageSize}) =>
Math.ceil(totalCount / pageSize) > 1)
diff --git a/src/components/Grid/Placeholder.jsx b/src/components/Grid/Placeholder.jsx
index 7bc86e9b4..ea8ec22d8 100644
--- a/src/components/Grid/Placeholder.jsx
+++ b/src/components/Grid/Placeholder.jsx
@@ -16,7 +16,7 @@ const Placeholder = ({ columns }) => {
return (
- {columns.map(renderColumn)}
+ {columns.map(renderColumn)}
)
diff --git a/src/components/Grid/Placeholder.scss b/src/components/Grid/Placeholder.scss
index 4d8e7ae4b..7f6046dcd 100644
--- a/src/components/Grid/Placeholder.scss
+++ b/src/components/Grid/Placeholder.scss
@@ -1,25 +1,28 @@
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.flex-row {
- > .placeholder-parent {
- align-items: center !important;
- padding: 0 20px 0 0 !important;
- display: flex;
- justify-content: flex-start;
- flex-direction: row;
-
- .placeholder {
- background-color: $tc-gray-neutral-light;
- padding: 25px 10px;
- flex: .85;
- }
-
- &:first-child {
- padding-left: 20px !important;
- }
-
- &:last-child {
- padding-right: 20px !important;
+:global {
+ .flex-row {
+ > .placeholder-parent {
+ align-items: center !important;
+ padding: 0 20px 0 0 !important;
+ display: flex;
+ justify-content: flex-start;
+ flex-direction: row;
+
+ .placeholder {
+ background-color: $tc-gray-neutral-light;
+ padding: 25px 10px;
+ flex: .85;
+ }
+
+ &:first-child {
+ padding-left: 20px !important;
+ }
+
+ &:last-child {
+ padding-right: 20px !important;
+ }
}
}
}
+
\ No newline at end of file
diff --git a/src/components/Home/Home.jsx b/src/components/Home/Home.jsx
index 7017c3724..f11f9610c 100644
--- a/src/components/Home/Home.jsx
+++ b/src/components/Home/Home.jsx
@@ -22,18 +22,18 @@ class Home extends React.Component {
return (
-
-
-
-
-
Topcoder Connect: the easiest way to go from idea to app
-
Companies and agencies, from the world’s largest to the Valley’s newest, use crowdsourcing to deliver high-quality assets, faster.
-
Connect guides you through the entire crowdsourcing process, from entering requirements to receiving final deliverables, and it facilitates collaboration between your project team and Topcoder community members working on your project.
-
+
+
+
+
+
Topcoder Connect: the easiest way to go from idea to app
+
Companies and agencies, from the world’s largest to the Valley’s newest, use crowdsourcing to deliver high-quality assets, faster.
+
Connect guides you through the entire crowdsourcing process, from entering requirements to receiving final deliverables, and it facilitates collaboration between your project team and Topcoder community members working on your project.
+
+
)
diff --git a/src/components/Home/Home.scss b/src/components/Home/Home.scss
index 97efd6543..61365e805 100644
--- a/src/components/Home/Home.scss
+++ b/src/components/Home/Home.scss
@@ -1,105 +1,108 @@
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
@import '../../styles/variables';
-.content-home {
- margin: $base-unit*4;
-
- .container {
- display: flex;
- justify-content: space-around;
- max-width: 1200px;
- width: auto;
- margin: auto;
- padding: $base-unit*12 $base-unit*9 $base-unit*18;
- background: $tc-white;
- box-shadow: 0 1px 3px 0px rgba($tc-black, .2);
- border-radius: $corner-radius;
-
- @media screen and (max-width: $screen-rg - 1) {
- flex-direction: column;
- width: 100%;
- padding: $base-unit*6 $base-unit*12 $base-unit*6;
-
- .content-container {
- padding: $base-unit*15 0 0 0;
- }
- }
-
- @media screen and (max-width: $screen-md - 174) {
- img {
+:global {
+ .content-home {
+ margin: $base-unit*4;
+
+ .container {
+ display: flex;
+ justify-content: space-around;
+ max-width: 1200px;
+ width: auto;
+ margin: auto;
+ padding: $base-unit*12 $base-unit*9 $base-unit*18;
+ background: $tc-white;
+ box-shadow: 0 1px 3px 0px rgba($tc-black, .2);
+ border-radius: $corner-radius;
+
+ @media screen and (max-width: $screen-rg - 1) {
+ flex-direction: column;
width: 100%;
- height: auto;
+ padding: $base-unit*6 $base-unit*12 $base-unit*6;
+
+ .content-container {
+ padding: $base-unit*15 0 0 0;
+ }
}
-
- .image-container {
- min-width: 100%;
+
+ @media screen and (max-width: $screen-md - 174) {
+ img {
+ width: 100%;
+ height: auto;
+ }
+
+ .image-container {
+ min-width: 100%;
+ }
}
}
- }
-
- .image-container {
- text-align: center;
- min-width: $base-unit*86;
- }
-
- .content-container {
- padding: $base-unit*7 0 0 $base-unit*17;
-
- .button-bar {
- display: flex;
- flex-direction: column;
- padding-top: $base-unit*6;
-
- a.tc-link {
- text-align: center;
- color: $tc-dark-blue;
- @include roboto;
- font-size: 13px;
- margin: 0 auto;
- display: inline-block;
- margin-top: 10px;
- }
- }
-
- h1 {
- @include tc-heading-extra-large;
- @include roboto-medium;
- color: $tc-black;
- letter-spacing: 0;
- padding: 0 0 $base-unit*6;
+
+ .image-container {
text-align: center;
+ min-width: $base-unit*86;
}
-
- p {
- @include roboto;
- font-size: $tc-body-large;
- color: $tc-gray-70;
- letter-spacing: 0;
- line-height: $base-unit * 6;
- padding-bottom: $base-unit*6;
- }
-
- .tc-btn {
- color: $tc-dark-blue-30;
- height: $base-unit*8;
- width: $base-unit*50;
- text-align: center;
- margin: 0 auto;
- line-height: 38px;
- @include roboto-medium;
- font-size: $tc-label-lg;
- display: block;
- margin-bottom: $base-unit * 4;
-
- &:hover {
- color: $tc-white;
- background-image: linear-gradient($tc-dark-blue-70 0%, $tc-dark-blue 100%) !important;
+
+ .content-container {
+ padding: $base-unit*7 0 0 $base-unit*17;
+
+ .button-bar {
+ display: flex;
+ flex-direction: column;
+ padding-top: $base-unit*6;
+
+ a.tc-link {
+ text-align: center;
+ color: $tc-dark-blue;
+ @include roboto;
+ font-size: 13px;
+ margin: 0 auto;
+ display: inline-block;
+ margin-top: 10px;
+ }
}
-
- &:active {
- color: $tc-white;
- background-image: linear-gradient($tc-dark-blue-70 0%, $tc-dark-blue 100%) !important;
+
+ h1 {
+ @include tc-heading-extra-large;
+ @include roboto-medium;
+ color: $tc-black;
+ letter-spacing: 0;
+ padding: 0 0 $base-unit*6;
+ text-align: center;
+ }
+
+ p {
+ @include roboto;
+ font-size: $tc-body-large;
+ color: $tc-gray-70;
+ letter-spacing: 0;
+ line-height: $base-unit * 6;
+ padding-bottom: $base-unit*6;
+ }
+
+ .tc-btn {
+ color: $tc-dark-blue-30;
+ height: $base-unit*8;
+ width: $base-unit*50;
+ text-align: center;
+ margin: 0 auto;
+ line-height: 38px;
+ @include roboto-medium;
+ font-size: $tc-label-lg;
+ display: block;
+ margin-bottom: $base-unit * 4;
+
+ &:hover {
+ color: $tc-white;
+ background-image: linear-gradient($tc-dark-blue-70 0%, $tc-dark-blue 100%) !important;
+ }
+
+ &:active {
+ color: $tc-white;
+ background-image: linear-gradient($tc-dark-blue-70 0%, $tc-dark-blue 100%) !important;
+ }
}
}
}
-}
\ No newline at end of file
+}
+
\ No newline at end of file
diff --git a/src/components/Layout/Layout.scss b/src/components/Layout/Layout.scss
index 509c099ce..db524b663 100644
--- a/src/components/Layout/Layout.scss
+++ b/src/components/Layout/Layout.scss
@@ -1,19 +1,22 @@
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.main-wrapper {
- min-height: calc(100vh - 60px); // header and footer width
- padding-top: 60px;
- transition: all 150ms ease-in-out;
- overflow: hidden;
- &.with-filters {
- padding-top: 120px;
- min-height: calc(100vh - 120px);
+:global {
+ .main-wrapper {
+ min-height: calc(100vh - 60px); // header and footer width
+ padding-top: 60px;
+ transition: all 150ms ease-in-out;
+ overflow: hidden;
+ &.with-filters {
+ padding-top: 120px;
+ min-height: calc(100vh - 120px);
+ }
+
+ &[data-route*='new-project'] {
+ background-color: $tc-gray-neutral-light;
+ }
}
-
- &[data-route*='new-project'] {
- background-color: $tc-gray-neutral-light;
+
+ .content-area {
}
}
-
-.content-area {
-}
+
\ No newline at end of file
diff --git a/src/components/LinksMenu/AddLink.jsx b/src/components/LinksMenu/AddLink.jsx
index 20c53b1e4..00cb0f8b6 100644
--- a/src/components/LinksMenu/AddLink.jsx
+++ b/src/components/LinksMenu/AddLink.jsx
@@ -1,7 +1,9 @@
import React from 'react'
import PropTypes from 'prop-types'
import Modal from '../Modal/Modal'
-import { Formsy, TCFormFields } from 'appirio-tech-react-components'
+import FormsyForm from 'appirio-tech-react-components/components/Formsy'
+const TCFormFields = FormsyForm.Fields
+const Formsy = FormsyForm.Formsy
class AddLink extends React.Component {
diff --git a/src/components/LinksMenu/LinksMenu.scss b/src/components/LinksMenu/LinksMenu.scss
index 798ab6d00..3385f76cf 100644
--- a/src/components/LinksMenu/LinksMenu.scss
+++ b/src/components/LinksMenu/LinksMenu.scss
@@ -1,48 +1,51 @@
-@import "tc-includes";
+@import '~tc-ui/src/styles/tc-includes';
-.panel-links{
- li{
- @include roboto-medium;
- font-size: $tc-label-md;
- color: $tc-dark-blue;
- line-height: 1;
- padding: $base-unit 0 $base-unit $base-unit*4;
- display: flex;
- .buttons{
- display: none;
- margin-right: 20px;
- margin-left: auto;
+:global {
+ .panel-links{
+ li{
+ @include roboto-medium;
+ font-size: $tc-label-md;
+ color: $tc-dark-blue;
+ line-height: 1;
+ padding: $base-unit 0 $base-unit $base-unit*4;
+ display: flex;
+ .buttons{
+ display: none;
+ margin-right: 20px;
+ margin-left: auto;
+ }
+ a{
+ line-height: $base-unit*4;
+ max-width: 275px;
+ text-overflow: ellipsis;
+ overflow-x: hidden;
+ }
}
- a{
- line-height: $base-unit*4;
- max-width: 275px;
- text-overflow: ellipsis;
- overflow-x: hidden;
+ li:not(.delete-confirmation-modal):hover{
+ background: $tc-gray-neutral-light;
+ color: $tc-dark-blue;
+ .buttons{
+ display: block;
+ }
}
- }
- li:not(.delete-confirmation-modal):hover{
- background: $tc-gray-neutral-light;
- color: $tc-dark-blue;
- .buttons{
- display: block;
+ .links-footer{
+ @include roboto;
+ font-size: $tc-label-xs;
+ color: $tc-gray-70;
+ line-height: $base-unit*6;
+ padding-left: $base-unit*4;
+ }
+
+ .delete-link-modal {
+ margin-left: -4*$base-unit;
+ }
+
+ li:before {
+ content: '\b7\a0';
+ font-size: 200%;
+ color: $tc-dark-blue;
+ line-height: $base-unit*4;
}
- }
- .links-footer{
- @include roboto;
- font-size: $tc-label-xs;
- color: $tc-gray-70;
- line-height: $base-unit*6;
- padding-left: $base-unit*4;
- }
-
- .delete-link-modal {
- margin-left: -4*$base-unit;
- }
-
- li:before {
- content: '\b7\a0';
- font-size: 200%;
- color: $tc-dark-blue;
- line-height: $base-unit*4;
}
}
+
\ No newline at end of file
diff --git a/src/components/ListContainer/ListContainer.scss b/src/components/ListContainer/ListContainer.scss
index c4875a9d0..82c80ac65 100644
--- a/src/components/ListContainer/ListContainer.scss
+++ b/src/components/ListContainer/ListContainer.scss
@@ -1,46 +1,49 @@
@import '~tc-ui/src/styles/tc-includes';
-.list-container {
- max-width: 960px;
- margin: 20px auto;
- border: 1px solid $tc-gray-30;
- box-shadow: 0px 1px 2px 0px $tc-gray-30;
-}
-
-.list-header {
- padding: 11px 15px;
- background-color: $tc-gray-20;
- @include tc-label-md;
-
- .header-text {
- color: $tc-gray-70;
+:global {
+ .list-container {
+ max-width: 960px;
+ margin: 20px auto;
+ border: 1px solid $tc-gray-30;
+ box-shadow: 0px 1px 2px 0px $tc-gray-30;
}
-
- .highlighted {
- font-weight: bold;
- }
-
- .list-count {
- color: $tc-gray-70;
- opacity: 0.5;
+
+ .list-header {
+ padding: 11px 15px;
+ background-color: $tc-gray-20;
+ @include tc-label-md;
+
+ .header-text {
+ color: $tc-gray-70;
+ }
+
+ .highlighted {
+ font-weight: bold;
+ }
+
+ .list-count {
+ color: $tc-gray-70;
+ opacity: 0.5;
+ }
}
-}
-
-// ReactCSSTransitionGroup transitions
-.list-container-appear {
- opacity: 0.01;
-
- &.list-container-appear-active {
- opacity: 1;
- transition: opacity .25s ease-in;
+
+ // ReactCSSTransitionGroup transitions
+ .list-container-appear {
+ opacity: 0.01;
+
+ &.list-container-appear-active {
+ opacity: 1;
+ transition: opacity .25s ease-in;
+ }
}
-}
-
-.list-container-leave {
- opacity: 1.0;
-
- &.list-container-leave-active {
- opacity: 0;
- transition: opacity .25s ease-out;
+
+ .list-container-leave {
+ opacity: 1.0;
+
+ &.list-container-leave-active {
+ opacity: 0;
+ transition: opacity .25s ease-out;
+ }
}
}
+
\ No newline at end of file
diff --git a/src/components/LoadMoreButton/LoadMoreButton.scss b/src/components/LoadMoreButton/LoadMoreButton.scss
index e094a4f2a..5baa78c4f 100644
--- a/src/components/LoadMoreButton/LoadMoreButton.scss
+++ b/src/components/LoadMoreButton/LoadMoreButton.scss
@@ -1,15 +1,18 @@
@import '~tc-ui/src/styles/tc-includes';
-.load-more {
- display: block;
- height: 40px;
- width: 100%;
- max-width: 960px;
- margin: 0 auto 20px;
- background-color: $tc-gray-40;
- border: 1px solid $tc-gray-50;
- border-radius: 2px;
- font-family: 'Roboto';
- font-size: 12px;
- color: $tc-gray-neutral-light;
+:global {
+ .load-more {
+ display: block;
+ height: 40px;
+ width: 100%;
+ max-width: 960px;
+ margin: 0 auto 20px;
+ background-color: $tc-gray-40;
+ border: 1px solid $tc-gray-50;
+ border-radius: 2px;
+ font-family: 'Roboto';
+ font-size: 12px;
+ color: $tc-gray-neutral-light;
+ }
}
+
\ No newline at end of file
diff --git a/src/components/LoadingIndicator/LoadingIndicator.scss b/src/components/LoadingIndicator/LoadingIndicator.scss
index 624ddd339..904aff4d4 100644
--- a/src/components/LoadingIndicator/LoadingIndicator.scss
+++ b/src/components/LoadingIndicator/LoadingIndicator.scss
@@ -1,17 +1,19 @@
-.loading-indicator {
- height: 80%;
- width: 100%;
- min-height: 70px;
- min-width: 70px;
- background: 50% 50% no-repeat;
- background-size: 70px 70px;
- background-image: url('../../assets/images/loader.gif');
-
- &.small {
- height: 32px;
- width: 32px;
- min-height: 0;
- min-width: 0;
- background-size: 32px 32px;
+:global {
+ .loading-indicator {
+ height: 80%;
+ width: 100%;
+ min-height: 70px;
+ min-width: 70px;
+ background: 50% 50% no-repeat;
+ background-size: 70px 70px;
+ background-image: url('../../assets/images/loader.gif');
+
+ &.small {
+ height: 32px;
+ width: 32px;
+ min-height: 0;
+ min-width: 0;
+ background-size: 32px 32px;
+ }
}
}
diff --git a/src/components/LoadingIndicator/LoadingIndicator.scss.orig b/src/components/LoadingIndicator/LoadingIndicator.scss.orig
new file mode 100644
index 000000000..b6c7d8d4c
--- /dev/null
+++ b/src/components/LoadingIndicator/LoadingIndicator.scss.orig
@@ -0,0 +1,37 @@
+<<<<<<< HEAD
+:global {
+ .loading-indicator {
+ height: 80%;
+ width: 100%;
+ min-height: 70px;
+ min-width: 70px;
+ background: 50% 50% no-repeat;
+ background-size: 70px 70px;
+
+ &.small {
+ height: 32px;
+ width: 32px;
+ min-height: 0;
+ min-width: 0;
+ background-size: 32px 32px;
+ }
+=======
+.loading-indicator {
+ height: 80%;
+ width: 100%;
+ min-height: 70px;
+ min-width: 70px;
+ background: 50% 50% no-repeat;
+ background-size: 70px 70px;
+ background-image: url('../../assets/images/loader.gif');
+
+ &.small {
+ height: 32px;
+ width: 32px;
+ min-height: 0;
+ min-width: 0;
+ background-size: 32px 32px;
+>>>>>>> hotfix/LoadingIndicator
+ }
+}
+
\ No newline at end of file
diff --git a/src/components/LoadingListItem/LoadingListItem.scss b/src/components/LoadingListItem/LoadingListItem.scss
index f7ddf3d43..8f8101fd7 100644
--- a/src/components/LoadingListItem/LoadingListItem.scss
+++ b/src/components/LoadingListItem/LoadingListItem.scss
@@ -1,126 +1,129 @@
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.loading-list-item {
- display: flex;
- max-width: 960px;
- border-bottom: 1px solid rgba($tc-gray-40, 0.3);
- @media (max-width: 700px) {
- display: block;
- }
-
- &:last-child {
- border-bottom: none;
- }
-
- .user-info {
- background-color: $tc-white;
- flex-basis: 60%;
- padding: 20px;
- position: relative;
+:global {
+ .loading-list-item {
+ display: flex;
+ max-width: 960px;
+ border-bottom: 1px solid rgba($tc-gray-40, 0.3);
@media (max-width: 700px) {
- flex-basis: 50%;
+ display: block;
}
- }
-
- .user-profile {
- display: flex;
- align-items: center;
-
- .user-avatar {
- width: 60px;
- height: 60px;
- margin-right: 20px;
+
+ &:last-child {
+ border-bottom: none;
+ }
+
+ .user-info {
+ background-color: $tc-white;
+ flex-basis: 60%;
+ padding: 20px;
position: relative;
- border-radius: 50%;
- background-color: $tc-gray-10;
@media (max-width: 700px) {
- margin-right: 10px;
+ flex-basis: 50%;
}
}
-
- .username-and-details {
- max-width: 225px;
- }
-
- .username {
- height: 18px;
- width: 126px;
- margin-bottom: 10px;
- background-color: $tc-gray-10;
- @media (max-width: 700px) {
- max-width: 180px;
+
+ .user-profile {
+ display: flex;
+ align-items: center;
+
+ .user-avatar {
+ width: 60px;
+ height: 60px;
+ margin-right: 20px;
+ position: relative;
+ border-radius: 50%;
+ background-color: $tc-gray-10;
+ @media (max-width: 700px) {
+ margin-right: 10px;
+ }
}
- }
-
-
- .user-details {
- .country-and-wins {
- height: 12px;
- width: 238px;
- background-color: $tc-gray-neutral-light;
- margin-bottom: 3px;
+
+ .username-and-details {
+ max-width: 225px;
}
-
- .member-since {
- height: 12px;
- width: 238px;
- background-color: $tc-gray-neutral-light;
+
+ .username {
+ height: 18px;
+ width: 126px;
+ margin-bottom: 10px;
+ background-color: $tc-gray-10;
+ @media (max-width: 700px) {
+ max-width: 180px;
+ }
+ }
+
+
+ .user-details {
+ .country-and-wins {
+ height: 12px;
+ width: 238px;
+ background-color: $tc-gray-neutral-light;
+ margin-bottom: 3px;
+ }
+
+ .member-since {
+ height: 12px;
+ width: 238px;
+ background-color: $tc-gray-neutral-light;
+ }
}
}
- }
-
- .user-stats {
- display: flex;
- align-items: center;
- flex-basis: 50%;
- max-width: 440px;
- margin-left: auto;
- padding: 20px;
- background-color: $tc-gray-neutral-light;
- border-left: 1px solid $tc-gray-neutral-dark;
- @media (max-width: 700px) {
- flex-basis: 100%;
- display: block;
- width: 100%;
- max-width: 1000px;
- padding: 15px;
- border: none;
- border-top: 1px solid $tc-gray-neutral-dark;
- overflow-x: auto;
+
+ .user-stats {
+ display: flex;
+ align-items: center;
+ flex-basis: 50%;
+ max-width: 440px;
+ margin-left: auto;
+ padding: 20px;
+ background-color: $tc-gray-neutral-light;
+ border-left: 1px solid $tc-gray-neutral-dark;
+ @media (max-width: 700px) {
+ flex-basis: 100%;
+ display: block;
+ width: 100%;
+ max-width: 1000px;
+ padding: 15px;
+ border: none;
+ border-top: 1px solid $tc-gray-neutral-dark;
+ overflow-x: auto;
+ }
}
- }
-
- .tag-list {
- height: 12px;
- width: 245px;
- background-color: $tc-gray-10;
- }
-
- .track-list {
- display: flex;
- flex-wrap: wrap;
- white-space: nowrap;
- @media (max-width: 700px) {
- flex-wrap: nowrap;
- display: block;
- width: auto;
- white-space: nowrap;
+
+ .tag-list {
+ height: 12px;
+ width: 245px;
+ background-color: $tc-gray-10;
}
- }
-
- .track-item {
- display: inline-block;
- height: 26px;
- width: 70px;
- margin-top: 10px;
- margin-right: 5px;
- border-radius: 13px;
- background-color: $tc-gray-10;
- &:last-child {
- margin-right: 0;
+
+ .track-list {
+ display: flex;
+ flex-wrap: wrap;
+ white-space: nowrap;
@media (max-width: 700px) {
- margin-right: 15px;
+ flex-wrap: nowrap;
+ display: block;
+ width: auto;
+ white-space: nowrap;
+ }
+ }
+
+ .track-item {
+ display: inline-block;
+ height: 26px;
+ width: 70px;
+ margin-top: 10px;
+ margin-right: 5px;
+ border-radius: 13px;
+ background-color: $tc-gray-10;
+ &:last-child {
+ margin-right: 0;
+ @media (max-width: 700px) {
+ margin-right: 15px;
+ }
}
}
}
}
+
\ No newline at end of file
diff --git a/src/components/Maintenance/Maintenance.scss b/src/components/Maintenance/Maintenance.scss
index faf714d6f..6c3fcd6e1 100644
--- a/src/components/Maintenance/Maintenance.scss
+++ b/src/components/Maintenance/Maintenance.scss
@@ -1,53 +1,56 @@
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.content.content-error {
- .container {
- width: 1220px;
- background: $tc-gray-neutral-dark;
- }
-}
-
-.page-error {
- border-radius:4px;
- position: relative;
- padding-top: 55px;
- text-align: center;
- min-height: 606px;
- min-width: 768px;
- width: 970px;
- margin: 20px auto 0;
- background: $tc-white url('../../assets/icons/coder-broken.svg') no-repeat 18% 85%;
- background-size: 307px 300px;
- a{
- color: $tc-dark-blue;
- &:hover {
- text-decoration: underline;
+:global {
+ .content.content-error {
+ .container {
+ width: 1220px;
+ background: $tc-gray-neutral-dark;
}
}
- h3{
- color: $tc-gray-70;
- @include roboto-medium;
- font-size: 48px;
- letter-spacing: 0px;
- padding: 0 168px 25px 168px;
- line-height: inherit;
- }
- p{
- text-align: left;
- padding: 0 168px;
- @include roboto;
- font-size: $tc-label-lg;
- color: $tc-gray-70;
- letter-spacing: 0px;
- line-height: 23px;
- }
- span{
- position: absolute;
- left: 49%;
- top: 45%;
- @include roboto-medium;
- font-size: 190px;
- color: $tc-orange-30;
- letter-spacing: 0px;
+
+ .page-error {
+ border-radius:4px;
+ position: relative;
+ padding-top: 55px;
+ text-align: center;
+ min-height: 606px;
+ min-width: 768px;
+ width: 970px;
+ margin: 20px auto 0;
+ /* background: $tc-white url('../../assets/icons/coder-broken.svg') no-repeat 18% 85%; */
+ background-size: 307px 300px;
+ a{
+ color: $tc-dark-blue;
+ &:hover {
+ text-decoration: underline;
+ }
+ }
+ h3{
+ color: $tc-gray-70;
+ @include roboto-medium;
+ font-size: 48px;
+ letter-spacing: 0px;
+ padding: 0 168px 25px 168px;
+ line-height: inherit;
+ }
+ p{
+ text-align: left;
+ padding: 0 168px;
+ @include roboto;
+ font-size: $tc-label-lg;
+ color: $tc-gray-70;
+ letter-spacing: 0px;
+ line-height: 23px;
+ }
+ span{
+ position: absolute;
+ left: 49%;
+ top: 45%;
+ @include roboto-medium;
+ font-size: 190px;
+ color: $tc-orange-30;
+ letter-spacing: 0px;
+ }
}
-}
\ No newline at end of file
+}
+
\ No newline at end of file
diff --git a/src/components/MessageDetails/MessageDetails.jsx b/src/components/MessageDetails/MessageDetails.jsx
index c56407958..5f880630f 100644
--- a/src/components/MessageDetails/MessageDetails.jsx
+++ b/src/components/MessageDetails/MessageDetails.jsx
@@ -46,41 +46,42 @@ class MessageDetails extends React.Component {
authorName += ' ' + currentUser.lastName
}
return (
-
- 1}
- >
- {hasMoreMessages &&
- {isLoadingComments ? 'Loading...' : 'Load earlier messages'}
- }
-
- {messages && messages.map((item, idx) =>
-
+ 1}
>
-
-
- )}
-
- { allowAddingComment &&
+ {hasMoreMessages &&
+ {isLoadingComments ? 'Loading...' : 'Load earlier messages'}
+ }
+
+ {messages && messages.map((item, idx) =>
+ (
+
+
+ )
+ )}
+
+ { allowAddingComment &&
- }
- {isDeletingTopic &&
+ }
+ {isDeletingTopic &&
- }
-
- )
+ }
+
+ )
}
}
diff --git a/src/components/MessageDetails/MessageDetails.scss b/src/components/MessageDetails/MessageDetails.scss
index 9394b65fd..6abdcabbb 100644
--- a/src/components/MessageDetails/MessageDetails.scss
+++ b/src/components/MessageDetails/MessageDetails.scss
@@ -1,11 +1,14 @@
-@import "tc-includes";
+@import '~tc-ui/src/styles/tc-includes';
-.message-details{
- min-height: 700px;
- padding-bottom: 70px;
- .messaging-comment-section{
- position: absolute;
- bottom: 20px;
- width: 100%;
+:global {
+ .message-details{
+ min-height: 700px;
+ padding-bottom: 70px;
+ .messaging-comment-section{
+ position: absolute;
+ bottom: 20px;
+ width: 100%;
+ }
}
-}
\ No newline at end of file
+}
+
\ No newline at end of file
diff --git a/src/components/MessageList/MessageList.scss b/src/components/MessageList/MessageList.scss
index 373cdfa82..f9ce52931 100644
--- a/src/components/MessageList/MessageList.scss
+++ b/src/components/MessageList/MessageList.scss
@@ -1,69 +1,72 @@
-@import "tc-includes";
+@import '~tc-ui/src/styles/tc-includes';
-.message-list{
- height: 100%;
- overflow: hidden;
-
- .panel-title{
- padding: $base-unit*2 $base-unit*4 $base-unit*4 $base-unit*4;
- }
- .panel-messages{
- min-height: 430px;
- background-color: $tc-gray-neutral-light;
- margin-bottom: -10px;
- @include roboto;
- line-height: $base-unit*4;
- height: calc(100% - 45px);// 45px is the height of panel-title
- overflow-y: auto;
- .message:last-child{
- border-bottom: 1px solid $tc-gray-10;
- }
- .message{
- padding: $base-unit*3 $base-unit*4;
- display: flex;
- background-color: $tc-white;
- border-top: 1px solid $tc-gray-10;
- cursor: pointer;
- &:hover{
- background-color: $tc-gray-neutral-light;
- }
+:global {
+ .message-list{
+ height: 100%;
+ overflow: hidden;
+
+ .panel-title{
+ padding: $base-unit*2 $base-unit*4 $base-unit*4 $base-unit*4;
}
- .message-body{
- margin-right: $base-unit*2;
- }
- .message-title{
- word-break: break-word;
- font-size: $tc-label-lg;
- color: $tc-gray-90;
+ .panel-messages{
+ min-height: 430px;
+ background-color: $tc-gray-neutral-light;
+ margin-bottom: -10px;
+ @include roboto;
line-height: $base-unit*4;
- }
- .message-subtitle{
- color: $tc-gray-50;
- font-size: $tc-label-md;
- }
- .message-time{
- margin-left: auto;
- font-size: $tc-label-sm;
- color: $tc-gray-40;
- .badge{
- padding: 0 $base-unit;
- background: $tc-orange-70;
- min-width: 20px;
- text-align: center;
- border-radius: 50%;
- color: $tc-white;
+ height: calc(100% - 45px);// 45px is the height of panel-title
+ overflow-y: auto;
+ .message:last-child{
+ border-bottom: 1px solid $tc-gray-10;
+ }
+ .message{
+ padding: $base-unit*3 $base-unit*4;
+ display: flex;
+ background-color: $tc-white;
+ border-top: 1px solid $tc-gray-10;
+ cursor: pointer;
+ &:hover{
+ background-color: $tc-gray-neutral-light;
+ }
+ }
+ .message-body{
+ margin-right: $base-unit*2;
}
- }
- .message.active{
- background-color: $tc-dark-blue-10;
- border-top: 1px solid $tc-dark-blue-30;
- border-bottom: 1px solid $tc-dark-blue-30;
.message-title{
- @include roboto-medium;
+ word-break: break-word;
+ font-size: $tc-label-lg;
+ color: $tc-gray-90;
+ line-height: $base-unit*4;
+ }
+ .message-subtitle{
+ color: $tc-gray-50;
+ font-size: $tc-label-md;
+ }
+ .message-time{
+ margin-left: auto;
+ font-size: $tc-label-sm;
+ color: $tc-gray-40;
+ .badge{
+ padding: 0 $base-unit;
+ background: $tc-orange-70;
+ min-width: 20px;
+ text-align: center;
+ border-radius: 50%;
+ color: $tc-white;
+ }
+ }
+ .message.active{
+ background-color: $tc-dark-blue-10;
+ border-top: 1px solid $tc-dark-blue-30;
+ border-bottom: 1px solid $tc-dark-blue-30;
+ .message-title{
+ @include roboto-medium;
+ }
+ }
+ .message.active + .message{
+ border-top: none;
}
- }
- .message.active + .message{
- border-top: none;
}
}
}
+
\ No newline at end of file
diff --git a/src/components/MessageList/MessagingEmptyState.scss b/src/components/MessageList/MessagingEmptyState.scss
index 80b421bfd..f1b7ea18c 100644
--- a/src/components/MessageList/MessagingEmptyState.scss
+++ b/src/components/MessageList/MessagingEmptyState.scss
@@ -1,9 +1,12 @@
-@import "tc-includes";
+@import '~tc-ui/src/styles/tc-includes';
-.messaging-empty-state {
- .btn-close {
- fill: $tc-orange-70;
- top: $base-unit;
- right: 0px;
+:global {
+ .messaging-empty-state {
+ .btn-close {
+ fill: $tc-orange-70;
+ top: $base-unit;
+ right: 0px;
+ }
}
-}
\ No newline at end of file
+}
+
\ No newline at end of file
diff --git a/src/components/Modal/Modal.scss b/src/components/Modal/Modal.scss
index 9d01fdae3..6e21c7ae7 100644
--- a/src/components/Modal/Modal.scss
+++ b/src/components/Modal/Modal.scss
@@ -1,154 +1,157 @@
-@import "tc-includes";
+@import '~tc-ui/src/styles/tc-includes';
@import "../../styles/variables";
-// TODO: unused css
-.modal {
- background: $tc-gray-neutral-light;
- border-radius: $corner-radius;
- position: relative;
- padding: $base-unit*2 0;
-
- .btn-close {
- position: absolute;
- display: block;
- width: 15px;
- height: 15px;
- top: $base-unit*3;
- right: $base-unit*3;
- background-size: $tc-heading-extra-small;
- }
-
- .modal-title {
- @include roboto-bold;
- font-size: $tc-label-lg;
- padding: $base-unit*2 $base-unit*4 0 $base-unit*4;
- line-height: $base-unit*4;
- text-align: center;
-
- &.title-muted {
- @include roboto-medium;
- color: $tc-gray-50;
- font-size: $tc-label-sm;
- text-transform: uppercase;
- padding-top: $base-unit;
- padding-bottom: $base-unit;
- }
-
- &.danger {
- color: $tc-red;
- }
- }
-
- .modal-body {
- @include roboto;
- font-size: $tc-label-md;
- line-height: $base-unit * 4;
- margin: $base-unit*2 $base-unit*4;
-
- input {
+:global {
+ // TODO: unused css
+ .modal {
+ background: $tc-gray-neutral-light;
+ border-radius: $corner-radius;
+ position: relative;
+ padding: $base-unit*2 0;
+
+ .btn-close {
+ position: absolute;
display: block;
- height: 38px;
- margin: 0 auto;
- color: $tc-black;
- background: $tc-gray-neutral-light;
- border-color: $tc-gray-20;
- @include tc-label-md;
- @include placeholder {
- text-transform: none;
+ width: 15px;
+ height: 15px;
+ top: $base-unit*3;
+ right: $base-unit*3;
+ background-size: $tc-heading-extra-small;
+ }
+
+ .modal-title {
+ @include roboto-bold;
+ font-size: $tc-label-lg;
+ padding: $base-unit*2 $base-unit*4 0 $base-unit*4;
+ line-height: $base-unit*4;
+ text-align: center;
+
+ &.title-muted {
+ @include roboto-medium;
+ color: $tc-gray-50;
+ font-size: $tc-label-sm;
+ text-transform: uppercase;
+ padding-top: $base-unit;
+ padding-bottom: $base-unit;
}
-
- &[disabled] {
- color: $tc-gray-20;
- background: $tc-white;
+
+ &.danger {
+ color: $tc-red;
}
-
- &:hover {
- border-color: $tc-gray-40;
+ }
+
+ .modal-body {
+ @include roboto;
+ font-size: $tc-label-md;
+ line-height: $base-unit * 4;
+ margin: $base-unit*2 $base-unit*4;
+
+ input {
+ display: block;
+ height: 38px;
+ margin: 0 auto;
+ color: $tc-black;
background: $tc-gray-neutral-light;
- }
-
- &:focus {
- background: $tc-white !important;
- border-color: $tc-dark-blue !important;
- }
-
- &.error {
- border-left: 3px solid $tc-red-70 !important;
- background: $tc-gray-neutral-light !important;
-
+ border-color: $tc-gray-20;
+ @include tc-label-md;
+ @include placeholder {
+ text-transform: none;
+ }
+
+ &[disabled] {
+ color: $tc-gray-20;
+ background: $tc-white;
+ }
+
+ &:hover {
+ border-color: $tc-gray-40;
+ background: $tc-gray-neutral-light;
+ }
+
&:focus {
background: $tc-white !important;
border-color: $tc-dark-blue !important;
}
+
+ &.error {
+ border-left: 3px solid $tc-red-70 !important;
+ background: $tc-gray-neutral-light !important;
+
+ &:focus {
+ background: $tc-white !important;
+ border-color: $tc-dark-blue !important;
+ }
+ }
}
- }
-
- .modal-inline-form {
- display: flex;
- margin-bottom: $base-unit*2;
-
- button {
- margin-left: $base-unit;
- }
-
- .input-icon-group {
- position: relative;
- flex-grow: 1;
+
+ .modal-inline-form {
display: flex;
- border: 1px solid $tc-gray-20;
- box-shadow: inset 0px 0px 2px 0px rgba($tc-gray-30, 0.2);
-
- input {
- flex-grow: 1;
- display: inline-block;
- border: none;
- box-shadow: none;
+ margin-bottom: $base-unit*2;
+
+ button {
+ margin-left: $base-unit;
}
-
- .input-icon {
- height: 30px;
- margin: 4px;
-
- &:empty {
- width: 36px;
- background-size: 30px 30px;
- background-color: $tc-gray-20;
- background-position: center;
- border-radius: 34px;
+
+ .input-icon-group {
+ position: relative;
+ flex-grow: 1;
+ display: flex;
+ border: 1px solid $tc-gray-20;
+ box-shadow: inset 0px 0px 2px 0px rgba($tc-gray-30, 0.2);
+
+ input {
+ flex-grow: 1;
+ display: inline-block;
+ border: none;
+ box-shadow: none;
}
-
- img {
- width: 30px;
+
+ .input-icon {
height: 30px;
- border-radius: 34px;
+ margin: 4px;
+
+ &:empty {
+ width: 36px;
+ background-size: 30px 30px;
+ background-color: $tc-gray-20;
+ background-position: center;
+ border-radius: 34px;
+ }
+
+ img {
+ width: 30px;
+ height: 30px;
+ border-radius: 34px;
+ }
}
}
}
- }
-
- .message {
- text-align: center;
- margin-bottom: $base-unit*4;
- color: $tc-black;
- }
-
- .button-area {
- button:not(:last-child) {
- margin-right: 2 * $base-unit;
+
+ .message {
+ text-align: center;
+ margin-bottom: $base-unit*4;
+ color: $tc-black;
}
-
- .btn-cancel {
- border: 1px solid $tc-dark-blue;
- box-shadow: 0px 0px 3px 0px $tc-dark-blue-30;
+
+ .button-area {
+ button:not(:last-child) {
+ margin-right: 2 * $base-unit;
+ }
+
+ .btn-cancel {
+ border: 1px solid $tc-dark-blue;
+ box-shadow: 0px 0px 3px 0px $tc-dark-blue-30;
+ }
}
}
+
+ .form-group {
+ margin-top: 20px;
+ margin-bottom: 15px;
+ }
+
+ .center-buttons {
+ text-align: center;
+ }
}
-
- .form-group {
- margin-top: 20px;
- margin-bottom: 15px;
- }
-
- .center-buttons {
- text-align: center;
- }
-}
\ No newline at end of file
+}
+
\ No newline at end of file
diff --git a/src/components/ModalControl/ModalControl.scss b/src/components/ModalControl/ModalControl.scss
index df92273d9..eee918121 100644
--- a/src/components/ModalControl/ModalControl.scss
+++ b/src/components/ModalControl/ModalControl.scss
@@ -1,45 +1,48 @@
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.ModalControl {
- cursor: pointer;
- display: inline-block;
- text-align: center;
- .bubble {
- background: $tc-gray-10;
- border-radius: 40px;
- height: 40px;
- margin: 8px;
- width: 40px;
- }
- .icon-wrapper {
- display: table-cell;
- vertical-align: middle;
- height: 43px;
+:global {
+ .ModalControl {
+ cursor: pointer;
+ display: inline-block;
text-align: center;
- width: 40px;
- color: $tc-gray-70;
-
- svg {
- fill: $tc-gray-70;
- }
- }
- .label {
- @include roboto-medium;
- color: $tc-gray-70;
- font-size: 13px;
- text-transform: uppercase;
- }
- &:hover {
- color: $tc-white;
.bubble {
- background: $tc-dark-blue-70;
+ background: $tc-gray-10;
+ border-radius: 40px;
+ height: 40px;
+ margin: 8px;
+ width: 40px;
+ }
+ .icon-wrapper {
+ display: table-cell;
+ vertical-align: middle;
+ height: 43px;
+ text-align: center;
+ width: 40px;
+ color: $tc-gray-70;
+
+ svg {
+ fill: $tc-gray-70;
+ }
}
.label {
- color: $tc-black;
+ @include roboto-medium;
+ color: $tc-gray-70;
+ font-size: 13px;
+ text-transform: uppercase;
}
-
- svg {
- fill: $tc-white;
+ &:hover {
+ color: $tc-white;
+ .bubble {
+ background: $tc-dark-blue-70;
+ }
+ .label {
+ color: $tc-black;
+ }
+
+ svg {
+ fill: $tc-white;
+ }
}
}
}
+
\ No newline at end of file
diff --git a/src/components/NoResults/NoResults.scss b/src/components/NoResults/NoResults.scss
index 4676b0bbe..c5159883f 100644
--- a/src/components/NoResults/NoResults.scss
+++ b/src/components/NoResults/NoResults.scss
@@ -1,30 +1,33 @@
@import '~tc-ui/src/styles/tc-includes';
-.no-results {
- max-width: 960px;
- margin: 70px auto 20px;
- text-align: center;
- color: $tc-gray-80;
-
- p {
- margin-bottom: 50px;
- @include tc-heading-large;
- font-weight: 300;
+:global {
+ .no-results {
+ max-width: 960px;
+ margin: 70px auto 20px;
+ text-align: center;
+ color: $tc-gray-80;
+
+ p {
+ margin-bottom: 50px;
+ @include tc-heading-large;
+ font-weight: 300;
+ }
+
+ span:last-child {
+ font-weight: 500;
+ word-break: break-word;
+ }
}
-
- span:last-child {
- font-weight: 500;
- word-break: break-word;
+
+ // ReactCSSTransitionGroup transitions
+ .no-results-appear {
+ opacity: 0.01;
+
+ &.no-results-appear-active {
+ opacity: 1;
+ transition: opacity .25s ease-in;
+ }
}
+
}
-
-// ReactCSSTransitionGroup transitions
-.no-results-appear {
- opacity: 0.01;
-
- &.no-results-appear-active {
- opacity: 1;
- transition: opacity .25s ease-in;
- }
-}
-
+
\ No newline at end of file
diff --git a/src/components/NotificationItem/NotificationItem.jsx b/src/components/NotificationItem/NotificationItem.jsx
index e8c210493..da33511fd 100644
--- a/src/components/NotificationItem/NotificationItem.jsx
+++ b/src/components/NotificationItem/NotificationItem.jsx
@@ -79,7 +79,7 @@ const NotificationItem = (props) => {
const notificationItem = (
-
+
diff --git a/src/components/NotificationItem/NotificationItem.scss b/src/components/NotificationItem/NotificationItem.scss
index 45d67f94a..e3e63807f 100644
--- a/src/components/NotificationItem/NotificationItem.scss
+++ b/src/components/NotificationItem/NotificationItem.scss
@@ -1,89 +1,92 @@
// this is to include tc styles in the output library
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.notification-item-link {
- display: block;
- border-top: 1px solid $tc-gray-10;
-
- &:first-child {
- border: none;
- }
-}
-
-.notification-item {
- display: flex;
- background-color: $tc-white;
- justify-content: space-between;
- transition: 150ms all;
-
- &:hover {
- background-color: $tc-dark-blue-10;
- }
-
- & + &,
- .notification-item-link + & {
+:global {
+ .notification-item-link {
+ display: block;
border-top: 1px solid $tc-gray-10;
- }
-
- .icon {
- align-items: center;
- // border-left: 2px solid #55a5ff;
- display: flex;
- flex: 0 0 44px;
- justify-content: center;
- }
-
- .body {
- flex: 1;
- padding: 15px 0;
-
- .content {
- @include roboto;
- color: $tc-black;
- font-size: 13px;
- line-height: 20px;
-
- > strong {
- color: #000;
- font-weight: bold;
- }
- }
-
- > .date {
- @include roboto;
- color: $tc-gray-50;
- font-size: 11px;
- line-height: 20px;
+
+ &:first-child {
+ border: none;
}
}
-
- .mark-read {
- align-items: center;
+
+ .notification-item {
display: flex;
- flex: 0 0 40px;
- justify-content: flex-end;
- transition: all 150ms;
-
+ background-color: $tc-white;
+ justify-content: space-between;
+ transition: 150ms all;
+
&:hover {
- background-color: $tc-dark-blue-30;
-
- svg {
- fill: $tc-dark-blue;
+ background-color: $tc-dark-blue-10;
+ }
+
+ .icon {
+ align-items: center;
+ // border-left: 2px solid #55a5ff;
+ display: flex;
+ flex: 0 0 44px;
+ justify-content: center;
+ }
+
+ .body {
+ flex: 1;
+ padding: 15px 0;
+
+ .content {
+ @include roboto;
+ color: $tc-black;
+ font-size: 13px;
+ line-height: 20px;
+
+ > strong {
+ color: #000;
+ font-weight: bold;
+ }
+ }
+
+ > .date {
+ @include roboto;
+ color: $tc-gray-50;
+ font-size: 11px;
+ line-height: 20px;
}
}
-
- button {
- background: none;
- border: 0;
- display: block;
- height: 42px;
- margin: 0;
- padding: 0;
- width: 42px;
-
- svg {
- fill: $tc-gray-20;
+
+ .mark-read {
+ align-items: center;
+ display: flex;
+ flex: 0 0 40px;
+ justify-content: flex-end;
+ transition: all 150ms;
+
+ &:hover {
+ background-color: $tc-dark-blue-30;
+
+ svg {
+ fill: $tc-dark-blue;
+ }
+ }
+
+ button {
+ background: none;
+ border: 0;
+ display: block;
+ height: 42px;
+ margin: 0;
+ padding: 0;
+ width: 42px;
+
+ svg {
+ fill: $tc-gray-20;
+ }
}
}
+
+ .notification-item + .notification-item,
+ .notification-item-link + .notification-item {
+ border-top: 1px solid $tc-gray-10;
+ }
}
}
+
\ No newline at end of file
diff --git a/src/components/NotificationsDropdown/NotificationsDropdown.jsx b/src/components/NotificationsDropdown/NotificationsDropdown.jsx
index 465ba327d..30bd9c73f 100644
--- a/src/components/NotificationsDropdown/NotificationsDropdown.jsx
+++ b/src/components/NotificationsDropdown/NotificationsDropdown.jsx
@@ -5,7 +5,7 @@
*/
import React from 'react'
import PropTypes from 'prop-types'
-import { Dropdown } from 'appirio-tech-react-components'
+import Dropdown from 'appirio-tech-react-components/components/Dropdown/Dropdown'
import cn from 'classnames'
import Bell from '../../assets/icons/ui-bell.svg'
diff --git a/src/components/NotificationsDropdown/NotificationsDropdown.scss b/src/components/NotificationsDropdown/NotificationsDropdown.scss
index b9b7988be..17c8f126a 100644
--- a/src/components/NotificationsDropdown/NotificationsDropdown.scss
+++ b/src/components/NotificationsDropdown/NotificationsDropdown.scss
@@ -1,112 +1,116 @@
// this is to include tc styles in the output library
-@import 'tc-includes';
-
-// project override for dropdown shadow
-.Dropdown {
- box-shadow: 0 3px 30px 2px rgba(0, 0, 0, 0.5);
- cursor: default;
- user-select: none;
-}
-
-.notifications-dropdown {
- align-items: center;
- display: flex;
- margin-left: -8px;
- margin-right: 12px;
- position: relative;
-
- .UserDropdownMenu {
- padding: 0;
- }
+@import '~tc-ui/src/styles/tc-includes';
+:global {
+ // project override for dropdown shadow
.Dropdown {
- right: 10px;
- left: auto;
- padding-bottom: 0;
- position: fixed;
- top: 54px;
- width: auto;
- }
-
- .UserDropdownMenu .Dropdown.pointer-shadow {
- margin-top: 0;
-
- &::before {
- background-color: $tc-gray-neutral-light;
- right: 12px;
- }
+ box-shadow: 0 3px 30px 2px rgba(0, 0, 0, 0.5);
+ cursor: default;
+ user-select: none;
}
-
- .notifications-dropdown-bell {
+
+ .notifications-dropdown {
align-items: center;
- cursor: pointer;
display: flex;
- justify-content: center;
- height: 32px;
- /* prevent notifications text selection when clicking the bell fast */
- user-select: none;
+ margin-left: -8px;
+ margin-right: 12px;
position: relative;
- width: 32px;
-
- .icon-ui-bell path {
- fill: $tc-white;
+
+ .UserDropdownMenu {
+ padding: 0;
+ display: flex;
}
-
- &:not(.has-unread) {
- .icon-ui-bell path {
- fill: $tc-gray-50;
+
+ .Dropdown {
+ right: 10px;
+ left: auto;
+ padding-bottom: 0;
+ position: fixed;
+ top: 54px;
+ width: auto;
+ }
+
+ .UserDropdownMenu .Dropdown.pointer-shadow {
+ margin-top: 0;
+
+ &::before {
+ background-color: $tc-gray-neutral-light;
+ right: 12px;
}
}
- }
+
+ .notifications-dropdown-bell {
+ align-items: center;
+ cursor: pointer;
+ display: flex;
+ justify-content: center;
+ height: 32px;
+ /* prevent notifications text selection when clicking the bell fast */
+ user-select: none;
+ position: relative;
+ width: 32px;
+
+ .icon-ui-bell path {
+ fill: $tc-white;
+ }
- .notifications-dropdown-bell.has-unread {
- &::after {
- background-color: $tc-red-70;
- border-radius: 50%;
- content: '';
+ &:not(.has-unread) {
+ .icon-ui-bell path {
+ fill: $tc-gray-50;
+ }
+ }
+ }
+
+ .notifications-dropdown-bell.has-unread {
+ &::after {
+ background-color: $tc-red-70;
+ border-radius: 50%;
+ content: '';
+ display: block;
+ height: 8px;
+ position: absolute;
+ right: -2px;
+ top: 2px;
+ width: 8px;
+ }
+ }
+
+ .notifications-dropdown-body {
+ // window height
+ // - 54px dropdown top position
+ // - 40px dropdown header
+ // - 41px dropdown footer
+ // - 10px dropdown margin bottom
+ height: calc(100vh - 145px);
+ max-height: 500px;
+ overflow: auto;
+ }
+
+ .notifications-dropdown-content {
+ border-radius: 4px;
+ overflow: hidden;
+ width: 480px;
+ }
+
+ .notifications-read-all {
+ @include roboto;
+ background-color: $tc-gray-neutral-light;
+ border-top: 1px solid $tc-gray-10;
+ color: $tc-gray-50;
display: block;
- height: 8px;
- position: absolute;
- right: -2px;
- top: 2px;
- width: 8px;
+ font-size: 12px;
+ line-height: 40px;
+ letter-spacing: 0;
+ text-align: center;
}
- }
-
- .notifications-dropdown-body {
- // window height
- // - 54px dropdown top position
- // - 40px dropdown header
- // - 41px dropdown footer
- // - 10px dropdown margin bottom
- height: calc(100vh - 145px);
- max-height: 500px;
- overflow: auto;
- }
-
- .notifications-dropdown-content {
- border-radius: 4px;
- overflow: hidden;
- width: 480px;
- }
-
- .notifications-read-all {
- @include roboto;
- background-color: $tc-gray-neutral-light;
- border-top: 1px solid $tc-gray-10;
- color: $tc-gray-50;
- display: block;
- font-size: 12px;
- line-height: 40px;
- letter-spacing: 0;
- text-align: center;
- }
-
- .notifications-empty {
- padding: 50px 0 60px;
-
- .notification-settings {
- margin-top: 30px;
+
+ .notifications-empty {
+ padding: 50px 0 60px;
+
+ .notification-settings {
+ margin-top: 30px;
+ }
}
}
}
+
\ No newline at end of file
diff --git a/src/components/NotificationsDropdown/NotificationsDropdownContainer.jsx b/src/components/NotificationsDropdown/NotificationsDropdownContainer.jsx
index 573fd5a2f..7e1eb1d43 100644
--- a/src/components/NotificationsDropdown/NotificationsDropdownContainer.jsx
+++ b/src/components/NotificationsDropdown/NotificationsDropdownContainer.jsx
@@ -83,21 +83,21 @@ class NotificationsDropdownContainer extends React.Component {
onReadToggleClick={document.body.classList.remove('noScroll'), toggleNotificationReadWithDelay}
/>
}
- {projectSources.filter(source => source.notifications.length > 0).map(source =>
+ {projectSources.filter(source => source.notifications.length > 0).map(source => (
- )}
+ ))}
,
{
olderNotificationsCount > 0 ?
- `View ${olderNotificationsCount} older notification${olderNotificationsCount > 1 ? 's' : ''}` :
- 'View all notifications'
+ `View ${olderNotificationsCount} older notification${olderNotificationsCount > 1 ? 's' : ''}` :
+ 'View all notifications'
}
])}
diff --git a/src/components/NotificationsDropdownHeader/NotificationsDropdownHeader.scss b/src/components/NotificationsDropdownHeader/NotificationsDropdownHeader.scss
index ac82933a0..7620e49af 100644
--- a/src/components/NotificationsDropdownHeader/NotificationsDropdownHeader.scss
+++ b/src/components/NotificationsDropdownHeader/NotificationsDropdownHeader.scss
@@ -1,33 +1,36 @@
// this is to include tc styles in the output library
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.notifications-dropdown-header {
- align-items: center;
- background: $tc-gray-neutral-light;
- border-bottom: 1px solid $tc-gray-20;
- display: flex;
- justify-content: space-between;
- padding: 0 15px;
-
- .header {
- @include roboto-medium;
- color: $tc-gray-70;
- font-size: 12px;
- line-height: 39px;
- letter-spacing: 0;
- text-transform: uppercase;
- }
-
- .mark-all {
- @include roboto;
- background: none;
- border: 0;
- color: $tc-gray-50;
- height: 39px;
- line-height: 39px;
- display: block;
- font-size: 12px;
- letter-spacing: 0;
- padding: 0;
+:global {
+ .notifications-dropdown-header {
+ align-items: center;
+ background: $tc-gray-neutral-light;
+ border-bottom: 1px solid $tc-gray-20;
+ display: flex;
+ justify-content: space-between;
+ padding: 0 15px;
+
+ .header {
+ @include roboto-medium;
+ color: $tc-gray-70;
+ font-size: 12px;
+ line-height: 39px;
+ letter-spacing: 0;
+ text-transform: uppercase;
+ }
+
+ .mark-all {
+ @include roboto;
+ background: none;
+ border: 0;
+ color: $tc-gray-50;
+ height: 39px;
+ line-height: 39px;
+ display: block;
+ font-size: 12px;
+ letter-spacing: 0;
+ padding: 0;
+ }
}
}
+
\ No newline at end of file
diff --git a/src/components/NotificationsEmpty/NotificationsEmpty.scss b/src/components/NotificationsEmpty/NotificationsEmpty.scss
index e04387b38..ae6e3e11b 100644
--- a/src/components/NotificationsEmpty/NotificationsEmpty.scss
+++ b/src/components/NotificationsEmpty/NotificationsEmpty.scss
@@ -1,34 +1,37 @@
// this is to include tc styles in the output library
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.notifications-empty {
- background-color: #fff;
- border-radius: 4px;
- padding: 70px 0 110px;
- text-align: center;
-
- > .icon {
- line-height: 0;
-
- > svg {
- height: 32px;
- width: 32px;
-
- > g > g {
- fill: #6a6a72;
+:global {
+ .notifications-empty {
+ background-color: #fff;
+ border-radius: 4px;
+ padding: 70px 0 110px;
+ text-align: center;
+
+ > .icon {
+ line-height: 0;
+
+ > svg {
+ height: 32px;
+ width: 32px;
+
+ > g > g {
+ fill: #6a6a72;
+ }
}
}
- }
-
- > .additional-content {
- line-height: normal;
- }
-
- > .message {
- @include roboto;
- color: $tc-gray-70;
- font-size: 20px;
- line-height: 30px;
- margin-top: 14px;
+
+ > .additional-content {
+ line-height: normal;
+ }
+
+ > .message {
+ @include roboto;
+ color: $tc-gray-70;
+ font-size: 20px;
+ line-height: 30px;
+ margin-top: 14px;
+ }
}
}
+
\ No newline at end of file
diff --git a/src/components/NotificationsSection/NotificationsSection.jsx b/src/components/NotificationsSection/NotificationsSection.jsx
index 7d9d70a18..c8efb9513 100644
--- a/src/components/NotificationsSection/NotificationsSection.jsx
+++ b/src/components/NotificationsSection/NotificationsSection.jsx
@@ -25,12 +25,12 @@ const NotificationsSection = (props) => {
))}
{props.onViewOlderClick && props.total > props.notifications.length && (
- props.isLoading ? (
-
- ) : (
- View {props.total - props.notifications.length} older notifications
- )
+ props.isLoading ? (
+
+ ) : (
+ View {props.total - props.notifications.length} older notifications
)
+ )
}
)
diff --git a/src/components/NotificationsSection/NotificationsSection.scss b/src/components/NotificationsSection/NotificationsSection.scss
index 81a4afe8e..f724e430a 100644
--- a/src/components/NotificationsSection/NotificationsSection.scss
+++ b/src/components/NotificationsSection/NotificationsSection.scss
@@ -1,36 +1,39 @@
// this is to include tc styles in the output library
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.notifications-section {
- border: 1px solid $tc-gray-20;
-
- & + & {
+:global {
+ .notifications-section {
+ border: 1px solid $tc-gray-20;
+
+ .view-older {
+ @include roboto;
+ align-items: center;
+ background: $tc-gray-neutral-light;
+ border: 0;
+ color: $tc-gray-50;
+ border-radius: 0;
+ border-top: 1px solid $tc-gray-10;
+ display: flex;
+ font-size: 13px;
+ height: 40px;
+ justify-content: center;
+ line-height: 40px;
+ text-align: center;
+ width: 100%;
+ }
+ }
+
+ .notifications-section + .notifications-section {
margin-top: 20px;
}
-
- &.is-simple + &.is-simple {
+
+ .notifications-section.is-simple+.notifications-section.is-simple {
margin-top: 0;
}
-
- .view-older {
- @include roboto;
- align-items: center;
- background: $tc-gray-neutral-light;
- border: 0;
- color: $tc-gray-50;
- border-radius: 0;
- border-top: 1px solid $tc-gray-10;
- display: flex;
- font-size: 13px;
- height: 40px;
- justify-content: center;
- line-height: 40px;
- text-align: center;
- width: 100%;
+
+ // Hide border in dropdown menu
+ .Dropdown .notifications-section {
+ border: none;
}
}
-
-// Hide border in dropdown menu
-.Dropdown .notifications-section {
- border: none;
-}
+
\ No newline at end of file
diff --git a/src/components/NotificationsSectionTitle/NotificationsSectionTitle.scss b/src/components/NotificationsSectionTitle/NotificationsSectionTitle.scss
index b2578f650..5f53902f8 100644
--- a/src/components/NotificationsSectionTitle/NotificationsSectionTitle.scss
+++ b/src/components/NotificationsSectionTitle/NotificationsSectionTitle.scss
@@ -1,59 +1,62 @@
// this is to include tc styles in the output library
-@import 'tc-includes';
-
-.notifications-section-title {
- align-items: center;
- background-color: $tc-gray-20;
- // border-bottom: 1px solid $tc-gray-20;
- display: flex;
- justify-content: space-between;
-
- .title {
- @include roboto-bold;
- color: $tc-gray-80;
- font-size: 13px;
- line-height: 20px;
- padding: 5px 0;
- margin-left: 15px;
- }
-
- .controls {
- .mark-all {
- @include roboto;
- background: none;
- border: 0;
- color: $tc-gray-50;
- display: block;
- font-size: 11px;
- line-height: 30px;
- white-space: nowrap;
- }
- }
-
- &.global {
- align-items: flex-end;
- background-color: transparent;
- margin: 31px 0 10px;
- padding: 0;
-
- &:first-child {
- margin-top: 0;
- }
+@import '~tc-ui/src/styles/tc-includes';
+:global {
+ .notifications-section-title {
+ align-items: center;
+ background-color: $tc-gray-20;
+ // border-bottom: 1px solid $tc-gray-20;
+ display: flex;
+ justify-content: space-between;
+
.title {
- color: $tc-black;
- font-size: 20px;
- font-weight: 400;
- line-height: 30px;
- margin-left: 0;
+ @include roboto-bold;
+ color: $tc-gray-80;
+ font-size: 13px;
+ line-height: 20px;
+ padding: 5px 0;
+ margin-left: 15px;
}
-
+
.controls {
.mark-all {
- height: 20px;
- line-height: 20px;
- padding: 0;
+ @include roboto;
+ background: none;
+ border: 0;
+ color: $tc-gray-50;
+ display: block;
+ font-size: 11px;
+ line-height: 30px;
+ white-space: nowrap;
+ }
+ }
+
+ &.global {
+ align-items: flex-end;
+ background-color: transparent;
+ margin: 31px 0 10px;
+ padding: 0;
+
+ &:first-child {
+ margin-top: 0;
+ }
+
+ .title {
+ color: $tc-black;
+ font-size: 20px;
+ font-weight: 400;
+ line-height: 30px;
+ margin-left: 0;
+ }
+
+ .controls {
+ .mark-all {
+ height: 20px;
+ line-height: 20px;
+ padding: 0;
+ }
}
}
}
-}
\ No newline at end of file
+}
+
\ No newline at end of file
diff --git a/src/components/NumberText/NumberText.scss b/src/components/NumberText/NumberText.scss
index a0d92e521..cd610a299 100644
--- a/src/components/NumberText/NumberText.scss
+++ b/src/components/NumberText/NumberText.scss
@@ -1,11 +1,14 @@
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.screen-number {
- font-family: "Roboto";
- font-size: 42px;
- text-align: center;
- color: $tc-gray-70;
- line-height: $base-unit * 10;
- margin-top: $base-unit * 6;
- margin-bottom: $base-unit * 2;
+:global {
+ .screen-number {
+ font-family: "Roboto";
+ font-size: 42px;
+ text-align: center;
+ color: $tc-gray-70;
+ line-height: $base-unit * 10;
+ margin-top: $base-unit * 6;
+ margin-bottom: $base-unit * 2;
+ }
}
+
\ No newline at end of file
diff --git a/src/components/Panel/Panel.scss b/src/components/Panel/Panel.scss
index dbbaffcfb..984e609d9 100644
--- a/src/components/Panel/Panel.scss
+++ b/src/components/Panel/Panel.scss
@@ -1,115 +1,118 @@
-@import "tc-includes";
-
-.panel {
- background: $tc-white;
- border-radius: $corner-radius;
- padding: $base-unit*2 0;
- position: relative;
- box-shadow: 0px 1px 3px 0px $tc-gray-30;
-
- .panel-title,
- .panel-body {
- padding: $base-unit*2 $base-unit*4;
- }
+@import '~tc-ui/src/styles/tc-includes';
- .panel-title {
- @include roboto-medium;
- color: $tc-gray-50;
- text-transform: uppercase;
- font-size: $tc-label-sm;
- line-height: $base-unit*3;
- }
+:global {
+ .panel {
+ background: $tc-white;
+ border-radius: $corner-radius;
+ padding: $base-unit*2 0;
+ position: relative;
+ // box-shadow: 0 1px 2px 0 rgba(0,0,0,0.20);
- .panel-body {
- &.join-project {
- background-color: $tc-gray-neutral-light;
+ .panel-title,
+ .panel-body {
+ padding: $base-unit*2 $base-unit*4;
}
- }
-
- .btn-action {
- position: absolute;
- top: $base-unit*3;
- right: $base-unit*4;
- border-radius: 21px;
- height: 4 * $base-unit;
- width: 4 * $base-unit;
- &:hover {
- opacity: 0.7;
+ .panel-title {
+ @include roboto-medium;
+ color: $tc-gray-50;
+ text-transform: uppercase;
+ font-size: $tc-label-sm;
+ line-height: $base-unit*3;
}
- .plus {
- background-color: $tc-gray-40;
- border-radius: 10px;
- width: 4 * $base-unit;
- height: 4 * $base-unit;
- display: flex;
- justify-content: center;
- align-items: center;
-
- svg {
- fill: $tc-white;
- width: 8px;
- height: 8px;
+ .panel-body {
+ &.join-project {
+ background-color: $tc-gray-neutral-light;
}
}
- .remove svg {
- background-color: $tc-white;
- fill: $tc-gray-40;
- }
+ .btn-action {
+ position: absolute;
+ top: $base-unit*3;
+ right: $base-unit*4;
+ border-radius: 21px;
+ height: 4 * $base-unit;
+ width: 4 * $base-unit;
- .close {
- }
- }
-}
+ &:hover {
+ opacity: 0.7;
+ }
-.panel.modal-active {
- position: relative;
+ .plus {
+ background-color: $tc-gray-40;
+ border-radius: 10px;
+ width: 4 * $base-unit;
+ height: 4 * $base-unit;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+
+ svg {
+ fill: $tc-white;
+ width: 8px;
+ height: 8px;
+ }
+ }
- .modal-overlay {
- position: absolute;
- top: 0;
- left: 0;
- background: $tc-white;
- opacity: 0.8;
- width: 100%;
- height: 100%;
- border-radius: $corner-radius;
- z-index: 1;
+ .remove svg {
+ background-color: $tc-white;
+ fill: $tc-gray-40;
+ }
+
+ .close {
+ }
+ }
}
- .modal,
- .panel-title {
+ .panel.modal-active {
position: relative;
- z-index: 2;
- }
-}
-.panel {
- &.panel-gray {
- background: $tc-gray-neutral-light;
- margin-bottom: -10px;
- }
+ .modal-overlay {
+ position: absolute;
+ top: 0;
+ left: 0;
+ background: $tc-white;
+ opacity: 0.8;
+ width: 100%;
+ height: 100%;
+ border-radius: $corner-radius;
+ z-index: 1;
+ }
- &.panel-orange {
- background-color: $tc-orange-10;
+ .modal,
+ .panel-title {
+ position: relative;
+ z-index: 2;
+ }
}
- .panel-body {
- &.active {
- position: relative;
+ .panel {
+ &.panel-gray {
+ background: $tc-gray-neutral-light;
+ margin-bottom: -10px;
+ }
+
+ &.panel-orange {
+ background-color: $tc-orange-10;
+ }
- &::after {
- content: '';
- display: block;
- position: absolute;
- top: 10;
- left: 0;
- width: 2px;
- height: 90%;
- background: $tc-dark-blue-70;
+ .panel-body {
+ &.active {
+ position: relative;
+
+ &::after {
+ content: '';
+ display: block;
+ position: absolute;
+ top: 10;
+ left: 0;
+ width: 2px;
+ height: 90%;
+ background: $tc-dark-blue-70;
+ }
}
}
}
}
+
\ No newline at end of file
diff --git a/src/components/PanelProject/PanelProject.scss b/src/components/PanelProject/PanelProject.scss
index fd8bf058d..05c049a5b 100644
--- a/src/components/PanelProject/PanelProject.scss
+++ b/src/components/PanelProject/PanelProject.scss
@@ -1,16 +1,19 @@
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
@import "../../styles/variables";
-.panel-project {
- padding: $base-unit*2 $base-unit*4;
-
- .project-heading {
- @include roboto-medium;
- font-size: $tc-heading;
- color: $tc-black;
- line-height: $base-unit*6;
- .text-muted {
- color: $tc-gray-50;
+:global {
+ .panel-project {
+ padding: $base-unit*2 $base-unit*4;
+
+ .project-heading {
+ @include roboto-medium;
+ font-size: $tc-heading;
+ color: $tc-black;
+ line-height: $base-unit*6;
+ .text-muted {
+ color: $tc-gray-50;
+ }
}
}
-}
\ No newline at end of file
+}
+
\ No newline at end of file
diff --git a/src/components/ProjectInfo/ProjectInfo.scss b/src/components/ProjectInfo/ProjectInfo.scss
index 4adf0c07e..78e79bbf4 100644
--- a/src/components/ProjectInfo/ProjectInfo.scss
+++ b/src/components/ProjectInfo/ProjectInfo.scss
@@ -1,38 +1,40 @@
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.project-info {
- display: flex;
- flex-direction: column;
- background-color: $tc-white;
- border-top-left-radius: 6px;
- border-top-right-radius: 6px;
- @include tc-label-md;
+:global {
+ .project-info {
+ display: flex;
+ flex-direction: column;
+ background-color: $tc-white;
+ border-top-left-radius: 6px;
+ border-top-right-radius: 6px;
+ padding-bottom: 25px;
+ @include tc-label-md;
- .project-card-body {
- padding-left: 4 * $base_unit;
- padding-right: 4 * $base_unit;
- .project-description {
- max-height: 120px;
- min-height: 10px;
- margin-bottom: 5 * $base_unit;
+ .project-card-body {
+ padding-left: 4 * $base_unit;
+ padding-right: 4 * $base_unit;
+ z-index: 1;
+ min-height: 135px;
+
+ .project-description {
+ max-height: 120px;
+ min-height: 10px;
+ margin-bottom: 5 * $base_unit;
+ }
}
- }
- .project-info-header {
- display:flex;
- fill: $tc-gray-50;
- padding-left: 4 * $base_unit;
- padding-right: 4 * $base_unit;
- padding-top: 4 * $base_unit;
+ .project-info-header {
+ display: flex;
+ fill: $tc-gray-50;
+ padding-left: 4 * $base_unit;
+ padding-right: 4 * $base_unit;
+ padding-top: 4 * $base_unit;
- .project-delete-icon {
- margin-top: 4px;
- margin-left: $base_unit;
+ .project-delete-icon {
+ margin-top: 4px;
+ margin-left: $base_unit;
+ }
}
}
-
}
-
-.panel {
- box-shadow:none !important;
-}
\ No newline at end of file
+
diff --git a/src/components/ProjectProgress/ProjectProgress.scss b/src/components/ProjectProgress/ProjectProgress.scss
index 32c473069..9c29ac454 100644
--- a/src/components/ProjectProgress/ProjectProgress.scss
+++ b/src/components/ProjectProgress/ProjectProgress.scss
@@ -1,86 +1,89 @@
-@import "tc-includes";
+@import '~tc-ui/src/styles/tc-includes';
-.project-progress{
- margin: 10px 0;
- .progress-bar{
+:global {
+ .project-progress{
margin: 10px 0;
- position: relative;
- background-color: $tc-gray-neutral-dark;
- height: 4px;
-
- .progress{
+ .progress-bar{
+ margin: 10px 0;
+ position: relative;
+ background-color: $tc-gray-neutral-dark;
height: 4px;
- &.working{
- background-color: $tc-green;
- }
- &.error{
- background-color: $tc-red-70;
- }
- &.completed{
- background-color: $tc-gray-70;
+
+ .progress{
+ height: 4px;
+ &.working{
+ background-color: $tc-green;
+ }
+ &.error{
+ background-color: $tc-red-70;
+ }
+ &.completed{
+ background-color: $tc-gray-70;
+ }
}
}
+ .progress-remaining{
+ @include roboto-medium;
+ font-size: $tc-label-sm;
+ color: $tc-gray-50;
+ }
}
- .progress-remaining{
- @include roboto-medium;
- font-size: $tc-label-sm;
- color: $tc-gray-50;
+
+ /*
+ * react-circular-progressbar styles
+ *
+ * All of the styles in this file are optional and configurable!
+ */
+
+ .CircularProgressbar {
+ width: 16px;
+ height: 16px;
+ }
+
+ .CircularProgressbar .CircularProgressbar-path {
+ stroke: $tc-dark-blue;
+ stroke-linecap: round;
+ transition: stroke-dashoffset 0.5s ease 0s;
+ }
+
+ .CircularProgressbar .CircularProgressbar-trail {
+ stroke: $tc-gray-20;
+ }
+
+ .CircularProgressbar .CircularProgressbar-text {
+ fill: $tc-dark-blue;
+ font-size: 20px;
+ dominant-baseline: middle;
+ text-anchor: middle;
+ }
+
+ .CircularProgressbar .CircularProgressbar-background {
+ fill: $tc-gray-20;
+ }
+
+ /*
+ * Sample background styles. Use these with e.g.:
+ *
+ *
+ */
+ .CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-background {
+ fill: $tc-dark-blue;
+ }
+
+ .CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-text {
+ fill: $tc-white;
+ }
+
+ .CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-path {
+ stroke: $tc-white;
+ }
+
+ .CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-trail {
+ stroke: transparent;
}
}
-
-/*
- * react-circular-progressbar styles
- *
- * All of the styles in this file are optional and configurable!
- */
-
-.CircularProgressbar {
- width: 16px;
- height: 16px;
-}
-
-.CircularProgressbar .CircularProgressbar-path {
- stroke: $tc-dark-blue;
- stroke-linecap: round;
- transition: stroke-dashoffset 0.5s ease 0s;
-}
-
-.CircularProgressbar .CircularProgressbar-trail {
- stroke: $tc-gray-20;
-}
-
-.CircularProgressbar .CircularProgressbar-text {
- fill: $tc-dark-blue;
- font-size: 20px;
- dominant-baseline: middle;
- text-anchor: middle;
-}
-
-.CircularProgressbar .CircularProgressbar-background {
- fill: $tc-gray-20;
-}
-
-/*
- * Sample background styles. Use these with e.g.:
- *
- *
- */
-.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-background {
- fill: $tc-dark-blue;
-}
-
-.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-text {
- fill: $tc-white;
-}
-
-.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-path {
- stroke: $tc-white;
-}
-
-.CircularProgressbar.CircularProgressbar-inverted .CircularProgressbar-trail {
- stroke: transparent;
-}
+
\ No newline at end of file
diff --git a/src/components/ProjectSpecification/ProjectSpecification.scss b/src/components/ProjectSpecification/ProjectSpecification.scss
index b2f582466..a32d2376d 100644
--- a/src/components/ProjectSpecification/ProjectSpecification.scss
+++ b/src/components/ProjectSpecification/ProjectSpecification.scss
@@ -1,23 +1,26 @@
-@import "tc-includes";
+@import '~tc-ui/src/styles/tc-includes';
-.panel-specifications{
- .specifications-title {
- text-align: center;
- @include roboto-light;
- font-size: $tc-heading-lg;
- color: $tc-gray-50;
- line-height: $base-unit*6;
- }
- .specifications-list{
- width: 300px;
- margin: 0px auto 40px auto;
- @include roboto;
- font-size: $tc-label-md;
- line-height: $base-unit*6;
- color: $tc-black;
- .titles {
+:global {
+ .panel-specifications{
+ .specifications-title {
text-align: center;
- @include roboto-bold;
+ @include roboto-light;
+ font-size: $tc-heading-lg;
+ color: $tc-gray-50;
+ line-height: $base-unit*6;
+ }
+ .specifications-list{
+ width: 300px;
+ margin: 0px auto 40px auto;
+ @include roboto;
+ font-size: $tc-label-md;
+ line-height: $base-unit*6;
+ color: $tc-black;
+ .titles {
+ text-align: center;
+ @include roboto-bold;
+ }
}
}
-}
\ No newline at end of file
+}
+
\ No newline at end of file
diff --git a/src/components/ProjectStatus/ProjectStatus.scss b/src/components/ProjectStatus/ProjectStatus.scss
index cde30c8c5..254f34358 100644
--- a/src/components/ProjectStatus/ProjectStatus.scss
+++ b/src/components/ProjectStatus/ProjectStatus.scss
@@ -1,164 +1,167 @@
-@import 'tc-includes';
-$status-height: 30px;
-
-.gridview-content .EditableProjectStatus {
- margin-top: 10px;
-}
-
-.ProjectStatus {
- position: relative;
- height: $status-height;
+@import '~tc-ui/src/styles/tc-includes';
+:global {
+ $status-height: 30px;
+ .gridview-content .EditableProjectStatus {
+ margin-top: 10px;
+ }
- .status-icon {
+ .ProjectStatus {
position: relative;
- display: inline-block;
- min-width: 4 * $base-unit;
- width: 4 * $base-unit;
- height: 4 * $base-unit;
- // top: 3px;
-
- i {
- display: block;
+ height: $status-height;
+
+ .status-icon {
+ position: relative;
+ display: inline-block;
+ min-width: 4 * $base-unit;
width: 4 * $base-unit;
height: 4 * $base-unit;
+ // top: 3px;
+
+ i {
+ display: block;
+ width: 4 * $base-unit;
+ height: 4 * $base-unit;
+ }
+ }
+
+ .status-label {
+ position: relative;
+ @include tc-label-xs;
+ line-height: $base-unit*4;
+ height: $base-unit*4;
+ padding-right: $base-unit;
+ margin-left: 10px;
}
}
-
- .status-label {
- position: relative;
- @include tc-label-xs;
- line-height: $base-unit*4;
- height: $base-unit*4;
- padding-right: $base-unit;
- margin-left: 10px;
- }
-}
-
-.EditableProjectStatus {
- .status-label {
- vertical-align: top;
- }
-
- .status-header {
- display: flex;
- // position: absolute;
- height: $status-height;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- border-radius: $base-unit*4;
- cursor: default;
-
- .caret {
- display: none;
+
+ .EditableProjectStatus {
+ .status-label {
+ vertical-align: top;
}
-
- &.editable {
- cursor: pointer;
-
- &:hover {
- &::after {
- }
- }
-
+
+ .status-header {
+ display: flex;
+ // position: absolute;
+ height: $status-height;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ border-radius: $base-unit*4;
+ cursor: default;
+
.caret {
- // content: '';
- // z-index: 3;
- display: inline-block;
- width: 9px;
- height: 20px;
- position: relative;
- margin-left: 5px;
- // right: 5px;
- // top: 8px;
- // background-size: 9px 4px;
- path {
- stroke: $tc-gray-70;
+ display: none;
+ }
+
+ &.editable {
+ cursor: pointer;
+
+ &:hover {
+ &::after {
+ }
}
-
- .Icon {
- width: 100%;
- height: 100%;
- display: block;
+
+ .caret {
+ // content: '';
+ // z-index: 3;
+ display: inline-block;
+ width: 9px;
+ height: 20px;
+ position: relative;
+ margin-left: 5px;
+ // right: 5px;
+ // top: 8px;
+ // background-size: 9px 4px;
+ path {
+ stroke: $tc-gray-70;
+ }
+
+ .Icon {
+ width: 100%;
+ height: 100%;
+ display: block;
+ }
}
}
- }
-
- &.unified-header {
- background-color: $tc-gray-40;
-
- .status-label {
- color: $tc-white;
+
+
+ &.unified-header {
+ background-color: $tc-gray-40;
+
+ .status-label {
+ color: $tc-white;
+ }
}
}
- }
-
- .status-label {
- position: relative;
- @include tc-label-xs;
- height: $base-unit*4;
- padding-right: $base-unit;
- margin-left: 10px;
- }
-
- // Stylize the dropdown elements
-
- .status-dropdown {
- min-width: 150px;
- position: absolute;
- border-radius: $base-unit;
- box-shadow: 0 0 15px rgba($tc-black, .25);
- padding: 10px 0;
- position: absolute;
- background: $tc-white;
- top: -2 * $base_unit;
- left: auto;
- right: -10px;
- z-index: 20;
- transition: 250ms all;
-
- &.dropdown-up {
- top: auto;
- bottom: 0;
- }
-
- .status-header {
- @include roboto-medium;
- font-size: $tc-label-md;
- text-align: left;
- color: $tc-black;
- line-height: 30px;
- padding-left: 20px;
- white-space: nowrap;
+
+ .status-label {
+ position: relative;
+ @include tc-label-xs;
+ height: $base-unit*4;
+ padding-right: $base-unit;
+ margin-left: 10px;
}
-
- .status-option {
- display: flex;
- @include roboto-medium;
- font-size: $tc-label-md;
- text-align: left;
- line-height: 30px;
- padding: 0 20px;
- white-space: nowrap;
-
- &:hover {
- background: $tc-dark-blue-10;
+
+ // Stylize the dropdown elements
+ .status-dropdown {
+ min-width: 150px;
+ position: absolute;
+ border-radius: $base-unit;
+ box-shadow: 0 0 15px rgba($tc-black, .25);
+ padding: 10px 0;
+ position: absolute;
+ background: $tc-white;
+ top: -2 * $base_unit;
+ left: auto;
+ right: -10px;
+ z-index: 20;
+ transition: 250ms all;
+
+ &.dropdown-up {
+ top: auto;
+ bottom: 0;
}
-
- &.active {
- background: $tc-gray-10;
- }
-
- svg {
- margin-top: 7px;
+
+ .status-header {
+ @include roboto-medium;
+ font-size: $tc-label-md;
+ text-align: left;
+ color: $tc-black;
+ line-height: 30px;
+ padding-left: 20px;
+ margin-bottom: 20px;
+ white-space: nowrap;
}
-
- .status-label {
- color: $tc-gray-80;
- font-size: 13px;
+
+ .status-option {
+ display: flex;
+ @include roboto-medium;
+ font-size: $tc-label-md;
+ text-align: left;
line-height: 30px;
+ padding: 0 20px;
+ white-space: nowrap;
+
+ &:hover {
+ background: $tc-dark-blue-10;
+ }
+
+ &.active {
+ background: $tc-gray-10;
+ }
+
+ svg {
+ margin-top: 7px;
+ }
+
+ .status-label {
+ color: $tc-gray-80;
+ line-height: 30px;
+ font-size: 13px;
+ }
}
}
}
-}
\ No newline at end of file
+}
+
\ No newline at end of file
diff --git a/src/components/ProjectStatus/ProjectStatusChangeConfirmation.jsx b/src/components/ProjectStatus/ProjectStatusChangeConfirmation.jsx
index 182d41173..7dce15331 100644
--- a/src/components/ProjectStatus/ProjectStatusChangeConfirmation.jsx
+++ b/src/components/ProjectStatus/ProjectStatusChangeConfirmation.jsx
@@ -1,6 +1,6 @@
import React, { Component } from 'react'
import PropTypes from 'prop-types'
-import {SelectDropdown} from 'appirio-tech-react-components'
+import SelectDropdown from 'appirio-tech-react-components/components/SelectDropdown/SelectDropdown'
import cn from 'classnames'
import { PROJECT_STATUS_COMPLETED, PROJECT_STATUS_CANCELLED } from '../../config/constants'
@@ -120,4 +120,4 @@ ProjectStatusChangeConfirmation.propTypes = {
statusChangeReason: PropTypes.string
}
-export default ProjectStatusChangeConfirmation
\ No newline at end of file
+export default ProjectStatusChangeConfirmation
diff --git a/src/components/ProjectStatus/ProjectStatusChangeConfirmation.scss b/src/components/ProjectStatus/ProjectStatusChangeConfirmation.scss
index da7c0b3aa..a46554158 100644
--- a/src/components/ProjectStatus/ProjectStatusChangeConfirmation.scss
+++ b/src/components/ProjectStatus/ProjectStatusChangeConfirmation.scss
@@ -1,33 +1,36 @@
-@import "tc-includes";
+@import '~tc-ui/src/styles/tc-includes';
-.project-status-change-modal {
- margin: 0px -4*$base-unit;
+:global {
+ .project-status-change-modal {
+ margin: 0px -4*$base-unit;
- .cancellation-reason {
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
-
- label {
- align-self: flex-start;
- }
-
- .select-cancellation-reason {
- width: 100%;
- // margin-bottom: 4 * $base-unit;
- .dropdown-wrap {
- margin-left: 0px;
+ .cancellation-reason {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+
+ label {
+ align-self: flex-start;
+ }
+
+ .select-cancellation-reason {
+ width: 100%;
+ // margin-bottom: 4 * $base-unit;
+ .dropdown-wrap {
+ margin-left: 0px;
+ }
+ }
+
+ .tc-error-messages {
+ width: 100%;
}
}
-
- .tc-error-messages {
- width: 100%;
+
+ &.dropdown-up {
+ top: auto;
+ bottom: 320px;
}
}
-
- &.dropdown-up {
- top: auto;
- bottom: 320px;
- }
-}
\ No newline at end of file
+}
+
\ No newline at end of file
diff --git a/src/components/ProjectStatus/editableProjectStatus.js b/src/components/ProjectStatus/editableProjectStatus.js
index 79a217a70..08b04f2e2 100644
--- a/src/components/ProjectStatus/editableProjectStatus.js
+++ b/src/components/ProjectStatus/editableProjectStatus.js
@@ -4,7 +4,7 @@ import ProjectStatusChangeConfirmation from './ProjectStatusChangeConfirmation'
import ProjectStatus from './ProjectStatus'
import cn from 'classnames'
import _ from 'lodash'
-import { enhanceDropdown } from 'appirio-tech-react-components'
+import enhanceDropdown from 'appirio-tech-react-components/components/Dropdown/enhanceDropdown'
import {
PROJECT_STATUS,
PROJECT_STATUS_COMPLETED,
@@ -53,7 +53,7 @@ const hocStatusDropdown = (CompositeComponent) => {
{
PROJECT_STATUS.sort((a, b) => a.dropDownOrder > b.dropDownOrder).map((item) =>
-
+ (
{
>
-
+ )
)
}
@@ -113,8 +113,8 @@ const editableProjectStatus = (CompositeComponent) => class extends Component {
changeStatus() {
(this.props.projectId) ?
- this.props.onChangeStatus(this.props.projectId, this.state.newStatus, this.state.statusChangeReason)
- : this.props.onChangeStatus(this.state.newStatus, this.state.statusChangeReason)
+ this.props.onChangeStatus(this.props.projectId, this.state.newStatus, this.state.statusChangeReason)
+ : this.props.onChangeStatus(this.state.newStatus, this.state.statusChangeReason)
}
@@ -128,7 +128,7 @@ const editableProjectStatus = (CompositeComponent) => class extends Component {
const ProjectStatusDropdown = canEdit ? enhanceDropdown(hocStatusDropdown(CompositeComponent)) : hocStatusDropdown(CompositeComponent)
return (
-
+
{ showStatusChangeDialog &&
-
+
Status
@@ -93,7 +93,7 @@ class ProjectStatusSection extends React.Component {
{isOpen &&
{PROJECT_STATUS.sort((a, b) => a.dropDownOrder > b.dropDownOrder).map((item) =>
-
+ (
{item.name}
- )}
+ ))}
}
diff --git a/src/components/ProjectStatusSection/ProjectStatusSection.scss b/src/components/ProjectStatusSection/ProjectStatusSection.scss
index 646d6b514..c2906661f 100644
--- a/src/components/ProjectStatusSection/ProjectStatusSection.scss
+++ b/src/components/ProjectStatusSection/ProjectStatusSection.scss
@@ -1,147 +1,150 @@
-@import "tc-includes";
-.project-status-section {
- display: flex;
- border-top: 1px solid $tc-gray-10;
- align-items: baseline;
- margin: 15px 0;
- padding-top: 10px;
- position: relative;
-
- .status-dropdown {
- border-radius: $base-unit;
- box-shadow: 0 0 15px rgba($tc-black, .25);
- padding: 10px 0;
- position: absolute;
- background: $tc-white;
- top: 27px;
- right: -9px;
- z-index: 2;
- a {
- display: block;
+@import '~tc-ui/src/styles/tc-includes';
+:global {
+ .project-status-section {
+ display: flex;
+ border-top: 1px solid $tc-gray-10;
+ align-items: baseline;
+ margin: 15px 0;
+ padding-top: 10px;
+ position: relative;
+
+ .status-dropdown {
+ border-radius: $base-unit;
+ box-shadow: 0 0 15px rgba($tc-black, .25);
+ padding: 10px 0;
+ position: absolute;
+ background: $tc-white;
+ top: 27px;
+ right: -9px;
+ z-index: 2;
+ a {
+ display: block;
+ @include roboto-medium;
+ font-size: $tc-label-md;
+ color: $tc-gray-80;
+ text-align: left;
+ line-height: 30px;
+ padding: 0 16px 0 10px;
+ &:hover {
+ background: $tc-dark-blue-10;
+ }
+ &.active {
+ background: $tc-dark-blue-10;
+ }
+ span {
+ display: inline-block;
+ position: relative;
+ top: 5px;
+ margin-right: 10px;
+ border-radius: 100%;
+ width: 20px;
+ height: 20px;
+ background-color: $tc-red;
+
+ .status-icon {
+ position: absolute;
+ left: 4px;
+ top: 4px;
+ display: block;
+ height: 12px;
+ width: 12px;
+ background-size: 12px 12px;
+ }
+ }
+
+ &.black {
+ background-color: $tc-gray-70;
+ .status-icon {
+ position: absolute;
+ left: 4px;
+ top: 4px;
+ display: block;
+ height: 12px;
+ width: 12px;
+ background-size: 12px 12px;
+ }
+ }
+ }
+ }
+ }
+
+ .status-label {
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ position: relative;
+ margin-left: auto;
+ border-radius: $base-unit*4;
@include roboto-medium;
- font-size: $tc-label-md;
- color: $tc-gray-80;
- text-align: left;
- line-height: 30px;
- padding: 0 16px 0 10px;
- &:hover {
- background: $tc-dark-blue-10;
+ font-size: $tc-label-sm;
+ color: $tc-white;
+ line-height: $base-unit*4;
+ height: $base-unit*4;
+ padding: 0 $base-unit*5 0 $base-unit*5;
+ &.gray {
+ background: url('../../assets/images/dot.png') no-repeat 6px 50%;
+ background-size: 8px;
+ background-color: $tc-gray-40;
}
- &.active {
- background: $tc-dark-blue-10;
+ &.green {
+ background: url('../../assets/images/dot.png') no-repeat 6px 50%;
+ background-size: 8px;
+ background-color: $tc-green;
}
- span {
- display: inline-block;
- position: relative;
- top: 5px;
- margin-right: 10px;
- border-radius: 100%;
- width: 20px;
- height: 20px;
+ &.red {
background-color: $tc-red;
-
- .status-icon {
- position: absolute;
- left: 4px;
- top: 4px;
- display: block;
- height: 12px;
- width: 12px;
- background-size: 12px 12px;
- }
+
+ .status-icon {
+ position: absolute;
+ left: 5px;
+ top: 4px;
+ display: block;
+ height: 12px;
+ width: 12px;
+ background-size: 12px 12px;
}
-
- &.black {
- background-color: $tc-gray-70;
- .status-icon {
- position: absolute;
- left: 4px;
- top: 4px;
- display: block;
- height: 12px;
- width: 12px;
- background-size: 12px 12px;
- }
+
+ }
+ &.black {
+ background-color: $tc-gray-70;
+ .status-icon {
+ position: absolute;
+ left: 5px;
+ top: 4px;
+ display: block;
+ height: 12px;
+ width: 12px;
+ background-size: 12px 12px;
+ }
+ }
+ &.editable {
+ cursor: pointer;
+ &::after {
+ content: '';
+ display: inline-block;
+ width: 9px;
+ height: 5px;
+ position: absolute;
+ right: 10px;
+ top: 8px;
+ background-size: 9px 4px;
}
}
}
}
-
- .status-label {
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- position: relative;
- margin-left: auto;
- border-radius: $base-unit*4;
+
+ .project-direct-links {
@include roboto-medium;
- font-size: $tc-label-sm;
- color: $tc-white;
- line-height: $base-unit*4;
- height: $base-unit*4;
- padding: 0 $base-unit*5 0 $base-unit*5;
- &.gray {
- background: url('../../assets/images/dot.png') no-repeat 6px 50%;
- background-size: 8px;
- background-color: $tc-gray-40;
- }
- &.green {
- background: url('../../assets/images/dot.png') no-repeat 6px 50%;
- background-size: 8px;
- background-color: $tc-green;
- }
- &.red {
- background-color: $tc-red;
-
- .status-icon {
- position: absolute;
- left: 5px;
- top: 4px;
- display: block;
- height: 12px;
- width: 12px;
- background-size: 12px 12px;
- }
-
- }
- &.black {
- background-color: $tc-gray-70;
- .status-icon {
- position: absolute;
- left: 5px;
- top: 4px;
- display: block;
- height: 12px;
- width: 12px;
- background-size: 12px 12px;
- }
- }
- &.editable {
- cursor: pointer;
- &::after {
- content: '';
- display: inline-block;
- width: 9px;
- height: 5px;
- position: absolute;
- right: 10px;
- top: 8px;
- background-size: 9px 4px;
+ font-size: $tc-label-md;
+ color: $tc-gray-40;
+ line-height: $base-unit*6;
+ ul {
+ padding: 0;
+ li {
+ padding-left: $base-unit*6;
}
}
}
}
-
-.project-direct-links {
- @include roboto-medium;
- font-size: $tc-label-md;
- color: $tc-gray-40;
- line-height: $base-unit*6;
- ul {
- padding: 0;
- li {
- padding-left: $base-unit*6;
- }
- }
-}
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/components/ProjectType/ProjectType.jsx b/src/components/ProjectType/ProjectType.jsx
index 8c2d56a51..a014f0a6f 100644
--- a/src/components/ProjectType/ProjectType.jsx
+++ b/src/components/ProjectType/ProjectType.jsx
@@ -42,9 +42,9 @@ const ProjectType = ({projectId, type, description, devices}) => (
{devices.slice(0, 3).map((device) => deviceMap[device])}
}
- {type !== 'generic' && devices.length > 3 &&
- {devices.slice(3).map((device) => deviceMap[device])}
-
}
+ {type !== 'generic' && devices.length > 3 &&
+ {devices.slice(3).map((device) => deviceMap[device])}
+
}
diff --git a/src/components/ProjectType/ProjectType.scss b/src/components/ProjectType/ProjectType.scss
index 1b62a966e..134435d21 100644
--- a/src/components/ProjectType/ProjectType.scss
+++ b/src/components/ProjectType/ProjectType.scss
@@ -1,24 +1,27 @@
-@import 'tc-includes';
-.project-icons{
- @include roboto;
- font-size: $tc-label-md;
- color: $tc-gray-50;
- line-height: $base-unit*4;
- text-align: center;
- .icon-set{
- display: flex;
- align-items: center;
- justify-content: center;
- width: 220px;
- margin: 30px auto;
- }
- .icon{
- display:inline-block;
+@import '~tc-ui/src/styles/tc-includes';
+:global {
+ .project-icons{
+ @include roboto;
+ font-size: $tc-label-md;
+ color: $tc-gray-50;
+ line-height: $base-unit*4;
text-align: center;
- height: 60px;
- padding-top: 40px;
- margin: 0 10px;
- width: 40px;
- background-size: 32px;
+ .icon-set{
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: 220px;
+ margin: 30px auto;
+ }
+ .icon{
+ display:inline-block;
+ text-align: center;
+ height: 60px;
+ padding-top: 40px;
+ margin: 0 10px;
+ width: 40px;
+ background-size: 32px;
+ }
}
-}
\ No newline at end of file
+}
+
\ No newline at end of file
diff --git a/src/components/RichTextArea/AddLinkButton.jsx b/src/components/RichTextArea/AddLinkButton.jsx
index 48358813c..dfad577c7 100644
--- a/src/components/RichTextArea/AddLinkButton.jsx
+++ b/src/components/RichTextArea/AddLinkButton.jsx
@@ -114,8 +114,8 @@ class LinkModal extends React.Component {
render () {
const { theme, showUnlink } = this.props
const { error } = this.state
- let toolbarBackgroundStyle = { background: error ? '#e83f26' : '#fff' }
- let toolbarErrorStyle = {
+ const toolbarBackgroundStyle = { background: error ? '#e83f26' : '#fff' }
+ const toolbarErrorStyle = {
height: error ? '28px' : '0',
paddingBottom: error ? '12px' : '0'
}
@@ -185,10 +185,10 @@ class AddLinkModal extends React.Component {
if (entitySelected && entity) {
entityData = entity.getData()
}
- let url = entityData ? entityData.url : null
+ const url = entityData ? entityData.url : null
return (
-
+
+
+
{
diff --git a/src/components/RichTextArea/RichTextArea.jsx b/src/components/RichTextArea/RichTextArea.jsx
index a0a4c9c4e..6d78fd636 100644
--- a/src/components/RichTextArea/RichTextArea.jsx
+++ b/src/components/RichTextArea/RichTextArea.jsx
@@ -2,7 +2,7 @@ import React from 'react'
import PropTypes from 'prop-types'
import Editor, {composeDecorators} from 'draft-js-plugins-editor'
import {EditorState, RichUtils} from 'draft-js'
-import {Avatar} from 'appirio-tech-react-components'
+import Avatar from 'appirio-tech-react-components/components/Avatar/Avatar'
import cn from 'classnames'
import createLinkPlugin from 'draft-js-link-plugin'
import createImagePlugin from 'draft-js-image-plugin'
@@ -70,7 +70,7 @@ class RichTextArea extends React.Component {
this.onAddMention = this.onAddMention.bind(this)
this.mentionPlugin = createMentionPlugin({mentionPrefix: '@'})
this.plugins = plugins.slice(0)
- this.plugins.push(this.mentionPlugin)
+ this.plugins.push(this.mentionPlugin)
}
componentDidMount() {
@@ -96,7 +96,7 @@ class RichTextArea extends React.Component {
}
componentWillReceiveProps(nextProps) {
-
+
if (nextProps.isCreating !== this.props.isCreating && !nextProps.isCreating && !nextProps.hasError) {
this.clearState()
} else if ((nextProps.isGettingComment !== this.props.isGettingComment && !nextProps.isGettingComment)
@@ -273,12 +273,11 @@ class RichTextArea extends React.Component {
)
}
-
+
return (
{(isCreating || isGettingComment) &&
-
-
+
}
{uploading &&
@@ -320,7 +319,7 @@ class RichTextArea extends React.Component {
}
- {styles.map((item) =>
+ {styles.map((item) => (
- )}
+ ))}
- {blocks.map((item) =>
+ {blocks.map((item) => (
- )}
+ ))}
- { allowImages &&
+ { allowImages &&
- { editMode && !isCreating &&
+ { editMode && !isCreating &&
Cancel
- }
- { editMode &&
+ }
+ { editMode &&
{ isCreating ? 'Saving...' : 'Save changes' }
- }
- { !editMode &&
+ }
+ { !editMode &&
{ isCreating ? 'Posting...' : 'Post' }
- }
+ }
@@ -412,4 +411,4 @@ RichTextArea.propTypes = {
allMembers: PropTypes.object
}
-export default RichTextArea
\ No newline at end of file
+export default RichTextArea
diff --git a/src/components/RichTextArea/RichTextArea.scss b/src/components/RichTextArea/RichTextArea.scss
index 07d9cdad6..b5bf12282 100644
--- a/src/components/RichTextArea/RichTextArea.scss
+++ b/src/components/RichTextArea/RichTextArea.scss
@@ -1,128 +1,138 @@
-@import "tc-includes";
-.rich-editor{
- position: relative;
- .addLinkButton {
+@import '~tc-ui/src/styles/tc-includes';
+
+:global {
+ .rich-editor {
position: relative;
- }
- .addLinkModal {
- top: 30px;
- left: 50%;
- transform: translate(-50%) scale(1);
- position: absolute;
- border: 1px solid $tc-gray-20;
- background: $tc-white;
- border-radius: 2px;
- box-shadow: 0 1px 18px 0 rgba($tc-black, 0.3);
- z-index: 2;
- box-sizing: border-box;
-
- .modalWrapper {
- white-space: nowrap;
- background: $tc-white;
- box-shadow: 0 1px 18px 0 rgba($tc-black, 0.3);
+
+ .addLinkButton {
position: relative;
- background-color: white;
- width: 360px;
}
- .modalInput {
- display: inline-block;
- background-color: transparent;
- border: none;
- box-shadow: none;
- color: $tc-black !important;
- font-size: 15px;
- height: auto;
- line-height: 1.2;
- margin: 0;
- padding: 16px;
- width: 270px;
- @include placeholder {
- font-size:15px;
+ .addLinkModal {
+ top: 30px;
+ left: 50%;
+ transform: translate(-50%) scale(1);
+ position: absolute;
+ border: 1px solid $tc-gray-20;
+ background: $tc-white;
+ border-radius: 2px;
+ box-shadow: 0 1px 18px 0 rgba($tc-black, 0.3);
+ z-index: 2;
+ box-sizing: border-box;
+
+ .modalWrapper {
+ white-space: nowrap;
+ background: $tc-white;
+ box-shadow: 0 1px 18px 0 rgba($tc-black, 0.3);
+ position: relative;
+ background-color: white;
+ width: 360px;
}
- }
- .modalInput:focus {
- outline: none;
- box-shadow: none !important;
- background: transparent !important;
- }
+ .modalInput {
+ display: inline-block;
+ background-color: transparent;
+ border: none;
+ box-shadow: none;
+ color: $tc-black !important;
+ font-size: 15px;
+ height: auto;
+ line-height: 1.2;
+ margin: 0;
+ padding: 16px;
+ width: 270px;
+ @include placeholder {
+ font-size: 15px;
+ }
+ }
- .modalButton {
- padding: 0;
- cursor: pointer;
- border: 0;
- height: 26px;
- width: 26px;
- margin-right: 5px !important;
- background: transparent;
- padding-right: 16px;
- color: $tc-gray-30;
- }
+ .modalInput:focus {
+ outline: none;
+ box-shadow: none !important;
+ background: transparent !important;
+ }
- .modalButton:hover {
- color: $tc-red;
- }
+ .modalButton {
+ padding: 0;
+ cursor: pointer;
+ border: 0;
+ height: 26px;
+ width: 26px;
+ margin-right: 5px !important;
+ background: transparent;
+ padding-right: 16px;
+ color: $tc-gray-30;
+ }
- .modalButtonWrapper {
- display: inline-block;
- vertical-align: middle;
- }
+ .modalButton:hover {
+ color: $tc-red;
+ }
- .modalError {
- transition: height 0.2s ease-in-out;
- color: $tc-white;
- font-size: 12px;
- margin: -8px 2rem 0 2rem;
+ .modalButtonWrapper {
+ display: inline-block;
+ vertical-align: middle;
+ }
+
+ .modalError {
+ transition: height 0.2s ease-in-out;
+ color: $tc-white;
+ font-size: 12px;
+ margin: -8px 2rem 0 2rem;
+ }
}
}
-}
-.public-DraftEditorPlaceholder-root {
- position: absolute;
- padding-left: 10px;
- padding-top: 5px;
- color: $tc-gray-40;
-}
-.public-DraftEditorPlaceholder-hasFocus {
- display: none !important;
-}
-.action-card .comment .tc-textarea .public-DraftEditor-content {
- min-height: 60px !important;
-}
-.action-card .expanded .comment .tc-textarea .public-DraftEditor-content {
- min-height: 145px !important;
-}
+ .public-DraftEditorPlaceholder-root {
+ position: absolute;
+ padding-left: 10px;
+ padding-top: 5px;
+ line-height: 30px;
+ color: $tc-gray-40;
+ }
-.action-card .comment .textarea-footer {
- display: none !important;
-}
+ .public-DraftEditorPlaceholder-hasFocus {
+ display: none !important;
+ }
-.action-card .expanded .comment .textarea-footer {
- display: flex !important;
-}
+ .action-card .comment .tc-textarea .public-DraftEditor-content {
+ min-height: 40px;
+ }
-.hide-title {
- display: none !important;
-}
+ // .action-card .expanded .comment .tc-textarea .public-DraftEditor-content {
+// min-height: 145px;
+// }
+
+ .action-card .comment .textarea-footer {
+ display: none !important;
+ }
-span.bbcode-u {
+ .action-card .expanded .comment .textarea-footer {
+ display: flex !important;
+ }
+
+ .hide-title {
+ display: none !important;
+ }
+
+ span.bbcode-u {
text-decoration: underline;
-}
+ }
-.editor-tool{
- border-radius:3px;
- display:flex;
- height:30px;
- width:30px;
- align-items: center;
- justify-content:center;
-}
+ .editor-tool {
+ border-radius: 3px;
+ display: flex;
+ height: 30px;
+ width: 30px;
+ align-items: center;
+ justify-content: center;
+ }
-.tool-active{
- background-color:$tc-gray-90;
-
+ .tool-active {
+ background-color: $tc-gray-90;
+ }
+
+ .tool-inactive {
+ background-color: transparent;
+ }
}
-.tool-inactive{
- background-color: transparent;
-}
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/components/Select/Select.scss b/src/components/Select/Select.scss
index b8a56b82a..af9181b4f 100644
--- a/src/components/Select/Select.scss
+++ b/src/components/Select/Select.scss
@@ -1,78 +1,81 @@
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.Select {
- line-height: normal;
- text-align: left;
-}
-
-/* to override input styles use same params like in tc-includes */
-.Select-input {
- height: 28px;
-}
-
-.Select-input > input:not([type="checkbox"]) {
- border: 0 none;
- height: 28px;
- line-height: 17px;
- padding: 0;
- transition: none;
-
- &:focus:not(.error),
- &:active {
- box-shadow: none;
+:global {
+ .Select {
+ line-height: normal;
+ text-align: left;
}
-}
-
-.Select-placeholder {
- @include roboto;
- color: $tc-gray-50;
- font-size: 13px;
- line-height: 28px;
-}
-
-.Select-control {
- height: 30px;
-}
-
-.Select-item {
- background-color: $tc-gray-10;
- border: 0;
- height: 20px;
- margin-left: 4px;
- margin-top: 4px;
- padding: 0 10px;
-}
-
-.Select-item-label {
- @include roboto-medium;
- display: inline;
- color: $tc-black;
- font-size: 13px;
- line-height: 20px;
- padding: 0;
-}
-
-.Select-item-icon {
- display: none;
-}
-
-.Select-option {
- @include roboto-medium;
- color: $tc-black;
- font-size: 13px;
- padding-top: 5px;
- padding-bottom: 6px;
-
- &:hover,
- &.is-focused {
- background-color: $tc-gray-neutral-dark;
+
+ /* to override input styles use same params like in tc-includes */
+ .Select-input {
+ height: 28px;
+ }
+
+ .Select-input > input:not([type="checkbox"]) {
+ border: 0 none;
+ height: 28px;
+ line-height: 17px;
+ padding: 0;
+ transition: none;
+
+ &:focus:not(.error),
+ &:active {
+ box-shadow: none;
+ }
+ }
+
+ .Select-placeholder {
+ @include roboto;
+ color: $tc-gray-50;
+ font-size: 13px;
+ line-height: 28px;
+ }
+
+ .Select-control {
+ height: 30px;
+ }
+
+ .Select-item {
+ background-color: $tc-gray-10;
+ border: 0;
+ height: 20px;
+ margin-left: 4px;
+ margin-top: 4px;
+ padding: 0 10px;
+ }
+
+ .Select-item-label {
+ @include roboto-medium;
+ display: inline;
+ color: $tc-black;
+ font-size: 13px;
+ line-height: 20px;
+ padding: 0;
+ }
+
+ .Select-item-icon {
+ display: none;
+ }
+
+ .Select-option {
+ @include roboto-medium;
+ color: $tc-black;
+ font-size: 13px;
+ padding-top: 5px;
+ padding-bottom: 6px;
+
+ &:hover,
+ &.is-focused {
+ background-color: $tc-gray-neutral-dark;
+ }
+ }
+
+ .Select-noresults,
+ .Select-search-prompt,
+ .Select-searching {
+ @include roboto-medium;
+ color: $tc-gray-50;
+ font-size: 13px;
}
}
-
-.Select-noresults,
-.Select-search-prompt,
-.Select-searching {
- @include roboto-medium;
- color: $tc-gray-50;
- font-size: 13px;
-}
+
\ No newline at end of file
diff --git a/src/components/SelectDropdown/SelectDropdown.jsx b/src/components/SelectDropdown/SelectDropdown.jsx
index 891415e15..c6bbc048d 100644
--- a/src/components/SelectDropdown/SelectDropdown.jsx
+++ b/src/components/SelectDropdown/SelectDropdown.jsx
@@ -4,7 +4,7 @@ import _ from 'lodash'
import React, { Component } from 'react'
import PropTypes from 'prop-types'
import { HOC as hoc } from 'formsy-react'
-import { Dropdown } from 'appirio-tech-react-components'
+import Dropdown from 'appirio-tech-react-components/components/Dropdown/Dropdown'
class SelectDropdown extends Component {
constructor(props) {
@@ -40,7 +40,7 @@ class SelectDropdown extends Component {
render() {
const { options, theme } = this.props
const { selectedOption } = this.state
- let selectedValue = selectedOption.title
+ const selectedValue = selectedOption.title
const renderOption = (option, optIdx) => {
const handleOptionClick = this.handleClick.bind(this, option)
diff --git a/src/components/SelectDropdown/SelectDropdown.scss b/src/components/SelectDropdown/SelectDropdown.scss
index 45c1d2805..b4f73ad97 100644
--- a/src/components/SelectDropdown/SelectDropdown.scss
+++ b/src/components/SelectDropdown/SelectDropdown.scss
@@ -1,12 +1,15 @@
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.SelectDropdown {
- border: none;
- padding: 0px;
- min-width: 100px;
- margin-left: calc(2 * #{$base_unit});
-
- .Dropdown {
- top: 20px;
+:global {
+ .SelectDropdown {
+ border: none;
+ padding: 0px;
+ min-width: 100px;
+ margin-left: calc(2 * #{$base_unit});
+
+ .Dropdown {
+ top: 20px;
+ }
}
-}
\ No newline at end of file
+}
+
\ No newline at end of file
diff --git a/src/components/SideFilter/SideFilter.scss b/src/components/SideFilter/SideFilter.scss
index 0e40dbfd0..c70e6a040 100644
--- a/src/components/SideFilter/SideFilter.scss
+++ b/src/components/SideFilter/SideFilter.scss
@@ -1,15 +1,18 @@
// this is to include tc styles in the output library
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.side-filter {
- background: #FFFFFF;
- border-radius: 4px;
- padding: 10px;
-
- .additional-content {
- border-top: 1px solid $tc-gray-10;
- margin-top: 10px;
- text-align: center;
- padding: 20px 0 10px;
+:global {
+ .side-filter {
+ background: #FFFFFF;
+ border-radius: 4px;
+ padding: 10px;
+
+ .additional-content {
+ border-top: 1px solid $tc-gray-10;
+ margin-top: 10px;
+ text-align: center;
+ padding: 20px 0 10px;
+ }
}
}
+
\ No newline at end of file
diff --git a/src/components/SideFilter/SideFilterSection.scss b/src/components/SideFilter/SideFilterSection.scss
index b90f2ff74..2fcda1525 100644
--- a/src/components/SideFilter/SideFilterSection.scss
+++ b/src/components/SideFilter/SideFilterSection.scss
@@ -1,11 +1,12 @@
// this is to include tc styles in the output library
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.side-filter-section {
- & + &::before {
+:global {
+ .side-filter-section + .side-filter-section::before {
content: '';
display: block;
border-top: 1px solid $tc-gray-10;
margin: 10px;
}
}
+
\ No newline at end of file
diff --git a/src/components/SideFilter/SideFilterSectionItem.scss b/src/components/SideFilter/SideFilterSectionItem.scss
index eba197d40..93180ef5f 100644
--- a/src/components/SideFilter/SideFilterSectionItem.scss
+++ b/src/components/SideFilter/SideFilterSectionItem.scss
@@ -1,32 +1,35 @@
// this is to include tc styles in the output library
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.side-filter-section-item {
- @include roboto;
- border-radius: 4px;
- color: $tc-black;
- cursor: pointer;
- display: flex;
- font-size: 13px;
- justify-content: space-between;
- line-height: 30px;
- padding: 0 10px;
-
- &.active {
- @include roboto-bold;
- background-color: $tc-gray-10;
- cursor: default;
- font-weight: bold;
- }
-
- .title {
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- }
-
- .quantity {
- text-align: right;
- width: 40px;
+:global {
+ .side-filter-section-item {
+ @include roboto;
+ border-radius: 4px;
+ color: $tc-black;
+ cursor: pointer;
+ display: flex;
+ font-size: 13px;
+ justify-content: space-between;
+ line-height: 30px;
+ padding: 0 10px;
+
+ &.active {
+ @include roboto-bold;
+ background-color: $tc-gray-10;
+ cursor: default;
+ font-weight: bold;
+ }
+
+ .title {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+
+ .quantity {
+ text-align: right;
+ width: 40px;
+ }
}
}
+
\ No newline at end of file
diff --git a/src/components/StatusFilters/StatusFilters.jsx b/src/components/StatusFilters/StatusFilters.jsx
index e391ed76c..cc0d57788 100644
--- a/src/components/StatusFilters/StatusFilters.jsx
+++ b/src/components/StatusFilters/StatusFilters.jsx
@@ -17,11 +17,11 @@ const StatusFilters = ({criteria, applyFilters}) => {
})
return (
-
- { _statuses.map((status, i) =>
- applyFilters({status: status.val})}>{status.label}
- )}
-
+
+ { _statuses.map((status, i) =>
+ applyFilters({status: status.val})}>{status.label}
+ )}
+
)
}
diff --git a/src/components/StatusFilters/StatusFilters.scss b/src/components/StatusFilters/StatusFilters.scss
index b2e891f31..4babe6fe2 100644
--- a/src/components/StatusFilters/StatusFilters.scss
+++ b/src/components/StatusFilters/StatusFilters.scss
@@ -1,27 +1,30 @@
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.filterContainer {
- @include roboto-medium;
- align-self: left;
- margin: 20px;
-}
-
-.filterList {
- display: inline-flex;
-}
-
-.filterItem {
- line-height: 30px;
- font-size: 13px;
- padding: 5px 15px;
- color: $tc-gray-70;
- cursor: pointer;
-
- &.active {
- background: $tc-white;
- border-radius: 4px;
- box-shadow: 0 2px 5px 0 rgba($tc-gray-90,0.10);
- color: $tc-black;
- font-weight: 500;
+:global {
+ .filterContainer {
+ @include roboto-medium;
+ align-self: left;
+ margin: 20px;
+ }
+
+ .filterList {
+ display: inline-flex;
}
-}
\ No newline at end of file
+
+ .filterItem {
+ line-height: 30px;
+ font-size: 13px;
+ padding: 5px 15px;
+ color: $tc-gray-70;
+ cursor: pointer;
+
+ &.active {
+ background: $tc-white;
+ border-radius: 4px;
+ box-shadow: 0 2px 5px 0 rgba($tc-gray-90,0.10);
+ color: $tc-black;
+ font-weight: 500;
+ }
+ }
+}
+
\ No newline at end of file
diff --git a/src/components/TeamManagement/AutoCompleteInput.jsx b/src/components/TeamManagement/AutoCompleteInput.jsx
index 1d962a6bb..656fa6e42 100644
--- a/src/components/TeamManagement/AutoCompleteInput.jsx
+++ b/src/components/TeamManagement/AutoCompleteInput.jsx
@@ -2,9 +2,9 @@ import React from 'react'
import PT from 'prop-types'
import ReactDOM from 'react-dom'
import uncontrollable from 'uncontrollable'
-import { Avatar } from 'appirio-tech-react-components'
+import Avatar from 'appirio-tech-react-components/components/Avatar/Avatar'
import { AUTOCOMPLETE_TRIGGER_LENGTH } from '../../config/constants'
-import InputIcon from '../../assets/icons/username-icon.svg'
+import UserIcon from '../../assets/icons/username-icon.svg'
class AutoCompleteInput extends React.Component {
@@ -40,13 +40,14 @@ class AutoCompleteInput extends React.Component {
ReactDOM.findDOMNode(this.refs.input).focus()
onSelectNewMember(member, e)
}
+
return (
)
@@ -62,10 +63,12 @@ class AutoCompleteInput extends React.Component {
}
-
- {!selectedNewMember && }
- {selectedNewMember && }
-
+
+ {selectedNewMember
+ ?
+ :
+ }
+
.counter {
- @include roboto-medium;
- bottom: 45px;
- color: $tc-gray-50;
- font-size: 11px;
- line-height: 13px;
- position: absolute;
- right: 0;
-
- > span {
- color: $tc-gray-80;
+:global {
+ .text-input-with-counter {
+ position: relative;
+
+ > .counter {
+ @include roboto-medium;
+ bottom: 45px;
+ color: $tc-gray-50;
+ font-size: 11px;
+ line-height: 13px;
+ position: absolute;
+ right: 0;
+
+ > span {
+ color: $tc-gray-80;
+ }
}
}
}
+
\ No newline at end of file
diff --git a/src/components/TopBar/NewProjectNavLink.scss b/src/components/TopBar/NewProjectNavLink.scss
index fb26ff938..a0fb2bd9f 100644
--- a/src/components/TopBar/NewProjectNavLink.scss
+++ b/src/components/TopBar/NewProjectNavLink.scss
@@ -1,30 +1,33 @@
// this is to include tc styles in the output library
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.new-project-link {
- display: flex;
- justify-content: center;
- flex-direction: column;
- align-items: center;
- margin-left: 20px;
-
- .new-project-icon {
- width: 20px;
- height: 20px;
- background-color: $tc-gray-50;
- border-radius: 100%;
+:global {
+ .new-project-link {
display: flex;
justify-content: center;
+ flex-direction: column;
align-items: center;
- svg {
- fill: $tc-black;
- width: 10px;
- height: 10px;
- }
-
- &:hover {
- background-color: $tc-orange-30;
+ margin-left: 20px;
+
+ .new-project-icon {
+ width: 20px;
+ height: 20px;
+ background-color: $tc-gray-50;
+ border-radius: 100%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ svg {
+ fill: $tc-black;
+ width: 10px;
+ height: 10px;
+ }
+
+ &:hover {
+ background-color: $tc-orange-30;
+ }
}
}
-}
\ No newline at end of file
+}
+
\ No newline at end of file
diff --git a/src/components/TopBar/ProjectToolBar.js b/src/components/TopBar/ProjectToolBar.js
index 94cc9fd8b..d539acd78 100644
--- a/src/components/TopBar/ProjectToolBar.js
+++ b/src/components/TopBar/ProjectToolBar.js
@@ -50,19 +50,19 @@ class ProjectToolBar extends React.Component {
this.state.dashboardIcon =
this.state.messagesIcon =
} else
- if (activeDashboardPage) {
- this.state.activePage = 'dashboard'
- this.state.dashboardIcon =
- this.state.specificationIcon =
- this.state.messagesIcon =
- }
- else
- if (activeChatPage) {
- this.state.activePage = 'discussions'
- this.state.dashboardIcon =
- this.state.specificationIcon =
- this.state.messagesIcon =
- }
+ if (activeDashboardPage) {
+ this.state.activePage = 'dashboard'
+ this.state.dashboardIcon =
+ this.state.specificationIcon =
+ this.state.messagesIcon =
+ }
+ else
+ if (activeChatPage) {
+ this.state.activePage = 'discussions'
+ this.state.dashboardIcon =
+ this.state.specificationIcon =
+ this.state.messagesIcon =
+ }
}
onDashboardEnter() {
@@ -122,7 +122,7 @@ class ProjectToolBar extends React.Component {
this.props.history.listen(() => {
this.setActivePage()
this.state.activeSpecification = this.state.activePage === 'dashboard' ? 'not-active' : this.state.activeSpecification,
- this.state.activeDashboard = this.state.activePage === 'specification' ? 'not-active' : this.state.activeDashboard
+ this.state.activeDashboard = this.state.activePage === 'specification' ? 'not-active' : this.state.activeDashboard
})
}
diff --git a/src/components/TopBar/ProjectToolBar.scss b/src/components/TopBar/ProjectToolBar.scss
index d7974001b..2a1f5a1e9 100644
--- a/src/components/TopBar/ProjectToolBar.scss
+++ b/src/components/TopBar/ProjectToolBar.scss
@@ -1,338 +1,394 @@
// this is to include tc styles in the output library
-@import 'tc-includes';
-
-.ProjectToolBar {
- padding: 0;
- min-height: 60px;
- width: 100%;
- height: auto;
- .tool-bar {
- display: flex;
- justify-content: space-between;
+@import '~tc-ui/src/styles/tc-includes';
+
+:global {
+ .ProjectToolBar {
+ padding: 0;
+ min-height: 60px;
width: 100%;
- height: 60px;
- background-color: $tc-black;
- .bar-column:first-child{
- display: flex;
- // width: calc(100% - 560px);
- }
- .bar-column:last-child{
- // width: 560px;
- display: flex;
- }
- .logo-wrapper {
- width: 110px;
- margin-left: 4 * $base-unit;
- }
- .breadcrumb {
- @include tc-label-xs;
- line-height: 6 * $base-unit;
- color: $tc-gray-10;
- position: relative;
- overflow: hidden;
- text-overflow: ellipsis;
+ height: auto;
+
+ .tool-bar {
display: flex;
- a {
+ justify-content: space-between;
+ width: 100%;
+ height: 60px;
+ background-color: $tc-black;
+
+ .bar-column:first-child {
display: flex;
- align-items: center;
- flex-shrink: 0;
- color: $tc-gray-50;
- text-transform: uppercase;
-
- .icon-tail-left {// Back arrow
- fill: $tc-gray-50;
- height: 13px;
- margin-right: 10px;
- margin-right: 12px;
- }
- &:hover, &.hover{
- text-decoration: none;
- color: $tc-orange-30;
- .icon-tail-left {// Back arrow
- fill: $tc-orange-30;
- }
- }
+ // width: calc(100% - 560px);
}
- }
- .bar-column.project-name {
- display: flex;
- align-items: center;
+ .bar-column:last-child {
+ // width: 560px;
+ display: flex;
+ }
- span {
- @include tc-heading;
+ .logo-wrapper {
+ width: 60px;
+ margin: 0 20px;
+ }
+
+ .breadcrumb {
+ @include tc-label-xs;
+ line-height: 6 * $base-unit;
color: $tc-gray-10;
- display:block;
- text-overflow: ellipsis;
+ position: relative;
overflow: hidden;
- white-space: nowrap;
- max-width: 500px;
+ text-overflow: ellipsis;
+ display: flex;
+
+ a {
+ display: flex;
+ align-items: center;
+ flex-shrink: 0;
+ color: $tc-gray-50;
+ text-transform: uppercase;
+
+ .icon-tail-left {// Back arrow
+ fill: $tc-gray-50;
+ height: 13px;
+ margin-right: 5px;
+ }
+
+ &:hover,
+ &.hover {
+ text-decoration: none;
+ color: $tc-orange-30;
+
+ .icon-tail-left {// Back arrow
+ fill: $tc-orange-30;
+ }
+ }
+ }
}
- }
- .bar-column .welcome-info{
- width: 70px;
- display: flex;
- align-items: center;
- margin-right: 4*$base-unit;
- .avatar-info {
- position: relative;
- .username {
- display: none;
- }
- .avatar{
- width: 30px;
- height: 30px;
- background-color: $tc-dark-blue-70 ;
- border-radius: 15px;
+ .bar-column.project-name {
+ display: flex;
+ align-items: center;
+
+ span {
+ @include tc-heading;
+ color: $tc-gray-10;
+ display: block;
+ text-overflow: ellipsis;
overflow: hidden;
- text-align: center;
- line-height: 28px;
- color: $tc-white;
- @include roboto-medium;
- font-size: 15px;
- position: absolute;
- left: 0;
- top: 0;
- img{
+ white-space: nowrap;
+ max-width: 500px;
+ }
+ }
+
+ .bar-column .welcome-info {
+ width: 70px;
+ display: flex;
+ align-items: center;
+ margin-right: 4 * $base-unit;
+
+ .avatar-info {
+ position: relative;
+
+ .username {
+ display: none;
+ }
+
+ .avatar {
width: 30px;
height: 30px;
+ background-color: $tc-dark-blue-70;
border-radius: 15px;
+ overflow: hidden;
+ text-align: center;
+ line-height: 28px;
+ color: $tc-white;
+ @include roboto-medium;
+ font-size: 15px;
+ position: absolute;
+ left: 0;
+ top: 0;
+
+ img {
+ width: 30px;
+ height: 30px;
+ border-radius: 15px;
+ }
+ }
+
+ .avatar-link-arrow {
+ display: block;
+ width: 10px;
+ height: 30px;
+ //background: url("../../styles/i/arrow-down-black.png") right center no-repeat;
+ background-size: 10px 7.5px;
}
- }
- .avatar-link-arrow{
- display: block;
- width: 10px;
- height: 30px;
- //background: url("../../styles/i/arrow-down-black.png") right center no-repeat;
- background-size: 10px 7.5px;
}
}
}
- }
- .nav{
- padding-right: 5px;
- height: 20px;
- margin-top: 20px;
- border-right: 1px solid $tc-gray-80;
- flex: 1;
- ul{
- /*width: 484px;*/
- width: auto;
- height: 20px;
- display: flex;
- justify-content: flex-end;
- margin: 0;
- padding: 0;
- }
- li#active a i svg g {
- fill: #fee3d0 !important;
- }
- li#active a i svg path {
- fill: #fee3d0 !important;
- }
- ul li{
- padding: 0 15px;
+ .nav {
+ padding-right: 5px;
height: 20px;
- line-height: 20px;
- text-align: center;
- vertical-align: middle;
- &:first-child{
- padding-left: 0;
- }
- a{
- display: inline-block;
- @include roboto-medium;
- font-size: $tc-label-md;
- color: $tc-gray-50;
- line-height: 20px;
- position: relative;
- padding-left: 26px;
- /* menu icons */
- >svg{
- display: block;
- width: 16px;
- height: 16px;
- position: absolute;
- left: 0;
- top: 2px;
- }
- }
+ margin-top: 20px;
+ border-right: 1px solid $tc-gray-80;
- .icon-dashboard {
- width: 16px;
- height: 16px;
- }
- #active svg.icon-dashboard g {
- color: #fee3d0 !important;
- }
- #active svg.icon-dashboard-active g {
- color: #fee3d0 !important;
- }
- .icon-dashboard-hover {
- color: $tc-orange-30;
- }
- .icon-dashboard-active {
- color: $tc-orange-70;
- }
-
- .icon-specification {
- width: 16px;
- height: 16px;
- }
- #active svg.icon-specification g {
- color: #fee3d0 !important;
- }
- #active svg.icon-specification-active g {
- color: #fee3d0 !important;
+ ul {
+ /*width: 484px;*/
+ width: auto;
+ height: 20px;
+ display: flex;
+ justify-content: flex-end;
+ margin: 0;
+ padding: 0;
}
+
li#active a i svg g {
fill: #fee3d0 !important;
}
- .icon-specification-hover {
- color: $tc-orange-30;
- }
- .icon-specification-active {
- color: $tc-orange-70;
- }
- .icon-messages {
- width: 16px;
- height: 16px;
- }
- #active a i svg g {
- color: #fee3d0 !important;
- }
- .icon-messages-hover {
- color: $tc-orange-30;
- }
- .icon-messages-active {
- color: $tc-orange-70;
- }
-
- .icon-challenges {
- width: 16px;
- height: 16px;
- }
- #active a i svg g {
- color: #fee3d0 !important;
- }
- .icon-challenges-hover {
- color: $tc-orange-30;
- }
- .icon-challenges-active {
- color: $tc-orange-70;
+ li#active a i svg path {
+ fill: #fee3d0 !important;
}
- &:hover, &.hover{
- a, a:hover{
+ ul li {
+ padding: 0 15px;
+ height: 20px;
+ line-height: 20px;
+ text-align: center;
+ vertical-align: middle;
+
+ &:first-child {
+ padding-left: 0;
+ }
+
+ a {
+ display: inline-block;
+ @include roboto-medium;
+ font-size: $tc-label-md;
+ color: $tc-gray-50;
+ line-height: 20px;
+ position: relative;
+ padding-left: 26px;
+ /* menu icons */
+ > svg {
+ display: block;
+ width: 16px;
+ height: 16px;
+ position: absolute;
+ left: 0;
+ top: 2px;
+ }
+ }
+
+ .icon-dashboard {
+ width: 16px;
+ height: 16px;
+ }
+
+ #active svg.icon-dashboard g {
+ color: #fee3d0 !important;
+ }
+
+ #active svg.icon-dashboard-active g {
+ color: #fee3d0 !important;
+ }
+
+ .icon-dashboard-hover {
color: $tc-orange-30;
}
- }
- a.active, a.active:hover{
- color: $tc-orange-70;
+
+ .icon-dashboard-active {
+ color: $tc-orange-70;
+ }
+
+ .icon-specification {
+ width: 16px;
+ height: 16px;
+ }
+
+ #active svg.icon-specification g {
+ color: #fee3d0 !important;
+ }
+
+ #active svg.icon-specification-active g {
+ color: #fee3d0 !important;
+ }
+
+ li#active a i svg g {
+ fill: #fee3d0 !important;
+ }
+
+ .icon-specification-hover {
+ color: $tc-orange-30;
+ }
+
+ .icon-specification-active {
+ color: $tc-orange-70;
+ }
+
+ .icon-messages {
+ width: 16px;
+ height: 16px;
+ }
+
+ #active a i svg g {
+ color: #fee3d0 !important;
+ }
+
+ .icon-messages-hover {
+ color: $tc-orange-30;
+ }
+
+ .icon-messages-active {
+ color: $tc-orange-70;
+ }
+
+ .icon-challenges {
+ width: 16px;
+ height: 16px;
+ }
+
+ #active a i svg g {
+ color: #fee3d0 !important;
+ }
+
+ .icon-challenges-hover {
+ color: $tc-orange-30;
+ }
+
+ .icon-challenges-active {
+ color: $tc-orange-70;
+ }
+
+ &:hover,
+ &.hover {
+ a,
+ a:hover {
+ color: $tc-orange-30;
+ }
+ }
+
+ a.active,
+ a.active:hover {
+ color: $tc-orange-70;
+ }
}
}
- }
- .breadcrumb-tooltip{
- @include roboto();
- word-break: break-word;
- position: absolute;
- left: calc(50% - 280px);
- top: 56px;
- width: 480px;
- padding: 15px;
- font-size: 13px;
- line-height: 20px;
- font-weight: 500;
- color: $tc-white;
- background-color: $tc-gray-80;
- border-radius: 4px;
- z-index: 10;
- &:before{
- display: block;
- content: '';
+ .breadcrumb-tooltip {
+ @include roboto();
+ word-break: break-word;
position: absolute;
- left: 50%;
- top: -7px;
- margin-left: -7px;
- width: 0;
- height: 0;
- border: 7px solid $tc-gray-80;
- border-top: 0;
- border-left-color: transparent;
- border-right-color: transparent;
- }
- }
-}
+ left: calc(50% - 280px);
+ top: 56px;
+ width: 480px;
+ padding: 15px;
+ font-size: 13px;
+ line-height: 20px;
+ font-weight: 500;
+ color: $tc-white;
+ background-color: $tc-gray-80;
+ border-radius: 4px;
+ z-index: 10;
-@media all and (max-width: 1023px) {
- .ProjectToolBar {
- .top-bar{
- &:after{
+ &:before {
display: block;
content: '';
+ position: absolute;
+ left: 50%;
+ top: -7px;
+ margin-left: -7px;
width: 0;
height: 0;
- clear: both;
- overflow: hidden;
- }
- .bar-column:first-child {
- width: calc(100% - 215px);
- }
- .bar-column:last-child{
- width: 215px;
- }
- .logo-wrapper {
- width: 90px;
- }
- .breadcrumb .breadcrumb-tooltip{
- left: 28px;
+ border: 7px solid $tc-gray-80;
+ border-top: 0;
+ border-left-color: transparent;
+ border-right-color: transparent;
}
}
- .nav {
- padding-right: 10px;
- ul{
- width: auto;
+ }
+
+ @media all and (max-width: 1023px) {
+ .ProjectToolBar {
+ .top-bar {
+ &:after {
+ display: block;
+ content: '';
+ width: 0;
+ height: 0;
+ clear: both;
+ overflow: hidden;
+ }
+
+ .bar-column:first-child {
+ width: calc(100% - 215px);
+ }
+
+ .bar-column:last-child {
+ width: 215px;
+ }
+
+ .logo-wrapper {
+ width: 90px;
+ }
+
+ .breadcrumb .breadcrumb-tooltip {
+ left: 28px;
+ }
}
- ul li {
- padding: 0 10px;
- &:first-child {
- padding-left: 0;
+
+ .nav {
+ padding-right: 10px;
+
+ ul {
+ width: auto;
}
- a {
- padding-left: 16px;
- span {
- display: none;
+
+ ul li {
+ padding: 0 10px;
+
+ &:first-child {
+ padding-left: 0;
}
- svg {
- position:relative;
+
+ a {
+ padding-left: 16px;
+
+ span {
+ display: none;
+ }
+
+ svg {
+ position: relative;
+ }
}
}
}
}
}
-}
-@media all and (max-width: 1300px) {
- .ProjectToolBar {
- .nav.long-menu {
- padding-right: 10px;
- ul{
- width: auto;
- }
- ul li {
- padding: 0 10px;
- &:first-child {
- padding-left: 0;
+ @media all and (max-width: 1300px) {
+ .ProjectToolBar {
+ .nav.long-menu {
+ padding-right: 10px;
+
+ ul {
+ width: auto;
}
- a {
- padding-left: 16px;
- text-indent: -9999px;
+
+ ul li {
+ padding: 0 10px;
+
+ &:first-child {
+ padding-left: 0;
+ }
+
+ a {
+ padding-left: 16px;
+ text-indent: -9999px;
+ }
}
}
}
}
}
+
\ No newline at end of file
diff --git a/src/components/TopBar/ProjectsToolBar.js b/src/components/TopBar/ProjectsToolBar.js
index 47acb0625..34d7b602c 100644
--- a/src/components/TopBar/ProjectsToolBar.js
+++ b/src/components/TopBar/ProjectsToolBar.js
@@ -7,7 +7,8 @@ import { withRouter, Prompt } from 'react-router-dom'
import { connect } from 'react-redux'
import cn from 'classnames'
import _ from 'lodash'
-import { SearchBar, MenuBar, SwitchButton } from 'appirio-tech-react-components'
+import SearchBar from 'appirio-tech-react-components/components/SearchBar/SearchBar'
+import MenuBar from 'appirio-tech-react-components/components/MenuBar/MenuBar'
import Filters from './Filters'
import NotificationsDropdown from '../NotificationsDropdown/NotificationsDropdownContainer'
import NewProjectNavLink from './NewProjectNavLink'
@@ -28,7 +29,6 @@ class ProjectsToolBar extends Component {
this.toggleFilter = this.toggleFilter.bind(this)
this.handleTermChange = this.handleTermChange.bind(this)
this.handleSearch = this.handleSearch.bind(this)
- this.handleMyProjectsFilter = this.handleMyProjectsFilter.bind(this)
this.onLeave = this.onLeave.bind(this)
}
@@ -73,7 +73,6 @@ class ProjectsToolBar extends Component {
/*eslint-disable no-unused-vars */
handleTermChange(oldTerm, searchTerm, reqNo, callback) {
- this.props.projectSuggestions(searchTerm)
callback(reqNo, this.props.projects)
}
/*eslint-enable */
@@ -82,10 +81,6 @@ class ProjectsToolBar extends Component {
this.applyFilters({ keyword })
}
- handleMyProjectsFilter(event) {
- this.applyFilters({memberOnly: event.target.checked})
- }
-
applyFilters(filter) {
const criteria = _.assign({}, this.props.criteria, filter)
if (criteria && criteria.keyword) {
@@ -169,8 +164,8 @@ class ProjectsToolBar extends Component {
return (
{ renderLogoSection(menuBar) }
@@ -200,30 +195,18 @@ class ProjectsToolBar extends Component {
}
- { !!isLoggedIn && !!isPowerUser &&
-
- }
{ !!isLoggedIn &&
}
{ userMenu }
{ !!isLoggedIn &&
}
- { isFilterVisible && isLoggedIn &&
+ { isFilterVisible && isLoggedIn &&
- }
+ }
)
diff --git a/src/components/TopBar/ProjectsToolBar.scss b/src/components/TopBar/ProjectsToolBar.scss
index 2a920dd72..787593469 100644
--- a/src/components/TopBar/ProjectsToolBar.scss
+++ b/src/components/TopBar/ProjectsToolBar.scss
@@ -1,262 +1,265 @@
// this is to include tc styles in the output library
-@import 'tc-includes';
-
-// TODO: move to includes
-$tc-rgba-10: rgba($tc-gray-80, 0.38);
-$tc-rgba-20: rgba($tc-black, 0.17);
-$tc-body-large: 20px;
-
-.ProjectsToolBar {
- margin: 0 auto;
- width: 100%;
- display: flex;
- flex-direction: column;
-
- .primary-toolbar {
- display: flex;
+@import '~tc-ui/src/styles/tc-includes';
+
+:global {
+ // TODO: move to includes
+ $tc-rgba-10: rgba($tc-gray-80, 0.38);
+ $tc-rgba-20: rgba($tc-black, 0.17);
+ $tc-body-large: 20px;
+
+ .ProjectsToolBar {
+ margin: 0 auto;
width: 100%;
- justify-content: space-between;
-
- .logo-wrapper {
- margin-left: 4 * $base-unit;
- }
-
- .MenuBar {
- li.selected {
- // hides the bottom border as per https://github.com/appirio-tech/connect-app/issues/1267#issuecomment-343298713
- border-bottom: none;
+ display: flex;
+ flex-direction: column;
+
+ .primary-toolbar {
+ display: flex;
+ width: 100%;
+ justify-content: space-between;
+
+ .logo-wrapper {
+ margin-left: 4 * $base-unit;
}
- }
-
- .primary-filters {
- margin-top: 15px;
- }
-
- .welcome-info {
- margin-right: 4 * $base-unit;
-
- .avatar-info {
- .username {
- display: none;
+
+ .MenuBar {
+ li.selected {
+ // hides the bottom border as per https://github.com/appirio-tech/connect-app/issues/1267#issuecomment-343298713
+ border-bottom: none;
}
}
+
+ .primary-filters {
+ margin-top: 15px;
+ }
+
+ .welcome-info {
+ margin-right: 4 * $base-unit;
+
+ .avatar-info {
+ .username {
+ display: none;
+ }
+ }
+ }
+
+ .actions {
+ display: flex;
+ }
}
-
- .actions {
+
+ .secondary-toolbar {
display: flex;
}
- }
-
- .secondary-toolbar {
- display: flex;
- }
-
- .MenuBar li {
- align-items: center; // should reside in MenuBar component instead
-
- a {
- text-transform: uppercase;
- font-size: $tc-label-xs;
- line-height: 6 * $base-unit;
- }
-
- &.selected a {
- color: $tc-gray-10;
- }
- }
-
- .search-widget {
- width: 595px;
- height: 30px;
- margin-top: 15px;
- display: flex;
- }
-
- .search-filter {
- width: 97px;
- margin-left: 2 * $base-unit;
-
- .tc-btn {
- display: flex;
- align-items: center;
- // justify-content: center;
- padding: 0 2 * $base-unit 0 10px;
- text-align: left;
- color: $tc-gray-40;
- background-color: transparent;
- border-radius: 2px;
- border: 0;
- font-size: 12px;
- position: relative;
-
- svg.icon-search-filter {
- margin-right: 10px;
+
+ .MenuBar li {
+ align-items: center; // should reside in MenuBar component instead
+
+ a {
+ text-transform: uppercase;
+ font-size: $tc-label-xs;
+ line-height: 6 * $base-unit;
}
-
- &.active {
- background: $tc-gray-80;
- box-shadow: inset 0px 1px 3px 0px $tc-rgba-10;
-
- svg.icon-search-filter g {
- fill: #fff;
- }
+
+ &.selected a {
+ color: $tc-gray-10;
}
}
-
- .filter-indicator {
- width: 15px;
- height: 15px;
- margin-left: $base-unit;
- background-color: $tc-dark-blue;
- border-radius: 26px;
- color: $tc-white;
+
+ .search-widget {
+ width: 595px;
+ height: 30px;
+ margin-top: 15px;
display: flex;
- justify-content: center;
- align-items: center;
}
- }
-
- /* .bar__search */
- .bar__search {
- align-items: center;
- box-sizing: border-box;
- position: relative;
- min-height: 60px;
- padding: 10px 20px;
- background-color: $tc-gray-20;
- border-bottom: 1px solid $tc-gray-40;
- box-shadow: 0 2px 5px 0 rgba($tc-black, 0.25);
- display: flex;
- justify-content: space-between;
- width: 100%;
-
- h2 {
- font-size: $tc-body-large;
- color: $tc-black;
- white-space: nowrap;
- }
-
- .bar-control {
- width: 120px;
- text-align: right;
- min-height: 30px;
- padding-top: 15px;
-
+
+ .search-filter {
+ width: 97px;
+ margin-left: 2 * $base-unit;
+
.tc-btn {
- display: inline-block;
- height: 30px;
- white-space: nowrap;
+ display: flex;
+ align-items: center;
+ // justify-content: center;
+ padding: 0 2 * $base-unit 0 10px;
+ text-align: left;
+ color: $tc-gray-40;
+ background-color: transparent;
+ border-radius: 2px;
+ border: 0;
+ font-size: 12px;
+ position: relative;
+
+ svg.icon-search-filter {
+ margin-right: 10px;
+ }
+
+ &.active {
+ background: $tc-gray-80;
+ box-shadow: inset 0px 1px 3px 0px $tc-rgba-10;
+
+ svg.icon-search-filter g {
+ fill: #fff;
+ }
+ }
+ }
+
+ .filter-indicator {
+ width: 15px;
+ height: 15px;
+ margin-left: $base-unit;
+ background-color: $tc-dark-blue;
+ border-radius: 26px;
+ color: $tc-white;
+ display: flex;
+ justify-content: center;
+ align-items: center;
}
}
-
- .search-panel {
- flex: 1;
- margin: 0 auto;
- text-align: center;
+
+ /* .bar__search */
+ .bar__search {
+ align-items: center;
+ box-sizing: border-box;
+ position: relative;
+ min-height: 60px;
+ padding: 10px 20px;
+ background-color: $tc-gray-20;
+ border-bottom: 1px solid $tc-gray-40;
+ box-shadow: 0 2px 5px 0 rgba($tc-black, 0.25);
display: flex;
justify-content: space-between;
- padding-right: 30px;
-
- .search-select-widget {
- align-items: center;
- display: flex;
- margin-left: 40px;
- flex: 1;
-
- label {
- @include roboto-medium;
+ width: 100%;
+
+ h2 {
+ font-size: $tc-body-large;
+ color: $tc-black;
+ white-space: nowrap;
+ }
+
+ .bar-control {
+ width: 120px;
+ text-align: right;
+ min-height: 30px;
+ padding-top: 15px;
+
+ .tc-btn {
display: inline-block;
- line-height: 30px;
height: 30px;
- font-size: 13px;
- color: $tc-gray-70;
- padding-right: 15px;
- text-align: right;
white-space: nowrap;
}
}
-
- .search-select-field {
+
+ .search-panel {
flex: 1;
+ margin: 0 auto;
+ text-align: center;
+ display: flex;
+ justify-content: space-between;
+ padding-right: 30px;
+
+ .search-select-widget {
+ align-items: center;
+ display: flex;
+ margin-left: 40px;
+ flex: 1;
+
+ label {
+ @include roboto-medium;
+ display: inline-block;
+ line-height: 30px;
+ height: 30px;
+ font-size: 13px;
+ color: $tc-gray-70;
+ padding-right: 15px;
+ text-align: right;
+ white-space: nowrap;
+ }
+ }
+
+ .search-select-field {
+ flex: 1;
+ }
}
}
}
-}
-
-.SwitchButton .label {
- padding-right: 10px;
- text-align: right;
- width: auto;
- width: auto;
- cursor: pointer;
- transition: 200ms ease-in-out all;
-
- &:hover {
- color: $tc-gray-30;
- }
-}
-
-.project-creation-dialog-overlay {
- position: fixed;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- z-index: 21;/* +1 of the z-index of the topbar */
- background-color: $tc-gray-neutral-light;
- /*background-color: $tc-gray-neutral-dark;*/
- overflow-y: scroll;
- opacity: 1;
- transition: all .250ms ease-in-out;
-
- .IncompleteProjectConfirmation {
- margin-top: 0px;
- }
-
- .SelectProduct {
- margin-top: 30px;
- }
-
- section.content {
- padding: 1px 0;
- }
-
- .escape-button {
- position: absolute;
- right: 12px;
- top: 12px;
- z-index: 22;/* +1 from z-index of the modal overlay */
+
+ .SwitchButton .label {
+ padding-right: 10px;
+ text-align: right;
+ width: auto;
+ width: auto;
+ cursor: pointer;
+ transition: 200ms ease-in-out all;
+
+ &:hover {
+ color: $tc-gray-30;
+ }
}
-
- // .FillProjectDetailsWrapper {
- // margin-top: -60px; // Counteract the push from the main wrapper, top of vewport
- // }
-}
-
-.project-creation-dialog {
- top: 0px;
- left: 0px;
-
- .Wizard .content {
+
+ .project-creation-dialog-overlay {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ z-index: 21;/* +1 of the z-index of the topbar */
+ background-color: $tc-gray-neutral-light;
+ /*background-color: $tc-gray-neutral-dark;*/
+ overflow-y: scroll;
+ opacity: 1;
+ transition: all .250ms ease-in-out;
+
+ .IncompleteProjectConfirmation {
+ margin-top: 0px;
+ }
+
+ .SelectProduct {
+ margin-top: 30px;
+ }
+
+ section.content {
+ padding: 1px 0;
+ }
+
+ .escape-button {
+ position: absolute;
+ right: 12px;
+ top: 12px;
+ z-index: 22;/* +1 from z-index of the modal overlay */
+ }
+
+ // .FillProjectDetailsWrapper {
+ // margin-top: -60px; // Counteract the push from the main wrapper, top of vewport
+ // }
}
-
- .TextInput.project-name,
- .TextInput.project-ref-code {
- height: 45px;
+
+ .project-creation-dialog {
+ top: 0px;
+ left: 0px;
+
+ .Wizard .content {
+ }
+
+ .TextInput.project-name,
+ .TextInput.project-ref-code {
+ height: 45px;
+ }
}
+
+ /*.project-creation-dialog-close {
+ cursor: pointer;
+ position: fixed;
+ top: 20px;
+ right: 20px;
+ width: 40px;
+ height: 40px;
+ text-align: center;
+
+ & .x-mark-icon {
+ width: 100%;
+ height: 100%;
+ }
+ }*/
}
-
-/*.project-creation-dialog-close {
- cursor: pointer;
- position: fixed;
- top: 20px;
- right: 20px;
- width: 40px;
- height: 40px;
- text-align: center;
-
- & .x-mark-icon {
- width: 100%;
- height: 100%;
- }
-}*/
+
\ No newline at end of file
diff --git a/src/components/TopBar/SectionToolBar.scss b/src/components/TopBar/SectionToolBar.scss
index 3ae55386a..f192f0be9 100644
--- a/src/components/TopBar/SectionToolBar.scss
+++ b/src/components/TopBar/SectionToolBar.scss
@@ -1,81 +1,92 @@
// this is to include tc styles in the output library
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.section-tool-bar {
- align-items: center;
- display: flex;
- justify-content: space-between;
- padding: 0 20px;
-
- > .section {
- align-items: center;
+:global {
+ .tc-header.tc-header__connect .top-bar{
+ height: 60px;
+ background-color: #262628;
+ position: relative;
display: flex;
}
- .title {
- @include roboto-light;
- font-size: 20px;
- color: $tc-gray-10;
- text-align: center;
- }
-
- > .section > .title {
- margin-left: 24px;
- }
-
- .close {
+ .section-tool-bar {
align-items: center;
- background-color: $tc-gray-50;
- border-radius: 29px;
display: flex;
- height: 30px;
- justify-content: center;
- width: 30px;
-
- &:hover {
- background-color: #55a5ff;
-
- .icon-x-mark {
- fill: $tc-white;
- margin: -6px;
- }
+ justify-content: space-between;
+ padding: 0 20px;
+ width: 100%;
+
+ > .section {
+ align-items: center;
+ display: flex;
}
-
- .icon-x-mark {
- fill: $tc-black;
- margin: -6px;
- }
- }
-
- > .section > .menu {
- margin-right: 30px;
-
- > a {
- @include roboto-medium;
- color: $tc-gray-50;
- font-size: 13px;
- line-height: 20px;
- margin-left: 40px;
-
- &.active,
+
+ .title {
+ @include roboto-light;
+ font-size: 20px;
+ color: $tc-gray-10;
+ text-align: center;
+ }
+
+ > .section > .title {
+ margin-left: 24px;
+ }
+
+ .close {
+ align-items: center;
+ background-color: $tc-gray-50;
+ border-radius: 29px;
+ display: flex;
+ height: 30px;
+ justify-content: center;
+ width: 30px;
+
&:hover {
- color: $tc-white;
+ background-color: #55a5ff;
+
+ .icon-x-mark {
+ fill: $tc-white;
+ margin: -6px;
+ }
}
+
+ .icon-x-mark {
+ fill: $tc-black;
+ margin: -6px;
+ }
}
- }
-
- .logo {
- align-items: center;
- display: flex;
-
- .icon-connect-logo-mono {
- height: auto;
- width: 53px;
- margin-top: 13px;
-
- path {
- fill: $tc-gray-10;
+
+ > .section > .menu {
+ margin-right: 30px;
+
+ > a {
+ @include roboto-medium;
+ color: $tc-gray-50;
+ font-size: 13px;
+ line-height: 20px;
+ margin-left: 40px;
+
+ &.active,
+ &:hover {
+ color: $tc-white;
+ }
+ }
+ }
+
+ .logo {
+ align-items: center;
+ display: flex;
+
+ .icon-connect-logo-mono {
+ height: auto;
+ width: 53px;
+ margin-top: 13px;
+
+ path {
+ fill: $tc-gray-10;
+ }
}
}
}
}
+
\ No newline at end of file
diff --git a/src/components/TopBar/TopBarContainer.js b/src/components/TopBar/TopBarContainer.js
index e2ba61a18..871849b37 100644
--- a/src/components/TopBar/TopBarContainer.js
+++ b/src/components/TopBar/TopBarContainer.js
@@ -2,7 +2,7 @@ import React from 'react'
import { connect } from 'react-redux'
import { Link, withRouter } from 'react-router-dom'
import _ from 'lodash'
-import { UserDropdown } from 'appirio-tech-react-components'
+import UserDropdown from 'appirio-tech-react-components/components/UserDropdownMenu/UserDropdownMenu'
import {
ACCOUNTS_APP_LOGIN_URL,
ACCOUNTS_APP_REGISTER_URL,
diff --git a/src/components/TopBar/TopBarContainer.scss b/src/components/TopBar/TopBarContainer.scss
index 7013d66b6..76a5fec05 100644
--- a/src/components/TopBar/TopBarContainer.scss
+++ b/src/components/TopBar/TopBarContainer.scss
@@ -1,167 +1,170 @@
-@import 'tc-includes';
-
-.welcome-info {
- .UserDropdownMenu {
- padding: 0;
- display: flex;
- align-content: center;
- text-align: left;
-
- .Dropdown {
- min-width: 160px;
- right: -25px;
- left: auto;
+@import '~tc-ui/src/styles/tc-includes';
+
+:global {
+ .welcome-info {
+ .UserDropdownMenu {
+ padding: 0;
+ display: flex;
+ align-content: center;
+ text-align: left;
+
+ .Dropdown {
+ min-width: 160px;
+ right: -25px;
+ left: auto;
+ }
}
}
-}
-
-.tc-header {
- height: 60px;
- // background: $tc-gray-neutral-light;
- line-height: 60px;
- height: 60px;
- background-color: $tc-black;
- z-index: 20;
- padding: 0 20px;
- position: fixed;
- top: 0;
- left: 0;
- right: 0;
-
- .logo-wrapper {
+
+ .tc-header {
height: 60px;
- flex-shrink: 0;
- display: flex;
-
- .logo {
- display: inline-block;
- position: relative;
- margin-top: 12px;
- // width: 60px;
- // height: 36px;
-
- .icon-connect-logo-mono {
- height: auto;
- width: 53px;
-
- path {
- fill: $tc-gray-10;
+ // background: $tc-gray-neutral-light;
+ line-height: 60px;
+ height: 60px;
+ background-color: $tc-black;
+ z-index: 20;
+ padding: 0 20px;
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+
+ .logo-wrapper {
+ height: 60px;
+ flex-shrink: 0;
+ display: flex;
+
+ .logo {
+ display: inline-block;
+ position: relative;
+ margin-top: 12px;
+ // width: 60px;
+ // height: 36px;
+
+ .icon-connect-logo-mono {
+ height: auto;
+ width: 53px;
+
+ path {
+ fill: $tc-gray-10;
+ }
}
}
- }
-
- .MenuBar {
- margin-left: 25px;
-
- li {
- white-space: nowrap;
+
+ .MenuBar {
+ margin-left: 25px;
+
+ li {
+ white-space: nowrap;
+ }
}
}
- }
-
- .sb-avatar {
- display: block !important;
- }
-
- &.tc-header__connect {
- padding: 0;
- min-height: 60px;
- height: auto;
-
- .top-bar {
- height: 60px;
- background-color: $tc-black;
- position: relative;
-
- .welcome-info {
+
+ .sb-avatar {
+ display: block !important;
+ }
+
+ &.tc-header__connect {
+ padding: 0;
+ min-height: 60px;
+ height: auto;
+
+ .top-bar {
height: 60px;
- font-size: 13px;
- color: $tc-gray-50;
- display: flex;
- justify-content: space-between;
- @include roboto-medium;
-
- > .tc-btn {
- margin-top: 15px;
- border: 0;
- width: 116px;
- text-align: center;
- }
-
- .avatar-info {
- position: relative;
- margin-left: 20px;
+ background-color: $tc-black;
+ position: relative;
+
+ .welcome-info {
+ height: 60px;
+ font-size: 13px;
+ color: $tc-gray-50;
display: flex;
- align-items: center;
-
- .avatar {
- width: 30px;
- height: 30px;
- background-color: $tc-dark-blue-70;
- border-radius: 15px;
- overflow: hidden;
+ justify-content: space-between;
+ @include roboto-medium;
+
+ > .tc-btn {
+ margin-top: 15px;
+ border: 0;
+ width: 116px;
text-align: center;
- line-height: 30px;
- color: $tc-white;
- @include roboto-medium;
- font-size: 15px;
- position: absolute;
- left: 0;
- top: 15px;
-
- img {
+ }
+
+ .avatar-info {
+ position: relative;
+ margin-left: 20px;
+ display: flex;
+ align-items: center;
+
+ .avatar {
width: 30px;
height: 30px;
+ background-color: $tc-dark-blue-70;
border-radius: 15px;
- }
- }
-
- .avatar-link {
- display: inline-block;
- padding-right: 16px;
- position: relative;
-
- &:after {
- display: block;
- content: '';
- width: 10px;
+ overflow: hidden;
+ text-align: center;
+ line-height: 30px;
+ color: $tc-white;
+ @include roboto-medium;
+ font-size: 15px;
position: absolute;
- right: 0;
- top: 50%;
- margin-top: -4px;
- height: 7.5px;
- // background: url("../../styles/i/arrow-down-black.png") right center no-repeat;
- background-size: 10px 7.5px;
+ left: 0;
+ top: 15px;
+
+ img {
+ width: 30px;
+ height: 30px;
+ border-radius: 15px;
+ }
+ }
+
+ .avatar-link {
+ display: inline-block;
+ padding-right: 16px;
+ position: relative;
+
+ &:after {
+ display: block;
+ content: '';
+ width: 10px;
+ position: absolute;
+ right: 0;
+ top: 50%;
+ margin-top: -4px;
+ height: 7.5px;
+ // background: url("../../styles/i/arrow-down-black.png") right center no-repeat;
+ background-size: 10px 7.5px;
+ }
}
}
- }
-
- .tc-btn-primary {
- margin-left: 7px;
- color: $tc-white;
+
+ .tc-btn-primary {
+ margin-left: 7px;
+ color: $tc-white;
+ }
}
}
}
}
-}
-
-@media all and (max-width: 1023px) {
- .tc-header {
- &.tc-header__connect {
- .top-bar .search-bar {
- width: 383px;
- margin-left: 110px;
-
- .search-widget {
- width: 296px;
+
+ @media all and (max-width: 1023px) {
+ .tc-header {
+ &.tc-header__connect {
+ .top-bar .search-bar {
+ width: 383px;
+ margin-left: 110px;
+
+ .search-widget {
+ width: 296px;
+ }
+ }
+
+ .top-bar .welcome-info .avatar-info .avatar-link {
+ text-indent: -9999px;
+ width: 10px;
+ padding-right: 0;
}
- }
-
- .top-bar .welcome-info .avatar-info .avatar-link {
- text-indent: -9999px;
- width: 10px;
- padding-right: 0;
}
}
}
}
+
\ No newline at end of file
diff --git a/src/components/User/UserAvatar.scss b/src/components/User/UserAvatar.scss
index eed8811c0..346a7a513 100644
--- a/src/components/User/UserAvatar.scss
+++ b/src/components/User/UserAvatar.scss
@@ -1,20 +1,23 @@
@import '~tc-ui/src/styles/tc-includes';
-.user-avatar {
- width: 30px;
- height: 30px;
- border-radius: 100%;
- position: relative;
- background-size: cover;
- background-position: center;
- @media (max-width: 700px) {
- margin-right: 10px;
- }
-
- .user-rank {
- position: absolute;
- top: 0;
- right: 0;
+:global {
+ .user-avatar {
+ width: 30px;
+ height: 30px;
+ border-radius: 100%;
+ position: relative;
+ background-size: cover;
+ background-position: center;
+ @media (max-width: 700px) {
+ margin-right: 10px;
+ }
+
+ .user-rank {
+ position: absolute;
+ top: 0;
+ right: 0;
+ }
}
}
+
\ No newline at end of file
diff --git a/src/components/User/UserBio.scss b/src/components/User/UserBio.scss
index 6e73a4e89..c35ea93eb 100644
--- a/src/components/User/UserBio.scss
+++ b/src/components/User/UserBio.scss
@@ -1,8 +1,11 @@
@import '~tc-ui/src/styles/tc-includes';
-.user-bio {
- @include tc-body-small;
- // font-family: 'Proxima-Nova';
- color: $tc-gray-80;
- margin-top: 20px;
+:global {
+ .user-bio {
+ @include tc-body-small;
+ // font-family: 'Proxima-Nova';
+ color: $tc-gray-80;
+ margin-top: 20px;
+ }
}
+
\ No newline at end of file
diff --git a/src/components/User/UserTooltip.jsx b/src/components/User/UserTooltip.jsx
index 13d5b8e79..a7dfc5e8b 100644
--- a/src/components/User/UserTooltip.jsx
+++ b/src/components/User/UserTooltip.jsx
@@ -1,7 +1,7 @@
import React from 'react'
import PropTypes from 'prop-types'
-import { Tooltip } from 'appirio-tech-react-components'
-import { Avatar } from 'appirio-tech-react-components'
+import Tooltip from 'appirio-tech-react-components/components/Tooltip/Tooltip'
+import Avatar from 'appirio-tech-react-components/components/Avatar/Avatar'
import { DOMAIN } from '../../../config/constants'
require('./UserTooltip.scss')
@@ -20,7 +20,7 @@ const UserTooltip = ({ usr, id, previewAvatar, size }) => {
size={size}
/>
) :
- {usr.firstName} {usr.lastName}
+ {usr.firstName} {usr.lastName}
}
diff --git a/src/components/User/UserTooltip.scss b/src/components/User/UserTooltip.scss
index 9063ee114..19afb2c00 100644
--- a/src/components/User/UserTooltip.scss
+++ b/src/components/User/UserTooltip.scss
@@ -1,179 +1,182 @@
-@import 'tc-includes';
-.Tooltip {
- &.customer-data {
- .tooltip-target {
- .Avatar {
- height: 30px;
- width: 30px;
- }
- }
-
- &.size-35 {
+@import '~tc-ui/src/styles/tc-includes';
+:global {
+ .Tooltip {
+ &.customer-data {
.tooltip-target {
.Avatar {
- height: 35px;
- width: 35px;
+ height: 30px;
+ width: 30px;
}
}
- }
-
- .stack-avatar-0 {
- z-index: 3;
- }
-
- .stack-avatar-1 {
- margin-left: -5px;
- z-index: 2;
- }
-
- .stack-avatar-2 {
- margin-left: -5px;
- z-index: 1;
- }
-
- .tooltip-container {
- border: 1px solid rgba($tc-black, 0.2);
- border-radius: 5px;
- box-shadow: 0 0 10px rgba($tc-black, 0.2);
- transition-delay: 400ms !important;
- transition-duration: 150ms !important;
- transition-easing: ease-in-out;
-
- &:hover {
- transition-dealy: 0 !important;
- transition-duration: 0 !important;
- }
- }
-
- .tooltip-pointer {
- background-color: $tc-white;
- display: block;
- }
-
- [data-placement="top"] .tooltip-pointer {
- border-right: 1px solid rgba($tc-black, 0.2);
- border-bottom: 1px solid rgba($tc-black, 0.2);
- bottom: -11px !important;
- }
-
- [data-placement="bottom"] .tooltip-pointer {
- border-left: 1px solid rgba($tc-black, 0.2);
- border-top: 1px solid rgba($tc-black, 0.2);
- top: -11px !important;
- }
-
- .tooltip-content-container {
- background-color: $tc-white;
- width: 400px;
- padding-top: 20px;
- padding-left: 20px;
-
- .tooltip-body {
- color: $tc-black;
- overflow: hidden;
- white-space: normal;
-
- .top-container {
- display: flex;
- position: relative;
- flex-direction: row;
-
- .tt-col-avatar {
- flex: none;
- width: 40px;
- height: 40px;
- margin-right: 10px;
- margin-bottom: 10px;
+
+ &.size-35 {
+ .tooltip-target {
+ .Avatar {
+ height: 35px;
+ width: 35px;
}
-
- .tt-col-user-data {
- flex: 1;
+ }
+ }
+
+ .stack-avatar-0 {
+ z-index: 3;
+ }
+
+ .stack-avatar-1 {
+ margin-left: -5px;
+ z-index: 2;
+ }
+
+ .stack-avatar-2 {
+ margin-left: -5px;
+ z-index: 1;
+ }
+
+ .tooltip-container {
+ border: 1px solid rgba($tc-black, 0.2);
+ border-radius: 5px;
+ box-shadow: 0 0 10px rgba($tc-black, 0.2);
+ transition-delay: 400ms !important;
+ transition-duration: 150ms !important;
+ transition-easing: ease-in-out;
+
+ &:hover {
+ transition-dealy: 0 !important;
+ transition-duration: 0 !important;
+ }
+ }
+
+ .tooltip-pointer {
+ background-color: $tc-white;
+ display: block;
+ }
+
+ [data-placement="top"] .tooltip-pointer {
+ border-right: 1px solid rgba($tc-black, 0.2);
+ border-bottom: 1px solid rgba($tc-black, 0.2);
+ bottom: -11px !important;
+ }
+
+ [data-placement="bottom"] .tooltip-pointer {
+ border-left: 1px solid rgba($tc-black, 0.2);
+ border-top: 1px solid rgba($tc-black, 0.2);
+ top: -11px !important;
+ }
+
+ .tooltip-content-container {
+ background-color: $tc-white;
+ width: 400px;
+ padding-top: 20px;
+ padding-left: 20px;
+
+ .tooltip-body {
+ color: $tc-black;
+ overflow: hidden;
+ white-space: normal;
+
+ .top-container {
display: flex;
- flex-wrap: wrap;
- align-content: flex-start;
- }
-
- .user-name-container {
- flex: 1 0 90%;
-
- span {
- font-size: 15px;
- font-weight: 600;
- color: $tc-black;
- line-height: 20px;
+ position: relative;
+ flex-direction: row;
+
+ .tt-col-avatar {
+ flex: none;
+ width: 40px;
+ height: 40px;
+ margin-right: 10px;
+ margin-bottom: 10px;
}
- }
-
- .user-handle-container {
- padding-right: 10px;
- height: 20px;
-
- &.with-email {
- border-right: 1px solid $tc-gray-50;
+
+ .tt-col-user-data {
+ flex: 1;
+ display: flex;
+ flex-wrap: wrap;
+ align-content: flex-start;
}
-
- span {
- font-size: 12px;
- color: $tc-gray-50;
- line-height: 20px;
+
+ .user-name-container {
+ flex: 1 0 90%;
+
+ span {
+ font-size: 15px;
+ font-weight: 600;
+ color: $tc-black;
+ line-height: 20px;
+ }
}
- }
-
- .user-email-container {
- flex: 1;
- padding-left: 10px;
-
- a {
- font-size: 12px;
- color: $tc-gray-50;
- line-height: 20px;
- text-decoration: none;
-
- &:hover {
+
+ .user-handle-container {
+ padding-right: 10px;
+ height: 20px;
+
+ &.with-email {
+ border-right: 1px solid $tc-gray-50;
+ }
+
+ span {
+ font-size: 12px;
+ color: $tc-gray-50;
+ line-height: 20px;
+ }
+ }
+
+ .user-email-container {
+ flex: 1;
+ padding-left: 10px;
+
+ a {
+ font-size: 12px;
+ color: $tc-gray-50;
+ line-height: 20px;
text-decoration: none;
+
+ &:hover {
+ text-decoration: none;
+ }
}
}
}
- }
-
- .sf-data-bottom-container {
- display: flex;
- flex-direction: column;
-
- .segment-data {
- flex: 1;
- font-size: 13px;
- color: $tc-black;
- line-height: 25px;
-
- &:first-of-type {
- border-top: 1px solid $tc-gray-50;
- padding-top: 11px;
- }
-
- .ext-link {
- position: relative;
- font-size: 11px;
- color: $tc-dark-blue;
- padding-right: 20px;
-
- &:after {
- content: "";
- width: 13px;
- height: 13px;
- position: absolute;
- top: 2px;
- right: 0px;
+
+ .sf-data-bottom-container {
+ display: flex;
+ flex-direction: column;
+
+ .segment-data {
+ flex: 1;
+ font-size: 13px;
+ color: $tc-black;
+ line-height: 25px;
+
+ &:first-of-type {
+ border-top: 1px solid $tc-gray-50;
+ padding-top: 11px;
+ }
+
+ .ext-link {
+ position: relative;
+ font-size: 11px;
+ color: $tc-dark-blue;
+ padding-right: 20px;
+
+ &:after {
+ content: "";
+ width: 13px;
+ height: 13px;
+ position: absolute;
+ top: 2px;
+ right: 0px;
+ }
}
}
}
- }
-
- .user-avatar {
- width: 40px;
- height: 40px;
+
+ .user-avatar {
+ width: 40px;
+ height: 40px;
+ }
}
}
}
}
}
+
\ No newline at end of file
diff --git a/src/components/User/UserWithName.jsx b/src/components/User/UserWithName.jsx
index c3a24a390..fb807c11a 100644
--- a/src/components/User/UserWithName.jsx
+++ b/src/components/User/UserWithName.jsx
@@ -1,7 +1,7 @@
import React from 'react'
import PropTypes from 'prop-types'
import { DOMAIN } from '../../config/constants'
-import { Avatar } from 'appirio-tech-react-components'
+import Avatar from 'appirio-tech-react-components/components/Avatar/Avatar'
require('./UserWithName.scss')
const UserWithName = ({ handle, firstName, lastName, photoURL }) => {
diff --git a/src/components/User/UserWithName.scss b/src/components/User/UserWithName.scss
index 85ad26fbc..fa275d9b5 100644
--- a/src/components/User/UserWithName.scss
+++ b/src/components/User/UserWithName.scss
@@ -1,56 +1,59 @@
@import '~tc-ui/src/styles/tc-includes';
-.user-block {
- position: relative;
-
- .photo,
- .txt-box {
- height: 30px;
- display: inline-block;
- vertical-align: middle;
- }
-
- .photo{
- padding-right: 5px;
- img {
- width: 30px;
- height: 30px;
- border-radius: 100%;
- }
- }
-
- .txt-box {
- .link-black {
- @include roboto-bold;
-
- font-size: $tc-label-md;
- color: $tc-gray-80;
- line-height: $base-unit * 3;
- &:hover {
- text-decoration: underline;
- }
- }
-
- .txt-gray {
- font-size: $tc-label-sm;
- color: $tc-gray-50;
- line-height: $base-unit * 3;
- display: block;
- }
- }
-
- &.single-block .txt-box a {
- line-height: $base-unit * 6;
- display: inline-block;
- }
-
- .item-mask-layer {
- background: rgba($tc-white,0.7);
- width: 100%;
- height: 100%;
- position: absolute;
- top: 0;
- left: 0;
- z-index: 99;
- }
+:global {
+ .user-block {
+ position: relative;
+
+ .photo,
+ .txt-box {
+ height: 30px;
+ display: inline-block;
+ vertical-align: middle;
+ }
+
+ .photo{
+ padding-right: 5px;
+ img {
+ width: 30px;
+ height: 30px;
+ border-radius: 100%;
+ }
+ }
+
+ .txt-box {
+ .link-black {
+ @include roboto-bold;
+
+ font-size: $tc-label-md;
+ color: $tc-gray-80;
+ line-height: $base-unit * 3;
+ &:hover {
+ text-decoration: underline;
+ }
+ }
+
+ .txt-gray {
+ font-size: $tc-label-sm;
+ color: $tc-gray-50;
+ line-height: $base-unit * 3;
+ display: block;
+ }
+ }
+
+ &.single-block .txt-box a {
+ line-height: $base-unit * 6;
+ display: inline-block;
+ }
+
+ .item-mask-layer {
+ background: rgba($tc-white,0.7);
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 99;
+ }
+ }
}
+
\ No newline at end of file
diff --git a/src/components/User/UsernameAndDetails.scss b/src/components/User/UsernameAndDetails.scss
index be9d4c689..730e94e31 100644
--- a/src/components/User/UsernameAndDetails.scss
+++ b/src/components/User/UsernameAndDetails.scss
@@ -1,31 +1,34 @@
@import '~tc-ui/src/styles/tc-includes';
-.username-and-details {
- max-width: 225px;
-
- .username {
- @include tc-heading;
- color: $tc-gray-80;
- text-overflow: ellipsis;
- overflow: hidden;
- @media (max-width: 700px) {
- max-width: 180px;
- }
- }
-
- .user-details {
- .country-and-wins {
- @include tc-label-small;
- color: $tc-gray-60;
-
- .user-country {
- text-transform: uppercase;
+:global {
+ .username-and-details {
+ max-width: 225px;
+
+ .username {
+ @include tc-heading;
+ color: $tc-gray-80;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ @media (max-width: 700px) {
+ max-width: 180px;
}
}
-
- .member-since {
- @include tc-label-small;
- color: $tc-gray-30;
+
+ .user-details {
+ .country-and-wins {
+ @include tc-label-small;
+ color: $tc-gray-60;
+
+ .user-country {
+ text-transform: uppercase;
+ }
+ }
+
+ .member-since {
+ @include tc-label-small;
+ color: $tc-gray-30;
+ }
}
}
}
+
\ No newline at end of file
diff --git a/src/components/Wizard/Wizard.scss b/src/components/Wizard/Wizard.scss
index 688fb926d..addbbab79 100644
--- a/src/components/Wizard/Wizard.scss
+++ b/src/components/Wizard/Wizard.scss
@@ -1,26 +1,29 @@
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.Wizard {
- text-align: center;
- .content {
- background: $tc-white;
- box-shadow: 0px 0px 14px 1px rgba($tc-gray-90, 0.15);
- display: inline-block;
- margin: 24px auto;
- min-width: 120px;
- padding: 20px;
- /*position: relative;*/
- text-align: left;
- width: 100%;
- }
- .back-button {
- position: absolute;
- left: 12px;
- top: 12px;
- }
- .escape-button {
- position: absolute;
- right: 12px;
- top: 12px;
+:global {
+ .Wizard {
+ text-align: center;
+ .content {
+ background: $tc-white;
+ box-shadow: 0px 0px 14px 1px rgba($tc-gray-90, 0.15);
+ display: inline-block;
+ margin: 24px auto;
+ min-width: 120px;
+ padding: 20px;
+ /*position: relative;*/
+ text-align: left;
+ width: 100%;
+ }
+ .back-button {
+ position: absolute;
+ left: 12px;
+ top: 12px;
+ }
+ .escape-button {
+ position: absolute;
+ right: 12px;
+ top: 12px;
+ }
}
}
+
\ No newline at end of file
diff --git a/src/config/constants.js b/src/config/constants.js
index 3008fcbd4..865ddc83f 100644
--- a/src/config/constants.js
+++ b/src/config/constants.js
@@ -143,6 +143,13 @@ export const DELETE_PROJECT_FEED_COMMENT_PENDING = 'DELETE_PROJECT_FEED_COMMENT
export const DELETE_PROJECT_FEED_COMMENT_SUCCESS = 'DELETE_PROJECT_FEED_COMMENT_SUCCESS'
export const DELETE_PROJECT_FEED_COMMENT_FAILURE = 'DELETE_PROJECT_FEED_COMMENT_FAILURE'
+// Project Sort
+export const PROJECT_SORT = 'PROJECT_SORT'
+export const PROJECT_SORT_FAILURE = 'PROJECT_SORT_FAILURE'
+export const PROJECT_SORT_SUCCESS = 'PROJECT_SORT_SUCCESS'
+export const PROJECT_SORT_PENDING = 'PROJECT_SORT_PENDING'
+
+
// Project Load
export const LOAD_PROJECT = 'LOAD_PROJECT'
export const LOAD_PROJECT_PENDING = 'LOAD_PROJECT_PENDING'
@@ -366,6 +373,7 @@ export const SORT_OPTIONS = [
// Notifications
export const REFRESH_NOTIFICATIONS_INTERVAL = 1000 * 60 * 1 // 1 minute interval
+export const REFRESH_UNREAD_UPDATE_INTERVAL = 1000 * 10 * 1 // 10 second interval
export const NOTIFCATIONS_DROPDOWN_PER_SOURCE = 10
export const NOTIFCATIONS_DROPDOWN_MAX_TOTAL = Infinity
diff --git a/src/config/projectQuestions/app_dev.v1.0.js b/src/config/projectQuestions/app_dev.v1.0.js
index 37ee9ce3a..b3bc6902d 100644
--- a/src/config/projectQuestions/app_dev.v1.0.js
+++ b/src/config/projectQuestions/app_dev.v1.0.js
@@ -1,5 +1,4 @@
import React from 'react' // eslint-disable-line no-unused-vars
-import _ from 'lodash'
import IconTechOutlineMobile from '../../assets/icons/icon-tech-outline-mobile.svg'
import IconTechOutlineTablet from '../../assets/icons/icon-tech-outline-tablet.svg'
import IconTechOutlineDesktop from '../../assets/icons/icon-tech-outline-desktop.svg'
@@ -9,30 +8,12 @@ import IconTcSpecTypeSansSerif from '../../assets/icons/icon-tc-spec-type-sans-
import IconTcSpecIconTypeColorHome from '../../assets/icons/icon-tc-spec-icon-type-color-home.svg'
import IconTcSpecIconTypeOutlineHome from '../../assets/icons/icon-tc-spec-icon-type-outline-home.svg'
import IconTcSpecIconTypeGlyphHome from '../../assets/icons/icon-tc-spec-icon-type-glyph-home.svg'
-import { findProduct} from '../projectWizard'
-
-const isFileRequired = (project, subSections) => {
- const subSection = _.find(subSections, (s) => s.type === 'questions')
- const fields = _.filter(subSection.questions, q => q.type.indexOf('see-attached') > -1)
- // iterate over all seeAttached type fields to check
- // if any see attached is checked.
- return _.some(_.map(
- _.map(fields, 'fieldName'),
- fn => _.get(project, `${fn}.seeAttached`)
- ))
-}
+import { isFileRequired, findTitle, findFilesSectionTitle } from '../projectWizard'
const sections = [
{
id: 'appDefinition',
- title: (project, showProduct) => {
- const product = _.get(project, 'details.products[0]')
- if (showProduct && product) {
- const prd = findProduct(product)
- if (prd) return prd.name
- }
- return 'Definition'
- },
+ title: findTitle,
required: true,
description: 'Please answer a few basic questions about your project. You can also provide the needed information in a supporting document--add a link in the notes section or upload it below.',
subSections: [
@@ -162,7 +143,7 @@ const sections = [
{
id: 'files',
required: isFileRequired,
- title: (project) => `Project Files (${_.get(project, 'attachments', []).length})` || 'Files',
+ title: findFilesSectionTitle,
description: '',
type: 'files',
fieldName: 'attachments'
diff --git a/src/config/projectQuestions/avd.v1.0.js b/src/config/projectQuestions/avd.v1.0.js
index af99f5856..70ed2bc92 100644
--- a/src/config/projectQuestions/avd.v1.0.js
+++ b/src/config/projectQuestions/avd.v1.0.js
@@ -1,34 +1,15 @@
import React from 'react' // eslint-disable-line no-unused-vars
-import _ from 'lodash'
import IconTechOutlineMobile from '../../assets/icons/icon-tech-outline-mobile.svg'
import IconTechOutlineTablet from '../../assets/icons/icon-tech-outline-tablet.svg'
import IconTechOutlineDesktop from '../../assets/icons/icon-tech-outline-desktop.svg'
import IconTechOutlineWatchApple from '../../assets/icons/icon-tech-outline-watch-apple.svg'
import NumberText from '../../components/NumberText/NumberText'
-import { findProduct} from '../projectWizard'
-
-const isFileRequired = (project, subSections) => {
- const subSection = _.find(subSections, (s) => s.type === 'questions')
- const fields = _.filter(subSection.questions, q => q.type.indexOf('see-attached') > -1)
- // iterate over all seeAttached type fields to check
- // if any see attached is checked.
- return _.some(_.map(
- _.map(fields, 'fieldName'),
- fn => _.get(project, `${fn}.seeAttached`)
- ))
-}
+import { isFileRequired, findTitle, findFilesSectionTitle } from '../projectWizard'
const sections = [
{
id: 'appDefinition',
- title: (project, showProduct) => {
- const product = _.get(project, 'details.products[0]')
- if (showProduct && product) {
- const prd = findProduct(product)
- if (prd) return prd.name
- }
- return 'Definition'
- },
+ title: findTitle,
required: true,
description: 'Please answer a few basic questions about your project. You can also provide the needed information in a supporting document--add a link in the notes section or upload it below.',
subSections: [
@@ -55,10 +36,11 @@ const sections = [
description: 'This is the most popular project size that can get a medium-sized app designed in a breeze',
fieldName: 'details.appDefinition.numberScreens',
type: 'tiled-radio-group',
+ affectsQuickQuote: true,
options: [
- {value: '1-3', title: 'screens', icon: NumberText, iconOptions: { number: '1-3' }, desc: '5-7 days', price: 5000},
- {value: '4-8', title: 'screens', icon: NumberText, iconOptions: { number: '4-8' }, desc: '7-10 days', price: 7000},
- {value: '9-15', title: 'screens', icon: NumberText, iconOptions: { number: '9-15' }, desc: '8-10 days', price: 8500}
+ {value: '1-3', title: 'screens', icon: NumberText, iconOptions: { number: '1-3' }, desc: '5-7 days', quoteUp: 0, minTimeUp: 0, maxTimeUp: 0},
+ {value: '4-8', title: 'screens', icon: NumberText, iconOptions: { number: '4-8' }, desc: '7-10 days', quoteUp: 2000, minTimeUp: 3, maxTimeUp: 5},
+ {value: '9-15', title: 'screens', icon: NumberText, iconOptions: { number: '9-15' }, desc: '8-10 days', quoteUp: 3500, minTimeUp: 8, maxTimeUp: 12}
]
},
{
@@ -117,7 +99,7 @@ const sections = [
{
id: 'files',
required: isFileRequired,
- title: (project) => `Project Files (${_.get(project, 'attachments', []).length})` || 'Files',
+ title: findFilesSectionTitle,
description: '',
type: 'files',
fieldName: 'attachments'
diff --git a/src/config/projectQuestions/computer_vision.v1.0.js b/src/config/projectQuestions/computer_vision.v1.0.js
index d43eeaf8d..a978516cc 100644
--- a/src/config/projectQuestions/computer_vision.v1.0.js
+++ b/src/config/projectQuestions/computer_vision.v1.0.js
@@ -1,30 +1,10 @@
-import _ from 'lodash'
// import NumberText from '../../components/NumberText/NumberText'
-import { findProduct } from '../projectWizard'
-
-
-const isFileRequired = (project, subSections) => {
- const subSection = _.find(subSections, (s) => s.type === 'questions')
- const fields = _.filter(subSection.questions, q => q.type.indexOf('see-attached') > -1)
- // iterate over all seeAttached type fields to check
- // if any see attached is checked.
- return _.some(_.map(
- _.map(fields, 'fieldName'),
- fn => _.get(project, `${fn}.seeAttached`)
- ))
-}
+import { isFileRequired, findTitle, findFilesSectionTitle } from '../projectWizard'
const sections = [
{
id: 'appDefinition',
- title: (project, showProduct) => {
- const product = _.get(project, 'details.products[0]')
- if (showProduct && product) {
- const prd = findProduct(product)
- if (prd) return prd.name
- }
- return 'Definition'
- },
+ title: findTitle,
required: true,
description: 'Please answer a few basic questions about your project. You can also provide the needed information in a supporting document--add a link in the notes section or upload it below.',
subSections: [
@@ -123,7 +103,7 @@ const sections = [
{
id: 'files',
required: isFileRequired,
- title: (project) => `Project Files (${_.get(project, 'attachments', []).length})` || 'Files',
+ title: findFilesSectionTitle,
description: '',
type: 'files',
fieldName: 'attachments'
diff --git a/src/config/projectQuestions/data_exploration.v1.0.js b/src/config/projectQuestions/data_exploration.v1.0.js
index 6d4b5823f..199ca6b64 100644
--- a/src/config/projectQuestions/data_exploration.v1.0.js
+++ b/src/config/projectQuestions/data_exploration.v1.0.js
@@ -1,30 +1,10 @@
-import _ from 'lodash'
// import NumberText from '../../components/NumberText/NumberText'
-import { findProduct } from '../projectWizard'
-
-
-const isFileRequired = (project, subSections) => {
- const subSection = _.find(subSections, (s) => s.type === 'questions')
- const fields = _.filter(subSection.questions, q => q.type.indexOf('see-attached') > -1)
- // iterate over all seeAttached type fields to check
- // if any see attached is checked.
- return _.some(_.map(
- _.map(fields, 'fieldName'),
- fn => _.get(project, `${fn}.seeAttached`)
- ))
-}
+import { isFileRequired, findTitle, findFilesSectionTitle } from '../projectWizard'
const sections = [
{
id: 'appDefinition',
- title: (project, showProduct) => {
- const product = _.get(project, 'details.products[0]')
- if (showProduct && product) {
- const prd = findProduct(product)
- if (prd) return prd.name
- }
- return 'Definition'
- },
+ title: findTitle,
required: true,
description: 'Please answer a few basic questions about your project. You can also provide the needed information in a supporting document--add a link in the notes section or upload it below.',
subSections: [
@@ -121,7 +101,7 @@ const sections = [
{
id: 'files',
required: isFileRequired,
- title: (project) => `Project Files (${_.get(project, 'attachments', []).length})` || 'Files',
+ title: findFilesSectionTitle,
description: '',
type: 'files',
fieldName: 'attachments'
diff --git a/src/config/projectQuestions/generic_chatbot.v1.0.js b/src/config/projectQuestions/generic_chatbot.v1.0.js
index 529ce89cc..643b51020 100644
--- a/src/config/projectQuestions/generic_chatbot.v1.0.js
+++ b/src/config/projectQuestions/generic_chatbot.v1.0.js
@@ -1,28 +1,10 @@
-import _ from 'lodash'
-import { findProduct} from '../projectWizard'
-
-const isFileRequired = (project, subSections) => {
- const subSection = _.find(subSections, (s) => s.type === 'questions')
- const fields = _.filter(subSection.questions, q => q.type.indexOf('see-attached') > -1)
- // iterate over all seeAttached type fields to check
- // if any see attached is checked.
- return _.some(_.map(
- _.map(fields, 'fieldName'),
- fn => _.get(project, `${fn}.seeAttached`)
- ))
-}
+// import { Icons } from 'appirio-tech-react-components'
+import { isFileRequired, findTitle, findFilesSectionTitle } from '../projectWizard'
const sections = [
{
id: 'appDefinition',
- title: (project, showProduct) => {
- const product = _.get(project, 'details.products[0]')
- if (showProduct && product) {
- const prd = findProduct(product)
- if (prd) return prd.name
- }
- return 'Definition'
- },
+ title: findTitle,
required: true,
description: 'Please answer a few basic questions about your project. You can also provide the needed information in a supporting document--add a link in the notes section or upload it below.',
subSections: [
@@ -104,7 +86,7 @@ const sections = [
{
id: 'files',
required: isFileRequired,
- title: (project) => `Project Files (${_.get(project, 'attachments', []).length})` || 'Files',
+ title: findFilesSectionTitle,
description: '',
type: 'files',
fieldName: 'attachments'
diff --git a/src/config/projectQuestions/health_check.v1.0.js b/src/config/projectQuestions/health_check.v1.0.js
index f4238b496..703cc44b4 100644
--- a/src/config/projectQuestions/health_check.v1.0.js
+++ b/src/config/projectQuestions/health_check.v1.0.js
@@ -1,30 +1,10 @@
-import _ from 'lodash'
// import NumberText from '../../components/NumberText/NumberText'
-import { findProduct } from '../projectWizard'
-
-
-const isFileRequired = (project, subSections) => {
- const subSection = _.find(subSections, (s) => s.type === 'questions')
- const fields = _.filter(subSection.questions, q => q.type.indexOf('see-attached') > -1)
- // iterate over all seeAttached type fields to check
- // if any see attached is checked.
- return _.some(_.map(
- _.map(fields, 'fieldName'),
- fn => _.get(project, `${fn}.seeAttached`)
- ))
-}
+import { isFileRequired, findTitle, findFilesSectionTitle } from '../projectWizard'
const sections = [
{
id: 'appDefinition',
- title: (project, showProduct) => {
- const product = _.get(project, 'details.products[0]')
- if (showProduct && product) {
- const prd = findProduct(product)
- if (prd) return prd.name
- }
- return 'Definition'
- },
+ title: findTitle,
required: true,
description: 'Topcoder will scan your application using our properiatary formula\
for security standards. To rate your application we combine state of the art \
@@ -155,7 +135,7 @@ const sections = [
{
id: 'files',
required: isFileRequired,
- title: (project) => `Project Files (${_.get(project, 'attachments', []).length})` || 'Files',
+ title: findFilesSectionTitle,
description: '',
type: 'files',
fieldName: 'attachments'
diff --git a/src/config/projectQuestions/ibm_chatbot.v1.0.js b/src/config/projectQuestions/ibm_chatbot.v1.0.js
index 6c9c5e1c8..edf655b58 100644
--- a/src/config/projectQuestions/ibm_chatbot.v1.0.js
+++ b/src/config/projectQuestions/ibm_chatbot.v1.0.js
@@ -1,28 +1,10 @@
-import _ from 'lodash'
-import { findProduct} from '../projectWizard'
-
-const isFileRequired = (project, subSections) => {
- const subSection = _.find(subSections, (s) => s.type === 'questions')
- const fields = _.filter(subSection.questions, q => q.type.indexOf('see-attached') > -1)
- // iterate over all seeAttached type fields to check
- // if any see attached is checked.
- return _.some(_.map(
- _.map(fields, 'fieldName'),
- fn => _.get(project, `${fn}.seeAttached`)
- ))
-}
+// import { Icons } from 'appirio-tech-react-components'
+import { isFileRequired, findTitle, findFilesSectionTitle } from '../projectWizard'
const sections = [
{
id: 'appDefinition',
- title: (project, showProduct) => {
- const product = _.get(project, 'details.products[0]')
- if (showProduct && product) {
- const prd = findProduct(product)
- if (prd) return prd.name
- }
- return 'Definition'
- },
+ title: findTitle,
required: true,
description: 'Please answer a few basic questions about your project. You can also provide the needed information in a supporting document--add a link in the notes section or upload it below.',
subSections: [
@@ -135,7 +117,7 @@ const sections = [
{
id: 'files',
required: isFileRequired,
- title: (project) => `Project Files (${_.get(project, 'attachments', []).length})` || 'Files',
+ title: findFilesSectionTitle,
description: '',
type: 'files',
fieldName: 'attachments'
diff --git a/src/config/projectQuestions/mobility_testing.v1.0.js b/src/config/projectQuestions/mobility_testing.v1.0.js
index 6ef282303..9381566d3 100644
--- a/src/config/projectQuestions/mobility_testing.v1.0.js
+++ b/src/config/projectQuestions/mobility_testing.v1.0.js
@@ -1,33 +1,14 @@
+// import NumberText from '../../components/NumberText/NumberText'
import React from 'react' // eslint-disable-line no-unused-vars
-import _ from 'lodash'
import IconTechOutlineMobile from '../../assets/icons/icon-tech-outline-mobile.svg'
import IconTechOutlineTablet from '../../assets/icons/icon-tech-outline-tablet.svg'
import IconTechOutlineWatchApple from '../../assets/icons/icon-tech-outline-watch-apple.svg'
-import { findProduct} from '../projectWizard'
-
-
-const isFileRequired = (project, subSections) => {
- const subSection = _.find(subSections, (s) => s.type === 'questions')
- const fields = _.filter(subSection.questions, q => q.type.indexOf('see-attached') > -1)
- // iterate over all seeAttached type fields to check
- // if any see attached is checked.
- return _.some(_.map(
- _.map(fields, 'fieldName'),
- fn => _.get(project, `${fn}.seeAttached`)
- ))
-}
+import { isFileRequired, findTitle, findFilesSectionTitle } from '../projectWizard'
const sections = [
{
id: 'appDefinition',
- title: (project, showProduct) => {
- const product = _.get(project, 'details.products[0]')
- if (showProduct && product) {
- const prd = findProduct(product)
- if (prd) return prd.name
- }
- return 'Definition'
- },
+ title: findTitle,
required: true,
description: 'Please answer a few basic questions about your project. You can also provide the needed information in a supporting document--add a link in the notes section or upload it below.',
subSections: [
@@ -305,7 +286,7 @@ const sections = [
{
id: 'files',
required: isFileRequired,
- title: (project) => `Project Files (${_.get(project, 'attachments', []).length})` || 'Files',
+ title: findFilesSectionTitle,
description: '',
type: 'files',
fieldName: 'attachments'
diff --git a/src/config/projectQuestions/performance_testing.v1.0.js b/src/config/projectQuestions/performance_testing.v1.0.js
index 10c0045a2..731d2c7be 100644
--- a/src/config/projectQuestions/performance_testing.v1.0.js
+++ b/src/config/projectQuestions/performance_testing.v1.0.js
@@ -1,30 +1,10 @@
-import _ from 'lodash'
// import NumberText from '../../components/NumberText/NumberText'
-import { findProduct } from '../projectWizard'
-
-
-const isFileRequired = (project, subSections) => {
- const subSection = _.find(subSections, (s) => s.type === 'questions')
- const fields = _.filter(subSection.questions, q => q.type.indexOf('see-attached') > -1)
- // iterate over all seeAttached type fields to check
- // if any see attached is checked.
- return _.some(_.map(
- _.map(fields, 'fieldName'),
- fn => _.get(project, `${fn}.seeAttached`)
- ))
-}
+import { isFileRequired, findTitle, findFilesSectionTitle } from '../projectWizard'
const sections = [
{
id: 'appDefinition',
- title: (project, showProduct) => {
- const product = _.get(project, 'details.products[0]')
- if (showProduct && product) {
- const prd = findProduct(product)
- if (prd) return prd.name
- }
- return 'Definition'
- },
+ title: findTitle,
required: true,
description: 'Please answer a few basic questions about your project. You can also provide the needed information in a supporting document—add a link in the notes section or upload it below.',
subSections: [
@@ -138,7 +118,7 @@ const sections = [
{
id: 'files',
required: isFileRequired,
- title: (project) => `Project Files (${_.get(project, 'attachments', []).length})` || 'Files',
+ title: findFilesSectionTitle,
description: '',
type: 'files',
fieldName: 'attachments'
diff --git a/src/config/projectQuestions/performance_tuning.v1.0.js b/src/config/projectQuestions/performance_tuning.v1.0.js
index eb55808ac..abdd5305b 100644
--- a/src/config/projectQuestions/performance_tuning.v1.0.js
+++ b/src/config/projectQuestions/performance_tuning.v1.0.js
@@ -1,30 +1,10 @@
-import _ from 'lodash'
// import NumberText from '../../components/NumberText/NumberText'
-import { findProduct } from '../projectWizard'
-
-
-const isFileRequired = (project, subSections) => {
- const subSection = _.find(subSections, (s) => s.type === 'questions')
- const fields = _.filter(subSection.questions, q => q.type.indexOf('see-attached') > -1)
- // iterate over all seeAttached type fields to check
- // if any see attached is checked.
- return _.some(_.map(
- _.map(fields, 'fieldName'),
- fn => _.get(project, `${fn}.seeAttached`)
- ))
-}
+import { isFileRequired, findTitle, findFilesSectionTitle } from '../projectWizard'
const sections = [
{
id: 'appDefinition',
- title: (project, showProduct) => {
- const product = _.get(project, 'details.products[0]')
- if (showProduct && product) {
- const prd = findProduct(product)
- if (prd) return prd.name
- }
- return 'Definition'
- },
+ title: findTitle,
required: true,
description: 'Please answer a few basic questions about your project. You can also provide the needed information in a supporting document--add a link in the notes section or upload it below.',
subSections: [
@@ -72,7 +52,7 @@ const sections = [
{
id: 'files',
required: isFileRequired,
- title: (project) => `Project Files (${_.get(project, 'attachments', []).length})` || 'Files',
+ title: findFilesSectionTitle,
description: '',
type: 'files',
fieldName: 'attachments'
diff --git a/src/config/projectQuestions/real_world_testing.v1.0.js b/src/config/projectQuestions/real_world_testing.v1.0.js
index 90d1925ad..dd8e29b08 100644
--- a/src/config/projectQuestions/real_world_testing.v1.0.js
+++ b/src/config/projectQuestions/real_world_testing.v1.0.js
@@ -1,38 +1,17 @@
import React from 'react' // eslint-disable-line no-unused-vars
-import _ from 'lodash'
import IconTechOutlineMobile from '../../assets/icons/icon-tech-outline-mobile.svg'
import IconTechOutlineTablet from '../../assets/icons/icon-tech-outline-tablet.svg'
import IconTechOutlineDesktop from '../../assets/icons/icon-tech-outline-desktop.svg'
import IconTechOutlineWatchApple from '../../assets/icons/icon-tech-outline-watch-apple.svg'
-import { findProduct} from '../projectWizard'
-
import IconDontKnow from '../../assets/icons/icon-dont-know.svg'
import IconTestStructured from '../../assets/icons/icon-test-structured.svg'
import IconTestUnstructured from '../../assets/icons/icon-test-unstructured.svg'
-
-
-const isFileRequired = (project, subSections) => {
- const subSection = _.find(subSections, (s) => s.type === 'questions')
- const fields = _.filter(subSection.questions, q => q.type.indexOf('see-attached') > -1)
- // iterate over all seeAttached type fields to check
- // if any see attached is checked.
- return _.some(_.map(
- _.map(fields, 'fieldName'),
- fn => _.get(project, `${fn}.seeAttached`)
- ))
-}
+import { isFileRequired, findTitle, findFilesSectionTitle } from '../projectWizard'
const sections = [
{
id: 'appDefinition',
- title: (project, showProduct) => {
- const product = _.get(project, 'details.products[0]')
- if (showProduct && product) {
- const prd = findProduct(product)
- if (prd) return prd.name
- }
- return 'Definition'
- },
+ title: findTitle,
required: true,
description: 'Please answer a few basic questions about your project. You can also provide the needed information in a supporting document--add a link in the notes section or upload it below.',
subSections: [
@@ -304,7 +283,7 @@ const sections = [
{
id: 'files',
required: isFileRequired,
- title: (project) => `Project Files (${_.get(project, 'attachments', []).length})` || 'Files',
+ title: findFilesSectionTitle,
description: '',
type: 'files',
fieldName: 'attachments'
diff --git a/src/config/projectQuestions/topcoder.v1.js b/src/config/projectQuestions/topcoder.v1.js
index 250349b8a..b3e77a2c6 100644
--- a/src/config/projectQuestions/topcoder.v1.js
+++ b/src/config/projectQuestions/topcoder.v1.js
@@ -1,21 +1,10 @@
import React from 'react' // eslint-disable-line no-unused-vars
-import _ from 'lodash'
import IconTcSpecTypeSerif from '../../assets/icons/icon-tc-spec-type-serif.svg'
import IconTcSpecTypeSansSerif from '../../assets/icons/icon-tc-spec-type-sans-serif.svg'
import IconTcSpecIconTypeColorHome from '../../assets/icons/icon-tc-spec-icon-type-color-home.svg'
import IconTcSpecIconTypeOutlineHome from '../../assets/icons/icon-tc-spec-icon-type-outline-home.svg'
import IconTcSpecIconTypeGlyphHome from '../../assets/icons/icon-tc-spec-icon-type-glyph-home.svg'
-
-const isFileRequired = (project, subSections) => {
- const subSection = _.find(subSections, (s) => s.type === 'questions')
- const fields = _.filter(subSection.questions, q => q.type.indexOf('see-attached') > -1)
- // iterate over all seeAttached type fields to check
- // if any see attached is checked.
- return _.some(_.map(
- _.map(fields, 'fieldName'),
- fn => _.get(project, `${fn}.seeAttached`)
- ))
-}
+import { isFileRequired } from '../projectWizard'
const sections = [
{
diff --git a/src/config/projectQuestions/visual_design.v1.0.js b/src/config/projectQuestions/visual_design.v1.0.js
index 29d4953a7..9232cebc8 100644
--- a/src/config/projectQuestions/visual_design.v1.0.js
+++ b/src/config/projectQuestions/visual_design.v1.0.js
@@ -1,5 +1,4 @@
import React from 'react' // eslint-disable-line no-unused-vars
-import _ from 'lodash'
import IconTechOutlineMobile from '../../assets/icons/icon-tech-outline-mobile.svg'
import IconTechOutlineTablet from '../../assets/icons/icon-tech-outline-tablet.svg'
import IconTechOutlineDesktop from '../../assets/icons/icon-tech-outline-desktop.svg'
@@ -10,30 +9,12 @@ import IconTcSpecIconTypeColorHome from '../../assets/icons/icon-tc-spec-icon-t
import IconTcSpecIconTypeOutlineHome from '../../assets/icons/icon-tc-spec-icon-type-outline-home.svg'
import IconTcSpecIconTypeGlyphHome from '../../assets/icons/icon-tc-spec-icon-type-glyph-home.svg'
import NumberText from '../../components/NumberText/NumberText'
-import { findProduct} from '../projectWizard'
-
-const isFileRequired = (project, subSections) => {
- const subSection = _.find(subSections, (s) => s.type === 'questions')
- const fields = _.filter(subSection.questions, q => q.type.indexOf('see-attached') > -1)
- // iterate over all seeAttached type fields to check
- // if any see attached is checked.
- return _.some(_.map(
- _.map(fields, 'fieldName'),
- fn => _.get(project, `${fn}.seeAttached`)
- ))
-}
+import { isFileRequired, findTitle, findFilesSectionTitle } from '../projectWizard'
const sections = [
{
id: 'appDefinition',
- title: (project, showProduct) => {
- const product = _.get(project, 'details.products[0]')
- if (showProduct && product) {
- const prd = findProduct(product)
- if (prd) return prd.name
- }
- return 'Definition'
- },
+ title: findTitle,
required: true,
pricePerPage: 1000,
description: 'Please answer a few basic questions about your project. You can also provide the needed information in a supporting document--add a link in the notes section or upload it below.',
@@ -124,7 +105,7 @@ const sections = [
{
id: 'files',
required: isFileRequired,
- title: (project) => `Project Files (${_.get(project, 'attachments', []).length})` || 'Files',
+ title: findFilesSectionTitle,
description: '',
type: 'files',
fieldName: 'attachments'
diff --git a/src/config/projectQuestions/website.v1.0.js b/src/config/projectQuestions/website.v1.0.js
index 5ffdc87d9..9d39fc69a 100644
--- a/src/config/projectQuestions/website.v1.0.js
+++ b/src/config/projectQuestions/website.v1.0.js
@@ -1,5 +1,4 @@
import React from 'react' // eslint-disable-line no-unused-vars
-import _ from 'lodash'
import IconTechOutlineMobile from '../../assets/icons/icon-tech-outline-mobile.svg'
import IconTechOutlineTablet from '../../assets/icons/icon-tech-outline-tablet.svg'
import IconTechOutlineDesktop from '../../assets/icons/icon-tech-outline-desktop.svg'
@@ -9,30 +8,12 @@ import IconTcSpecTypeSansSerif from '../../assets/icons/icon-tc-spec-type-sans-
import IconTcSpecIconTypeColorHome from '../../assets/icons/icon-tc-spec-icon-type-color-home.svg'
import IconTcSpecIconTypeOutlineHome from '../../assets/icons/icon-tc-spec-icon-type-outline-home.svg'
import IconTcSpecIconTypeGlyphHome from '../../assets/icons/icon-tc-spec-icon-type-glyph-home.svg'
-import { findProduct} from '../projectWizard'
-
-const isFileRequired = (project, subSections) => {
- const subSection = _.find(subSections, (s) => s.type === 'questions')
- const fields = _.filter(subSection.questions, q => q.type.indexOf('see-attached') > -1)
- // iterate over all seeAttached type fields to check
- // if any see attached is checked.
- return _.some(_.map(
- _.map(fields, 'fieldName'),
- fn => _.get(project, `${fn}.seeAttached`)
- ))
-}
+import { isFileRequired, findTitle, findFilesSectionTitle } from '../projectWizard'
const sections = [
{
id: 'appDefinition',
- title: (project, showProduct) => {
- const product = _.get(project, 'details.products[0]')
- if (showProduct && product) {
- const prd = findProduct(product)
- if (prd) return prd.name
- }
- return 'Definition'
- },
+ title: findTitle,
required: true,
description: 'Please answer a few basic questions about your project. You can also provide the needed information in a supporting document--add a link in the notes section or upload it below.',
subSections: [
@@ -117,7 +98,7 @@ const sections = [
{
id: 'files',
required: isFileRequired,
- title: (project) => `Project Files (${_.get(project, 'attachments', []).length})` || 'Files',
+ title: findFilesSectionTitle,
description: '',
type: 'files',
fieldName: 'attachments'
diff --git a/src/config/projectQuestions/wireframes.v1.0.js b/src/config/projectQuestions/wireframes.v1.0.js
index 8faf97ff1..f2759477f 100644
--- a/src/config/projectQuestions/wireframes.v1.0.js
+++ b/src/config/projectQuestions/wireframes.v1.0.js
@@ -1,34 +1,15 @@
import React from 'react' // eslint-disable-line no-unused-vars
-import _ from 'lodash'
import IconTechOutlineMobile from '../../assets/icons/icon-tech-outline-mobile.svg'
import IconTechOutlineTablet from '../../assets/icons/icon-tech-outline-tablet.svg'
import IconTechOutlineDesktop from '../../assets/icons/icon-tech-outline-desktop.svg'
import IconTechOutlineWatchApple from '../../assets/icons/icon-tech-outline-watch-apple.svg'
import NumberText from '../../components/NumberText/NumberText'
-import { findProduct} from '../projectWizard'
-
-const isFileRequired = (project, subSections) => {
- const subSection = _.find(subSections, (s) => s.type === 'questions')
- const fields = _.filter(subSection.questions, q => q.type.indexOf('see-attached') > -1)
- // iterate over all seeAttached type fields to check
- // if any see attached is checked.
- return _.some(_.map(
- _.map(fields, 'fieldName'),
- fn => _.get(project, `${fn}.seeAttached`)
- ))
-}
+import { isFileRequired, findTitle, findFilesSectionTitle } from '../projectWizard'
const sections = [
{
id: 'appDefinition',
- title: (project, showProduct) => {
- const product = _.get(project, 'details.products[0]')
- if (showProduct && product) {
- const prd = findProduct(product)
- if (prd) return prd.name
- }
- return 'Definition'
- },
+ title: findTitle,
productName: 'Wireframes',
required: true,
description: 'Please answer a few basic questions about your project. You can also provide the needed information in a supporting document--add a link in the notes section or upload it below.',
@@ -56,9 +37,10 @@ const sections = [
description: 'This is the most popular project size that can get a medium-sized app designed in a breeze',
fieldName: 'details.appDefinition.numberScreens',
type: 'tiled-radio-group',
+ affectsQuickQuote: true,
options: [
- {value: '10', title: 'screens', icon: NumberText, iconOptions: { number: '10' }, desc: '7-10 days', price: 5000},
- {value: '15', title: 'screens', icon: NumberText, iconOptions: { number: '15' }, desc: '10-12 days', price: 7000}
+ {value: '10', title: 'screens', icon: NumberText, iconOptions: { number: '10' }, desc: '7-10 days', quoteUp: 0, minTimeUp : 0, maxTimeUp: 0},
+ {value: '15', title: 'screens', icon: NumberText, iconOptions: { number: '15' }, desc: '10-12 days', quoteUp: 2000, minTimeUp: 3, maxTimeUp: 2}
]
},
{
@@ -117,7 +99,7 @@ const sections = [
{
id: 'files',
required: isFileRequired,
- title: (project) => `Project Files (${_.get(project, 'attachments', []).length})` || 'Files',
+ title: findFilesSectionTitle,
description: '',
type: 'files',
fieldName: 'attachments'
diff --git a/src/config/projectWizard/index.js b/src/config/projectWizard/index.js
index bd7a30774..17f16c11a 100644
--- a/src/config/projectWizard/index.js
+++ b/src/config/projectWizard/index.js
@@ -103,7 +103,10 @@ const products = {
details: 'Plan and explore the navigation and structure of your app',
icon: 'product-design-wireframes',
id: 'wireframes',
- aliases: ['wireframes']
+ aliases: ['wireframes'],
+ basePriceEstimate: 5000,
+ baseTimeEstimateMin: 7,
+ baseTimeEstimateMax: 10
},
'App Visual Design - Concepts': {
brief: '1-15 screens',
@@ -118,7 +121,10 @@ const products = {
details: 'Create development-ready designs',
icon: 'product-design-app-visual',
id: 'visual_design_prod',
- aliases: ['visual-design', 'visual_design_prod']
+ aliases: ['visual-design', 'visual_design_prod'],
+ basePriceEstimate: 5000,
+ baseTimeEstimateMin: 7,
+ baseTimeEstimateMax: 10
},
Infographic: {
brief: 'Infographic',
@@ -133,7 +139,10 @@ const products = {
details: 'Get help with other types of design',
icon: 'product-design-other',
id: 'generic_design',
- aliases: ['generic-design', 'generic_design']
+ aliases: ['generic-design', 'generic_design'],
+ basePriceEstimate: 5000,
+ baseTimeEstimateMin: 7,
+ baseTimeEstimateMax: 10
}
}
},
@@ -441,3 +450,99 @@ export function getProjectCreationTemplateField(product, sectionId, subSectionId
}
return null
}
+
+/**
+ * Helper method to get price and time estimate for the given product.
+ *
+ * @param {string} productId id of the product. It should resolve to a valid product template
+ * @param {object} productConfig project object which contains the current value
+ *
+ * @return {object} object containing price and time estimate
+ */
+export function getProductEstimate(productId, productConfig) {
+ let specification = 'topcoder.v1'
+ let product = null
+ let price = 0
+ let minTime = 0
+ let maxTime = 0
+ if (productId) {
+ specification = typeToSpecification[productId]
+ product = findProduct(productId)
+ price = _.get(product, 'basePriceEstimate', 0)
+ minTime = _.get(product, 'baseTimeEstimateMin', 0)
+ maxTime = _.get(product, 'baseTimeEstimateMax', 0)
+ }
+ const sections = require(`../projectQuestions/${specification}`).default
+ if (sections) {
+ sections.forEach((section) => {
+ const subSections = section.subSections
+ if (subSections) {
+ subSections.forEach((subSection) => {
+ // supporting only questions sub section
+ if (subSection.type === 'questions') {
+ const questions = subSection.questions
+ questions.forEach((q) => {
+ // right now we are supporting only radio-group and tiled-radio-group type of questions
+ if(['radio-group', 'tiled-radio-group'].indexOf(q.type) !== -1 && q.affectsQuickQuote) {
+ const answer = _.get(productConfig, q.fieldName)
+ const qOption = _.find(q.options, (o) => o.value === answer)
+ price += _.get(qOption, 'quoteUp', 0)
+ minTime += _.get(qOption, 'minTimeUp', 0)
+ maxTime += _.get(qOption, 'maxTimeUp', 0)
+ }
+ })
+ }
+ })
+ }
+ })
+ }
+ return { priceEstimate: price, minTime, maxTime, durationEstimate: `${minTime}-${maxTime} days`}
+}
+
+/**
+ * Finds if files are required for project
+ *
+ * @param {object} project project object
+ * @param {object} subSections subSections object
+ *
+ * @return {boolean} true if files required, else false
+ */
+export function isFileRequired(project, subSections) {
+ const subSection = _.find(subSections, (s) => s.type === 'questions')
+ const fields = _.filter(subSection.questions, q => q.type.indexOf('see-attached') > -1)
+ // iterate over all seeAttached type fields to check
+ // if any see attached is checked.
+ return _.some(_.map(
+ _.map(fields, 'fieldName'),
+ fn => _.get(project, `${fn}.seeAttached`)
+ ))
+}
+
+/**
+ * Finds the title for the product
+ *
+ * @param {object} project project object to fetch the product title
+ * @param {boolean} showProduct flag to check whether to show title from config or not
+ *
+ * @return {string} title of the product
+ */
+export function findTitle(project, showProduct) {
+ const product = _.get(project, 'details.products[0]')
+ if (showProduct && product) {
+ const prd = findProduct(product)
+ if (prd) return prd.name
+ }
+ return 'Definition'
+}
+
+/**
+ * Finds the title for the project files section
+ *
+ * @param {object} project project object to fetch the product title
+ *
+ *
+ * @return {string} title for the project files section
+ */
+export function findFilesSectionTitle(project) {
+ return `Project Files (${_.get(project, 'attachments', []).length})` || 'Files'
+}
diff --git a/src/config/store.js b/src/config/store.js
index 649a00a5a..4c0360499 100644
--- a/src/config/store.js
+++ b/src/config/store.js
@@ -15,16 +15,16 @@ const middleware = [
tracker
]
-if (process.env.ENV === 'DEV') {
+if (process.env.NODE_ENV === 'development') {
const createLogger = require('redux-logger')
const logger = createLogger()
middleware.push(logger)
}
const store = createStore(reducers, compose(
- applyMiddleware(...middleware),
- window.devToolsExtension ? window.devToolsExtension() : f => f
- )
+ applyMiddleware(...middleware),
+ window.devToolsExtension ? window.devToolsExtension() : f => f
+)
)
export default store
diff --git a/src/helpers/index.js b/src/helpers/index.js
index 23bf75592..10c4828e8 100644
--- a/src/helpers/index.js
+++ b/src/helpers/index.js
@@ -1,30 +1,9 @@
import _ from 'lodash'
-import fetch from 'isomorphic-fetch'
import tcEmitter from './emitter'
export const TCEmitter = tcEmitter
export const titleCase = (str) => _.startCase(_.camelCase(str))
-
-// Fetch helpers
-export function status(response) {
- if (response.status >= 200 && response.status < 400) {
- return Promise.resolve(response)
- } else {
- return Promise.reject(new Error(response.statusText))
- }
-}
-
-export function json(response) {
- return response.json()
-}
-
-export function fetchJSON(url, options) {
- return fetch(url, options)
- .then(status)
- .then(json)
-}
-
// Subtrack Abbreviations
export function getSubtrackAbbreviation(subtrack) {
const subtrackAbbreviations = {
diff --git a/src/helpers/markdownToState.js b/src/helpers/markdownToState.js
index 6cf0a82f7..ed550d77a 100644
--- a/src/helpers/markdownToState.js
+++ b/src/helpers/markdownToState.js
@@ -65,19 +65,19 @@ const DefaultBlockTypes = {
// meethod that returns the draftjs key + any data needed.
const DefaultBlockEntities = {
link_open: (item) => { //eslint-disable-line
-
+
if (item.title && item.title.startsWith('@')){
return {
type: 'mention',
mutability: 'MUTABLE',
data: {
mention: new Map([
- ['name', item.title.slice(1)],
- ['link', item.href]
+ ['name', item.title.slice(1)],
+ ['link', item.href]
])
}
}
- }
+ }
return {
type: 'LINK',
@@ -265,4 +265,4 @@ function markdownToState(markdown, options = {}) {
})
}
-module.exports = markdownToState
+export default markdownToState
diff --git a/src/index.jsx b/src/index.jsx
index 6a2b28a92..2ba5bca5a 100644
--- a/src/index.jsx
+++ b/src/index.jsx
@@ -1,4 +1,3 @@
-import 'babel-polyfill'
import _ from 'lodash'
import React from 'react'
import { render } from 'react-dom'
diff --git a/src/projects/ProjectLayout.jsx b/src/projects/ProjectLayout.jsx
index 9bef72401..837b58713 100644
--- a/src/projects/ProjectLayout.jsx
+++ b/src/projects/ProjectLayout.jsx
@@ -11,8 +11,7 @@ class ProjectViewLayout extends Component {
const { main } = this.props
return (
)
diff --git a/src/projects/ProjectLayout.scss b/src/projects/ProjectLayout.scss
index 55a0331b5..38af8440e 100644
--- a/src/projects/ProjectLayout.scss
+++ b/src/projects/ProjectLayout.scss
@@ -1,7 +1,10 @@
// this is to include tc styles in the output library
@import '~tc-ui/src/styles/tc-includes';
-.main-pane {
- width: 100%;
- margin: 0px 20px 20px 20px;
+:global {
+ .main-pane {
+ width: 100%;
+ margin: 0px 20px 20px 20px;
+ }
}
+
\ No newline at end of file
diff --git a/src/projects/actions/loadProjects.js b/src/projects/actions/loadProjects.js
index 3adab5169..f99203a55 100644
--- a/src/projects/actions/loadProjects.js
+++ b/src/projects/actions/loadProjects.js
@@ -49,24 +49,24 @@ const getProjectsWithMembers = (dispatch, getState, criteria, pageNum) => {
keepPrevious : pageNum !== 1
}
})
- .then(({ value, action }) => {
- let userIds = []
- _.forEach(value.projects, project => {
- userIds = _.union(userIds, _.map(project.members, 'userId'))
- userIds = _.union(userIds, [project.createdBy])
- userIds = _.union(userIds, [project.updatedBy])
+ .then(({ value, action }) => {
+ let userIds = []
+ _.forEach(value.projects, project => {
+ userIds = _.union(userIds, _.map(project.members, 'userId'))
+ userIds = _.union(userIds, [project.createdBy])
+ userIds = _.union(userIds, [project.updatedBy])
+ })
+ // this is to remove any nulls from the list (dev had some bad data)
+ _.remove(userIds, i => !i)
+ // return if there are no userIds to retrieve, empty result set
+ if (!userIds.length)
+ resolve(true)
+ return dispatch(loadMembers(userIds))
+ .then(() => resolve(true))
+ .catch(err => reject(err))
})
- // this is to remove any nulls from the list (dev had some bad data)
- _.remove(userIds, i => !i)
- // return if there are no userIds to retrieve, empty result set
- if (!userIds.length)
- resolve(true)
- return dispatch(loadMembers(userIds))
- .then(() => resolve(true))
- .catch(err => reject(err))
- })
- .catch(err => reject(err))
+ .catch(err => reject(err))
})
}
/*eslint-enable*/
diff --git a/src/projects/actions/projectDashboard.js b/src/projects/actions/projectDashboard.js
index 54a6b6052..a393ce316 100644
--- a/src/projects/actions/projectDashboard.js
+++ b/src/projects/actions/projectDashboard.js
@@ -8,7 +8,7 @@ import { LOAD_PROJECT_DASHBOARD, LOAD_ADDITIONAL_PROJECT_DATA } from '../../conf
* @param {integer} projectId project identifier
*/
- /*eslint-disable no-unused-vars */
+/*eslint-disable no-unused-vars */
const getDashboardData = (dispatch, projectId) => {
return new Promise((resolve, reject) => {
return dispatch(loadProject(projectId))
diff --git a/src/projects/actions/projectMember.js b/src/projects/actions/projectMember.js
index be94891fa..ea1c9625c 100644
--- a/src/projects/actions/projectMember.js
+++ b/src/projects/actions/projectMember.js
@@ -6,7 +6,7 @@ import { addProjectMember as addMember,
import { loadMembers } from '../../actions/members'
import {ADD_PROJECT_MEMBER, REMOVE_PROJECT_MEMBER, UPDATE_PROJECT_MEMBER,
- LOAD_MEMBER_SUGGESTIONS
+ LOAD_MEMBER_SUGGESTIONS
} from '../../config/constants'
diff --git a/src/projects/actions/projectTopics.js b/src/projects/actions/projectTopics.js
index 565616fe7..8368c64ca 100644
--- a/src/projects/actions/projectTopics.js
+++ b/src/projects/actions/projectTopics.js
@@ -85,22 +85,22 @@ const getProjectTopicsWithMember = (dispatch, projectId, tag) => {
payload: getTopicsWithComments(projectId, tag),
meta: { tag, projectId }
})
- .then(({ value, action }) => {
- let userIds = []
- userIds = _.union(userIds, _.map(value.topics, 'userId'))
- _.forEach(value.topics, topic => {
- userIds = _.union(userIds, _.map(topic.posts, 'userId'))
+ .then(({ value, action }) => {
+ let userIds = []
+ userIds = _.union(userIds, _.map(value.topics, 'userId'))
+ _.forEach(value.topics, topic => {
+ userIds = _.union(userIds, _.map(topic.posts, 'userId'))
+ })
+ // this is to remove any nulls from the list (dev had some bad data)
+ _.remove(userIds, i => !i || [DISCOURSE_BOT_USERID, CODER_BOT_USERID].indexOf(i) > -1)
+ // return if there are no userIds to retrieve, empty result set
+ if (!userIds.length)
+ resolve(value)
+ return dispatch(loadMembers(userIds))
+ .then(() => resolve(value))
+ .catch(err => reject(err))
})
- // this is to remove any nulls from the list (dev had some bad data)
- _.remove(userIds, i => !i || [DISCOURSE_BOT_USERID, CODER_BOT_USERID].indexOf(i) > -1)
- // return if there are no userIds to retrieve, empty result set
- if (!userIds.length)
- resolve(value)
- return dispatch(loadMembers(userIds))
- .then(() => resolve(value))
- .catch(err => reject(err))
- })
- .catch(err => reject(err))
+ .catch(err => reject(err))
})
}
/*eslint-enable*/
diff --git a/src/projects/actions/sortProjects.js b/src/projects/actions/sortProjects.js
new file mode 100644
index 000000000..ae2412f6c
--- /dev/null
+++ b/src/projects/actions/sortProjects.js
@@ -0,0 +1,18 @@
+import _ from 'lodash'
+import { PROJECT_SORT } from '../../config/constants'
+
+export function sortProjects(criteria) {
+ return (dispatch, getState) => {
+ const fieldName = _.split(criteria, ' ')[0]
+ const order = _.split(criteria, ' ')[1] || 'asc'
+ const state = getState()
+ const oldProjects = state.projectSearch.projects
+ const oldCriteria = state.projectSearch.criteria
+
+ return dispatch({
+ type: PROJECT_SORT,
+ payload: { projects: _.orderBy(oldProjects, [fieldName], [order]), criteria: _.assign(oldCriteria, { sort: criteria }) }
+ })
+ }
+}
+
diff --git a/src/projects/create/components/FillProjectDetails.js b/src/projects/create/components/FillProjectDetails.js
index 91a5451c5..7de58745d 100644
--- a/src/projects/create/components/FillProjectDetails.js
+++ b/src/projects/create/components/FillProjectDetails.js
@@ -26,11 +26,11 @@ class FillProjectDetails extends Component {
shouldComponentUpdate(nextProps, nextState) {
return !(
- _.isEqual(nextProps.project, this.props.project)
+ _.isEqual(nextProps.project, this.props.project)
&& _.isEqual(nextState.project, this.state.project)
&& _.isEqual(nextProps.dirtyProject, this.props.dirtyProject)
&& _.isEqual(nextProps.error, this.props.error)
- )
+ )
}
createMarkup(product) {
@@ -45,14 +45,13 @@ class FillProjectDetails extends Component {
let specification = 'topcoder.v1'
if (productId)
specification = typeToSpecification[productId]
- let sections = require(`../../../config/projectQuestions/${specification}`).basicSections
+ const sections = require(`../../../config/projectQuestions/${specification}`).basicSections
return (
-
-
+
-
+
diff --git a/src/projects/create/components/FillProjectDetails.scss b/src/projects/create/components/FillProjectDetails.scss
index 4457a3513..729a2562d 100644
--- a/src/projects/create/components/FillProjectDetails.scss
+++ b/src/projects/create/components/FillProjectDetails.scss
@@ -1,113 +1,116 @@
// Project form styles
@import 'layout';
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.FillProjectDetailsWrapper {
- // @extend .wizardWrapper;
-}
-
-.headerFillProjectDetails {
- @extend .wizardHeader;
-}
-
-.FillProjectDetails {
- h1 {
- @extend .wizardHeadline;
+:global {
+ .FillProjectDetailsWrapper {
+ // @extend .wizardWrapper;
}
-
- .two-col-content {
- padding: 0 !important;
- min-width: $minimumPageWidth;
-
- &.content{
- .container {
- @include flexBox;
- align-self: flex-start;
- background-color: none;
- display: flex;
- padding: 0;
- max-width: 1110px;
- margin: 0 auto;
-
- /* .left-area */
- .left-area {
- flex: auto;
- width: auto;
- position: relative;
-
- .left-area-content {
- border-radius: 4px;
- background: $tc-white;
- box-shadow: 0px 1px 3px 0px $tc-gray-30;
- padding: 50px;
-
- .title {
- color: $tc-gray-80;
- @include roboto-bold;
- }
-
- .section-footer {
- margin-top: $base_unit * 4;
- margin-bottom: 0;
- background: none;
- height: 40px;
+
+ .headerFillProjectDetails {
+ @extend .wizardHeader;
+ }
+
+ .FillProjectDetails {
+ h1 {
+ @extend .wizardHeadline;
+ }
+
+ .two-col-content {
+ padding: 0 !important;
+ min-width: $minimumPageWidth;
+
+ &.content{
+ .container {
+ @include flexBox;
+ align-self: flex-start;
+ background-color: none;
+ display: flex;
+ padding: 0;
+ max-width: 1110px;
+ margin: 0 auto;
+
+ /* .left-area */
+ .left-area {
+ flex: auto;
+ width: auto;
+ position: relative;
+
+ .left-area-content {
+ border-radius: 4px;
+ background: $tc-white;
+ box-shadow: 0px 1px 3px 0px $tc-gray-30;
+ padding: 50px;
+
+ .title {
+ color: $tc-gray-80;
+ @include roboto-bold;
+ }
+
+ .section-footer {
+ margin-top: $base_unit * 4;
+ margin-bottom: 0;
+ background: none;
+ height: 40px;
+ }
}
- }
-
- .left-area-footer {
- @include tc-label-sm;
- color: $tc-gray-50;
- margin-top: 4 * $base_unit;
-
- span {
- clear: both;
- float: none;
+
+ .left-area-footer {
+ @include tc-label-sm;
+ color: $tc-gray-50;
+ margin-top: 4 * $base_unit;
+
+ span {
+ clear: both;
+ float: none;
+ }
}
}
- }
-
- .right-area {
- flex: auto !important;
- width: 320px;
- min-width: 320px;
- max-width: 320px;
- margin-left: 4 * $base_unit;
-
- .right-area-footer {
- @include roboto;
- padding: 10px 0 0 0;
- font-size: 13px;
- line-height: 20px;
- color: $tc-gray-50;
- font-style: italic;
-
- span {
- float: right;
+
+ .right-area {
+ flex: auto !important;
+ width: 320px;
+ min-width: 320px;
+ max-width: 320px;
+ margin-left: 4 * $base_unit;
+
+ .right-area-footer {
+ @include roboto;
+ padding: 10px 0 0 0;
+ font-size: 13px;
+ line-height: 20px;
+ color: $tc-gray-50;
+ font-style: italic;
+
+ span {
+ float: right;
+ }
}
}
}
}
}
}
-}
-
-.ProjectWizard {
- .FillProjectDetails {
- .left-area-content .title span,
- .section-header .section-number {
- display: none;
+
+ .ProjectWizard {
+ .FillProjectDetails {
+ .left-area-content .title span,
+ .section-header .section-number {
+ display: none;
+ }
+
+ .gray-text {
+ @include roboto;
+ font-size: 15px;
+ color: $tc-gray-50;
+ line-height: 25px;
+ }
}
-
- .gray-text {
- @include roboto;
- font-size: 15px;
- color: $tc-gray-50;
- line-height: 25px;
+
+ .spec-question-list-item .content-col > h5 span {
+ display: none;
}
}
-
- .spec-question-list-item .content-col > h5 span {
- display: none;
- }
-}
\ No newline at end of file
+}
+
\ No newline at end of file
diff --git a/src/projects/create/components/IncompleteProjectConfirmation.scss b/src/projects/create/components/IncompleteProjectConfirmation.scss
index 20750db1a..927b60041 100644
--- a/src/projects/create/components/IncompleteProjectConfirmation.scss
+++ b/src/projects/create/components/IncompleteProjectConfirmation.scss
@@ -1,55 +1,58 @@
// Incomplete page styles
@import 'layout';
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.IncompleteProjectConfirmation {
- width: 100%;
- display: flex;
- flex-direction: column;
- align-items: center;
-
- .header {
- @extend .wizardHeader;
+:global {
+ .IncompleteProjectConfirmation {
width: 100%;
- }
-
- h3 {
- @include roboto-light;
- margin-top: 8 * $base_unit;
- margin-bottom: 12 * $base_unit;
- color: $tc-black;
- line-height: 40px;
- font-size: 36px;
- }
-
- h5 {
- @include roboto-medium;
- margin-bottom: 4 * $base_unit;
- color: $tc-gray-80;
- line-height: 30px;
- font-size: 20px;
- }
-
- p {
- @include roboto;
- margin-bottom: 10 * $base_unit;
- color: $tc-gray-60;
- line-height: 25px;
- font-size: 15px;
- }
-
- .actions {
- button {
- display: block;
- margin: 0 auto;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+
+ .header {
+ @extend .wizardHeader;
+ width: 100%;
}
-
- button + button {
- margin-top: 4 * $base_unit;
+
+ h3 {
+ @include roboto-light;
+ margin-top: 8 * $base_unit;
+ margin-bottom: 12 * $base_unit;
+ color: $tc-black;
+ line-height: 40px;
+ font-size: 36px;
+ }
+
+ h5 {
+ @include roboto-medium;
+ margin-bottom: 4 * $base_unit;
+ color: $tc-gray-80;
+ line-height: 30px;
+ font-size: 20px;
+ }
+
+ p {
+ @include roboto;
+ margin-bottom: 10 * $base_unit;
+ color: $tc-gray-60;
+ line-height: 25px;
+ font-size: 15px;
}
+
+ .actions {
+ button {
+ display: block;
+ margin: 0 auto;
+ }
+
+ button + button {
+ margin-top: 4 * $base_unit;
+ }
+ }
+ }
+
+ .Footer {
+ position: relative;
}
}
-
-.Footer {
- position: relative;
-}
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/projects/create/components/ProductCard.scss b/src/projects/create/components/ProductCard.scss
index a526bc564..97f734a79 100644
--- a/src/projects/create/components/ProductCard.scss
+++ b/src/projects/create/components/ProductCard.scss
@@ -1,84 +1,87 @@
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-@mixin transition {
- transition: 150ms ease-in-out all;
-}
-
-.ProductCard {
- width: 185px;
- height: 185px;
- margin: 10px 8px;
- background: $tc-white;
- border-radius: 4px;
- padding: 30px 15px 20px;
- text-align: center;
- box-shadow: 0 0 0 1px $tc-gray-20;
- @include transition;
-
- .Icon {
- display: flex;
- flex-direction: column;
- align-items: center;
- margin: 0 auto 20px;
- width: 32px;
- height: 32px;
+:global {
+ @mixin transition {
+ transition: 150ms ease-in-out all;
}
-
- h3 {
- @include tc-heading;
- @include roboto-bold;
- font-size: 15px;
- line-height: 20px;
- color: $tc-gray-80;
- margin-bottom: 5px;
- margin-top: 0px;
- @include transition;
- }
-
- .details {
- margin: 0;
- color: $tc-gray-50;
- line-height: 20px;
- font-family: 'Roboto', Helvetica, Arial, sans-serif;
- font-weight: 400;
- font-size: 13px;
- letter-spacing: -0.4px;
+
+ .ProductCard {
+ width: 185px;
+ height: 185px;
+ margin: 10px 8px;
+ background: $tc-white;
+ border-radius: 4px;
+ padding: 30px 15px 20px;
+ text-align: center;
+ box-shadow: 0 0 0 1px $tc-gray-20;
@include transition;
- }
-
- .icon-wrapper {
- svg {
- fill: $tc-gray-70;
+
+ .Icon {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ margin: 0 auto 20px;
+ width: 32px;
+ height: 32px;
}
-
- &:hover {
+
+ h3 {
+ @include tc-heading;
+ @include roboto-bold;
+ font-size: 15px;
+ line-height: 20px;
+ color: $tc-gray-80;
+ margin-bottom: 5px;
+ margin-top: 0px;
+ @include transition;
+ }
+
+ .details {
+ margin: 0;
+ color: $tc-gray-50;
+ line-height: 20px;
+ font-family: 'Roboto', Helvetica, Arial, sans-serif;
+ font-weight: 400;
+ font-size: 13px;
+ letter-spacing: -0.4px;
+ @include transition;
+ }
+
+ .icon-wrapper {
svg {
- fill: $tc-dark-blue;
+ fill: $tc-gray-70;
+ }
+
+ &:hover {
+ svg {
+ fill: $tc-dark-blue;
+ }
}
}
- }
-
- .list-cards {
- user-select: none;
- }
-
- &:not(.active):hover {
- box-shadow: 0 0 0 1px $tc-dark-blue-70;
- background-color: $tc-dark-blue-10;
- cursor: pointer;
-
- h3 {
- color: $tc-black;
+
+ .list-cards {
+ user-select: none;
}
-
- p {
- color: $tc-gray-80;
+
+ &:not(.active):hover {
+ box-shadow: 0 0 0 1px $tc-dark-blue-70;
+ background-color: $tc-dark-blue-10;
+ cursor: pointer;
+
+ h3 {
+ color: $tc-black;
+ }
+
+ p {
+ color: $tc-gray-80;
+ }
+ }
+
+ &:active,
+ &.active {
+ background-color: $tc-dark-blue-30;
+ box-shadow: 0 0 0 1px $tc-dark-blue-70;
}
- }
-
- &:active,
- &.active {
- background-color: $tc-dark-blue-30;
- box-shadow: 0 0 0 1px $tc-dark-blue-70;
}
}
+
\ No newline at end of file
diff --git a/src/projects/create/components/ProjectBasicDetailsForm.js b/src/projects/create/components/ProjectBasicDetailsForm.js
index 687f13c1b..d2460bf46 100644
--- a/src/projects/create/components/ProjectBasicDetailsForm.js
+++ b/src/projects/create/components/ProjectBasicDetailsForm.js
@@ -1,7 +1,8 @@
import _ from 'lodash'
import React, { Component } from 'react'
import PropTypes from 'prop-types'
-import { Formsy } from 'appirio-tech-react-components'
+import FormsyForm from 'appirio-tech-react-components/components/Formsy'
+const Formsy = FormsyForm.Formsy
import './ProjectBasicDetailsForm.scss'
import SpecSection from '../../detail/components/SpecSection'
@@ -18,12 +19,12 @@ class ProjectBasicDetailsForm extends Component {
shouldComponentUpdate(nextProps, nextState) {
return !(
- _.isEqual(nextProps.project, this.props.project)
+ _.isEqual(nextProps.project, this.props.project)
&& _.isEqual(nextState.project, this.state.project)
&& _.isEqual(nextState.canSubmit, this.state.canSubmit)
&& _.isEqual(nextProps.sections, this.props.sections)
&& _.isEqual(nextState.isSaving, this.state.isSaving)
- )
+ )
}
componentWillMount() {
diff --git a/src/projects/create/components/ProjectBasicDetailsForm.scss b/src/projects/create/components/ProjectBasicDetailsForm.scss
index 36e044f40..9a64c4f41 100644
--- a/src/projects/create/components/ProjectBasicDetailsForm.scss
+++ b/src/projects/create/components/ProjectBasicDetailsForm.scss
@@ -1,7 +1,10 @@
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.ProjectBasicDetailsForm {
- .sections {
- margin-bottom: 20px;
+:global {
+ .ProjectBasicDetailsForm {
+ .sections {
+ margin-bottom: 20px;
+ }
}
-}
\ No newline at end of file
+}
+
\ No newline at end of file
diff --git a/src/projects/create/components/ProjectOutline.js b/src/projects/create/components/ProjectOutline.js
index 74c9963a1..dc6ee5b84 100644
--- a/src/projects/create/components/ProjectOutline.js
+++ b/src/projects/create/components/ProjectOutline.js
@@ -9,17 +9,17 @@ import './ProjectOutline.scss'
function ProjectOutline({ project }) {
const product = _.get(project, 'details.products[0]')
const projectTypeId = _.get(project, 'type')
- if (!projectTypeId || !product) return
+ if (!projectTypeId || !product) return
const projectType = _.findKey(config, {id : projectTypeId})
const subConfig = config[projectType]
const productName = _.findKey(subConfig.subtypes, {id : product})
const projectsWithEstimate = ['Wireframes', 'Visual Design', 'Front-end Prototype']
const projectEstimate = (projectsWithEstimate.indexOf(productName)<0) ? (null) : (
-
- )
+
+ )
return (
Project Outline
diff --git a/src/projects/create/components/ProjectOutline.scss b/src/projects/create/components/ProjectOutline.scss
index ca4464e10..30d277715 100644
--- a/src/projects/create/components/ProjectOutline.scss
+++ b/src/projects/create/components/ProjectOutline.scss
@@ -1,54 +1,57 @@
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.ProjectOutline {
- display: flex;
- flex-direction: column;
- background-color: $tc-white;
- box-shadow: 0px 1px 3px 0px $tc-gray-30;
- padding: 5*$base-unit;
- border-radius: 4px;
-
- h5 {
- width: 100%;
- margin-bottom: $base-unit * 4;
- font-size: 12px;
- color: $tc-gray-50;
- text-transform: uppercase;
- }
-
- .project-product {
- color: $tc-gray-50;
- @include roboto;
- margin-bottom: $base-unit * 4;
- display: none;
- }
-
- .project-description {
- color: $tc-gray-80;
- @include tc-label-md;
- }
-
- .project-meta-data {
- margin-top: $base-unit * 4;
- .project-meta-data-row {
- display: flex;
- .visual-design-project-estimate-section {
- margin-left: 0;
- margin-right: 0;
- }
- .project-meta-data-label {
- flex: 1;
- color: $tc-gray-50;
-
- @include tc-label-md;
- @include roboto-bold;
- }
-
- .project-meta-data-value {
- flex: 3;
- @include tc-label-md;
- @include roboto-bold;
+:global {
+ .ProjectOutline {
+ display: flex;
+ flex-direction: column;
+ background-color: $tc-white;
+ box-shadow: 0px 1px 3px 0px $tc-gray-30;
+ padding: 5*$base-unit;
+ border-radius: 4px;
+
+ h5 {
+ width: 100%;
+ margin-bottom: $base-unit * 4;
+ font-size: 12px;
+ color: $tc-gray-50;
+ text-transform: uppercase;
+ }
+
+ .project-product {
+ color: $tc-gray-50;
+ @include roboto;
+ margin-bottom: $base-unit * 4;
+ display: none;
+ }
+
+ .project-description {
+ color: $tc-gray-80;
+ @include tc-label-md;
+ }
+
+ .project-meta-data {
+ margin-top: $base-unit * 4;
+ .project-meta-data-row {
+ display: flex;
+ .visual-design-project-estimate-section {
+ margin-left: 0;
+ margin-right: 0;
+ }
+ .project-meta-data-label {
+ flex: 1;
+ color: $tc-gray-50;
+
+ @include tc-label-md;
+ @include roboto-bold;
+ }
+
+ .project-meta-data-value {
+ flex: 3;
+ @include tc-label-md;
+ @include roboto-bold;
+ }
}
}
}
}
+
\ No newline at end of file
diff --git a/src/projects/create/components/ProjectTypeCard.scss b/src/projects/create/components/ProjectTypeCard.scss
index c9361354a..60554e33b 100644
--- a/src/projects/create/components/ProjectTypeCard.scss
+++ b/src/projects/create/components/ProjectTypeCard.scss
@@ -1,108 +1,111 @@
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.ProjectTypeCard {
- /*border: 1px solid $tc-gray-20;*/
- border-radius: 4px;
- display: flex;
- flex-direction: column;
- align-items: center;
- height: 260px;
- width: 230px;
- margin: 10px 10px 0;
- position: relative;
- vertical-align: top;
- transition: 300ms all ease;
- -moz-transition: 300ms all ease;
- -webkit-transition: 300ms all ease;
-
- .sub-type-details {
- padding: 0 20px;
- font-size: 13px;
- color: $tc-gray-50;
- line-height: 20px;
- width: 100%;
- }
-
- .header {
- @include tc-body;
- @include roboto-bold;
- color: $tc-gray-80;
- line-height: 20px;
- margin-bottom: 10px;
- margin-top: 0px;
- }
-
- .icon-wrapper {
- height: 32px;
+:global {
+ .ProjectTypeCard {
+ /*border: 1px solid $tc-gray-20;*/
+ border-radius: 4px;
display: flex;
- margin: 6 * $base_unit 0 4 * $base_unit;
-
- .Icon {
- /* TODO .Icon is svg, so style to svg is never applied, probably we should remove it */
- svg {
- fill: $tc-gray-70;
+ flex-direction: column;
+ align-items: center;
+ height: 260px;
+ width: 230px;
+ margin: 10px 10px 0;
+ position: relative;
+ vertical-align: top;
+ transition: 300ms all ease;
+ -moz-transition: 300ms all ease;
+ -webkit-transition: 300ms all ease;
+
+ .sub-type-details {
+ padding: 0 20px;
+ font-size: 13px;
+ color: $tc-gray-50;
+ line-height: 20px;
+ width: 100%;
+ }
+
+ .header {
+ @include tc-body;
+ @include roboto-bold;
+ color: $tc-gray-80;
+ line-height: 20px;
+ margin-bottom: 10px;
+ margin-top: 0px;
+ }
+
+ .icon-wrapper {
+ height: 32px;
+ display: flex;
+ margin: 6 * $base_unit 0 4 * $base_unit;
+
+ .Icon {
+ /* TODO .Icon is svg, so style to svg is never applied, probably we should remove it */
+ svg {
+ fill: $tc-gray-70;
+ }
}
}
- }
-
- &.disabled {
- opacity: 0.3;
- }
-
- &.enabled:hover {
- border-color: $tc-dark-blue-70;
- cursor: pointer;
-
- .button {
- background: $tc-dark-blue;
- border-color: transparent;
- color: $tc-white;
+
+ &.disabled {
+ opacity: 0.3;
}
-
- svg {
- fill: $tc-dark-blue;
+
+ &.enabled:hover {
+ border-color: $tc-dark-blue-70;
+ cursor: pointer;
+
+ .button {
+ background: $tc-dark-blue;
+ border-color: transparent;
+ color: $tc-white;
+ }
+
+ svg {
+ fill: $tc-dark-blue;
+ }
}
- }
-
- &.selected {
- background: $tc-gray-10;
- border-color: transparent;
-
- &:hover {
+
+ &.selected {
+ background: $tc-gray-10;
border-color: transparent;
+
+ &:hover {
+ border-color: transparent;
+ }
}
- }
-
- .tc-btn {
- margin-top: 2 * $base_unit;
- }
-
- .tc-btn {
- position: absolute;
- bottom: 30px;
- left: 50%;
- transform: translateX(-50%);
- opacity: 0;
- }
-
- &:hover {
- transition: 300ms all ease;
- -moz-transition: 300ms all ease;
- -webkit-transition: 300ms all ease;
- position: relative;
- background: $tc-white;
- box-shadow: 0 2px 9px 0 rgba($tc-gray-90, 0.1);
-
- h1 {
- color: $tc-dark-blue;
+
+ .tc-btn {
+ margin-top: 2 * $base_unit;
}
-
+
.tc-btn {
- opacity: 1;
+ position: absolute;
+ bottom: 30px;
+ left: 50%;
+ transform: translateX(-50%);
+ opacity: 0;
+ }
+
+ &:hover {
+ transition: 300ms all ease;
+ -moz-transition: 300ms all ease;
+ -webkit-transition: 300ms all ease;
+ position: relative;
+ background: $tc-white;
+ box-shadow: 0 2px 9px 0 rgba($tc-gray-90, 0.1);
+
+ h1 {
+ color: $tc-dark-blue;
+ }
+
+ .tc-btn {
+ opacity: 1;
+ }
+ }
+
+ &:active {
+ background: $tc-dark-blue-10;
}
}
-
- &:active {
- background: $tc-dark-blue-10;
- }
-}
\ No newline at end of file
+}
+
\ No newline at end of file
diff --git a/src/projects/create/components/ProjectWizard.scss b/src/projects/create/components/ProjectWizard.scss
index e308439de..2face905a 100644
--- a/src/projects/create/components/ProjectWizard.scss
+++ b/src/projects/create/components/ProjectWizard.scss
@@ -1,20 +1,23 @@
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.ProjectWizard {
- .content {
- background: transparent;
- box-shadow: none;
- width: 100%;
- display: block;
- margin: 0px;
- padding-top: 0px;//to align the wizard header to the bottom of logo
-
- .ProductCard {
- background: $tc-white;
-
- &.selected {
- background: $tc-gray-10;
+:global {
+ .ProjectWizard {
+ .content {
+ background: transparent;
+ box-shadow: none;
+ width: 100%;
+ display: block;
+ margin: 0px;
+ padding-top: 0px;//to align the wizard header to the bottom of logo
+
+ .ProductCard {
+ background: $tc-white;
+
+ &.selected {
+ background: $tc-gray-10;
+ }
}
}
}
-}
\ No newline at end of file
+}
+
\ No newline at end of file
diff --git a/src/projects/create/components/SelectProduct.js b/src/projects/create/components/SelectProduct.js
index 0c32e53ea..5bd3eb31b 100644
--- a/src/projects/create/components/SelectProduct.js
+++ b/src/projects/create/components/SelectProduct.js
@@ -142,8 +142,7 @@ function SelectProduct(props) {
const projectCategory = findCategory(props.projectType)
return (
-
-
+
{ projectCategory.name } projects
{ projectCategory.question }
diff --git a/src/projects/create/components/SelectProduct.scss b/src/projects/create/components/SelectProduct.scss
index de4242443..c7d7606f3 100644
--- a/src/projects/create/components/SelectProduct.scss
+++ b/src/projects/create/components/SelectProduct.scss
@@ -1,48 +1,51 @@
// Product category page
@import 'layout';
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.headerSelectProduct {
- @extend .wizardHeader;
-}
-
-.SelectProduct {
- @extend .wizardCardContainer;
-
- h1 {
- @extend .wizardHeadline;
-
- + h2 {
- font-size: 15px;
- line-height: 20px;
- @include tc-heading;
- @include roboto-bold;
- color: $tc-gray-80;
- margin-bottom: 13px;
- margin-top: 0px;
- }
+:global {
+ .headerSelectProduct {
+ @extend .wizardHeader;
}
-
- .header {
- display: block;
- }
-}
-
-@media screen and (max-width: 1100px) {
+
.SelectProduct {
- max-width: 750px;
+ @extend .wizardCardContainer;
+
+ h1 {
+ @extend .wizardHeadline;
+
+ + h2 {
+ font-size: 15px;
+ line-height: 20px;
+ @include tc-heading;
+ @include roboto-bold;
+ color: $tc-gray-80;
+ margin-bottom: 13px;
+ margin-top: 0px;
+ }
+ }
+
+ .header {
+ display: block;
+ }
}
-}
-
-@media screen and (max-width: 850px) {
- .SelectProduct {
- max-width: 500px;
+
+ @media screen and (max-width: 1100px) {
+ .SelectProduct {
+ max-width: 750px;
+ }
}
-}
-
-@media screen and (max-width: 500px) {
- .SelectProduct {
- max-width: 250px;
+
+ @media screen and (max-width: 850px) {
+ .SelectProduct {
+ max-width: 500px;
+ }
+ }
+
+ @media screen and (max-width: 500px) {
+ .SelectProduct {
+ max-width: 250px;
+ }
}
}
+
\ No newline at end of file
diff --git a/src/projects/create/components/SelectProjectType.scss b/src/projects/create/components/SelectProjectType.scss
index 7be276773..27f892cc9 100644
--- a/src/projects/create/components/SelectProjectType.scss
+++ b/src/projects/create/components/SelectProjectType.scss
@@ -1,21 +1,24 @@
// Project wizard main page
@import 'layout';
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.ProjectWizard {
- @extend .wizardWrapper;
-}
-
-.headerSelectProjectType {
- @extend .wizardHeader;
-}
-
-.SelectProjectType {
- @extend .wizardCardContainer;
-
- h1 {
- @extend .wizardHeadline;
- margin-bottom: 30px;
+:global {
+ .ProjectWizard {
+ @extend .wizardWrapper;
+ }
+
+ .headerSelectProjectType {
+ @extend .wizardHeader;
}
-}
\ No newline at end of file
+
+ .SelectProjectType {
+ @extend .wizardCardContainer;
+
+ h1 {
+ @extend .wizardHeadline;
+ margin-bottom: 30px;
+ }
+ }
+}
+
\ No newline at end of file
diff --git a/src/projects/create/components/WizardHeader.scss b/src/projects/create/components/WizardHeader.scss
index 0b30f652f..23eed1553 100644
--- a/src/projects/create/components/WizardHeader.scss
+++ b/src/projects/create/components/WizardHeader.scss
@@ -1,31 +1,34 @@
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.WizardHeader {
- min-width: 700px;
- text-align: center;
- h1 {
- @include tc-heading;
- color: $tc-gray-50;
- margin-bottom: 20px;
- }
- .project-name {
- display: inline-block;
- margin: 0 5px;
- vertical-align: top;
- max-width: 500px;
- }
- .project-ref-code-wrapper {
- @include roboto;
- color: $tc-gray-50;
- display: inline-block;
- font-size: 12px;
- font-style: italic;
- margin: 0 5px;
- text-align: left;
- width: 90px;
- }
+:global {
+ .WizardHeader {
+ min-width: 700px;
+ text-align: center;
+ h1 {
+ @include tc-heading;
+ color: $tc-gray-50;
+ margin-bottom: 20px;
+ }
+ .project-name {
+ display: inline-block;
+ margin: 0 5px;
+ vertical-align: top;
+ max-width: 500px;
+ }
+ .project-ref-code-wrapper {
+ @include roboto;
+ color: $tc-gray-50;
+ display: inline-block;
+ font-size: 12px;
+ font-style: italic;
+ margin: 0 5px;
+ text-align: left;
+ width: 90px;
+ }
- input::-ms-clear{
- display:none;
+ input::-ms-clear{
+ display:none;
+ }
}
}
+
\ No newline at end of file
diff --git a/src/projects/create/components/_layout.scss b/src/projects/create/components/_layout.scss
index 6f43b6afb..3178fd75b 100644
--- a/src/projects/create/components/_layout.scss
+++ b/src/projects/create/components/_layout.scss
@@ -1,7 +1,4 @@
-@import 'tc-includes';
-
@mixin flexBox {
- display: box;
display: flex;
flex-direction: row;
width: auto;
@@ -10,106 +7,111 @@
// Stop the page from shrinking, modify the variable;
$minimumPageWidth: 984px;
-.wizardWrapper {
- min-height: 100vh;
- background-color: $tc-gray-neutral-light;
- margin-top: -60px; // Counteract the push from the main wrapper, top of vewport
- min-width: $minimumPageWidth;
- // FIXME: This is hack to stop the div of growing
- border-top: 1px solid $tc-gray-neutral-light;
- // end hack;
- overflow-x: scroll;
-}
-
-.ReactModalPortal .wizardWrapper {
- margin-top: 0;
-}
-
-.wizardHeader {
- display: flex;
- justify-content: space-between;
- margin: 20px 0 0;
- height: 43px;
-
- button {
- align-self: flex-start;
- white-space: nowrap;
-
- .Icon {
- vertical-align: middle;
- margin-right: 10px;
- }
- }
-}
-
-.wizardHeadline {
- @include tc-heading;
- width: 100%;
- text-align: center;
- margin: 0 0 50px;
- @include roboto-light;
- font-size: 36px;
- color: $tc-black;
- line-height: 40px;
-}
-
-.ReactModalPortal .header > h1:first-child {
- margin-top: 40px;
-}
-
-.wizardCardContainer {
- @include tc-body;
- color: $tc-gray-50;
- text-align: center;
- max-width: 1000px;
- position: relative;
- min-height: calc(100vh - 130px);
- margin: 0 auto;
- padding-bottom: 90px;
-
- a,
- a:visited,
- a:hover,
- a:active {
- color: $tc-dark-blue;
- cursor: pointer;
+@import '~tc-ui/src/styles/tc-includes';
+
+:global {
+ .wizardWrapper {
+ min-height: 100vh;
+ background-color: $tc-gray-neutral-light;
+ margin-top: -60px; // Counteract the push from the main wrapper, top of vewport
+ min-width: $minimumPageWidth;
+ // FIXME: This is hack to stop the div of growing
+ border-top: 1px solid $tc-gray-neutral-light;
+ // end hack;
+ overflow-x: scroll;
}
-
- a:hover {
- text-decoration: underline;
+
+ .ReactModalPortal .wizardWrapper {
+ margin-top: 0;
}
-
- .cards {
- // margin-top: 50px;
+
+ .wizardHeader {
display: flex;
- justify-content: center;
- flex-flow: row wrap;
+ justify-content: space-between;
+ margin: 20px 0 0;
+ height: 43px;
+
+ button {
+ align-self: flex-start;
+ white-space: nowrap;
+
+ .Icon {
+ vertical-align: middle;
+ margin-right: 10px;
+ }
+ }
}
-
- .ProjectTypeCard:nth-child(1) {
- margin-left: 40px;
+
+ .wizardHeadline {
+ @include tc-heading;
+ width: 100%;
+ text-align: center;
+ margin: 0 0 50px;
+ @include roboto-light;
+ font-size: 36px;
+ color: $tc-black;
+ line-height: 40px;
}
-
- .ProjectTypeCard:nth-child(3) {
- margin-right: 40px;
+
+ .ReactModalPortal .header > h1:first-child {
+ margin-top: 40px;
}
-
- .footer {
- position: absolute;
- bottom: 0;
- left: 0;
- right: 0;
- margin-bottom: 15px;
- margin-top: 50px;
+
+ .wizardCardContainer {
+ @include tc-body;
+ color: $tc-gray-50;
+ text-align: center;
+ max-width: 1000px;
+ position: relative;
+ min-height: calc(100vh - 130px);
+ margin: 0 auto;
+ padding-bottom: 90px;
+
+ a,
+ a:visited,
+ a:hover,
+ a:active {
+ color: $tc-dark-blue;
+ cursor: pointer;
+ }
+
+ a:hover {
+ text-decoration: underline;
+ }
+
+ .cards {
+ // margin-top: 50px;
+ display: flex;
+ justify-content: center;
+ flex-flow: row wrap;
+ }
+
+ .ProjectTypeCard:nth-child(1) {
+ margin-left: 40px;
+ }
+
+ .ProjectTypeCard:nth-child(3) {
+ margin-right: 40px;
+ }
+
+ .footer {
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ margin-bottom: 15px;
+ margin-top: 50px;
+ }
+ }
+
+ sup {
+ font-size: 0.5em;
+ vertical-align: text-top;
+ }
+
+ sub {
+ font-size: 0.5em;
+ vertical-align: text-bottom;
}
}
-
-sup {
- font-size: 0.5em;
- vertical-align: text-top;
-}
-
-sub {
- font-size: 0.5em;
- vertical-align: text-bottom;
-}
+
\ No newline at end of file
diff --git a/src/projects/create/containers/CreateContainer.jsx b/src/projects/create/containers/CreateContainer.jsx
index e6c11a1f2..c39c29c53 100644
--- a/src/projects/create/containers/CreateContainer.jsx
+++ b/src/projects/create/containers/CreateContainer.jsx
@@ -166,8 +166,12 @@ class CreateConainer extends React.Component {
const gaClientId = Cookies.get(GA_CLIENT_ID)
if(gaClientId || gaClickId) {
const googleAnalytics = {}
- googleAnalytics[GA_CLICK_ID] = gaClickId
- googleAnalytics[GA_CLIENT_ID] = gaClientId
+ if (gaClickId !== 'null') {
+ googleAnalytics[GA_CLICK_ID] = gaClickId
+ }
+ if (gaClientId !== 'null') {
+ googleAnalytics[GA_CLIENT_ID] = gaClientId
+ }
_.set(project, 'details.utm.google', googleAnalytics)
}
this.props.createProjectAction(project, PROJECT_STATUS_IN_REVIEW)
@@ -242,7 +246,7 @@ class CreateConainer extends React.Component {
// const projectType = _.get(this.state.updatedProject, 'type', null)
const prevProduct = _.get(this.state.updatedProject, 'details.products[0]', null)
const product = _.get(updatedProject, 'details.products[0]', null)
- // compares updated product with previous product to know if user has updated the product
+ // compares updated product with previous product to know if user has updated the product
if (prevProduct !== product) {
if (product) {
// intentionally commented because now it should not be require as we handling all URL changes in onStepChange
diff --git a/src/projects/detail/Dashboard.scss b/src/projects/detail/Dashboard.scss
index 74b53431a..70e5b0828 100644
--- a/src/projects/detail/Dashboard.scss
+++ b/src/projects/detail/Dashboard.scss
@@ -1,111 +1,114 @@
-@import "tc-includes";
-// FIXME
-@mixin flexBox {
- display: flex;
- flex-direction: row;
-}
-// FIXME
-@mixin flexWidth($number) {
- -webkit-box-flex: $number;
- -moz-box-flex: $number;
- -webkit-flex: $number;
- -ms-flex: $number;
- flex: $number;
-}
+@import '~tc-ui/src/styles/tc-includes';
-// FIXME
-.dashboard-container {
- @include flexBox;
- max-width: 1110px;
- margin: 20px auto;
- padding: 0 20px;
-
- .left-area {
- @include flexWidth(1);
- max-width: 360px;
-
- .dashboard-left-panel {
- padding-bottom: 2 * $base-unit;
- .form-group {
- .tc-label {
- font-size: 12px;
- color: $tc-gray-50;
- text-transform: capitalize;
- }
- input {
- background-color: $tc-white;
- border-color: $tc-gray-20;
- }
- }
- .panel:first-child {
- border-radius: 4px 4px 0 0;
- }
- .panel + .panel {
- box-shadow: 0px 3px 3px 0px $tc-gray-30;
- border-radius: 0;
- }
+:global {
+ // FIXME
+ @mixin flexBox {
+ display: flex;
+ flex-direction: row;
+ }
+ // FIXME
+ @mixin flexWidth($number) {
+ -webkit-box-flex: $number;
+ -moz-box-flex: $number;
+ -webkit-flex: $number;
+ -ms-flex: $number;
+ flex: $number;
+ }
- .team-management .panel {
- box-shadow: 0px 3px 3px 0px $tc-gray-30;
- border-radius: 0 0 4px 4px;
- }
- }
+ .sideAreaWrapper {
+ border: 1px solid $tc-gray-20;
+ border-radius: 4px;
+ overflow: hidden;
}
- .right-area {
- @include flexWidth(2);
- margin-left: 4 * $base-unit;
- max-width: 730px;//1110px - 360px - 20px(margin-left)
- .new-post-composer {
- margin-bottom: 4 * $base-unit;
- background-color: $tc-white;
+ .dashboard-container {
+ @include flexBox;
+ max-width: 1110px;
+ margin: 20px auto;
+ padding: 0 20px;
- .btn-close {
- display: none;
- }
-
- .modal-row {
- padding-bottom: 0px;
+ .left-area {
+ @include flexWidth(1);
+ max-width: 360px;
- &:hover {
- background-color: inherit;
- }
+ .dashboard-left-panel {
+ padding-bottom: 2 * $base-unit;
- .new-post-title {
- font-size: 20px;
+ .form-group {
+ .tc-label {
+ font-size: 12px;
+ color: $tc-gray-50;
+ text-transform: capitalize;
+ }
+
+ input {
+ background-color: $tc-white;
+ border-color: $tc-gray-20;
+ }
}
- }
- input {
- margin-bottom: 0px;
+ .panel + .panel {
+ border-radius: 0;
+ }
}
+ }
- .draftjs-editor {
- display: none;
- }
+ .right-area {
+ @include flexWidth(2);
+ margin-left: 4 * $base-unit;
+ max-width: 730px;//1110px - 360px - 20px(margin-left)
- &.expanded {
+ .new-post-composer {
+ margin-bottom: 10px;
+ background-color: $tc-white;
.btn-close {
- display: block;
+ display: none;
+ }
+
+ .modal-row {
+ padding-bottom: 0px;
+
+ &:hover {
+ background-color: inherit;
+ }
+
+ .new-post-title {
+ font-size: 20px;
+ }
}
input {
- margin-bottom: 2 * $base-unit;
+ margin-bottom: 0px;
}
.draftjs-editor {
- display: block;
+ display: none;
}
- }
- &.expanded.modal {
- background-color: $tc-gray-neutral-light;
+ &.expanded {
+ .btn-close {
+ display: block;
+ }
+
+ input {
+ margin-bottom: 2 * $base-unit;
+ }
+
+ .draftjs-editor {
+ display: block;
+ }
+ }
+
+ &.expanded.modal {
+ background-color: $tc-gray-neutral-light;
+ }
}
- }
- .feed-action-card + .feed-action-card {
- margin-top: 4 * $base-unit;
+ .feed-action-card + .feed-action-card {
+ margin-top: 10px;
+ }
}
}
}
+
\ No newline at end of file
diff --git a/src/projects/detail/Messages.scss b/src/projects/detail/Messages.scss
index 201dcdfa4..31c44b2ab 100644
--- a/src/projects/detail/Messages.scss
+++ b/src/projects/detail/Messages.scss
@@ -1,55 +1,58 @@
-@import "tc-includes";
-// FIXME
-@mixin flexBox {
- display: flex;
- flex-direction: row;
-}
-// FIXME
-@mixin flexWidth($number) {
- -webkit-box-flex: $number;
- -moz-box-flex: $number;
- -webkit-flex: $number;
- -ms-flex: $number;
- flex: $number;
-}
-
-// FIXME
-.messages-container {
- @include flexBox;
- max-width: 1110px;
- margin: 20px auto;
- height: calc(100% - 80px);// 20px is for bottom margin, 60px for footer
-
- .left-area {
- @include flexWidth(1);
- max-width: 360px;
- z-index: 14;/* Don't know the exact reason, but it needs explicit z-index to get behind the topbar*/
- transform: translate3d(0px, 0px, 0px);
+@import '~tc-ui/src/styles/tc-includes';
+:global {
+ // FIXME
+ @mixin flexBox {
+ display: flex;
+ flex-direction: row;
+ }
+ // FIXME
+ @mixin flexWidth($number) {
+ -webkit-box-flex: $number;
+ -moz-box-flex: $number;
+ -webkit-flex: $number;
+ -ms-flex: $number;
+ flex: $number;
}
- .right-area {
- @include flexWidth(2);
- margin-left: 4 * $base-unit;
- overflow-y: auto;
-
- .messaging-empty-state {
- margin-bottom: 4 * $base-unit;
+
+ // FIXME
+ .messages-container {
+ @include flexBox;
+ max-width: 1110px;
+ margin: 20px auto;
+ height: calc(100% - 80px);// 20px is for bottom margin, 60px for footer
+
+ .left-area {
+ @include flexWidth(1);
+ max-width: 360px;
+ z-index: 14;/* Don't know the exact reason, but it needs explicit z-index to get behind the topbar*/
+ transform: translate3d(0px, 0px, 0px);
}
-
- .new-post-composer {
- margin-bottom: 4 * $base-unit;
- background-color: $tc-white;
-
- .modal-row:hover {
+ .right-area {
+ @include flexWidth(2);
+ margin-left: 4 * $base-unit;
+ overflow-y: auto;
+
+ .messaging-empty-state {
+ margin-bottom: 4 * $base-unit;
+ }
+
+ .new-post-composer {
+ margin-bottom: 4 * $base-unit;
background-color: $tc-white;
+
+ .modal-row:hover {
+ background-color: $tc-white;
+ }
+
+ .btn-close {
+ display: none;
+ }
}
-
- .btn-close {
- display: none;
+
+ .feed-action-card + .feed-action-card {
+ margin-top: 4 * $base-unit;
}
}
-
- .feed-action-card + .feed-action-card {
- margin-top: 4 * $base-unit;
- }
}
}
+
\ No newline at end of file
diff --git a/src/projects/detail/ProjectDetail.scss b/src/projects/detail/ProjectDetail.scss
index 2b04ace5e..18710a6b1 100644
--- a/src/projects/detail/ProjectDetail.scss
+++ b/src/projects/detail/ProjectDetail.scss
@@ -1,75 +1,73 @@
@import '~tc-ui/src/styles/tc-includes';
-// FIXME: bad names for variables;
-$gray-color: $tc-gray-50;
-$title-color: $tc-gray-80;
-// FIXME: repeated mixin use! Use global
-@mixin flexBox {
- display: box;
- display: -webkit-box;
- display: -moz-box;
- display: -ms-flexbox;
- display: -webkit-flex;
- display: flex;
- -webkit-box-orient: horizontal;
- -webkit-flex-direction: row;
- -moz-flex-direction: row;
- -ms-flex-direction: row;
- -o-flex-direction: row;
- flex-direction: row;
- width: auto;
-}
-// FIXME: repeated mixin use!
-@mixin flexWidth($number) {
- -webkit-box-flex: $number;
- -moz-box-flex: $number;
- -webkit-flex: $number;
- -ms-flex: $number;
- flex: $number;
-}
-.project-detail {
-.container {
- @include flexBox;
- background-color: transparent;
- /* .left-area */
- .left-area {
- @include flexWidth(1);
- .left-area-panel {
- min-width: 400px;
- margin-right: 20px;
- margin-left: 20px;
- margin-bottom: 20px;
- background-color: $tc-white;
- padding: 20px 0;
- border-radius: 4px;
- // min-width: 100px;
- }
+:global {
+ // FIXME: bad names for variables;
+ $gray-color: $tc-gray-50;
+ $title-color: $tc-gray-80;
+ // FIXME: repeated mixin use! Use global
+ @mixin flexBox {
+ display: flex;
+ -webkit-box-orient: horizontal;
+ -webkit-flex-direction: row;
+ -moz-flex-direction: row;
+ -ms-flex-direction: row;
+ -o-flex-direction: row;
+ flex-direction: row;
+ width: auto;
+ }
+ // FIXME: repeated mixin use!
+ @mixin flexWidth($number) {
+ -webkit-box-flex: $number;
+ -moz-box-flex: $number;
+ -webkit-flex: $number;
+ -ms-flex: $number;
+ flex: $number;
}
- // FIXME: overly nexted code
- .right-area {
- @include flexWidth(2);
- border-radius: 4px;
- .title {
- color: $title-color;
- @include roboto;
+ .project-detail {
+ .container {
+ @include flexBox;
+ background-color: transparent;
+ /* .left-area */
+ .left-area {
+ @include flexWidth(1);
+ .left-area-panel {
+ min-width: 400px;
+ margin-right: 20px;
+ margin-left: 20px;
+ margin-bottom: 20px;
+ background-color: $tc-white;
+ padding: 20px 0;
+ border-radius: 4px;
+ // min-width: 100px;
+ }
}
- .right-area-item {
- overflow: hidden;
- padding: 50px 0 20px 0;
- margin-bottom: $base-unit;
+ // FIXME: overly nexted code
+ .right-area {
+ @include flexWidth(2);
border-radius: 4px;
- background-color: $tc-white;
- .boxes {
- margin: 0 15%;
+ .title {
+ color: $title-color;
+ @include roboto;
}
- .big-titles {
- @include roboto-light;
- font-size: 28px;
- color: $gray-color;
- line-height: 30px;
- margin-bottom: 20px;
+ .right-area-item {
+ overflow: hidden;
+ padding: 50px 0 20px 0;
+ margin-bottom: $base-unit;
+ border-radius: 4px;
+ background-color: $tc-white;
+ .boxes {
+ margin: 0 15%;
+ }
+ .big-titles {
+ @include roboto-light;
+ font-size: 28px;
+ color: $gray-color;
+ line-height: 30px;
+ margin-bottom: 20px;
+ }
}
}
}
+ }
}
-}
+
\ No newline at end of file
diff --git a/src/projects/detail/components/EditAppScreenForm.jsx b/src/projects/detail/components/EditAppScreenForm.jsx
index c040af97b..d7da67362 100644
--- a/src/projects/detail/components/EditAppScreenForm.jsx
+++ b/src/projects/detail/components/EditAppScreenForm.jsx
@@ -1,6 +1,7 @@
import React, { Component } from 'react'
import PropTypes from 'prop-types'
-import { Formsy } from 'appirio-tech-react-components'
+import FormsyForm from 'appirio-tech-react-components/components/Formsy'
+const Formsy = FormsyForm.Formsy
import SpecScreenQuestions from './SpecScreenQuestions'
class EditAppScreenForm extends Component {
@@ -50,8 +51,8 @@ class EditAppScreenForm extends Component {
}
render() {
- let { questions } = this.props
- let { screen } = this.state
+ const { questions } = this.props
+ const { screen } = this.state
return (
)
diff --git a/src/projects/detail/components/EditProjectForm.jsx b/src/projects/detail/components/EditProjectForm.jsx
index 5a9145a7a..885c0529d 100644
--- a/src/projects/detail/components/EditProjectForm.jsx
+++ b/src/projects/detail/components/EditProjectForm.jsx
@@ -6,7 +6,8 @@ import _ from 'lodash'
import { unflatten } from 'flat'
import update from 'react-addons-update'
import FeaturePicker from './FeatureSelector/FeaturePicker'
-import { Formsy } from 'appirio-tech-react-components'
+import FormsyForm from 'appirio-tech-react-components/components/Formsy'
+const Formsy = FormsyForm.Formsy
import XMarkIcon from '../../../assets/icons/icon-x-mark.svg'
import SpecSection from './SpecSection'
import { HOC as hoc } from 'formsy-react'
diff --git a/src/projects/detail/components/FeatureSelector/CustomFeatureForm.jsx b/src/projects/detail/components/FeatureSelector/CustomFeatureForm.jsx
index aee10db2b..60dd1c6f4 100644
--- a/src/projects/detail/components/FeatureSelector/CustomFeatureForm.jsx
+++ b/src/projects/detail/components/FeatureSelector/CustomFeatureForm.jsx
@@ -4,7 +4,10 @@ import _ from 'lodash'
import cn from 'classnames'
import Panel from '../../../../components/Panel/Panel'
import DeleteFeatureModal from './DeleteFeatureModal'
-import { Formsy, TCFormFields, SwitchButton } from 'appirio-tech-react-components'
+import FormsyForm from 'appirio-tech-react-components/components/Formsy'
+const TCFormFields = FormsyForm.Fields
+const Formsy = FormsyForm.Formsy
+import SwitchButton from 'appirio-tech-react-components/components/SwitchButton/SwitchButton'
import IconUIPencil from '../../../../assets/icons/icon-ui-pencil.svg'
import IconUITrashSimple from '../../../../assets/icons/icon-ui-trash-simple.svg'
@@ -101,8 +104,8 @@ class CustomFeatureForm extends Component {
{ (isAdded && !editMode) &&
{ _.get(data, 'title', 'Define a new feature')}
-
- { isAdded &&
+
+ { isAdded &&
- }
-
-
-
-
+ }
+
+
+
+
}
diff --git a/src/projects/detail/components/FeatureSelector/DefaultFeatureForm.jsx b/src/projects/detail/components/FeatureSelector/DefaultFeatureForm.jsx
index 34d226756..7c8f90272 100644
--- a/src/projects/detail/components/FeatureSelector/DefaultFeatureForm.jsx
+++ b/src/projects/detail/components/FeatureSelector/DefaultFeatureForm.jsx
@@ -1,7 +1,10 @@
import React, { Component } from 'react'
import PropTypes from 'prop-types'
import _ from 'lodash'
-import { Formsy, TCFormFields, SwitchButton } from 'appirio-tech-react-components'
+import FormsyForm from 'appirio-tech-react-components/components/Formsy'
+const TCFormFields = FormsyForm.Fields
+const Formsy = FormsyForm.Formsy
+import SwitchButton from 'appirio-tech-react-components/components/SwitchButton/SwitchButton'
require('./FeatureForm.scss')
@@ -84,7 +87,7 @@ class DefaultFeatureForm extends Component {
value={featureData.notes}
/>
- :
+ :
}
diff --git a/src/projects/detail/components/FeatureSelector/FeatureForm.jsx b/src/projects/detail/components/FeatureSelector/FeatureForm.jsx
index aa532dcf3..8111633d9 100644
--- a/src/projects/detail/components/FeatureSelector/FeatureForm.jsx
+++ b/src/projects/detail/components/FeatureSelector/FeatureForm.jsx
@@ -1,6 +1,8 @@
import classNames from 'classnames'
import React, { Component} from 'react'
-import { Formsy, TCFormFields } from 'appirio-tech-react-components'
+import FormsyForm from 'appirio-tech-react-components/components/Formsy'
+const TCFormFields = FormsyForm.Fields
+const Formsy = FormsyForm.Formsy
require('./FeatureForm.scss')
@@ -136,4 +138,4 @@ class FeatureForm extends Component {
}
}
-export default FeatureForm
\ No newline at end of file
+export default FeatureForm
diff --git a/src/projects/detail/components/FeatureSelector/FeatureForm.scss b/src/projects/detail/components/FeatureSelector/FeatureForm.scss
index 507dddc40..94e37d989 100644
--- a/src/projects/detail/components/FeatureSelector/FeatureForm.scss
+++ b/src/projects/detail/components/FeatureSelector/FeatureForm.scss
@@ -1,148 +1,151 @@
-@import 'tc-includes';
-
-.feature-form {
- padding: 10 * $base-unit;
- border: none;
- box-shadow: none;
-
- &.modal-active {
- position: inherit;
-
- .modal-overlay {
- background-color: $tc-gray-neutral-dark;
- }
- }
-
- .feature-title-row {
- display: flex;
- justify-content: space-between;
- margin-bottom: 4 * $base-unit;
- padding-bottom: 2 * $base-unit;
- border-bottom: 1px solid $tc-gray-10;
-
- .title {
- @include tc-heading;
- @include roboto-medium;
- flex: 1;
- color: $tc-black;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- }
-
- .separator {
- width: 1px;
- height: 25px;
- background-color: $tc-gray-10;
- margin: 0px 2 * $base-unit;
+@import '~tc-ui/src/styles/tc-includes';
+
+:global {
+ .feature-form {
+ padding: 10 * $base-unit;
+ border: none;
+ box-shadow: none;
+
+ &.modal-active {
+ position: inherit;
+
+ .modal-overlay {
+ background-color: $tc-gray-neutral-dark;
+ }
}
-
- .feature-actions {
+
+ .feature-title-row {
display: flex;
- align-items: center;
-
- .feature-edit-action {
- margin-right: 2 * $base-unit;
- fill: $tc-gray-40;
- height: 16px;
+ justify-content: space-between;
+ margin-bottom: 4 * $base-unit;
+ padding-bottom: 2 * $base-unit;
+ border-bottom: 1px solid $tc-gray-10;
+
+ .title {
+ @include tc-heading;
+ @include roboto-medium;
+ flex: 1;
+ color: $tc-black;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
}
-
- .feature-delete-action {
- fill: $tc-gray-40;
- height: 16px;
+
+ .separator {
+ width: 1px;
+ height: 25px;
+ background-color: $tc-gray-10;
+ margin: 0px 2 * $base-unit;
}
- }
- }
-
- .feature-form-content {
- .feature-description {
- @include roboto;
- font-size: $tc-body-md;
- line-height: 5 * $base-unit;
- font-weight: 400;
- color: $tc-gray-50;
- margin: 4 * $base-unit 0px;
- }
-
- .predefined-feature-form,
- .custom-feature-form {
- .feature-notes {
- label {
- @include tc-label-md;
- color: $tc-gray-70;
+
+ .feature-actions {
+ display: flex;
+ align-items: center;
+
+ .feature-edit-action {
+ margin-right: 2 * $base-unit;
+ fill: $tc-gray-40;
+ height: 16px;
}
-
- textarea {
- height: 100px;
- overflow: auto;
- @include tc-label-lg;
- color: $tc-black;
+
+ .feature-delete-action {
+ fill: $tc-gray-40;
+ height: 16px;
}
}
}
-
- .custom-feature-form {
+
+ .feature-form-content {
.feature-description {
- label {
- @include tc-label-md;
- color: $tc-gray-70;
+ @include roboto;
+ font-size: $tc-body-md;
+ line-height: 5 * $base-unit;
+ font-weight: 400;
+ color: $tc-gray-50;
+ margin: 4 * $base-unit 0px;
+ }
+
+ .predefined-feature-form,
+ .custom-feature-form {
+ .feature-notes {
+ label {
+ @include tc-label-md;
+ color: $tc-gray-70;
+ }
+
+ textarea {
+ height: 100px;
+ overflow: auto;
+ @include tc-label-lg;
+ color: $tc-black;
+ }
}
-
- textarea {
- height: 100px;
- @include tc-label-lg;
- color: $tc-black;
+ }
+
+ .custom-feature-form {
+ .feature-description {
+ label {
+ @include tc-label-md;
+ color: $tc-gray-70;
+ }
+
+ textarea {
+ height: 100px;
+ @include tc-label-lg;
+ color: $tc-black;
+ }
}
}
- }
-
- .feature-form-actions {
- display: flex;
- justify-content: center;
-
- button + button {
- margin-left: 4 * $base-unit;
+
+ .feature-form-actions {
+ display: flex;
+ justify-content: center;
+
+ button + button {
+ margin-left: 4 * $base-unit;
+ }
}
}
- }
-
- .delete-feature-modal {
- position: absolute;
- left: 50%;
- top: 50%;
- transform: translate(-50%, -50%);
- z-index: 21;/* +1 of the z-index of the topbar */
-
- .button-area {
- button + button {
- margin-left: 2 * $base-unit;
+
+ .delete-feature-modal {
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ transform: translate(-50%, -50%);
+ z-index: 21;/* +1 of the z-index of the topbar */
+
+ .button-area {
+ button + button {
+ margin-left: 2 * $base-unit;
+ }
}
}
- }
-
- .description {
- textarea {
- margin-top: 64px;
- height: 150px;
- }
- }
-
- // Switch button extensions
- .SwitchButton {
- & > * {
- cursor: pointer;
- }
-
- .label {
- transition: color 200ms ease-in-out;
- -moz-user-select: none;
- -webkit-user-select: none;
- -ms-user-select: none;
- user-select: none;
+
+ .description {
+ textarea {
+ margin-top: 64px;
+ height: 150px;
+ }
}
-
- &:hover .label {
- color: $tc-black;
+
+ // Switch button extensions
+ .SwitchButton {
+ & > * {
+ cursor: pointer;
+ }
+
+ .label {
+ transition: color 200ms ease-in-out;
+ -moz-user-select: none;
+ -webkit-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ }
+
+ &:hover .label {
+ color: $tc-black;
+ }
}
}
}
+
\ No newline at end of file
diff --git a/src/projects/detail/components/FeatureSelector/FeaturePicker.jsx b/src/projects/detail/components/FeatureSelector/FeaturePicker.jsx
index ef9bcce68..2bac5827a 100644
--- a/src/projects/detail/components/FeatureSelector/FeaturePicker.jsx
+++ b/src/projects/detail/components/FeatureSelector/FeaturePicker.jsx
@@ -343,8 +343,8 @@ class FeaturePicker extends Component {
)
}
- const defaultFeatureForm = selectedFeatureId
- ? (
)
- : (
-
Select and define features for your app
-
Select from the most popular features, listed on the left, or define your own custom features.
-
)
+ />
+ ) : (
+
+
Select and define features for your app
+
Select from the most popular features, listed on the left, or define your own custom features.
+
+ )
return (
@@ -377,8 +379,9 @@ class FeaturePicker extends Component {
- { showCutsomFeatureForm
- ? ( )
- : defaultFeatureForm
+ />
+ ) : defaultFeatureForm
}
diff --git a/src/projects/detail/components/FeatureSelector/FeaturePicker.scss b/src/projects/detail/components/FeatureSelector/FeaturePicker.scss
index e79246ebe..bd2c14417 100644
--- a/src/projects/detail/components/FeatureSelector/FeaturePicker.scss
+++ b/src/projects/detail/components/FeatureSelector/FeaturePicker.scss
@@ -1,122 +1,125 @@
-@import 'tc-includes';
-$card-max-width: 180px;
-// Used to calculate the available height for the left-side column
-$header-height: 60px;
-$footer-height: 0;
-
-button {
- &.clean {
- background-color: transparent;
- border-radius: 0;
- border: none;
- padding: 0;
- margin: 0;
- font-size: inherit;
- font: inherit;
- line-height: inherit;
- font-weight: inherit;
- text-transform: inherit;
- }
-
- &:active,
- &:focus {
- outline: none;
- }
-}
-
-.define-features {
- background-color: $tc-white;
- text-align: left;
- height: 100%;
-
- .close {
- background-color: initial;
- }
-
- > h2 {
- font-size: $tc-heading-md;
- background-color: $tc-gray-neutral-light;
- color: $tc-black;
- padding: 3 * $base_unit;
- height: $header-height;
- // border-bottom: 1px solid $tc-gray-10;
-
- .selected-feature-count {
- color: $tc-gray-30;
+@import '~tc-ui/src/styles/tc-includes';
+:global {
+ $card-max-width: 180px;
+ // Used to calculate the available height for the left-side column
+ $header-height: 60px;
+ $footer-height: 0;
+
+ button {
+ &.clean {
+ background-color: transparent;
+ border-radius: 0;
+ border: none;
+ padding: 0;
+ margin: 0;
+ font-size: inherit;
+ font: inherit;
+ line-height: inherit;
+ font-weight: inherit;
+ text-transform: inherit;
+ }
+
+ &:active,
+ &:focus {
+ outline: none;
}
}
-
- h5 {
- color: $tc-black;
- }
-
- > main {
- width: 100%;
- border-top: 1px solid $tc-gray-20;
+
+ .define-features {
+ background-color: $tc-white;
+ text-align: left;
height: 100%;
-
- .features {
- min-width: 320px;
- width: 320px;
- max-width: 320px;
- background-color: $tc-gray-10;
- border-right: 1px solid $tc-gray-20;
- position: relative;
- // Main container, scroll according to the content displayed inside.
- overflow-y: scroll;
- height: calc(100% - #{$header-height});
-
- .feature-categories-list {
- width: 100%;
- padding: 4 * $base-unit 0;
-
- .add-custom-feature {
- text-align: center;
- margin-top: 2 * $base-unit;
- border-top: 1px solid $tc-gray-30;
- padding-top: 2 * $base-unit;
-
- .custom-feature-btn-desc {
- @include roboto;
- @include tc-label-md;
- color: $tc-gray-50;
- padding: 2 * $base-unit 4 * $base-unit;
- }
-
- button {
- margin: 4 * $base-unit 0px;
+
+ .close {
+ background-color: initial;
+ }
+
+ > h2 {
+ font-size: $tc-heading-md;
+ background-color: $tc-gray-neutral-light;
+ color: $tc-black;
+ padding: 3 * $base_unit;
+ height: $header-height;
+ // border-bottom: 1px solid $tc-gray-10;
+
+ .selected-feature-count {
+ color: $tc-gray-30;
+ }
+ }
+
+ h5 {
+ color: $tc-black;
+ }
+
+ > main {
+ width: 100%;
+ border-top: 1px solid $tc-gray-20;
+ height: 100%;
+
+ .features {
+ min-width: 320px;
+ width: 320px;
+ max-width: 320px;
+ background-color: $tc-gray-10;
+ border-right: 1px solid $tc-gray-20;
+ position: relative;
+ // Main container, scroll according to the content displayed inside.
+ overflow-y: scroll;
+ height: calc(100% - #{$header-height});
+
+ .feature-categories-list {
+ width: 100%;
+ padding: 4 * $base-unit 0;
+
+ .add-custom-feature {
+ text-align: center;
+ margin-top: 2 * $base-unit;
+ border-top: 1px solid $tc-gray-30;
+ padding-top: 2 * $base-unit;
+
+ .custom-feature-btn-desc {
+ @include roboto;
+ @include tc-label-md;
+ color: $tc-gray-50;
+ padding: 2 * $base-unit 4 * $base-unit;
+ }
+
+ button {
+ margin: 4 * $base-unit 0px;
+ }
}
}
+
+ .features-overlay {
+ background-color: $tc-gray-neutral-dark;
+ position: absolute;
+ top: 0;
+ left: 0;
+ opacity: 0.3;
+ width: 100%;
+ height: 100%;
+ }
}
-
- .features-overlay {
- background-color: $tc-gray-neutral-dark;
- position: absolute;
- top: 0;
- left: 0;
- opacity: 0.3;
+
+ .features-content {
+ max-width: 660px;
width: 100%;
- height: 100%;
- }
- }
-
- .features-content {
- max-width: 660px;
- width: 100%;
- position: relative;
- }
-
- .feature-form-instructions {
- padding: 8 * $base-unit;
-
- h3 {
- @include tc-heading;
+ position: relative;
}
-
- p {
- @include tc-label-md;
- color: $tc-gray-50;
+
+ .feature-form-instructions {
+ padding: 8 * $base-unit;
+
+ h3 {
+ @include tc-heading;
+ }
+
+ p {
+ @include tc-label-md;
+ color: $tc-gray-50;
+ }
}
}
}
-}
\ No newline at end of file
+}
+
\ No newline at end of file
diff --git a/src/projects/detail/components/FeatureSelector/FeaturePreview.scss b/src/projects/detail/components/FeatureSelector/FeaturePreview.scss
index 1659cb4d9..425970df6 100644
--- a/src/projects/detail/components/FeatureSelector/FeaturePreview.scss
+++ b/src/projects/detail/components/FeatureSelector/FeaturePreview.scss
@@ -1,28 +1,31 @@
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.feature-preview {
- text-align: center;
- // padding: (8 * $base-unit) (12 * $base-unit) ;
- // background: url('p') no-repeat;
- background-color: $tc-gray-neutral-light;
- background-position: 50% 22px;
- padding: 8 * $base-unit;
- border-left: 1px solid $tc-dark-blue-30;
- min-width: 260px;
- display: block;
- position: relative;
-
- .icon-feature-preview-img {
- /*padding: (8 * $base-unit) (12 * $base-unit) ;*/
- width: 100%;
- max-width: 273px;
- }
+:global {
+ .feature-preview {
+ text-align: center;
+ // padding: (8 * $base-unit) (12 * $base-unit) ;
+ // background: url('p') no-repeat;
+ background-color: $tc-gray-neutral-light;
+ background-position: 50% 22px;
+ padding: 8 * $base-unit;
+ border-left: 1px solid $tc-dark-blue-30;
+ min-width: 260px;
+ display: block;
+ position: relative;
- img {
-
- /*max-height: 500px;*/
+ .icon-feature-preview-img {
+ /*padding: (8 * $base-unit) (12 * $base-unit) ;*/
+ width: 100%;
+ max-width: 273px;
+ }
+
+ img {
+
+ /*max-height: 500px;*/
+ }
+ }
+ .mask {
+ margin: 100px;
}
}
-.mask {
- margin: 100px;
-}
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/projects/detail/components/FeatureSelector/FlattenedFeatureList.scss b/src/projects/detail/components/FeatureSelector/FlattenedFeatureList.scss
index c44dccc0a..7af80e012 100644
--- a/src/projects/detail/components/FeatureSelector/FlattenedFeatureList.scss
+++ b/src/projects/detail/components/FeatureSelector/FlattenedFeatureList.scss
@@ -1,41 +1,44 @@
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.flattened-feature-list {
- .flattened-feature-list-item {
- display: flex;
- border: 1px solid $tc-gray-10;
- border-bottom: 0px;
- padding: 15px 20px;
- width: 100%;
- .icon-col {
+:global {
+ .flattened-feature-list {
+ .flattened-feature-list-item {
display: flex;
- justify-content: center;
- align-items: center;
- margin-right: 20px;
-
- > img {
- width: 16px;
- height: 16px;
- }
- }
- .content-col {
- > h4 {
- @include roboto-bold;
- font-size: 15px;
- letterSpacing: 0;
- line-height: 25px;
- color: $tc-gray-80;
+ border: 1px solid $tc-gray-10;
+ border-bottom: 0px;
+ padding: 15px 20px;
+ width: 100%;
+ .icon-col {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ margin-right: 20px;
+
+ > img {
+ width: 16px;
+ height: 16px;
+ }
}
- > p {
- @include roboto;
- font-size: 13px;
- color: $tc-gray-60;
- letterSpacing: 0;
- line-height: 25px;
- &.bigger {
+ .content-col {
+ > h4 {
+ @include roboto-bold;
font-size: 15px;
+ letterSpacing: 0;
+ line-height: 25px;
+ color: $tc-gray-80;
+ }
+ > p {
+ @include roboto;
+ font-size: 13px;
+ color: $tc-gray-60;
+ letterSpacing: 0;
+ line-height: 25px;
+ &.bigger {
+ font-size: 15px;
+ }
}
}
}
}
-}
\ No newline at end of file
+}
+
\ No newline at end of file
diff --git a/src/projects/detail/components/FeatureSelector/PickerFeatureList.scss b/src/projects/detail/components/FeatureSelector/PickerFeatureList.scss
index 44f7abbfd..ca5660fd0 100644
--- a/src/projects/detail/components/FeatureSelector/PickerFeatureList.scss
+++ b/src/projects/detail/components/FeatureSelector/PickerFeatureList.scss
@@ -1,101 +1,104 @@
-@import "tc-styles";
+@import '~tc-ui/src/styles/tc-styles';
-.feature-picker-feature-list {
- // background-color: $tc-gray-10;
- width: 100%;
-
- h3 {
- @include ellipsis;
- @include tc-label-md;
- font-weight: 700;
- display: block;
-
- margin: 0 (4 * $base-unit);
- color: $tc-gray-80;
- line-height: 8 * $base-unit;
- }
-
- img {
- width: 20px;
- height: 20px;
- min-width: 20px;
- margin-left: 15px;
- }
-
- .feature-list-feature {
- padding : 0 (4 * $base-unit) 0 (8 * $base-unit);
- transition: 50ms ease-in all;
-
- &:hover {
- background-color: $tc-gray-neutral-light;
- cursor: pointer;
- }
-
- .selected-feature-icon {
- visibility: hidden;
- }
-
- // The feature list styles
- .feature-title {
+:global {
+ .feature-picker-feature-list {
+ // background-color: $tc-gray-10;
+ width: 100%;
+
+ h3 {
+ @include ellipsis;
@include tc-label-md;
-
- color: $tc-gray-60;
- padding: 10px 0;
+ font-weight: 700;
+ display: block;
+
+ margin: 0 (4 * $base-unit);
+ color: $tc-gray-80;
+ line-height: 8 * $base-unit;
}
-
- &.active-feature {
- background-color: $tc-white;
-
- .feature-title {
- color: $tc-orange;
+
+ img {
+ width: 20px;
+ height: 20px;
+ min-width: 20px;
+ margin-left: 15px;
+ }
+
+ .feature-list-feature {
+ padding : 0 (4 * $base-unit) 0 (8 * $base-unit);
+ transition: 50ms ease-in all;
+
+ &:hover {
+ background-color: $tc-gray-neutral-light;
+ cursor: pointer;
}
-
+
.selected-feature-icon {
- visibility: visible;
+ visibility: hidden;
}
- }
- }
-
-
-
- button.clean {
- padding: 15px 15px 15px 0;
- }
-
- li {
- cursor: pointer;
- line-height: 8 * $base-unit;
-
- &.active {
-
- button {
- background-color: $tc-gray-neutral-dark;
-
- p {
- font-weight: 400;
+ // The feature list styles
+ .feature-title {
+ @include tc-label-md;
+
+ color: $tc-gray-60;
+ padding: 10px 0;
+ }
+
+ &.active-feature {
+ background-color: $tc-white;
+
+ .feature-title {
+ color: $tc-orange;
+ }
+
+ .selected-feature-icon {
+ visibility: visible;
}
}
}
-
- p {
- @include ellipsis;
-
- color: $tc-black;
- margin-left: 15px;
+
+
+
+
+ button.clean {
+ padding: 15px 15px 15px 0;
}
-
- button {
- width: 100%;
- text-align: left;
-
- &:hover {
- background-color: $tc-gray-neutral-dark;
-
- p {
- font-weight: 400;
+
+ li {
+ cursor: pointer;
+ line-height: 8 * $base-unit;
+
+ &.active {
+
+ button {
+ background-color: $tc-gray-neutral-dark;
+
+ p {
+ font-weight: 400;
+ }
+ }
+ }
+
+ p {
+ @include ellipsis;
+
+ color: $tc-black;
+ margin-left: 15px;
+ }
+
+ button {
+ width: 100%;
+ text-align: left;
+
+ &:hover {
+ background-color: $tc-gray-neutral-dark;
+
+ p {
+ font-weight: 400;
+ }
}
}
}
}
}
+
\ No newline at end of file
diff --git a/src/projects/detail/components/ProjectSpecSidebar.jsx b/src/projects/detail/components/ProjectSpecSidebar.jsx
index e561118b1..7f0c3694e 100644
--- a/src/projects/detail/components/ProjectSpecSidebar.jsx
+++ b/src/projects/detail/components/ProjectSpecSidebar.jsx
@@ -117,19 +117,11 @@ class ProjectSpecSidebar extends Component {
// types of projects in the future. But let's keep it this way for now because
// project estimate is only available for one kind of projects
const getProjectEstimateSection = () => {
- const { appDefinition, products } = project.details
-
- // project estimate only available for visual design porjects right now
- // estimation is support with introduction of products, hence it would rendered only for new projects
- if (project.type !== 'visual_design' || !products || project.details.products[0] === 'generic_design') return
-
- if (!appDefinition || !appDefinition.numberScreens) return (
-
- )
+ const { products } = project.details
return (
-
+
)
}
diff --git a/src/projects/detail/components/ProjectSpecSidebar.scss b/src/projects/detail/components/ProjectSpecSidebar.scss
index 1db80ba8e..bd18c77b1 100644
--- a/src/projects/detail/components/ProjectSpecSidebar.scss
+++ b/src/projects/detail/components/ProjectSpecSidebar.scss
@@ -1,76 +1,79 @@
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-//TODO Additional variables - need to find a home for these
-// FIXME: remove non-standard variables! Deep nesting, non-standard line-height;
-// FIXME: non-standard units (use $base-unit and $corner-radius)
-$gray-color: $tc-gray-50;
-$title-color: $tc-gray-80;
-$hr-color-base: $tc-black;
-$hr-color-darker: lighten($hr-color-base, 13.5%);
-$hr-color-dark: lighten($hr-color-base, 20%);
-$hr-color: lighten($hr-color-base, 33.5%);
-$hr-color-light: lighten($hr-color-base, 46.7%);
-$hr-color-lighter: lighten($hr-color-base, 93.5%);
-
-.projectSpecSidebar {
- margin-right: 20px;
- margin-bottom: 10px;
- background-color: $tc-white;
- box-shadow: 0px 1px 3px 0px $tc-gray-30;
- padding: 20px 0;
- border-radius: 4px;
- min-width: 280px;
-
- .titles {
- @include roboto-medium;
- font-size: 12px;
- color: $tc-gray-50;
- line-height: 20px;
- padding: 6px 0;
- margin: 0 20px;
- text-transform: uppercase;
-
- &.normal-txt {
- color: $tc-black;
+:global {
+ //TODO Additional variables - need to find a home for these
+ // FIXME: remove non-standard variables! Deep nesting, non-standard line-height;
+ // FIXME: non-standard units (use $base-unit and $corner-radius)
+ $gray-color: $tc-gray-50;
+ $title-color: $tc-gray-80;
+ $hr-color-base: $tc-black;
+ $hr-color-darker: lighten($hr-color-base, 13.5%);
+ $hr-color-dark: lighten($hr-color-base, 20%);
+ $hr-color: lighten($hr-color-base, 33.5%);
+ $hr-color-light: lighten($hr-color-base, 46.7%);
+ $hr-color-lighter: lighten($hr-color-base, 93.5%);
+
+ .projectSpecSidebar {
+ margin-right: 20px;
+ margin-bottom: 10px;
+ background-color: $tc-white;
+ box-shadow: 0px 1px 3px 0px $tc-gray-30;
+ padding: 20px 0;
+ border-radius: 4px;
+ min-width: 280px;
+
+ .titles {
+ @include roboto-medium;
+ font-size: 12px;
+ color: $tc-gray-50;
+ line-height: 20px;
+ padding: 6px 0;
+ margin: 0 20px;
+ text-transform: uppercase;
+
+ &.normal-txt {
+ color: $tc-black;
+ }
}
- }
- /* .text-box 8/29 */
- .text-box {
- margin: 0 20px;
-
- hr {
- display: block;
- height: 1px;
- border: 0;
- border-top: 1px solid $hr-color-lighter;
- margin: 1em 0;
- padding: 0;
+ /* .text-box 8/29 */
+ .text-box {
+ margin: 0 20px;
+
+ hr {
+ display: block;
+ height: 1px;
+ border: 0;
+ border-top: 1px solid $hr-color-lighter;
+ margin: 1em 0;
+ padding: 0;
+ }
+
+ p {
+ @include roboto;
+ font-size: 13px;
+ line-height: 25px;
+ color: $gray-color;
+ }
}
-
- p {
- @include roboto;
- font-size: 13px;
- line-height: 25px;
- color: $gray-color;
+ /* text-box End */
+ .btn-boxs {
+ margin-top: 20px;
+ text-align: center;
}
- }
- /* text-box End */
- .btn-boxs {
- margin-top: 20px;
- text-align: center;
- }
-
- &.no-number {
- .list-group {
- .title {
- padding-left: 0;
- }
-
- li {
- .boxs {
- padding: 0 20px;
+
+ &.no-number {
+ .list-group {
+ .title {
+ padding-left: 0;
+ }
+
+ li {
+ .boxs {
+ padding: 0 20px;
+ }
}
}
}
}
-}
\ No newline at end of file
+}
+
\ No newline at end of file
diff --git a/src/projects/detail/components/ProjectToolBar/ProjectToolBar.jsx b/src/projects/detail/components/ProjectToolBar/ProjectToolBar.jsx
index e24266c70..8f1c3f43e 100644
--- a/src/projects/detail/components/ProjectToolBar/ProjectToolBar.jsx
+++ b/src/projects/detail/components/ProjectToolBar/ProjectToolBar.jsx
@@ -2,7 +2,7 @@ require('./ProjectToolBar.scss')
import React, { Component } from 'react'
import PropTypes from 'prop-types'
-import { MenuBar } from 'appirio-tech-react-components'
+import MenuBar from 'appirio-tech-react-components/components/MenuBar/MenuBar'
import { connect } from 'react-redux'
import _ from 'lodash'
import { LOAD_PROJECT_FAILURE } from '../../../../config/constants'
diff --git a/src/projects/detail/components/ProjectToolBar/ProjectToolBar.scss b/src/projects/detail/components/ProjectToolBar/ProjectToolBar.scss
index b0dd1f856..20a4ebd03 100644
--- a/src/projects/detail/components/ProjectToolBar/ProjectToolBar.scss
+++ b/src/projects/detail/components/ProjectToolBar/ProjectToolBar.scss
@@ -1,59 +1,62 @@
-@import 'tc-includes';
-
-// FIXME: Deep nesting; refactor; use height unit variables
-
-.ProjectToolBar {
- height: 60px;
- background-color: $tc-white;
- padding: 10px 20px;
- width: 100%;
-
- @media screen and (max-width: $screen-md) {
- height: 40px;
- padding-top: 0;
- padding-bottom: 0;
- }
-
- .project-name {
- color: $tc-black;
- }
-
- .MenuBar {
- margin-right: 30px;
-
+@import '~tc-ui/src/styles/tc-includes';
+
+:global {
+ // FIXME: Deep nesting; refactor; use height unit variables
+
+ .ProjectToolBar {
+ height: 60px;
+ background-color: $tc-white;
+ padding: 10px 20px;
+ width: 100%;
+
@media screen and (max-width: $screen-md) {
- order: 1;
- margin-right: 7px;
+ height: 40px;
+ padding-top: 0;
+ padding-bottom: 0;
}
-
- li {
- a {
- color: $tc-gray-50;
- }
-
- a:hover {
- color: $tc-black;
+
+ .project-name {
+ color: $tc-black;
+ }
+
+ .MenuBar {
+ margin-right: 30px;
+
+ @media screen and (max-width: $screen-md) {
+ order: 1;
+ margin-right: 7px;
}
-
- &.selected {
- border-bottom-color: $tc-orange-70;
+
+ li {
a {
+ color: $tc-gray-50;
+ }
+
+ a:hover {
color: $tc-black;
}
+
+ &.selected {
+ border-bottom-color: $tc-orange-70;
+ a {
+ color: $tc-black;
+ }
+ }
}
- }
-
- &.horizontal li {
- position: relative;
-
- a {
- @media screen and (max-width: $screen-md) {
- padding-bottom: 0;
- position: absolute;
- top: 50%;
- transform: translateY(-50%);
+
+ &.horizontal li {
+ position: relative;
+
+ a {
+ @media screen and (max-width: $screen-md) {
+ padding-bottom: 0;
+ position: absolute;
+ top: 50%;
+ transform: translateY(-50%);
+ }
}
}
}
}
}
+
\ No newline at end of file
diff --git a/src/projects/detail/components/SeeAttachedWrapperField.jsx b/src/projects/detail/components/SeeAttachedWrapperField.jsx
index 1475cd198..d6852ef54 100644
--- a/src/projects/detail/components/SeeAttachedWrapperField.jsx
+++ b/src/projects/detail/components/SeeAttachedWrapperField.jsx
@@ -1,5 +1,6 @@
import React, { Component } from 'react'
-import { TCFormFields } from 'appirio-tech-react-components'
+import FormsyForm from 'appirio-tech-react-components/components/Formsy'
+const TCFormFields = FormsyForm.Fields
import _ from 'lodash'
const SeeAttachedWrapperField = (ComposedComponent, defaultValue = '') => class extends Component {
diff --git a/src/projects/detail/components/SidebarNav.jsx b/src/projects/detail/components/SidebarNav.jsx
index 891d25465..35aa731d8 100644
--- a/src/projects/detail/components/SidebarNav.jsx
+++ b/src/projects/detail/components/SidebarNav.jsx
@@ -39,17 +39,17 @@ const renderSubNavItems = (child, idx) => {
* Dumb component that renders NavItems
*/
const SidebarNavItem = ({ name, link, required, subItems, index}) =>
-
+ (
{index}. {name}
- {required && * required }
+ {required && * required }
{subItems.map(renderSubNavItems)}
-
+
)
class SidebarNav extends Component {
render() {
diff --git a/src/projects/detail/components/SidebarNav.scss b/src/projects/detail/components/SidebarNav.scss
index fe6d5c93d..639ff0ac5 100644
--- a/src/projects/detail/components/SidebarNav.scss
+++ b/src/projects/detail/components/SidebarNav.scss
@@ -1,98 +1,101 @@
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-// FIXME: multiple problems: floats, colors, units, deep nesting, global tag "svg" restyling
-
-.list-group {
- .title {
- @include roboto-bold;
- font-size: 13px;
- color: $tc-black;
- line-height: 30px;
- padding-left: 22px;
- position: relative;
- margin: 0 20px;
- .number {
- position: absolute;
- left: 0;
- }
- /* required 8/29 */
- .required {
- float: right;
- @include roboto;
- color: $tc-orange;
- font-size: 11px; // FIXME: non-standard font size
- }
- /* required End */
- }
- li {
- .txt {
- @include roboto;
+:global {
+ // FIXME: multiple problems: floats, colors, units, deep nesting, global tag "svg" restyling
+
+ .list-group {
+ .title {
+ @include roboto-bold;
font-size: 13px;
color: $tc-black;
- line-height: 16px;
- padding: 7px 0;
- display: inline-block;
- }
- /* required 8/29 */
- .required {
- @include roboto;
- font-size: 13px;
- color: $tc-orange;
- }
- /* required End */
- .schedule {
- @include roboto;
- font-size: 13px;
- line-height: 16px;
- color: $tc-gray-50;
- // change the schedule color to gray - 8/30
- padding: 7px 0;
- float: right;
- }
- .subtract {
- float: right;
- background: $tc-gray-20;
- margin: 13px 5px 0 0;
- width: 9px;
- height: 2px;
- display: inline-block;
- }
- .boxs {
- display: block;
- padding: 0 20px 0 42px;
+ line-height: 30px;
+ padding-left: 22px;
position: relative;
- &:hover {
- background: $tc-gray-neutral-light;
+ margin: 0 20px;
+ .number {
+ position: absolute;
+ left: 0;
}
- &.complete {
- .schedule {
- display: none;
+ /* required 8/29 */
+ .required {
+ float: right;
+ @include roboto;
+ color: $tc-orange;
+ font-size: 11px; // FIXME: non-standard font size
+ }
+ /* required End */
+ }
+ li {
+ .txt {
+ @include roboto;
+ font-size: 13px;
+ color: $tc-black;
+ line-height: 16px;
+ padding: 7px 0;
+ display: inline-block;
+ }
+ /* required 8/29 */
+ .required {
+ @include roboto;
+ font-size: 13px;
+ color: $tc-orange;
+ }
+ /* required End */
+ .schedule {
+ @include roboto;
+ font-size: 13px;
+ line-height: 16px;
+ color: $tc-gray-50;
+ // change the schedule color to gray - 8/30
+ padding: 7px 0;
+ float: right;
+ }
+ .subtract {
+ float: right;
+ background: $tc-gray-20;
+ margin: 13px 5px 0 0;
+ width: 9px;
+ height: 2px;
+ display: inline-block;
+ }
+ .boxs {
+ display: block;
+ padding: 0 20px 0 42px;
+ position: relative;
+ &:hover {
+ background: $tc-gray-neutral-light;
}
- .icon-complete {
- display: block;
+ &.complete {
+ .schedule {
+ display: none;
+ }
+ .icon-complete {
+ display: block;
+ }
+ }
+ svg {
+ width: 10px;
+ height: 10px;
+ position: absolute;
+ right: 21px;
+ top: 10px;
}
- }
- svg {
- width: 10px;
- height: 10px;
- position: absolute;
- right: 21px;
- top: 10px;
}
}
- }
-
- &.single-section {
- .title {
- padding-left: 0px;
-
- .number {
- display: none;
+
+ &.single-section {
+ .title {
+ padding-left: 0px;
+
+ .number {
+ display: none;
+ }
+ }
+
+ .boxs {
+ padding-left: 20px;// 42 - 22
}
- }
-
- .boxs {
- padding-left: 20px;// 42 - 22
}
}
-}
\ No newline at end of file
+}
+
\ No newline at end of file
diff --git a/src/projects/detail/components/SpecFeatureQuestion.scss b/src/projects/detail/components/SpecFeatureQuestion.scss
index 0ba95410e..c1c77cb37 100644
--- a/src/projects/detail/components/SpecFeatureQuestion.scss
+++ b/src/projects/detail/components/SpecFeatureQuestion.scss
@@ -1,13 +1,16 @@
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.add-edit-features {
- margin-bottom: 0; // FIXME: use $variables for units
- .add-edit-features__header {
- display: flex;
- justify-content: center;
- align-items: center;
- height: 60px;
- background-color: $tc-gray-neutral-light;
- border: 1px solid $tc-gray-10;
+:global {
+ .add-edit-features {
+ margin-bottom: 0; // FIXME: use $variables for units
+ .add-edit-features__header {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ height: 60px;
+ background-color: $tc-gray-neutral-light;
+ border: 1px solid $tc-gray-10;
+ }
}
-}
\ No newline at end of file
+}
+
\ No newline at end of file
diff --git a/src/projects/detail/components/SpecQuestionList/SpecQuestionIcons.jsx b/src/projects/detail/components/SpecQuestionList/SpecQuestionIcons.jsx
index 9f49b76d9..db8b96f21 100644
--- a/src/projects/detail/components/SpecQuestionList/SpecQuestionIcons.jsx
+++ b/src/projects/detail/components/SpecQuestionList/SpecQuestionIcons.jsx
@@ -3,15 +3,15 @@ import React from 'react'
const Placeholder = ({ width = '16px', height = '16px' }) => {
return (
- {/* */}
- icon-definedfeature-placeholder
- Created with Sketch.
-
-
-
-
-
+ {/* */}
+ icon-definedfeature-placeholder
+ Created with Sketch.
+
+
+
+
+
)
}
@@ -19,15 +19,15 @@ const Placeholder = ({ width = '16px', height = '16px' }) => {
const Generic = ({ width = '16px', height = '16px' }) => {
return (
- {/* */}
- icon-feature-placeholder
- Created with Sketch.
-
-
-
-
-
+ {/* */}
+ icon-feature-placeholder
+ Created with Sketch.
+
+
+
+
+
)
}
@@ -46,15 +46,15 @@ const Question = ({ width = '16px', height = '16px' }) => {
const Serif = ({ width = '61px', height = '35px' }) => {
return (
-
-
-
-
- Aa
-
+
+
+
+
+ Aa
+
+
-
)
}
diff --git a/src/projects/detail/components/SpecQuestionList/SpecQuestionList.scss b/src/projects/detail/components/SpecQuestionList/SpecQuestionList.scss
index 77eb9287c..eb6f50b5f 100644
--- a/src/projects/detail/components/SpecQuestionList/SpecQuestionList.scss
+++ b/src/projects/detail/components/SpecQuestionList/SpecQuestionList.scss
@@ -1,115 +1,118 @@
-@import "tc-includes";
+@import '~tc-ui/src/styles/tc-includes';
-.spec-question-list {
-}
-
-.spec-question-list-item {
- padding: 0;
- margin-bottom: 30px;
-
- .icon-col {
- padding-top: 3px;
- padding-right: 10px;
- display: none;
+:global {
+ .spec-question-list {
}
-
- .content-col {
- width: 100%;
-
- > h5 {
- @include roboto;
- font-size: 15px;
- line-height: 25px;
- color: $tc-gray-70;
- margin-bottom: 0;
-
- span {
- color: $tc-orange;
- padding-left: $base-unit;
- }
+
+ .spec-question-list-item {
+ padding: 0;
+ margin-bottom: 30px;
+
+ .icon-col {
+ padding-top: 3px;
+ padding-right: 10px;
+ display: none;
}
-
- > p,
- .description {
- @include roboto-light;
- font-size: 12px;
- color: $tc-gray-50;
- font-weight: 400;
- font-style: italic;
- line-height: 20px;
-
- &.bigger {
+
+ .content-col {
+ width: 100%;
+
+ > h5 {
+ @include roboto;
font-size: 15px;
- }
- }
-
- .description {
- margin-bottom: $base-unit * 4;
- }
-
- .child-component {
- .colorSelector {
- margin-bottom: $base-unit * 4;
- }
-
- .checkbox-group-item.checkbox-item-checked {
- background: $tc-dark-blue-10;
- border-radius: 4px;
- }
-
- .dropdown-wrap.default {
- background: $tc-gray-neutral-light;
- border-color: $tc-gray-20;
- max-width: 300px;
- margin-left: 0px;
-
- &:after {
- border-bottom-color: $tc-gray-70;
- border-right-color: $tc-gray-70;
- }
- }
-
- textarea {
- min-height: 45px;
- max-width: 100%;
- text-align: left;
- text-indent: 0;
+ line-height: 25px;
+ color: $tc-gray-70;
margin-bottom: 0;
- line-height: 24.5px;
- }
-
- .radio-group-input,
- .checkbox-group-item {
- width: 100%;
- padding: 15px 0;
- margin-bottom: 20px;
- margin-right: 0;
+
+ span {
+ color: $tc-orange;
+ padding-left: $base-unit;
+ }
}
-
- .checkbox-group-item {
- border-radius: 4px;
- background: $tc-gray-neutral-light;
- padding-left: 10px;
- display: block;
-
- label {
- font-weight: 400;
- color: $tc-black;
- font-size: 12px;
+
+ > p,
+ .description {
+ @include roboto-light;
+ font-size: 12px;
+ color: $tc-gray-50;
+ font-weight: 400;
+ font-style: italic;
+ line-height: 20px;
+
+ &.bigger {
+ font-size: 15px;
}
}
-
- .checkbox-group-options .checkbox-group-item {
- width: auto;
- background: none;
- padding: 0;
- margin: 15px 30px 15px 0;
+
+ .description {
+ margin-bottom: $base-unit * 4;
}
-
- .SliderRadioGroup {
- margin: 40px auto 15px auto;
- width: 80%;
+
+ .child-component {
+ .colorSelector {
+ margin-bottom: $base-unit * 4;
+ }
+
+ .checkbox-group-item.checkbox-item-checked {
+ background: $tc-dark-blue-10;
+ border-radius: 4px;
+ }
+
+ .dropdown-wrap.default {
+ background: $tc-gray-neutral-light;
+ border-color: $tc-gray-20;
+ max-width: 300px;
+ margin-left: 0px;
+
+ &:after {
+ border-bottom-color: $tc-gray-70;
+ border-right-color: $tc-gray-70;
+ }
+ }
+
+ textarea {
+ min-height: 45px;
+ max-width: 100%;
+ text-align: left;
+ text-indent: 0;
+ margin-bottom: 0;
+ line-height: 24.5px;
+ }
+
+ .radio-group-input,
+ .checkbox-group-item {
+ width: 100%;
+ padding: 15px 0;
+ margin-bottom: 20px;
+ margin-right: 0;
+ }
+
+ .checkbox-group-item {
+ border-radius: 4px;
+ background: $tc-gray-neutral-light;
+ padding-left: 10px;
+ display: block;
+
+ label {
+ font-weight: 400;
+ color: $tc-black;
+ font-size: 12px;
+ }
+ }
+
+ .checkbox-group-options .checkbox-group-item {
+ width: auto;
+ background: none;
+ padding: 0;
+ margin: 15px 30px 15px 0;
+ }
+
+ .SliderRadioGroup {
+ margin: 40px auto 15px auto;
+ width: 80%;
+ }
}
}
}
}
+
\ No newline at end of file
diff --git a/src/projects/detail/components/SpecQuestions.jsx b/src/projects/detail/components/SpecQuestions.jsx
index 414d4f7bd..b78fe880d 100644
--- a/src/projects/detail/components/SpecQuestions.jsx
+++ b/src/projects/detail/components/SpecQuestions.jsx
@@ -1,7 +1,8 @@
import React from 'react'
import PropTypes from 'prop-types'
import seeAttachedWrapperField from './SeeAttachedWrapperField'
-import { TCFormFields } from 'appirio-tech-react-components'
+import FormsyForm from 'appirio-tech-react-components/components/Formsy'
+const TCFormFields = FormsyForm.Fields
import _ from 'lodash'
import SpecQuestionList from './SpecQuestionList/SpecQuestionList'
diff --git a/src/projects/detail/components/SpecScreenQuestions.jsx b/src/projects/detail/components/SpecScreenQuestions.jsx
index c808b7fac..3568da926 100644
--- a/src/projects/detail/components/SpecScreenQuestions.jsx
+++ b/src/projects/detail/components/SpecScreenQuestions.jsx
@@ -1,6 +1,7 @@
import React from 'react'
import PropTypes from 'prop-types'
-import { TCFormFields } from 'appirio-tech-react-components'
+import FormsyForm from 'appirio-tech-react-components/components/Formsy'
+const TCFormFields = FormsyForm.Fields
import _ from 'lodash'
import SpecQuestionList from './SpecQuestionList/SpecQuestionList'
diff --git a/src/projects/detail/components/SpecScreens.jsx b/src/projects/detail/components/SpecScreens.jsx
index 0f2403695..f79cbf5f3 100644
--- a/src/projects/detail/components/SpecScreens.jsx
+++ b/src/projects/detail/components/SpecScreens.jsx
@@ -1,7 +1,7 @@
import React, { Component } from 'react'
import PropTypes from 'prop-types'
import { HOC as hoc } from 'formsy-react'
-import { Tooltip } from 'appirio-tech-react-components'
+import Tooltip from 'appirio-tech-react-components/components/Tooltip/Tooltip'
import _ from 'lodash'
import EditAppScreenForm from './EditAppScreenForm'
@@ -93,23 +93,23 @@ class SpecScreens extends Component {
{
screens.length >= numberScreensSelected ?
-
-
+ :
+
this.addScreen(null, true)}>
+ { screens.length === 0 ? 'Define screen' : 'Define another screen' }
+
}
diff --git a/src/projects/detail/components/SpecSection.jsx b/src/projects/detail/components/SpecSection.jsx
index 173fdf3bc..d47796634 100644
--- a/src/projects/detail/components/SpecSection.jsx
+++ b/src/projects/detail/components/SpecSection.jsx
@@ -1,7 +1,10 @@
import React from 'react'
import PropTypes from 'prop-types'
import qs from 'query-string'
-import { Tabs, Tab, TCFormFields } from 'appirio-tech-react-components'
+import Tabs from 'appirio-tech-react-components/components/Tabs/Tabs'
+import Tab from 'appirio-tech-react-components/components/Tabs/Tab'
+import FormsyForm from 'appirio-tech-react-components/components/Formsy'
+const TCFormFields = FormsyForm.Fields
import _ from 'lodash'
import SpecQuestions from './SpecQuestions'
import FileListContainer from './FileListContainer'
diff --git a/src/projects/detail/components/VisualDesignProjectEstimateSection.jsx b/src/projects/detail/components/VisualDesignProjectEstimateSection.jsx
index 0d5c88807..0e13fe326 100644
--- a/src/projects/detail/components/VisualDesignProjectEstimateSection.jsx
+++ b/src/projects/detail/components/VisualDesignProjectEstimateSection.jsx
@@ -1,36 +1,19 @@
import React from 'react'
import PropTypes from 'prop-types'
import './VisualDesignProjectEstimateSection.scss'
-import typeToSpecification from '../../../config/projectSpecification/typeToSpecification'
-import _ from 'lodash'
+import { getProductEstimate, findProduct } from '../../../config/projectWizard'
const numberWithCommas = (n) => n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',')
-const DEFAULT_DESIGN_TEMPLATE = 'visual_design.v1.0'
-const VisualDesignProjectEstimateSection = ({products, numberScreens}) => {
- // determine the spec template to use for the first product used in the project
+const VisualDesignProjectEstimateSection = ({products, project}) => {
// TODO when we support multiple products per project, we can loop through products and sum up the estimates
- const specTemplate = products.length > 0 ? typeToSpecification[products[0]] : DEFAULT_DESIGN_TEMPLATE
- const sections = require('../../../config/projectQuestions/' + specTemplate).default
- // appDefinition section
- const section = _.find(sections, (section) => section.id === 'appDefinition')
- const { subSections } = section
- // questions sub section
- const sectionQuestions = _.find(subSections, (subSection) => subSection.id === 'questions').questions
-
- // options provided in the number of screens question
- let projectDurationOptions = []
- const numberScreensQuestion = _.find(
- sectionQuestions,
- (question) => question.fieldName === 'details.appDefinition.numberScreens'
- )
- if (numberScreensQuestion) {
- projectDurationOptions = numberScreensQuestion.options
+ const productId = products[0]
+ const product = findProduct(productId)
+ if (!product || typeof product.basePriceEstimate === 'undefined') {
+ return
}
- // selected option
- const pickedDurationOption = _.find(projectDurationOptions, (option) => option.value === numberScreens)
- const durationEstimate = pickedDurationOption ? pickedDurationOption.desc : '0 days'
- const priceEstimate = pickedDurationOption && pickedDurationOption.price ? pickedDurationOption.price : 0
+
+ const { priceEstimate, durationEstimate} = getProductEstimate(productId, project)
return (
@@ -44,7 +27,8 @@ const VisualDesignProjectEstimateSection = ({products, numberScreens}) => {
}
VisualDesignProjectEstimateSection.propTypes = {
- numberScreens: PropTypes.string
+ project: PropTypes.object.isRequired,
+ products: PropTypes.arrayOf(PropTypes.string).isRequired
}
export default VisualDesignProjectEstimateSection
diff --git a/src/projects/detail/components/VisualDesignProjectEstimateSection.scss b/src/projects/detail/components/VisualDesignProjectEstimateSection.scss
index c07ecf4c0..0a62a90db 100644
--- a/src/projects/detail/components/VisualDesignProjectEstimateSection.scss
+++ b/src/projects/detail/components/VisualDesignProjectEstimateSection.scss
@@ -1,35 +1,38 @@
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.visual-design-project-estimate-section {
- display: flex;
- width: calc(100% - 40px);
- margin-left: 20px;
- margin-right: 20px;
- flex-wrap: wrap;
- flex-direction: row;
-
- h4.titles {
- width: 100%;
- margin: 0;
- margin-bottom: $base-unit * 2;
- font-size: 12px;
- color: $tc-gray-50;
- text-transform: uppercase;
- }
-
- .label, .estimate {
- flex-basis: 50%;
- @include tc-label-md;
- @include roboto-bold;
- margin-bottom: $base-unit * 2;
- }
-
- .label {
- color: $tc-gray-50;
- }
-
- .estimate {
- text-align: right;
- flex: auto;
+:global {
+ .visual-design-project-estimate-section {
+ display: flex;
+ width: calc(100% - 40px);
+ margin-left: 20px;
+ margin-right: 20px;
+ flex-wrap: wrap;
+ flex-direction: row;
+
+ h4.titles {
+ width: 100%;
+ margin: 0;
+ margin-bottom: $base-unit * 2;
+ font-size: 12px;
+ color: $tc-gray-50;
+ text-transform: uppercase;
+ }
+
+ .label, .estimate {
+ flex-basis: 50%;
+ @include tc-label-md;
+ @include roboto-bold;
+ margin-bottom: $base-unit * 2;
+ }
+
+ .label {
+ color: $tc-gray-50;
+ }
+
+ .estimate {
+ text-align: right;
+ flex: auto;
+ }
}
}
+
\ No newline at end of file
diff --git a/src/projects/detail/containers/FeedContainer.js b/src/projects/detail/containers/FeedContainer.js
index 342419e51..72ad72d88 100644
--- a/src/projects/detail/containers/FeedContainer.js
+++ b/src/projects/detail/containers/FeedContainer.js
@@ -13,12 +13,18 @@ import {
CODER_BOT_USER_LNAME
} from '../../../config/constants'
import { connect } from 'react-redux'
+import Sticky from 'react-stickynode'
import update from 'react-addons-update'
import NewPost from '../../../components/Feed/NewPost'
import Feed from '../../../components/Feed/Feed'
import ProjectSpecification from '../../../components/ProjectSpecification/ProjectSpecification'
import { loadDashboardFeeds, createProjectTopic, saveProjectTopic, deleteProjectTopic, loadFeedComments, addFeedComment, saveFeedComment, deleteFeedComment, getFeedComment } from '../../actions/projectTopics'
import spinnerWhileLoading from '../../../components/LoadingSpinner'
+import { toggleNotificationRead } from '../../../routes/notifications/actions'
+import { filterReadNotifications, filterNotificationsByProjectId, filterTopicAndPostChangedNotifications } from '../../../routes/notifications/helpers/notifications'
+import { REFRESH_UNREAD_UPDATE_INTERVAL } from '../../../config/constants'
+import './Specification.scss'
+import Refresh from '../../../assets/icons/icon-refresh.svg'
import { ScrollElement, scroller } from 'react-scroll'
@@ -48,15 +54,36 @@ class FeedView extends React.Component {
this.onSaveMessageChange = this.onSaveMessageChange.bind(this)
this.onEditTopic = this.onEditTopic.bind(this)
this.onTopicChange = this.onTopicChange.bind(this)
- this.state = { feeds : [], showAll: [], newPost: {} }
+ this.onRefreshFeeds = this.onRefreshFeeds.bind(this)
+ this.onScroll = this.onScroll.bind(this)
+ this.state = { feeds : [], showAll: [], newPost: {}, unreadUpdate: [], scrolled: false }
}
componentDidMount() {
window.addEventListener('beforeunload', this.onLeave)
+
+ // after reload, mark all feed update notifications read
+ this.setState({ unreadUpdate : []})
+ const notReadNotifications = filterReadNotifications(this.props.notifications.notifications)
+ const unreadTopicAndPostChangedNotifications = filterTopicAndPostChangedNotifications(filterNotificationsByProjectId(notReadNotifications, this.props.project.id))
+ _.map(_.map(unreadTopicAndPostChangedNotifications, 'id' ), (notificationId) => {
+ this.props.toggleNotificationRead(notificationId)
+ })
+
+ this.refreshUnreadUpdate = setInterval(() => {
+ const notReadNotifications = filterReadNotifications(this.props.notifications.notifications)
+ const unreadTopicAndPostChangedNotifications = filterTopicAndPostChangedNotifications(filterNotificationsByProjectId(notReadNotifications, this.props.project.id))
+ this.setState({ unreadUpdate: _.map(unreadTopicAndPostChangedNotifications, 'id' ) })
+ console.log('scrolled '+this.state.scrolled)
+ if (!this.isChanged() && !this.state.scrolled && this.state.unreadUpdate.length > 0) {
+ this.onRefreshFeeds()
+ }
+ }, REFRESH_UNREAD_UPDATE_INTERVAL)
}
componentWillMount() {
this.init(this.props)
+ window.addEventListener('scroll', this.onScroll)
}
componentWillReceiveProps(nextProps) {
@@ -65,6 +92,8 @@ class FeedView extends React.Component {
componentWillUnmount() {
window.removeEventListener('beforeunload', this.onLeave)
+ window.removeEventListener('scroll', this.onScroll)
+ clearInterval(this.refreshUnreadUpdate)
}
// Notify user if they navigate away while the form is modified.
@@ -177,6 +206,7 @@ class FeedView extends React.Component {
}
this.setState({
newPost: resetNewPost ? {} : this.state.newPost,
+ scrolled: window.scrollY>0,
feeds: feeds.map((feed) => {
// finds the same feed from previous props, if exists
let prevFeed
@@ -337,9 +367,17 @@ class FeedView extends React.Component {
this.props.deleteProjectTopic(feedId, PROJECT_FEED_TYPE_PRIMARY)
}
+ onRefreshFeeds() {
+ this.props.loadDashboardFeeds(this.props.project.id)
+ }
+
+ onScroll() {
+ this.setState({ scrolled : window.scrollY>0 })
+ }
+
render () {
const {currentUser, project, currentMemberRole, isCreatingFeed, error, allMembers} = this.props
- const { feeds } = this.state
+ const { feeds, unreadUpdate, scrolled } = this.state
const showDraftSpec = project.status === PROJECT_STATUS_DRAFT && currentMemberRole === PROJECT_ROLE_CUSTOMER
const onLeaveMessage = this.onLeave() || ''
@@ -366,7 +404,7 @@ class FeedView extends React.Component {
onTopicChange={this.onTopicChange.bind(this, item.id)}
onSaveTopic={this.onSaveTopic.bind(this, item.id)}
onDeleteTopic={this.onDeleteTopic.bind(this, item.id)}
- allMembers={allMembers}
+ allMembers={allMembers}
>
{item.sendForReview &&
Send for review
@@ -377,22 +415,31 @@ class FeedView extends React.Component {
)
}
return (
-
-
-
- { feeds.map(renderFeed) }
+
+ { unreadUpdate.length > 0 && !this.isChanged() && scrolled &&
+
+
+
+ Reload page to view updates
+
+ }
+
+
+
+ { feeds.map(renderFeed) }
+
)
}
@@ -420,7 +467,7 @@ FeedContainer.PropTypes = {
project: PropTypes.object.isRequired
}
-const mapStateToProps = ({ projectTopics, members, loadUser }) => {
+const mapStateToProps = ({ projectTopics, members, loadUser, notifications }) => {
return {
currentUser : loadUser.user,
feeds : projectTopics.feeds[PROJECT_FEED_TYPE_PRIMARY].topics,
@@ -428,7 +475,8 @@ const mapStateToProps = ({ projectTopics, members, loadUser }) => {
isLoading : projectTopics.isLoading,
isCreatingFeed : projectTopics.isCreatingFeed,
error : projectTopics.error,
- allMembers : members.members
+ allMembers : members.members,
+ notifications
}
}
const mapDispatchToProps = {
@@ -440,7 +488,8 @@ const mapDispatchToProps = {
addFeedComment,
saveFeedComment,
deleteFeedComment,
- getFeedComment
+ getFeedComment,
+ toggleNotificationRead
}
-export default connect(mapStateToProps, mapDispatchToProps)(FeedContainer)
\ No newline at end of file
+export default connect(mapStateToProps, mapDispatchToProps)(FeedContainer)
diff --git a/src/projects/detail/containers/MessagesContainer.js b/src/projects/detail/containers/MessagesContainer.js
index ef2d4cae6..3485cab0b 100644
--- a/src/projects/detail/containers/MessagesContainer.js
+++ b/src/projects/detail/containers/MessagesContainer.js
@@ -9,7 +9,7 @@ import MessageDetails from '../../../components/MessageDetails/MessageDetails'
import NewPost from '../../../components/Feed/NewPost'
import { laodProjectMessages, createProjectTopic, saveProjectTopic, deleteProjectTopic, loadFeedComments, addFeedComment, saveFeedComment, deleteFeedComment, getFeedComment } from '../../actions/projectTopics'
import spinnerWhileLoading from '../../../components/LoadingSpinner'
-import {FullHeightContainer} from 'appirio-tech-react-components'
+import FullHeightContainer from 'appirio-tech-react-components/components/FullHeightContainer/FullHeightContainer'
import FooterV2 from '../../../components/FooterV2/FooterV2'
import {
@@ -24,7 +24,7 @@ import {
const SYSTEM_USER = {
firstName: CODER_BOT_USER_FNAME,
lastName: CODER_BOT_USER_LNAME,
- photoURL: require('../../../assets/images/avatar-coder.svg')
+ photoURL: require('file-loader?../../../assets/images/avatar-coder.svg')
}
const isSystemUser = (userId) => [DISCOURSE_BOT_USERID, CODER_BOT_USERID].indexOf(userId) > -1
@@ -458,26 +458,26 @@ class MessagesView extends React.Component {
message={onLeaveMessage}
/>
-
-
-
-
-
- { (showEmptyState && !threads.length) &&
+
+
+
+
+
+ { (showEmptyState && !threads.length) &&
this.setState({showEmptyState: false})}
/>
- }
- { renderRightPanel() }
-
+ }
+ { renderRightPanel() }
+
)
diff --git a/src/projects/detail/containers/ProjectInfoContainer.js b/src/projects/detail/containers/ProjectInfoContainer.js
index 1583414ad..d51195a57 100644
--- a/src/projects/detail/containers/ProjectInfoContainer.js
+++ b/src/projects/detail/containers/ProjectInfoContainer.js
@@ -9,7 +9,7 @@ import TeamManagementContainer from './TeamManagementContainer'
import { updateProject, deleteProject } from '../../actions/project'
import { setDuration } from '../../../helpers/projectHelper'
import { PROJECT_ROLE_OWNER, PROJECT_ROLE_COPILOT, PROJECT_ROLE_MANAGER,
- DIRECT_PROJECT_URL, SALESFORCE_PROJECT_LEAD_LINK, PROJECT_STATUS_CANCELLED } from '../../../config/constants'
+ DIRECT_PROJECT_URL, SALESFORCE_PROJECT_LEAD_LINK, PROJECT_STATUS_CANCELLED } from '../../../config/constants'
import ProjectInfo from '../../../components/ProjectInfo/ProjectInfo'
class ProjectInfoContainer extends React.Component {
@@ -100,23 +100,25 @@ class ProjectInfoContainer extends React.Component {
}
return (
)
diff --git a/src/projects/detail/containers/Specification.scss b/src/projects/detail/containers/Specification.scss
index ec41a5e46..f02759dbb 100644
--- a/src/projects/detail/containers/Specification.scss
+++ b/src/projects/detail/containers/Specification.scss
@@ -1,1005 +1,1019 @@
-@import 'tc-includes';
-
-//TODO Additional variables - need to find a home for these
-$gray-color: $tc-gray-50;
-$title-color: $tc-gray-80;
-$sideBarWidth: 280px;
-$sideBarMaxWidth: 360px;
-
-@mixin flexBox {
- display: box;
- display: flex;
- flex-direction: row;
- width: auto;
-}
-
-@mixin flexWidth($number) {
- -webkit-box-flex: $number;
- -moz-box-flex: $number;
- -webkit-flex: $number;
- -ms-flex: $number;
- flex: $number;
-}
-
-.feature-selection-dialog-overlay {
- position: fixed;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- z-index: 21;/* +1 of the z-index of the topbar */
-}
-
-.feature-selection-dialog {
- top: 0px;
- left: 0px;
- height: 100%;
-}
-
-.feature-selection-dialog-close {
- @include roboto;
- cursor: pointer;
- position: absolute;
- top: 20px;
- right: 25px;
- width: 185px;
- height: 20px;
- line-height: 20px;
- text-align: right;
- color: $tc-gray-60;
- transition: all 200ms ease-in-out;
-
- .x-mark-icon {
- display: inline-block;
- margin: 0 0 0 5px;
- transition: all 200ms ease-in-out;
-
- & > svg {
- padding-top: 3px;
- transition: all 200ms ease-in-out;
- }
+@import '~tc-ui/src/styles/tc-includes';
+
+:global {
+ //TODO Additional variables - need to find a home for these
+ $gray-color: $tc-gray-50;
+ $title-color: $tc-gray-80;
+ $sideBarWidth: 280px;
+ $sideBarMaxWidth: 360px;
+
+ @mixin flexBox {
+ display: flex;
+ flex-direction: row;
+ width: auto;
}
-
- &:hover {
- color: $tc-black;
- cursor: pointer;
-
- .x-mark-icon > svg {
- fill: $tc-black;
- }
+
+ @mixin flexWidth($number) {
+ -webkit-box-flex: $number;
+ -moz-box-flex: $number;
+ -webkit-flex: $number;
+ -ms-flex: $number;
+ flex: $number;
}
-}
-
-.two-col-content.content {
- .tc-file-field__inputs {
- height: 45px;
+
+ .feature-selection-dialog-overlay {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ z-index: 21;/* +1 of the z-index of the topbar */
}
- /* .tc-file-field__inputs */
- .tc-file-field__inputs,
- .tc-textarea {
- /*background: $tc-gray-neutral-light;
- border-color: $tc-gray-20;
- color: $tc-black;*/
-
- &::-webkit-input-placeholder {
- color: $tc-gray-50;
- text-transform: none;
- }
-
- &::-moz-placeholder {
- line-height: 45px;
- color: $tc-gray-50;
- opacity: 1;
- text-transform: none;
- }
-
- &:-ms-input-placeholder {
- color: $tc-gray-50;
- text-transform: none;
- }
+
+ .feature-selection-dialog {
+ top: 0px;
+ left: 0px;
+ height: 100%;
}
- /* .dashed-bottom-border */
- .app-screen-header {
- border-bottom: 1px solid $tc-gray-30;
- display: flex;
- justify-content: space-between;
- padding: 15px 0;
- position: relative;
-
- .screen-title,
- .project-name {
- @include roboto;
- color: black;
- font-weight: bold;
- }
-
- .screen-title {
- font-size: 18px;
- }
-
- .project-name {
- font-size: 20px;
+
+ .feature-selection-dialog-close {
+ @include roboto;
+ cursor: pointer;
+ position: absolute;
+ top: 20px;
+ right: 25px;
+ width: 185px;
+ height: 20px;
+ line-height: 20px;
+ text-align: right;
+ color: $tc-gray-60;
+ transition: all 200ms ease-in-out;
+
+ .x-mark-icon {
+ display: inline-block;
+ margin: 0 0 0 5px;
+ transition: all 200ms ease-in-out;
+
+ & > svg {
+ padding-top: 3px;
+ transition: all 200ms ease-in-out;
+ }
}
-
- button.tc-btn-xs {//TODO ideally we should fix it in react-components repo
- padding-top: 2px;
- padding-bottom: 2px;
+
+ &:hover {
+ color: $tc-black;
+ cursor: pointer;
+
+ .x-mark-icon > svg {
+ fill: $tc-black;
+ }
}
}
- /* .bottom-border-titles */
- .bottom-border-titles {
- border-bottom: 1px solid $tc-gray-30;
- padding-bottom: $base-unit;
- margin: 30px 0 20px 0;
- position: relative;
-
- .title {
- @include roboto;
- font-size: 20px;
- line-height: 30px;
+
+ .two-col-content.content {
+ .tc-file-field__inputs {
+ height: 45px;
}
-
- .section-actions {
- position: absolute;
- right: 0;
- top: 0;
- padding: 0 15px;
-
- &.hide {
- display: none;
+ /* .tc-file-field__inputs */
+ .tc-file-field__inputs,
+ .tc-textarea {
+ /*background: $tc-gray-neutral-light;
+ border-color: $tc-gray-20;
+ color: $tc-black;*/
+
+ &::-webkit-input-placeholder {
+ color: $tc-gray-50;
+ text-transform: none;
+ }
+
+ &::-moz-placeholder {
+ line-height: 45px;
+ color: $tc-gray-50;
+ opacity: 1;
+ text-transform: none;
+ }
+
+ &:-ms-input-placeholder {
+ color: $tc-gray-50;
+ text-transform: none;
}
}
- }
-
- .sub-title {
- margin: 30px 0 10px;
-
- .title {
- font-size: 15px;
- line-height: 25px;
- color: $tc-gray-80;
-
- span {
- color: $tc-orange;
- font-size: 15px;
- padding-left: 5px;
+ /* .dashed-bottom-border */
+ .app-screen-header {
+ border-bottom: 1px solid $tc-gray-30;
+ display: flex;
+ justify-content: space-between;
+ padding: 15px 0;
+ position: relative;
+
+ .screen-title,
+ .project-name {
+ @include roboto;
+ color: black;
+ font-weight: bold;
+ }
+
+ .screen-title {
+ font-size: 18px;
+ }
+
+ .project-name {
+ font-size: 20px;
+ }
+
+ button.tc-btn-xs {//TODO ideally we should fix it in react-components repo
+ padding-top: 2px;
+ padding-bottom: 2px;
}
}
- }
-
- .container {
- @include flexBox;
- background-color: transparent;
- display: flex;
- padding: 0px;
- max-width: 1110px;
- margin: 20px auto;
- /* .left-area */
- .left-area {
- flex: auto;
-
- .left-area-footer {
+ /* .bottom-border-titles */
+ .bottom-border-titles {
+ border-bottom: 1px solid $tc-gray-30;
+ padding-bottom: $base-unit;
+ margin: 30px 0 20px 0;
+ position: relative;
+
+ .title {
@include roboto;
- padding: 0 10px;
- font-size: 11px;
+ font-size: 20px;
line-height: 30px;
- color: $tc-gray-50;
-
- span {
- float: right;
+ }
+
+ .section-actions {
+ position: absolute;
+ right: 0;
+ top: 0;
+ padding: 0 15px;
+
+ &.hide {
+ display: none;
}
}
}
-
- .right-area {
- flex: auto;
- border-radius: 4px;
- position: relative;
-
- /* this selector is too common and it's applied to .spec-question-list thought it shouldn't
- if also has big priority so we have to fix it here */
- form > div:not(.spec-question-list) {
- box-shadow: 0px 1px 3px 0px rgba($tc-black, 0.2);
- }
-
+
+ .sub-title {
+ margin: 30px 0 10px;
+
.title {
+ font-size: 15px;
+ line-height: 25px;
color: $tc-gray-80;
- @include roboto-bold;
- }
-
- .right-area-item {
- padding: 0 0 70px 0;
- margin-bottom: 20px;
- border-radius: 4px;
- background-color: $tc-white;
-
- .boxes {
- margin: 0 50px;
+
+ span {
+ color: $tc-orange;
+ font-size: 15px;
+ padding-left: 5px;
}
-
- .big-titles {
- @include roboto-light;
- font-size: 28px;
- color: $tc-gray-70;
+ }
+ }
+
+ .container {
+ @include flexBox;
+ background-color: transparent;
+ display: flex;
+ padding: 0px;
+ max-width: 1110px;
+ margin: 20px auto;
+ /* .left-area */
+ .left-area {
+ flex: auto;
+
+ .left-area-footer {
+ @include roboto;
+ padding: 0 10px;
+ font-size: 11px;
line-height: 30px;
- padding: 30px 0 30px 6%;
- margin: 0 -50px 20px;
- border-radius: 4px 4px 0 0;
- background: $tc-gray-neutral-light;
- border-bottom: 1px dashed $tc-gray-20;
-
- .optional,
- .required {
- @include roboto;
- position: absolute;
- right: 0;
- font-size: 13px;
+ color: $tc-gray-50;
+
+ span {
float: right;
- padding: 0 20px;
- border-radius: 20px 0 0 20px;
}
-
- .required {
- background: $tc-orange-70;
- color: $tc-white;
+ }
+ }
+
+ .right-area {
+ flex: auto;
+ border-radius: 4px;
+ position: relative;
+
+ /* this selector is too common and it's applied to .spec-question-list thought it shouldn't
+ if also has big priority so we have to fix it here */
+ form > div:not(.spec-question-list) {
+ box-shadow: 0px 1px 3px 0px rgba($tc-black, 0.2);
+ }
+
+ .title {
+ color: $tc-gray-80;
+ @include roboto-bold;
+ }
+
+ .right-area-item {
+ padding: 0 0 70px 0;
+ margin-bottom: 20px;
+ border-radius: 4px;
+ background-color: $tc-white;
+
+ .boxes {
+ margin: 0 50px;
}
-
- .optional {
- background: $tc-gray-10;
+
+ .big-titles {
+ @include roboto-light;
+ font-size: 28px;
+ color: $tc-gray-70;
+ line-height: 30px;
+ padding: 30px 0 30px 6%;
+ margin: 0 -50px 20px;
+ border-radius: 4px 4px 0 0;
+ background: $tc-gray-neutral-light;
+ border-bottom: 1px dashed $tc-gray-20;
+
+ .optional,
+ .required {
+ @include roboto;
+ position: absolute;
+ right: 0;
+ font-size: 13px;
+ float: right;
+ padding: 0 20px;
+ border-radius: 20px 0 0 20px;
+ }
+
+ .required {
+ background: $tc-orange-70;
+ color: $tc-white;
+ }
+
+ .optional {
+ background: $tc-gray-10;
+ color: $gray-color;
+ }
+ }
+
+ .gray-text {
+ @include roboto;
+ font-size: 15px;
color: $gray-color;
+ line-height: 25px;
+
+ strong {
+ font-weight: bold;
+ }
+ }
+
+ &.design-specification-two {
+ padding-bottom: 1px;
+ }
+
+ &.option-groups {
+ padding-bottom: 46px;
}
}
-
- .gray-text {
- @include roboto;
- font-size: 15px;
- color: $gray-color;
- line-height: 25px;
-
- strong {
- font-weight: bold;
+
+ .tab-nav {
+ .center-area {
+ margin: 0 0 0 111px;
+
+ .btn-nav {
+ padding: 0 15px;
+ float: left;
+ @include roboto;
+ font-size: 13px;
+ color: $tc-gray-80;
+ line-height: 16px;
+ }
}
}
-
- &.design-specification-two {
- padding-bottom: 1px;
+
+ .section-additional-notes {
+ .textarea-title {
+ @include roboto;
+ font-size: 13px;
+ color: $tc-gray-70;
+ line-height: 20px;
+ padding-bottom: 10px;
+ }
+
+ textarea {
+ height: 45px;
+ max-width: 100%;
+ text-align: left;
+ text-indent: 0;
+ resize: vertical;
+ }
}
-
- &.option-groups {
- padding-bottom: 46px;
+
+ .right-area-footer {
+ @include tc-label-sm;
+ color: $tc-gray-50;
+ margin-top: 4 * $base_unit;
}
}
-
- .tab-nav {
- .center-area {
- margin: 0 0 0 111px;
-
- .btn-nav {
- padding: 0 15px;
- float: left;
+
+ .contents-list {
+ .right-area {
+ padding-left: 40px;
+
+ .title {
+ @include roboto-bold;
+ font-size: 15px;
+ letter-spacing: 0px;
+ line-height: 25px;
+ }
+
+ .txt {
@include roboto;
font-size: 13px;
color: $tc-gray-80;
- line-height: 16px;
+ line-height: 25px;
+ }
+ }
+
+ &.part-one {
+ .icons {
+ width: 16px;
+ height: 16px;
+ float: left;
+ margin-top: 3px;
+ }
+
+ .icon-box {
+ background-position: -28px -29px;
+ }
+
+ .icon-magic {
+ background-position: -4px -52px;
}
}
}
-
- .section-additional-notes {
- .textarea-title {
- @include roboto;
- font-size: 13px;
- color: $tc-gray-70;
- line-height: 20px;
- padding-bottom: 10px;
+ }
+
+ /* .section-features-module */
+ .section-features-module {
+ margin-top: 20px;
+
+ &.open {
+ .content-boxes {
+ display: block;
}
-
- textarea {
- height: 45px;
- max-width: 100%;
- text-align: left;
- text-indent: 0;
- resize: vertical;
+
+ .bg-contents,
+ .btn-gray-border {
+ display: none;
}
}
-
- .right-area-footer {
- @include tc-label-sm;
- color: $tc-gray-50;
- margin-top: 4 * $base_unit;
+
+ .row {
+ margin-bottom: 5px;
}
- }
-
- .contents-list {
- .right-area {
- padding-left: 40px;
-
- .title {
- @include roboto-bold;
- font-size: 15px;
- letter-spacing: 0px;
- line-height: 25px;
+
+ .bg-contents {
+ @include roboto-medium;
+ font-size: 15px;
+ color: $tc-purple-70;
+ background: $tc-purple-10;
+ // letter-spacing: 10px;
+ width: 100%;
+ height: 40px;
+ line-height: 40px;
+ text-align: center;
+ }
+
+ .content-boxes {
+ display: none;
+ }
+
+ .textarea-title {
+ @include roboto;
+ font-size: 13px;
+ color: $tc-gray-70;
+ line-height: 20px;
+ padding-bottom: 10px;
+ }
+
+ textarea {
+ min-height: 45px;
+ max-width: 100%;
+ text-align: left;
+ text-indent: 0;
+ resize: none;
+ overflow: hidden;
+ }
+ }
+
+ .section-header {
+ display: flex;
+ justify-content: space-between;
+
+ .section-number {
+ @include tc-label-lg;
+ color: $tc-gray-30;
+ padding-right: 6 * $base-unit;
+ }
+ }
+
+ .section-footer {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ background: $tc-gray-neutral-light;
+ height: 70px;
+ margin-top: -70px;
+ margin-bottom: 20px;
+ border-radius: $corner-radius * 2;
+ }
+
+ .section-footer-spec {
+ border-radius: 0 0 $corner-radius * 2 $corner-radius * 2;
+ // margin-top: -10px;
+ // margin-bottom: $base-unit * 4;
+
+ // &:last-child {
+ // margin-bottom: 0;
+ // }
+ }
+
+ /* .section-file-interface */
+ .section-file-interface {
+ .tc-textarea {
+ padding: 5px 10px;
+ font-size: 13px;
+ background: $tc-gray-neutral-light;
+ min-height: 55px;
+ max-width: 100%;
+ line-height: 20px;
+ resize: vertical;
+ }
+
+ .dashed-bottom-border {
+ border-top: 1px dashed $tc-gray-20;
+ border-bottom: none;
+ }
+
+ .textarea-boxes {
+ display: none;
+ }
+
+ .row {
+ &.hover-after {
+ .edit-box {
+ display: block;
+ float: right;
+ }
}
-
- .txt {
- @include roboto;
- font-size: 13px;
- color: $tc-gray-80;
- line-height: 25px;
+
+ &.edit-status {
+ .tc-file-field__inputs,
+ .textarea-boxes,
+ .edit-box {
+ display: block;
+ }
+
+ .title,
+ .txt,
+ .right-txt {
+ display: none;
+ }
+
+ .status {
+ .icon-pen {
+ background-position: -24px 0;
+ margin-top: 4px;
+ }
+
+ .icon-delete {
+ background-position: -24px -48px;
+ margin-top: 4px;
+ }
+ }
}
}
-
- &.part-one {
+
+ .edit-box {
+ display: none;
+
.icons {
- width: 16px;
- height: 16px;
- float: left;
- margin-top: 3px;
+ width: 24px;
+ height: 24px;
+ vertical-align: middle;
+ margin-top: -2px;
+ margin-left: 10px;
}
-
- .icon-box {
- background-position: -28px -29px;
+
+ .icon-pen {
+ background-position: -48px 0;
}
-
- .icon-magic {
- background-position: -4px -52px;
+
+ .icon-delete {
+ background-position: -72px 0;
}
}
- }
- }
-
- /* .section-features-module */
- .section-features-module {
- margin-top: 20px;
-
- &.open {
- .content-boxes {
- display: block;
+
+ .contents-list {
+ .titles {
+ @include roboto-medium;
+ font-size: 15px;
+ color: $gray-color;
+ line-height: 20px;
+ margin-bottom: 2px;
+ }
}
-
- .bg-contents,
- .btn-gray-border {
- display: none;
+
+ .icon-zip {
+ background-position: -51px -27px;
+ width: 42px;
+ height: 42px;
+ float: left;
+ margin-top: 3px;
+ }
+
+ .icon-pen {
+ background-position: 0 0;
+ }
+
+ .right-area {
+ &.padding-left60 {
+ padding-left: 60px;
+ }
+
+ .tc-file-field__inputs {
+ width: 80%;
+ margin-right: 100px;
+ display: none;
+ @include roboto-bold;
+
+ &.height100 {
+ height: 100px;
+ line-height: 10px;
+ }
+
+ &.width {
+ width: 100%;
+ }
+ }
+
+ .zip-title-bar {
+ position: relative;
+
+ .status {
+ float: right;
+
+ .txt {
+ @include roboto;
+ font-size: 15px;
+ color: $gray-color;
+ letter-spacing: 0px;
+ line-height: 20px;
+ }
+ }
+
+ &:after {
+ clear: right;
+ }
+ }
}
}
-
- .row {
- margin-bottom: 5px;
- }
-
- .bg-contents {
- @include roboto-medium;
- font-size: 15px;
- color: $tc-purple-70;
- background: $tc-purple-10;
- // letter-spacing: 10px;
- width: 100%;
- height: 40px;
- line-height: 40px;
+ /* .dashed-boxes */
+ .dashed-boxes {
+ border: 1px dashed $tc-gray-30;
text-align: center;
- }
-
- .content-boxes {
- display: none;
- }
-
- .textarea-title {
- @include roboto;
- font-size: 13px;
- color: $tc-gray-70;
- line-height: 20px;
- padding-bottom: 10px;
- }
-
- textarea {
- min-height: 45px;
- max-width: 100%;
- text-align: left;
- text-indent: 0;
- resize: none;
- overflow: auto;
- }
- }
-
- .section-header {
- display: flex;
- justify-content: space-between;
-
- .section-number {
- @include tc-label-lg;
- color: $tc-gray-30;
- padding-right: 6 * $base-unit;
- }
- }
-
- .section-footer {
- display: flex;
- align-items: center;
- justify-content: center;
- background: $tc-gray-neutral-light;
- height: 70px;
- margin-top: -70px;
- margin-bottom: 20px;
- border-radius: $corner-radius * 2;
- }
-
- .section-footer-spec {
- border-radius: 0 0 $corner-radius * 2 $corner-radius * 2;
- // margin-top: -10px;
- // margin-bottom: $base-unit * 4;
-
- // &:last-child {
- // margin-bottom: 0;
- // }
- }
-
- /* .section-file-interface */
- .section-file-interface {
- .tc-textarea {
- padding: 5px 10px;
- font-size: 13px;
+ margin-bottom: 20px;
background: $tc-gray-neutral-light;
- min-height: 55px;
- max-width: 100%;
- line-height: 20px;
- resize: vertical;
- }
-
- .dashed-bottom-border {
- border-top: 1px dashed $tc-gray-20;
- border-bottom: none;
- }
-
- .textarea-boxes {
- display: none;
- }
-
- .row {
- &.hover-after {
- .edit-box {
- display: block;
- float: right;
- }
- }
-
- &.edit-status {
- .tc-file-field__inputs,
- .textarea-boxes,
- .edit-box {
- display: block;
- }
-
- .title,
- .txt,
- .right-txt {
- display: none;
- }
-
- .status {
- .icon-pen {
- background-position: -24px 0;
- margin-top: 4px;
- }
-
- .icon-delete {
- background-position: -24px -48px;
- margin-top: 4px;
- }
- }
- }
- }
-
- .edit-box {
- display: none;
-
- .icons {
- width: 24px;
- height: 24px;
- vertical-align: middle;
- margin-top: -2px;
- margin-left: 10px;
- }
-
- .icon-pen {
- background-position: -48px 0;
- }
-
- .icon-delete {
- background-position: -72px 0;
- }
- }
-
- .contents-list {
- .titles {
+ border-radius: 2px;
+
+ .title {
@include roboto-medium;
font-size: 15px;
- color: $gray-color;
+ letter-spacing: 0px;
line-height: 20px;
- margin-bottom: 2px;
}
- }
-
- .icon-zip {
- background-position: -51px -27px;
- width: 42px;
- height: 42px;
- float: left;
- margin-top: 3px;
- }
-
- .icon-pen {
- background-position: 0 0;
- }
-
- .right-area {
- &.padding-left60 {
- padding-left: 60px;
+
+ .gray-txt {
+ @include roboto;
+ font-size: 15px;
+ color: $tc-gray-60;
+ line-height: 20px;
}
-
- .tc-file-field__inputs {
- width: 80%;
- margin-right: 100px;
- display: none;
- @include roboto-bold;
-
- &.height100 {
- height: 100px;
- line-height: 10px;
- }
-
- &.width {
- width: 100%;
- }
+
+ .btn-boxes {
+ margin-top: 10px;
}
-
- .zip-title-bar {
+
+ .tc-btn-primary {
position: relative;
-
- .status {
- float: right;
-
- .txt {
+ cursor: pointer;
+ height: 30px;
+ line-height: 30px;
+ padding: 0 13px;
+ display: inline-block;
+ }
+
+ .file-box {
+ opacity: 0;
+ width: 100%;
+ height: 100%;
+ cursor: pointer;
+ position: absolute;
+ left: 0;
+ top: 0;
+ margin: 0;
+ z-index: 555;
+ }
+
+ .icon-file {
+ background-position: -4px -28px;
+ width: 15px;
+ height: 17px;
+ vertical-align: middle;
+ }
+
+ &.drag-boxes {
+ padding: 20px 0;
+ }
+
+ &.flie-list-boxes {
+ .flie-list {
+ border-bottom: 1px dashed $tc-gray-30;
+ padding-bottom: 5px;
+ }
+
+ .row {
+ text-align: left;
+ padding: 10px 20px;
+
+ .file-name {
+ @include roboto-bold;
+ font-size: 15px;
+ color: $title-color;
+ letter-spacing: 0px;
+ line-height: 20px;
+ padding-left: 7px;
+ }
+
+ .upload-status {
@include roboto;
font-size: 15px;
color: $gray-color;
- letter-spacing: 0px;
+ // letter-spacing: 0px;
line-height: 20px;
+ float: right;
+ }
+
+ .white-bar {
+ width: 100%;
+ height: 4px;
+ margin-top: 5px;
+ background: $tc-gray-20;
+ border-radius: 12px;
+ position: relative;
+
+ .blue-bar {
+ background: $tc-dark-blue-70;
+ border-right: 2px solid $tc-gray-neutral-light;
+ border-radius: 10px 0px 0px 10px;
+ height: 4px;
+ position: absolute;
+ left: 0;
+ top: 0;
+
+ &.width23 {
+ width: 23%;
+ }
+
+ &.width75 {
+ width: 75%;
+ }
+ }
}
}
-
- &:after {
- clear: right;
+
+ .file-list-bottom {
+ .txt {
+ color: $title-color;
+ @include roboto-bold;
+ }
+ padding: 20px 0;
}
}
}
- }
- /* .dashed-boxes */
- .dashed-boxes {
- border: 1px dashed $tc-gray-30;
- text-align: center;
- margin-bottom: 20px;
- background: $tc-gray-neutral-light;
- border-radius: 2px;
-
- .title {
- @include roboto-medium;
- font-size: 15px;
- letter-spacing: 0px;
- line-height: 20px;
- }
-
- .gray-txt {
- @include roboto;
- font-size: 15px;
- color: $tc-gray-60;
- line-height: 20px;
- }
-
- .btn-boxes {
- margin-top: 10px;
- }
-
- .tc-btn-primary {
- position: relative;
- cursor: pointer;
- height: 30px;
- line-height: 30px;
- padding: 0 13px;
- display: inline-block;
- }
-
- .file-box {
- opacity: 0;
- width: 100%;
- height: 100%;
- cursor: pointer;
- position: absolute;
- left: 0;
- top: 0;
- margin: 0;
- z-index: 555;
- }
-
- .icon-file {
- background-position: -4px -28px;
- width: 15px;
- height: 17px;
- vertical-align: middle;
- }
-
- &.drag-boxes {
- padding: 20px 0;
- }
-
- &.flie-list-boxes {
- .flie-list {
- border-bottom: 1px dashed $tc-gray-30;
- padding-bottom: 5px;
+ /* .section-form-option */
+ .section-form-option {
+ .bottom-border-titles {
+ margin-bottom: 20px;
}
-
- .row {
+
+ .titles {
text-align: left;
- padding: 10px 20px;
-
- .file-name {
- @include roboto-bold;
- font-size: 15px;
- color: $title-color;
- letter-spacing: 0px;
- line-height: 20px;
- padding-left: 7px;
- }
-
- .upload-status {
- @include roboto;
- font-size: 15px;
- color: $gray-color;
- // letter-spacing: 0px;
- line-height: 20px;
- float: right;
+ @include roboto-bold;
+ font-size: 15px;
+ color: $title-color;
+ line-height: 25px;
+ }
+
+ .gray-txt {
+ @include roboto;
+ font-size: 15px;
+ color: $tc-gray-60;
+ line-height: 20px;
+ }
+
+ .content-boxes {
+ margin-top: -20px;
+ }
+
+ .checkbox-group {
+ margin-top: 10px;
+ }
+
+ .group-item {
+ display: inline-block;
+ vertical-align: middle;
+ margin-right: 42px;
+ }
+
+ .radios-group {
+ margin-top: 10px;
+ }
+
+ .radio {
+ float: left;
+ }
+
+ .ul-list {
+ .hide {
+ display: none;
}
-
- .white-bar {
- width: 100%;
- height: 4px;
- margin-top: 5px;
- background: $tc-gray-20;
- border-radius: 12px;
+
+ li {
position: relative;
-
- .blue-bar {
- background: $tc-dark-blue-70;
- border-right: 2px solid $tc-gray-neutral-light;
- border-radius: 10px 0px 0px 10px;
- height: 4px;
- position: absolute;
- left: 0;
- top: 0;
-
- &.width23 {
- width: 23%;
- }
-
- &.width75 {
- width: 75%;
- }
+
+ .text,
+ .point {
+ @include roboto-medium;
+ font-size: 15px;
+ color: $tc-black;
+ line-height: 18px;
+ padding: 10px 0;
+ @include roboto-bold;
+ color: $title-color;
}
}
- }
-
- .file-list-bottom {
- .txt {
- color: $title-color;
- @include roboto-bold;
+
+ .btn-delete {
+ position: absolute;
+ right: 0;
+ top: 50%;
+ margin-top: -14px;
+
+ &:hover .icon-delete {
+ background-position: -96px 0;
+ width: 24px;
+ height: 24px;
+ }
}
- padding: 20px 0;
- }
- }
- }
- /* .section-form-option */
- .section-form-option {
- .bottom-border-titles {
- margin-bottom: 20px;
- }
-
- .titles {
- text-align: left;
- @include roboto-bold;
- font-size: 15px;
- color: $title-color;
- line-height: 25px;
- }
-
- .gray-txt {
- @include roboto;
- font-size: 15px;
- color: $tc-gray-60;
- line-height: 20px;
- }
-
- .content-boxes {
- margin-top: -20px;
- }
-
- .checkbox-group {
- margin-top: 10px;
- }
-
- .group-item {
- display: inline-block;
- vertical-align: middle;
- margin-right: 42px;
- }
-
- .radios-group {
- margin-top: 10px;
- }
-
- .radio {
- float: left;
- }
-
- .ul-list {
- .hide {
- display: none;
- }
-
- li {
- position: relative;
-
- .text,
+
.point {
- @include roboto-medium;
- font-size: 15px;
- color: $tc-black;
- line-height: 18px;
- padding: 10px 0;
- @include roboto-bold;
- color: $title-color;
+ display: inline-block;
+ margin-right: 20px;
}
- }
-
- .btn-delete {
- position: absolute;
- right: 0;
- top: 50%;
- margin-top: -14px;
-
- &:hover .icon-delete {
- background-position: -96px 0;
+
+ .icons.icon-delete {
+ background-position: -24px -48px;
width: 24px;
height: 24px;
}
}
-
- .point {
- display: inline-block;
- margin-right: 20px;
+
+ .input-box {
+ margin-top: 15px;
}
-
- .icons.icon-delete {
- background-position: -24px -48px;
- width: 24px;
- height: 24px;
+
+ .btn-input-boxes {
+ position: relative;
+ margin-top: 15px;
+ padding-right: 64px;
+
+ .tc-file-field__inputs {
+ width: 100%;
+ }
+
+ .btn-gray-border {
+ width: 54px;
+ position: absolute;
+ right: 0;
+ }
}
}
-
- .input-box {
- margin-top: 15px;
+ }
+
+ .two-col-content.specificationContainer {
+ padding: 0 20px;
+ min-width: 960px;
+ max-width: 1120px;
+ width: auto;
+ margin: 0 auto;
+
+ .left-area {
+ min-width: $sideBarWidth;
+ max-width: $sideBarMaxWidth;
+ margin-right: 20px;
}
-
- .btn-input-boxes {
- position: relative;
- margin-top: 15px;
- padding-right: 64px;
-
- .tc-file-field__inputs {
- width: 100%;
- }
-
- .btn-gray-border {
- width: 54px;
- position: absolute;
- right: 0;
- }
+
+ .right-area {
+ min-width: 500px;
}
}
-}
-
-.two-col-content.specificationContainer {
- padding: 0 20px;
- min-width: 960px;
- max-width: 1120px;
- width: auto;
- margin: 0 auto;
-
- .left-area {
- min-width: $sideBarWidth;
- max-width: $sideBarMaxWidth;
- margin-right: 20px;
+
+ .tc-link {
+ @include roboto;
}
-
- .right-area {
- min-width: 500px;
+
+ .SelectDropdown {
+ margin-bottom: 20px;
}
-}
-
-.tc-link {
- @include roboto;
-}
-
-.SelectDropdown {
- margin-bottom: 20px;
-}
-
-.edit-screen-footer {
- display: flex;
- align-items: center;
- justify-content: center;
- margin-top: 20px;
- margin-bottom: 40px;
- position: relative;
-}
-
-.screen-number-reached-message {
- @include roboto;
- color: white;
-}
-
-.project-name-section {
- display: flex;
- align-items: flex-start;
- margin-bottom: 20px;
-
- .editable-project-name {
- flex: 1;
+
+ .edit-screen-footer {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin-top: 20px;
+ margin-bottom: 40px;
+ position: relative;
}
-
- .dashed-bottom-border {
- flex: 1;
- height: 40px;
- border-bottom: 1px dashed $tc-gray-20;
-
- .project-name {
- word-break: break-all;
- font-size: 20px;
- /*margin-top: 10px;*/
- }
+
+ .screen-number-reached-message {
+ @include roboto;
+ color: white;
}
-
- .read-only-refcode {
- height: 40px;
- align-self: flex-end;
- border-bottom: 1px solid $tc-gray-20;
- padding: 10px;
- position: relative;
- margin-left: 20px;
-
- .refcode-desc {
- @include roboto;
- font-size: 13px;
- color: $tc-gray-30;
- position: absolute;
- bottom: -20px;
- left: 0;
- width: 100%;
- text-align: center;
- font-style: italic;
- white-space: nowrap;
- }
+
+ .prompt {
+ text-align: center;
+ z-index: 999;
+ left: 0;
+ right: 0;
+ margin: auto;
+ position: absolute
}
- .textinput-refcode {
- position: relative;
- width: 100px;
- height: 100%;
- margin-left: 10px;
+ .icon-refresh path {
+ fill: $tc-white;
+ }
- .refcode-desc {
- @include roboto;
- font-size: 12px;
- line-height: 20px;
- color: $tc-gray-50;
- position: absolute;
- bottom: -20px;
- font-style: italic;
+ .project-name-section {
+ display: flex;
+ align-items: flex-start;
+ margin-bottom: 20px;
+
+ .editable-project-name {
+ flex: 1;
}
-
- .project-refcode {
+
+ .dashed-bottom-border {
+ flex: 1;
+ height: 40px;
+ border-bottom: 1px dashed $tc-gray-20;
+
+ .project-name {
+ word-break: break-all;
+ font-size: 20px;
+ /*margin-top: 10px;*/
+ }
+ }
+
+ .read-only-refcode {
+ height: 40px;
+ align-self: flex-end;
+ border-bottom: 1px solid $tc-gray-20;
+ padding: 10px;
+ position: relative;
+ margin-left: 20px;
+
+ .refcode-desc {
+ @include roboto;
+ font-size: 13px;
+ color: $tc-gray-30;
+ position: absolute;
+ bottom: -20px;
+ left: 0;
+ width: 100%;
+ text-align: center;
+ font-style: italic;
+ white-space: nowrap;
+ }
+ }
+
+ .textinput-refcode {
+ position: relative;
+ width: 100px;
+ height: 100%;
+ margin-left: 10px;
+
+ .refcode-desc {
+ @include roboto;
+ font-size: 12px;
+ line-height: 20px;
+ color: $tc-gray-50;
+ position: absolute;
+ bottom: -20px;
+ font-style: italic;
+ }
+
+ .project-refcode {
+ }
}
}
-}
-
-.two-col-content.content .container .tiled-group-item {
- position: relative;
- -webkit-flex: initial;
- flex: initial;
- margin-right: 20px;
- height: 155px;
- width: 135px;
- border: 1px solid $tc-gray-20;
- border-radius: 4px;
- cursor: pointer;
- border: 1px solid $tc-gray-20;
- border-radius: 4px;
- display: inline-block;
- margin: 10px 10px 0;
- position: relative;
- vertical-align: top;
-
- .check-mark {
- display: none;
- }
-
- &.disabled {
- opacity: 0.3;
- }
-
- &:hover {
- border-color: $tc-dark-blue-70;
+
+ .two-col-content.content .container .tiled-group-item {
+ position: relative;
+ -webkit-flex: initial;
+ flex: initial;
+ margin-right: 20px;
+ height: 155px;
+ width: 135px;
+ border: 1px solid $tc-gray-20;
+ border-radius: 4px;
cursor: pointer;
- }
-
- &.active {
- background: $tc-gray-10;
- border-color: $tc-gray-10;
-
- &:after {
- content: '';
- display: block;
- position: absolute;
- top: 10px;
- right: 10px;
- width: 15px;
- height: 15px;
- background: $tc-dark-blue;
- border-radius: 2px;
+ border: 1px solid $tc-gray-20;
+ border-radius: 4px;
+ display: inline-block;
+ margin: 10px 10px 0;
+ position: relative;
+ vertical-align: top;
+
+ .check-mark {
+ display: none;
}
-
- &:before {
- content: '';
- position: absolute;
- z-index: 1;
- top: 12px;
- right: 15px;
- width: 5px;
- border-width: 0 2px 2px 0;
- border-style: solid;
- border-color: $tc-white;
- height: 10px;
- transform: rotate(45deg);
- -o-transform: rotate(45deg);
- -ms-transform: rotate(45deg);
- -webkit-transform: rotate(45deg);
+
+ &.disabled {
+ opacity: 0.3;
}
-
+
&:hover {
+ border-color: $tc-dark-blue-70;
+ cursor: pointer;
+ }
+
+ &.active {
+ background: $tc-gray-10;
border-color: $tc-gray-10;
+
+ &:after {
+ content: '';
+ display: block;
+ position: absolute;
+ top: 10px;
+ right: 10px;
+ width: 15px;
+ height: 15px;
+ background: $tc-dark-blue;
+ border-radius: 2px;
+ }
+
+ &:before {
+ content: '';
+ position: absolute;
+ z-index: 1;
+ top: 12px;
+ right: 15px;
+ width: 5px;
+ border-width: 0 2px 2px 0;
+ border-style: solid;
+ border-color: $tc-white;
+ height: 10px;
+ transform: rotate(45deg);
+ -o-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ -webkit-transform: rotate(45deg);
+ }
+
+ &:hover {
+ border-color: $tc-gray-10;
+ }
+ }
+
+ span.title {
+ display: block;
+ margin-top: 20px;
+ @include roboto-bold;
+ color: $tc-black;
+ font-size: 13px;
+ text-align: center;
+ }
+
+ span.icon {
+ text-align: center;
+ display: block;
+ height: 50px;
+ margin: 30px auto 20px auto;
+ }
+
+ small {
+ display: block;
+ font-size: 11px;
+ text-align: center;
+ color: $tc-gray-50;
+ @include roboto;
+ margin-top: 10px;
}
}
-
- span.title {
- display: block;
- margin-top: 20px;
- @include roboto-bold;
- color: $tc-black;
- font-size: 13px;
- text-align: center;
- }
-
- span.icon {
- text-align: center;
- display: block;
- height: 50px;
- margin: 30px auto 20px auto;
- }
-
- small {
- display: block;
- font-size: 11px;
- text-align: center;
- color: $tc-gray-50;
- @include roboto;
- margin-top: 10px;
- }
-}
\ No newline at end of file
+}
diff --git a/src/projects/detail/containers/SpecificationContainer.jsx b/src/projects/detail/containers/SpecificationContainer.jsx
index eff47a15c..fc2aba961 100644
--- a/src/projects/detail/containers/SpecificationContainer.jsx
+++ b/src/projects/detail/containers/SpecificationContainer.jsx
@@ -38,10 +38,10 @@ class SpecificationContainer extends Component {
shouldComponentUpdate(nextProps, nextState) {
return !(
- _.isEqual(nextProps.project, this.props.project)
+ _.isEqual(nextProps.project, this.props.project)
&& _.isEqual(nextState.project, this.state.project)
&& _.isEqual(nextProps.error, this.props.error)
- )
+ )
}
saveProject(model) {
// compare old & new
@@ -56,7 +56,7 @@ class SpecificationContainer extends Component {
let specification = 'topcoder.v1'
if (project.details && project.details.products && project.details.products[0])
specification = typeToSpecification[project.details.products[0]]
- let sections = require(`../../../config/projectQuestions/${specification}`).default
+ const sections = require(`../../../config/projectQuestions/${specification}`).default
return (
diff --git a/src/projects/list/components/Projects/NewProjectCard.jsx b/src/projects/list/components/Projects/NewProjectCard.jsx
index 92b31c457..0cfd21baf 100644
--- a/src/projects/list/components/Projects/NewProjectCard.jsx
+++ b/src/projects/list/components/Projects/NewProjectCard.jsx
@@ -8,16 +8,14 @@ import BoldAdd from '../../../../assets/icons/ui-16px-1_bold-add.svg'
function NewProjectCard() {
return (
-
-
+
-
-
+
)
}
diff --git a/src/projects/list/components/Projects/ProjectCard.jsx b/src/projects/list/components/Projects/ProjectCard.jsx
index abce8629a..c9c3046dd 100644
--- a/src/projects/list/components/Projects/ProjectCard.jsx
+++ b/src/projects/list/components/Projects/ProjectCard.jsx
@@ -2,13 +2,13 @@ import React from 'react'
import PT from 'prop-types'
import { withRouter } from 'react-router-dom'
import { getProjectRoleForCurrentUser } from '../../../../helpers/projectHelper'
-import AvatarGroup from '../../../../components/AvatarGroup/AvatarGroup'
import ProjectCardHeader from './ProjectCardHeader'
import ProjectCardBody from './ProjectCardBody'
+import ProjectManagerAvatars from './ProjectManagerAvatars'
import './ProjectCard.scss'
function ProjectCard({ project, duration, disabled, currentUser, history, onChangeStatus}) {
- let className = `ProjectCard ${ disabled ? 'disabled' : 'enabled'}`
+ const className = `ProjectCard ${ disabled ? 'disabled' : 'enabled'}`
if (!project) return null
const currentMemberRole = getProjectRoleForCurrentUser({ project, currentUserId: currentUser.userId})
return (
@@ -19,9 +19,9 @@ function ProjectCard({ project, duration, disabled, currentUser, history, onChan
}}
>
)
diff --git a/src/projects/list/components/Projects/ProjectCard.scss b/src/projects/list/components/Projects/ProjectCard.scss
index 5b51307e5..b624cfee9 100644
--- a/src/projects/list/components/Projects/ProjectCard.scss
+++ b/src/projects/list/components/Projects/ProjectCard.scss
@@ -1,73 +1,76 @@
-@import 'tc-includes';
-
-.ProjectCard {
- display: flex;
- cursor: pointer;
- flex-direction: column;
- height: 100%;
- background-color: $tc-white;
- border-radius: 6px;
- padding: 4 * $base_unit;
-
- &:hover {
- box-shadow: 0 2px 9px 0 rgba($tc-gray-90, 0.15);
- }
-
- &.NewProjectCard {
- background-color: $tc-gray-neutral-dark;
- border: 1px dashed $tc-gray-30;
+@import '~tc-ui/src/styles/tc-includes';
+:global {
+ .ProjectCard {
+ display: flex;
+ cursor: pointer;
+ flex-direction: column;
+ height: 100%;
+ background-color: $tc-white;
+ border-radius: 6px;
+ padding: 4 * $base_unit;
+
&:hover {
- box-shadow: none;
-
- .card-body .new-project-button .new-project-icon {
- @include background-gradient($tc-dark-blue-70, $tc-dark-blue);
- }
+ box-shadow: 0 2px 9px 0 rgba($tc-gray-90, 0.15);
}
-
- .card-body {
- display: flex;
- justify-content: center;
- align-items: center;
-
- .new-project-button {
- @include tc-label-md;
- text-transform: uppercase;
- color: $tc-dark-blue;
+
+ &.NewProjectCard {
+ background-color: $tc-gray-neutral-dark;
+ border: 1px dashed $tc-gray-30;
+
+ &:hover {
+ box-shadow: none;
+
+ .card-body .new-project-button .new-project-icon {
+ @include background-gradient($tc-dark-blue-70, $tc-dark-blue);
+ }
+ }
+
+ .card-body {
display: flex;
justify-content: center;
- flex-direction: column;
align-items: center;
-
- .new-project-icon {
- width: 40px;
- height: 40px;
- background-color: $tc-dark-blue;
- border-radius: 100%;
- padding: 12px;
-
- svg {
- fill: $tc-white;
+
+ .new-project-button {
+ @include tc-label-md;
+ text-transform: uppercase;
+ color: $tc-dark-blue;
+ display: flex;
+ justify-content: center;
+ flex-direction: column;
+ align-items: center;
+
+ .new-project-icon {
+ width: 40px;
+ height: 40px;
+ background-color: $tc-dark-blue;
+ border-radius: 100%;
+ padding: 12px;
+
+ svg {
+ fill: $tc-white;
+ }
+ margin-bottom: 4 * $base_unit;
}
- margin-bottom: 4 * $base_unit;
}
}
}
- }
-
- .card-header {
- margin-bottom: 4 * $base_unit;
- }
-
- .card-body {
- flex: 1;
-
- .ProjectStatus .status-header {
- cursor: pointer;
+
+ .card-header {
+ margin-bottom: 4 * $base_unit;
+ }
+
+ .card-body {
+ flex: 1;
+
+ .ProjectStatus .status-header {
+ cursor: pointer;
+ }
+ }
+
+ .card-footer {
+ // padding-top: 4 * $base_unit;
}
}
-
- .card-footer {
- // padding-top: 4 * $base_unit;
- }
-}
\ No newline at end of file
+}
+
\ No newline at end of file
diff --git a/src/projects/list/components/Projects/ProjectCardBody.scss b/src/projects/list/components/Projects/ProjectCardBody.scss
index 1ab642b26..52f6a683d 100644
--- a/src/projects/list/components/Projects/ProjectCardBody.scss
+++ b/src/projects/list/components/Projects/ProjectCardBody.scss
@@ -1,57 +1,59 @@
-@import 'tc-includes';
-
-.project-card-body {
- flex: 2;
-
- .project-description {
- overflow: hidden;
- // max-height: 180px;
- // min-height: 180px;
- color: $tc-gray-80;
- @include tc-label-md;
-
- .read-more-link {
- white-space: nowrap;
- color: $tc-dark-blue;
- }
- }
-
- .project-status {
- border-top: 1px solid $tc-gray-10;
- border-bottom: 1px solid $tc-gray-10;
- display: flex;
- justify-content: center;
- margin-top: 20px;
- padding: 5px 0;
-
- .panel { // avoid double padding for editable project status
- padding: 0;
- }
-
- svg {
- margin-top: 7px;
- display: inline-block;
+@import '~tc-ui/src/styles/tc-includes';
+
+:global {
+ .project-card-body {
+
+ .project-description {
+ overflow: hidden;
+ // max-height: 180px;
+ // min-height: 180px;
+ color: $tc-gray-80;
+ @include tc-label-md;
+
+ .read-more-link {
+ white-space: nowrap;
+ color: $tc-dark-blue;
+ }
}
+
+ .project-status {
+ border-top: 1px solid $tc-gray-10;
+ border-bottom: 1px solid $tc-gray-10;
+ display: flex;
+ justify-content: center;
+ margin-top: 20px;
+ padding: 5px 0;
+
+ .panel { // avoid double padding for editable project status
+ padding: 0;
+ }
- .status-header {
- .status-label {
- text-transform: uppercase;
- line-height: 30px;
+ svg {
+ margin-top: 7px;
+ display: inline-block;
+ }
+
+ .status-header {
+ .status-label {
+ text-transform: uppercase;
+ line-height: 30px;
+ }
}
.caret {
margin-top: 3px;
}
- }
-
- .project-progress {
- display: flex;
-
- .progress-text {
- text-transform: uppercase;
- margin-left: 10px;
- line-height: 16px;
+
+ .project-progress {
+ display: flex;
+
+ .progress-text {
+ text-transform: uppercase;
+ margin-left: 10px;
+ line-height: 16px;
+ }
}
}
}
}
+
diff --git a/src/projects/list/components/Projects/ProjectCardHeader.scss b/src/projects/list/components/Projects/ProjectCardHeader.scss
index a777584fe..d22daf72d 100644
--- a/src/projects/list/components/Projects/ProjectCardHeader.scss
+++ b/src/projects/list/components/Projects/ProjectCardHeader.scss
@@ -1,41 +1,42 @@
-@import 'tc-includes';
-
- .project-card-header {
- flex: 1;
- .project-header {
- display: flex;
- flex-direction: row;
- min-height: 40px;
- overflow: hidden;
-
- .project-type-icon {
- height: 32px;
- margin-top: 4px;
- vertical-align: middle;
- display: inline-block;
- }
+@import '~tc-ui/src/styles/tc-includes';
- .project-header-details {
+:global {
+ .project-card-header {
+ .project-header {
display: flex;
- flex-direction: column;
- margin-left: 2 * $base_unit;
- line-height: 3 * $base_unit;
-
- .project-name {
- @include roboto-medium;
- font-size: $tc-heading-sm;
- line-height: $base-unit * 4;
- color: $tc-black;
+ flex-direction: row;
+ min-height: 40px;
+ overflow: hidden;
+
+ .project-type-icon {
+ height: 32px;
+ margin-top: 4px;
+ vertical-align: middle;
+ display: inline-block;
}
-
- .project-date {
- @include tc-label-xs;
- text-transform: uppercase;
- color: $tc-gray-50;
- margin-top: $base_unit;
+
+ .project-header-details {
+ display: flex;
+ flex-direction: column;
+ margin-left: 2 * $base_unit;
+ line-height: 3 * $base_unit;
+
+ .project-name {
+ @include roboto-medium;
+ font-size: $tc-heading-sm;
+ line-height: $base-unit * 4;
+ color: $tc-black;
+ }
+
+ .project-date {
+ @include tc-label-xs;
+ text-transform: uppercase;
+ color: $tc-gray-50;
+ margin-top: $base_unit;
+ }
}
}
}
- }
-
-
\ No newline at end of file
+
+}
+
diff --git a/src/projects/list/components/Projects/ProjectDirectLinks.jsx b/src/projects/list/components/Projects/ProjectDirectLinks.jsx
index c318e0bc2..289c2cb46 100644
--- a/src/projects/list/components/Projects/ProjectDirectLinks.jsx
+++ b/src/projects/list/components/Projects/ProjectDirectLinks.jsx
@@ -10,8 +10,8 @@ function ProjectDirectLink({ directLinks }) {
)
diff --git a/src/projects/list/components/Projects/ProjectDirectLinks.scss b/src/projects/list/components/Projects/ProjectDirectLinks.scss
index 3a48a6531..dd0bfa99c 100644
--- a/src/projects/list/components/Projects/ProjectDirectLinks.scss
+++ b/src/projects/list/components/Projects/ProjectDirectLinks.scss
@@ -1,19 +1,22 @@
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.project-direct-links {
- @include roboto-medium;
- font-size: $tc-label-md;
- color: $tc-gray-40;
- line-height: $base-unit*6;
- padding-top: 2 * $base_unit;
- padding-left: 4 * $base_unit;
- padding-right: 4 * $base_unit;
- ul {
- padding: 0;
- li {
- .icon-direct-arrow {
- margin-right: 20px;
+:global {
+ .project-direct-links {
+ @include roboto-medium;
+ font-size: $tc-label-md;
+ color: $tc-gray-40;
+ line-height: $base-unit*6;
+ padding-top: 2 * $base_unit;
+ padding-left: 4 * $base_unit;
+ padding-right: 4 * $base_unit;
+ ul {
+ padding: 0;
+ li {
+ .icon-direct-arrow {
+ margin-right: 20px;
+ }
}
}
}
-}
\ No newline at end of file
+}
+
\ No newline at end of file
diff --git a/src/projects/list/components/Projects/ProjectListNavHeader.jsx b/src/projects/list/components/Projects/ProjectListNavHeader.jsx
index 0fe74bde0..e058a2a24 100644
--- a/src/projects/list/components/Projects/ProjectListNavHeader.jsx
+++ b/src/projects/list/components/Projects/ProjectListNavHeader.jsx
@@ -1,10 +1,13 @@
require('./ProjectListNavHeader.scss')
+import _ from 'lodash'
+import querystring from 'query-string'
import React, { Component } from 'react'
import PT from 'prop-types'
import { PROJECT_STATUS } from '../../../../config/constants'
import CardView from '../../../../assets/icons/ui-16px-2_grid-45-gray.svg'
import GridView from '../../../../assets/icons/grid-list-ico.svg'
+import { SwitchButton } from 'appirio-tech-react-components'
export default class ProjectListNavHeader extends Component {
@@ -14,6 +17,7 @@ export default class ProjectListNavHeader extends Component {
this.state = {}
this.onItemClick = this.onItemClick.bind(this)
this.switchViews = this.switchViews.bind(this)
+ this.handleMyProjectsFilter = this.handleMyProjectsFilter.bind(this)
}
componentWillMount() {
this.setState({
@@ -40,24 +44,71 @@ export default class ProjectListNavHeader extends Component {
this.props.changeView(e.currentTarget.dataset.view)
}
+ handleMyProjectsFilter(e) {
+
+ this.applyFilters({memberOnly: e.target.checked})
+ }
+
+ applyFilters(filter) {
+
+ const criteria = _.assign({}, this.props.criteria, filter)
+ if (criteria && criteria.keyword) {
+ criteria.keyword = encodeURIComponent(criteria.keyword)
+ // force sort criteria to best match
+ criteria.sort = 'best match'
+ }
+ this.routeWithParams(criteria)
+ }
+
+ routeWithParams(criteria) {
+ // because criteria is changed disable infinite autoload
+ this.props.setInfiniteAutoload(false)
+ // remove any null values
+ criteria = _.pickBy(criteria, _.identity)
+ this.props.history.push({
+ pathname: '/projects',
+ search: '?' + querystring.stringify(_.assign({}, criteria))
+ })
+ this.props.loadProjects(criteria)
+ }
+
render() {
const options = [
{ status: null, label: 'All projects' },
- ...PROJECT_STATUS.sort((a, b) => a.order > b.order).map((item) => ({status: item.value, label: item.name}))
+ ...PROJECT_STATUS.sort((a, b) => {
+ if ( a.order < b.order ){
+ return -1
+ }
+ if ( a.order > b.order ){
+ return 1
+ }
+ return 0
+ }).map((item) => ({status: item.value, label: item.name}))
]
return (
+ {
+ options.map((item, i) =>
+ (
+ {item.label}
+ )
+ )
+ }
+
+
+
@@ -75,5 +126,9 @@ export default class ProjectListNavHeader extends Component {
}
ProjectListNavHeader.propTypes = {
applyFilters: PT.func.isRequired,
- changeView: PT.func.isRequired
+ changeView: PT.func.isRequired,
+ criteria: PT.object.isRequired,
+ history: PT.object.isRequired,
+ setInfiniteAutoload: PT.func.isRequired,
+ loadProjects: PT.func.isRequired
}
diff --git a/src/projects/list/components/Projects/ProjectListNavHeader.scss b/src/projects/list/components/Projects/ProjectListNavHeader.scss
index fd9958345..a37858668 100644
--- a/src/projects/list/components/Projects/ProjectListNavHeader.scss
+++ b/src/projects/list/components/Projects/ProjectListNavHeader.scss
@@ -1,124 +1,131 @@
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.list-nav-container {
- display: flex;
- flex-direction: row;
- flex-wrap: nowrap;
- justify-content: space-between;
- margin-bottom: 12px;
- margin-top: 30px;
- margin-left: 20px;
- margin-right: 20px;
-
- .left-wrapper {
- flex: 1 1 auto;
+:global {
+ .list-nav-container {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
- justify-content: flex-start;
- align-content: flex-start;
-
- .list-nav-item {
- flex: 0 1 auto;
- }
- }
-
- .right-wrapper {
- flex: 1 1 20%;
- display: flex;
- flex-direction: row;
- flex-wrap: nowrap;
- justify-content: flex-end;
-
- .list-nav-item {
- flex: 1;
- }
- }
-
- .list-nav-item {
- position: relative;
- display: block;
-
- &.nav-icon {
- flex: 0 0 46px;
- }
- }
-
- .list-nav-btn {
- position: relative;
- display: inline-block;
- background-color: transparent;
-
- &:focus {
- outline: 0;
- }
-
- &.lg {
- padding: 0 15px;
- margin-right: 5px;
- font-size: 13px;
- line-height: 30px;
- @include roboto;
- color: $tc-gray-70;
- overflow: hidden;
- white-space: nowrap;
- text-overflow: ellipsis;
- }
-
- &.sm {
- width: 36px;
- height: 30px;
- }
-
- &.active,
- &:hover {
- color: $tc-black;
- @include roboto-medium;
- font-size: 13px;
- background-color: $tc-white;
- border-radius: 6px;
- box-shadow: 0px 1px 3px 0px $tc-gray-30;
+ justify-content: space-between;
+ margin-bottom: 12px;
+ margin-top: 30px;
+ margin-left: 20px;
+ margin-right: 20px;
+
+ .left-wrapper {
+ flex: 1 1 auto;
+ display: flex;
+ flex-direction: row;
+ flex-wrap: nowrap;
+ justify-content: flex-start;
+ align-content: flex-start;
+
+ .list-nav-item {
+ flex: 0 1 auto;
+ }
}
-
- &.right {
+
+ .right-wrapper {
+ flex: 1 1 20%;
+ display: flex;
+ flex-direction: row;
+ flex-wrap: nowrap;
justify-content: flex-end;
- }
-
- &.active {
- .grid-view-ico g,
- .card-view-ico path {
- fill: $tc-black;
+
+ .list-nav-item {
+ flex: 1;
}
}
-
- .grid-view-ico {
+
+ .list-nav-item {
position: relative;
- font-size: 0;
- line-height: 0;
- width: 16px;
- height: 16px;
display: block;
- position: absolute;
- top: 8px;
- left: 10px;
+
+ &.nav-icon {
+ flex: 0 0 46px;
+ }
}
- .card-view-ico {
+ .primary-filter {
+ margin-right: 20px;
+ }
+
+ .list-nav-btn {
position: relative;
- font-size: 0;
- line-height: 0;
- width: 16px;
- height: 16px;
- display: block;
- position: absolute;
- top: 7px;
- left: 10px;
-
- &:hover i,
- &.active i {
+ display: inline-block;
+ background-color: transparent;
+
+ &:focus {
+ outline: 0;
+ }
+
+ &.lg {
+ padding: 0 15px;
+ margin-right: 5px;
+ font-size: 13px;
+ line-height: 30px;
+ @include roboto;
+ color: $tc-gray-70;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ }
+
+ &.sm {
+ width: 36px;
+ height: 30px;
+ }
+
+ &.active,
+ &:hover {
+ color: $tc-black;
+ @include roboto-medium;
+ font-size: 13px;
+ background-color: $tc-white;
+ border-radius: 6px;
+ box-shadow: 0px 1px 3px 0px $tc-gray-30;
+ }
+
+ &.right {
+ justify-content: flex-end;
+ }
+
+ &.active {
+ .grid-view-ico g,
+ .card-view-ico path {
+ fill: $tc-black;
+ }
+ }
+
+ .grid-view-ico {
+ position: relative;
+ font-size: 0;
+ line-height: 0;
+ width: 16px;
+ height: 16px;
+ display: block;
+ position: absolute;
+ top: 8px;
+ left: 10px;
+ }
+
+ .card-view-ico {
+ position: relative;
font-size: 0;
line-height: 0;
+ width: 16px;
+ height: 16px;
+ display: block;
+ position: absolute;
+ top: 7px;
+ left: 10px;
+
+ &:hover i,
+ &.active i {
+ font-size: 0;
+ line-height: 0;
+ }
}
}
}
}
+
\ No newline at end of file
diff --git a/src/projects/list/components/Projects/ProjectListProjectColHeader.jsx b/src/projects/list/components/Projects/ProjectListProjectColHeader.jsx
index 4190f25d9..99158e72d 100644
--- a/src/projects/list/components/Projects/ProjectListProjectColHeader.jsx
+++ b/src/projects/list/components/Projects/ProjectListProjectColHeader.jsx
@@ -2,7 +2,7 @@ import React from 'react'
import PropTypes from 'prop-types'
import _ from 'lodash'
import cn from 'classnames'
-import { Dropdown } from 'appirio-tech-react-components'
+import Dropdown from 'appirio-tech-react-components/components/Dropdown/Dropdown'
import IconCarretDownActive from '../../assets/icons/arrow-6px-carret-down-active.svg'
import IconCarretDownNormal from '../../../../assets/icons/arrow-6px-carret-down-normal.svg'
import IconCheckDark from '../../../../assets/icons/check-dark.svg'
diff --git a/src/projects/list/components/Projects/ProjectListTimeSortColHeader.jsx b/src/projects/list/components/Projects/ProjectListTimeSortColHeader.jsx
index 3c577b447..86372ccab 100644
--- a/src/projects/list/components/Projects/ProjectListTimeSortColHeader.jsx
+++ b/src/projects/list/components/Projects/ProjectListTimeSortColHeader.jsx
@@ -2,7 +2,7 @@ import React from 'react'
import PropTypes from 'prop-types'
import _ from 'lodash'
import cn from 'classnames'
-import { Dropdown } from 'appirio-tech-react-components'
+import Dropdown from 'appirio-tech-react-components/components/Dropdown/Dropdown'
import IconCarretDownActive from '../../../../assets/icons/arrow-6px-carret-down-active.svg'
import IconCarretDownNormal from '../../../../assets/icons/arrow-6px-carret-down-normal.svg'
import IconCheckDark from '../../../../assets/icons/check-dark.svg'
@@ -53,9 +53,9 @@ class ProjectListTimeSortColHeader extends React.Component {
}
render() {
+ const {currentSortField, sortHandler} = this.props
const cur = _.find(options, o => currentSortField === o.val)
|| options[0]
- const {currentSortField, sortHandler} = this.props
return (
@@ -65,19 +65,19 @@ class ProjectListTimeSortColHeader extends React.Component {
{!this.state.focused?
:
}
-
- {
- options.map((item, i) => {
- const activeClass = cn({
- active: item.val === currentSortField
+
+ {
+ options.map((item, i) => {
+ const activeClass = cn({
+ active: item.val === currentSortField
+ })
+ return ( sortHandler(item.val)}>
+ {activeClass? : ''}
+ {item.label}
+ )
})
- return ( sortHandler(item.val)}>
- {activeClass? : ''}
- {item.label}
- )
- })
- }
-
+ }
+
diff --git a/src/projects/list/components/Projects/ProjectManagerAvatars.jsx b/src/projects/list/components/Projects/ProjectManagerAvatars.jsx
index 7e4b1fd6f..f2843f86d 100644
--- a/src/projects/list/components/Projects/ProjectManagerAvatars.jsx
+++ b/src/projects/list/components/Projects/ProjectManagerAvatars.jsx
@@ -5,14 +5,14 @@ import UserTooltip from '../../../../components/User/UserTooltip'
require('./ProjectManagerAvatars.scss')
-const ProjectManagerAvatars = ({ managers }) => {
+const ProjectManagerAvatars = ({ managers, maxShownNum = 3 }) => {
let extM = false
if (!managers || !managers.length)
return Unclaimed
const uniqManagers = _.uniqBy(managers, 'userId')
- if (uniqManagers.length > 3) {
- extM = uniqManagers.length - 3
- uniqManagers.length = 3
+ if (uniqManagers.length > maxShownNum) {
+ extM = uniqManagers.length - maxShownNum
+ uniqManagers.length = maxShownNum
}
return (
diff --git a/src/projects/list/components/Projects/ProjectManagerAvatars.scss b/src/projects/list/components/Projects/ProjectManagerAvatars.scss
index 5bf417ce9..664c6436e 100644
--- a/src/projects/list/components/Projects/ProjectManagerAvatars.scss
+++ b/src/projects/list/components/Projects/ProjectManagerAvatars.scss
@@ -1,18 +1,21 @@
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.stack-avatar {
- position: relative;
- display: block;
- float: left;
-}
-
-.plus-user {
- position: relative;
- @include roboto-bold;
- font-weight: 700;
- font-size: 12px;
- color: $tc-gray-80;
- top: 7px;
- left: 10px;
- user-select: none;
+:global {
+ .stack-avatar {
+ position: relative;
+ display: block;
+ float: left;
+ }
+
+ .plus-user {
+ position: relative;
+ @include roboto-bold;
+ font-weight: 700;
+ font-size: 12px;
+ color: $tc-gray-80;
+ top: 7px;
+ left: 10px;
+ user-select: none;
+ }
}
+
\ No newline at end of file
diff --git a/src/projects/list/components/Projects/ProjectSegmentSelect.jsx b/src/projects/list/components/Projects/ProjectSegmentSelect.jsx
index b491c9175..597482827 100644
--- a/src/projects/list/components/Projects/ProjectSegmentSelect.jsx
+++ b/src/projects/list/components/Projects/ProjectSegmentSelect.jsx
@@ -2,7 +2,7 @@ import React from 'react'
import PropTypes from 'prop-types'
import _ from 'lodash'
import cn from 'classnames'
-import { Dropdown } from 'appirio-tech-react-components'
+import Dropdown from 'appirio-tech-react-components/components/Dropdown/Dropdown'
import IconCheckDark from '../../assets/icons/check-dark.svg'
@@ -27,19 +27,19 @@ class ProjectSegmentSelect extends React.Component {
{cur.label}
-
- {
- options.map((item, i) => {
- const activeClass = cn({
- active: item.val === currentSortField
+
+ {
+ options.map((item, i) => {
+ const activeClass = cn({
+ active: item.val === currentSortField
+ })
+ return (
+ {activeClass? : ''}
+ {item.label}
+ )
})
- return (
- {activeClass? : ''}
- {item.label}
- )
- })
- }
-
+ }
+
diff --git a/src/projects/list/components/Projects/Projects.jsx b/src/projects/list/components/Projects/Projects.jsx
index ec65fb0ad..4640d4f9a 100755
--- a/src/projects/list/components/Projects/Projects.jsx
+++ b/src/projects/list/components/Projects/Projects.jsx
@@ -8,12 +8,13 @@ import ProjectListNavHeader from './ProjectListNavHeader'
import ProjectsGridView from './ProjectsGridView'
import ProjectsCardView from './ProjectsCardView'
import { loadProjects, setInfiniteAutoload, setProjectsListView } from '../../../actions/loadProjects'
+import { sortProjects } from '../../../actions/sortProjects'
import _ from 'lodash'
import querystring from 'query-string'
import { updateProject } from '../../../actions/project'
import { ROLE_CONNECT_MANAGER, ROLE_CONNECT_COPILOT, ROLE_ADMINISTRATOR,
ROLE_CONNECT_ADMIN, PROJECT_STATUS, PROJECT_STATUS_CANCELLED, PROJECT_STATUS_ACTIVE,
- PROJECT_LIST_DEFAULT_CRITERIA, PROJECTS_LIST_VIEW } from '../../../../config/constants'
+ PROJECT_LIST_DEFAULT_CRITERIA, PROJECTS_LIST_VIEW, PROJECTS_LIST_PER_PAGE } from '../../../../config/constants'
const page500 = compose(
withProps({code:500})
@@ -32,6 +33,7 @@ class Projects extends Component {
this.onChangeStatus = this.onChangeStatus.bind(this)
this.onPageChange = this.onPageChange.bind(this)
this.applyFilters = this.applyFilters.bind(this)
+ this.applySearchFilter = this.applySearchFilter.bind(this)
this.changeView = this.changeView.bind(this)
this.init = this.init.bind(this)
this.removeScrollPosition = this.removeScrollPosition.bind(this)
@@ -121,10 +123,18 @@ class Projects extends Component {
}
sortHandler(fieldName) {
- const criteria = _.assign({}, this.props.criteria, {
- sort: fieldName
- })
- this.routeWithParams(criteria)
+ const hasMore = this.props.pageNum * PROJECTS_LIST_PER_PAGE < this.props.totalCount
+ if (hasMore)
+ {
+ const criteria = _.assign({}, this.props.criteria, {
+ sort: fieldName
+ })
+ this.routeWithParams(criteria)
+ }
+ else
+ {
+ this.props.sortProjects(fieldName)
+ }
}
applyFilters(filter) {
@@ -132,6 +142,16 @@ class Projects extends Component {
this.routeWithParams(criteria)
}
+ applySearchFilter(filter) {
+ const criteria = _.assign({}, this.props.criteria, filter)
+ if (criteria && criteria.keyword) {
+ criteria.keyword = encodeURIComponent(criteria.keyword)
+ // force sort criteria to best match
+ criteria.sort = 'best match'
+ }
+ this.routeWithParams(criteria)
+ }
+
changeView(view) {
this.setState({selectedView : view})
}
@@ -149,7 +169,7 @@ class Projects extends Component {
}
render() {
- const { isPowerUser, isLoading, totalCount, criteria, currentUser, projectsListView, setProjectsListView } = this.props
+ const { isPowerUser, isLoading, totalCount, criteria, currentUser, projectsListView, setProjectsListView, setInfiniteAutoload, loadProjects, history } = this.props
// show walk through if user is customer and no projects were returned
// for default filters
const showWalkThrough = !isLoading && totalCount === 0 &&
@@ -162,6 +182,7 @@ class Projects extends Component {
@@ -193,7 +214,7 @@ class Projects extends Component {
{(isPowerUser && !showWalkThrough) &&
-
}
+ }
{ showWalkThrough ? : projectsView }
@@ -233,6 +254,6 @@ const mapStateToProps = ({ projectSearch, members, loadUser, projectState }) =>
}
}
-const actionsToBind = { loadProjects, setInfiniteAutoload, updateProject, setProjectsListView }
+const actionsToBind = { loadProjects, setInfiniteAutoload, updateProject, setProjectsListView, sortProjects }
export default withRouter(connect(mapStateToProps, actionsToBind)(Projects))
diff --git a/src/projects/list/components/Projects/ProjectsCardView.jsx b/src/projects/list/components/Projects/ProjectsCardView.jsx
index ce50b4cb7..83a39c571 100644
--- a/src/projects/list/components/Projects/ProjectsCardView.jsx
+++ b/src/projects/list/components/Projects/ProjectsCardView.jsx
@@ -4,7 +4,6 @@ import _ from 'lodash'
import InfiniteScroll from 'react-infinite-scroller'
import ProjectCard from './ProjectCard'
import NewProjectCard from './NewProjectCard'
-import LoadingIndicator from '../../../../components/LoadingIndicator/LoadingIndicator'
import { PROJECTS_LIST_PER_PAGE } from '../../../../config/constants'
import { setDuration } from '../../../../helpers/projectHelper'
@@ -45,6 +44,12 @@ const ProjectsCardView = props => {
setInfiniteAutoload(true)
}
const hasMore = pageNum * PROJECTS_LIST_PER_PAGE < totalCount
+ const placeholders = []
+ if (isLoading & hasMore) {
+ for (let i = 0; i < PROJECTS_LIST_PER_PAGE; i++) {
+ placeholders.push({ isPlaceholder: true })
+ }
+ }
return (
@@ -55,10 +60,9 @@ const ProjectsCardView = props => {
hasMore={hasMore}
threshold={500}
>
- { projects.map(renderProject)}
+ { [...projects, ...placeholders].map(renderProject)}
- { isLoading &&
}
{ !isLoading && !infiniteAutoload && hasMore &&
Load more projects }
{ !isLoading && !hasMore &&
No more {projectsStatus} projects }
diff --git a/src/projects/list/components/Projects/ProjectsGridView.jsx b/src/projects/list/components/Projects/ProjectsGridView.jsx
index e0185bd00..41b34c135 100644
--- a/src/projects/list/components/Projects/ProjectsGridView.jsx
+++ b/src/projects/list/components/Projects/ProjectsGridView.jsx
@@ -133,7 +133,7 @@ ProjectTypeIcons.propTypes = {
const ProjectsGridView = props => {
const { projects, members, totalCount, criteria, pageNum, sortHandler, onPageChange,
- error, isLoading, infiniteAutoload, setInfiniteAutoload, projectsStatus, onChangeStatus } = props
+ error, isLoading, infiniteAutoload, setInfiniteAutoload, projectsStatus, onChangeStatus, applyFilters } = props
const currentSortField = _.get(criteria, 'sort', '')
// This 'little' array is the heart of the list component.
@@ -186,7 +186,7 @@ const ProjectsGridView = props => {
{item.name}
- { code && {code} }
+ { code && { applyFilters({ keyword: code })} }>{code} }
div {
- overflow: hidden;
- text-overflow: ellipsis;
+ overflow: hidden;
+ }
+ }
+
+ .item-icon {
+ display: flex;
+ width: 52px;
+ height: 100%;
+ }
+
+ .item-projects {
+ padding-top: 15px;
+ padding-bottom: 16px;
+ padding-right: 40px;
+ -webkit-align-items: baseline;
+ align-items: baseline;
+
+ .project-container {
+ overflow: hidden;
+
+ .project-title {
+ display: flex;
+
+ .link-title {
+ flex: 1;
+ @include roboto-medium;
+ color: $tc-black;
+ font-size: 15px;
+ }
+
+ .item-ref-code {
+ flex: none;
+ justify-content: flex-end;
+ background: $tc-gray-10;
+ @include roboto-medium;
+ font-size: 13px;
+ color: $tc-gray-50;
+ border-radius: 2px;
+ line-height: 20px;
+ padding: 0px 2 * $base-unit;
+ cursor: pointer;
+ }
}
-
- .item-ref-code {
- background: $tc-gray-10;
- font-size: $tc-label-sm;
- color: $tc-gray-40;
- font-weight: 400;
- border-radius: 2px;
- line-height: 4 * $base-unit;
- padding: 0px 2 * $base-unit;
+
+ .project-description {
+ display: flex;
+ @include roboto;
+ color: $tc-gray-50;
+ font-size: 13px;
+ align-items: center;
+ margin-top: $base-unit;
+ margin-right: 40px;
+
+ > div {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+
+ .item-ref-code {
+ background: $tc-gray-10;
+ font-size: $tc-label-sm;
+ color: $tc-gray-40;
+ font-weight: 400;
+ border-radius: 2px;
+ line-height: 4 * $base-unit;
+ padding: 0px 2 * $base-unit;
+ }
}
}
}
- }
-
- .item-status {
- .spacing {
- .panel {
- background-color: transparent;
+
+ .item-status {
+ .spacing {
+ .panel {
+ background-color: transparent;
+ }
}
- }
-
- .ProjectStatus .status-dropdown {
- width: 160px;
- left: -120px;
- z-index: 10;
-
- a.status-option {
- padding-left: 20px;
-
- &.active,
- &.active:hover {
- position: relative;
- @include roboto-bold;
- background: $tc-gray-neutral-light;
-
- span {
- font-weight: 600;
+
+ .ProjectStatus .status-dropdown {
+ width: 160px;
+ left: -120px;
+ z-index: 10;
+
+ a.status-option {
+ padding-left: 20px;
+
+ &.active,
+ &.active:hover {
+ position: relative;
+ @include roboto-bold;
+ background: $tc-gray-neutral-light;
+
+ span {
+ font-weight: 600;
+ }
+
+ &:after {
+ font-size: 0;
+ line-height: 0;
+ width: 9px;
+ height: 7px;
+ content: "";
+ display: block;
+ position: absolute;
+ top: 11px;
+ left: 6px;
+ }
}
-
+ }
+
+ .status-header {
+ position: relative;
+ color: $tc-dark-blue;
+ font-size: 13px;
+ font-weight: 400;
+
&:after {
font-size: 0;
line-height: 0;
- width: 9px;
- height: 7px;
+ width: 10px;
+ height: 6px;
content: "";
display: block;
- position: absolute;
- top: 11px;
- left: 6px;
+ position: relative;
+ top: 13px;
+ right: -5px;
}
}
}
-
- .status-header {
- position: relative;
- color: $tc-dark-blue;
- font-size: 13px;
- font-weight: 400;
-
- &:after {
- font-size: 0;
- line-height: 0;
- width: 10px;
- height: 6px;
- content: "";
- display: block;
- position: relative;
- top: 13px;
- right: -5px;
- }
- }
- }
- }
-
- .item-status-date {
- padding-top: 15px;
- -webkit-align-items: baseline;
- align-items: baseline;
-
- .spacing {
- line-height: 20px;
}
-
- .time-container {
- .txt-normal {
- font-size: 13px;
- @include roboto-bold;
- font-weight: 700;
- color: $tc-gray-80;
+
+ .item-status-date {
+ padding-top: 15px;
+ -webkit-align-items: baseline;
+ align-items: baseline;
+
+ .spacing {
line-height: 20px;
- height: 25px;
}
-
- .project-last-editor {
- font-size: 11px;
- @include roboto;
- color: $tc-gray-50;
- height: 1rem;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- line-height: 16px;
+
+ .time-container {
+ .txt-normal {
+ font-size: 13px;
+ @include roboto-bold;
+ font-weight: 700;
+ color: $tc-gray-80;
+ line-height: 20px;
+ height: 25px;
+ }
+
+ .project-last-editor {
+ font-size: 11px;
+ @include roboto;
+ color: $tc-gray-50;
+ height: 1rem;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ line-height: 16px;
+ }
}
}
- }
-
- .item-customer {
- padding-top: 10px;
- -webkit-align-items: baseline;
- align-items: baseline;
-
- .user-block {
- .project-customer {
- position: relative;
- display: block;
- @include roboto-bold;
- font-weight: 700;
- font-size: 13px;
- color: $tc-gray-80;
- border-radius: 2px;
- line-height: 20px;
- padding: 5px 10px;
- cursor: pointer;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
-
- &:hover {
- background-color: $tc-dark-blue-30;
- color: $tc-black;
+
+ .item-customer {
+ padding-top: 10px;
+ -webkit-align-items: baseline;
+ align-items: baseline;
+
+ .user-block {
+ .project-customer {
+ position: relative;
+ display: block;
+ @include roboto-bold;
+ font-weight: 700;
+ font-size: 13px;
+ color: $tc-gray-80;
+ border-radius: 2px;
+ line-height: 20px;
+ padding: 5px 10px;
+ cursor: pointer;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+
+ &:hover {
+ background-color: $tc-dark-blue-30;
+ color: $tc-black;
+ }
}
- }
-
- .project-segment {
- margin-left: 10px;
-
- .project-drop-down {
- font-size: 11px;
- background-color: $tc-gray-neutral-light;
-
- .txt-link {
- @include roboto;
+
+ .project-segment {
+ margin-left: 10px;
+
+ .project-drop-down {
font-size: 11px;
- color: $tc-gray-60;
-
- &:focus {
- color: $tc-dark-blue;
+ background-color: $tc-gray-neutral-light;
+
+ .txt-link {
+ @include roboto;
+ font-size: 11px;
+ color: $tc-gray-60;
+
+ &:focus {
+ color: $tc-dark-blue;
+ }
+ }
+
+ .down-layer ul li a {
+ font-size: 11px;
}
- }
-
- .down-layer ul li a {
- font-size: 11px;
}
}
}
- }
-
- .txt-italic {
- line-height: 18px;
- padding-left: 10px;
+
+ .txt-italic {
+ line-height: 18px;
+ padding-left: 10px;
+ }
}
}
}
}
-}
-/* .txt-price */
-.txt-price {
- @include roboto-medium;
- font-size: $tc-label-md;
- color: $tc-black;
- text-align: center;
- height: 20px;
- line-height: $base-unit + 16;
- min-width: 54px;
- padding-right: 5px;
- padding-left: 5px;
- background: $tc-gray-neutral-dark;
- border-radius: 13px;
- display: inline-block;
- margin-top: 3px;
-}
-
-.txt-gray-sm {
- font-size: $tc-label-sm;
- color: $tc-gray-50;
- line-height: $base-unit * 4;
- display: block;
- // margin: 2px 0 0 6px;
-}
-
-.txt-gray-md {
- font-size: $tc-label-md;
- color: $tc-gray-50;
-}
-
-.card-view {
- display: flex;
- flex-direction: column;
- align-items: center;
-
- > div {// InfiniteScroll's div
- display: flex;
- flex-flow: row wrap;
- justify-content: center;
- margin: 20px 10px; // fluid width with 20px margin
+ /* .txt-price */
+ .txt-price {
+ @include roboto-medium;
+ font-size: $tc-label-md;
+ color: $tc-black;
+ text-align: center;
+ height: 20px;
+ line-height: $base-unit + 16;
+ min-width: 54px;
+ padding-right: 5px;
+ padding-left: 5px;
+ background: $tc-gray-neutral-dark;
+ border-radius: 13px;
+ display: inline-block;
+ margin-top: 3px;
+
}
-
- .project-card {
- padding: 0 2 * $base-unit 4 * $base-unit;
- height: 400px;
- min-width: 280px;
- max-width: 460px;
- flex: 1 360px;
+
+ .txt-gray-sm {
+ font-size: $tc-label-sm;
+ color: $tc-gray-50;
+ line-height: $base-unit * 4;
+ display: block;
+ // margin: 2px 0 0 6px;
}
-}
-
-.project-drop-down {
- position: relative;
- display: inline-block;
- margin-left: 0px;
-
- a {
- outline: 0;
+
+ .txt-gray-md {
+ font-size: $tc-label-md;
+ color: $tc-gray-50;
}
-
- .txt-link {
- position: relative;
- padding-right: 16px;
- display: block;
- z-index: 1;
-
- &:focus {
- color: $tc-dark-blue;
- outline: 0;
- z-index: 3;
+
+ .card-view {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+
+ > div {// InfiniteScroll's div
+ display: flex;
+ flex-flow: row wrap;
+ justify-content: center;
+ margin: 20px 10px; // fluid width with 20px margin
+ width: 100%;
}
-
- .icon-carret-down-active g g {
- color: rgb(6, 129, 255) !important;
+
+ .project-card {
+ padding: 0 2 * $base-unit 4 * $base-unit;
+ height: 400px;
+ min-width: 280px;
+ max-width: 460px;
+ flex: 1 360px;
}
-
- .icon-carret-down-active {
- color: $tc-dark-blue-90;
+ }
+
+ .project-drop-down {
+ position: relative;
+ display: inline-block;
+ margin-left: 0px;
+
+ a {
outline: 0;
- z-index: 3;
- font-size: 0;
- line-height: 0;
- width: 10px;
- height: 6px;
- content: "";
- display: block;
- position: absolute;
- top: 5px;
- right: 0;
}
-
- .icon-carret-down-normal {
- font-size: 0;
- line-height: 0;
- width: 10px;
- height: 6px;
- content: "";
+
+ .txt-link {
+ position: relative;
+ padding-right: 16px;
display: block;
- position: absolute;
- top: 5px;
- right: 0;
+ z-index: 1;
+
+ &:focus {
+ color: $tc-dark-blue;
+ outline: 0;
+ z-index: 3;
+ }
+
+ .icon-carret-down-active g g {
+ color: rgb(6, 129, 255) !important;
+ }
+
+ .icon-carret-down-active {
+ color: $tc-dark-blue-90;
+ outline: 0;
+ z-index: 3;
+ font-size: 0;
+ line-height: 0;
+ width: 10px;
+ height: 6px;
+ content: "";
+ display: block;
+ position: absolute;
+ top: 5px;
+ right: 0;
+ }
+
+ .icon-carret-down-normal {
+ font-size: 0;
+ line-height: 0;
+ width: 10px;
+ height: 6px;
+ content: "";
+ display: block;
+ position: absolute;
+ top: 5px;
+ right: 0;
+ }
}
- }
-
- .down-layer {
- background: $tc-white;
- border-radius: 5px;
- min-width: 150px;
- min-height: 45px;
- position: absolute;
- top: -18px;
- left: -20px;
- box-shadow: 0 0 10px rgba($tc-black, 0.2);
- z-index: 599;
- padding-top: 26px;
-
- ul {
- padding: 10px 0;
-
- li {
- a {
- font-size: $tc-label-md;
- color: $tc-gray-80;
- line-height: $base-unit * 6;
- display: block;
- padding: 0 10px 0 20px;
-
- &:hover {
- background-color: $tc-dark-blue-10;
+
+ .down-layer {
+ background: $tc-white;
+ border-radius: 5px;
+ min-width: 150px;
+ min-height: 45px;
+ position: absolute;
+ top: -18px;
+ left: -20px;
+ box-shadow: 0 0 10px rgba($tc-black, 0.2);
+ z-index: 599;
+ padding-top: 26px;
+
+ ul {
+ padding: 10px 0;
+
+ li {
+ a {
+ font-size: $tc-label-md;
+ color: $tc-gray-80;
+ line-height: $base-unit * 6;
+ display: block;
+ padding: 0 10px 0 20px;
+
+ &:hover {
+ background-color: $tc-dark-blue-10;
+ }
+ }
+
+ .icon-check-dark {
+ font-size: 0;
+ line-height: 0;
+ width: 9px;
+ height: 7px;
+ content: "";
+ display: block;
+ position: absolute;
+ top: 11px;
+ left: 6px;
+ }
+
+ &.active,
+ &.active:hover {
+ position: relative;
+ @include roboto-bold;
+ background: $tc-gray-neutral-light;
}
- }
-
- .icon-check-dark {
- font-size: 0;
- line-height: 0;
- width: 9px;
- height: 7px;
- content: "";
- display: block;
- position: absolute;
- top: 11px;
- left: 6px;
- }
-
- &.active,
- &.active:hover {
- position: relative;
- @include roboto-bold;
- background: $tc-gray-neutral-light;
}
}
}
}
}
+
\ No newline at end of file
diff --git a/src/projects/list/components/ProjectsToolBar/ProjectsToolBar.scss b/src/projects/list/components/ProjectsToolBar/ProjectsToolBar.scss
index c9d492f1e..8527f3b3d 100644
--- a/src/projects/list/components/ProjectsToolBar/ProjectsToolBar.scss
+++ b/src/projects/list/components/ProjectsToolBar/ProjectsToolBar.scss
@@ -1,58 +1,61 @@
// this is to include tc styles in the output library
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
@import "../../../../styles/variables";
-.StickyProjectsToolBar {
- z-index: 11;/* > 10 which is the highest z index set by table component*/
-}
-
-.ProjectsToolBar {
- position: relative;
- min-height: 60px;
- padding: 0 20px;
- background-color: $tc-gray-neutral-light;
- display: flex;
- z-index: 11;
-
- h2 {
- font-size: $tc-body-large;
- line-height: 60px;
- color: $tc-black;
- width: 120px;
- white-space: nowrap;
+:global {
+ .StickyProjectsToolBar {
+ z-index: 11;/* > 10 which is the highest z index set by table component*/
}
-
- .actions {
- width: 120px;
- text-align: right;
- min-height: 30px;
-
- .tc-btn {
- display: inline-block;
- height: 30px;
+
+ .ProjectsToolBar {
+ position: relative;
+ min-height: 60px;
+ padding: 0 20px;
+ background-color: $tc-gray-neutral-light;
+ display: flex;
+ z-index: 11;
+
+ h2 {
+ font-size: $tc-body-large;
+ line-height: 60px;
+ color: $tc-black;
+ width: 120px;
white-space: nowrap;
}
- }
-
- .search-panel {
- flex: 1;
- margin: 0 auto;
- text-align: center;
- display: flex;
- justify-content: center;
- padding-top: 15px;
- flex-wrap: wrap;
-
- .SearchBar {
- display: inline-block;
- width: 330px;
- height: 30px;
+
+ .actions {
+ width: 120px;
+ text-align: right;
+ min-height: 30px;
+
+ .tc-btn {
+ display: inline-block;
+ height: 30px;
+ white-space: nowrap;
+ }
}
-
- .dropdown-wrap {
- width: 143px;
- margin-left: 10px;
- display: inline-block;
+
+ .search-panel {
+ flex: 1;
+ margin: 0 auto;
+ text-align: center;
+ display: flex;
+ justify-content: center;
+ padding-top: 15px;
+ flex-wrap: wrap;
+
+ .SearchBar {
+ display: inline-block;
+ width: 330px;
+ height: 30px;
+ }
+
+ .dropdown-wrap {
+ width: 143px;
+ margin-left: 10px;
+ display: inline-block;
+ }
}
}
}
+
\ No newline at end of file
diff --git a/src/projects/list/components/ProjectsTopBar/ProjectsTopBar.scss b/src/projects/list/components/ProjectsTopBar/ProjectsTopBar.scss
index 6b056834a..ab6e0d8d2 100644
--- a/src/projects/list/components/ProjectsTopBar/ProjectsTopBar.scss
+++ b/src/projects/list/components/ProjectsTopBar/ProjectsTopBar.scss
@@ -1,23 +1,26 @@
-@import "tc-includes";
+@import '~tc-ui/src/styles/tc-includes';
-.topbar-container {
- background: white;
- padding-top: 20px;
+:global {
+ .topbar-container {
+ background: white;
+ padding-top: 20px;
+ }
+
+ .topbar{
+ padding:0 20px;
+ height: 50px;
+ line-height: 30px;
+ color: white;
+ }
+ .topbar span{
+ @include roboto-light;
+ font-size: 20px;
+ color: $tc-black;
+ line-height: 35px;
+ }
+ .topbar a{
+ float: right;
+ border-radius:2px;
+ }
}
-
-.topbar{
- padding:0 20px;
- height: 50px;
- line-height: 30px;
- color: white;
-}
-.topbar span{
- @include roboto-light;
- font-size: 20px;
- color: $tc-black;
- line-height: 35px;
-}
-.topbar a{
- float: right;
- border-radius:2px;
-}
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/projects/list/components/Walkthrough/Walkthrough.scss b/src/projects/list/components/Walkthrough/Walkthrough.scss
index bff3dc288..76bbdec8b 100644
--- a/src/projects/list/components/Walkthrough/Walkthrough.scss
+++ b/src/projects/list/components/Walkthrough/Walkthrough.scss
@@ -1,130 +1,133 @@
-@import "tc-includes";
+@import '~tc-ui/src/styles/tc-includes';
@import '../../../../styles/variables';
-.walkthrough-column {
- position: relative;
- text-align: center;
- min-width: 768px;
- min-height: 496px;
- padding: 20px 86px;
-
- .text-img{
- background-size: 100% 100%;
- position: absolute;
- display:block;
- width: 640px;
- height: 160px;
- right: 80px;
- z-index:2;
- }
-
- h3{
- color: $tc-gray-70;
- @include roboto-medium;
- font-size: 48px;
- letter-spacing: 0px;
- padding: 0 0 25px 0;
- line-height: inherit;
- }
- ul{
- width: 100%;
- left:50%;
- margin-left: -50%;
+:global {
+ .walkthrough-column {
position: relative;
- li{
- float: left;
- width: calc((100% - 40px)/3);
+ text-align: center;
+ min-width: 768px;
+ min-height: 496px;
+ padding: 20px 86px;
+
+ .text-img{
+ background-size: 100% 100%;
+ position: absolute;
+ display:block;
+ width: 640px;
+ height: 160px;
+ right: 80px;
+ z-index:2;
}
- li:nth-child(2){
- margin-left:20px;
- margin-right:20px;
+
+ h3{
+ color: $tc-gray-70;
+ @include roboto-medium;
+ font-size: 48px;
+ letter-spacing: 0px;
+ padding: 0 0 25px 0;
+ line-height: inherit;
}
- a{
- background: rgba($tc-gray-neutral-dark,0.39);
- border-radius: 4px;
+ ul{
width: 100%;
- height: 306px;
- display: block;
- margin-bottom:20px;
- font-size: 88px;
- line-height: 306px;
- text-align: center;
- @include roboto-bold;
- color: $tc-gray-20;
- &:hover {
- color: $tc-gray-80;
+ left:50%;
+ margin-left: -50%;
+ position: relative;
+ li{
+ float: left;
+ width: calc((100% - 40px)/3);
}
- }
- }
-
- .bubble{
- position: absolute;
- top: 180px;
- left: calc(50% - 300px);
- padding-left:243px;
-
- div{
- position:relative;
- background: $tc-white;
- width: 436px;
- min-height: 235px;
- padding: 30px 30px 50px 30px;
- box-shadow: 0 0 15px rgba($tc-black, .15);
- border-radius: 4px;
- h3{
- @include roboto-medium;
- line-height:35px;
- font-size: $tc-heading;
- color: $tc-black;
- text-align:left;
- padding-bottom: 10px;
+ li:nth-child(2){
+ margin-left:20px;
+ margin-right:20px;
}
- p{
- @include roboto;
- font-size: $tc-label-lg;
- color: $tc-gray-80;
- line-height: 25px;
- padding: 0;
+ a{
+ background: rgba($tc-gray-neutral-dark,0.39);
+ border-radius: 4px;
+ width: 100%;
+ height: 306px;
+ display: block;
+ margin-bottom:20px;
+ font-size: 88px;
+ line-height: 306px;
+ text-align: center;
+ @include roboto-bold;
+ color: $tc-gray-20;
+ &:hover {
+ color: $tc-gray-80;
+ }
}
- .arrow{
- width:0;
- height:0;
- position: absolute;
- left:-20px;
- top: 42px;
- border-left:34px solid transparent;
- border-top:34px solid $tc-white;
+ }
+
+ .bubble{
+ position: absolute;
+ top: 180px;
+ left: calc(50% - 300px);
+ padding-left:243px;
+
+ div{
+ position:relative;
+ background: $tc-white;
+ width: 436px;
+ min-height: 235px;
+ padding: 30px 30px 50px 30px;
+ box-shadow: 0 0 15px rgba($tc-black, .15);
+ border-radius: 4px;
+ h3{
+ @include roboto-medium;
+ line-height:35px;
+ font-size: $tc-heading;
+ color: $tc-black;
+ text-align:left;
+ padding-bottom: 10px;
+ }
+ p{
+ @include roboto;
+ font-size: $tc-label-lg;
+ color: $tc-gray-80;
+ line-height: 25px;
+ padding: 0;
+ }
+ .arrow{
+ width:0;
+ height:0;
+ position: absolute;
+ left:-20px;
+ top: 42px;
+ border-left:34px solid transparent;
+ border-top:34px solid $tc-white;
+ }
}
}
- }
- .robot{
- background-size: 238px 281px;
- position: absolute;
- width: 238px;
- height: 281px;
- left:0;
- display:block;
- top:0;
- z-index:2;
- }
- .shadow{
- background-size: 960px 11px;
- position: absolute;
- width: 960px;
- z-index:1;
- display:block;
- height: 11px;
- left:-150px;
- bottom:-48px;
- }
- p{
- text-align: left;
- padding: 0 168px;
- @include roboto;
- font-size: $tc-label-lg;
- color: $tc-gray-70;
- letter-spacing: 0px;
- line-height: 23px;
+ .robot{
+ background-size: 238px 281px;
+ position: absolute;
+ width: 238px;
+ height: 281px;
+ left:0;
+ display:block;
+ top:0;
+ z-index:2;
+ }
+ .shadow{
+ background-size: 960px 11px;
+ position: absolute;
+ width: 960px;
+ z-index:1;
+ display:block;
+ height: 11px;
+ left:-150px;
+ bottom:-48px;
+ }
+ p{
+ text-align: left;
+ padding: 0 168px;
+ @include roboto;
+ font-size: $tc-label-lg;
+ color: $tc-gray-70;
+ letter-spacing: 0px;
+ line-height: 23px;
+ }
}
}
+
\ No newline at end of file
diff --git a/src/projects/reducers/projectSearch.js b/src/projects/reducers/projectSearch.js
index 32551d61f..00ba9dcb8 100644
--- a/src/projects/reducers/projectSearch.js
+++ b/src/projects/reducers/projectSearch.js
@@ -5,7 +5,8 @@ import {
SET_PROJECTS_INFINITE_AUTOLOAD,
SET_PROJECTS_LIST_VIEW,
PROJECTS_LIST_VIEW,
- PROJECT_LIST_DEFAULT_CRITERIA
+ PROJECT_LIST_DEFAULT_CRITERIA,
+ PROJECT_SORT
} from '../../config/constants'
import update from 'react-addons-update'
@@ -55,6 +56,11 @@ export default function(state = initialState, action) {
return update(state, updatedProjects)
}
+ case PROJECT_SORT: {
+ const updatedProjectsAndCriteria = { projects : { $set : action.payload.projects }, criteria: { $set : action.payload.criteria } }
+ return update(state, updatedProjectsAndCriteria)
+ }
+
case PROJECT_SEARCH_FAILURE:
case GET_PROJECTS_FAILURE:
return Object.assign({}, state, {
diff --git a/src/projects/reducers/projectTopics.js b/src/projects/reducers/projectTopics.js
index a556d2ebe..0109650c6 100644
--- a/src/projects/reducers/projectTopics.js
+++ b/src/projects/reducers/projectTopics.js
@@ -1,4 +1,5 @@
import _ from 'lodash'
+import moment from 'moment'
import {
CLEAR_LOADED_PROJECT,
LOAD_PROJECT_PENDING,
@@ -84,7 +85,7 @@ export const projectTopics = function (state=initialState, action) {
*/
const topics = _.sortBy(payload.topics, (t) => {
- return new Date(t.lastActivityAt)
+ return moment(t.lastActivityAt)
}).reverse()
const feedUpdateQuery = {}
diff --git a/src/reducers/alerts.js b/src/reducers/alerts.js
index 108709a66..f6e76a5ee 100644
--- a/src/reducers/alerts.js
+++ b/src/reducers/alerts.js
@@ -23,7 +23,7 @@ import {
DELETE_PROJECT_FEED_FAILURE,
DELETE_PROJECT_FEED_COMMENT_FAILURE,
GET_PROJECT_FEED_COMMENT_FAILURE,
-// Project status
+ // Project status
PROJECT_STATUS_IN_REVIEW
} from '../config/constants'
/* eslint-enable no-unused-vars */
diff --git a/src/routes.jsx b/src/routes.jsx
index b7ba9f42e..ce069ad3b 100644
--- a/src/routes.jsx
+++ b/src/routes.jsx
@@ -39,7 +39,7 @@ const onRouteChange = (pathname) => {
window.analytics.page('New Project : Select Product')
} else if (/^new-project\/incomplete$/.test(pathname)) {
window.analytics.page('New Project : Incomplete Project')
- } else if (/^new-project\/[a-zA-Z0-9\_]+$/.test(pathname)) {
+ } else if (/^new-project\/[a-zA-Z0-9_]+$/.test(pathname)) {
window.analytics.page('New Project : Project Details')
}
}
@@ -76,9 +76,9 @@ class RedirectToProject extends React.Component {
}
}
})
- .catch(() => {
- history.replace('/projects')
- })
+ .catch(() => {
+ history.replace('/projects')
+ })
}).catch(() => {
// FIXME should we include hash, search etc
const redirectBackToUrl = window.location.origin + '/' + match.location.pathname
diff --git a/src/routes/notifications/containers/NotificationsContainer.jsx b/src/routes/notifications/containers/NotificationsContainer.jsx
index 72f9c574f..e9a073a3b 100644
--- a/src/routes/notifications/containers/NotificationsContainer.jsx
+++ b/src/routes/notifications/containers/NotificationsContainer.jsx
@@ -76,7 +76,7 @@ class NotificationsContainer extends React.Component {
/>
}
{projectSources.length > 0 && }
- {projectSources.filter(source => source.total > 0).map(source =>
+ {projectSources.filter(source => source.total > 0).map(source => (
viewOlderNotifications(source.id)}
/>
- )}
+ ))}
{globalSource || projectSources.length > 0 ?
End of list
:
diff --git a/src/routes/notifications/containers/NotificationsContainer.scss b/src/routes/notifications/containers/NotificationsContainer.scss
index 8f31e6b37..be2b999b4 100644
--- a/src/routes/notifications/containers/NotificationsContainer.scss
+++ b/src/routes/notifications/containers/NotificationsContainer.scss
@@ -1,48 +1,51 @@
// this is to include tc styles in the output library
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.notifications-container {
- display: flex;
- justify-content: space-between;
- margin: 0 auto;
- max-width: 1150px;
- min-width: 960px;
- padding: 30px 20px 0;
-
- > .content {
- flex: 1;
- margin-right: 30px;
- max-width: 720px;
-
- > .end-of-list {
- @include roboto-medium;
+:global {
+ .notifications-container {
+ display: flex;
+ justify-content: space-between;
+ margin: 0 auto;
+ max-width: 1150px;
+ min-width: 960px;
+ padding: 30px 20px 0;
+
+ > .content {
+ flex: 1;
+ margin-right: 30px;
+ max-width: 720px;
+
+ > .end-of-list {
+ @include roboto-medium;
+ color: $tc-gray-50;
+ font-size: 13px;
+ line-height: 20px;
+ text-align: center;
+ padding: 20px 0;
+ }
+ }
+
+ > .filters {
+ flex: 1;
+ max-width: 360px;
+ }
+
+ .notifications-empty-note {
+ @include roboto;
color: $tc-gray-50;
font-size: 13px;
line-height: 20px;
- text-align: center;
- padding: 20px 0;
- }
- }
-
- > .filters {
- flex: 1;
- max-width: 360px;
- }
-
- .notifications-empty-note {
- @include roboto;
- color: $tc-gray-50;
- font-size: 13px;
- line-height: 20px;
- margin: 50px auto 0;
- max-width: 440px;
-
- > a {
- color: #55a5ff;
-
- &:hover {
- color: $tc-dark-blue;
+ margin: 50px auto 0;
+ max-width: 440px;
+
+ > a {
+ color: #55a5ff;
+
+ &:hover {
+ color: $tc-dark-blue;
+ }
}
}
}
}
+
\ No newline at end of file
diff --git a/src/routes/notifications/helpers/notifications.js b/src/routes/notifications/helpers/notifications.js
index 59cb96384..5bac2b480 100644
--- a/src/routes/notifications/helpers/notifications.js
+++ b/src/routes/notifications/helpers/notifications.js
@@ -130,6 +130,32 @@ export const splitNotificationsBySources = (sources, notifications, oldSourceIds
*/
export const filterReadNotifications = (notifications) => _.filter(notifications, { isRead: false })
+/**
+ * Filter notifications that belongs to project:projectId
+ *
+ * @param {Array} notifications list of notifications
+ *
+ * @param {Number} projectId
+ *
+ * @return {Array} notifications list filtered of notifications
+ */
+export const filterNotificationsByProjectId = (notifications, projectId) => _.filter(notifications, (notification) => {
+ return notification.sourceId === `${projectId}`
+})
+
+/**
+ * Filter notifications about Topic and Post changed
+ *
+ * @param {Array} notifications list of notifications
+ *
+ * @return {Array} notifications list filtered of notifications
+ */
+export const filterTopicAndPostChangedNotifications = (notifications) => _.filter(notifications, (notification) => {
+ return notification.eventType === 'notifications.connect.project.topic.created' ||
+ notification.eventType === 'notifications.connect.project.post.created' ||
+ notification.eventType === 'notifications.connect.project.post.mention'
+})
+
/**
* Limits notifications quantity per source
* and total quantity of notifications
diff --git a/src/routes/notifications/reducers/index.js b/src/routes/notifications/reducers/index.js
index 1d62aac5a..15748ceef 100644
--- a/src/routes/notifications/reducers/index.js
+++ b/src/routes/notifications/reducers/index.js
@@ -46,13 +46,13 @@ export default (state = initialState, action) => {
case SET_NOTIFICATIONS_FILTER_BY:
return {...state,
- filterBy: action.payload
- }
+ filterBy: action.payload
+ }
case NOTIFICATIONS_PENDING:
return {...state,
- pending: true
- }
+ pending: true
+ }
case MARK_ALL_NOTIFICATIONS_READ: {
const newState = {
@@ -80,8 +80,8 @@ export default (state = initialState, action) => {
case VIEW_OLDER_NOTIFICATIONS_SUCCESS:
return {...state,
- oldSourceIds: [...state.oldSourceIds, action.payload]
- }
+ oldSourceIds: [...state.oldSourceIds, action.payload]
+ }
default:
return state
diff --git a/src/routes/settings/components/SettingsPanel.scss b/src/routes/settings/components/SettingsPanel.scss
index c1b3375a3..1862adb2a 100644
--- a/src/routes/settings/components/SettingsPanel.scss
+++ b/src/routes/settings/components/SettingsPanel.scss
@@ -1,63 +1,66 @@
// this is to include tc styles in the output library
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.settings-panel {
- margin: 20px auto 0;
- padding: 0 20px;
- min-width: 960px;
-
- > .inner {
- background-color: $tc-white;
- border-radius: 6px;
- margin: 0 auto;
- max-width: 720px;
- padding: 50px 60px 40px;
-
- > .title {
- @include roboto-light;
- color: $tc-gray-50;
- font-size: 28px;
- line-height: 30px;
- text-align: center;
+:global {
+ .settings-panel {
+ margin: 20px auto 0;
+ padding: 0 20px;
+ min-width: 960px;
+
+ > .inner {
+ background-color: $tc-white;
+ border-radius: 6px;
+ margin: 0 auto;
+ max-width: 720px;
+ padding: 50px 60px 40px;
+
+ > .title {
+ @include roboto-light;
+ color: $tc-gray-50;
+ font-size: 28px;
+ line-height: 30px;
+ text-align: center;
+ }
+
+ > .text {
+ @include roboto;
+ color: $tc-gray-50;
+ font-size: 15px;
+ line-height: 25px;
+ margin-top: 20px;
+ }
+
+ > .content {
+ border-top: 1px solid $tc-gray-50;
+ margin-top: 30px;
+ }
}
-
- > .text {
+
+ &.wide {
+ > .inner {
+ max-width: 960px;
+
+ > .content {
+ border-top: 0;
+ margin-top: 0;
+ }
+ }
+ }
+
+ a {
@include roboto;
- color: $tc-gray-50;
- font-size: 15px;
- line-height: 25px;
- margin-top: 20px;
+ text-decoration: underline;
}
-
- > .content {
- border-top: 1px solid $tc-gray-50;
- margin-top: 30px;
+ // Link colors
+ a:link,
+ a:visited {
+ color: $tc-dark-blue;
}
- }
-
- &.wide {
- > .inner {
- max-width: 960px;
-
- > .content {
- border-top: 0;
- margin-top: 0;
- }
+
+ a:hover,
+ a:active {
+ color: $tc-dark-blue-70;
}
}
-
- a {
- @include roboto;
- text-decoration: underline;
- }
- // Link colors
- a:link,
- a:visited {
- color: $tc-dark-blue;
- }
-
- a:hover,
- a:active {
- color: $tc-dark-blue-70;
- }
}
+
\ No newline at end of file
diff --git a/src/routes/settings/routes/notifications/components/NotificationSettingsForm.jsx b/src/routes/settings/routes/notifications/components/NotificationSettingsForm.jsx
index e504f83fd..dd8749c45 100644
--- a/src/routes/settings/routes/notifications/components/NotificationSettingsForm.jsx
+++ b/src/routes/settings/routes/notifications/components/NotificationSettingsForm.jsx
@@ -3,7 +3,9 @@
*/
import React from 'react'
import PropTypes from 'prop-types'
-import { Formsy, SwitchButton } from 'appirio-tech-react-components'
+import FormsyForm from 'appirio-tech-react-components/components/Formsy'
+const Formsy = FormsyForm.Formsy
+import SwitchButton from 'appirio-tech-react-components/components/SwitchButton/SwitchButton'
import BtnGroup from '../../../../../components/BtnGroup/BtnGroup'
import IconSettingsWeb from '../../../../../assets/icons/settings-icon-web.svg'
import './NotificationSettingsForm.scss'
@@ -176,7 +178,7 @@ class NotificationSettingsForm extends React.Component {
/>
-
+
}
diff --git a/src/routes/settings/routes/notifications/components/NotificationSettingsForm.scss b/src/routes/settings/routes/notifications/components/NotificationSettingsForm.scss
index a07f7db92..198f82d14 100644
--- a/src/routes/settings/routes/notifications/components/NotificationSettingsForm.scss
+++ b/src/routes/settings/routes/notifications/components/NotificationSettingsForm.scss
@@ -1,137 +1,140 @@
// this is to include tc styles in the output library
-@import 'tc-includes';
-
-.notification-settings-form {
- > .table {
- margin-top: 22px;
- width: 100%;
-
- td {
- padding: 0;
- text-align: left;
- vertical-align: top;
- }
-
- tr > th,
- tr .th {
- @include roboto;
- color: $tc-gray-80;
- font-size: 15px;
- line-height: 25px;
- text-align: left;
- padding: 0;
- vertical-align: top;
- }
-
- tbody > tr {
- border-top: 1px dashed $tc-gray-30;
-
- > th {
- padding: 20px 0;
+@import '~tc-ui/src/styles/tc-includes';
+
+:global {
+ .notification-settings-form {
+ > .table {
+ margin-top: 22px;
+ width: 100%;
+
+ td {
+ padding: 0;
+ text-align: left;
+ vertical-align: top;
}
-
- > td {
- padding: 22.5px 0;
+
+ tr > th,
+ tr .th {
+ @include roboto;
+ color: $tc-gray-80;
+ font-size: 15px;
+ line-height: 25px;
+ text-align: left;
+ padding: 0;
+ vertical-align: top;
}
- }
-
- thead > tr {
- border-bottom: 1px solid $tc-gray-50;
-
- > th {
- padding-bottom: 11px;
+
+ tbody > tr {
+ border-top: 1px dashed $tc-gray-30;
+
+ > th {
+ padding: 20px 0;
+ }
+
+ > td {
+ padding: 22.5px 0;
+ }
}
-
- > th:last-child {
- width: 90px;
+
+ thead > tr {
+ border-bottom: 1px solid $tc-gray-50;
+
+ > th {
+ padding-bottom: 11px;
+ }
+
+ > th:last-child {
+ width: 90px;
+ }
+
+ > th:nth-child(2) {
+ width: 170px;
+ }
+
+ > th:first-child {
+ font-size: 20px;
+ }
}
-
- > th:nth-child(2) {
- width: 170px;
+
+ tbody > tr:last-child {
+ border-bottom: 1px solid $tc-gray-50;
}
-
- > th:first-child {
- font-size: 20px;
+
+ .fixed-value {
+ @include roboto-medium;
+ background-color: $tc-gray-40;
+ border-radius: 10px;
+ display: inline-block;
+ color: $tc-white;
+ font-size: 11px;
+ height: 20px;
+ line-height: 20px;
+ padding: 0 10px;
}
- }
-
- tbody > tr:last-child {
- border-bottom: 1px solid $tc-gray-50;
- }
-
- .fixed-value {
- @include roboto-medium;
- background-color: $tc-gray-40;
- border-radius: 10px;
- display: inline-block;
- color: $tc-white;
- font-size: 11px;
- height: 20px;
- line-height: 20px;
- padding: 0 10px;
- }
-
- .th-with-icon {
- display: inline-block;
- height: 0;
-
- > img,
- > span {
+
+ .th-with-icon {
display: inline-block;
- vertical-align: middle;
+ height: 0;
+
+ > img,
+ > span {
+ display: inline-block;
+ vertical-align: middle;
+ }
+
+ > span {
+ margin-left: 10px;
+ margin-bottom: 10px;
+ }
}
-
- > span {
- margin-left: 10px;
- margin-bottom: 10px;
+
+ .none {
+ background-color: $tc-gray-40;
+ display: inline-block;
+ height: 2px;
+ margin-top: 9px;
+ width: 21px;
+ }
+
+ .bundle-emails {
+ align-items: center;
+ display: flex;
+ justify-content: space-between;
+ margin: -3px 0;
+ }
+
+ .SwitchButton label {
+ margin-top: 0;
+ }
+
+ .SwitchButton .label {
+ display: none;
}
}
-
- .none {
- background-color: $tc-gray-40;
- display: inline-block;
- height: 2px;
- margin-top: 9px;
- width: 21px;
- }
-
- .bundle-emails {
- align-items: center;
- display: flex;
- justify-content: space-between;
- margin: -3px 0;
- }
-
- .SwitchButton label {
- margin-top: 0;
- }
-
- .SwitchButton .label {
- display: none;
- }
- }
-
- > .controls {
- margin-top: 10px;
- text-align: center;
- }
-
- > .email-settings {
- @include roboto;
- margin: 20px 0;
-
- a {
- text-decoration: underline;
- }
- // Link colors
- a:link,
- a:visited {
- color: $tc-dark-blue;
+
+ > .controls {
+ margin-top: 10px;
+ text-align: center;
}
-
- a:hover,
- a:active {
- color: $tc-dark-blue-70;
+
+ > .email-settings {
+ @include roboto;
+ margin: 20px 0;
+
+ a {
+ text-decoration: underline;
+ }
+ // Link colors
+ a:link,
+ a:visited {
+ color: $tc-dark-blue;
+ }
+
+ a:hover,
+ a:active {
+ color: $tc-dark-blue-70;
+ }
}
}
}
+
\ No newline at end of file
diff --git a/src/routes/settings/routes/profile/components/ProfileSeetingsAvatar.scss b/src/routes/settings/routes/profile/components/ProfileSeetingsAvatar.scss
index 2fad2f3b4..2eb8c8408 100644
--- a/src/routes/settings/routes/profile/components/ProfileSeetingsAvatar.scss
+++ b/src/routes/settings/routes/profile/components/ProfileSeetingsAvatar.scss
@@ -1,28 +1,31 @@
// this is to include tc styles in the output library
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.profile-settings-avatar {
- padding-bottom: 27px;
- text-align: center;
-
- > .label {
- @include roboto;
- color: $tc-gray-70;
- font-size: 13px;
- line-height: 20px;
+:global {
+ .profile-settings-avatar {
+ padding-bottom: 27px;
text-align: center;
- }
-
- > .photo {
- box-sizing: content-box;
- border: 2px solid $tc-gray-50;
- border-radius: 50%;
- height: 120px;
- margin-top: 10px;
- width: 120px;
- }
-
- > .controls {
- margin-top: 15px;
+
+ > .label {
+ @include roboto;
+ color: $tc-gray-70;
+ font-size: 13px;
+ line-height: 20px;
+ text-align: center;
+ }
+
+ > .photo {
+ box-sizing: content-box;
+ border: 2px solid $tc-gray-50;
+ border-radius: 50%;
+ height: 120px;
+ margin-top: 10px;
+ width: 120px;
+ }
+
+ > .controls {
+ margin-top: 15px;
+ }
}
}
+
\ No newline at end of file
diff --git a/src/routes/settings/routes/profile/components/ProfileSettingsForm.jsx b/src/routes/settings/routes/profile/components/ProfileSettingsForm.jsx
index e814fbe38..c354d0711 100644
--- a/src/routes/settings/routes/profile/components/ProfileSettingsForm.jsx
+++ b/src/routes/settings/routes/profile/components/ProfileSettingsForm.jsx
@@ -3,7 +3,9 @@
*/
import React from 'react'
import PropTypes from 'prop-types'
-import { Formsy, TCFormFields } from 'appirio-tech-react-components'
+import FormsyForm from 'appirio-tech-react-components/components/Formsy'
+const TCFormFields = FormsyForm.Fields
+const Formsy = FormsyForm.Formsy
import TextInputWithCounter from '../../../../../components/TextInputWithCounter/TextInputWithCounter'
import ProfileSeetingsAvatar from './ProfileSeetingsAvatar'
import { MAX_USERNAME_LENGTH } from '../../../../../config/constants'
diff --git a/src/routes/settings/routes/profile/components/ProfileSettingsForm.scss b/src/routes/settings/routes/profile/components/ProfileSettingsForm.scss
index 8c4ccaf0d..3c74617df 100644
--- a/src/routes/settings/routes/profile/components/ProfileSettingsForm.scss
+++ b/src/routes/settings/routes/profile/components/ProfileSettingsForm.scss
@@ -1,44 +1,47 @@
// this is to include tc styles in the output library
-@import 'tc-includes';
-
-.profile-settings-form {
- margin: 18px auto 0;
- width: 452px;
-
- > .field {
- &:not(:first-child) {
- margin-top: 32px;
+@import '~tc-ui/src/styles/tc-includes';
+
+:global {
+ .profile-settings-form {
+ margin: 18px auto 0;
+ width: 452px;
+
+ > .field {
+ &:not(:first-child) {
+ margin-top: 32px;
+ }
}
- }
-
- .username {
- position: relative;
-
- > .username-icon {
- bottom: 13px;
- content: '';
- display: block;
- left: 12px;
- pointer-events: none;
- position: absolute;
- z-index: 1;
-
- > svg {
+
+ .username {
+ position: relative;
+
+ > .username-icon {
+ bottom: 13px;
+ content: '';
display: block;
+ left: 12px;
+ pointer-events: none;
+ position: absolute;
+ z-index: 1;
+
+ > svg {
+ display: block;
+ }
+
+ > svg > path {
+ fill: $tc-gray-30;
+ }
}
-
- > svg > path {
- fill: $tc-gray-30;
+
+ input {
+ padding-left: 36px;
}
}
-
- input {
- padding-left: 36px;
+
+ > .controls {
+ margin-top: 30px;
+ text-align: center;
}
}
-
- > .controls {
- margin-top: 30px;
- text-align: center;
- }
}
+
\ No newline at end of file
diff --git a/src/routes/settings/routes/system/components/ChangeEmailForm.jsx b/src/routes/settings/routes/system/components/ChangeEmailForm.jsx
index 05f5fdd55..ae10b8473 100644
--- a/src/routes/settings/routes/system/components/ChangeEmailForm.jsx
+++ b/src/routes/settings/routes/system/components/ChangeEmailForm.jsx
@@ -9,7 +9,9 @@ import React from 'react'
import PropTypes from 'prop-types'
import _ from 'lodash'
import { EMAIL_AVAILABILITY_CHECK_DEBOUNCE } from '../../../../../config/constants'
-import { Formsy, TCFormFields } from 'appirio-tech-react-components'
+import FormsyForm from 'appirio-tech-react-components/components/Formsy'
+const TCFormFields = FormsyForm.Fields
+const Formsy = FormsyForm.Formsy
import './ChangeEmailForm.scss'
import IconCheck from '../../assets/icons/check.svg'
diff --git a/src/routes/settings/routes/system/components/ChangeEmailForm.scss b/src/routes/settings/routes/system/components/ChangeEmailForm.scss
index cff61d03a..14879de12 100644
--- a/src/routes/settings/routes/system/components/ChangeEmailForm.scss
+++ b/src/routes/settings/routes/system/components/ChangeEmailForm.scss
@@ -1,29 +1,32 @@
// this is to include tc styles in the output library
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.change-email-form {
- > .field {
- position: relative;
-
- > .field-status {
- bottom: 4px;
- height: 32px;
- position: absolute;
- right: -34px;
- width: 32px;
-
- > svg {
- margin: 8px 0 0 8px;
-
- > polygon {
- fill: $tc-green-70
+:global {
+ .change-email-form {
+ > .field {
+ position: relative;
+
+ > .field-status {
+ bottom: 4px;
+ height: 32px;
+ position: absolute;
+ right: -34px;
+ width: 32px;
+
+ > svg {
+ margin: 8px 0 0 8px;
+
+ > polygon {
+ fill: $tc-green-70
+ }
}
}
}
- }
-
- > .controls {
- margin-top: 10px;
- text-align: center;
+
+ > .controls {
+ margin-top: 10px;
+ text-align: center;
+ }
}
}
+
\ No newline at end of file
diff --git a/src/routes/settings/routes/system/components/ChangePasswordForm.jsx b/src/routes/settings/routes/system/components/ChangePasswordForm.jsx
index 968c1f729..b4ff64acc 100644
--- a/src/routes/settings/routes/system/components/ChangePasswordForm.jsx
+++ b/src/routes/settings/routes/system/components/ChangePasswordForm.jsx
@@ -6,7 +6,9 @@
import React from 'react'
import PropTypes from 'prop-types'
import { PASSWORD_MIN_LENGTH, PASSWORD_REG_EXP } from '../../../../../config/constants'
-import { Formsy, TCFormFields } from 'appirio-tech-react-components'
+import FormsyForm from 'appirio-tech-react-components/components/Formsy'
+const TCFormFields = FormsyForm.Fields
+const Formsy = FormsyForm.Formsy
import './ChangePasswordForm.scss'
class ChangePasswordForm extends React.Component {
diff --git a/src/routes/settings/routes/system/components/ChangePasswordForm.scss b/src/routes/settings/routes/system/components/ChangePasswordForm.scss
index f97fdc99f..7ef151f0f 100644
--- a/src/routes/settings/routes/system/components/ChangePasswordForm.scss
+++ b/src/routes/settings/routes/system/components/ChangePasswordForm.scss
@@ -1,9 +1,12 @@
// this is to include tc styles in the output library
-@import 'tc-includes';
+@import '~tc-ui/src/styles/tc-includes';
-.change-password-form {
- > .controls {
- margin-top: 10px;
- text-align: center;
+:global {
+ .change-password-form {
+ > .controls {
+ margin-top: 10px;
+ text-align: center;
+ }
}
}
+
\ No newline at end of file
diff --git a/src/routes/settings/routes/system/containers/SystemSettingsContainer.scss b/src/routes/settings/routes/system/containers/SystemSettingsContainer.scss
index 8a984bd66..ce0ef7cc8 100644
--- a/src/routes/settings/routes/system/containers/SystemSettingsContainer.scss
+++ b/src/routes/settings/routes/system/containers/SystemSettingsContainer.scss
@@ -1,13 +1,16 @@
-.system-settings-container {
- margin: 42px auto 0;
- width: 452px;
-
- > .controls {
- margin-top: 30px;
- text-align: center;
- }
-
- > .form:not(:first-child) {
- margin-top: 33px;
+:global {
+ .system-settings-container {
+ margin: 42px auto 0;
+ width: 452px;
+
+ > .controls {
+ margin-top: 30px;
+ text-align: center;
+ }
+
+ > .form:not(:first-child) {
+ margin-top: 33px;
+ }
}
}
+
\ No newline at end of file
diff --git a/src/styles/main.scss b/src/styles/main.scss
index aac4bc779..bd9e91fa7 100644
--- a/src/styles/main.scss
+++ b/src/styles/main.scss
@@ -1,4 +1,4 @@
-@import 'tc-styles';
+@import '~tc-ui/src/styles/tc-styles';
// This is the partial where we load all the Roboto fonts for Webpack
@import 'fonts';