http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/frontend/gulpfile.babel.js/index.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/gulpfile.babel.js/index.js b/modules/web-console/frontend/gulpfile.babel.js/index.js new file mode 100644 index 0000000..95602a1 --- /dev/null +++ b/modules/web-console/frontend/gulpfile.babel.js/index.js @@ -0,0 +1,26 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import gulp from 'gulp'; +import requireDir from 'require-dir'; + +// Require all tasks in gulpfile.js/tasks, including subfolders. +requireDir('./tasks', { recurse: true }); + +// Default no-arg task. +gulp.task('default', ['build']); +
http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/frontend/gulpfile.babel.js/paths.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/gulpfile.babel.js/paths.js b/modules/web-console/frontend/gulpfile.babel.js/paths.js new file mode 100644 index 0000000..9134e44 --- /dev/null +++ b/modules/web-console/frontend/gulpfile.babel.js/paths.js @@ -0,0 +1,74 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import path from 'path'; + +const rootDir = path.resolve('./'); +const srcDir = path.resolve('app'); +const destDir = path.resolve('build'); + +const igniteModulesDir = process.env.IGNITE_MODULES ? path.join(path.normalize(process.env.IGNITE_MODULES), 'frontend') : './ignite_modules'; +const igniteModulesTemp = path.resolve('ignite_modules_temp'); + +const jadePaths = [ + './views/*.jade', + './views/**/*.jade', + './app/helpers/**/*.jade', + './app/modules/states/configuration/**/*.jade', + './app/modules/sql/*.jade' +]; + +const resourcePaths = [ + './public/**/*.png', + './public/*.ico' +]; + +const jadeModulePaths = [ + igniteModulesDir + '/**/view/**/*.jade' +]; + +const appModulePaths = [ + igniteModulesDir + '/index.js', + igniteModulesDir + '/**/main.js', + igniteModulesDir + '/**/module.js', + igniteModulesDir + '/**/app/modules/*.js', + igniteModulesDir + '/**/app/modules/**/*.js', + igniteModulesDir + '/**/app/modules/**/*.jade', + igniteModulesDir + '/**/app/**/*.css', + igniteModulesDir + '/**/app/**/*.scss', + igniteModulesDir + '/**/app/data/*.json' +]; + +const resourceModulePaths = [ + igniteModulesDir + '/**/images/*.png', + igniteModulesDir + '/*.ico' +]; + +export { + rootDir, + srcDir, + destDir, + igniteModulesDir, + igniteModulesTemp, + + jadePaths, + resourcePaths, + + jadeModulePaths, + resourceModulePaths, + appModulePaths +}; http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/frontend/gulpfile.babel.js/tasks/build.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/gulpfile.babel.js/tasks/build.js b/modules/web-console/frontend/gulpfile.babel.js/tasks/build.js new file mode 100644 index 0000000..7d7401b --- /dev/null +++ b/modules/web-console/frontend/gulpfile.babel.js/tasks/build.js @@ -0,0 +1,21 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import gulp from 'gulp'; +import sequence from 'gulp-sequence'; + +gulp.task('build', (cb) => sequence(['clean', 'clean:ignite-modules-temp'], 'ignite:modules', ['copy:resource', 'jade'], 'bundle', cb)); http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/frontend/gulpfile.babel.js/tasks/bundle.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/gulpfile.babel.js/tasks/bundle.js b/modules/web-console/frontend/gulpfile.babel.js/tasks/bundle.js new file mode 100644 index 0000000..d3e8dca --- /dev/null +++ b/modules/web-console/frontend/gulpfile.babel.js/tasks/bundle.js @@ -0,0 +1,32 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import gulp from 'gulp'; +import webpack from 'webpack'; +import webpackConfig from '../webpack'; +import WebpackDevServer from 'webpack-dev-server'; + +gulp.task('bundle', (cb) => { + if (process.env.NODE_ENV === 'development') { + // Important! Call webpack and WebpackDevServer must be inline. + new WebpackDevServer(webpack(webpackConfig), webpackConfig.devServer) + .listen(webpackConfig.devServer.port, 'localhost', cb); + } + else + webpack(webpackConfig, cb); +}); + http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/frontend/gulpfile.babel.js/tasks/clean.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/gulpfile.babel.js/tasks/clean.js b/modules/web-console/frontend/gulpfile.babel.js/tasks/clean.js new file mode 100644 index 0000000..c9104b2 --- /dev/null +++ b/modules/web-console/frontend/gulpfile.babel.js/tasks/clean.js @@ -0,0 +1,32 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import gulp from 'gulp'; +import clean from 'gulp-rimraf'; + +import { destDir, igniteModulesTemp } from '../paths'; + +// Clean build folder, remove files. +gulp.task('clean', () => + gulp.src(`${destDir}/*`, {read: false}) + .pipe(clean({ force: true })) +); + +gulp.task('clean:ignite-modules-temp', () => + gulp.src(igniteModulesTemp, {read: false}) + .pipe(clean({ force: true })) +); http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/frontend/gulpfile.babel.js/tasks/copy.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/gulpfile.babel.js/tasks/copy.js b/modules/web-console/frontend/gulpfile.babel.js/tasks/copy.js new file mode 100644 index 0000000..59373a8 --- /dev/null +++ b/modules/web-console/frontend/gulpfile.babel.js/tasks/copy.js @@ -0,0 +1,33 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import gulp from 'gulp'; +import sequence from 'gulp-sequence'; + +import { destDir, resourcePaths, resourceModulePaths } from '../paths'; + +gulp.task('copy:resource', (cb) => sequence('copy:resource:app', 'copy:resource:ignite_modules', cb)); + +gulp.task('copy:resource:app', () => + gulp.src(resourcePaths) + .pipe(gulp.dest(destDir)) +); + +gulp.task('copy:resource:ignite_modules', () => + gulp.src(resourceModulePaths) + .pipe(gulp.dest(`${destDir}/ignite_modules`)) +); http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/frontend/gulpfile.babel.js/tasks/ignite-modules.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/gulpfile.babel.js/tasks/ignite-modules.js b/modules/web-console/frontend/gulpfile.babel.js/tasks/ignite-modules.js new file mode 100644 index 0000000..b97de7c --- /dev/null +++ b/modules/web-console/frontend/gulpfile.babel.js/tasks/ignite-modules.js @@ -0,0 +1,55 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import gulp from 'gulp'; +import inject from 'gulp-inject'; +import clean from 'gulp-rimraf'; +import sequence from 'gulp-sequence'; +import {appModulePaths, igniteModulesTemp} from '../paths'; + +gulp.task('ignite:modules', (cb) => sequence('ignite:modules:copy', 'ignite:modules:inject', cb)); + +gulp.task('ignite:modules:copy', () => + gulp.src(appModulePaths) + .pipe(gulp.dest(igniteModulesTemp)) +); + +gulp.task('ignite:modules:inject', () => + gulp.src(`${igniteModulesTemp}/index.js`) + .pipe(inject(gulp.src([`${igniteModulesTemp}/**/main.js`]), { + starttag: '/* ignite:modules */', + endtag: '/* endignite */', + transform: (filePath) => { + const igniteModuleName = filePath.replace(/.*ignite_modules_temp\/([^\/]+).*/mgi, '$1'); + + // Return file contents as string. + return `import './${igniteModuleName}/main';`; + } + })) + .pipe(inject(gulp.src([`${igniteModulesTemp}/**/main.js`]), { + starttag: '/* ignite-console:modules */', + endtag: '/* endignite */', + transform: (filePath, file, i) => { + const igniteModuleName = filePath.replace(/.*ignite_modules_temp\/([^\/]+).*/mgi, '$1'); + + // Return file contents as string. + return (i ? ',' : '') + `'ignite-console.${igniteModuleName}'`; + } + })) + .pipe(clean({force: true})) + .pipe(gulp.dest(igniteModulesTemp)) +); http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/frontend/gulpfile.babel.js/tasks/jade.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/gulpfile.babel.js/tasks/jade.js b/modules/web-console/frontend/gulpfile.babel.js/tasks/jade.js new file mode 100644 index 0000000..b150373 --- /dev/null +++ b/modules/web-console/frontend/gulpfile.babel.js/tasks/jade.js @@ -0,0 +1,40 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import gulp from 'gulp'; +import jade from 'gulp-jade'; +import sequence from 'gulp-sequence'; + +import { jadePaths, jadeModulePaths, destDir } from '../paths'; + +const jadeOptions = { + basedir: './' +}; + +gulp.task('jade', (cb) => sequence('jade:source', 'jade:ignite_modules', cb)); + +gulp.task('jade:source', () => + gulp.src(jadePaths) + .pipe(jade(jadeOptions)) + .pipe(gulp.dest(destDir)) +); + +gulp.task('jade:ignite_modules', () => + gulp.src(jadeModulePaths) + .pipe(jade(jadeOptions)) + .pipe(gulp.dest(`${destDir}/ignite_modules`)) +); http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/frontend/gulpfile.babel.js/tasks/test.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/gulpfile.babel.js/tasks/test.js b/modules/web-console/frontend/gulpfile.babel.js/tasks/test.js new file mode 100644 index 0000000..ad4108d --- /dev/null +++ b/modules/web-console/frontend/gulpfile.babel.js/tasks/test.js @@ -0,0 +1,92 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import gulp from 'gulp'; +import karmaBabelPreprocessor from 'karma-babel-preprocessor'; +import karmaPhantomjsLauncher from 'karma-phantomjs-launcher'; +import karmaWebpack from 'karma-webpack'; +import karmaJasmine from 'karma-jasmine'; + +import {Server} from 'karma'; + +import {rootDir} from '../paths'; + +gulp.task('test', (cb) => { + new Server({ + // Base path that will be used to resolve all patterns (eg. files, exclude). + basePath: rootDir, + + // Frameworks to use available frameworks: https://npmjs.org/browse/keyword/karma-adapter + frameworks: ['jasmine'], + + // List of files / patterns to load in the browser. + files: [ + 'test/**/*.test.js' + ], + + plugins: [ + karmaBabelPreprocessor, + karmaPhantomjsLauncher, + karmaWebpack, + karmaJasmine + ], + + // Preprocess matching files before serving them to the browser + // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor. + preprocessors: { + 'test/**/*.js': ['webpack'] + }, + + webpack: { + devtool: 'inline-source-map', + module: { + loaders: [ + {test: /\.js/, loaders: ['babel'], exclude: /node_modules/} + ] + }, + resolve: { + extensions: ['', '.js'] + } + }, + + // Test results reporter to use + // possible values: 'dots', 'progress' + // available reporters: https://npmjs.org/browse/keyword/karma-reporter. + reporters: ['progress'], + + // web server port + port: 9876, + + // enable / disable colors in the output (reporters and logs) + colors: true, + + // enable / disable watching file and executing tests whenever any file changes + autoWatch: true, + + // start these browsers + // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher + browsers: ['PhantomJS'], + + // Continuous Integration mode + // if true, Karma captures browsers, runs the tests and exits + singleRun: true, + + // Concurrency level + // how many browser should be started simultaneous + concurrency: Infinity + }, cb).start(); +}); http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/frontend/gulpfile.babel.js/tasks/watch.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/gulpfile.babel.js/tasks/watch.js b/modules/web-console/frontend/gulpfile.babel.js/tasks/watch.js new file mode 100644 index 0000000..c179f9c --- /dev/null +++ b/modules/web-console/frontend/gulpfile.babel.js/tasks/watch.js @@ -0,0 +1,31 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import gulp from 'gulp'; +import sequence from 'gulp-sequence'; + +import { jadePaths, jadeModulePaths, resourcePaths, resourceModulePaths, appModulePaths } from '../paths'; + +gulp.task('watch:ignite-modules', (cb) => sequence('clean:ignite-modules-temp', 'ignite:modules', cb)); + +// Build + watch task. +gulp.task('watch', ['build'], () => { + gulp.watch(jadePaths.concat(jadeModulePaths), ['jade']); + gulp.watch(resourcePaths, ['copy:resource:app']); + gulp.watch(resourceModulePaths, ['copy:resource:ignite_modules']); + gulp.watch(appModulePaths, ['watch:ignite-modules']); +}); http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/frontend/gulpfile.babel.js/webpack/common.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/gulpfile.babel.js/webpack/common.js b/modules/web-console/frontend/gulpfile.babel.js/webpack/common.js new file mode 100644 index 0000000..e3d88b3 --- /dev/null +++ b/modules/web-console/frontend/gulpfile.babel.js/webpack/common.js @@ -0,0 +1,189 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import path from 'path'; +import fs from 'fs'; +import webpack from 'webpack'; +import autoprefixer from 'autoprefixer-core'; +import jade from 'jade'; +import progressPlugin from './plugins/progress'; +import eslintFormatter from 'eslint-friendly-formatter'; + +import ExtractTextPlugin from 'extract-text-webpack-plugin'; +import HtmlWebpackPlugin from 'html-webpack-plugin'; + +import {srcDir, destDir, rootDir, igniteModulesDir} from '../paths'; + +const NODE_ENV = process.env.NODE_ENV || 'production'; +const development = NODE_ENV === 'development'; +const node_modules_path = path.resolve('node_modules'); +const cssLoader = 'css-loader?sourceMap!postcss-loader'; +const stylesLoader = cssLoader + '!sass-loader?outputStyle=expanded&sourceMap=true&sourceMapContents=true'; + +let favicon = 'build/ignite_modules/favicon.ico'; + +try { + fs.accessSync(path.join(igniteModulesDir, 'favicon.ico'), fs.F_OK); +} catch (ignore) { + favicon = 'build/favicon.ico'; +} + +export default () => { + const assetsLoader = development ? 'url-loader' : 'file-loader'; + + return { + cache: true, + node: { + fs: 'empty' + }, + + // Entry points. + entry: { + polyfill: 'babel-polyfill', + app: path.join(srcDir, 'app.js'), + vendor: path.join(srcDir, 'vendor.js') + }, + + // Output system. + output: { + path: destDir, + publicPath: './', + filename: '[name].js' + }, + + // Resolves modules. + resolve: { + extensions: [ + '', + '.js' + ], + root: [rootDir], + modulesDirectories: [ + node_modules_path, + './' + ] + }, + + // Modules resolvers. + /* global require */ + module: { + noParse: [], + preLoaders: [ + { + test: /\.js$/, + exclude: [node_modules_path], + loader: 'eslint-loader' + } + ], + loaders: [ + { + test: /\.json$/, + loader: 'json-loader' + }, + { + test: /\.jade$/, + loaders: [ + `ngtemplate-loader?relativeTo=${rootDir}`, + 'html-loader?attrs[]=img:src&attrs[]=img:data-src', + 'jade-html-loader' + ] + }, + { + test: /\.js$/, + exclude: [node_modules_path], + loader: 'babel-loader', + query: { + cacheDirectory: true, + plugins: ['transform-runtime', + 'add-module-exports'], + presets: ['angular'] + + } + }, + { + test: /\.css$/, + loader: development ? `style-loader!${cssLoader}` : ExtractTextPlugin.extract('style-loader', cssLoader) + }, + { + test: /\.(scss|sass)$/, + loader: development ? `style-loader!${stylesLoader}` : ExtractTextPlugin.extract('style-loader', stylesLoader) + }, + { + test: /\.(woff2|woff|ttf|eot|svg)?(\?v=[0-9]\.[0-9]\.[0-9])?$/, + loaders: [ + `${assetsLoader}?name=assets/fonts/[name].[ext]` + ] + }, + { + test: /\.(jpe?g|png|gif)$/i, + loaders: [`${assetsLoader}?name=assets/images/[name]_[hash].[ext]`] + }, + { + test: require.resolve('jquery'), + loaders: [ + 'expose-loader?$', + 'expose-loader?jQuery' + ] + }, + { + test: require.resolve('nvd3'), + loaders: [ + 'expose-loader?nv' + ] + } + ] + }, + + // Postcss configuration. + postcss: [autoprefixer({browsers: ['last 2 versions']})], + + // ESLint loader configuration. + eslint: { + failOnWarning: false, + failOnError: false, + formatter: eslintFormatter + }, + + // Load plugins. + plugins: [ + new webpack.ProvidePlugin({ + $: 'jquery', + jQuery: 'jquery', + _: 'lodash', + nv: 'nvd3' + }), + new webpack.DefinePlugin({NODE_ENV: JSON.stringify(NODE_ENV)}), + // new webpack.NoErrorsPlugin(), + new webpack.optimize.DedupePlugin(), + new webpack.optimize.CommonsChunkPlugin({ + name: 'common', + chunks: ['vendor', 'app'] + }), + new webpack.optimize.AggressiveMergingPlugin({moveToParents: true}), + new webpack.optimize.OccurenceOrderPlugin(), + new ExtractTextPlugin('assets/css/[name]' + (development ? '' : '.[chunkhash]') + '.css', {allChunks: true}), + new HtmlWebpackPlugin({ + filename: 'index.html', + templateContent: () => { + return jade.renderFile(path.join(rootDir, 'views', 'index.jade')); + }, + favicon + }), + progressPlugin + ] + }; +}; http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/frontend/gulpfile.babel.js/webpack/environments/development.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/gulpfile.babel.js/webpack/environments/development.js b/modules/web-console/frontend/gulpfile.babel.js/webpack/environments/development.js new file mode 100644 index 0000000..229760e --- /dev/null +++ b/modules/web-console/frontend/gulpfile.babel.js/webpack/environments/development.js @@ -0,0 +1,69 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import path from 'path'; +import webpack from 'webpack'; + +import {destDir, rootDir, srcDir} from '../../paths'; + +export default () => { + const plugins = [ + new webpack.HotModuleReplacementPlugin() + ]; + + return { + entry: { + webpack: 'webpack-dev-server/client?http://localhost:9000/', + app: [path.join(srcDir, 'app.js'), 'webpack/hot/only-dev-server'] + }, + context: rootDir, + debug: true, + devtool: 'source-map', + watch: true, + devServer: { + compress: true, + historyApiFallback: true, + publicPath: '/', + contentBase: destDir, + info: true, + hot: true, + inline: true, + proxy: { + '/socket.io': { + target: 'http://localhost:3000', + changeOrigin: true, + ws: true + }, + '/api/v1/*': { + target: 'http://localhost:3000', + changeOrigin: true, + pathRewrite: { + '^/api/v1': '' + } + } + }, + watchOptions: { + aggregateTimeout: 1000, + poll: 2000 + }, + stats: {colors: true}, + port: 9000 + }, + stats: {colors: true}, + plugins + }; +}; http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/frontend/gulpfile.babel.js/webpack/environments/production.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/gulpfile.babel.js/webpack/environments/production.js b/modules/web-console/frontend/gulpfile.babel.js/webpack/environments/production.js new file mode 100644 index 0000000..db66720 --- /dev/null +++ b/modules/web-console/frontend/gulpfile.babel.js/webpack/environments/production.js @@ -0,0 +1,45 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import webpack from 'webpack'; + +import {destDir, rootDir} from '../../paths'; + +export default () => { + const plugins = [ + new webpack.optimize.UglifyJsPlugin({ + path: destDir, + minimize: true, + warnings: false, + sourceMap: false, + mangle: true + }) + ]; + + return { + context: rootDir, + bail: true, // Cancel build on error. + debug: false, + devtool: 'cheap-source-map', + output: { + publicPath: '/', + filename: '[name].[chunkhash].js', + path: destDir + }, + plugins + }; +}; http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/frontend/gulpfile.babel.js/webpack/index.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/gulpfile.babel.js/webpack/index.js b/modules/web-console/frontend/gulpfile.babel.js/webpack/index.js new file mode 100644 index 0000000..6682f9c --- /dev/null +++ b/modules/web-console/frontend/gulpfile.babel.js/webpack/index.js @@ -0,0 +1,32 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import _ from 'lodash'; +import commonConfig from './common'; +import devConfig from './environments/development'; +import prodConfig from './environments/production'; + +const env = process.env.NODE_ENV || 'production'; + +// Config by environments. +const configs = { + production: prodConfig, + development: devConfig +}; + +// Load config file by environment +export default _.merge(commonConfig(), configs[env]()); http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/frontend/gulpfile.babel.js/webpack/plugins/progress.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/gulpfile.babel.js/webpack/plugins/progress.js b/modules/web-console/frontend/gulpfile.babel.js/webpack/plugins/progress.js new file mode 100644 index 0000000..5f753c7 --- /dev/null +++ b/modules/web-console/frontend/gulpfile.babel.js/webpack/plugins/progress.js @@ -0,0 +1,82 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import ProgressPlugin from 'webpack/lib/ProgressPlugin'; + +let chars = 0; +let lastState = 0; +let lastStateTime = 0; + +const outputStream = process.stdout; + +const _goToLineStart = (nextMessage) => { + let str = ''; + + for (; chars > nextMessage.length; chars--) + str += '\b \b'; + + chars = nextMessage.length; + + for (let i = 0; i < chars; i++) + str += '\b'; + + if (str) + outputStream.write(str); +}; + +export default new ProgressPlugin((percentage, msg) => { + let state = msg; + + if (percentage < 1) { + percentage = Math.floor(percentage * 100); + + msg = percentage + '% ' + msg; + + if (percentage < 100) + msg = ' ' + msg; + + if (percentage < 10) + msg = ' ' + msg; + } + + state = state.replace(/^\d+\/\d+\s+/, ''); + + if (percentage === 0) { + lastState = null; + lastStateTime = (new Date()).getTime(); + } + else if (state !== lastState || percentage === 1) { + const now = (new Date()).getTime(); + + if (lastState) { + const stateMsg = (now - lastStateTime) + 'ms ' + lastState; + + _goToLineStart(stateMsg); + + outputStream.write(stateMsg + '\n'); + + chars = 0; + } + + lastState = state; + lastStateTime = now; + } + + _goToLineStart(msg); + + outputStream.write(msg); +}); http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/frontend/ignite_modules/README.txt ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/ignite_modules/README.txt b/modules/web-console/frontend/ignite_modules/README.txt new file mode 100644 index 0000000..365abc7 --- /dev/null +++ b/modules/web-console/frontend/ignite_modules/README.txt @@ -0,0 +1,6 @@ +Ignite Web Console Modules +====================================== + +If you are are planning to create or use custom modules you need to copy them in this folder before build. + +This is default folder for user modules. http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/frontend/ignite_modules/index.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/ignite_modules/index.js b/modules/web-console/frontend/ignite_modules/index.js new file mode 100644 index 0000000..c38d2d4 --- /dev/null +++ b/modules/web-console/frontend/ignite_modules/index.js @@ -0,0 +1,27 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import angular from 'angular'; + +/* ignite:modules */ +/* endignite */ + +angular +.module('ignite-console.modules', [ + /* ignite-console:modules */ + /* endignite */ +]); http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/frontend/package.json ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/package.json b/modules/web-console/frontend/package.json new file mode 100644 index 0000000..7ea2893 --- /dev/null +++ b/modules/web-console/frontend/package.json @@ -0,0 +1,125 @@ +{ + "name": "ignite-web-console", + "version": "1.0.0", + "description": "Interactive Web console for configuration, executing SQL queries and monitoring of Apache Ignite Cluster", + "private": true, + "scripts": { + "dev": "cross-env NODE_ENV=development gulp watch", + "build": "cross-env NODE_ENV=production gulp build", + "test": "karma start ./test/karma.conf.js", + "eslint": "eslint --format node_modules/eslint-friendly-formatter gulpfile.babel.js/ app/ controllers/ generator/ ignite_modules/ ignite_modules_temp/ -- --eff-by-issue" + }, + "author": "", + "contributors": [ + { + "name": "", + "email": "" + } + ], + "license": "Apache-2.0", + "keywords": "grid", + "homepage": "https://ignite.apache.org/", + "engines": { + "npm": "^3.x.x", + "node": "^4.x.x" + }, + "os": [ + "darwin", + "linux", + "win32" + ], + "dependencies": { + "angular": "^1.5.5", + "angular-acl": "^0.1.7", + "angular-animate": "^1.5.5", + "angular-aria": "^1.5.5", + "angular-cookies": "^1.5.5", + "angular-drag-and-drop-lists": "^1.4.0", + "angular-gridster": "^0.13.3", + "angular-motion": "^0.4.4", + "angular-nvd3": "^1.0.7", + "angular-retina": "^0.3.13", + "angular-sanitize": "^1.5.5", + "angular-smart-table": "^2.1.8", + "angular-socket-io": "^0.7.0", + "angular-strap": "^2.3.8", + "angular-touch": "^1.5.5", + "angular-tree-control": "^0.2.26", + "angular-ui-grid": "^3.1.1", + "angular-ui-router": "^0.3.1", + "bootstrap-sass": "^3.3.6", + "brace": "^0.8.0", + "es6-promise": "^3.0.2", + "file-saver": "^1.3.2", + "font-awesome": "^4.6.3", + "glob": "^7.0.3", + "jquery": "^3.0.0", + "jszip": "^3.0.0", + "lodash": "^4.8.2", + "nvd3": "^1.8.3", + "query-command-supported": "^1.0.0", + "raleway-webfont": "^3.0.1", + "roboto-font": "^0.1.0", + "socket.io-client": "^1.4.6", + "ui-router-metatags": "^1.0.3" + }, + "devDependencies": { + "assets-webpack-plugin": "^3.2.0", + "autoprefixer-core": "^6.0.1", + "babel-core": "^6.7.6", + "babel-eslint": "^6.0.4", + "babel-loader": "^6.2.4", + "babel-plugin-add-module-exports": "^0.2.1", + "babel-plugin-transform-builtin-extend": "^1.1.0", + "babel-plugin-transform-runtime": "^6.7.5", + "babel-polyfill": "^6.7.4", + "babel-preset-angular": "^6.0.15", + "babel-preset-es2015": "^6.9.0", + "babel-runtime": "^6.6.1", + "chai": "^3.5.0", + "cross-env": "^1.0.7", + "css-loader": "^0.23.0", + "eslint": "^2.9.0", + "eslint-friendly-formatter": "^2.0.5", + "eslint-loader": "^1.0.0", + "expose-loader": "^0.7.1", + "extract-text-webpack-plugin": "^1.0.1", + "file-loader": "^0.9.0", + "gulp": "^3.9.1", + "gulp-eslint": "^2.0.0", + "gulp-inject": "^4.0.0", + "gulp-jade": "^1.1.0", + "gulp-rimraf": "^0.2.0", + "gulp-sequence": "^0.4.1", + "gulp-util": "^3.0.7", + "html-loader": "^0.4.3", + "html-webpack-plugin": "^2.21.0", + "jade": "^1.11.0", + "jade-html-loader": "0.0.3", + "jasmine-core": "^2.4.1", + "json-loader": "^0.5.4", + "karma": "^0.13.22", + "karma-babel-preprocessor": "^6.0.1", + "karma-jasmine": "^1.0.2", + "karma-mocha": "^1.0.1", + "karma-phantomjs-launcher": "^1.0.0", + "karma-teamcity-reporter": "^1.0.0", + "karma-webpack": "^1.7.0", + "mocha": "~2.5.3", + "mocha-teamcity-reporter": "^1.0.0", + "morgan": "^1.7.0", + "ngtemplate-loader": "^1.3.1", + "node-sass": "^3.4.2", + "phantomjs-prebuilt": "^2.1.7", + "postcss-loader": "^0.9.1", + "require-dir": "^0.3.0", + "resolve-url-loader": "^1.4.3", + "sass-loader": "^3.1.1", + "should": "^9.0.2", + "style-loader": "^0.13.1", + "url": "^0.11.0", + "url-loader": "^0.5.6", + "webpack": "^1.13.1", + "webpack-dev-server": "^1.15.0" + } +} http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/frontend/public/favicon.ico ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/public/favicon.ico b/modules/web-console/frontend/public/favicon.ico new file mode 100644 index 0000000..b36f8d7 Binary files /dev/null and b/modules/web-console/frontend/public/favicon.ico differ http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/frontend/public/images/cache.png ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/public/images/cache.png b/modules/web-console/frontend/public/images/cache.png new file mode 100644 index 0000000..83fd987 Binary files /dev/null and b/modules/web-console/frontend/public/images/cache.png differ http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/frontend/public/images/cluster.png ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/public/images/cluster.png b/modules/web-console/frontend/public/images/cluster.png new file mode 100644 index 0000000..2d8b860 Binary files /dev/null and b/modules/web-console/frontend/public/images/cluster.png differ http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/frontend/public/images/docker.png ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/public/images/docker.png b/modules/web-console/frontend/public/images/docker.png new file mode 100644 index 0000000..afc5df4 Binary files /dev/null and b/modules/web-console/frontend/public/images/docker.png differ http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/frontend/public/images/domains.png ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/public/images/domains.png b/modules/web-console/frontend/public/images/domains.png new file mode 100644 index 0000000..39abfcb Binary files /dev/null and b/modules/web-console/frontend/public/images/domains.png differ http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/frontend/public/images/igfs.png ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/public/images/igfs.png b/modules/web-console/frontend/public/images/igfs.png new file mode 100644 index 0000000..47c659e Binary files /dev/null and b/modules/web-console/frontend/public/images/igfs.png differ http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/frontend/public/images/ignite-logo.png ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/public/images/ignite-logo.png b/modules/web-console/frontend/public/images/ignite-logo.png new file mode 100644 index 0000000..ea08d1b Binary files /dev/null and b/modules/web-console/frontend/public/images/ignite-logo.png differ http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/frontend/public/images/[email protected] ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/public/images/[email protected] b/modules/web-console/frontend/public/images/[email protected] new file mode 100644 index 0000000..10005db Binary files /dev/null and b/modules/web-console/frontend/public/images/[email protected] differ http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/frontend/public/images/ignite-puzzle.png ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/public/images/ignite-puzzle.png b/modules/web-console/frontend/public/images/ignite-puzzle.png new file mode 100644 index 0000000..0989d29 Binary files /dev/null and b/modules/web-console/frontend/public/images/ignite-puzzle.png differ http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/frontend/public/images/java.png ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/public/images/java.png b/modules/web-console/frontend/public/images/java.png new file mode 100644 index 0000000..ddb3b8e Binary files /dev/null and b/modules/web-console/frontend/public/images/java.png differ http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/frontend/public/images/pb-ignite.png ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/public/images/pb-ignite.png b/modules/web-console/frontend/public/images/pb-ignite.png new file mode 100644 index 0000000..55f6746 Binary files /dev/null and b/modules/web-console/frontend/public/images/pb-ignite.png differ http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/frontend/public/images/[email protected] ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/public/images/[email protected] b/modules/web-console/frontend/public/images/[email protected] new file mode 100644 index 0000000..ffcff38 Binary files /dev/null and b/modules/web-console/frontend/public/images/[email protected] differ http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/frontend/public/images/query-chart.png ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/public/images/query-chart.png b/modules/web-console/frontend/public/images/query-chart.png new file mode 100644 index 0000000..c6e4cce Binary files /dev/null and b/modules/web-console/frontend/public/images/query-chart.png differ http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/frontend/public/images/query-metadata.png ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/public/images/query-metadata.png b/modules/web-console/frontend/public/images/query-metadata.png new file mode 100644 index 0000000..698cd6e Binary files /dev/null and b/modules/web-console/frontend/public/images/query-metadata.png differ http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/frontend/public/images/query-table.png ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/public/images/query-table.png b/modules/web-console/frontend/public/images/query-table.png new file mode 100644 index 0000000..53becda Binary files /dev/null and b/modules/web-console/frontend/public/images/query-table.png differ http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/frontend/public/images/summary.png ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/public/images/summary.png b/modules/web-console/frontend/public/images/summary.png new file mode 100644 index 0000000..ff88438 Binary files /dev/null and b/modules/web-console/frontend/public/images/summary.png differ http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/frontend/public/images/xml.png ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/public/images/xml.png b/modules/web-console/frontend/public/images/xml.png new file mode 100644 index 0000000..029065e Binary files /dev/null and b/modules/web-console/frontend/public/images/xml.png differ http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/frontend/public/stylesheets/_bootstrap-custom.scss ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/public/stylesheets/_bootstrap-custom.scss b/modules/web-console/frontend/public/stylesheets/_bootstrap-custom.scss new file mode 100644 index 0000000..3b52821 --- /dev/null +++ b/modules/web-console/frontend/public/stylesheets/_bootstrap-custom.scss @@ -0,0 +1,65 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// Core variables and mixins +@import "bootstrap-variables"; +@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins"; + +// Reset and dependencies +@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/normalize"; +@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/print"; + +// Core CSS +@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/scaffolding"; +@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/type"; +@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/code"; +@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/grid"; +@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/tables"; +@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/forms"; +@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/buttons"; + +// Components +@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/component-animations"; +@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/dropdowns"; +@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/button-groups"; +@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/input-groups"; +@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/navs"; +@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/navbar"; +@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/pagination"; +@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/pager"; +@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/labels"; +@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/badges"; +@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/jumbotron"; +@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/thumbnails"; +@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/alerts"; +@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/progress-bars"; +@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/media"; +@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/list-group"; +@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/panels"; +@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/responsive-embed"; +@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/wells"; +@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/close"; + +// Components w/ JavaScript +@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/modals"; +@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/tooltip"; +@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/popovers"; +@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/carousel"; + +// Utility classes +@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/utilities"; +@import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/responsive-utilities"; http://git-wip-us.apache.org/repos/asf/ignite/blob/6af6560a/modules/web-console/frontend/public/stylesheets/_bootstrap-variables.scss ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/public/stylesheets/_bootstrap-variables.scss b/modules/web-console/frontend/public/stylesheets/_bootstrap-variables.scss new file mode 100644 index 0000000..07e8c51 --- /dev/null +++ b/modules/web-console/frontend/public/stylesheets/_bootstrap-variables.scss @@ -0,0 +1,891 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +$bootstrap-sass-asset-helper: false !default; +// +// Variables +// -------------------------------------------------- + + +//== Colors +// +//## Gray and brand colors for use across Bootstrap. + +$gray-base: #000 !default; +$gray-darker: lighten($gray-base, 13.5%) !default; // #222 +$gray-dark: lighten($gray-base, 20%) !default; // #333 +$gray: lighten($gray-base, 33.5%) !default; // #555 +$gray-light: lighten($gray-base, 46.7%) !default; // #777 +$gray-lighter: lighten($gray-base, 93.5%) !default; // #eee + +$brand-primary: #ec1c24 !default; +$brand-success: #50af51 !default; +$brand-info: #248fb2 !default; +$brand-warning: #f0ad4e !default; +$brand-danger: #d9534f !default; + + +//== Scaffolding +// +//## Settings for some of the most global styles. + +//** Background color for `<body>`. +$body-bg: #f9f9f9 !default; +//** Global text color on `<body>`. +$text-color: $gray-dark !default; + +//** Global textual link color. +$link-color: $brand-primary !default; +//** Link hover color set via `darken()` function. +$link-hover-color: darken($link-color, 15%) !default; +//** Link hover decoration. +$link-hover-decoration: underline !default; + + +//== Typography +// +//## Font, line-height, and color for body text, headings, and more. + +$font-family-sans-serif: Roboto_slab, sans-serif !default; +$font-family-serif: Roboto_slab, serif !default; +//** Default monospace fonts for `<code>`, `<kbd>`, and `<pre>`. +$font-family-monospace: Menlo, Monaco, Consolas, "Courier New", monospace !default; +$font-family-base: $font-family-sans-serif !default; + +$font-size-base: 14px !default; +$font-size-large: ceil(($font-size-base * 1.25)) !default; // ~18px +$font-size-small: ceil(($font-size-base * 0.85)) !default; // ~12px + +$font-size-h1: floor(($font-size-base * 2.6)) !default; // ~36px +$font-size-h2: floor(($font-size-base * 2.15)) !default; // ~30px +$font-size-h3: ceil(($font-size-base * 1.7)) !default; // ~24px +$font-size-h4: ceil(($font-size-base * 1.25)) !default; // ~18px +$font-size-h5: $font-size-base !default; +$font-size-h6: ceil(($font-size-base * 0.85)) !default; // ~12px + +//** Unit-less `line-height` for use in components like buttons. +$line-height-base: 1.428571429 !default; // 20/14 +//** Computed "line-height" (`font-size` * `line-height`) for use with `margin`, `padding`, etc. +$line-height-computed: floor(($font-size-base * $line-height-base)) !default; // ~20px + +//** By default, this inherits from the `<body>`. +$headings-font-family: inherit !default; +$headings-font-weight: 500 !default; +$headings-line-height: 1.1 !default; +$headings-color: inherit !default; + + +//== Iconography +// +//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower. + +//** Load fonts from this directory. + +// [converter] If $bootstrap-sass-asset-helper if used, provide path relative to the assets load path. +// [converter] This is because some asset helpers, such as Sprockets, do not work with file-relative paths. +$icon-font-path: if($bootstrap-sass-asset-helper, "bootstrap/", "../fonts/bootstrap/") !default; + +//** File name for all font files. +$icon-font-name: "glyphicons-halflings-regular" !default; +//** Element ID within SVG icon file. +$icon-font-svg-id: "glyphicons_halflingsregular" !default; + + +//== Components +// +//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start). + +$padding-base-vertical: 6px !default; +$padding-base-horizontal: 12px !default; + +$padding-large-vertical: 10px !default; +$padding-large-horizontal: 16px !default; + +$padding-small-vertical: 5px !default; +$padding-small-horizontal: 10px !default; + +$padding-xs-vertical: 1px !default; +$padding-xs-horizontal: 5px !default; + +$line-height-large: 1.3333333 !default; // extra decimals for Win 8.1 Chrome +$line-height-small: 1.5 !default; + +$border-radius-base: 4px !default; +$border-radius-large: 6px !default; +$border-radius-small: 3px !default; + +//** Global color for active items (e.g., navs or dropdowns). +$component-active-color: $link-color !default; +//** Global background color for active items (e.g., navs or dropdowns). +$component-active-bg: $brand-primary !default; + +//** Width of the `border` for generating carets that indicator dropdowns. +$caret-width-base: 4px !default; +//** Carets increase slightly in size for larger components. +$caret-width-large: 5px !default; + + +//== Tables +// +//## Customizes the `.table` component with basic values, each used across all table variations. + +//** Padding for `<th>`s and `<td>`s. +$table-cell-padding: 8px !default; +//** Padding for cells in `.table-condensed`. +$table-condensed-cell-padding: 5px !default; + +//** Default background color used for all tables. +$table-bg: transparent !default; +//** Background color used for `.table-striped`. +$table-bg-accent: #f9f9f9 !default; +//** Background color used for `.table-hover`. +$table-bg-hover: #f5f5f5 !default; +$table-bg-active: $table-bg-hover !default; + +//** Border color for table and cell borders. +$table-border-color: #ddd !default; + + +//== Buttons +// +//## For each of Bootstrap's buttons, define text, background and border color. + +$btn-font-weight: normal !default; + +$btn-default-color: #333 !default; +$btn-default-bg: #fff !default; +$btn-default-border: #ccc !default; + +$btn-primary-color: #fff !default; +$btn-primary-bg: $brand-primary !default; +$btn-primary-border: darken($btn-primary-bg, 15%) !default; + +$btn-success-color: #fff !default; +$btn-success-bg: $brand-success !default; +$btn-success-border: darken($btn-success-bg, 5%) !default; + +$btn-info-color: #fff !default; +$btn-info-bg: $brand-info !default; +$btn-info-border: darken($btn-info-bg, 5%) !default; + +$btn-warning-color: #fff !default; +$btn-warning-bg: $brand-warning !default; +$btn-warning-border: darken($btn-warning-bg, 5%) !default; + +$btn-danger-color: #fff !default; +$btn-danger-bg: $brand-danger !default; +$btn-danger-border: darken($btn-danger-bg, 5%) !default; + +$btn-link-disabled-color: $gray-light !default; + +// Allows for customizing button radius independently from global border radius +$btn-border-radius-base: $border-radius-base !default; +$btn-border-radius-large: $border-radius-large !default; +$btn-border-radius-small: $border-radius-small !default; + + +//== Forms +// +//## + +//** `<input>` background color +$input-bg: #fff !default; +//** `<input disabled>` background color +$input-bg-disabled: $gray-lighter !default; + +//** Text color for `<input>`s +$input-color: $gray !default; +//** `<input>` border color +$input-border: #ccc !default; + +// TODO: Rename `$input-border-radius` to `$input-border-radius-base` in v4 +//** Default `.form-control` border radius +// This has no effect on `<select>`s in some browsers, due to the limited stylability of `<select>`s in CSS. +$input-border-radius: $border-radius-base !default; +//** Large `.form-control` border radius +$input-border-radius-large: $border-radius-large !default; +//** Small `.form-control` border radius +$input-border-radius-small: $border-radius-small !default; + +//** Border color for inputs on focus +$input-border-focus: #66afe9 !default; + +//** Placeholder text color +$input-color-placeholder: #999 !default; + +//** Default `.form-control` height +$input-height-base: ($line-height-computed + ($padding-base-vertical * 2) + 2) !default; +//** Large `.form-control` height +$input-height-large: (ceil($font-size-large * $line-height-large) + ($padding-large-vertical * 2) + 2) !default; +//** Small `.form-control` height +$input-height-small: (floor($font-size-small * $line-height-small) + ($padding-small-vertical * 2) + 2) !default; + +//** `.form-group` margin +$form-group-margin-bottom: 15px !default; + +$legend-color: $gray-dark !default; +$legend-border-color: #e5e5e5 !default; + +//** Background color for textual input addons +$input-group-addon-bg: $gray-lighter !default; +//** Border color for textual input addons +$input-group-addon-border-color: $input-border !default; + +//** Disabled cursor for form controls and buttons. +$cursor-disabled: not-allowed !default; + + +//== Dropdowns +// +//## Dropdown menu container and contents. + +//** Background for the dropdown menu. +$dropdown-bg: #fff !default; +//** Dropdown menu `border-color`. +$dropdown-border: rgba(0,0,0,.15) !default; +//** Dropdown menu `border-color` **for IE8**. +$dropdown-fallback-border: #ccc !default; +//** Divider color for between dropdown items. +$dropdown-divider-bg: #e5e5e5 !default; + +//** Dropdown link text color. +$dropdown-link-color: #555 !default; +//** Hover color for dropdown links. +$dropdown-link-hover-color: $link-hover-color !default; +//** Hover background for dropdown links. +$dropdown-link-hover-bg: transparent !default; + +//** Active dropdown menu item text color. +$dropdown-link-active-color: $component-active-color !default; +//** Active dropdown menu item background color. +$dropdown-link-active-bg: transparent !default; + +//** Disabled dropdown menu item background color. +$dropdown-link-disabled-color: $gray-light !default; + +//** Text color for headers within dropdown menus. +$dropdown-header-color: $gray-light !default; + +//** Deprecated `$dropdown-caret-color` as of v3.1.0 +$dropdown-caret-color: #000 !default; + + +//-- Z-index master list +// +// Warning: Avoid customizing these values. They're used for a bird's eye view +// of components dependent on the z-axis and are designed to all work together. +// +// Note: These variables are not generated into the Customizer. + +$zindex-navbar: 1000 !default; +$zindex-dropdown: 1002 !default; +$zindex-popover: 1060 !default; +$zindex-tooltip: 1070 !default; +$zindex-navbar-fixed: 1030 !default; +$zindex-modal-background: 1040 !default; +$zindex-modal: 1050 !default; + + +//== Media queries breakpoints +// +//## Define the breakpoints at which your layout will change, adapting to different screen sizes. + +// Extra small screen / phone +//** Deprecated `$screen-xs` as of v3.0.1 +$screen-xs: 480px !default; +//** Deprecated `$screen-xs-min` as of v3.2.0 +$screen-xs-min: $screen-xs !default; +//** Deprecated `$screen-phone` as of v3.0.1 +$screen-phone: $screen-xs-min !default; + +// Small screen / tablet +//** Deprecated `$screen-sm` as of v3.0.1 +$screen-sm: 768px !default; +$screen-sm-min: $screen-sm !default; +//** Deprecated `$screen-tablet` as of v3.0.1 +$screen-tablet: $screen-sm-min !default; + +// Medium screen / desktop +//** Deprecated `$screen-md` as of v3.0.1 +$screen-md: 992px !default; +$screen-md-min: $screen-md !default; +//** Deprecated `$screen-desktop` as of v3.0.1 +$screen-desktop: $screen-md-min !default; + +// Large screen / wide desktop +//** Deprecated `$screen-lg` as of v3.0.1 +$screen-lg: 1200px !default; +$screen-lg-min: $screen-lg !default; +//** Deprecated `$screen-lg-desktop` as of v3.0.1 +$screen-lg-desktop: $screen-lg-min !default; + +// So media queries don't overlap when required, provide a maximum +$screen-xs-max: ($screen-sm-min - 1) !default; +$screen-sm-max: ($screen-md-min - 1) !default; +$screen-md-max: ($screen-lg-min - 1) !default; + + +//== Grid system +// +//## Define your custom responsive grid. + +//** Number of columns in the grid. +$grid-columns: 12 !default; +//** Padding between columns. Gets divided in half for the left and right. +$grid-gutter-width: 0 !default; +// Navbar collapse +//** Point at which the navbar becomes uncollapsed. +$grid-float-breakpoint: $screen-sm-min !default; +//** Point at which the navbar begins collapsing. +$grid-float-breakpoint-max: ($grid-float-breakpoint - 1) !default; + + +//== Container sizes +// +//## Define the maximum width of `.container` for different screen sizes. + +// Small screen / tablet +$container-tablet: (720px + $grid-gutter-width) !default; +//** For `$screen-sm-min` and up. +$container-sm: $container-tablet !default; + +// Medium screen / desktop +$container-desktop: (940px + $grid-gutter-width) !default; +//** For `$screen-md-min` and up. +$container-md: $container-desktop !default; + +// Large screen / wide desktop +$container-large-desktop: (1140px + $grid-gutter-width) !default; +//** For `$screen-lg-min` and up. +$container-lg: $container-large-desktop !default; + + +//== Navbar +// +//## + +// Basics of a navbar +$navbar-height: 50px !default; +$navbar-margin-bottom: $line-height-computed !default; +$navbar-border-radius: $border-radius-base !default; +$navbar-padding-horizontal: floor(($grid-gutter-width / 2)) !default; +$navbar-padding-vertical: (($navbar-height - $line-height-computed) / 2) !default; +$navbar-collapse-max-height: 340px !default; + +$navbar-default-color: #bbb !default; +$navbar-default-bg: #f8f8f8 !default; +$navbar-default-border: darken($navbar-default-bg, 6.5%) !default; + +// Navbar links +$navbar-default-link-color: #bbb !default; +$navbar-default-link-hover-color: $link-hover-color !default; +$navbar-default-link-hover-bg: transparent !default; +$navbar-default-link-active-color: $component-active-color !default; +$navbar-default-link-active-bg: darken($navbar-default-bg, 6.5%) !default; +$navbar-default-link-disabled-color: #ccc !default; +$navbar-default-link-disabled-bg: transparent !default; + +// Navbar brand label +$navbar-default-brand-color: $navbar-default-link-color !default; +$navbar-default-brand-hover-color: darken($link-color, 15%) !default; +$navbar-default-brand-hover-bg: transparent !default; + +// Navbar toggle +$navbar-default-toggle-hover-bg: #ddd !default; +$navbar-default-toggle-icon-bar-bg: #888 !default; +$navbar-default-toggle-border-color: #ddd !default; + + +//=== Inverted navbar +// Reset inverted navbar basics +$navbar-inverse-color: lighten($gray-light, 15%) !default; +$navbar-inverse-bg: #222 !default; +$navbar-inverse-border: darken($navbar-inverse-bg, 10%) !default; + +// Inverted navbar links +$navbar-inverse-link-color: lighten($gray-light, 15%) !default; +$navbar-inverse-link-hover-color: #fff !default; +$navbar-inverse-link-hover-bg: transparent !default; +$navbar-inverse-link-active-color: $navbar-inverse-link-hover-color !default; +$navbar-inverse-link-active-bg: darken($navbar-inverse-bg, 10%) !default; +$navbar-inverse-link-disabled-color: #444 !default; +$navbar-inverse-link-disabled-bg: transparent !default; + +// Inverted navbar brand label +$navbar-inverse-brand-color: $navbar-inverse-link-color !default; +$navbar-inverse-brand-hover-color: #fff !default; +$navbar-inverse-brand-hover-bg: transparent !default; + +// Inverted navbar toggle +$navbar-inverse-toggle-hover-bg: #333 !default; +$navbar-inverse-toggle-icon-bar-bg: #fff !default; +$navbar-inverse-toggle-border-color: #333 !default; + + +//== Navs +// +//## + +//=== Shared nav styles +$nav-link-padding: 10px 15px !default; +$nav-link-hover-bg: transparent !default; + +$nav-disabled-link-color: $gray-light !default; +$nav-disabled-link-hover-color: $gray-light !default; + +//== Tabs +$nav-tabs-border-color: #ddd !default; + +$nav-tabs-link-hover-border-color: $gray-lighter !default; + +$nav-tabs-active-link-hover-bg: $body-bg !default; +$nav-tabs-active-link-hover-color: $gray !default; +$nav-tabs-active-link-hover-border-color: #ddd !default; + +$nav-tabs-justified-link-border-color: #ddd !default; +$nav-tabs-justified-active-link-border-color: $body-bg !default; + +//== Pills +$nav-pills-border-radius: $border-radius-base !default; +$nav-pills-active-link-hover-bg: $component-active-bg !default; +$nav-pills-active-link-hover-color: $component-active-color !default; + + +//== Pagination +// +//## + +$pagination-color: $link-color !default; +$pagination-bg: #fff !default; +$pagination-border: #ddd !default; + +$pagination-hover-color: $link-hover-color !default; +$pagination-hover-bg: $gray-lighter !default; +$pagination-hover-border: #ddd !default; + +$pagination-active-color: #fff !default; +$pagination-active-bg: $brand-primary !default; +$pagination-active-border: $brand-primary !default; + +$pagination-disabled-color: $gray-light !default; +$pagination-disabled-bg: #fff !default; +$pagination-disabled-border: #ddd !default; + + +//== Pager +// +//## + +$pager-bg: $pagination-bg !default; +$pager-border: $pagination-border !default; +$pager-border-radius: 15px !default; + +$pager-hover-bg: $pagination-hover-bg !default; + +$pager-active-bg: $pagination-active-bg !default; +$pager-active-color: $pagination-active-color !default; + +$pager-disabled-color: $pagination-disabled-color !default; + + +//== Jumbotron +// +//## + +$jumbotron-padding: 30px !default; +$jumbotron-color: inherit !default; +$jumbotron-bg: $gray-lighter !default; +$jumbotron-heading-color: inherit !default; +$jumbotron-font-size: ceil(($font-size-base * 1.5)) !default; +$jumbotron-heading-font-size: ceil(($font-size-base * 4.5)) !default; + + +//== Form states and alerts +// +//## Define colors for form feedback states and, by default, alerts. + +$state-success-text: #3c763d !default; +$state-success-bg: #dff0d8 !default; +$state-success-border: darken(adjust-hue($state-success-bg, -10), 25%) !default; + +$state-info-text: #31708f !default; +$state-info-bg: #d9edf7 !default; +$state-info-border: darken(adjust-hue($state-info-bg, -10), 25%) !default; + +$state-warning-text: #8a6d3b !default; +$state-warning-bg: #fcf8e3 !default; +$state-warning-border: darken(adjust-hue($state-warning-bg, -10), 25%) !default; + +$state-danger-text: #a94442 !default; +$state-danger-bg: #f2dede !default; +$state-danger-border: darken(adjust-hue($state-danger-bg, -10), 25%) !default; + + +//== Tooltips +// +//## + +//** Tooltip max width +$tooltip-max-width: 400px !default; +//** Tooltip text color +$tooltip-color: #000 !default; +//** Tooltip background color +$tooltip-bg: #f5f5f5 !default; +$tooltip-opacity: 1 !default; + +//** Tooltip arrow width +$tooltip-arrow-width: 5px !default; +//** Tooltip arrow color +$tooltip-arrow-color: #ccc !default; + + +//== Popovers +// +//## + +//** Popover body background color +$popover-bg: #fff !default; +//** Popover maximum width +$popover-max-width: auto !default; +//** Popover border color +$popover-border-color: rgba(0,0,0,.2) !default; +//** Popover fallback border color +$popover-fallback-border-color: #ccc !default; + +//** Popover title background color +$popover-title-bg: darken($popover-bg, 3%) !default; + +//** Popover arrow width +$popover-arrow-width: 10px !default; +//** Popover arrow color +$popover-arrow-color: $popover-bg !default; + +//** Popover outer arrow width +$popover-arrow-outer-width: ($popover-arrow-width + 1) !default; +//** Popover outer arrow color +$popover-arrow-outer-color: fade_in($popover-border-color, 0.05) !default; +//** Popover outer arrow fallback color +$popover-arrow-outer-fallback-color: darken($popover-fallback-border-color, 20%) !default; + + +//== Labels +// +//## + +//** Default label background color +$label-default-bg: $gray-light !default; +//** Primary label background color +$label-primary-bg: $brand-primary !default; +//** Success label background color +$label-success-bg: $brand-success !default; +//** Info label background color +$label-info-bg: $brand-info !default; +//** Warning label background color +$label-warning-bg: $brand-warning !default; +//** Danger label background color +$label-danger-bg: $brand-danger !default; + +//** Default label text color +$label-color: #fff !default; +//** Default text color of a linked label +$label-link-hover-color: #fff !default; + + +//== Modals +// +//## + +//** Padding applied to the modal body +$modal-inner-padding: 15px !default; + +//** Padding applied to the modal title +$modal-title-padding: 15px !default; +//** Modal title line-height +$modal-title-line-height: $line-height-base !default; + +//** Background color of modal content area +$modal-content-bg: #fff !default; +//** Modal content border color +$modal-content-border-color: rgba(0,0,0,.2) !default; +//** Modal content border color **for IE8** +$modal-content-fallback-border-color: #999 !default; + +//** Modal backdrop background color +$modal-backdrop-bg: #000 !default; +//** Modal backdrop opacity +$modal-backdrop-opacity: .5 !default; +//** Modal header border color +$modal-header-border-color: #e5e5e5 !default; +//** Modal footer border color +$modal-footer-border-color: $modal-header-border-color !default; + +$modal-lg: 900px !default; +$modal-md: 600px !default; +$modal-sm: 300px !default; + + +//== Alerts +// +//## Define alert colors, border radius, and padding. + +$alert-padding: 15px !default; +$alert-border-radius: $border-radius-base !default; +$alert-link-font-weight: bold !default; + +$alert-success-bg: $state-success-bg !default; +$alert-success-text: $state-success-text !default; +$alert-success-border: $state-success-border !default; + +$alert-info-bg: $state-info-bg !default; +$alert-info-text: $state-info-text !default; +$alert-info-border: $state-info-border !default; + +$alert-warning-bg: $state-warning-bg !default; +$alert-warning-text: $state-warning-text !default; +$alert-warning-border: $state-warning-border !default; + +$alert-danger-bg: $state-danger-bg !default; +$alert-danger-text: $state-danger-text !default; +$alert-danger-border: $state-danger-border !default; + + +//== Progress bars +// +//## + +//** Background color of the whole progress component +$progress-bg: #f5f5f5 !default; +//** Progress bar text color +$progress-bar-color: #fff !default; +//** Variable for setting rounded corners on progress bar. +$progress-border-radius: $border-radius-base !default; + +//** Default progress bar color +$progress-bar-bg: $brand-primary !default; +//** Success progress bar color +$progress-bar-success-bg: $brand-success !default; +//** Warning progress bar color +$progress-bar-warning-bg: $brand-warning !default; +//** Danger progress bar color +$progress-bar-danger-bg: $brand-danger !default; +//** Info progress bar color +$progress-bar-info-bg: $brand-info !default; + + +//== List group +// +//## + +//** Background color on `.list-group-item` +$list-group-bg: #fff !default; +//** `.list-group-item` border color +$list-group-border: #ddd !default; +//** List group border radius +$list-group-border-radius: $border-radius-base !default; + +//** Background color of single list items on hover +$list-group-hover-bg: #f5f5f5 !default; +//** Text color of active list items +$list-group-active-color: $component-active-color !default; +//** Background color of active list items +$list-group-active-bg: $component-active-bg !default; +//** Border color of active list elements +$list-group-active-border: $list-group-active-bg !default; +//** Text color for content within active list items +$list-group-active-text-color: lighten($list-group-active-bg, 40%) !default; + +//** Text color of disabled list items +$list-group-disabled-color: $gray-light !default; +//** Background color of disabled list items +$list-group-disabled-bg: $gray-lighter !default; +//** Text color for content within disabled list items +$list-group-disabled-text-color: $list-group-disabled-color !default; + +$list-group-link-color: #555 !default; +$list-group-link-hover-color: $list-group-link-color !default; +$list-group-link-heading-color: #333 !default; + + +//== Panels +// +//## + +$panel-bg: #fff !default; +$panel-body-padding: 15px !default; +$panel-heading-padding: 10px 15px !default; +$panel-footer-padding: $panel-heading-padding !default; +$panel-border-radius: $border-radius-base !default; + +//** Border color for elements within panels +$panel-inner-border: #ddd !default; +$panel-footer-bg: #f5f5f5 !default; + +$panel-default-text: $gray-dark !default; +$panel-default-border: #ddd !default; +$panel-default-heading-bg: #f5f5f5 !default; + +$panel-primary-text: #fff !default; +$panel-primary-border: $brand-primary !default; +$panel-primary-heading-bg: $brand-primary !default; + +$panel-success-text: $state-success-text !default; +$panel-success-border: $state-success-border !default; +$panel-success-heading-bg: $state-success-bg !default; + +$panel-info-text: $state-info-text !default; +$panel-info-border: $state-info-border !default; +$panel-info-heading-bg: $state-info-bg !default; + +$panel-warning-text: $state-warning-text !default; +$panel-warning-border: $state-warning-border !default; +$panel-warning-heading-bg: $state-warning-bg !default; + +$panel-danger-text: $state-danger-text !default; +$panel-danger-border: $state-danger-border !default; +$panel-danger-heading-bg: $state-danger-bg !default; + + +//== Thumbnails +// +//## + +//** Padding around the thumbnail image +$thumbnail-padding: 4px !default; +//** Thumbnail background color +$thumbnail-bg: $body-bg !default; +//** Thumbnail border color +$thumbnail-border: #ddd !default; +//** Thumbnail border radius +$thumbnail-border-radius: $border-radius-base !default; + +//** Custom text color for thumbnail captions +$thumbnail-caption-color: $text-color !default; +//** Padding around the thumbnail caption +$thumbnail-caption-padding: 9px !default; + + +//== Wells +// +//## + +$well-bg: #f5f5f5 !default; +$well-border: darken($well-bg, 7%) !default; + + +//== Badges +// +//## + +$badge-color: #fff !default; +//** Linked badge text color on hover +$badge-link-hover-color: #fff !default; +$badge-bg: $gray-light !default; + +//** Badge text color in active nav link +$badge-active-color: $link-color !default; +//** Badge background color in active nav link +$badge-active-bg: #fff !default; + +$badge-font-weight: bold !default; +$badge-line-height: 1 !default; +$badge-border-radius: 10px !default; + + +//== Breadcrumbs +// +//## + +$breadcrumb-padding-vertical: 8px !default; +$breadcrumb-padding-horizontal: 15px !default; +//** Breadcrumb background color +$breadcrumb-bg: #f5f5f5 !default; +//** Breadcrumb text color +$breadcrumb-color: #ccc !default; +//** Text color of current page in the breadcrumb +$breadcrumb-active-color: $gray-light !default; +//** Textual separator for between breadcrumb elements +$breadcrumb-separator: "/" !default; + + +//== Carousel +// +//## + +$carousel-text-shadow: none !default; + +$carousel-control-color: #333 !default; +$carousel-control-width: 25% !default; +$carousel-control-opacity: 1 !default; +$carousel-control-font-size: 20px !default; + +$carousel-indicator-active-bg: #333 !default; +$carousel-indicator-border-color: #333 !default; + +$carousel-caption-color: #333 !default; + + +//== Close +// +//## + +$close-font-weight: bold !default; +$close-color: #000 !default; +$close-text-shadow: 0 1px 0 #fff !default; + + +//== Code +// +//## + +$code-color: #c7254e !default; +$code-bg: #f9f2f4 !default; + +$kbd-color: #fff !default; +$kbd-bg: #333 !default; + +$pre-bg: #f5f5f5 !default; +$pre-color: $gray-dark !default; +$pre-border-color: #ccc !default; +$pre-scrollable-max-height: 340px !default; + + +//== Type +// +//## + +//** Horizontal offset for forms and lists. +$component-offset-horizontal: 180px !default; +//** Text muted color +$text-muted: $gray-light !default; +//** Abbreviations and acronyms border color +$abbr-border-color: $gray-light !default; +//** Headings small color +$headings-small-color: $gray-light !default; +//** Blockquote small color +$blockquote-small-color: $gray-light !default; +//** Blockquote font size +$blockquote-font-size: ($font-size-base * 1.25) !default; +//** Blockquote border color +$blockquote-border-color: $gray-lighter !default; +//** Page header border color +$page-header-border-color: $gray-lighter !default; +//** Width of horizontal description list titles +$dl-horizontal-offset: $component-offset-horizontal !default; +//** Point at which .dl-horizontal becomes horizontal +$dl-horizontal-breakpoint: $grid-float-breakpoint !default; +//** Horizontal line color. +$hr-border: $gray-lighter !default;
