diff --git a/.angular-cli.json b/.angular-cli.json new file mode 100644 index 00000000..b2984dde --- /dev/null +++ b/.angular-cli.json @@ -0,0 +1,72 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "project": { + "name": "ng2-admin-cli" + }, + "apps": [ + { + "root": "src", + "outDir": "dist", + "assets": [ + "assets", + "favicon.ico" + ], + "index": "index.html", + "main": "main.ts", + "polyfills": "polyfills.ts", + "test": "test.ts", + "tsconfig": "tsconfig.app.json", + "testTsconfig": "tsconfig.spec.json", + "prefix": "app", + "styles": [ + "../node_modules/bootstrap/scss/bootstrap.scss", + "../node_modules/roboto-fontface/css/roboto/sass/roboto-fontface.scss", + "../node_modules/normalize.css/normalize.css", + "../node_modules/font-awesome/scss/font-awesome.scss", + "../node_modules/ionicons/scss/ionicons.scss", + "../node_modules/leaflet/dist/leaflet.css", + "../node_modules/chartist/dist/chartist.css", + "../node_modules/fullcalendar/dist/fullcalendar.css", + "app/theme/initial.scss", + "app/theme/theme.scss", + "styles.scss" + ], + "scripts": [ + "../node_modules/jquery/dist/jquery.js", + "../node_modules/tether/dist/js/tether.js", + "../node_modules/easy-pie-chart/dist/jquery.easypiechart.js" + ], + "environmentSource": "environments/environment.ts", + "environments": { + "dev": "environments/environment.ts", + "prod": "environments/environment.prod.ts" + } + } + ], + "e2e": { + "protractor": { + "config": "./protractor.conf.js" + } + }, + "lint": [ + { + "project": "src/tsconfig.app.json" + }, + { + "project": "src/tsconfig.spec.json" + }, + { + "project": "e2e/tsconfig.e2e.json" + } + ], + "test": { + "karma": { + "config": "./karma.conf.js" + } + }, + "defaults": { + "styleExt": "scss", + "component": { + } + } +} diff --git a/.bootstraprc b/.bootstraprc deleted file mode 100644 index 9fc9f38d..00000000 --- a/.bootstraprc +++ /dev/null @@ -1,111 +0,0 @@ ---- -# Output debugging info -# loglevel: debug - -# Major version of Bootstrap: 3 or 4 -bootstrapVersion: 4 - -# If Bootstrap version 4 is used - turn on/off flexbox model -useFlexbox: false - -# Webpack loaders, order matters -styleLoaders: - - style - - css - - postcss - - sass - -# Extract styles to stand-alone css file -# Different settings for different environments can be used, -# It depends on value of NODE_ENV environment variable -# This param can also be set in webpack config: -# entry: 'bootstrap-loader/extractStyles' -extractStyles: false -# env: -# development: -# extractStyles: false -# production: -# extractStyles: true - - -# Customize Bootstrap variables that get imported before the original Bootstrap variables. -# Thus, derived Bootstrap variables can depend on values from here. -# See the Bootstrap _variables.scss file for examples of derived Bootstrap variables. -# -# preBootstrapCustomizations: ./path/to/bootstrap/pre-customizations.scss - - -# This gets loaded after bootstrap/variables is loaded -# Thus, you may customize Bootstrap variables -# based on the values established in the Bootstrap _variables.scss file -# -# bootstrapCustomizations: ./path/to/bootstrap/customizations.scss - - -# Import your custom styles here -# Usually this endpoint-file contains list of @imports of your application styles -# -# appStyles: ./path/to/your/app/styles/endpoint.scss - - -### Bootstrap styles -styles: - - # Mixins - mixins: true - - # Reset and dependencies - normalize: true - print: true - - # Core CSS - reboot: true - type: true - images: true - code: true - grid: true - tables: true - forms: true - buttons: true - - # Components - dropdown: true - button-group: true - input-group: true - custom-forms: true - nav: true - navbar: true - card: true - breadcrumb: true - pagination: true - jumbotron: true - alert: true - progress: true - media: true - list-group: true - responsive-embed: true - close: true - transitions: true - - # Components w/ JavaScript - modal: true - tooltip: true - popover: true - carousel: true - - # Utility classes - utilities: true - -### Bootstrap scripts -scripts: - alert: true - button: true - carousel: true - collapse: true - dropdown: true - modal: true - popover: true - scrollspy: true - tab: true - tooltip: true - util: true diff --git a/.editorconfig b/.editorconfig index f1cc3ad3..6e87a003 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,15 +1,13 @@ -# http://editorconfig.org - +# Editor configuration, see http://editorconfig.org root = true [*] charset = utf-8 indent_style = space indent_size = 2 -end_of_line = lf insert_final_newline = true trim_trailing_whitespace = true [*.md] -insert_final_newline = false +max_line_length = off trim_trailing_whitespace = false diff --git a/.gitignore b/.gitignore index 7717c3d9..54bfd200 100644 --- a/.gitignore +++ b/.gitignore @@ -1,69 +1,42 @@ -# Logs -logs -*.log +# See http://help.github.com/ignore-files/ for more about ignoring files. -# Runtime data -pids -*.pid -*.seed - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage - -# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Compiled binary addons (http://nodejs.org/api/addons.html) -build/Release - -# Users Environment Variables -.lock-wscript - -# OS generated files # -.DS_Store -ehthumbs.db -Icon? -Thumbs.db - -# Node Files # -/node_modules -/bower_components -npm-debug.log - -# Coverage # -/coverage/ - -# Typing # -/src/typings/tsd/ -/typings/ -/tsd_typings/ - -# Dist # +# compiled output /dist -/public/__build__/ -/src/*/__build__/ -/__build__/** -/public/dist/ -/src/*/dist/ -/dist/** -.webpack.json -/build -/build/** -/compiled -/dll +/tmp +/out-tsc -# Doc # -/doc/ +# dependencies +/node_modules -# IDE # -.idea/ -*.swp +# IDEs and editors +/.idea +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace -# Angular # -*.ngfactory.ts -*.css.shim.ts -*.ngsummary.json -*.shim.ngstyle.ts +# IDE - VSCode +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json + +# misc +/.sass-cache +/connect.lock +/coverage +/libpeerconnection.log +npm-debug.log +testem.log +/typings + +# e2e +/e2e/*.js +/e2e/*.map + +# System Files +.DS_Store +Thumbs.db diff --git a/.stylelintrc.json b/.stylelintrc.json new file mode 100644 index 00000000..b61d991b --- /dev/null +++ b/.stylelintrc.json @@ -0,0 +1,62 @@ +{ + "rules": { + "color-hex-case": "lower", + "color-no-invalid-hex": true, + + "function-calc-no-unspaced-operator": true, + "function-comma-space-after": "always-single-line", + "function-comma-space-before": "never", + "function-name-case": "lower", + "function-url-quotes": "always", + "function-whitespace-after": "always", + + "number-leading-zero": "always", + "number-no-trailing-zeros": true, + "length-zero-no-unit": true, + + "string-no-newline": true, + "string-quotes": "single", + + "unit-case": "lower", + "unit-no-unknown": true, + "unit-whitelist": ["px", "%", "deg", "ms", "em", "vh", "vw", "s", "rem"], + + "value-list-comma-space-after": "always-single-line", + "value-list-comma-space-before": "never", + + "property-case": "lower", + + "declaration-block-no-duplicate-properties": [ true, { + "ignore": ["consecutive-duplicates-with-different-values"] + }], + "declaration-block-trailing-semicolon": "always", + "declaration-block-single-line-max-declarations": 1, + "declaration-block-semicolon-space-before": "never", + "declaration-block-semicolon-space-after": "always-single-line", + "declaration-block-semicolon-newline-before": "never-multi-line", + "declaration-block-semicolon-newline-after": "always-multi-line", + + "block-closing-brace-newline-after": [ + "always", + { + "ignoreAtRules": ["if", "else"] + } + ], + "block-closing-brace-newline-before": "always-multi-line", + "block-opening-brace-newline-after": "always-multi-line", + "block-opening-brace-space-before": "always-multi-line", + + "selector-attribute-brackets-space-inside": "never", + "selector-attribute-operator-space-after": "never", + "selector-attribute-operator-space-before": "never", + "selector-combinator-space-after": "always", + "selector-combinator-space-before": "always", + "selector-pseudo-class-case": "lower", + "selector-pseudo-class-parentheses-space-inside": "never", + "selector-pseudo-element-case": "lower", + "selector-pseudo-element-colon-notation": "double", + "selector-pseudo-element-no-unknown": true, + "selector-type-case": "lower", + "selector-no-id": true + } +} diff --git a/.vscode/launch.json b/.vscode/launch.json deleted file mode 100644 index 1ed72b2c..00000000 --- a/.vscode/launch.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "version": "0.2.0", - "configurations": [ - { - "name": "Launch Chrome against localhost, with sourcemaps", - "type": "chrome", - "request": "launch", - "url": "http://localhost:3000/*", - "runtimeArgs": [ - "--disable-web-security", - "--user-data-dir", - "--remote-debugging-port=9222" - ], - "sourceMaps": true, - "webRoot": "${workspaceRoot}" - }, - { - "name": "Attach to Chrome, with sourcemaps", - "type": "chrome", - "request": "attach", - "url": "http://localhost:3000/*", - "port": 9222, - "sourceMaps": true, - "webRoot": "${workspaceRoot}" - } - ] -} diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index edce5367..00000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "typescript.tsdk": "node_modules/typescript/lib/" -} diff --git a/config/electron/webpack.electron.common.js b/config/electron/webpack.electron.common.js deleted file mode 100644 index de73c4d2..00000000 --- a/config/electron/webpack.electron.common.js +++ /dev/null @@ -1,38 +0,0 @@ -const helpers = require('./../helpers'); -const CopyWebpackPlugin = require('copy-webpack-plugin'); - -module.exports = { - entry: { - 'main': './src/desktop.ts' - }, - - target: 'electron', - - node: { - __dirname: false - }, - - output: { - path: helpers.root('build'), - filename: '[name].js' - }, - - resolve: { - extensions: ['.ts', '.js', '.json'] - }, - - module: { - rules: [ - { - test: /\.ts$/, - loaders: 'awesome-typescript-loader' - } - ] - }, - - plugins: [ - new CopyWebpackPlugin([{ - from: 'src/package.json' - }]) - ] -}; diff --git a/config/electron/webpack.electron.dev.js b/config/electron/webpack.electron.dev.js deleted file mode 100644 index d3a1ba5a..00000000 --- a/config/electron/webpack.electron.dev.js +++ /dev/null @@ -1,21 +0,0 @@ -const webpack = require('webpack'); -const webpackMerge = require('webpack-merge'); -const commonConfig = require('./webpack.electron.common.js'); -const WebpackShellPlugin = require('./webpack-shell-plugin'); - -const ENV = process.env.NODE_ENV = process.env.ENV = 'development'; - -module.exports = webpackMerge(commonConfig, { - plugins: [ - new WebpackShellPlugin({ - //TODO: Kill electron process before build, to start the new one fresh. - onBuildStart: [''], - onBuildEnd: ['electron dist'] - }), - new webpack.DefinePlugin({ - 'process.env': { - 'ENV': JSON.stringify(ENV) - } - }) - ] -}); diff --git a/config/electron/webpack.electron.prod.js b/config/electron/webpack.electron.prod.js deleted file mode 100644 index fbe3a528..00000000 --- a/config/electron/webpack.electron.prod.js +++ /dev/null @@ -1,26 +0,0 @@ -const webpack = require('webpack'); -const webpackMerge = require('webpack-merge'); -const commonConfig = require('./webpack.electron.common.js'); - -const ENV = process.env.NODE_ENV = process.env.ENV = 'production'; - -module.exports = webpackMerge(commonConfig, { - plugins: [ - // new webpack.optimize.DedupePlugin(), - new webpack.optimize.UglifyJsPlugin({ - beautify: false, - mangle: { - screw_ie8: true - }, - compress: { - screw_ie8: true - }, - comments: false - }), - new webpack.DefinePlugin({ - 'process.env': { - 'ENV': JSON.stringify(ENV) - } - }) - ] -}); diff --git a/config/electron/webpack.renderer.common.js b/config/electron/webpack.renderer.common.js deleted file mode 100644 index a9532a6e..00000000 --- a/config/electron/webpack.renderer.common.js +++ /dev/null @@ -1,70 +0,0 @@ -const helpers = require('./../helpers'); -const HtmlWebpackPlugin = require('html-webpack-plugin'); - -const METADATA = { - baseUrl: './', - ENV: 'renderer' -}; - -/* - * Webpack configuration - * - * See: http://webpack.github.io/docs/configuration.html#cli - */ -module.exports = function (env) { - METADATA.ENV = env - ? env - : METADATA.ENV; - - return { - - /** - * The plataform target where the aplication is going to run in. - * It support target electron-renderer, but is not documented. - * - * See: https://webpack.github.io/docs/configuration.html#target - */ - - target: 'electron-renderer', - - /** - * Options affecting the output of the compilation. - * - * See: http://webpack.github.io/docs/configuration.html#output - */ - output: { - - /** - * The output directory as absolute path (required). - * - * See: http://webpack.github.io/docs/configuration.html#output-path - */ - path: helpers.root('build') - }, - - /* - * Include polyfills or mocks for various node stuff - * Description: Node configuration - * - * See: https://webpack.github.io/docs/configuration.html#node - */ - node: { - global: true, - crypto: 'empty', - process: true, - module: false, - clearImmediate: false, - setImmediate: false - }, - - plugins: [ - new HtmlWebpackPlugin({ - template: 'src/index.html', - title: METADATA.title, - chunksSortMode: 'dependency', - metadata: METADATA, - inject: 'head' - }) - ] - }; -}; diff --git a/config/electron/webpack.renderer.dev.js b/config/electron/webpack.renderer.dev.js deleted file mode 100644 index 66f9c292..00000000 --- a/config/electron/webpack.renderer.dev.js +++ /dev/null @@ -1,6 +0,0 @@ -const devConfig = require('./../webpack.dev'); -const commonConfig = require('./webpack.renderer.common'); -const webpackMerge = require('webpack-merge'); - -module.exports = webpackMerge(devConfig(), commonConfig(), { -}); diff --git a/config/electron/webpack.renderer.prod.js b/config/electron/webpack.renderer.prod.js deleted file mode 100644 index 4a2ae9f5..00000000 --- a/config/electron/webpack.renderer.prod.js +++ /dev/null @@ -1,6 +0,0 @@ -const prodConfig = require('./../webpack.prod'); -const commonConfig = require('./webpack.renderer.common'); -const webpackMerge = require('webpack-merge'); - -module.exports = webpackMerge(prodConfig(), commonConfig(), { -}); diff --git a/config/empty.js b/config/empty.js deleted file mode 100644 index 7578e4f5..00000000 --- a/config/empty.js +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = { - NgProbeToken: {}, - HmrState: function() {}, - _createConditionalRootRenderer: function(rootRenderer, extraTokens, coreTokens) { - return rootRenderer; - }, - __platform_browser_private__: {} -}; diff --git a/config/head-config.common.js b/config/head-config.common.js deleted file mode 100644 index 6d1c5e44..00000000 --- a/config/head-config.common.js +++ /dev/null @@ -1,43 +0,0 @@ -/** - * Configuration for head elements added during the creation of index.html. - * - * All href attributes are added the publicPath (if exists) by default. - * You can explicitly hint to prefix a publicPath by setting a boolean value to a key that has - * the same name as the attribute you want to operate on, but prefix with = - * - * Example: - * { name: 'msapplication-TileImage', content: '/assets/icon/ms-icon-144x144.png', '=content': true }, - * Will prefix the publicPath to content. - * - * { rel: 'apple-touch-icon', sizes: '57x57', href: '/assets/icon/apple-icon-57x57.png', '=href': false }, - * Will not prefix the publicPath on href (href attributes are added by default - * - */ -module.exports = { - link: [ - /** tags for 'apple-touch-icon' (AKA Web Clips). **/ - { rel: 'apple-touch-icon', sizes: '57x57', href: 'assets/icon/apple-icon-57x57.png' }, - { rel: 'apple-touch-icon', sizes: '60x60', href: 'assets/icon/apple-icon-60x60.png' }, - { rel: 'apple-touch-icon', sizes: '72x72', href: 'assets/icon/apple-icon-72x72.png' }, - { rel: 'apple-touch-icon', sizes: '76x76', href: 'assets/icon/apple-icon-76x76.png' }, - { rel: 'apple-touch-icon', sizes: '114x114', href: 'assets/icon/apple-icon-114x114.png' }, - { rel: 'apple-touch-icon', sizes: '120x120', href: 'assets/icon/apple-icon-120x120.png' }, - { rel: 'apple-touch-icon', sizes: '144x144', href: 'assets/icon/apple-icon-144x144.png' }, - { rel: 'apple-touch-icon', sizes: '152x152', href: 'assets/icon/apple-icon-152x152.png' }, - { rel: 'apple-touch-icon', sizes: '180x180', href: 'assets/icon/apple-icon-180x180.png' }, - - /** tags for android web app icons **/ - { rel: 'icon', type: 'image/png', sizes: '192x192', href: 'assets/icon/android-icon-192x192.png' }, - - /** tags for favicons **/ - { rel: 'icon', type: 'image/png', sizes: '32x32', href: 'assets/icon/favicon-32x32.png' }, - { rel: 'icon', type: 'image/png', sizes: '96x96', href: 'assets/icon/favicon-96x96.png' }, - { rel: 'icon', type: 'image/png', sizes: '16x16', href: 'assets/icon/favicon-16x16.png' } - - ], - meta: [ - { name: 'msapplication-TileColor', content: '#ffffff' }, - { name: 'msapplication-TileImage', content: 'assets/icon/ms-icon-144x144.png', '=content': true }, - { name: 'theme-color', content: '#4691d1' } - ] -}; diff --git a/config/helpers.js b/config/helpers.js deleted file mode 100644 index 38392247..00000000 --- a/config/helpers.js +++ /dev/null @@ -1,25 +0,0 @@ -var path = require('path'); - -const EVENT = process.env.npm_lifecycle_event || ''; - -// Helper functions -var ROOT = path.resolve(__dirname, '..'); - -function hasProcessFlag(flag) { - return process.argv.join('').indexOf(flag) > -1; -} - -function hasNpmFlag(flag) { - return EVENT.includes(flag); -} - -function isWebpackDevServer() { - return process.argv[1] && !! (/webpack-dev-server/.exec(process.argv[1])); -} - -var root = path.join.bind(path, ROOT); - -exports.hasProcessFlag = hasProcessFlag; -exports.hasNpmFlag = hasNpmFlag; -exports.isWebpackDevServer = isWebpackDevServer; -exports.root = root; diff --git a/config/html-elements-plugin/index.js b/config/html-elements-plugin/index.js deleted file mode 100644 index 90bcf553..00000000 --- a/config/html-elements-plugin/index.js +++ /dev/null @@ -1,111 +0,0 @@ -function HtmlElementsPlugin(locations) { - this.locations = locations; -} - -HtmlElementsPlugin.prototype.apply = function (compiler) { - var self = this; - compiler.plugin('compilation', function (compilation) { - compilation.options.htmlElements = compilation.options.htmlElements || {}; - - compilation.plugin('html-webpack-plugin-before-html-generation', function (htmlPluginData, callback) { - const locations = self.locations; - - if (locations) { - const publicPath = htmlPluginData.assets.publicPath; - - Object.getOwnPropertyNames(locations).forEach(function (loc) { - compilation.options.htmlElements[loc] = getHtmlElementString(locations[loc], publicPath); - }); - } - - - callback(null, htmlPluginData); - }); - }); - -}; - -const RE_ENDS_WITH_BS = /\/$/; - -/** - * Create an HTML tag with attributes from a map. - * - * Example: - * createTag('link', { rel: "manifest", href: "/assets/manifest.json" }) - * // - * @param tagName The name of the tag - * @param attrMap A Map of attribute names (keys) and their values. - * @param publicPath a path to add to eh start of static asset url - * @returns {string} - */ -function createTag(tagName, attrMap, publicPath) { - publicPath = publicPath || ''; - - // add trailing slash if we have a publicPath and it doesn't have one. - if (publicPath && !RE_ENDS_WITH_BS.test(publicPath)) { - publicPath += '/'; - } - - const attributes = Object.getOwnPropertyNames(attrMap) - .filter(function (name) { - return name[0] !== '='; - }) - .map(function (name) { - var value = attrMap[name]; - - if (publicPath) { - // check if we have explicit instruction, use it if so (e.g: =herf: false) - // if no instruction, use public path if it's href attribute. - const usePublicPath = attrMap.hasOwnProperty('=' + name) ? !!attrMap['=' + name] : name === 'href'; - - if (usePublicPath) { - // remove a starting trailing slash if the value has one so we wont have // - value = publicPath + (value[0] === '/' ? value.substr(1) : value); - } - } - - return `${name}="${value}"`; - }); - - const closingTag = tagName === 'script' ? '' : ''; - - return `<${tagName} ${attributes.join(' ')}>${closingTag}`; -} - -/** - * Returns a string representing all html elements defined in a data source. - * - * Example: - * - * const ds = { - * link: [ - * { rel: "apple-touch-icon", sizes: "57x57", href: "/assets/icon/apple-icon-57x57.png" } - * ], - * meta: [ - * { name: "msapplication-TileColor", content: "#00bcd4" } - * ] - * } - * - * getHeadTags(ds); - * // "" - * "" - * - * @returns {string} - */ -function getHtmlElementString(dataSource, publicPath) { - return Object.getOwnPropertyNames(dataSource) - .map(function (name) { - if (Array.isArray(dataSource[name])) { - return dataSource[name].map(function (attrs) { - return createTag(name, attrs, publicPath); - }); - } else { - return [createTag(name, dataSource[name], publicPath)]; - } - }) - .reduce(function (arr, curr) { - return arr.concat(curr); - }, []) - .join('\n\t'); -} -module.exports = HtmlElementsPlugin; diff --git a/config/modules/angular2-hmr-prod.js b/config/modules/angular2-hmr-prod.js deleted file mode 100644 index 1ef1ec84..00000000 --- a/config/modules/angular2-hmr-prod.js +++ /dev/null @@ -1,2 +0,0 @@ -exports.HmrState = function() { -}; diff --git a/config/webpack.common.js b/config/webpack.common.js deleted file mode 100644 index 28b97b59..00000000 --- a/config/webpack.common.js +++ /dev/null @@ -1,400 +0,0 @@ -const webpack = require('webpack'); -const helpers = require('./helpers'); - -/* - * Webpack Plugins - */ -// problem with copy-webpack-plugin -const AssetsPlugin = require('assets-webpack-plugin'); -const NormalModuleReplacementPlugin = require('webpack/lib/NormalModuleReplacementPlugin'); -const ContextReplacementPlugin = require('webpack/lib/ContextReplacementPlugin'); -const CopyWebpackPlugin = require('copy-webpack-plugin'); -const CheckerPlugin = require('awesome-typescript-loader').CheckerPlugin; -const HtmlElementsPlugin = require('./html-elements-plugin'); -const ExtractTextPlugin = require('extract-text-webpack-plugin'); -const HtmlWebpackPlugin = require('html-webpack-plugin'); -const LoaderOptionsPlugin = require('webpack/lib/LoaderOptionsPlugin'); -const CommonsChunkPlugin = require('webpack/lib/optimize/CommonsChunkPlugin'); -const ScriptExtHtmlWebpackPlugin = require('script-ext-html-webpack-plugin'); -const ngcWebpack = require('ngc-webpack'); - - -/* - * Webpack Constants - */ -const HMR = helpers.hasProcessFlag('hot'); -const AOT = helpers.hasNpmFlag('aot'); -const METADATA = { - title: 'ng2-admin - Angular 2 Admin Template', - description: 'Free Angular 2 and Bootstrap 4 Admin Template', - baseUrl: '/', - isDevServer: helpers.isWebpackDevServer() -}; - -/* - * Webpack configuration - * - * See: http://webpack.github.io/docs/configuration.html#cli - */ -module.exports = function (options) { - isProd = options.env === 'production'; - return { - - /* - * Cache generated modules and chunks to improve performance for multiple incremental builds. - * This is enabled by default in watch mode. - * You can pass false to disable it. - * - * See: http://webpack.github.io/docs/configuration.html#cache - */ - //cache: false, - - /* - * The entry point for the bundle - * Our Angular.js app - * - * See: http://webpack.github.io/docs/configuration.html#entry - */ - entry: { - - 'polyfills': './src/polyfills.browser.ts', - 'vendor': './src/vendor.browser.ts', - 'main': AOT ? './src/main.browser.aot.ts' : './src/main.browser.ts' - }, - - /* - * Options affecting the resolving of modules. - * - * See: http://webpack.github.io/docs/configuration.html#resolve - */ - resolve: { - - /* - * An array of extensions that should be used to resolve modules. - * - * See: http://webpack.github.io/docs/configuration.html#resolve-extensions - */ - extensions: ['.ts', '.js', '.css', '.scss', '.json'], - - // An array of directory names to be resolved to the current directory - modules: [helpers.root('src'), helpers.root('node_modules')], - - }, - - /* - * Options affecting the normal modules. - * - * See: http://webpack.github.io/docs/configuration.html#module - */ - module: { - - rules: [ - - /* - * Typescript loader support for .ts - * - * Component Template/Style integration using `angular2-template-loader` - * Angular 2 lazy loading (async routes) via `ng-router-loader` - * - * `ng-router-loader` expects vanilla JavaScript code, not TypeScript code. This is why the - * order of the loader matter. - * - * See: https://github.com/s-panferov/awesome-typescript-loader - * See: https://github.com/TheLarkInn/angular2-template-loader - * See: https://github.com/shlomiassaf/ng-router-loader - */ - { - test: /\.ts$/, - use: [ - { - loader: '@angularclass/hmr-loader', - options: { - pretty: !isProd, - prod: isProd - } - }, - { // MAKE SURE TO CHAIN VANILLA JS CODE, I.E. TS COMPILATION OUTPUT. - loader: 'ng-router-loader', - options: { - loader: 'async-import', - genDir: 'compiled', - aot: AOT - } - }, - { - loader: 'awesome-typescript-loader', - options: { - configFileName: 'tsconfig.webpack.json' - } - }, - { - loader: 'angular2-template-loader' - } - ], - exclude: [/\.(spec|e2e)\.ts$/] - }, - - /* - * Json loader support for *.json files. - * - * See: https://github.com/webpack/json-loader - */ - { - test: /\.json$/, - use: 'json-loader' - }, - - /* - * to string and css loader support for *.css files (from Angular components) - * Returns file content as string - * - */ - { - test: /\.css$/, - use: ['raw-loader'] - }, - - { - test: /\.scss$/, - use: ['raw-loader', 'sass-loader'] - }, - - { - test: /initial\.scss$/, - use: ExtractTextPlugin.extract({ - fallback: 'style-loader', - use: 'css-loader!sass-loader?sourceMap' - }) - }, - - { - test: /\.woff(2)?(\?v=.+)?$/, - use: 'url-loader?limit=10000&mimetype=application/font-woff' - }, - - { - test: /\.(ttf|eot|svg)(\?v=.+)?$/, - use: 'file-loader' - }, - - { - test: /bootstrap\/dist\/js\/umd\//, - use: 'imports-loader?jQuery=jquery' - }, - - /* Raw loader support for *.html - * Returns file content as string - * - * See: https://github.com/webpack/raw-loader - */ - { - test: /\.html$/, - use: 'raw-loader', - exclude: [helpers.root('src/index.html')] - }, - - /* File loader for supporting images, for example, in CSS files. - */ - { - test: /\.(jpg|png|gif)$/, - use: 'file-loader' - } - ] - }, - - /* - * Add additional plugins to the compiler. - * - * See: http://webpack.github.io/docs/configuration.html#plugins - */ - plugins: [ - new ExtractTextPlugin({filename: 'initial.css', allChunks: true}), - - new AssetsPlugin({ - path: helpers.root('dist'), - filename: 'webpack-assets.json', - prettyPrint: true - }), - - /* - * Plugin: ForkCheckerPlugin - * Description: Do type checking in a separate process, so webpack don't need to wait. - * - * See: https://github.com/s-panferov/awesome-typescript-loader#forkchecker-boolean-defaultfalse - */ - new CheckerPlugin(), - /* - * Plugin: CommonsChunkPlugin - * Description: Shares common code between the pages. - * It identifies common modules and put them into a commons chunk. - * - * See: https://webpack.github.io/docs/list-of-plugins.html#commonschunkplugin - * See: https://github.com/webpack/docs/wiki/optimization#multi-page-app - */ - new CommonsChunkPlugin({ - name: 'polyfills', - chunks: ['polyfills'] - }), - // This enables tree shaking of the vendor modules - new CommonsChunkPlugin({ - name: 'vendor', - chunks: ['main'], - minChunks: module => /node_modules/.test(module.resource) - }), - // Specify the correct order the scripts will be injected in - new CommonsChunkPlugin({ - name: ['polyfills', 'vendor'].reverse() - }), - - - /** - * Plugin: ContextReplacementPlugin - * Description: Provides context to Angular's use of System.import - * - * See: https://webpack.github.io/docs/list-of-plugins.html#contextreplacementplugin - * See: https://github.com/angular/angular/issues/11580 - */ - new ContextReplacementPlugin( - // The (\\|\/) piece accounts for path separators in *nix and Windows - /angular(\\|\/)core(\\|\/)src(\\|\/)linker/, - helpers.root('src') // location of your src - ), - - /* - * Plugin: CopyWebpackPlugin - * Description: Copy files and directories in webpack. - * - * Copies project static assets. - * - * See: https://www.npmjs.com/package/copy-webpack-plugin - */ - new CopyWebpackPlugin([ - {from: 'src/assets', to: 'assets'}, - {from: 'src/meta'} - ]), - - /* - * Plugin: HtmlWebpackPlugin - * Description: Simplifies creation of HTML files to serve your webpack bundles. - * This is especially useful for webpack bundles that include a hash in the filename - * which changes every compilation. - * - * See: https://github.com/ampedandwired/html-webpack-plugin - */ - new HtmlWebpackPlugin({ - template: 'src/index.html', - title: METADATA.title, - chunksSortMode: 'dependency', - metadata: METADATA, - inject: 'head' - }), - - /* - * Plugin: ScriptExtHtmlWebpackPlugin - * Description: Enhances html-webpack-plugin functionality - * with different deployment options for your scripts including: - * - * See: https://github.com/numical/script-ext-html-webpack-plugin - */ - new ScriptExtHtmlWebpackPlugin({ - defaultAttribute: 'defer' - }), - - /* - * Plugin: HtmlHeadConfigPlugin - * Description: Generate html tags based on javascript maps. - * - * If a publicPath is set in the webpack output configuration, it will be automatically added to - * href attributes, you can disable that by adding a "=href": false property. - * You can also enable it to other attribute by settings "=attName": true. - * - * The configuration supplied is map between a location (key) and an element definition object (value) - * The location (key) is then exported to the template under then htmlElements property in webpack configuration. - * - * Example: - * Adding this plugin configuration - * new HtmlElementsPlugin({ - * headTags: { ... } - * }) - * - * Means we can use it in the template like this: - * <%= webpackConfig.htmlElements.headTags %> - * - * Dependencies: HtmlWebpackPlugin - */ - new HtmlElementsPlugin({ - headTags: require('./head-config.common') - }), - - /** - * Plugin LoaderOptionsPlugin (experimental) - * - * See: https://gist.github.com/sokra/27b24881210b56bbaff7 - */ - new LoaderOptionsPlugin({}), - - new webpack.ProvidePlugin({ - $: "jquery", - jQuery: "jquery", - "window.jQuery": "jquery", - Tether: "tether", - "window.Tether": "tether", - Tooltip: "exports-loader?Tooltip!bootstrap/js/dist/tooltip", - Alert: "exports-loader?Alert!bootstrap/js/dist/alert", - Button: "exports-loader?Button!bootstrap/js/dist/button", - Carousel: "exports-loader?Carousel!bootstrap/js/dist/carousel", - Collapse: "exports-loader?Collapse!bootstrap/js/dist/collapse", - Dropdown: "exports-loader?Dropdown!bootstrap/js/dist/dropdown", - Modal: "exports-loader?Modal!bootstrap/js/dist/modal", - Popover: "exports-loader?Popover!bootstrap/js/dist/popover", - Scrollspy: "exports-loader?Scrollspy!bootstrap/js/dist/scrollspy", - Tab: "exports-loader?Tab!bootstrap/js/dist/tab", - Util: "exports-loader?Util!bootstrap/js/dist/util" - }), - - // Fix Angular 2 - new NormalModuleReplacementPlugin( - /facade(\\|\/)async/, - helpers.root('node_modules/@angular/core/src/facade/async.js') - ), - new NormalModuleReplacementPlugin( - /facade(\\|\/)collection/, - helpers.root('node_modules/@angular/core/src/facade/collection.js') - ), - new NormalModuleReplacementPlugin( - /facade(\\|\/)errors/, - helpers.root('node_modules/@angular/core/src/facade/errors.js') - ), - new NormalModuleReplacementPlugin( - /facade(\\|\/)lang/, - helpers.root('node_modules/@angular/core/src/facade/lang.js') - ), - new NormalModuleReplacementPlugin( - /facade(\\|\/)math/, - helpers.root('node_modules/@angular/core/src/facade/math.js') - ), - - new ngcWebpack.NgcWebpackPlugin({ - disabled: !AOT, - tsConfig: helpers.root('tsconfig.webpack.json'), - resourceOverride: helpers.root('config/resource-override.js') - }) - ], - - /* - * Include polyfills or mocks for various node stuff - * Description: Node configuration - * - * See: https://webpack.github.io/docs/configuration.html#node - */ - node: { - global: true, - crypto: 'empty', - process: true, - module: false, - clearImmediate: false, - setImmediate: false - } - - }; -} diff --git a/config/webpack.dev.js b/config/webpack.dev.js deleted file mode 100644 index 3ca33796..00000000 --- a/config/webpack.dev.js +++ /dev/null @@ -1,227 +0,0 @@ -const helpers = require('./helpers'); -const webpackMerge = require('webpack-merge'); // used to merge webpack configs -const webpackMergeDll = webpackMerge.strategy({plugins: 'replace'}); -const commonConfig = require('./webpack.common.js'); // the settings that are common to prod and dev - -/** - * Webpack Plugins - */ -const AddAssetHtmlPlugin = require('add-asset-html-webpack-plugin'); -const DefinePlugin = require('webpack/lib/DefinePlugin'); -const NamedModulesPlugin = require('webpack/lib/NamedModulesPlugin'); -const LoaderOptionsPlugin = require('webpack/lib/LoaderOptionsPlugin'); - -/** - * Webpack Constants - */ -const ENV = process.env.ENV = process.env.NODE_ENV = 'development'; -const HOST = process.env.HOST || 'localhost'; -const PORT = Number(process.env.PORT) || 3000; -const HMR = helpers.hasProcessFlag('hot'); -const METADATA = webpackMerge(commonConfig({env: ENV}).metadata, { - host: HOST, - port: PORT, - ENV: ENV, - HMR: HMR -}); - -const DllBundlesPlugin = require('webpack-dll-bundles-plugin').DllBundlesPlugin; - -/** - * Webpack configuration - * - * See: http://webpack.github.io/docs/configuration.html#cli - */ -module.exports = function (options) { - return webpackMerge(commonConfig({env: ENV}), { - - /** - * Developer tool to enhance debugging - * - * See: http://webpack.github.io/docs/configuration.html#devtool - * See: https://github.com/webpack/docs/wiki/build-performance#sourcemaps - */ - devtool: 'cheap-module-source-map', - - /** - * Options affecting the output of the compilation. - * - * See: http://webpack.github.io/docs/configuration.html#output - */ - output: { - - /** - * The output directory as absolute path (required). - * - * See: http://webpack.github.io/docs/configuration.html#output-path - */ - path: helpers.root('dist'), - - /** - * Specifies the name of each output file on disk. - * IMPORTANT: You must not specify an absolute path here! - * - * See: http://webpack.github.io/docs/configuration.html#output-filename - */ - filename: '[name].bundle.js', - - /** - * The filename of the SourceMaps for the JavaScript files. - * They are inside the output.path directory. - * - * See: http://webpack.github.io/docs/configuration.html#output-sourcemapfilename - */ - sourceMapFilename: '[file].map', - - /** The filename of non-entry chunks as relative path - * inside the output.path directory. - * - * See: http://webpack.github.io/docs/configuration.html#output-chunkfilename - */ - chunkFilename: '[id].chunk.js', - - library: 'ac_[name]', - libraryTarget: 'var', - }, - - plugins: [ - - /** - * Plugin: DefinePlugin - * Description: Define free variables. - * Useful for having development builds with debug logging or adding global constants. - * - * Environment helpers - * - * See: https://webpack.github.io/docs/list-of-plugins.html#defineplugin - */ - // NOTE: when adding more properties, make sure you include them in custom-typings.d.ts - new DefinePlugin({ - 'ENV': JSON.stringify(METADATA.ENV), - 'HMR': METADATA.HMR, - 'process.env': { - 'ENV': JSON.stringify(METADATA.ENV), - 'NODE_ENV': JSON.stringify(METADATA.ENV), - 'HMR': METADATA.HMR, - } - }), - - new DllBundlesPlugin({ - bundles: { - polyfills: [ - 'core-js', - { - name: 'zone.js', - path: 'zone.js/dist/zone.js' - }, - { - name: 'zone.js', - path: 'zone.js/dist/long-stack-trace-zone.js' - }, - 'ts-helpers', - ], - vendor: [ - '@angular/platform-browser', - '@angular/platform-browser-dynamic', - '@angular/core', - '@angular/common', - '@angular/forms', - '@angular/http', - '@angular/router', - '@angularclass/hmr', - 'rxjs', - ] - }, - dllDir: helpers.root('dll'), - webpackConfig: webpackMergeDll(commonConfig({env: ENV}), { - devtool: 'cheap-module-source-map', - plugins: [] - }) - }), - - /** - * Plugin: AddAssetHtmlPlugin - * Description: Adds the given JS or CSS file to the files - * Webpack knows about, and put it into the list of assets - * html-webpack-plugin injects into the generated html. - * - * See: https://github.com/SimenB/add-asset-html-webpack-plugin - */ - new AddAssetHtmlPlugin([ - { filepath: helpers.root(`dll/${DllBundlesPlugin.resolveFile('polyfills')}`) }, - { filepath: helpers.root(`dll/${DllBundlesPlugin.resolveFile('vendor')}`) } - ]), - - /** - * Plugin: NamedModulesPlugin (experimental) - * Description: Uses file names as module name. - * - * See: https://github.com/webpack/webpack/commit/a04ffb928365b19feb75087c63f13cadfc08e1eb - */ - // new NamedModulesPlugin(), - - /** - * Plugin LoaderOptionsPlugin (experimental) - * - * See: https://gist.github.com/sokra/27b24881210b56bbaff7 - */ - new LoaderOptionsPlugin({ - debug: true, - options: { - context: helpers.root('src'), - output: { - path: helpers.root('dist') - }, - - /** - * Static analysis linter for TypeScript advanced options configuration - * Description: An extensible linter for the TypeScript language. - * - * See: https://github.com/wbuchwalter/tslint-loader - */ - tslint: { - emitErrors: false, - failOnHint: false, - resourcePath: 'src' - } - } - }) - ], - - /** - * Webpack Development Server configuration - * Description: The webpack-dev-server is a little node.js Express server. - * The server emits information about the compilation state to the client, - * which reacts to those events. - * - * See: https://webpack.github.io/docs/webpack-dev-server.html - */ - devServer: { - port: METADATA.port, - host: METADATA.host, - historyApiFallback: { - index: '/index.html' - }, - watchOptions: { - aggregateTimeout: 300, - poll: 1000 - } - }, - - /* - * Include polyfills or mocks for various node stuff - * Description: Node configuration - * - * See: https://webpack.github.io/docs/configuration.html#node - */ - node: { - global: true, - crypto: 'empty', - process: true, - module: false, - clearImmediate: false, - setImmediate: false - } - - }); -}; diff --git a/config/webpack.prod.js b/config/webpack.prod.js deleted file mode 100644 index 727744a0..00000000 --- a/config/webpack.prod.js +++ /dev/null @@ -1,279 +0,0 @@ -const helpers = require('./helpers'); -const webpackMerge = require('webpack-merge'); // used to merge webpack configs -const commonConfig = require('./webpack.common.js'); // the settings that are common to prod and dev - -/** - * Webpack Plugins - */ -const DefinePlugin = require('webpack/lib/DefinePlugin'); -const ExtractTextPlugin = require('extract-text-webpack-plugin'); -const IgnorePlugin = require('webpack/lib/IgnorePlugin'); -const LoaderOptionsPlugin = require('webpack/lib/LoaderOptionsPlugin'); -const NormalModuleReplacementPlugin = require('webpack/lib/NormalModuleReplacementPlugin'); -const ProvidePlugin = require('webpack/lib/ProvidePlugin'); -const UglifyJsPlugin = require('webpack/lib/optimize/UglifyJsPlugin'); -const OptimizeJsPlugin = require('optimize-js-plugin'); -/** - * Webpack Constants - */ -const ENV = process.env.NODE_ENV = process.env.ENV = 'production'; -const HOST = process.env.HOST || 'localhost'; -const PORT = process.env.PORT || 8080; -const METADATA = webpackMerge(commonConfig({env: ENV}).metadata, { - host: HOST, - port: PORT, - ENV: ENV, - HMR: false -}); - -module.exports = function (env) { - return webpackMerge(commonConfig({env: ENV}), { - - /** - * Developer tool to enhance debugging - * - * See: http://webpack.github.io/docs/configuration.html#devtool - * See: https://github.com/webpack/docs/wiki/build-performance#sourcemaps - */ - devtool: 'source-map', - - /** - * Options affecting the output of the compilation. - * - * See: http://webpack.github.io/docs/configuration.html#output - */ - output: { - - /** - * The output directory as absolute path (required). - * - * See: http://webpack.github.io/docs/configuration.html#output-path - */ - path: helpers.root('dist'), - - /** - * Specifies the name of each output file on disk. - * IMPORTANT: You must not specify an absolute path here! - * - * See: http://webpack.github.io/docs/configuration.html#output-filename - */ - filename: '[name].[chunkhash].bundle.js', - - /** - * The filename of the SourceMaps for the JavaScript files. - * They are inside the output.path directory. - * - * See: http://webpack.github.io/docs/configuration.html#output-sourcemapfilename - */ - sourceMapFilename: '[name].[chunkhash].bundle.map', - - /** - * The filename of non-entry chunks as relative path - * inside the output.path directory. - * - * See: http://webpack.github.io/docs/configuration.html#output-chunkfilename - */ - chunkFilename: '[id].[chunkhash].chunk.js' - - }, - - /** - * Add additional plugins to the compiler. - * - * See: http://webpack.github.io/docs/configuration.html#plugins - */ - plugins: [ - - /** - * Webpack plugin to optimize a JavaScript file for faster initial load - * by wrapping eagerly-invoked functions. - * - * See: https://github.com/vigneshshanmugam/optimize-js-plugin - */ - - new OptimizeJsPlugin({ - sourceMap: false - }), - - /** - * Plugin: DedupePlugin - * Description: Prevents the inclusion of duplicate code into your bundle - * and instead applies a copy of the function at runtime. - * - * See: https://webpack.github.io/docs/list-of-plugins.html#defineplugin - * See: https://github.com/webpack/docs/wiki/optimization#deduplication - */ - // new DedupePlugin(), // see: https://github.com/angular/angular-cli/issues/1587 - - /** - * Plugin: DefinePlugin - * Description: Define free variables. - * Useful for having development builds with debug logging or adding global constants. - * - * Environment helpers - * - * See: https://webpack.github.io/docs/list-of-plugins.html#defineplugin - */ - // NOTE: when adding more properties make sure you include them in custom-typings.d.ts - new DefinePlugin({ - 'ENV': JSON.stringify(METADATA.ENV), - 'HMR': METADATA.HMR, - 'process.env': { - 'ENV': JSON.stringify(METADATA.ENV), - 'NODE_ENV': JSON.stringify(METADATA.ENV), - 'HMR': METADATA.HMR, - } - }), - - /** - * Plugin: UglifyJsPlugin - * Description: Minimize all JavaScript output of chunks. - * Loaders are switched into minimizing mode. - * - * See: https://webpack.github.io/docs/list-of-plugins.html#uglifyjsplugin - */ - // NOTE: To debug prod builds uncomment //debug lines and comment //prod lines - new UglifyJsPlugin({ - // beautify: true, //debug - // mangle: false, //debug - // dead_code: false, //debug - // unused: false, //debug - // deadCode: false, //debug - // compress: { - // screw_ie8: true, - // keep_fnames: true, - // drop_debugger: false, - // dead_code: false, - // unused: false - // }, // debug - // comments: true, //debug - - - beautify: false, //prod - output: { - comments: false - }, - mangle: { - screw_ie8: true - }, //prod - compress: { - screw_ie8: true, - warnings: false, - conditionals: true, - unused: true, - comparisons: true, - sequences: true, - dead_code: true, - evaluate: true, - if_return: true, - join_vars: true, - negate_iife: false // we need this for lazy v8 - }, - comments: false //prod - }), - - /** - * Plugin: NormalModuleReplacementPlugin - * Description: Replace resources that matches resourceRegExp with newResource - * - * See: http://webpack.github.io/docs/list-of-plugins.html#normalmodulereplacementplugin - */ - - new NormalModuleReplacementPlugin( - /angular2-hmr/, - helpers.root('config/empty.js') - ), - - new NormalModuleReplacementPlugin( - /zone\.js(\\|\/)dist(\\|\/)long-stack-trace-zone/, - helpers.root('config/empty.js') - ), - - /** - * Plugin: IgnorePlugin - * Description: Don’t generate modules for requests matching the provided RegExp. - * - * See: http://webpack.github.io/docs/list-of-plugins.html#ignoreplugin - */ - - // new IgnorePlugin(/angular2-hmr/), - - /** - * Plugin: CompressionPlugin - * Description: Prepares compressed versions of assets to serve - * them with Content-Encoding - * - * See: https://github.com/webpack/compression-webpack-plugin - */ - // install compression-webpack-plugin - // new CompressionPlugin({ - // regExp: /\.css$|\.html$|\.js$|\.map$/, - // threshold: 2 * 1024 - // }) - - /** - * Plugin LoaderOptionsPlugin (experimental) - * - * See: https://gist.github.com/sokra/27b24881210b56bbaff7 - */ - new LoaderOptionsPlugin({ - minimize: true, - debug: false, - options: { - context: helpers.root('src'), - output: { - path: helpers.root('dist') - }, - - /** - * Static analysis linter for TypeScript advanced options configuration - * Description: An extensible linter for the TypeScript language. - * - * See: https://github.com/wbuchwalter/tslint-loader - */ - tslint: { - emitErrors: true, - failOnHint: true, - resourcePath: 'src' - }, - - - /** - * Html loader advanced options - * - * See: https://github.com/webpack/html-loader#advanced-options - */ - // TODO: Need to workaround Angular 2's html syntax => #id [bind] (event) *ngFor - htmlLoader: { - minimize: true, - removeAttributeQuotes: false, - caseSensitive: true, - customAttrSurround: [ - [/#/, /(?:)/], - [/\*/, /(?:)/], - [/\[?\(?/, /(?:)/] - ], - customAttrAssign: [/\)?\]?=/] - }, - - } - }), - ], - - /* - * Include polyfills or mocks for various node stuff - * Description: Node configuration - * - * See: https://webpack.github.io/docs/configuration.html#node - */ - node: { - global: true, - crypto: 'empty', - process: false, - module: false, - clearImmediate: false, - setImmediate: false - } - - }); -}; diff --git a/docs/config.json b/docs/config.json deleted file mode 100644 index 55daa13f..00000000 --- a/docs/config.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "baseUrl": "/ng2-admin/", - "locals": { - "url": "http://localhost:8080", - "name": "ng2-admin blog", - "owner": "Akveo", - "description": "" - }, - "plugins": [ - "wintersmith-sassy", - "./plugins/paginator.coffee" - ], - "sass": { - "debug": "undefined" - }, - "require": { - "moment": "moment", - "_": "underscore", - "typogr": "typogr" - }, - "jade": { - "pretty": true - }, - "markdown": { - "smartLists": true, - "smartypants": true - }, - "paginator": { - "perPage": 3, - "groupSort": { - "Quick Start": 1000, - "Customization": 900 - } - } -} diff --git a/docs/contents/articles/001-getting-started/index.md b/docs/contents/articles/001-getting-started/index.md deleted file mode 100644 index 5b6796ed..00000000 --- a/docs/contents/articles/001-getting-started/index.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Getting Started -author: vl -sort: 999 -group: Quick Start -template: article.jade ---- - -## What is ng2-admin? - -ng2-admin is a front-end Admin Dashboard template based on Angular 2, Bootstrap 4 and Webpack. That means all the -data you can see on graphs, charts and tables is mocked in Javascript so you can use the -backend of your choice with no limitations. - -## How can it help me? - -We believe that at the moment a lot of business applications have administration/management interfaces inside of them. Sometimes it's not that obvious, but a lot of web applications have dashboards with panels, charts analytics, etc. - -ng2-admin aims to bootstrap the development of your product and provide an -ecosystem for building production-ready application or prototypes. - -Frameworks like Bootstrap provide a number of components, but usually it's not enough to -build a real-world app. This template comes with lots of popular UI components with a unified color scheme, -plus it is based on a modern Angular 2 framework and has a flexible component based structure. - -You can also use ng2-admin for the purpose of learning Angular 2. - -## List of features - -* Angular 2 -* Webpack 2 -* Bootstrap 4 CSS Framework -* SASS -* [Smart Table](http://akveo.com/ng2-admin/#/pages/tables/smarttables) -* [Forms](http://akveo.com/ng2-admin/#/pages/forms/inputs) -* [Editors](http://akveo.com/ng2-admin/#/pages/editors/ckeditor) -* [Charts (amChart, Chartist, Chart.js, Morris)](http://akveo.com/ng2-admin/#/pages/charts/chartist-js) -* [Maps (Google, Leaflet, amMap)](http://akveo.com/ng2-admin/#/pages/maps/googlemaps) -* Responsive layout -* High resolution -* and many more! - -## I want to start developing with ng2-admin - -Welcome aboard! - -You can start with the [Installation Guidelines](/ng2-admin/articles/002-installation-guidelines/). -There we describe how you can download and run the template on your local machine. - -Good luck and have fun! \ No newline at end of file diff --git a/docs/contents/articles/002-installation-guidelines/index.md b/docs/contents/articles/002-installation-guidelines/index.md deleted file mode 100644 index 2b2c54b8..00000000 --- a/docs/contents/articles/002-installation-guidelines/index.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: Installation Guidelines -author: vl -sort: 500 -group: Quick Start -template: article.jade ---- - -## Prerequisites - -Although ng2-admin can be run without any development experience, it would be much easier if you already have some. -The following instructions allow you to run a local copy on your machine. - -## Install tools - -If you don't have any of these tools installed already, you will need to: -* Download and install [git](https://git-scm.com/) -* Download and install nodejs [https://nodejs.org](https://nodejs.org) - -**Note**: Make sure you have Node version >= 4.0 and NPM >= 3 -## Clone repository and install dependencies - -You will need to clone the source code of ng2-admin GitHub repository: - -```bash -git clone https://github.com/akveo/ng2-admin.git -``` -After the repository is cloned, go inside of the repository directory and install dependencies: - -```bash -cd ng2-admin -npm install -``` -This will setup a working copy of ng2-admin on your local machine. - -## Running local copy - -To run a local copy in development mode, execute: - -```bash -npm start -``` - -Go to http://0.0.0.0:3000 or http://localhost:3000 in your browser. - - -To run the local copy in production mode and build the sources, execute: - -```bash -npm run prebuild:prod && npm run build:prod && npm run server:prod -``` - -This will clear up your dist folder (where release files are located), generate a release build and start the -built-in server. -Now you can copy the sources from the `dist` folder and use it with any backend framework or -simply put it under a web server. - -For addition information about creating a build, please check out [Angular2 Webpack Starter documentation](https://github.com/AngularClass/angular2-webpack-starter) diff --git a/docs/contents/articles/011-changing-color-scheme/index.md b/docs/contents/articles/011-changing-color-scheme/index.md deleted file mode 100644 index 1931bd87..00000000 --- a/docs/contents/articles/011-changing-color-scheme/index.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -title: Changing Color Scheme -author: vl -sort: 900 -group: Customization -template: article.jade ---- - -We tried to make the process of color scheme customization as easy as possible. - -By default ng2-admin has three built-in color profiles: ng2 (default blue sheme), mint and blur. -This article will help you to create your own color profile. -Let's say you want to make ng2-admin dark theme. - -First we advise you to take some existing colorscheme file as a starting point. -For light themes we suggest taking `src/app/theme/sass/conf/colorScheme/_mint.scss` and for -dark `src/app/theme/sass/conf/colorScheme/_blue.scss`. -As we want a dark theme, we're taking `blue`. - -1) Copy `src/app/theme/sass/conf/colorScheme/_blue.scss` to `src/app/theme/sass/conf/colorScheme/_dark.scss`: -

- -2) Include your colorscheme file in `src/app/theme/sass/conf/conf.scss`. - -To do this, replace -```scss -@import 'colorSchemes/ng2'; -``` - -with - -```scss -@import 'colorSchemes/dark'; -``` -

- -3) Change the color scheme enabled: - -Open `src/app/theme/theme.config.ts`. -Uncomment the following line - -```javascript - //this._baConfig.changeTheme({name: 'my-theme'}); -``` - -and put your theme name, in our case it is `dark` - -```javascript - this._baConfig.changeTheme({name: 'dark'}); -``` -Beside notifying the system which scheme is currently enabled, this also puts a css class to a main element -of the page. Thus you can freely create theme-specific css selectors in your code without breakking other themes' styles. - -For example like this: -```scss -. dark .card-body { - background-color: white; -} -``` -

- -4) Change the colors: - -Now you can start changing the colors. -For example, after playing a bit with different colors, we changed the 2 first main variables in `_dark.scss` file: -```sass -$body-bg: #636363; -$bootstrap-panel-bg: rgba(#000000, 0.2); - -``` - -After this is done, you need to setup javascript to use the **same colors**. These colors -are used for javascript charts and other components (maps, etc); -Let's completely change the JS colors to a new set. -To do this, add the following code to the configuration block inside `src/app/theme/theme.config.ts`: -```javascript - let colorScheme = { - primary: '#209e91', - info: '#2dacd1', - success: '#90b900', - warning: '#dfb81c', - danger: '#e85656', - }; - this._baConfig.changeColors({ - default: '#4e4e55', - defaultText: '#e2e2e2', - border: '#dddddd', - borderDark: '#aaaaaa', - - primary: colorScheme.primary, - info: colorScheme.info, - success: colorScheme.success, - warning: colorScheme.warning, - danger: colorScheme.danger, - - primaryLight: colorHelper.tint(colorScheme.primary, 30), - infoLight: colorHelper.tint(colorScheme.info, 30), - successLight: colorHelper.tint(colorScheme.success, 30), - warningLight: colorHelper.tint(colorScheme.warning, 30), - dangerLight: colorHelper.tint(colorScheme.danger, 30), - - primaryDark: colorHelper.shade(colorScheme.primary, 15), - infoDark: colorHelper.shade(colorScheme.info, 15), - successDark: colorHelper.shade(colorScheme.success, 15), - warningDark: colorHelper.shade(colorScheme.warning, 15), - dangerDark: colorHelper.shade(colorScheme.danger, 15), - - dashboard: { - blueStone: '#005562', - surfieGreen: '#0e8174', - silverTree: '#6eba8c', - gossip: '#b9f2a1', - white: '#10c4b5', - }, - }); -``` -Here we defined a list of main colors `colorScheme` and then made light and dark versions of those using `colorHelper` methods. -We also defined a couple of custom colors for dashboard charts. - - -That's basically it! Right now your admin application should look like this: - -![](new-color-scheme.png) - -For further reference, please look in -- Colorscheme scss file (`src/app/theme/sass/conf/colorScheme/_ng2.scss`, `src/app/theme/sass/conf/colorScheme/_mint.scss` and `src/app/theme/sass/conf/colorScheme/_blur.scss`) -- `src/app/theme/theme.configProvider.js` to understand which javascript colors can be changed -- If you want to know how to change the theme to blur, read the [following article](/ng2-admin/articles/014-switch-to-blur-theme/) diff --git a/docs/contents/articles/011-changing-color-scheme/new-color-scheme.png b/docs/contents/articles/011-changing-color-scheme/new-color-scheme.png deleted file mode 100644 index 5133645d..00000000 Binary files a/docs/contents/articles/011-changing-color-scheme/new-color-scheme.png and /dev/null differ diff --git a/docs/contents/articles/012-project-structure/index.md b/docs/contents/articles/012-project-structure/index.md deleted file mode 100644 index 7ccd85ad..00000000 --- a/docs/contents/articles/012-project-structure/index.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -title: Project Structure -author: vl -sort: 800 -group: Customization -template: article.jade ---- - -The project structure is originally based on [Angular2 Webpack Starter](https://github.com/AngularClass/angular2-webpack-starter#file-structure). We made some changes we thought would be better in our particular case. - -The directory structure of this template is as follows: - -``` -ng2-admin/ - ├──config/ * webpack build configuration - │ ├──head-config.common.js * configuration for head elements in index.html - │ │ - │ ├──helpers.js * helper functions for our configuration files - │ │ - │ ├──webpack.dev.js * development webpack config - │ │ - │ ├──webpack.prod.js * production webpack config - │ │ - │ ├──webpack.test.js * testing webpack config - │ │ - │ ├──electron/ * electron webpack config - │ │ - │ └──html-elements-plugin/ * html elements plugin - │ - ├──src/ * source files that will be compiled to javascript - │ ├──custom-typings.d.ts * custom typings for third-party modules - │ │ - │ ├──desktop.ts * electron window initialization - │ │ - │ ├──index.html * application layout - │ │ - │ ├──main.browser.ts * entry file for our browser environment - │ │ - │ ├──package.json * electrons package.json - │ │ - │ ├──polyfills.browser.ts * polyfills file - │ │ - │ ├──vendor.browser.ts * vendors file - │ │ - │ ├──app/ * application code - our working directory - │ │ │ - │ │ ├──app.component.ts * main application component - │ │ │ - │ │ │ - │ │ ├──app.menu.ts * menu pages routes - │ │ │ - │ │ ├──app.module.ts * main application module - │ │ │ - │ │ ├──app.routes.ts * application routes - │ │ │ - │ │ ├──global.state.ts * global application state for data exchange between components - │ │ │ - │ │ ├──environment.ts * environment provider - │ │ │ - │ │ ├──app.scss * application styles - │ │ │ - │ │ ├──pages/ * application pages components, place where you can create pages and fill them with components - │ │ │ - │ │ └──theme/ * template global components/directives/pipes and styles - │ │ - │ └──assets/ * static assets are served here - │ - │ - ├──tslint.json * typescript lint config - ├──typedoc.json * typescript documentation generator - ├──tsconfig.json * config that webpack uses for typescript - └──package.json * what npm uses to manage it's dependencies -``` -In our template we tried to separate the theme layer and presentation layer. We believe most of other templates -have them combined. That's why when you start developing using them, it gets very hard for you to remove things you -don't need. diff --git a/docs/contents/articles/013-create-new-page/index.md b/docs/contents/articles/013-create-new-page/index.md deleted file mode 100644 index 0644d545..00000000 --- a/docs/contents/articles/013-create-new-page/index.md +++ /dev/null @@ -1,137 +0,0 @@ ---- -title: Create New Page -author: vl -sort: 300 -group: Customization -template: article.jade ---- - -ng2-admin uses [Angular 2 Component Router](https://angular.io/docs/ts/latest/guide/router.html) for navigation. - -We strongly recommend to follow this page structure in your application. -If it does not fit your needs please create a GitHub issue and tell us why. We would be glad to discuss. - - -Basically any page is just a common Angular 2 Component with a route defined for it. - -## Let's create a blank page in 6 easy steps - -1) Create a new directory for our new page inside of `src/app/pages`. We can call the directory `new`. -

- -2) Then let's create a blank angular 2 component for our page called 'new.component.ts' inside of `src/app/pages/new`: - -```javascript -import {Component} from '@angular/core'; - -@Component({ - selector: 'new', - template: `My page content here` -}) -export class NewComponent { - constructor() {} -} -``` -This will create a simple Angular 2 component. For more detail please check out [official Angular 2 documentation](https://angular.io/docs/ts/latest/guide/displaying-data.html). -

- -3) After that we should create our component routing called `new.routing.ts` in the `new` directory. - -```javascript -import { Routes, RouterModule } from '@angular/router'; -import { NewComponent } from './new.component'; - -const routes: Routes = [ - { - path: '', - component: NewComponent - } -]; - -export const routing = RouterModule.forChild(routes); -``` -
- -4) And now we should create `new.module.ts` in `src/app/pages/new` directory and import `new.component.ts` and `new.routing.ts` in it. - -```javascript -import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { NewComponent } from './new.component'; -import { routing } from './new.routing'; - -@NgModule({ - imports: [ - CommonModule, - routing - ], - declarations: [ - NewComponent - ] -}) -export class NewModule {} -``` -
- -5) The penultimate thing we need to do is to declare a route in `src/app/pages/pages.menu.ts`. -Typically all pages are children of the `/pages` route and defined under the `children` property of the root `pages` route like this: - -```javascript -export const PAGES_MENU = [ - { - path: 'pages', - children: [ - { - path: 'new', // path for our page - data: { // custom menu declaration - menu: { - title: 'New Page', // menu title - icon: 'ion-android-home', // menu icon - pathMatch: 'prefix', // use it if item children not displayed in menu - selected: false, - expanded: false, - order: 0 - } - } - }, - { - path: 'dashboard', - data: { - menu: { - title: 'Dashboard', - icon: 'ion-android-home', - selected: false, - expanded: false, - order: 0 - } - } - } - } - } -] -``` -If you’d like to highlight menu item when current URL path partially match the menu item -path - use pathMatch: ‘prefix’. In this case if the menu item has no children in the menu and -you navigated to some child route - the item will be highlighted. -

- -6) And in the end let's import our component in `src/app/pages/pages.routing.ts` like this: - -```javascript -const routes: Routes = [ - { - path: 'pages', - component: Pages, - children: [ - { path: '', redirectTo: 'dashboard', pathMatch: 'full' }, - { path: 'dashboard', loadChildren: 'app/pages/dashboard/dashboard.module#DashboardModule' }, - { path: 'new', loadChildren: 'app/pages/new/new.module#NewModule' } - ] - } -]; -``` -
- -And that's it! Now your page is available by the following this url [http://localhost:3000/#/pages/new](http://localhost:3000/#/pages/new). -Plus, your page is registered inside the sidebar menu. If you don't want to have a link -in the menu - just remove the `menu` declaration from the `pages.menu.ts` file. diff --git a/docs/contents/articles/014-switch-to-blur-theme/index.md b/docs/contents/articles/014-switch-to-blur-theme/index.md deleted file mode 100644 index 119c8ef9..00000000 --- a/docs/contents/articles/014-switch-to-blur-theme/index.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: Enabling blur theme -author: kd -sort: 850 -group: Customization -template: article.jade ---- - -If you want to switch theme to the blur, you need to follow 3 simple steps: - -1) Blur color scheme needs some javascript to calculate initial background offsets for panels. -That's why we need to tell the system that we want to use blur theme by specifying this in `src/app/theme/theme.config.ts`: -```javascript - this._baConfig.changeTheme({name: 'blur'}); -``` -

- -2) Also you need to change some colors. -For our blur theme we use the following configuration in `src/app/theme/theme.config.ts`: -```javascript - let colorScheme = { - primary: '#209e91', - info: '#2dacd1', - success: '#90b900', - warning: '#dfb81c', - danger: '#e85656', - }; - this._baConfig.changeColors({ - default: '#4e4e55', - defaultText: '#e2e2e2', - border: '#dddddd', - borderDark: '#aaaaaa', - - primary: colorScheme.primary, - info: colorScheme.info, - success: colorScheme.success, - warning: colorScheme.warning, - danger: colorScheme.danger, - - primaryLight: colorHelper.tint(colorScheme.primary, 30), - infoLight: colorHelper.tint(colorScheme.info, 30), - successLight: colorHelper.tint(colorScheme.success, 30), - warningLight: colorHelper.tint(colorScheme.warning, 30), - dangerLight: colorHelper.tint(colorScheme.danger, 30), - - primaryDark: colorHelper.shade(colorScheme.primary, 15), - infoDark: colorHelper.shade(colorScheme.info, 15), - successDark: colorHelper.shade(colorScheme.success, 15), - warningDark: colorHelper.shade(colorScheme.warning, 15), - dangerDark: colorHelper.shade(colorScheme.danger, 15), - - dashboard: { - blueStone: '#005562', - surfieGreen: '#0e8174', - silverTree: '#6eba8c', - gossip: '#b9f2a1', - white: '#10c4b5', - }, - }); -``` -

- -3) CSS should also be recompiled. -Before running build command, switch to *blur* color profile. -To do so replace theme in `src/app/theme/sass/conf/conf.scss`: - -```scss -@import 'colorSchemes/ng2'; -``` - -to - -```scss -@import 'colorSchemes/blur'; -``` - -Additionaly, if you would like to use some different background, replace the following images: - -- `src/assets/img/blur-bg.jpg` (main background image) -- `src/assets/img/blur-bg-blurred.jpg` (blurred background image used on panels) - -We suggest using 10px Gaussian blur to blur an original image. - -

-That's it! You have successfully blurred your theme! Run `npm start` and check it out. diff --git a/docs/contents/articles/015-sidebar/index.md b/docs/contents/articles/015-sidebar/index.md deleted file mode 100644 index fcfaffd0..00000000 --- a/docs/contents/articles/015-sidebar/index.md +++ /dev/null @@ -1,97 +0,0 @@ ---- -title: Sidebar -author: vl -sort: 900 -group: Components -template: article.jade ---- - -The sidebar provides a convenient way to navigate the application. -Only one sidebar is supported per angular application. -This means that the sidebar is basically a singleton object. - -The Sidebar can be added to the page using the `BaSidebar` component: -```html - -``` - -The sidebar contains a `` component which defines and renders the application menu based on routes provided. Generally the `ba-menu` component can be used separately from `ba-sidebar`. -All menu items information is defined inside the `data` property of a route. - -## Menu Configuration - -All menu items are located inside the `src/app/app.routes.ts` file. Each route item can have a `menu` property under `data` defining a menu item: - -```javascript - { - // first, router configuration - path: 'dashboard', - component: Dashboard, - data: { - // here additionaly we define how the menu item should look - menu: { - title: 'Dashboard', // menu title - icon: 'ion-android-home', // menu icon - selected: false, // selected or not - expanded: false, // expanded or not (if item has children) - order: 0, // item order in the menu list, - hidden: true // hide menu item from a list but keep related features (breadcrumbs, page title) - } - } - } -``` - -You also can define a list of sub-menu items like this: -```javascript - { - // parent route - path: 'charts', - component: Charts, - data: { - - // parent menu configuration - menu: { - title: 'Charts', - icon: 'ion-stats-bars', - selected: false, - expanded: false, - order: 200, - } - }, - - // children routes - children: [ - { - path: 'chartist-js', - component: ChartistJs, - data: { - - // children menu item configuration - menu: { - title: 'Chartist.Js', - } - } - } - ] - } -``` -# Custom menu items - -You also can define a menu item not connected to any existing route in the application: - -```javascript - { - path: '', // just leave the path empty - data: { - - // and define your menu item - menu: { - title: 'External Link', // title - url: 'http://akveo.com', // custom url - icon: 'ion-android-exit', // icon - order: 800, // order - target: '_blank' // target property of tag (_self, _blank, etc) - } - } - } -``` diff --git a/docs/contents/articles/016-spinner/index.md b/docs/contents/articles/016-spinner/index.md deleted file mode 100644 index 91b5327c..00000000 --- a/docs/contents/articles/016-spinner/index.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: Theme Spinner -author: vl -sort: 950 -group: Components -template: article.jade ---- - -Theme Spinner `BaThemeSpinner` is a small service helper allowing you to show a preloader spinner while -executing some long-running tasks. -This is the same spinner you can see after reloading a page - it is shown while the application is initializing Angular 2 and loading charts and images. - -The user interface in quite simple: there are two public methods: `show` and `hide`. - -Theme Spinner comes with another small helper called `BaThemePreloader`. -This service is globally integrated into the application and connected to the spinner. - -You can register any promise in any part of the application so that the spinner will be -hidden only after your promise is completed (resolved). - -You can find an example of usage inside of the `app.component.ts` file. -Here we are registering a loader (`this._imageLoader.load` just returns a `Promise`) which loads a background image: -```javascript - BaThemePreloader.registerLoader(this._imageLoader.load(layoutPaths.images.root + 'blur-bg-mobile.jpg')); -``` - -Then we are starting all the registered promises and once they all are done - hiding the spinner. -```javascript - BaThemePreloader.load().then((values) => { - this._spinner.hide(); - }); -``` - -## Example -You also can register a loader on any page you want. -Say you have a long-running task on the Charts page (you need to receive some data from a web service) and you want the spinner to be shown while the data is loading. - -First thing you need to do is to import BaThemePreloader service: - -```javascript - import {BaThemePreloader} from '../../../../theme/services'; -``` - -Then, say you have a method loading some data called `_loadData`, in our case we just mocked this method with `setTimeout` to emulate the loading process: -```javascript - private _loadData():Promise { - return new Promise((resolve, reject) => { - setTimeout(() => { - resolve(); - }, 4000); - }); - } -``` - -Last thing you need to do is to register your loader: - -```javascript - BaThemePreloader.registerLoader(this._loadData()); -``` - -That's basically it! Once your data is loaded and all other registered loaders are completed - the spinner will be hidden. \ No newline at end of file diff --git a/docs/contents/css/main.scss b/docs/contents/css/main.scss deleted file mode 100644 index e47c124e..00000000 --- a/docs/contents/css/main.scss +++ /dev/null @@ -1,920 +0,0 @@ -@mixin header { - margin: 10px 0; - font-family: inherit; - font-weight: bold; - color: inherit; - text-rendering: optimizelegibility; -} - -html { - font-family: 'Source Sans Pro', sans-serif; - color: #484848; - line-height: 1.28 -} - -body { - position: relative; - min-width: 1060px; -} -p { - margin: 0 0 10px -} - -em { - font-style: italic -} - -h1 { - @include header; - - line-height: 40px; - font-size: 39px -} - -h2 { - @include header; - - line-height: 40px; - margin-top: 30px; - font-size: 31px; -} - -h3 { - @include header; - - line-height: 40px; - font-size: 23px; -} - -h4 { - @include header; - - line-height: 20px; - font-size: 16px; -} - -h5 { - @include header; - - line-height: 40px; - text-transform: uppercase; - font-size: 14px; -} - -h6 { - @include header; - - line-height: 20px; - font-size: 11px; -} - - -h1 small { - font-size: 24px; -} - -h2 small { - font-size: 18px; -} - -h3 small { - font-size: 16px; -} - -h4 small { - font-size: 14px; -} - -ul, ol { - margin: 0 0 10px 25px; - padding: 0 -} - -ul ul, ul ol, ol ol, ol ul { - margin-bottom: 0 -} - -li { - line-height: 20px -} - -a { - color: #285eb8; - text-decoration: none -} - -a:hover, a:focus { - color: #234fb8; - text-decoration: underline -} - -a:focus { - outline: thin dotted #333; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px -} - -.center { - text-align: center -} - -body, pre { - border: none; - margin: 0; - padding: 0 -} - -html { - background: #f9f9f9 -} - -.browser-mockup { - border-top: 2em solid #F3F3F3; - position: relative; - border-radius: 3px 3px 0 0 -} - -.browser-mockup:before { - display: block; - position: absolute; - content: ''; - top: -1.25em; - left: 1em; - width: 0.5em; - height: 0.5em; - border-radius: 50%; - background-color: #f44; - box-shadow: 0 0 0 2px #f44, 1.5em 0 0 2px #9b3, 3em 0 0 2px #fb5; -} - -.browser-mockup a { - display: block; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - border: 1px solid #ddd; - width: 100%; -} - -.left { - float: left -} - -.right { - float: right -} - -.container { - padding-top: 50px; - min-width: 1060px -} - -.wrap { - width: 1060px; - box-sizing: border-box; - margin-left: auto; - margin-right: auto; - padding-left: 20px; - padding-right: 20px; -} - -.skinnyWrap { - width: 690px; - box-sizing: border-box; - margin-left: auto; - margin-right: auto; - padding-left: 20px; - padding-right: 20px; -} - -hr { - height: 0; - border-top: 1px solid #ccc; - border-bottom: 1px solid #eee -} - -ul, li { - margin-left: 20px -} - -li + li { - margin-top: 10px -} - -h1 .anchor, h2 .anchor, h3 .anchor, h4 .anchor, h5 .anchor, h6 .anchor { - margin-top: -50px; - position: absolute -} - -h1:hover .hash-link, h2:hover .hash-link, h3:hover .hash-link, h4:hover .hash-link, h5:hover .hash-link, h6:hover .hash-link { - display: inline -} - -.hash-link { - color: #aaa; - display: none -} - -.nav-main { - background: #222; - color: #fafafa; - position: fixed; - top: 0; - height: 50px; - box-shadow: 0 0 5px rgba(0, 0, 0, 0.5); - width: 100%; - z-index: 100 -} - -.nav-main:after { - content: ""; - display: table; - clear: both -} - -.nav-main a { - color: #e9e9e9; - text-decoration: none -} - -.nav-main .nav-site-internal { - margin: 0 0 0 20px -} - -.nav-main .nav-site-external { - float: right; - margin: 0 -} - -.nav-main .nav-site li { - margin: 0 -} - -.nav-main .nav-site li > a { - box-sizing: content-box; - padding: 0 10px; - line-height: 50px; - display: inline-block; - height: 50px; - color: #ddd -} - -.nav-main .nav-site li > a:hover { - color: #fff -} - -.nav-main .nav-site li > a.active { - color: #fafafa; - border-bottom: 3px solid #00abff; - background: #333 -} - -.nav-main .nav-home { - color: #ffffff; - font-size: 24px; - line-height: 50px; - height: 50px; - display: inline-block -} - -.nav-main .nav-home .blur-label { - color: #00abff; -} - -.nav-main .nav-logo { - vertical-align: middle; - display: inline-block; - margin-bottom: 9px; -} - -.nav-main ul { - display: inline-block; - vertical-align: top -} - -.nav-main li { - display: inline -} - -.hero { - padding-bottom: 75px; -} - -.hero .hero-content { - color: #e9e9e9; - font-weight: 300; - background: #313131; - padding-top: 50px; -} - -.hero .text { - font-size: 64px; - text-align: center -} - -.hero .minitext { - font-size: 16px; - text-align: center; - text-transform: uppercase -} - -.hero strong { - color: #00abff; - font-weight: 400 -} - -.white-text { - color: rgb(249, 249, 249); -} - -.hero .admin-screenshots { - margin-top: 40px; - display: flex; - flex-direction: row; -} - -.hero .admin-screenshot { - width: 100%; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - padding: 0 15px; - text-align: center; -} - -.admin-screenshot img { - width: 100%; -} - -.demo-link { - display: block; - position: relative; - line-height: 0; -} - -.demo-link:before { - content: ''; - position: absolute; - width: 100%; - bottom: 0; - left: 0; - height: 52px; - background-image: linear-gradient(to bottom, transparent, rgb(249, 259, 249)); -} - -.demo-link .demo-link-label { - display: flex; - align-items: center; - justify-content: center; - content: 'Demo'; - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - background: black; - background: rgba(0, 0, 0, 0.5); - color: rgb(249, 249, 249); - font-size: 32px; - opacity: 0; - transition: opacity 0.3s ease-out; -} - -.demo-link:hover .demo-link-label { - opacity: 1; -} - -.buttons-unit { - margin-top: 60px; - text-align: center -} - -.buttons-unit a { - color: #61dafb -} - -.buttons-unit .button { - font-size: 24px; - background: #00abff; - color: #fafafa; -} - -.buttons-unit .button:active, .buttons-unit .button:focus { - background: #00abff; - text-decoration: none; -} - -.index-block { - padding: 40px 0; - - &:nth-child(even) { - background: #f2f2f2; - } -} - -.centered { - text-align: center; -} - -.why-items { - display: flex; - flex-direction: row; - align-items: baseline; - margin-top: 15px; - padding-top: 15px; -} - -.why-item { - flex: 33%; - text-align: center; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - padding: 0 15px; -} - -.why-item img { - width: 110px; -} - -.nav-docs { - color: #2d2d2d; - font-size: 14px; - float: left; - width: 210px -} - -.nav-docs ul { - list-style: none; - margin: 0 -} - -.nav-docs ul ul { - margin: 6px 0 0 20px -} - -.nav-docs li { - line-height: 16px; - margin: 0 0 6px -} - -.nav-docs a { - color: #666; - display: block -} - -.nav-docs a:hover { - text-decoration: none; - color: #285eb8 -} - -.nav-docs a.active { - color: #285eb8 -} - -.nav-docs a.external:after { - content: ""; - display: inline-block; - width: 10px; - height: 10px; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - padding-left: 5px; - background: url("../img/external.png") 100% 0 no-repeat; - font-size: 10px; - line-height: 1em; - opacity: 0.5 -} - -@media only screen and (-webkit-min-device-pixel-ratio: 1.3), only screen and (min--moz-device-pixel-ratio: 1.3), only screen and (-o-min-device-pixel-ratio: 1.3 / 1), only screen and (min-resolution: 125dpi), only screen and (min-resolution: 1.3dppx) { - .nav-docs a.external:after { - background-image: url("../img/external_2x.png"); - background-size: 10px 10px - } -} - -.nav-docs .nav-docs-section { - border-bottom: 1px solid #ccc; - border-top: 1px solid #eee; - padding: 12px 0 -} - -.nav-docs .nav-docs-section:first-child { - padding-top: 0; - border-top: 0 -} - -.nav-docs .nav-docs-section:last-child { - padding-bottom: 0; - border-bottom: 0 -} - -.nav-blog li { - margin-bottom: 5px -} - -.nav-docs-right { - display: block; - float: right; - line-height: 50px; -} - -.nav-docs-right a { - color: #00abff; - text-decoration: none; -} - -.nav-docs-right a:hover { - text-decoration: underline; -} - -.home-section { - margin: 50px 0 -} - -.home-divider { - border-top-color: #bbb; - margin: 0 auto; - width: 400px -} - -.skinny-row:after { - content: ""; - display: table; - clear: both -} - -.skinny-col { - float: left; - margin-left: 40px; - width: 305px -} - -.skinny-col:first-child { - margin-left: 0 -} - -.marketing-row { - margin: 50px 0 -} - -.marketing-row:after { - content: ""; - display: table; - clear: both -} - -.marketing-col { - float: left; - margin-left: 40px; - width: 280px; -} - -.marketing-col p { - font-size: 16px -} - -.marketing-col:first-child { - margin-left: 0 -} - -.home-bottom-section { - margin-bottom: 100px -} - -.docs-nextprev:after { - content: ""; - display: table; - clear: both -} - -.jsxCompiler { - margin: 0 auto; - padding-top: 20px; - width: 1220px -} - -.jsxCompiler .compiler-option { - display: block; - margin-top: 5px -} - -.jsxCompiler .playgroundPreview { - padding: 0; - width: 600px; - word-wrap: break-word -} - -.jsxCompiler .playgroundPreview pre { - font-family: 'source-code-pro', Menlo, Consolas, 'Courier New', monospace; - font-size: 13px; - line-height: 1.5 -} - -.jsxCompiler .playgroundError { - padding: 15px 20px -} - -.docs-prev { - float: left -} - -.docs-next { - float: right -} - -footer { - font-size: 13px; - font-weight: 600; - margin-top: 66px; - margin-bottom: 18px; - overflow: auto -} - -.blogContent { - padding-top: 20px -} - -.blogContent:after { - content: ""; - display: table; - clear: both -} - -.blogContent blockquote { - padding: 5px 15px; - margin: 20px 0; - background-color: #f8f5ec; - border-left: 5px solid #f7ebc6 -} - -.blogContent code { - font-size: inherit; - line-height: inherit; - color: #555; - background-color: black; - background-color: rgba(0, 0, 0, 0.04) -} - -.documentationContent { - padding-top: 20px -} - -.documentationContent:after { - content: ""; - display: table; - clear: both -} - -.documentationContent blockquote { - padding: 15px 30px 15px 15px; - margin: 20px 0; - background-color: black; - background-color: rgba(204, 122, 111, 0.1); - border-left: 5px solid black; - border-left: 5px solid rgba(191, 87, 73, 0.2); -} - -.documentationContent blockquote p { - margin-bottom: 0 -} - -.documentationContent blockquote p:first-child { - font-weight: bold; - font-size: 17.5px; - line-height: 20px; - margin-top: 0; - text-rendering: optimizelegibility -} - -.docs-prevnext { - padding-top: 40px; - padding-bottom: 40px -} - -.button { - background: -webkit-linear-gradient(#9a9a9a, #646464); - background: -moz-linear-gradient(#9a9a9a, #646464); - background: -ms-linear-gradient(#9a9a9a, #646464); - background: -o-linear-gradient(#9a9a9a, #646464); - background: -webkit-gradient(#9a9a9a, #646464); - background: linear-gradient(#9a9a9a, #646464); - border-radius: 4px; - padding: 8px 16px; - font-size: 18px; - font-weight: 400; - margin: 0 12px; - display: inline-block; - color: #fafafa; - text-decoration: none; - text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); -} - -.button:hover { - text-decoration: none -} - -.button:active { - box-shadow: none -} - -.hero .button { - box-shadow: 1px 3px 3px rgba(0, 0, 0, 0.3) -} - -.row { - padding-bottom: 4px -} - -.row .span4 { - width: 33.33%; - display: table-cell -} - -.row .span8 { - width: 66.66%; - display: table-cell -} - -.row .span6 { - width: 50%; - display: table-cell -} - -p { - margin: 10px 0 -} - -.highlight { - padding: 10px; - margin-bottom: 20px -} - -figure { - text-align: center -} - -.inner-content { - float: right; - width: 650px -} - -.nosidebar .inner-content { - float: none; - margin: 0 auto -} - -.inner-content img { - max-width: 100%; -} - -.inner-content table { - border-collapse: collapse; - width: 100%; -} - -.inner-content th, .inner-content td { - padding: 0.25rem; - text-align: left; - border: 1px solid #ccc; -} - -.inner-content tbody tr:nth-child(odd) { - background: #eee; -} - -h1:after { - content: ""; - display: table; - clear: both -} - -.edit-page-link { - float: right; - font-size: 16px; - font-weight: normal; - line-height: 20px; - margin-top: 17px -} - -.post-list-item + .post-list-item { - margin-top: 60px -} - -/* code styling */ - -code { - font-family: 'Anonymous Pro', sans-serif; - font-size: 0.85em; - color: #000; -} - -pre code { - display: block; - line-height: 1.1; - color: #333333; - background: #f8f5ec; - padding: 30px 14px 14px; - position: relative; - overflow-x: auto; -} - -pre code:before { - position: absolute; - top: 0; - right: 0; - left: 0; - padding: 3px 7px; - font-size: 12px; - font-weight: bold; - color: #c2c0bc; - background-color: #f1ede4; - content: "Code"; -} - -p code { - padding: 0.1em 0.3em 0.2em; - border-radius: 0.3em; - position: relative; - background: #fffff3; - - white-space: nowrap; -} - -/* syntax hl stuff */ - -code.lang-markdown { - color: #424242; -} - -code.lang-markdown .header, -code.lang-markdown .strong { - font-weight: bold; -} - -code.lang-markdown .emphasis { - font-style: italic; -} - -code.lang-markdown .horizontal_rule, -code.lang-markdown .link_label, -code.lang-markdown .code, -code.lang-markdown .header, -code.lang-markdown .link_url { - color: #555; -} - -code.lang-markdown .blockquote, -code.lang-markdown .bullet { - color: #bbb; -} - -/* Tomorrow Theme */ -/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ -/* Original theme - https://github.com/chriskempson/tomorrow-theme */ -/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ -.tomorrow-comment, pre .comment, pre .title { - color: #8e908c; -} - -.tomorrow-red, pre .variable, pre .attribute, pre .tag, pre .regexp, pre .ruby .constant, pre .xml .tag .title, pre .xml .pi, pre .xml .doctype, pre .html .doctype, pre .css .id, pre .css .class, pre .css .pseudo { - color: #c82829; -} - -.tomorrow-orange, pre .number, pre .preprocessor, pre .built_in, pre .literal, pre .params, pre .constant { - color: #f5871f; -} - -.tomorrow-yellow, pre .class, pre .ruby .class .title, pre .css .rules .attribute { - color: #eab700; -} - -.tomorrow-green, pre .string, pre .value, pre .inheritance, pre .header, pre .ruby .symbol, pre .xml .cdata { - color: #718c00; -} - -.tomorrow-aqua, pre .css .hexcolor { - color: #3e999f; -} - -.tomorrow-blue, pre .function, pre .python .decorator, pre .python .title, pre .ruby .function .title, pre .ruby .title .keyword, pre .perl .sub, pre .javascript .title, pre .coffeescript .title { - color: #4271ae; -} - -.tomorrow-purple, pre .keyword, pre .javascript .function { - color: #8959a8; -} - -/* media queries */ - -@media screen and (max-width: 960px) { - .nav-main { - position: static - } - - .container { - padding-top: 0 - } -} diff --git a/docs/contents/images/favicon.png b/docs/contents/images/favicon.png deleted file mode 100644 index 42861238..00000000 Binary files a/docs/contents/images/favicon.png and /dev/null differ diff --git a/docs/contents/images/logo.png b/docs/contents/images/logo.png deleted file mode 100644 index 07a59adf..00000000 Binary files a/docs/contents/images/logo.png and /dev/null differ diff --git a/docs/contents/images/sky-preview.png b/docs/contents/images/sky-preview.png deleted file mode 100644 index 6b34db69..00000000 Binary files a/docs/contents/images/sky-preview.png and /dev/null differ diff --git a/docs/contents/images/why-design.svg b/docs/contents/images/why-design.svg deleted file mode 100644 index 0c3c68b4..00000000 --- a/docs/contents/images/why-design.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/docs/contents/images/why-practices.svg b/docs/contents/images/why-practices.svg deleted file mode 100644 index 2e48d9f4..00000000 --- a/docs/contents/images/why-practices.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/docs/contents/images/why-structure.svg b/docs/contents/images/why-structure.svg deleted file mode 100644 index cd2ee7fe..00000000 --- a/docs/contents/images/why-structure.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/docs/contents/index.json b/docs/contents/index.json deleted file mode 100644 index 7991fa95..00000000 --- a/docs/contents/index.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "template": "index.jade", - "activeHome": true -} diff --git a/docs/package.json b/docs/package.json deleted file mode 100644 index 292fc2f6..00000000 --- a/docs/package.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "dependencies": { - "moment": "2.3.x", - "typogr": "0.5.x", - "underscore": "1.4.x", - "wintersmith": "2.3.1", - "wintersmith-sassy": "^1.0.0" - }, - "private": true -} diff --git a/docs/plugins/paginator.coffee b/docs/plugins/paginator.coffee deleted file mode 100644 index be6aa6b8..00000000 --- a/docs/plugins/paginator.coffee +++ /dev/null @@ -1,44 +0,0 @@ - -module.exports = (env, callback) -> - ### Paginator plugin. Defaults can be overridden in config.json - e.g. "paginator": {"perPage": 10} ### - - defaults = - template: 'index.jade' # template that renders pages - articles: 'articles' # directory containing contents to paginate - first: 'index.html' # filename/url for first page - filename: 'page/%d/index.html' # filename for rest of pages - perPage: 2 # number of articles per page - groupSort: {} - - # assign defaults any option not set in the config file - options = env.config.paginator or {} - for key, value of defaults - options[key] ?= defaults[key] - - getArticles = (contents) -> - # helper that returns a list of articles found in *contents* - # note that each article is assumed to have its own directory in the articles directory - articles = contents[options.articles]._.directories.map (item) -> item.index - # skip articles that does not have a template associated - articles = articles.filter (item) -> item.template isnt 'none' - # sort article by date - articles.sort (a, b) -> b.metadata.sort - a.metadata.sort - groupedArticlesObj = articles.reduce (acc, curr) -> - groupName = curr.metadata.group - if not acc[groupName] - acc[groupName] = - groupName: groupName - items: [] - acc[groupName].items.push curr - return acc - , {} - groupedArticles = (val for key, val of groupedArticlesObj) - groupedArticles.sort (a, b) -> (options.groupSort[b.groupName] || 0) - (options.groupSort[a.groupName] || 0) - return groupedArticles - - # add the article helper to the environment so we can use it later - env.helpers.getGroupedArticles = getArticles - - # tell the plugin manager we are done - callback() diff --git a/docs/templates/article.jade b/docs/templates/article.jade deleted file mode 100644 index 5d75f36e..00000000 --- a/docs/templates/article.jade +++ /dev/null @@ -1,21 +0,0 @@ - -extends layout - -block title - | ng2-admin documentation - #{page.title] - -block content - section.content.wrap.documentationContent - div.nav-docs - each group in groupedArticles - div.nav-docs.section - h5=group.groupName - ul - each article in group.items - li - a(href=article.url)(class= locals.page === article ? 'active': '')= article.title - div.inner-content - h1=locals.page.title - div.subHeader - != typogr(page.html).typogrify() - diff --git a/docs/templates/index.jade b/docs/templates/index.jade deleted file mode 100644 index 33a56094..00000000 --- a/docs/templates/index.jade +++ /dev/null @@ -1,59 +0,0 @@ - -extends layout - -block title - | Admin HTML template based on Angular 2, Bootstrap 4 and Webpack - -block content - div.hero - div.hero-content - div.wrap - div.text - strong ng2-#[span.white-text admin] - div.minitext Angular 2 admin panel front-end framework - div.buttons-unit - a.button(href=installationArticleUrl) Installation guidelines - a.button(href=firstArticleUrl) Documentation - div.admin-screenshots - div.admin-screenshot - div.browser-mockup - a.demo-link(href='http://akveo.com/ng2-admin/',target='_blank') - img(src=contents.images['sky-preview.png'].url) - span.demo-link-label Demo - div.index-block - div.wrap - h1.centered Why ng2-admin? - div.why-items - div.why-item - img(src=contents.images['why-structure.svg'].url) - h4 Awesome structure - p Component-based structure is the best choice for large Angular 2 applications. - div.why-item - img(src=contents.images['why-design.svg'].url) - h4 Neat design - p We have put a lot of effort and carefully selected each color and font for this template! - div.why-item - img(src=contents.images['why-practices.svg'].url) - h4 Ease of customization - p Check out #[a(href='/ng2-admin/articles/011-changing-color-scheme') our article], where we describe how you can create a different look in just 2 minutes! - div.index-block - div.wrap - h1.centered Is it free? - p Yes, ng2-admin is completely free and MIT licensed. That means you can do with it whatever you want. - - div.index-block - div.wrap - h1.centered How can I support you guys? - p Here's what you can do: - ul - li Star #[a(href='https://github.com/akveo/ng2-admin',target='_blank') our GitHub repo] - li Create pull requests, submit bugs, suggest new features - li Follow #[a(href='https://twitter.com/akveo_inc',target='_blank') us on Twitter] - li Like #[a(href='https://www.facebook.com/akveo/',target='_blank') our page on Facebook] - div.index-block - div.wrap - h1.centered Can I hire you? - p Yes! We are available for hire. Visit #[a(href='http://akveo.com',target='_blank') our homepage] - | or simply leave us a note at #[a(href='mailto:contact@akveo.com') contact@akveo.com]. - | We will be happy to work with you! - diff --git a/docs/templates/layout.jade b/docs/templates/layout.jade deleted file mode 100644 index 23cf5ba4..00000000 --- a/docs/templates/layout.jade +++ /dev/null @@ -1,44 +0,0 @@ -doctype html -block vars - - var bodyclass = null; - - var groupedArticles = env.helpers.getGroupedArticles(contents); - - var firstArticleUrl = groupedArticles[0].items[0].url - - var installationArticleUrl = groupedArticles[0].items[1].url -html(lang='en') - head - block head - meta(charset='utf-8') - meta(http-equiv='X-UA-Compatible', content='IE=edge,chrome=1') - meta(name='viewport', content='width=device-width') - meta(name='keywords', content='admin,dashboard,template,angular,bootstrap,blur,panel,html,css,javascript') - title - block title - = locals.name - link(rel='alternate', href=locals.url+'/feed.xml', type='application/rss+xml', title=locals.description) - link(rel='stylesheet', href='https://fonts.googleapis.com/css?family=Roboto:400,100,100italic,300,300italic,400italic,500,500italic,700,700italic,900italic,900|Anonymous+Pro:400,700,400italic,700italic&subset=latin,greek,greek-ext,vietnamese,cyrillic-ext,latin-ext,cyrillic') - link(rel='stylesheet', href='https://cdnjs.cloudflare.com/ajax/libs/github-fork-ribbon-css/0.2.0/gh-fork-ribbon.min.css') - - link(rel='stylesheet', href=contents.css['main.scss'].url) - link(rel='shortcut icon', href=contents.images['favicon.png'].url) - body(class=bodyclass) - div.container - div.nav-main - div.wrap - a.nav-home(href=contents['index'].url) - img.nav-logo(src=contents.images['logo.png'].url, width=24,height=24) - | #[span.blur-label ng2-]admin - ul.nav-site.nav-site-internal - li - a(class= locals.page.metadata.activeHome ? 'active': '')(href=contents['index'].url) Home - li - a(class= !locals.page.metadata.activeHome ? 'active': '')(href=firstArticleUrl) Docs - span.nav-docs-right - | Need some help? Let us know! #[a(href='mailto:contact@akveo.com') contact@akveo.com] - block content - h2 Welcome to blur admin! - footer.wrap - div.left Powered by Angular 2, Bootstrap 4, Webpack and many more... - div.right - | © 2015–2016 Akveo LLC
- | Documentation licensed under #[a(href='https://creativecommons.org/licenses/by/4.0/') CC BY 4.0]. - a(href='https://github.com/akveo/ng2-admin', class='github-fork-ribbon', title="Star & Fork on GitHub") diff --git a/e2e/app.e2e-spec.ts b/e2e/app.e2e-spec.ts new file mode 100644 index 00000000..61d8321b --- /dev/null +++ b/e2e/app.e2e-spec.ts @@ -0,0 +1,14 @@ +import { Ng2AdminCLIPage } from './app.po'; + +describe('ng2-admin-cli App', () => { + let page: Ng2AdminCLIPage; + + beforeEach(() => { + page = new Ng2AdminCLIPage(); + }); + + it('should display message saying app works', () => { + page.navigateTo(); + expect(page.getParagraphText()).toEqual('app works!'); + }); +}); diff --git a/e2e/app.po.ts b/e2e/app.po.ts new file mode 100644 index 00000000..0ad18521 --- /dev/null +++ b/e2e/app.po.ts @@ -0,0 +1,11 @@ +import { browser, element, by } from 'protractor'; + +export class Ng2AdminCLIPage { + navigateTo() { + return browser.get('/'); + } + + getParagraphText() { + return element(by.css('app-root h1')).getText(); + } +} diff --git a/e2e/tsconfig.e2e.json b/e2e/tsconfig.e2e.json new file mode 100644 index 00000000..ac7a3732 --- /dev/null +++ b/e2e/tsconfig.e2e.json @@ -0,0 +1,12 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/e2e", + "module": "commonjs", + "target": "es5", + "types":[ + "jasmine", + "node" + ] + } +} diff --git a/karma.conf.js b/karma.conf.js index 75eda637..b5fb11f9 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -1,2 +1,45 @@ -// Look in ./config for karma.conf.js -module.exports = require('./config/karma.conf.js'); + +// Karma configuration file, see link for more information +// https://karma-runner.github.io/0.13/config/configuration-file.html + +module.exports = function (config) { + config.set({ + basePath: '', + frameworks: ['jasmine', '@angular/cli'], + plugins: [ + require('karma-jasmine'), + require('karma-chrome-launcher'), + require('karma-jasmine-html-reporter'), + require('karma-coverage-istanbul-reporter'), + require('@angular/cli/plugins/karma') + ], + client:{ + clearContext: false // leave Jasmine Spec Runner output visible in browser + }, + files: [ + { pattern: './src/test.ts', watched: false } + ], + preprocessors: { + './src/test.ts': ['@angular/cli'] + }, + mime: { + 'text/x-typescript': ['ts','tsx'] + }, + coverageIstanbulReporter: { + reports: [ 'html', 'lcovonly' ], + fixWebpackSourcePaths: true + }, + angularCli: { + environment: 'dev' + }, + reporters: config.angularCli && config.angularCli.codeCoverage + ? ['progress', 'coverage-istanbul'] + : ['progress', 'kjhtml'], + port: 9876, + colors: true, + logLevel: config.LOG_INFO, + autoWatch: true, + browsers: ['Chrome'], + singleRun: false + }); +}; diff --git a/package.json b/package.json index d21eb27d..1b0aeaf1 100644 --- a/package.json +++ b/package.json @@ -1,10 +1,27 @@ { - "name": "ng2-admin", - "version": "0.9.0", - "description": "Angular 2 and Bootstrap 4 Admin Template.", - "author": "akveo", - "homepage": "http://akveo.github.io/ng2-admin/", + "name": "ng2-admin-cli", + "version": "0.0.0", "license": "MIT", + "scripts": { + "ng": "ng", + "rimraf": "rimraf", + "start": "ng serve --hmr", + "start:aot": "ng serve --aot", + "build": "npm run clean:dist && ng build", + "build:prod": "npm run build -- --prod", + "build:prod:aot": "npm run build -- --aot", + "build:ci": "npm run build:prod && npm run build:prod:aot", + "test": "ng test -sr", + "test:coverage": "npm run clean:coverage && ng test -sr -cc", + "lint": "ng lint", + "lint:styles": "stylelint ./src/app/**/*.scss", + "lint:ci": "npm run lint && npm run lint:styles", + "pree2e": "webdriver-manager update --standalone false --gecko false", + "e2e": "ng e2e", + "clean:dist": "npm run rimraf -- dist", + "clean:coverage": "npm run rimraf -- coverage" + }, + "private": true, "dependencies": { "@angular/common": "4.0.1", "@angular/compiler": "4.0.1", @@ -13,7 +30,6 @@ "@angular/http": "4.0.1", "@angular/platform-browser": "4.0.1", "@angular/platform-browser-dynamic": "4.0.1", - "@angular/platform-server": "4.0.1", "@angular/router": "4.0.1", "@angularclass/conventions-loader": "1.0.13", "@angularclass/hmr": "1.2.2", @@ -50,39 +66,42 @@ "normalize.css": "6.0.0", "reflect-metadata": "0.1.10", "roboto-fontface": "0.7.0", - "rxjs": "5.3.0", - "tether": "1.4.0", - "zone.js": "0.8.5" + "rxjs": "5.1.0", + "stylelint": "7.10.1", + "zone.js": "0.8.4" }, "devDependencies": { + "@angular/cli": "1.0.0", "@angular/compiler-cli": "4.0.1", "@types/electron": "1.4.35", "@types/fullcalendar": "2.7.40", "@types/hammerjs": "2.0.34", - "@types/jasmine": "2.5.47", + "@types/jasmine": "2.5.38", "@types/jquery": "2.0.41", "@types/jquery.slimscroll": "1.3.30", "@types/lodash": "4.14.61", - "@types/node": "7.0.12", + "@types/node": "6.0.60", "@types/source-map": "0.5.0", "@types/uglify-js": "2.6.28", "@types/webpack": "2.2.14", "add-asset-html-webpack-plugin": "1.0.2", "angular2-template-loader": "0.6.2", "assets-webpack-plugin": "3.5.1", + "autoprefixer": "6.5.3", "awesome-typescript-loader": "3.1.2", "bootstrap-loader": "2.0.0", - "codelyzer": "2.1.1", + "codelyzer": "2.0.0", "copy-webpack-plugin": "4.0.1", - "css-loader": "0.28.0", + "css-loader": "0.26.1", + "cssnano": "3.10.0", "electron": "1.6.2", "es6-promise": "4.1.0", "es6-shim": "0.35.3", "es7-reflect-metadata": "1.6.0", - "exports-loader": "0.6.4", + "exports-loader": "0.6.3", "expose-loader": "0.7.3", "extract-text-webpack-plugin": "2.1.0", - "file-loader": "0.11.1", + "file-loader": "0.10.0", "find-root": "1.0.0", "font-awesome-sass-loader": "2.0.1", "gh-pages": "0.12.0", @@ -90,111 +109,46 @@ "imports-loader": "0.7.1", "istanbul-instrumenter-loader": "2.0.0", "jasmine-core": "2.5.2", + "jasmine-spec-reporter": "3.2.0", "json-loader": "0.5.4", - "karma": "1.6.0", + "karma": "1.4.1", "karma-chrome-launcher": "2.0.0", - "karma-coverage": "1.1.1", + "karma-cli": "1.0.1", + "karma-coverage-istanbul-reporter": "0.2.0", "karma-jasmine": "1.1.0", - "karma-mocha-reporter": "2.2.3", - "karma-remap-coverage": "0.1.4", + "karma-jasmine-html-reporter": "0.2.2", "karma-sourcemap-loader": "0.3.7", - "karma-webpack": "2.0.3", + "less-loader": "2.2.3", "ng-router-loader": "2.1.0", "ngc-webpack": "1.2.0", "node-sass": "4.5.2", "npm-run-all": "4.0.2", "optimize-js-plugin": "0.0.4", - "postcss-loader": "1.3.3", + "postcss-loader": "0.13.0", + "postcss-url": "5.1.2", + "protractor": "5.1.0", "raw-loader": "0.5.1", "resolve-url-loader": "2.0.2", "rimraf": "2.6.1", - "sass-loader": "6.0.3", + "sass-loader": "4.1.1", "script-ext-html-webpack-plugin": "1.7.1", - "source-map-loader": "0.2.1", + "script-loader": "0.7.0", + "source-map-loader": "0.1.5", "string-replace-loader": "1.2.0", - "style-loader": "0.16.1", + "style-loader": "0.13.1", + "stylus-loader": "2.4.0", "to-string-loader": "1.1.5", "ts-helpers": "1.1.2", - "ts-node": "3.0.2", - "tslib": "1.6.0", - "tslint": "4.5.1", + "ts-node": "2.0.0", + "tslint": "4.5.0", + "tslint-eslint-rules": "4.0.0", "typedoc": "0.5.10", - "typescript": "2.2.2", + "typescript": "2.2.0", "typogr": "0.6.6", "underscore": "1.8.3", - "url-loader": "0.5.8", - "webpack": "2.3.3", - "webpack-dev-middleware": "1.10.1", - "webpack-dev-server": "2.4.2", - "webpack-dll-bundles-plugin": "1.0.0-beta.5", - "webpack-merge": "4.1.0", + "url-loader": "0.5.7", + "webpack-dev-server": "2.3.0", "wintersmith": "2.3.6", "wintersmith-sassy": "1.1.0" - }, - "scripts": { - "karma": "karma", - "test": "karma start", - "rimraf": "rimraf", - "tslint": "tslint", - "typedoc": "typedoc", - "webpack": "webpack --progress --profile --bail", - "webpack-dev-server": "webpack-dev-server", - "webdriver-manager": "webdriver-manager", - "clean": "npm cache clean && npm run rimraf -- node_modules doc coverage dist compiled dll", - "clean:dist": "npm run rimraf -- dist", - "clean:dll": "npm run rimraf -- dll", - "clean:electron": "npm run rimraf -- build", - "preclean:install": "npm run clean", - "clean:install": "npm set progress=false && npm install", - "preclean:start": "npm run clean", - "clean:start": "npm start", - "watch": "npm run watch:dev", - "watch:dev": "npm run build:dev -- --watch", - "watch:dev:hmr": "npm run watch:dev -- --hot", - "watch:prod": "npm run build:prod -- --watch", - "build": "npm run build:dev", - "prebuild:dev": "npm run clean:dist", - "build:dev": " npm run clean:dist && npm run webpack -- --config config/webpack.dev.js", - "prebuild:prod": "npm run clean:dist", - "build:prod": "npm run clean:dist && webpack --config config/webpack.prod.js --progress --profile", - "server": "npm run server:dev", - "server:dev": "webpack-dev-server --config config/webpack.dev.js --progress --profile --watch --content-base src/", - "server:dev:hmr": "npm run server:dev -- --inline --hot", - "server:prod": "http-server dist -c-1 --cors", - "server:test": "http-server dist-demo -c-1 --cors", - "server:prod:ci": "http-server dist -p 3000 -c-1 --cors", - "webdriver:update": "npm run webdriver-manager update", - "webdriver:start": "npm run webdriver-manager start", - "lint": "npm run tslint \"src/**/*.ts\" --force", - "ngc": "./node_modules/.bin/ngc-w -p tsconfig.webpack.json", - "pree2e": "npm run webdriver:update -- --standalone", - "pretest": "npm run lint", - "docs": "npm run typedoc -- --options typedoc.json --exclude '**/*.spec.ts' ./src/", - "gh-pages": "wintersmith build -C docs && gh-pages -d docs/build", - "start": "npm run server:dev", - "start:hmr": "npm run server:dev:hmr", - "version": "npm run build", - "postversion": "git push && git push --tags", - "build:electron": "npm run build:electron.full", - "prebuild:electron.full": "npm run clean:electron", - "build:electron.full": "npm run build:electron.renderer && npm run build:electron.main", - "postbuild:electron.full": "npm run electron:start", - "build:electron.renderer": "npm run webpack -- --config config/electron/webpack.renderer.prod.js", - "build:electron.main": "npm run webpack -- --config config/electron/webpack.electron.prod.js", - "electron:start": "electron build", - "build:aot:prod": "npm run clean:dist && npm run clean:aot && webpack --config config/webpack.prod.js --progress --profile --bail", - "build:aot": "npm run build:aot:prod", - "clean:aot": "npm run rimraf -- compiled", - "build:ci": "npm run build:prod && npm run build:aot" - }, - "repository": { - "type": "git", - "url": "https://github.com/akveo/ng2-admin.git" - }, - "bugs": { - "url": "https://github.com/akveo/ng2-admin/issues" - }, - "engines": { - "node": ">= 5.4.1 < 7" } } diff --git a/postcss.config.js b/postcss.config.js deleted file mode 100644 index f053ebf7..00000000 --- a/postcss.config.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = {}; diff --git a/protractor.conf.js b/protractor.conf.js new file mode 100644 index 00000000..43f248a8 --- /dev/null +++ b/protractor.conf.js @@ -0,0 +1,33 @@ +// Protractor configuration file, see link for more information +// https://github.com/angular/protractor/blob/master/lib/config.ts + +const { SpecReporter } = require('jasmine-spec-reporter'); + +exports.config = { + allScriptsTimeout: 11000, + specs: [ + './e2e/**/*.e2e-spec.ts' + ], + capabilities: { + 'browserName': 'chrome', + 'chromeOptions': { + 'args': ['show-fps-counter=true', '--no-sandbox'] + } + }, + directConnect: true, + baseUrl: 'http://localhost:4200/', + framework: 'jasmine', + jasmineNodeOpts: { + showColors: true, + defaultTimeoutInterval: 30000, + print: function() {} + }, + beforeLaunch: function() { + require('ts-node').register({ + project: 'e2e/tsconfig.e2e.json' + }); + }, + onPrepare() { + jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } })); + } +}; diff --git a/src/app/app.component.html b/src/app/app.component.html new file mode 100644 index 00000000..b6931b53 --- /dev/null +++ b/src/app/app.component.html @@ -0,0 +1,3 @@ +

+ {{title}} +

diff --git a/config/resource-override.js b/src/app/app.component.scss similarity index 100% rename from config/resource-override.js rename to src/app/app.component.scss diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 27b324f1..89673dce 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,13 +1,11 @@ import { Component, ViewContainerRef } from '@angular/core'; +import * as $ from 'jquery'; import { GlobalState } from './global.state'; import { BaImageLoaderService, BaThemePreloader, BaThemeSpinner } from './theme/services'; import { BaThemeConfig } from './theme/theme.config'; import { layoutPaths } from './theme/theme.constants'; -import 'style-loader!./app.scss'; -import 'style-loader!./theme/initial.scss'; - /* * App Component * Top Level Component @@ -49,7 +47,7 @@ export class App { private _loadImages(): void { // register some loaders - BaThemePreloader.registerLoader(this._imageLoader.load(layoutPaths.images.root + 'sky-bg.jpg')); + BaThemePreloader.registerLoader(this._imageLoader.load('/assets/img/sky-bg.jpg')); } } diff --git a/src/app/app.module.ts b/src/app/app.module.ts index c8bfc4c4..e8048b8a 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -6,11 +6,9 @@ import { RouterModule } from '@angular/router'; import { removeNgStyles, createNewHosts, createInputTransfer } from '@angularclass/hmr'; import { NgbModule } from '@ng-bootstrap/ng-bootstrap'; import { TranslateService } from '@ngx-translate/core'; - /* * Platform and Environment providers/directives/pipes */ -import { ENV_PROVIDERS } from './environment'; import { routing } from './app.routing'; // App is our top level component @@ -53,48 +51,12 @@ export type StoreType = { routing ], providers: [ // expose our Services and Providers into Angular's dependency injection - ENV_PROVIDERS, APP_PROVIDERS ] }) export class AppModule { - constructor(public appRef: ApplicationRef, - public appState: AppState) { - } - - hmrOnInit(store: StoreType) { - if (!store || !store.state) return; - console.log('HMR store', JSON.stringify(store, null, 2)); - // set state - this.appState._state = store.state; - // set input values - if ('restoreInputValues' in store) { - let restoreInputValues = store.restoreInputValues; - setTimeout(restoreInputValues); - } - this.appRef.tick(); - delete store.state; - delete store.restoreInputValues; - } - - hmrOnDestroy(store: StoreType) { - const cmpLocation = this.appRef.components.map(cmp => cmp.location.nativeElement); - // save state - const state = this.appState._state; - store.state = state; - // recreate root elements - store.disposeOldHosts = createNewHosts(cmpLocation); - // save input values - store.restoreInputValues = createInputTransfer(); - // remove styles - removeNgStyles(); - } - - hmrAfterDestroy(store: StoreType) { - // display new elements - store.disposeOldHosts(); - delete store.disposeOldHosts; + constructor(public appState: AppState) { } } diff --git a/src/app/environment.ts b/src/app/environment.ts deleted file mode 100644 index 3a0871da..00000000 --- a/src/app/environment.ts +++ /dev/null @@ -1,49 +0,0 @@ -// Angular 2 -// rc2 workaround -import { enableDebugTools, disableDebugTools } from '@angular/platform-browser'; -import { enableProdMode, ApplicationRef } from '@angular/core'; -// Environment Providers -let PROVIDERS: any[] = [ - // common env directives -]; - -// Angular debug tools in the dev console -// https://github.com/angular/angular/blob/86405345b781a9dc2438c0fbe3e9409245647019/TOOLS_JS.md -let _decorateModuleRef = function identity(value: T): T { return value; }; - -if ('production' === ENV || 'renderer' === ENV) { - // Production - // disableDebugTools(); - enableProdMode(); - - PROVIDERS = [ - ...PROVIDERS, - // custom providers in production - ]; - -} else { - - _decorateModuleRef = (modRef: any) => { - const appRef = modRef.injector.get(ApplicationRef); - const cmpRef = appRef.components[0]; - - let _ng = (window).ng; - enableDebugTools(cmpRef); - (window).ng.probe = _ng.probe; - (window).ng.coreTokens = _ng.coreTokens; - return modRef; - }; - - // Development - PROVIDERS = [ - ...PROVIDERS, - // custom providers in development - ]; - -} - -export const decorateModuleRef = _decorateModuleRef; - -export const ENV_PROVIDERS = [ - ...PROVIDERS -]; diff --git a/src/app/index.ts b/src/app/index.ts deleted file mode 100644 index da53f6ae..00000000 --- a/src/app/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './app.module'; diff --git a/src/app/pages/charts/components/chartistJs/chartistJs.component.ts b/src/app/pages/charts/components/chartistJs/chartistJs.component.ts index 9579f081..9a3fc3c8 100644 --- a/src/app/pages/charts/components/chartistJs/chartistJs.component.ts +++ b/src/app/pages/charts/components/chartistJs/chartistJs.component.ts @@ -1,11 +1,11 @@ import {Component} from '@angular/core'; import {ChartistJsService} from './chartistJs.service'; -import 'style-loader!./chartistJs.scss'; @Component({ selector: 'chartist-js', templateUrl: './chartistJs.html', + styleUrls: ['./chartistJs.scss'] }) export class ChartistJs { diff --git a/src/app/pages/charts/components/chartistJs/chartistJs.scss b/src/app/pages/charts/components/chartistJs/chartistJs.scss index 940d0fb3..218a045b 100644 --- a/src/app/pages/charts/components/chartistJs/chartistJs.scss +++ b/src/app/pages/charts/components/chartistJs/chartistJs.scss @@ -1,71 +1,73 @@ @import "../../../../theme/sass/conf/conf"; +:host /deep/ { -.ct-area { - fill-opacity: .5; -} - -.ct-label{ - color: $default-text; - opacity: 0.9; - fill: $default-text; -} - -.ct-chart .ct-label{ - font-size: 1em; -} - -.ct-chart svg{ - width: 100%; - display: block; -} - -.ct-series-a { - .ct-bar, .ct-line, .ct-point, .ct-slice-donut, .ct-slice-pie { - stroke: $primary; - } - .ct-slice-pie, .ct-area{ - fill: $primary; - } -} - -.ct-series-b { - .ct-bar, .ct-line, .ct-point, .ct-slice-donut, .ct-slice-pie { - stroke: $success; - } - .ct-slice-pie, .ct-area{ - fill: $success; - } -} - -.ct-series-c { - .ct-bar, .ct-line, .ct-point, .ct-slice-donut, .ct-slice-pie { - stroke: $danger; - } - .ct-slice-pie, .ct-area{ - fill: $danger; - } -} - -.ct-series-d { - .ct-bar, .ct-line, .ct-point, .ct-slice-donut, .ct-slice-pie { - stroke: $warning; - } - .ct-slice-pie, .ct-area{ - fill: $warning; + .ct-area { + fill-opacity: .5; } -} - -.ct-series-e { - .ct-bar, .ct-line, .ct-point, .ct-slice-donut, .ct-slice-pie { - stroke: $info; + .ct-label { + color: $default-text; + opacity: 0.9; + fill: $default-text; } - .ct-slice-pie, .ct-area{ - fill: $info; + + .ct-chart .ct-label { + font-size: 1em; + } + + .ct-chart svg { + width: 100%; + display: block; + } + + .ct-series-a { + .ct-bar, .ct-line, .ct-point, .ct-slice-donut, .ct-slice-pie { + stroke: $primary; + } + .ct-slice-pie, .ct-area { + fill: $primary; + } + } + + .ct-series-b { + .ct-bar, .ct-line, .ct-point, .ct-slice-donut, .ct-slice-pie { + stroke: $success; + } + .ct-slice-pie, .ct-area { + fill: $success; + } + } + + .ct-series-c { + .ct-bar, .ct-line, .ct-point, .ct-slice-donut, .ct-slice-pie { + stroke: $danger; + } + .ct-slice-pie, .ct-area { + fill: $danger; + } + } + + .ct-series-d { + .ct-bar, .ct-line, .ct-point, .ct-slice-donut, .ct-slice-pie { + stroke: $warning; + } + .ct-slice-pie, .ct-area { + fill: $warning; + } + + } + + .ct-series-e { + .ct-bar, .ct-line, .ct-point, .ct-slice-donut, .ct-slice-pie { + stroke: $info; + } + .ct-slice-pie, .ct-area { + fill: $info; + } + } + + .stacked-bar .ct-bar { + stroke-width: 30px; } } - -.stacked-bar .ct-bar{ - stroke-width: 30px; -} diff --git a/src/app/pages/dashboard/calendar/calendar.component.ts b/src/app/pages/dashboard/calendar/calendar.component.ts index 30bbaecd..43de802b 100644 --- a/src/app/pages/dashboard/calendar/calendar.component.ts +++ b/src/app/pages/dashboard/calendar/calendar.component.ts @@ -1,11 +1,12 @@ import {Component} from '@angular/core'; +import * as jQuery from 'jquery'; import {CalendarService} from './calendar.service'; -import 'style-loader!./calendar.scss'; @Component({ selector: 'calendar', - templateUrl: './calendar.html' + templateUrl: './calendar.html', + styleUrls: ['./calendar.scss'] }) export class Calendar { diff --git a/src/app/pages/dashboard/calendar/calendar.scss b/src/app/pages/dashboard/calendar/calendar.scss index 3aadaf47..e344d468 100644 --- a/src/app/pages/dashboard/calendar/calendar.scss +++ b/src/app/pages/dashboard/calendar/calendar.scss @@ -1,765 +1,768 @@ @import '../../../theme/sass/conf/conf'; -div.blurCalendar{ - font-size: 12px; -} -.fc { - direction: ltr; - text-align: left; +:host /deep/ ba-full-calendar { - button { - box-sizing: border-box; - margin: 0; - height: 2.1em; - padding: 0 .6em; - font-size: 1em; - white-space: nowrap; - cursor: pointer; - &::-moz-focus-inner { + div.blurCalendar { + font-size: 12px; + } + .fc { + direction: ltr; + text-align: left; + + button { + box-sizing: border-box; margin: 0; - padding: 0; + height: 2.1em; + padding: 0 .6em; + font-size: 1em; + white-space: nowrap; + cursor: pointer; + &::-moz-focus-inner { + margin: 0; + padding: 0; + } + .fc-icon { + position: relative; + top: 0; + } } - .fc-icon { - position: relative; - top: 0; - } - } - .fc-button-group { - & > * { - float: left; - margin: 0 0 0 -1px; - } - & > :first-child { - margin-left: 0; - } - } - - hr { - height: 0; - margin: 0; - padding: 0 0 2px; - border-style: solid; - border-width: 1px 0; - } - - table { - width: 100%; - table-layout: fixed; - border-collapse: collapse; - border-spacing: 0; - font-size: 1em; - } - - th { - text-align: center; - } - - th, td { - border: 1px solid rgba(255,255,255,0.3); - padding: 0; - vertical-align: top; - } - - td.fc-today { - border-style: double; - } - - .fc-row { - border: 0 solid; - } - - .fc-toolbar { - & > * { + .fc-button-group { & > * { float: left; - margin-left: .75em; + margin: 0 0 0 -1px; } & > :first-child { margin-left: 0; - } } + + hr { + height: 0; + margin: 0; + padding: 0 0 2px; + border-style: solid; + border-width: 1px 0; + } + + table { + width: 100%; + table-layout: fixed; + border-collapse: collapse; + border-spacing: 0; + font-size: 1em; + } + + th { + text-align: center; + } + + th, td { + border: 1px solid rgba(255, 255, 255, 0.3); + padding: 0; + vertical-align: top; + } + + td.fc-today { + border-style: double; + } + + .fc-row { + border: 0 solid; + } + + .fc-toolbar { + & > * { + & > * { + float: left; + margin-left: .75em; + } + & > :first-child { + margin-left: 0; + + } + } + } + + .fc-axis { + vertical-align: middle; + padding: 0 4px; + white-space: nowrap; + } } - .fc-axis { - vertical-align: middle; - padding: 0 4px; - white-space: nowrap; + .fc-rtl { + text-align: right; } -} -.fc-rtl { - text-align: right; -} + .fc-unthemed { + th, td, hr, thead, tbody, .fc-row, .fc-popover { + border-color: rgba($border, 0.3); + } -.fc-unthemed { - th, td, hr, thead, tbody, .fc-row, .fc-popover { - border-color: rgba($border, 0.3); + .fc-popover { + background-color: $default; + border: 1px solid; + + .fc-header { + background: #eee; + + .fc-close { + color: #666666; + font-size: 25px; + margin-top: 4px; + } + } + } + + hr { + background: #eee; + } + + .fc-today { + background: rgba(255, 255, 255, 0.15); + } + } + + .fc-highlight { + background: rgba(255, 255, 255, 0.25); + opacity: .3; + } + + .fc-icon { + display: inline-block; + font-size: 2em; + font-family: "Courier New", Courier, monospace; + } + + .fc-icon-left-single-arrow:after { + content: "\02039"; + font-weight: $font-bold; + font-size: 100%; + } + + .fc-icon-right-single-arrow:after { + content: "\0203A"; + font-weight: $font-bold; + font-size: 100%; + } + + .fc-icon-left-double-arrow:after { + content: "\000AB"; + } + + .fc-icon-right-double-arrow:after { + content: "\000BB"; + } + + .fc-icon-x:after { + content: "\000D7"; + } + + .fc-state-default { + border: 1px solid; + outline: none; + background: #f5f5f5 repeat-x; + border-color: #e6e6e6 #e6e6e6 #bfbfbf; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1); + color: #333333; + + &.fc-corner-left { + border-top-left-radius: 0px; + border-bottom-left-radius: 0px; + } + + &.fc-corner-right { + border-top-right-radius: 0px; + border-bottom-right-radius: 0px; + } + } + + .fc-state-hover, + .fc-state-down, + .fc-state-active, + .fc-state-disabled { + color: #333333; + background-color: $disabled-bg; + } + + .fc-state-hover { + color: #333333; + text-decoration: none; + background-position: 0 -15px; + transition: background-position 0.1s linear; + } + + .fc-state-down, + .fc-state-active { + background: #cccccc none; + } + + .fc-state-disabled { + cursor: default; + background-image: none; + opacity: 0.65; + box-shadow: none; + } + + .fc-button-group { + display: inline-block; } .fc-popover { - background-color: $default; - border: 1px solid; + position: absolute; .fc-header { - background: #eee; + padding: 2px 4px; + } - .fc-close { - color: #666666; - font-size: 25px; - margin-top: 4px; - } + .fc-header .fc-title { + margin: 0 2px; + } + + .fc-header .fc-close { + cursor: pointer; } } - hr { - background: #eee; + .fc-ltr .fc-popover .fc-header .fc-title, + .fc-rtl .fc-popover .fc-header .fc-close { + float: left; } - .fc-today { - background: rgba(255,255,255,0.15); - } -} - -.fc-highlight { - background: rgba(255,255,255,0.25); - opacity: .3; -} - -.fc-icon { - display: inline-block; - font-size: 2em; - font-family: "Courier New", Courier, monospace; -} - -.fc-icon-left-single-arrow:after { - content: "\02039"; - font-weight: $font-bold; - font-size: 100%; -} - -.fc-icon-right-single-arrow:after { - content: "\0203A"; - font-weight: $font-bold; - font-size: 100%; -} - -.fc-icon-left-double-arrow:after { - content: "\000AB"; -} - -.fc-icon-right-double-arrow:after { - content: "\000BB"; -} - -.fc-icon-x:after { - content: "\000D7"; -} - -.fc-state-default { - border: 1px solid; - outline: none; - background: #f5f5f5 repeat-x; - border-color: #e6e6e6 #e6e6e6 #bfbfbf; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1); - color: #333333; - - &.fc-corner-left { - border-top-left-radius: 0px; - border-bottom-left-radius: 0px; + .fc-rtl .fc-popover .fc-header .fc-title, + .fc-ltr .fc-popover .fc-header .fc-close { + float: right; } - &.fc-corner-right { - border-top-right-radius: 0px; - border-bottom-right-radius: 0px; - } -} - -.fc-state-hover, -.fc-state-down, -.fc-state-active, -.fc-state-disabled { - color: #333333; - background-color: $disabled-bg; -} - -.fc-state-hover { - color: #333333; - text-decoration: none; - background-position: 0 -15px; - transition: background-position 0.1s linear; -} - -.fc-state-down, -.fc-state-active { - background: #cccccc none; -} - -.fc-state-disabled { - cursor: default; - background-image: none; - opacity: 0.65; - box-shadow: none; -} - -.fc-button-group { - display: inline-block; -} - -.fc-popover { - position: absolute; - - .fc-header { - padding: 2px 4px; + .fc-popover > .ui-widget-header + .ui-widget-content { + border-top: 0; } - .fc-header .fc-title { - margin: 0 2px; + .fc-clear { + clear: both; } - .fc-header .fc-close { - cursor: pointer; - } -} - -.fc-ltr .fc-popover .fc-header .fc-title, -.fc-rtl .fc-popover .fc-header .fc-close { - float: left; -} - -.fc-rtl .fc-popover .fc-header .fc-title, -.fc-ltr .fc-popover .fc-header .fc-close { - float: right; -} - -.fc-popover > .ui-widget-header + .ui-widget-content { - border-top: 0; -} - -.fc-clear { - clear: both; -} - -.fc-bg, -.fc-highlight-skeleton, -.fc-helper-skeleton { - position: absolute; - top: 0; - left: 0; - right: 0; -} - -.fc-bg { - bottom: 0; -} - -.fc-bg table { - height: 100%; -} - -.fc-row { - position: relative; - table { - border-left: 0 hidden transparent; - border-right: 0 hidden transparent; - border-bottom: 0 hidden transparent; - } - - &:first-child table { - border-top: 0 hidden transparent; + .fc-bg, + .fc-highlight-skeleton, + .fc-helper-skeleton { + position: absolute; + top: 0; + left: 0; + right: 0; } .fc-bg { - z-index: 1; - } - - .fc-highlight-skeleton { - z-index: 2; bottom: 0; + } + + .fc-bg table { + height: 100%; + } + + .fc-row { + position: relative; table { - height: 100%; + border-left: 0 hidden transparent; + border-right: 0 hidden transparent; + border-bottom: 0 hidden transparent; } - td { + + &:first-child table { + border-top: 0 hidden transparent; + } + + .fc-bg { + z-index: 1; + } + + .fc-highlight-skeleton { + z-index: 2; + bottom: 0; + table { + height: 100%; + } + td { + border-color: transparent; + } + } + .fc-content-skeleton { + position: relative; + z-index: 3; + padding-bottom: 2px; + } + + .fc-helper-skeleton { + z-index: 4; + } + + .fc-content-skeleton td, + .fc-helper-skeleton td { + background: none; border-color: transparent; + border-bottom: 0; + } + + .fc-content-skeleton tbody td, + .fc-helper-skeleton tbody td { + border-top: 0; } } - .fc-content-skeleton { + + .fc-scroller { + //overflow-y: scroll; + //overflow-x: hidden; + & > * { + //position: relative; + //width: 100%; + //overflow: hidden; + //height: 100%; + } + } + + .fc-event { position: relative; - z-index: 3; - padding-bottom: 2px; + display: block; + font-size: .85em; + line-height: 1.3; + border: 1px solid $primary; + background-color: $primary; + font-weight: $font-normal; } - .fc-helper-skeleton { - z-index: 4; + .fc-event, + .fc-event:hover, + .ui-widget .fc-event { + color: $label-text; + text-decoration: none; } - .fc-content-skeleton td, - .fc-helper-skeleton td { - background: none; - border-color: transparent; - border-bottom: 0; + .fc-event[href], + .fc-event.fc-draggable { + cursor: pointer; } - .fc-content-skeleton tbody td, - .fc-helper-skeleton tbody td { - border-top: 0; - } -} - -.fc-scroller { - //overflow-y: scroll; - //overflow-x: hidden; - & > * { - //position: relative; - //width: 100%; - //overflow: hidden; - //height: 100%; - } -} - -.fc-event { - position: relative; - display: block; - font-size: .85em; - line-height: 1.3; - border: 1px solid $primary; - background-color: $primary; - font-weight: $font-normal; -} - -.fc-event, -.fc-event:hover, -.ui-widget .fc-event { - color: $label-text; - text-decoration: none; -} - -.fc-event[href], -.fc-event.fc-draggable { - cursor: pointer; -} - -.fc-day-grid-event { - margin: 1px 2px 0; - padding: 0 1px; -} - -.fc-ltr .fc-day-grid-event.fc-not-start, -.fc-rtl .fc-day-grid-event.fc-not-end { - margin-left: 0; - border-left-width: 0; - padding-left: 1px; - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} - -.fc-ltr .fc-day-grid-event.fc-not-end, -.fc-rtl .fc-day-grid-event.fc-not-start { - margin-right: 0; - border-right-width: 0; - padding-right: 1px; - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} - -.fc-day-grid-event > .fc-content { - white-space: nowrap; - overflow: hidden; -} - -.fc-day-grid-event .fc-time { - font-weight: $font-bold; -} - -.fc-day-grid-event .fc-resizer { - position: absolute; - top: 0; - bottom: 0; - width: 7px; -} - -.fc-ltr .fc-day-grid-event .fc-resizer { - right: -3px; - cursor: e-resize; -} - -.fc-rtl .fc-day-grid-event .fc-resizer { - left: -3px; - cursor: w-resize; -} - -a.fc-more { - margin: 1px 3px; - font-size: .85em; - cursor: pointer; - text-decoration: none; - &:hover { - text-decoration: underline; - } -} - -.fc-limited { - display: none; -} - -.fc-day-grid .fc-row { - z-index: 1; -} - -.fc-more-popover { - z-index: 2; - width: 220px; - - .fc-event-container { - padding: 10px; - } -} - -.fc-toolbar { - text-align: center; - margin-bottom: 1em; - .fc-left { - float: left; - } - .fc-right { - float: right; - } - .fc-center { - display: inline-block; - } - h2 { - margin: 0; - font-size: 24px; - width: 100%; - line-height: 26px; - } - button { - position: relative; + .fc-day-grid-event { + margin: 1px 2px 0; + padding: 0 1px; } - .fc-state-hover, .ui-state-hover { - z-index: 2; - } - - .fc-state-down { - z-index: 3; - } - - .fc-state-active, - .ui-state-active { - z-index: 4; - } - - button:focus { - z-index: 5; - } -} - -.fc-view-container *, -.fc-view-container *:before, -.fc-view-container *:after { - box-sizing: content-box; -} - -.fc-view, -.fc-view > table { - position: relative; - z-index: 1; -} - -.fc-basicWeek-view .fc-content-skeleton, -.fc-basicDay-view .fc-content-skeleton { - padding-top: 1px; - padding-bottom: 1em; -} - -.fc-basic-view tbody .fc-row { - min-height: 4em; - max-height: 70px; -} - -.fc-row.fc-rigid { - overflow: hidden; -} - -.fc-row.fc-rigid .fc-content-skeleton { - position: absolute; - top: 0; - left: 0; - right: 0; -} - -.fc-basic-view .fc-week-number, -.fc-basic-view .fc-day-number { - padding: 0 2px; -} - -.fc-basic-view td.fc-week-number span, -.fc-basic-view td.fc-day-number { - padding-top: 2px; - padding-bottom: 2px; -} - -.fc-basic-view .fc-week-number { - text-align: center; -} - -.fc-basic-view .fc-week-number span { - display: inline-block; - min-width: 1.25em; -} - -.fc-ltr .fc-basic-view .fc-day-number { - text-align: right; -} - -.fc-rtl .fc-basic-view .fc-day-number { - text-align: left; -} - -.fc-day-number.fc-other-month { - opacity: 0.3; -} - -.fc-agenda-view .fc-day-grid { - position: relative; - z-index: 2; -} - -.fc-agenda-view .fc-day-grid .fc-row { - min-height: 3em; -} - -.fc-agenda-view .fc-day-grid .fc-row .fc-content-skeleton { - padding-top: 1px; - padding-bottom: 1em; -} - -.fc-ltr .fc-axis { - text-align: right; -} - -.fc-rtl .fc-axis { - text-align: left; -} - -.ui-widget td.fc-axis { - font-weight: $font-normal; -} - -.fc-time-grid-container, -.fc-time-grid { - position: relative; - z-index: 1; -} - -.fc-time-grid { - min-height: 100%; -} - -.fc-time-grid table { - border: 0 hidden transparent; -} - -.fc-time-grid > .fc-bg { - z-index: 1; -} - -.fc-time-grid .fc-slats, -.fc-time-grid > hr { - position: relative; - z-index: 2; -} - -.fc-time-grid .fc-highlight-skeleton { - z-index: 3; -} - -.fc-time-grid .fc-content-skeleton { - position: absolute; - z-index: 4; - top: 0; - left: 0; - right: 0; -} - -.fc-time-grid > .fc-helper-skeleton { - z-index: 5; -} - -.fc-slats { - td { - height: 1.5em; - border-bottom: 0; - } - - .fc-minor td { - border-top-style: dotted; - } - - .ui-widget-content { - background: none; - } -} - -.fc-time-grid .fc-highlight-container { - position: relative; -} - -.fc-time-grid .fc-highlight { - position: absolute; - left: 0; - right: 0; -} - -.fc-time-grid .fc-event-container { - position: relative; -} - -.fc-ltr .fc-time-grid .fc-event-container { - margin: 0 2.5% 0 2px; -} - -.fc-rtl .fc-time-grid .fc-event-container { - margin: 0 2px 0 2.5%; -} - -.fc-time-grid .fc-event { - position: absolute; - z-index: 1; -} - -.fc-time-grid-event { - overflow: hidden; - - &.fc-not-start { - border-top-width: 0; - padding-top: 1px; + .fc-ltr .fc-day-grid-event.fc-not-start, + .fc-rtl .fc-day-grid-event.fc-not-end { + margin-left: 0; + border-left-width: 0; + padding-left: 1px; border-top-left-radius: 0; - border-top-right-radius: 0; + border-bottom-left-radius: 0; } - &.fc-not-end { - border-bottom-width: 0; - padding-bottom: 1px; - border-bottom-left-radius: 0; + .fc-ltr .fc-day-grid-event.fc-not-end, + .fc-rtl .fc-day-grid-event.fc-not-start { + margin-right: 0; + border-right-width: 0; + padding-right: 1px; + border-top-right-radius: 0; border-bottom-right-radius: 0; } - & > .fc-content { + .fc-day-grid-event > .fc-content { + white-space: nowrap; + overflow: hidden; + } + + .fc-day-grid-event .fc-time { + font-weight: $font-bold; + } + + .fc-day-grid-event .fc-resizer { + position: absolute; + top: 0; + bottom: 0; + width: 7px; + } + + .fc-ltr .fc-day-grid-event .fc-resizer { + right: -3px; + cursor: e-resize; + } + + .fc-rtl .fc-day-grid-event .fc-resizer { + left: -3px; + cursor: w-resize; + } + + a.fc-more { + margin: 1px 3px; + font-size: .85em; + cursor: pointer; + text-decoration: none; + &:hover { + text-decoration: underline; + } + } + + .fc-limited { + display: none; + } + + .fc-day-grid .fc-row { + z-index: 1; + } + + .fc-more-popover { + z-index: 2; + width: 220px; + + .fc-event-container { + padding: 10px; + } + } + + .fc-toolbar { + text-align: center; + margin-bottom: 1em; + .fc-left { + float: left; + } + .fc-right { + float: right; + } + .fc-center { + display: inline-block; + } + h2 { + margin: 0; + font-size: 24px; + width: 100%; + line-height: 26px; + } + button { + position: relative; + } + + .fc-state-hover, .ui-state-hover { + z-index: 2; + } + + .fc-state-down { + z-index: 3; + } + + .fc-state-active, + .ui-state-active { + z-index: 4; + } + + button:focus { + z-index: 5; + } + } + + .fc-view-container *, + .fc-view-container *:before, + .fc-view-container *:after { + box-sizing: content-box; + } + + .fc-view, + .fc-view > table { + position: relative; + z-index: 1; + } + + .fc-basicWeek-view .fc-content-skeleton, + .fc-basicDay-view .fc-content-skeleton { + padding-top: 1px; + padding-bottom: 1em; + } + + .fc-basic-view tbody .fc-row { + min-height: 4em; + max-height: 70px; + } + + .fc-row.fc-rigid { + overflow: hidden; + } + + .fc-row.fc-rigid .fc-content-skeleton { + position: absolute; + top: 0; + left: 0; + right: 0; + } + + .fc-basic-view .fc-week-number, + .fc-basic-view .fc-day-number { + padding: 0 2px; + } + + .fc-basic-view td.fc-week-number span, + .fc-basic-view td.fc-day-number { + padding-top: 2px; + padding-bottom: 2px; + } + + .fc-basic-view .fc-week-number { + text-align: center; + } + + .fc-basic-view .fc-week-number span { + display: inline-block; + min-width: 1.25em; + } + + .fc-ltr .fc-basic-view .fc-day-number { + text-align: right; + } + + .fc-rtl .fc-basic-view .fc-day-number { + text-align: left; + } + + .fc-day-number.fc-other-month { + opacity: 0.3; + } + + .fc-agenda-view .fc-day-grid { position: relative; z-index: 2; } - .fc-title { - padding: 0 1px; + .fc-agenda-view .fc-day-grid .fc-row { + min-height: 3em; } - .fc-time { - padding: 0 1px; - font-size: .85em; - white-space: nowrap; + .fc-agenda-view .fc-day-grid .fc-row .fc-content-skeleton { + padding-top: 1px; + padding-bottom: 1em; } - .fc-bg { + .fc-ltr .fc-axis { + text-align: right; + } + + .fc-rtl .fc-axis { + text-align: left; + } + + .ui-widget td.fc-axis { + font-weight: $font-normal; + } + + .fc-time-grid-container, + .fc-time-grid { + position: relative; z-index: 1; - background: $default; - opacity: .25; - filter: alpha(opacity=25); } - &.fc-short { - .fc-content { - white-space: nowrap; + .fc-time-grid { + min-height: 100%; + } + + .fc-time-grid table { + border: 0 hidden transparent; + } + + .fc-time-grid > .fc-bg { + z-index: 1; + } + + .fc-time-grid .fc-slats, + .fc-time-grid > hr { + position: relative; + z-index: 2; + } + + .fc-time-grid .fc-highlight-skeleton { + z-index: 3; + } + + .fc-time-grid .fc-content-skeleton { + position: absolute; + z-index: 4; + top: 0; + left: 0; + right: 0; + } + + .fc-time-grid > .fc-helper-skeleton { + z-index: 5; + } + + .fc-slats { + td { + height: 1.5em; + border-bottom: 0; } - .fc-time { - display: inline-block; - vertical-align: top; + .fc-minor td { + border-top-style: dotted; + } - span { - display: none; - } + .ui-widget-content { + background: none; + } + } - &:before { - content: attr(data-start); - } + .fc-time-grid .fc-highlight-container { + position: relative; + } - &:after { - content: "\000A0-\000A0"; - } + .fc-time-grid .fc-highlight { + position: absolute; + left: 0; + right: 0; + } + + .fc-time-grid .fc-event-container { + position: relative; + } + + .fc-ltr .fc-time-grid .fc-event-container { + margin: 0 2.5% 0 2px; + } + + .fc-rtl .fc-time-grid .fc-event-container { + margin: 0 2px 0 2.5%; + } + + .fc-time-grid .fc-event { + position: absolute; + z-index: 1; + } + + .fc-time-grid-event { + overflow: hidden; + + &.fc-not-start { + border-top-width: 0; + padding-top: 1px; + border-top-left-radius: 0; + border-top-right-radius: 0; + } + + &.fc-not-end { + border-bottom-width: 0; + padding-bottom: 1px; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + } + + & > .fc-content { + position: relative; + z-index: 2; } .fc-title { - display: inline-block; - vertical-align: top; + padding: 0 1px; + } + + .fc-time { + padding: 0 1px; font-size: .85em; - padding: 0; + white-space: nowrap; + } + + .fc-bg { + z-index: 1; + background: $default; + opacity: .25; + filter: alpha(opacity=25); + } + + &.fc-short { + .fc-content { + white-space: nowrap; + } + + .fc-time { + display: inline-block; + vertical-align: top; + + span { + display: none; + } + + &:before { + content: attr(data-start); + } + + &:after { + content: "\000A0-\000A0"; + } + } + + .fc-title { + display: inline-block; + vertical-align: top; + font-size: .85em; + padding: 0; + } + } + + .fc-resizer { + position: absolute; + z-index: 3; + left: 0; + right: 0; + bottom: 0; + height: 8px; + overflow: hidden; + line-height: 8px; + font-size: 11px; + font-family: monospace; + text-align: center; + cursor: s-resize; + &:after { + content: "="; + } } } - .fc-resizer { + .fc-day-grid-container.fc-scroller { + height: auto !important; + } + + .fc-body > tr > .fc-widget-content { + border: none; + } + + .fc-head { + color: $label-text; + background-color: $primary; + td, th { + border: none; + } + div.fc-widget-header { + padding: 5px 0; + } + } + + .fc-today-button, .fc-month-button, .fc-agendaWeek-button, .fc-agendaDay-button { + display: none; + } + .blurCalendar { + margin-top: 15px; + } + .fc-prev-button, .fc-next-button { position: absolute; - z-index: 3; - left: 0; - right: 0; - bottom: 0; - height: 8px; - overflow: hidden; - line-height: 8px; - font-size: 11px; - font-family: monospace; - text-align: center; - cursor: s-resize; - &:after { - content: "="; - } + background: transparent; + box-shadow: none; + border: none; + color: $content-text; + } + .fc-next-button { + left: 30px; + } + .fc-prev-button { + } + .fc-day-number { + color: $content-text; + opacity: 0.9; } } -.fc-day-grid-container.fc-scroller { - height: auto!important; -} - -.calendar-panel.card .card-body{ +/deep/.calendar-panel.card .card-body { padding: 0; } - -.fc-body > tr > .fc-widget-content{ - border: none; -} - -.fc-head{ - color: $label-text; - background-color: $primary; - td, th{ - border:none; - } - div.fc-widget-header{ - padding: 5px 0; - } -} - -.fc-today-button, .fc-month-button, .fc-agendaWeek-button, .fc-agendaDay-button { - display: none; -} -.blurCalendar{ - margin-top: 15px; -} -.fc-prev-button, .fc-next-button{ - position: absolute; - background: transparent; - box-shadow: none; - border: none; - color: $content-text; -} -.fc-next-button { - left: 30px; -} -.fc-prev-button { -} -.fc-day-number{ - color: $content-text; - opacity: 0.9; -} diff --git a/src/app/pages/dashboard/feed/feed.component.ts b/src/app/pages/dashboard/feed/feed.component.ts index 244d3e77..bbf80486 100644 --- a/src/app/pages/dashboard/feed/feed.component.ts +++ b/src/app/pages/dashboard/feed/feed.component.ts @@ -2,11 +2,10 @@ import {Component} from '@angular/core'; import {FeedService} from './feed.service'; -import 'style-loader!./feed.scss'; - @Component({ selector: 'feed', - templateUrl: './feed.html' + templateUrl: './feed.html', + styleUrls: ['./feed.scss'] }) export class Feed { diff --git a/src/app/pages/dashboard/feed/feed.scss b/src/app/pages/dashboard/feed/feed.scss index 8b5fcc99..68cde698 100644 --- a/src/app/pages/dashboard/feed/feed.scss +++ b/src/app/pages/dashboard/feed/feed.scss @@ -1,226 +1,217 @@ @import '../../../theme/sass/conf/conf'; -.feed-panel .card-body{ - padding: 10px 0; -} +:host /deep/ .feed-messages-container { -.feed-message { - $text-message-color: $content-text; - $video-message-color: $danger; - $image-message-color: $success; - $geo-message-color: $primary; - padding: 10px 0 ; - border-bottom: 1px solid rgba(0,0,0,0.12); - box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.12); - &:first-child { - padding-top: 0; - } - - .hidden { - display: none!important; - } - - .message-icon { - cursor: pointer; - width: 60px; - height: 60px; - float: left; - position: relative; - margin-left: 20px; - > img, .media-icon { - border-radius: 30px; - width: 100%; - height: 100%; + .feed-message { + $text-message-color: $content-text; + $video-message-color: $danger; + $image-message-color: $success; + $geo-message-color: $primary; + padding: 10px 0; + border-bottom: 1px solid rgba(0, 0, 0, 0.12); + box-shadow: 0 1px 0 0 rgba(255, 255, 255, 0.12); + &:first-child { + padding-top: 0; } - .sub-photo-icon { - display: inline-block; - padding: 4px; - &:after { - content: ''; + .hidden { + display: none !important; + } + + .message-icon { + cursor: pointer; + width: 60px; + height: 60px; + float: left; + position: relative; + margin-left: 20px; + > img, .media-icon { + border-radius: 30px; + width: 100%; + height: 100%; + } + + .sub-photo-icon { display: inline-block; - width: 22px; - height: 22px; - background-size: contain; - } - &.video-message { - background: $video-message-color; - &:after { - @include bg-image('theme/icon/feed/feed-video.svg'); - } - } - &.image-message { - background: $image-message-color; - &:after { - width: 21px; - height: 21px; - margin-top: 1px; - margin-left: 1px; - border-radius: 5px; - @include bg-image('theme/icon/feed/feed-image.svg'); - } - } - &.geo-message { - background: $geo-message-color; + padding: 4px; &:after { + content: ''; + display: inline-block; width: 22px; height: 22px; - @include bg-image('theme/icon/feed/feed-location.svg'); + background-size: contain; + } + &.video-message { + background: $video-message-color; + &:after { + @include bg-image('theme/icon/feed/feed-video.svg'); + } + } + &.image-message { + background: $image-message-color; + &:after { + width: 21px; + height: 21px; + margin-top: 1px; + margin-left: 1px; + border-radius: 5px; + @include bg-image('theme/icon/feed/feed-image.svg'); + } + } + &.geo-message { + background: $geo-message-color; + &:after { + width: 22px; + height: 22px; + @include bg-image('theme/icon/feed/feed-location.svg'); + } } } - } - .sub-photo-icon { - position: absolute; - width: 30px; - height: 30px; - right: -2px; - bottom: -4px; - border-radius: 15px; - } - } - - .text-block { - cursor: pointer; - position: relative; - border-radius: 5px; - margin: 0 0 0 80px; - padding: 5px 20px; - color: $text-message-color; - width: 280px; - height: 70px; - - &.text-message { - font-size: 12px; - width: inherit; - max-width: calc(100% - 80px); - height: inherit; - min-height: 60px; - &:before { - display: block; + .sub-photo-icon { + position: absolute; + width: 30px; + height: 30px; + right: -2px; + bottom: -4px; + border-radius: 15px; } - .message-content { + } + + .text-block { + cursor: pointer; + position: relative; + border-radius: 5px; + margin: 0 0 0 80px; + padding: 5px 20px; + color: $text-message-color; + width: 280px; + height: 70px; + + &.text-message { font-size: 12px; - line-height: 15px; - font-weight: $font-light; + width: inherit; + max-width: calc(100% - 80px); + height: inherit; + min-height: 60px; + &:before { + display: block; + } + .message-content { + font-size: 12px; + line-height: 15px; + font-weight: $font-light; + } } - } - &.small-message { - width: 155px; - height: 145px; - .preview { - bottom: 0; - top: initial; - height: 87px; - img { - width: 155px; + &.small-message { + width: 155px; + height: 145px; + .preview { + bottom: 0; + top: initial; height: 87px; - border-radius: 0 0 5px 5px; + img { + width: 155px; + height: 87px; + border-radius: 0 0 5px 5px; + } } } } - } - .message-header { - font-size: 12px; - padding-bottom: 5px; - .author { - font-size: 13px; - padding-right: 5px; + .message-header { + font-size: 12px; + padding-bottom: 5px; + .author { + font-size: 13px; + padding-right: 5px; + } } - } - .message-content { - font-size: 18px; - line-height: 20px; - } + .message-content { + font-size: 18px; + line-height: 20px; + } - .preview { - transition: 0s linear all; - display: inline-block; - img { - padding-top: 10px; + .preview { + transition: 0s linear all; + display: inline-block; + img { + padding-top: 10px; + width: 100%; + height: auto; + float: none !important; + } + } + + .message-time { width: 100%; - height: auto; - float: none!important; + left: 0; + font-size: 11px; + padding-top: 10px; + color: $help-text; + margin-bottom: 5px; + .post-time { + float: left; + } + .ago-time { + float: right; + } } } - .message-time { - width: 100%; - left: 0; - font-size: 11px; - padding-top: 10px; - color: $help-text; - margin-bottom: 5px; - .post-time { - float: left; - } - .ago-time { - float: right; + .line-clamp { + display: block; + display: -webkit-box; + -webkit-box-orient: vertical; + position: relative; + + line-height: 1.2; + overflow: hidden; + text-overflow: ellipsis; + padding: 0 !important; + } + + @media screen and (-webkit-min-device-pixel-ratio: 0) { + .line-clamp:after { + content: '...'; + text-align: right; + bottom: 0; + right: 0; + width: 25%; + display: block; + position: absolute; + height: calc(1em * 1.2); } } -} - - -.line-clamp -{ - display : block; - display : -webkit-box; - -webkit-box-orient : vertical; - position : relative; - - line-height : 1.2; - overflow : hidden; - text-overflow : ellipsis; - padding : 0 !important; -} - -@media screen and (-webkit-min-device-pixel-ratio:0) { - .line-clamp:after - { - content : '...'; - text-align : right; - bottom : 0; - right : 0; - width : 25%; - display : block; - position : absolute; - height : calc(1em * 1.2); + @supports (-webkit-line-clamp: 1) { + .line-clamp:after { + display: none !important; + } + } + .line-clamp-1 { + -webkit-line-clamp: 1; + height: calc(1em * 1.2 * 1); + } + .line-clamp-2 { + -webkit-line-clamp: 2; + height: calc(1em * 1.2 * 2); + } + .line-clamp-3 { + -webkit-line-clamp: 3; + height: calc(1em * 1.2 * 3); + } + .line-clamp-4 { + -webkit-line-clamp: 4; + height: calc(1em * 1.2 * 4); + } + .line-clamp-5 { + -webkit-line-clamp: 5; + height: calc(1em * 1.2 * 5); } } - -@supports (-webkit-line-clamp: 1) -{ - .line-clamp:after - { - display : none !important; - } -} -.line-clamp-1 -{ - -webkit-line-clamp : 1; - height : calc(1em * 1.2 * 1); -} -.line-clamp-2 -{ - -webkit-line-clamp : 2; - height : calc(1em * 1.2 * 2); -} -.line-clamp-3 -{ - -webkit-line-clamp : 3; - height : calc(1em * 1.2 * 3); -} -.line-clamp-4 -{ - -webkit-line-clamp : 4; - height : calc(1em * 1.2 * 4); -} -.line-clamp-5 -{ - -webkit-line-clamp : 5; - height : calc(1em * 1.2 * 5); +/deep/.feed-panel .card-body { + padding: 10px 0; } diff --git a/src/app/pages/dashboard/lineChart/lineChart.component.ts b/src/app/pages/dashboard/lineChart/lineChart.component.ts index 59479617..fa180be3 100644 --- a/src/app/pages/dashboard/lineChart/lineChart.component.ts +++ b/src/app/pages/dashboard/lineChart/lineChart.component.ts @@ -2,11 +2,10 @@ import {Component} from '@angular/core'; import {LineChartService} from './lineChart.service'; -import 'style-loader!./lineChart.scss'; - @Component({ selector: 'line-chart', - templateUrl: './lineChart.html' + templateUrl: './lineChart.html', + styleUrls: ['./lineChart.scss'] }) export class LineChart { diff --git a/src/app/pages/dashboard/lineChart/lineChart.scss b/src/app/pages/dashboard/lineChart/lineChart.scss index 3c41fa4c..805a5319 100644 --- a/src/app/pages/dashboard/lineChart/lineChart.scss +++ b/src/app/pages/dashboard/lineChart/lineChart.scss @@ -1,5 +1,7 @@ -.dashboard-line-chart { - width: 100%; - height: 340px; - margin-top: -10px; +:host { + /deep/.dashboard-line-chart { + width: 100%; + height: 340px; + margin-top: -10px; + } } diff --git a/src/app/pages/dashboard/pieChart/pieChart.component.ts b/src/app/pages/dashboard/pieChart/pieChart.component.ts index a453c58c..58ca6d4d 100644 --- a/src/app/pages/dashboard/pieChart/pieChart.component.ts +++ b/src/app/pages/dashboard/pieChart/pieChart.component.ts @@ -3,11 +3,11 @@ import {Component} from '@angular/core'; import {PieChartService} from './pieChart.service'; import 'easy-pie-chart/dist/jquery.easypiechart.js'; -import 'style-loader!./pieChart.scss'; @Component({ selector: 'pie-chart', - templateUrl: './pieChart.html' + templateUrl: './pieChart.html', + styleUrls: ['./pieChart.scss'] }) // TODO: move easypiechart to component export class PieChart { diff --git a/src/app/pages/dashboard/pieChart/pieChart.scss b/src/app/pages/dashboard/pieChart/pieChart.scss index 1dc16e99..355befba 100644 --- a/src/app/pages/dashboard/pieChart/pieChart.scss +++ b/src/app/pages/dashboard/pieChart/pieChart.scss @@ -1,6 +1,6 @@ @import "../../../theme/sass/conf/conf"; -.pie-charts { +:host /deep/.pie-charts { color: $content-text; .pie-chart-item-container { diff --git a/src/app/pages/dashboard/popularApp/popularApp.component.ts b/src/app/pages/dashboard/popularApp/popularApp.component.ts index 5f2227e1..692fc0b4 100644 --- a/src/app/pages/dashboard/popularApp/popularApp.component.ts +++ b/src/app/pages/dashboard/popularApp/popularApp.component.ts @@ -1,9 +1,9 @@ import {Component} from '@angular/core'; -import 'style-loader!./popularApp.scss'; @Component({ selector: 'popular-app', - templateUrl: './popularApp.html' + templateUrl: './popularApp.html', + styleUrls: ['./popularApp.scss'] }) export class PopularApp { diff --git a/src/app/pages/dashboard/popularApp/popularApp.scss b/src/app/pages/dashboard/popularApp/popularApp.scss index 36a7e75b..c8689827 100644 --- a/src/app/pages/dashboard/popularApp/popularApp.scss +++ b/src/app/pages/dashboard/popularApp/popularApp.scss @@ -1,6 +1,6 @@ @import "../../../theme/sass/conf/conf"; -.card.popular-app { +/deep/.card.popular-app { &>.card-body { padding: 0; } @@ -50,6 +50,6 @@ } } -.blur .card.popular-app .popular-app-img-container { +/deep/.blur .card.popular-app .popular-app-img-container { background: rgba(0, 0, 0, 0.5); } diff --git a/src/app/pages/dashboard/todo/todo.component.ts b/src/app/pages/dashboard/todo/todo.component.ts index 2daafa96..d5c31c8e 100644 --- a/src/app/pages/dashboard/todo/todo.component.ts +++ b/src/app/pages/dashboard/todo/todo.component.ts @@ -3,11 +3,10 @@ import {BaThemeConfigProvider} from '../../../theme'; import {TodoService} from './todo.service'; -import 'style-loader!./todo.scss'; - @Component({ selector: 'todo', - templateUrl: './todo.html' + templateUrl: './todo.html', + styleUrls: ['./todo.scss'] }) export class Todo { diff --git a/src/app/pages/dashboard/todo/todo.scss b/src/app/pages/dashboard/todo/todo.scss index ed8169e4..754b1b2d 100644 --- a/src/app/pages/dashboard/todo/todo.scss +++ b/src/app/pages/dashboard/todo/todo.scss @@ -1,105 +1,108 @@ @import '../../../theme/sass/conf/conf'; -input.task-todo { - margin-bottom: 8px; -} +:host /deep/.task-todo-container { -ul.todo-list { - margin: 0; - padding: 0; - .placeholder, .ui-sortable-placeholder { + input.task-todo { + margin-bottom: 8px; } - li { - margin: 0 0 -1px 0; - padding: 12px; - list-style: none; - position: relative; - border: 1px solid $input-border; - cursor: grab; - height: 42px; - i.remove-todo { - position: absolute; - cursor: pointer; - top: 0px; - right: 12px; - font-size: 32px; - transition: color 0.2s; - color: rgba($input-border, 0.5); - visibility: hidden; - line-height: 42px; - &:hover { - color: $input-border; - } - } - &:hover { - i.remove-todo { - visibility: visible; - } - } - &.checked { - .todo-text { - color: $content-text; - } - &:before { - background: $input-border !important; - } + ul.todo-list { + margin: 0; + padding: 0; + .placeholder, .ui-sortable-placeholder { } - - i.mark { - display: block; - position: absolute; - top: -1px; - left: -1px; + li { + margin: 0 0 -1px 0; + padding: 12px; + list-style: none; + position: relative; + border: 1px solid $input-border; + cursor: grab; height: 42px; - min-width: 4px; - background: $input-border; - cursor: pointer; - transition: min-width 0.3s ease-out; - } - - &.active { - i.mark { - min-width: 40px; - } - label.todo-checkbox > span { - &:before { - color: white; - content: '\f10c'; - margin-right: 20px; - transition: margin-right 0.1s ease-out; - transition-delay: 0.2s; - float: none; + i.remove-todo { + position: absolute; + cursor: pointer; + top: 0px; + right: 12px; + font-size: 32px; + transition: color 0.2s; + color: rgba($input-border, 0.5); + visibility: hidden; + line-height: 42px; + &:hover { + color: $input-border; } } - label.todo-checkbox > input:checked + span:before { - content: '\f00c'; + &:hover { + i.remove-todo { + visibility: visible; + } + } + + &.checked { + .todo-text { + color: $content-text; + } + &:before { + background: $input-border !important; + } + } + + i.mark { + display: block; + position: absolute; + top: -1px; + left: -1px; + height: 42px; + min-width: 4px; + background: $input-border; + cursor: pointer; + transition: min-width 0.3s ease-out; + } + + &.active { + i.mark { + min-width: 40px; + } + label.todo-checkbox > span { + &:before { + color: white; + content: '\f10c'; + margin-right: 20px; + transition: margin-right 0.1s ease-out; + transition-delay: 0.2s; + float: none; + } + } + label.todo-checkbox > input:checked + span:before { + content: '\f00c'; + } } } } -} -label.todo-checkbox { - width: 100%; - padding-right: 25px; - min-height: 16px; - cursor: pointer; - > span { - white-space: nowrap; - height: 16px; - &:before { - border: none; - color: $help-text; - transition: all 0.15s ease-out; + label.todo-checkbox { + width: 100%; + padding-right: 25px; + min-height: 16px; + cursor: pointer; + > span { + white-space: nowrap; + height: 16px; + &:before { + border: none; + color: $help-text; + transition: all 0.15s ease-out; + } } } + + .add-item-icon { + display: none; + } } -.add-item-icon { - display: none; -} - -.ng2, .blur { +/deep/.ng2, .blur { .task-todo-container { .todo-panel.panel { diff --git a/src/app/pages/dashboard/trafficChart/trafficChart.component.ts b/src/app/pages/dashboard/trafficChart/trafficChart.component.ts index 80d653c9..a247ccc6 100644 --- a/src/app/pages/dashboard/trafficChart/trafficChart.component.ts +++ b/src/app/pages/dashboard/trafficChart/trafficChart.component.ts @@ -3,11 +3,10 @@ import {Component} from '@angular/core'; import {TrafficChartService} from './trafficChart.service'; import * as Chart from 'chart.js'; -import 'style-loader!./trafficChart.scss'; - @Component({ selector: 'traffic-chart', - templateUrl: './trafficChart.html' + templateUrl: './trafficChart.html', + styleUrls: ['./trafficChart.scss'] }) // TODO: move chart.js to it's own component diff --git a/src/app/pages/dashboard/trafficChart/trafficChart.scss b/src/app/pages/dashboard/trafficChart/trafficChart.scss index 0a87e79e..9ea198e4 100644 --- a/src/app/pages/dashboard/trafficChart/trafficChart.scss +++ b/src/app/pages/dashboard/trafficChart/trafficChart.scss @@ -1,205 +1,202 @@ @import '../../../theme/sass/conf/conf'; -.channels-block { - width: 100%; - position: relative; -} - - -.chart-bg { - position: absolute; - width: 180px; - height: 180px; - left: 60px; - top: 60px; - background-color: transparent; - border-radius: 100px; -} - -.ng2, .blur { +/deep/ .ng2, /deep/ .blur { .traffic-chart .canvas-holder { border: 15px solid rgba(0, 0, 0, 0.2); border-radius: 150px; } - .chart-bg { background-color: rgba(0, 0, 0, 0.2); } } -.channels-info { - display: inline-block; - width: calc(100% - 370px); - margin-left: 70px; - margin-top: -20px; -} - -.small-container { - .channels-info { - display: none; - } -} - -.channels-info-item { - p { - margin-bottom: 9px; - font-size: 18px; - opacity: 0.9; - } - .channel-number { - display: inline-block; - float: right; - } -} - -.traffic-chart { - width: 300px; +:host /deep/ .channels-block { + width: 100%; position: relative; - min-height: 300px; - float: left; -} -.traffic-legend { - display: inline-block; - padding: 70px 0 0 0; - width: 160px; -} + .chart-bg { + position: absolute; + width: 180px; + height: 180px; + left: 60px; + top: 60px; + border-radius: 100px; + } -.traffic-legend ul.doughnut-legend { - li { - list-style: none; - font-size: 12px; - margin-bottom: 12px; - line-height: 16px; - position: relative; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - width: 120px; - span { - float: left; - display: inline-block; - width: 16px; - height: 16px; - margin-right: 10px; + .channels-info { + display: inline-block; + width: calc(100% - 370px); + margin-left: 70px; + margin-top: -20px; + } + + .small-container { + .channels-info { + display: none; } } -} -.canvas-holder { - display: inline-block; - width: 300px; - height: 300px; - position: relative; - float: left; -} - -.traffic-text { - width: 100%; - height: 40px; - position: absolute; - top: 50%; - left: 0; - margin-top: -24px; - line-height: 24px; - text-align: center; - font-size: 18px; - //color: $danger; - span { - display: block; - font-size: 18px; - color: $content-text; + .channels-info-item { + p { + margin-bottom: 9px; + font-size: 18px; + opacity: 0.9; + } + .channel-number { + display: inline-block; + float: right; + } } -} - -.channel-change { - display: block; - margin-bottom: 12px; -} - -.channel-progress { - height: 4px; - border-radius: 0; - width: 100%; - margin-bottom: 0; - background-color: $progress-background; - box-shadow: none; - .progress-bar { - height: 4px; - background-color: $progress-default; - box-shadow: none; - } -} - -.legend-color { - width: 30px; - height: 30px; - box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.25); - position: relative; - top: 27px; - border-radius: 15px; - left: -45px; -} - -@media (max-width: $resM) { - - .card.medium-card.traffic-panel { - height: auto; - } - - div.channels-info { - display: block; - width: calc(100% - 88px); - margin-top: -65px; - margin-bottom: 10px; - } - .traffic-chart { - position: inherit; - float: none; - margin: 0 auto; - } - .chart-bg { - left: calc(50% - 90px); - } -} - -@media (max-width: 1465px) and (min-width: 1199px) { - - .channels-info { - display: none; - } - .traffic-chart { - position: inherit; - float: none; - margin: 0 auto; - } - - .chart-bg { - left: calc(50% - 90px); - } -} - -@media (max-width: 380px) { .traffic-chart { - width: 240px; + width: 300px; + position: relative; + min-height: 300px; + float: left; + } + + .traffic-legend { + display: inline-block; + padding: 70px 0 0 0; + width: 160px; + } + + .traffic-legend ul.doughnut-legend { + li { + list-style: none; + font-size: 12px; + margin-bottom: 12px; + line-height: 16px; + position: relative; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + width: 120px; + span { + float: left; + display: inline-block; + width: 16px; + height: 16px; + margin-right: 10px; + } + } } .canvas-holder { - width: 240px; - height: 240px; + display: inline-block; + width: 300px; + height: 300px; + position: relative; + float: left; } - .chart-bg { - top: 30px; + .traffic-text { + width: 100%; + height: 40px; + position: absolute; + top: 50%; + left: 0; + margin-top: -24px; + line-height: 24px; + text-align: center; + font-size: 18px; + //color: $danger; + span { + display: block; + font-size: 18px; + color: $content-text; + } } -} -@media (max-width: 320px) { - .chart-bg { - left: 50px; - top: 50px; - width: 142px; - height: 142px; + .channel-change { + display: block; + margin-bottom: 12px; + } + + .channel-progress { + height: 4px; + border-radius: 0; + width: 100%; + margin-bottom: 0; + background-color: $progress-background; + box-shadow: none; + .progress-bar { + height: 4px; + background-color: $progress-default; + box-shadow: none; + } + } + + .legend-color { + width: 30px; + height: 30px; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.25); + position: relative; + top: 27px; + border-radius: 15px; + left: -45px; + } + + @media (max-width: $resM) { + + .card.medium-card.traffic-panel { + height: auto; + } + + div.channels-info { + display: block; + width: calc(100% - 88px); + margin-top: -65px; + margin-bottom: 10px; + } + .traffic-chart { + position: inherit; + float: none; + margin: 0 auto; + } + .chart-bg { + left: calc(50% - 90px); + } + } + + @media (max-width: 1465px) and (min-width: 1199px) { + + .channels-info { + display: none; + } + .traffic-chart { + position: inherit; + float: none; + margin: 0 auto; + } + + .chart-bg { + left: calc(50% - 90px); + } + } + + @media (max-width: 380px) { + + .traffic-chart { + width: 240px; + } + + .canvas-holder { + width: 240px; + height: 240px; + } + + .chart-bg { + top: 30px; + } + } + + @media (max-width: 320px) { + .chart-bg { + left: 50px; + top: 50px; + width: 142px; + height: 142px; + } } } diff --git a/src/app/pages/dashboard/usersMap/usersMap.component.ts b/src/app/pages/dashboard/usersMap/usersMap.component.ts index 37a7f78a..f0a23fcb 100644 --- a/src/app/pages/dashboard/usersMap/usersMap.component.ts +++ b/src/app/pages/dashboard/usersMap/usersMap.component.ts @@ -1,11 +1,11 @@ import {Component} from '@angular/core'; import {UsersMapService} from './usersMap.service'; -import 'style-loader!./usersMap.scss'; @Component({ selector: 'users-map', - templateUrl: './usersMap.html' + templateUrl: './usersMap.html', + styleUrls: ['./usersMap.scss'] }) export class UsersMap { diff --git a/src/app/pages/dashboard/usersMap/usersMap.scss b/src/app/pages/dashboard/usersMap/usersMap.scss index 2a44ada2..5d1099b6 100644 --- a/src/app/pages/dashboard/usersMap/usersMap.scss +++ b/src/app/pages/dashboard/usersMap/usersMap.scss @@ -1,4 +1,4 @@ -.dashboard-users-map { +:host /deep/.dashboard-users-map { width: 100%; height: 315px; } diff --git a/src/app/pages/editors/components/ckeditor/ckeditor.component.ts b/src/app/pages/editors/components/ckeditor/ckeditor.component.ts index 275dd249..819267a6 100644 --- a/src/app/pages/editors/components/ckeditor/ckeditor.component.ts +++ b/src/app/pages/editors/components/ckeditor/ckeditor.component.ts @@ -2,11 +2,11 @@ import { Component } from '@angular/core'; import './ckeditor.loader'; import 'ckeditor'; -import 'style-loader!./ckeditor.scss'; @Component({ selector: 'ckeditor-component', templateUrl: './ckeditor.html', + styleUrls: ['./ckeditor.scss'] }) export class Ckeditor { diff --git a/src/app/pages/editors/components/ckeditor/ckeditor.scss b/src/app/pages/editors/components/ckeditor/ckeditor.scss index 54c1e628..d6a82047 100644 --- a/src/app/pages/editors/components/ckeditor/ckeditor.scss +++ b/src/app/pages/editors/components/ckeditor/ckeditor.scss @@ -1,5 +1,5 @@ @import '../../../../theme/sass/conf/conf'; -.cke_source { +/deep/.cke_source { color: $dropdown-text!important; } diff --git a/src/app/pages/login/login.component.ts b/src/app/pages/login/login.component.ts index 92f3c65c..e6fd4c28 100644 --- a/src/app/pages/login/login.component.ts +++ b/src/app/pages/login/login.component.ts @@ -1,11 +1,10 @@ import {Component} from '@angular/core'; import {FormGroup, AbstractControl, FormBuilder, Validators} from '@angular/forms'; -import 'style-loader!./login.scss'; - @Component({ selector: 'login', templateUrl: './login.html', + styleUrls: ['./login.scss'] }) export class Login { diff --git a/src/app/pages/maps/components/bubbleMaps/bubbleMaps.component.ts b/src/app/pages/maps/components/bubbleMaps/bubbleMaps.component.ts index 6a9aa1cd..9524046d 100644 --- a/src/app/pages/maps/components/bubbleMaps/bubbleMaps.component.ts +++ b/src/app/pages/maps/components/bubbleMaps/bubbleMaps.component.ts @@ -1,11 +1,11 @@ import {Component} from '@angular/core'; import {BubbleMapsService} from './bubbleMaps.service'; -import 'style-loader!./bubbleMaps.scss'; @Component({ selector: 'bubble-maps', templateUrl: './bubbleMaps.html', + styleUrls: ['./bubbleMaps.scss'] }) export class BubbleMaps { diff --git a/src/app/pages/maps/components/bubbleMaps/bubbleMaps.scss b/src/app/pages/maps/components/bubbleMaps/bubbleMaps.scss index 43e499df..8b400a78 100644 --- a/src/app/pages/maps/components/bubbleMaps/bubbleMaps.scss +++ b/src/app/pages/maps/components/bubbleMaps/bubbleMaps.scss @@ -1,4 +1,4 @@ -.bubble-maps { +:host /deep/.bubble-maps { width: 100%; height: calc(100vh - 283px); font-size : 11px; diff --git a/src/app/pages/maps/components/leafletMaps/leafletMaps.component.ts b/src/app/pages/maps/components/leafletMaps/leafletMaps.component.ts index f17d7336..55f79819 100644 --- a/src/app/pages/maps/components/leafletMaps/leafletMaps.component.ts +++ b/src/app/pages/maps/components/leafletMaps/leafletMaps.component.ts @@ -1,11 +1,11 @@ import {Component, ElementRef} from '@angular/core'; import 'leaflet-map'; -import 'style-loader!./leafletMaps.scss'; @Component({ selector: 'leaflet-maps', - templateUrl: './leafletMaps.html' + templateUrl: './leafletMaps.html', + styleUrls: ['./leafletMaps.scss'] }) export class LeafletMaps { diff --git a/src/app/pages/maps/components/leafletMaps/leafletMaps.scss b/src/app/pages/maps/components/leafletMaps/leafletMaps.scss index 61d6df59..055f0072 100644 --- a/src/app/pages/maps/components/leafletMaps/leafletMaps.scss +++ b/src/app/pages/maps/components/leafletMaps/leafletMaps.scss @@ -1,522 +1,521 @@ -@import "~leaflet/dist/leaflet"; @import '../../../../theme/sass/conf/conf'; -.leaflet-maps { +:host /deep/ .leaflet-maps { width: 100%; height: calc(100vh - 283px); -} -/* required styles */ + /* required styles */ -.leaflet-map-pane, -.leaflet-tile, -.leaflet-marker-icon, -.leaflet-marker-shadow, -.leaflet-tile-pane, -.leaflet-tile-container, -.leaflet-overlay-pane, -.leaflet-shadow-pane, -.leaflet-marker-pane, -.leaflet-popup-pane, -.leaflet-overlay-pane svg, -.leaflet-zoom-box, -.leaflet-image-layer, -.leaflet-layer { - position: absolute; - left: 0; - top: 0; -} + .leaflet-map-pane, + .leaflet-tile, + .leaflet-marker-icon, + .leaflet-marker-shadow, + .leaflet-tile-pane, + .leaflet-tile-container, + .leaflet-overlay-pane, + .leaflet-shadow-pane, + .leaflet-marker-pane, + .leaflet-popup-pane, + .leaflet-overlay-pane svg, + .leaflet-zoom-box, + .leaflet-image-layer, + .leaflet-layer { + position: absolute; + left: 0; + top: 0; + } -.leaflet-container { - overflow: hidden; - -ms-touch-action: none; -} + .leaflet-container { + overflow: hidden; + -ms-touch-action: none; + } -.leaflet-tile, -.leaflet-marker-icon, -.leaflet-marker-shadow { - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; - -webkit-user-drag: none; -} + .leaflet-tile, + .leaflet-marker-icon, + .leaflet-marker-shadow { + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + -webkit-user-drag: none; + } -.leaflet-marker-icon, -.leaflet-marker-shadow { - display: block; -} - -/* map is broken in FF if you have max-width: 100% on tiles */ -.leaflet-container img { - max-width: none !important; -} - -/* stupid Android 2 doesn't understand "max-width: none" properly */ -.leaflet-container img.leaflet-image-layer { - max-width: 15000px !important; -} - -.leaflet-tile { - filter: inherit; - visibility: hidden; -} - -.leaflet-tile-loaded { - visibility: inherit; -} - -.leaflet-zoom-box { - width: 0; - height: 0; -} - -/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */ -.leaflet-overlay-pane svg { - -moz-user-select: none; -} - -.leaflet-tile-pane { - z-index: 2; -} - -.leaflet-objects-pane { - z-index: 3; -} - -.leaflet-overlay-pane { - z-index: 4; -} - -.leaflet-shadow-pane { - z-index: 5; -} - -.leaflet-marker-pane { - z-index: 6; -} - -.leaflet-popup-pane { - z-index: 7; -} - -.leaflet-vml-shape { - width: 1px; - height: 1px; -} - -.lvml { - behavior: url(#default#VML); - display: inline-block; - position: absolute; -} - -/* control positioning */ - -.leaflet-control { - position: relative; - z-index: 7; - pointer-events: auto; -} - -.leaflet-top, -.leaflet-bottom { - position: absolute; - z-index: 1000; - pointer-events: none; -} - -.leaflet-top { - top: 0; -} - -.leaflet-right { - right: 0; -} - -.leaflet-bottom { - bottom: 0; -} - -.leaflet-left { - left: 0; -} - -.leaflet-control { - float: left; - clear: both; -} - -.leaflet-right .leaflet-control { - float: right; -} - -.leaflet-top .leaflet-control { - margin-top: 10px; -} - -.leaflet-bottom .leaflet-control { - margin-bottom: 10px; -} - -.leaflet-left .leaflet-control { - margin-left: 10px; -} - -.leaflet-right .leaflet-control { - margin-right: 10px; -} - -/* zoom and fade animations */ - -.leaflet-fade-anim .leaflet-tile, -.leaflet-fade-anim .leaflet-popup { - opacity: 0; - transition: opacity 0.2s linear; -} - -.leaflet-fade-anim .leaflet-tile-loaded, -.leaflet-fade-anim .leaflet-map-pane .leaflet-popup { - opacity: 1; -} - -.leaflet-zoom-anim .leaflet-zoom-animated { - transition: transform 0.25s cubic-bezier(0, 0, 0.25, 1); -} - -.leaflet-zoom-anim .leaflet-tile, -.leaflet-pan-anim .leaflet-tile, -.leaflet-touching .leaflet-zoom-animated { - transition: none; -} - -.leaflet-zoom-anim .leaflet-zoom-hide { - visibility: hidden; -} - -/* cursors */ - -.leaflet-clickable { - cursor: pointer; -} - -.leaflet-container { - cursor: -webkit-grab; - cursor: -moz-grab; -} - -.leaflet-popup-pane, -.leaflet-control { - cursor: auto; -} - -.leaflet-dragging .leaflet-container, -.leaflet-dragging .leaflet-clickable { - cursor: move; - cursor: -webkit-grabbing; - cursor: -moz-grabbing; -} - -/* visual tweaks */ - -.leaflet-container { - background: #ddd; - outline: 0; -} - -.leaflet-container a { - color: #0078A8; -} - -.leaflet-container a.leaflet-active { - outline: 2px solid orange; -} - -.leaflet-zoom-box { - border: 2px dotted #38f; - background: rgba(255, 255, 255, 0.5); -} - -/* general toolbar styles */ - -.leaflet-bar { - box-shadow: 0 1px 5px rgba(0, 0, 0, 0.65); - a { - background-color: $primary-dark; - border-bottom: 1px solid #ccc; + .leaflet-marker-icon, + .leaflet-marker-shadow { display: block; - text-align: center; - text-decoration: none; - opacity: 0.8; - color: $default-text; - font-size: 17px; - width: 20px; - height: 20px; + } + + /* map is broken in FF if you have max-width: 100% on tiles */ + .leaflet-container img { + max-width: none !important; + } + + /* stupid Android 2 doesn't understand "max-width: none" properly */ + .leaflet-container img.leaflet-image-layer { + max-width: 15000px !important; + } + + .leaflet-tile { + filter: inherit; + visibility: hidden; + } + + .leaflet-tile-loaded { + visibility: inherit; + } + + .leaflet-zoom-box { + width: 0; + height: 0; + } + + /* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */ + .leaflet-overlay-pane svg { + -moz-user-select: none; + } + + .leaflet-tile-pane { + z-index: 2; + } + + .leaflet-objects-pane { + z-index: 3; + } + + .leaflet-overlay-pane { + z-index: 4; + } + + .leaflet-shadow-pane { + z-index: 5; + } + + .leaflet-marker-pane { + z-index: 6; + } + + .leaflet-popup-pane { + z-index: 7; + } + + .leaflet-vml-shape { + width: 1px; + height: 1px; + } + + .lvml { + behavior: url(#default#VML); + display: inline-block; + position: absolute; + } + + /* control positioning */ + + .leaflet-control { + position: relative; + z-index: 7; + pointer-events: auto; + } + + .leaflet-top, + .leaflet-bottom { + position: absolute; + z-index: 1000; + pointer-events: none; + } + + .leaflet-top { + top: 0; + } + + .leaflet-right { + right: 0; + } + + .leaflet-bottom { + bottom: 0; + } + + .leaflet-left { + left: 0; + } + + .leaflet-control { + float: left; + clear: both; + } + + .leaflet-right .leaflet-control { + float: right; + } + + .leaflet-top .leaflet-control { + margin-top: 10px; + } + + .leaflet-bottom .leaflet-control { + margin-bottom: 10px; + } + + .leaflet-left .leaflet-control { + margin-left: 10px; + } + + .leaflet-right .leaflet-control { + margin-right: 10px; + } + + /* zoom and fade animations */ + + .leaflet-fade-anim .leaflet-tile, + .leaflet-fade-anim .leaflet-popup { + opacity: 0; + transition: opacity 0.2s linear; + } + + .leaflet-fade-anim .leaflet-tile-loaded, + .leaflet-fade-anim .leaflet-map-pane .leaflet-popup { + opacity: 1; + } + + .leaflet-zoom-anim .leaflet-zoom-animated { + transition: transform 0.25s cubic-bezier(0, 0, 0.25, 1); + } + + .leaflet-zoom-anim .leaflet-tile, + .leaflet-pan-anim .leaflet-tile, + .leaflet-touching .leaflet-zoom-animated { + transition: none; + } + + .leaflet-zoom-anim .leaflet-zoom-hide { + visibility: hidden; + } + + /* cursors */ + + .leaflet-clickable { + cursor: pointer; + } + + .leaflet-container { + cursor: -webkit-grab; + cursor: -moz-grab; + } + + .leaflet-popup-pane, + .leaflet-control { + cursor: auto; + } + + .leaflet-dragging .leaflet-container, + .leaflet-dragging .leaflet-clickable { + cursor: move; + cursor: -webkit-grabbing; + cursor: -moz-grabbing; + } + + /* visual tweaks */ + + .leaflet-container { + background: #ddd; + outline: 0; + } + + .leaflet-container a { + color: #0078A8; + } + + .leaflet-container a.leaflet-active { + outline: 2px solid orange; + } + + .leaflet-zoom-box { + border: 2px dotted #38f; + background: rgba(255, 255, 255, 0.5); + } + + /* general toolbar styles */ + + .leaflet-bar { + box-shadow: 0 1px 5px rgba(0, 0, 0, 0.65); + a { + background-color: $primary-dark; + border-bottom: 1px solid #ccc; + display: block; + text-align: center; + text-decoration: none; + opacity: 0.8; + color: $default-text; + font-size: 17px; + width: 20px; + height: 20px; + line-height: 18px; + font-family: Lato; + font-weight: $font-thin; + &:hover { + background-color: $danger; + } + &:last-child { + border-bottom: none; + } + &.leaflet-control-zoom-out { + line-height: 16px; + } + } + } + + .leaflet-bar a.leaflet-disabled { + cursor: default; + background-color: $disabled-bg; + color: $disabled; + } + + /* zoom control */ + + .leaflet-bar .leaflet-control-zoom-in, + .leaflet-bar .leaflet-control-zoom-out { line-height: 18px; - font-family: Lato; - font-weight: $font-thin; &:hover { - background-color: $danger; - } - &:last-child { - border-bottom: none; - } - &.leaflet-control-zoom-out { - line-height: 16px; + width: 20px; + height: 20px; } } -} -.leaflet-bar a.leaflet-disabled { - cursor: default; - background-color: $disabled-bg; - color: $disabled; -} + .leaflet-control-zoom-out { + font-size: 20px; + } -/* zoom control */ + .leaflet-touch .leaflet-control-zoom-in { + font-size: 22px; + } -.leaflet-bar .leaflet-control-zoom-in, -.leaflet-bar .leaflet-control-zoom-out { - line-height: 18px; - &:hover{ - width: 20px; + .leaflet-touch .leaflet-control-zoom-out { + font-size: 24px; + } + + /* layers control */ + + .leaflet-control-layers { + box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4); + background: $default; + } + + .leaflet-control-layers-toggle { + background-image: url(/img/layers.png); + width: 36px; + height: 36px; + } + + .leaflet-retina .leaflet-control-layers-toggle { + background-image: url(/img/layers-2x.png); + background-size: 26px 26px; + } + + .leaflet-touch .leaflet-control-layers-toggle { + width: 44px; + height: 44px; + } + + .leaflet-control-layers .leaflet-control-layers-list, + .leaflet-control-layers-expanded .leaflet-control-layers-toggle { + display: none; + } + + .leaflet-control-layers-expanded .leaflet-control-layers-list { + display: block; + position: relative; + } + + .leaflet-control-layers-expanded { + padding: 6px 10px 6px 6px; + color: #333; + background: $default; + } + + .leaflet-control-layers-selector { + margin-top: 2px; + position: relative; + top: 1px; + } + + .leaflet-control-layers label { + display: block; + } + + .leaflet-control-layers-separator { + height: 0; + border-top: 1px solid #ddd; + margin: 5px -10px 5px -6px; + } + + /* attribution and scale controls */ + + .leaflet-container .leaflet-control-attribution { + background: $default; + background: rgba(255, 255, 255, 0.7); + margin: 0; + } + + .leaflet-control-attribution, + .leaflet-control-scale-line { + padding: 0 5px; + color: #333; + } + + .leaflet-control-attribution a { + text-decoration: none; + } + + .leaflet-control-attribution a:hover { + text-decoration: underline; + } + + .leaflet-container .leaflet-control-attribution, + .leaflet-container .leaflet-control-scale { + font-size: 11px; + } + + .leaflet-left .leaflet-control-scale { + margin-left: 5px; + } + + .leaflet-bottom .leaflet-control-scale { + margin-bottom: 5px; + } + + .leaflet-control-scale-line { + border: 2px solid #777; + border-top: none; + line-height: 1.1; + padding: 2px 5px 1px; + font-size: 11px; + white-space: nowrap; + overflow: hidden; + -moz-box-sizing: content-box; + box-sizing: content-box; + + background: $default; + background: rgba(255, 255, 255, 0.5); + } + + .leaflet-control-scale-line:not(:first-child) { + border-top: 2px solid #777; + border-bottom: none; + margin-top: -2px; + } + + .leaflet-control-scale-line:not(:first-child):not(:last-child) { + border-bottom: 2px solid #777; + } + + .leaflet-touch .leaflet-control-attribution, + .leaflet-touch .leaflet-control-layers, + .leaflet-touch .leaflet-bar { + box-shadow: none; + } + + .leaflet-touch .leaflet-control-layers, + .leaflet-touch .leaflet-bar { + border: none; + background-clip: padding-box; + } + + /* popup */ + + .leaflet-popup { + position: absolute; + text-align: center; + } + + .leaflet-popup-content-wrapper { + padding: 1px; + text-align: left; + } + + .leaflet-popup-content { + margin: 13px 19px; + line-height: 1.4; + color: $dropdown-text; + } + + .leaflet-popup-content p { + margin: 18px 0; + } + + .leaflet-popup-tip-container { + margin: 0 auto; + width: 40px; height: 20px; + position: relative; + overflow: hidden; + } + + .leaflet-popup-tip { + width: 17px; + height: 17px; + padding: 1px; + margin: -10px auto 0; + transform: rotate(45deg); + } + + .leaflet-popup-content-wrapper, + .leaflet-popup-tip { + background: white; + + box-shadow: 0 3px 14px rgba(0, 0, 0, 0.4); + } + + .leaflet-container a.leaflet-popup-close-button { + position: absolute; + top: 0; + right: 0; + padding: 4px 4px 0 0; + text-align: center; + width: 18px; + height: 14px; + font: 16px/14px Tahoma, Verdana, sans-serif; + color: #c3c3c3; + text-decoration: none; + font-weight: $font-bold; + background: transparent; + } + + .leaflet-container a.leaflet-popup-close-button:hover { + color: #999; + } + + .leaflet-popup-scrolled { + overflow: auto; + border-bottom: 1px solid #ddd; + border-top: 1px solid #ddd; + } + + .leaflet-oldie .leaflet-popup-content-wrapper { + zoom: 1; + } + + .leaflet-oldie .leaflet-popup-tip { + width: 24px; + margin: 0 auto; + -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)"; + filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678); + } + + .leaflet-oldie .leaflet-popup-tip-container { + margin-top: -1px; + } + + .leaflet-oldie .leaflet-control-zoom, + .leaflet-oldie .leaflet-control-layers, + .leaflet-oldie .leaflet-popup-content-wrapper, + .leaflet-oldie .leaflet-popup-tip { + border: 1px solid #999; + } + + /* div icon */ + + .leaflet-div-icon { + background: $default; + border: 1px solid #666; } } - -.leaflet-control-zoom-out { - font-size: 20px; -} - -.leaflet-touch .leaflet-control-zoom-in { - font-size: 22px; -} - -.leaflet-touch .leaflet-control-zoom-out { - font-size: 24px; -} - -/* layers control */ - -.leaflet-control-layers { - box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4); - background: $default; -} - -.leaflet-control-layers-toggle { - background-image: url(../img/layers.png); - width: 36px; - height: 36px; -} - -.leaflet-retina .leaflet-control-layers-toggle { - background-image: url(../img/layers-2x.png); - background-size: 26px 26px; -} - -.leaflet-touch .leaflet-control-layers-toggle { - width: 44px; - height: 44px; -} - -.leaflet-control-layers .leaflet-control-layers-list, -.leaflet-control-layers-expanded .leaflet-control-layers-toggle { - display: none; -} - -.leaflet-control-layers-expanded .leaflet-control-layers-list { - display: block; - position: relative; -} - -.leaflet-control-layers-expanded { - padding: 6px 10px 6px 6px; - color: #333; - background: $default; -} - -.leaflet-control-layers-selector { - margin-top: 2px; - position: relative; - top: 1px; -} - -.leaflet-control-layers label { - display: block; -} - -.leaflet-control-layers-separator { - height: 0; - border-top: 1px solid #ddd; - margin: 5px -10px 5px -6px; -} - -/* attribution and scale controls */ - -.leaflet-container .leaflet-control-attribution { - background: $default; - background: rgba(255, 255, 255, 0.7); - margin: 0; -} - -.leaflet-control-attribution, -.leaflet-control-scale-line { - padding: 0 5px; - color: #333; -} - -.leaflet-control-attribution a { - text-decoration: none; -} - -.leaflet-control-attribution a:hover { - text-decoration: underline; -} - -.leaflet-container .leaflet-control-attribution, -.leaflet-container .leaflet-control-scale { - font-size: 11px; -} - -.leaflet-left .leaflet-control-scale { - margin-left: 5px; -} - -.leaflet-bottom .leaflet-control-scale { - margin-bottom: 5px; -} - -.leaflet-control-scale-line { - border: 2px solid #777; - border-top: none; - line-height: 1.1; - padding: 2px 5px 1px; - font-size: 11px; - white-space: nowrap; - overflow: hidden; - -moz-box-sizing: content-box; - box-sizing: content-box; - - background: $default; - background: rgba(255, 255, 255, 0.5); -} - -.leaflet-control-scale-line:not(:first-child) { - border-top: 2px solid #777; - border-bottom: none; - margin-top: -2px; -} - -.leaflet-control-scale-line:not(:first-child):not(:last-child) { - border-bottom: 2px solid #777; -} - -.leaflet-touch .leaflet-control-attribution, -.leaflet-touch .leaflet-control-layers, -.leaflet-touch .leaflet-bar { - box-shadow: none; -} - -.leaflet-touch .leaflet-control-layers, -.leaflet-touch .leaflet-bar { - border: none; - background-clip: padding-box; -} - -/* popup */ - -.leaflet-popup { - position: absolute; - text-align: center; -} - -.leaflet-popup-content-wrapper { - padding: 1px; - text-align: left; -} - -.leaflet-popup-content { - margin: 13px 19px; - line-height: 1.4; - color: $dropdown-text; -} - -.leaflet-popup-content p { - margin: 18px 0; -} - -.leaflet-popup-tip-container { - margin: 0 auto; - width: 40px; - height: 20px; - position: relative; - overflow: hidden; -} - -.leaflet-popup-tip { - width: 17px; - height: 17px; - padding: 1px; - margin: -10px auto 0; - transform: rotate(45deg); -} - -.leaflet-popup-content-wrapper, -.leaflet-popup-tip { - background: white; - - box-shadow: 0 3px 14px rgba(0, 0, 0, 0.4); -} - -.leaflet-container a.leaflet-popup-close-button { - position: absolute; - top: 0; - right: 0; - padding: 4px 4px 0 0; - text-align: center; - width: 18px; - height: 14px; - font: 16px/14px Tahoma, Verdana, sans-serif; - color: #c3c3c3; - text-decoration: none; - font-weight: $font-bold; - background: transparent; -} - -.leaflet-container a.leaflet-popup-close-button:hover { - color: #999; -} - -.leaflet-popup-scrolled { - overflow: auto; - border-bottom: 1px solid #ddd; - border-top: 1px solid #ddd; -} - -.leaflet-oldie .leaflet-popup-content-wrapper { - zoom: 1; -} - -.leaflet-oldie .leaflet-popup-tip { - width: 24px; - margin: 0 auto; - -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)"; - filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678); -} - -.leaflet-oldie .leaflet-popup-tip-container { - margin-top: -1px; -} - -.leaflet-oldie .leaflet-control-zoom, -.leaflet-oldie .leaflet-control-layers, -.leaflet-oldie .leaflet-popup-content-wrapper, -.leaflet-oldie .leaflet-popup-tip { - border: 1px solid #999; -} - -/* div icon */ - -.leaflet-div-icon { - background: $default; - border: 1px solid #666; -} diff --git a/src/app/pages/maps/components/lineMaps/lineMaps.component.ts b/src/app/pages/maps/components/lineMaps/lineMaps.component.ts index 81845a61..ad748a25 100644 --- a/src/app/pages/maps/components/lineMaps/lineMaps.component.ts +++ b/src/app/pages/maps/components/lineMaps/lineMaps.component.ts @@ -1,11 +1,11 @@ import {Component} from '@angular/core'; import {LineMapsService} from './lineMaps.service'; -import 'style-loader!./lineMaps.scss'; @Component({ selector: 'line-maps', - templateUrl: './lineMaps.html' + templateUrl: './lineMaps.html', + styleUrls: ['./lineMaps.scss'] }) export class LineMaps { diff --git a/src/app/pages/maps/components/lineMaps/lineMaps.scss b/src/app/pages/maps/components/lineMaps/lineMaps.scss index d229556b..3f7dd2a6 100644 --- a/src/app/pages/maps/components/lineMaps/lineMaps.scss +++ b/src/app/pages/maps/components/lineMaps/lineMaps.scss @@ -1,4 +1,4 @@ -.line-maps { +:host /deep/.line-maps { width: 100%; height: calc(100vh - 283px); } diff --git a/src/app/pages/register/register.component.ts b/src/app/pages/register/register.component.ts index 5c7e4903..a2b66ade 100644 --- a/src/app/pages/register/register.component.ts +++ b/src/app/pages/register/register.component.ts @@ -2,11 +2,10 @@ import {Component} from '@angular/core'; import {FormGroup, AbstractControl, FormBuilder, Validators} from '@angular/forms'; import {EmailValidator, EqualPasswordsValidator} from '../../theme/validators'; -import 'style-loader!./register.scss'; - @Component({ selector: 'register', templateUrl: './register.html', + styleUrls: ['./register.scss'] }) export class Register { diff --git a/src/app/pages/tables/components/basicTables/basicTables.component.ts b/src/app/pages/tables/components/basicTables/basicTables.component.ts index 0fcdacde..be18ae28 100644 --- a/src/app/pages/tables/components/basicTables/basicTables.component.ts +++ b/src/app/pages/tables/components/basicTables/basicTables.component.ts @@ -1,10 +1,10 @@ import {Component} from '@angular/core'; -import 'style-loader!./basicTables.scss'; - @Component({ selector: 'basic-tables', - templateUrl: './basicTables.html' + templateUrl: './basicTables.html', + styleUrls: ['./basicTables.scss'] + }) export class BasicTables { diff --git a/src/app/pages/tables/components/basicTables/basicTables.scss b/src/app/pages/tables/components/basicTables/basicTables.scss index 6eaf3deb..182517de 100644 --- a/src/app/pages/tables/components/basicTables/basicTables.scss +++ b/src/app/pages/tables/components/basicTables/basicTables.scss @@ -1,3 +1,3 @@ -.status-button { +:host /deep/.status-button { width: 60px; } diff --git a/src/app/pages/tables/components/smartTables/smartTables.component.ts b/src/app/pages/tables/components/smartTables/smartTables.component.ts index 8f34c5ee..df42b30e 100644 --- a/src/app/pages/tables/components/smartTables/smartTables.component.ts +++ b/src/app/pages/tables/components/smartTables/smartTables.component.ts @@ -3,11 +3,10 @@ import { Component } from '@angular/core'; import { SmartTablesService } from './smartTables.service'; import { LocalDataSource } from 'ng2-smart-table'; -import 'style-loader!./smartTables.scss'; - @Component({ selector: 'smart-tables', templateUrl: './smartTables.html', + styleUrls: ['./smartTables.scss'] }) export class SmartTables { diff --git a/src/app/pages/tables/components/smartTables/smartTables.html b/src/app/pages/tables/components/smartTables/smartTables.html index b01cc91c..0ce665bf 100644 --- a/src/app/pages/tables/components/smartTables/smartTables.html +++ b/src/app/pages/tables/components/smartTables/smartTables.html @@ -1,7 +1,7 @@
- +
diff --git a/src/app/pages/tables/components/smartTables/smartTables.scss b/src/app/pages/tables/components/smartTables/smartTables.scss index 91672f60..7a64b010 100644 --- a/src/app/pages/tables/components/smartTables/smartTables.scss +++ b/src/app/pages/tables/components/smartTables/smartTables.scss @@ -1,84 +1,85 @@ @import "../../../../theme/sass/conf/conf"; -.widgets { - ba-card { +:host /deep/ .widgets { + .smart-table-container { width: 100%; } } -ng2-smart-table { - th, td { - border: 1px solid $border-light !important; - line-height: 35px; - vertical-align: middle; - } +:host /deep/ { + ng2-smart-table { + th, td { + border: 1px solid $border-light !important; + line-height: 35px; + vertical-align: middle; + } table tr td { - padding: 0 8px!important; - } + padding: 0 8px; + } - color: $default-text; - - input { - line-height: 1.5 !important; - } - - ng2-smart-table-cell { color: $default-text; - line-height: 35px; - } - tbody { - tr { + input { + line-height: 1.5 !important; + } + + ng2-smart-table-cell { color: $default-text; + line-height: 35px; } - tr:hover { - background: rgba(0, 0, 0, 0.03); - } - } - a.ng2-smart-sort-link { - font-size: 14px !important; - color: $default-text; - font-weight: $font-bolder; - &.sort { - font-weight: $font-bolder !important; - - &::after { - border-bottom-color: $default-text !important; + tbody { + tr { + color: $default-text; + } + tr:hover { + background: rgba(0, 0, 0, 0.03); } } - } - .ng2-smart-actions { - width: 70px; - text-align: center; - .actions { - float: none; + a.ng2-smart-sort-link { + font-size: 14px !important; + color: $default-text; + font-weight: $font-bolder; + &.sort { + font-weight: $font-bolder !important; + + &::after { + border-bottom-color: $default-text !important; + } + } + } + + .ng2-smart-actions { + width: 70px; + text-align: center; + .actions { + float: none; + text-align: center; + } + } + + .ng2-smart-actions-title-add { text-align: center; } - } - .ng2-smart-actions-title-add { - text-align: center; - } + a.ng2-smart-action, .ng2-smart-title { + font-size: 14px !important; + color: $default-text; + padding: 0 5px; + display: inline-block; - a.ng2-smart-action, .ng2-smart-title { - font-size: 14px !important; - color: $default-text; - padding: 0 5px; - display: inline-block; - - &.ng2-smart-action-add-add { - font-size: 25px !important; + &.ng2-smart-action-add-add { + font-size: 25px !important; + } } - } - nav.ng2-smart-pagination-nav { - display: flex; - justify-content: center; + nav.ng2-smart-pagination-nav { + display: flex; + justify-content: center; + } } } - diff --git a/src/app/pages/ui/components/buttons/buttons.component.ts b/src/app/pages/ui/components/buttons/buttons.component.ts index aadb2714..fb215358 100644 --- a/src/app/pages/ui/components/buttons/buttons.component.ts +++ b/src/app/pages/ui/components/buttons/buttons.component.ts @@ -1,10 +1,9 @@ import {Component} from '@angular/core'; -import 'style-loader!./buttons.scss'; - @Component({ selector: 'buttons', templateUrl: './buttons.html', + styleUrls: ['./buttons.scss'] }) export class Buttons { diff --git a/src/app/pages/ui/components/buttons/buttons.scss b/src/app/pages/ui/components/buttons/buttons.scss index a60e09b1..03fdff25 100644 --- a/src/app/pages/ui/components/buttons/buttons.scss +++ b/src/app/pages/ui/components/buttons/buttons.scss @@ -1,134 +1,136 @@ -.basic-btns { - padding-top: 8px; - margin-bottom: -8px; - h5 { - line-height: 35px; - font-size: 12px; - &.row-sm { - line-height: 30px; +:host /deep/ .widgets { + .basic-btns { + padding-top: 8px; + margin-bottom: -8px; + h5 { + line-height: 35px; + font-size: 12px; + &.row-sm { + line-height: 30px; + } + &.row-xs { + line-height: 22px; + } } - &.row-xs { - line-height: 22px; + & > .row { + padding-bottom: 4px; } } - & > .row { - padding-bottom: 4px; - } -} -.btns-row { - & > div { + .btns-row { + & > div { + margin-bottom: 12px; + } + } + + .btns-same-width-sm { + .btn { + width: 48px; + } + } + + .btns-same-width-md { + .btn { + width: 79px; + } + } + + .btns-same-width-lg { + .btn { + width: 112px; + } + } + + ul.btn-list { + margin: 0 0 0 -18px; + padding: 0; + padding-top: 6px; + clear: both; + li { + margin: 0px 0 12px 18px; + padding: 0; + list-style: none; + float: left; + } + } + + .btn-group-wrapper { margin-bottom: 12px; } -} -.btns-same-width-sm { - .btn { - width: 48px; - } -} - -.btns-same-width-md { - .btn { - width: 79px; - } -} - -.btns-same-width-lg { - .btn { - width: 112px; - } -} - -ul.btn-list { - margin: 0 0 0 -18px; - padding: 0; - padding-top: 6px; - clear: both; - li { - margin: 0px 0 12px 18px; + $btn-icon-size: 34px; + .btn-icon { + width: $btn-icon-size; + height: $btn-icon-size; + line-height: $btn-icon-size; padding: 0; - list-style: none; + text-align: center; + } + + .btn-group-example { + float: left; + margin-right: 30px; + margin-bottom: 12px; + } + + .btn-toolbar-example { float: left; } -} -.btn-group-wrapper { - margin-bottom: 12px; -} - -$btn-icon-size: 34px; -.btn-icon { - width: $btn-icon-size; - height: $btn-icon-size; - line-height: $btn-icon-size; - padding: 0; - text-align: center; -} - -.btn-group-example { - float: left; - margin-right: 30px; - margin-bottom: 12px; -} - -.btn-toolbar-example { - float: left; -} - -.progress-buttons-container { - text-align: center; - font-size: 16px; - span.button-title { - display: inline-block; - width: 100%; - line-height: 1; - font-size: 14px; - margin-bottom: 10px; - margin-top: 10px; + .progress-buttons-container { + text-align: center; + font-size: 16px; + span.button-title { + display: inline-block; + width: 100%; + line-height: 1; + font-size: 14px; + margin-bottom: 10px; + margin-top: 10px; + } + .row + .row { + margin-top: 30px; + } } - .row + .row { - margin-top: 30px; + + .button-panel { + height: 315px; + .btn { + width: 150px; + } + } + + .large-buttons-panel { + height: 202px; + } + + .button-panel.df-size-button-panel { + .btn-xs { + width: 60px; + } + .btn-sm { + width: 90px; + } + .btn-mm { + width: 120px; + } + .btn-md { + width: 150px; + } + .btn-xm { + width: 175px; + } + .btn-lg { + width: 200px; + } + } + + .button-wrapper { + text-align: center; + margin: 5px 0; + } + + .btn-group.flex-dropdown { + display: flex; } } - -.button-panel { - height: 315px; - .btn { - width: 150px; - } -} - -.large-buttons-panel { - height: 202px; -} - -.button-panel.df-size-button-panel { - .btn-xs { - width: 60px; - } - .btn-sm { - width: 90px; - } - .btn-mm { - width: 120px; - } - .btn-md { - width: 150px; - } - .btn-xm { - width: 175px; - } - .btn-lg { - width: 200px; - } -} - -.button-wrapper { - text-align: center; - margin: 5px 0; -} - -.btn-group.flex-dropdown { - display: flex; -} diff --git a/src/app/pages/ui/components/grid/grid.component.ts b/src/app/pages/ui/components/grid/grid.component.ts index 555e0c86..dd7fc0a0 100644 --- a/src/app/pages/ui/components/grid/grid.component.ts +++ b/src/app/pages/ui/components/grid/grid.component.ts @@ -1,10 +1,9 @@ import {Component} from '@angular/core'; -import 'style-loader!./grid.scss'; - @Component({ selector: 'grid', templateUrl: './grid.html', + styleUrls: ['./grid.scss'] }) export class Grid { diff --git a/src/app/pages/ui/components/grid/grid.scss b/src/app/pages/ui/components/grid/grid.scss index 2a3a4689..9eb09934 100644 --- a/src/app/pages/ui/components/grid/grid.scss +++ b/src/app/pages/ui/components/grid/grid.scss @@ -1,6 +1,6 @@ @import '../../../../theme/sass/conf/conf'; -.show-grid div[class^=col-]{ +:host /deep/.show-grid div[class^=col-]{ padding: 10px; box-sizing: border-box; div { @@ -12,7 +12,7 @@ } } -.grid-h{ +:host /deep/.grid-h{ margin-top: 40px; margin-bottom: 0; &:first-child{ diff --git a/src/app/pages/ui/components/icons/icons.component.ts b/src/app/pages/ui/components/icons/icons.component.ts index 4dba6154..6e0a74a2 100644 --- a/src/app/pages/ui/components/icons/icons.component.ts +++ b/src/app/pages/ui/components/icons/icons.component.ts @@ -2,11 +2,10 @@ import {Component} from '@angular/core'; import {IconsService} from './icons.service'; -import 'style-loader!./icons.scss'; - @Component({ selector: 'icons', templateUrl: './icons.html', + styleUrls: ['./icons.scss'] }) export class Icons { diff --git a/src/app/pages/ui/components/icons/icons.scss b/src/app/pages/ui/components/icons/icons.scss index 817083f8..c6c09991 100644 --- a/src/app/pages/ui/components/icons/icons.scss +++ b/src/app/pages/ui/components/icons/icons.scss @@ -1,123 +1,126 @@ @import '../../../../theme/sass/conf/conf'; -@mixin icon-hover($color) { - i:hover { - color: $color; - } -} +:host /deep/ .widgets { -.icons-list { - & > div { - text-align: center; - margin-bottom: 32px; - } - i { - font-weight: $font-normal; - font-size: 18px; - cursor: pointer; + @mixin icon-hover($color) { + i:hover { + color: $color; + } } - &.primary { - @include icon-hover($primary); - } - &.success { - @include icon-hover($success); - } - &.warning { - @include icon-hover($warning); - } - &.danger { - @include icon-hover($danger); - } -} + .icons-list { + & > div { + text-align: center; + margin-bottom: 32px; + } + i { + font-weight: $font-normal; + font-size: 18px; + cursor: pointer; + } -a.see-all-icons { - float: right; -} + &.primary { + @include icon-hover($primary); + } + &.success { + @include icon-hover($success); + } + &.warning { + @include icon-hover($warning); + } + &.danger { + @include icon-hover($danger); + } + } -.awesomeIcons { - height: 308px; -} + a.see-all-icons { + float: right; + } -.kameleon-row { - display: inline-block; - min-width: 102px; - width: 20%; - .kameleon-icon { - padding: 0 10px; + .awesomeIcons { + height: 308px; + } + + .kameleon-row { + display: inline-block; + min-width: 102px; + width: 20%; + .kameleon-icon { + padding: 0 10px; + img { + width: 81px; + } + } + } + + @media (max-width: 750px) { + .kameleon-row { + width: 25%; + } + } + + @media (max-width: 550px) { + .kameleon-row { + width: 33%; + } + } + + @media (max-width: 430px) { + .kameleon-row { + width: 50%; + } + } + + .kameleon-icon-tabs { + max-width: 84px; img { - width: 81px; + width: 100%; + min-width: 81px; + min-height: 81px; + } + } + + .kameleon-icon { + text-align: center; + margin: 0 auto; + img { + width: 100%; + } + span { + display: block; + text-align: center; + white-space: nowrap; + } + } + + @mixin setImgBg($color) { + img { + background: $color; + } + } + + .with-round-bg { + margin-bottom: 6px; + img { + border-radius: 50%; + margin-bottom: 4px; + } + @include setImgBg($default); + + &.success { + @include setImgBg($success); + } + &.danger { + @include setImgBg($danger); + } + &.warning { + @include setImgBg($warning); + } + &.info { + @include setImgBg($info); + } + &.primary { + @include setImgBg($primary); } } } - -@media (max-width: 750px) { - .kameleon-row { - width: 25%; - } -} - -@media (max-width: 550px) { - .kameleon-row { - width: 33%; - } -} - -@media (max-width: 430px) { - .kameleon-row { - width: 50%; - } -} - -.kameleon-icon-tabs { - max-width: 84px; - img { - width: 100%; - min-width: 81px; - min-height: 81px; - } -} - -.kameleon-icon { - text-align: center; - margin: 0 auto; - img { - width: 100%; - } - span { - display: block; - text-align: center; - white-space: nowrap; - } -} - -@mixin setImgBg($color) { - img { - background: $color; - } -} - -.with-round-bg { - margin-bottom: 6px; - img { - border-radius: 50%; - margin-bottom: 4px; - } - @include setImgBg($default); - - &.success { - @include setImgBg($success); - } - &.danger { - @include setImgBg($danger); - } - &.warning { - @include setImgBg($warning); - } - &.info { - @include setImgBg($info); - } - &.primary { - @include setImgBg($primary); - } -} diff --git a/src/app/theme/components/baAmChart/baAmChart.component.ts b/src/app/theme/components/baAmChart/baAmChart.component.ts index b653a5e6..f7d56f2a 100644 --- a/src/app/theme/components/baAmChart/baAmChart.component.ts +++ b/src/app/theme/components/baAmChart/baAmChart.component.ts @@ -12,11 +12,10 @@ import 'ammap3/ammap/maps/js/worldLow'; import {BaAmChartThemeService} from './baAmChartTheme.service'; -import 'style-loader!./baAmChart.scss'; - @Component({ selector: 'ba-am-chart', templateUrl: './baAmChart.html', + styleUrls: ['./baAmChart.scss'], providers: [BaAmChartThemeService], }) export class BaAmChart { diff --git a/src/app/theme/components/baChartistChart/baChartistChart.component.ts b/src/app/theme/components/baChartistChart/baChartistChart.component.ts index 3d18f41c..419dae93 100644 --- a/src/app/theme/components/baChartistChart/baChartistChart.component.ts +++ b/src/app/theme/components/baChartistChart/baChartistChart.component.ts @@ -8,7 +8,6 @@ import { } from '@angular/core'; import * as Chartist from 'chartist'; -import 'style-loader!./baChartistChart.scss'; @Component({ selector: 'ba-chartist-chart', diff --git a/src/app/theme/components/baChartistChart/baChartistChart.scss b/src/app/theme/components/baChartistChart/baChartistChart.scss deleted file mode 100644 index 3863db1b..00000000 --- a/src/app/theme/components/baChartistChart/baChartistChart.scss +++ /dev/null @@ -1 +0,0 @@ -@import "~chartist/dist/chartist"; diff --git a/src/app/theme/components/baFullCalendar/baFullCalendar.component.ts b/src/app/theme/components/baFullCalendar/baFullCalendar.component.ts index 3f113dd7..6d8fbc2c 100644 --- a/src/app/theme/components/baFullCalendar/baFullCalendar.component.ts +++ b/src/app/theme/components/baFullCalendar/baFullCalendar.component.ts @@ -1,12 +1,10 @@ import {Component, ViewChild, Input, Output, ElementRef, EventEmitter} from '@angular/core'; - import 'fullcalendar/dist/fullcalendar.js'; - -import 'style-loader!./baFullCalendar.scss'; +import * as jQuery from 'jquery'; @Component({ selector: 'ba-full-calendar', - templateUrl: './baFullCalendar.html', + templateUrl: './baFullCalendar.html' }) export class BaFullCalendar { diff --git a/src/app/theme/components/baFullCalendar/baFullCalendar.scss b/src/app/theme/components/baFullCalendar/baFullCalendar.scss deleted file mode 100644 index 6c51ef8e..00000000 --- a/src/app/theme/components/baFullCalendar/baFullCalendar.scss +++ /dev/null @@ -1 +0,0 @@ -@import "~fullcalendar/dist/fullcalendar"; diff --git a/src/app/theme/components/baMenu/baMenu.component.ts b/src/app/theme/components/baMenu/baMenu.component.ts index 7eee2061..fa1b6352 100644 --- a/src/app/theme/components/baMenu/baMenu.component.ts +++ b/src/app/theme/components/baMenu/baMenu.component.ts @@ -5,11 +5,10 @@ import { Subscription } from 'rxjs/Rx'; import { BaMenuService } from '../../services'; import { GlobalState } from '../../../global.state'; -import 'style-loader!./baMenu.scss'; - @Component({ selector: 'ba-menu', - templateUrl: './baMenu.html' + templateUrl: './baMenu.html', + styleUrls: ['./baMenu.scss'] }) export class BaMenu { diff --git a/src/app/theme/components/baMenu/components/baMenuItem/baMenuItem.component.ts b/src/app/theme/components/baMenu/components/baMenuItem/baMenuItem.component.ts index 8a949583..c0ba578a 100644 --- a/src/app/theme/components/baMenu/components/baMenuItem/baMenuItem.component.ts +++ b/src/app/theme/components/baMenu/components/baMenuItem/baMenuItem.component.ts @@ -1,10 +1,9 @@ import {Component, Input, Output, EventEmitter} from '@angular/core'; -import 'style-loader!./baMenuItem.scss'; - @Component({ selector: 'ba-menu-item', - templateUrl: './baMenuItem.html' + templateUrl: './baMenuItem.html', + styleUrls: ['./baMenuItem.scss'] }) export class BaMenuItem { diff --git a/src/app/theme/components/baPageTop/baPageTop.component.ts b/src/app/theme/components/baPageTop/baPageTop.component.ts index 663787d2..7b26ef91 100644 --- a/src/app/theme/components/baPageTop/baPageTop.component.ts +++ b/src/app/theme/components/baPageTop/baPageTop.component.ts @@ -2,11 +2,10 @@ import {Component} from '@angular/core'; import {GlobalState} from '../../../global.state'; -import 'style-loader!./baPageTop.scss'; - @Component({ selector: 'ba-page-top', templateUrl: './baPageTop.html', + styleUrls: ['./baPageTop.scss'] }) export class BaPageTop { diff --git a/src/app/theme/components/baPageTop/baPageTop.scss b/src/app/theme/components/baPageTop/baPageTop.scss index 46c71d46..0e7cbdae 100644 --- a/src/app/theme/components/baPageTop/baPageTop.scss +++ b/src/app/theme/components/baPageTop/baPageTop.scss @@ -1,200 +1,202 @@ @import '../../sass/conf/conf'; @import '../../components/baMsgCenter/baMsgCenter'; -.page-top { - background-color: $sidebar; - position: fixed; - z-index: 904; - box-shadow: 2px 0 3px rgba(0, 0, 0, 0.5); - height: 66px; - width: 100%; - min-width: $resMin; - padding: 0 32px 0 40px; +:host /deep/ { - .dropdown-toggle::after { - display: none; + .page-top { + background-color: $sidebar; + position: fixed; + z-index: 904; + box-shadow: 2px 0 3px rgba(0, 0, 0, 0.5); + height: 66px; + width: 100%; + min-width: $resMin; + padding: 0 32px 0 40px; + + .dropdown-toggle::after { + display: none; + } } -} -.blur { - .page-top.scrolled { - background-color: rgba(black, 0.85) + .blur { + .page-top.scrolled { + background-color: rgba(black, 0.85) + } } -} -a.al-logo { - color: $sidebar-text; - display: block; - font-size: 24px; - font-family: $font-family; - white-space: nowrap; - float: left; - outline: none !important; - line-height: 60px; + a.al-logo { + color: $sidebar-text; + display: block; + font-size: 24px; + font-family: $font-family; + white-space: nowrap; + float: left; + outline: none !important; + line-height: 60px; - span { + span { + color: $primary; + } + } + + a.al-logo:hover { color: $primary; } -} -a.al-logo:hover { - color: $primary; -} - -.user-profile { - float: right; - min-width: 230px; - margin-top: 10px; -} - -.al-user-profile { - float: right; - margin-right: 12px; - transition: all .15s ease-in-out; - padding: 0; - width: 36px; - height: 36px; - border: 0; - opacity: 1; - position: relative; - ul.profile-dropdown:after { - bottom: 100%; - right: 0; - border: solid transparent; - content: " "; - height: 0; - width: 0; - position: absolute; - pointer-events: none; - border-color: rgba(255, 255, 255, 0); - border-bottom-color: #fff; - border-width: 10px; - margin-right: 28px; + .user-profile { + float: right; + min-width: 230px; + margin-top: 10px; } - a { - display: block; - } - img { - width: 45px; - height: 45px; - border-radius: 50%; - } -} -a.refresh-data { - color: $sidebar-text; - font-size: 13px; - text-decoration: none; - font-weight: $font-normal; - float: right; - margin-top: 13px; - margin-right: 26px; - - &:hover { - color: $warning !important; - } -} - -a.collapse-menu-link { - font-size: 31px; - cursor: pointer; - display: block; - text-decoration: none; - line-height: 42px; - color: $sidebar-text; - padding: 0; - float: left; - margin: 11px 0 0 25px; - - &:hover { - text-decoration: none; - color: $warning; - } -} - -.al-skin-dropdown { - float: right; - margin-top: 14px; - margin-right: 26px; - - .tpl-skin-panel { - max-height: 300px; - overflow-y: scroll; - overflow-x: hidden; - } -} - -.icon-palette { - display: inline-block; - width: 14px; - height: 13px; - @include bg('theme/palette.png'); - background-size: cover; -} - -.search { - text-shadow: none; - font-size: 13px; - line-height: 25px; - transition: all 0.5s ease; - white-space: nowrap; - overflow: hidden; - width: 162px; - float: left; - margin: 20px 0 0 30px; - - label { - cursor: pointer; - } - i { - width: 16px; - display: inline-block; - cursor: pointer; - padding-left: 1px; - font-size: 16px; - margin-right: 13px; - } - input { - color: $sidebar-text; - background: none; - border: none; - outline: none; - width: 120px; + .al-user-profile { + float: right; + margin-right: 12px; + transition: all .15s ease-in-out; padding: 0; - margin: 0 0 0 -3px; - height: 27px; + width: 36px; + height: 36px; + border: 0; + opacity: 1; + position: relative; + ul.profile-dropdown:after { + bottom: 100%; + right: 0; + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; + pointer-events: none; + border-color: rgba(255, 255, 255, 0); + border-bottom-color: #fff; + border-width: 10px; + margin-right: 28px; + } + a { + display: block; + } + img { + width: 45px; + height: 45px; + border-radius: 50%; + } } -} -@media screen and (max-width: $resS) { - .search { - display: none; - } -} - -@media screen and (max-width: $resXS) { - .page-top { - padding: 0 20px; - } -} - -@media (max-width: $resXXS) { - .user-profile{ - min-width: 136px; - } a.refresh-data { - margin-right: 10px; + color: $sidebar-text; + font-size: 13px; + text-decoration: none; + font-weight: $font-normal; + float: right; + margin-top: 13px; + margin-right: 26px; + + &:hover { + color: $warning !important; + } } + a.collapse-menu-link { - margin-left: 10px; + font-size: 31px; + cursor: pointer; + display: block; + text-decoration: none; + line-height: 42px; + color: $sidebar-text; + padding: 0; + float: left; + margin: 11px 0 0 25px; + + &:hover { + text-decoration: none; + color: $warning; + } } .al-skin-dropdown { - display: none; + float: right; + margin-top: 14px; + margin-right: 26px; + + .tpl-skin-panel { + max-height: 300px; + overflow-y: scroll; + overflow-x: hidden; + } + } + + .icon-palette { + display: inline-block; + width: 14px; + height: 13px; + @include bg('theme/palette.png'); + background-size: cover; + } + + .search { + text-shadow: none; + font-size: 13px; + line-height: 25px; + transition: all 0.5s ease; + white-space: nowrap; + overflow: hidden; + width: 162px; + float: left; + margin: 20px 0 0 30px; + + label { + cursor: pointer; + } + i { + width: 16px; + display: inline-block; + cursor: pointer; + padding-left: 1px; + font-size: 16px; + margin-right: 13px; + } + input { + color: $sidebar-text; + background: none; + border: none; + outline: none; + width: 120px; + padding: 0; + margin: 0 0 0 -3px; + height: 27px; + } + } + + @media screen and (max-width: $resS) { + .search { + display: none; + } + } + + @media screen and (max-width: $resXS) { + .page-top { + padding: 0 20px; + } + } + + @media (max-width: $resXXS) { + .user-profile { + min-width: 136px; + } + a.refresh-data { + margin-right: 10px; + } + a.collapse-menu-link { + margin-left: 10px; + } + + .al-skin-dropdown { + display: none; + } + } + + .profile-toggle-link { + cursor: pointer; } } - -.profile-toggle-link{ - cursor: pointer; -} - diff --git a/src/app/theme/components/baSidebar/baSidebar.component.ts b/src/app/theme/components/baSidebar/baSidebar.component.ts index c80e1ee6..bd632eaa 100644 --- a/src/app/theme/components/baSidebar/baSidebar.component.ts +++ b/src/app/theme/components/baSidebar/baSidebar.component.ts @@ -2,11 +2,10 @@ import {Component, ElementRef, HostListener} from '@angular/core'; import {GlobalState} from '../../../global.state'; import {layoutSizes} from '../../../theme'; -import 'style-loader!./baSidebar.scss'; - @Component({ selector: 'ba-sidebar', - templateUrl: './baSidebar.html' + templateUrl: './baSidebar.html', + styleUrls: ['./baSidebar.scss'] }) export class BaSidebar { public menuHeight:number; diff --git a/src/app/theme/components/baSidebar/baSidebar.scss b/src/app/theme/components/baSidebar/baSidebar.scss index 29920784..b042835f 100644 --- a/src/app/theme/components/baSidebar/baSidebar.scss +++ b/src/app/theme/components/baSidebar/baSidebar.scss @@ -4,300 +4,303 @@ $sidebar-scroll-width: 4px; $angle-left: "\f100"; $angle-right: "\f101"; -.al-sidebar { - width: $sidebar-width; - top: $top-height; - left: 0; - z-index: 1001; - display: block; - min-height: 100%; - background-color: $sidebar; - height: 100%; - position: fixed; -} +:host /deep/{ -.al-sidebar-list { - margin: 0; - overflow: hidden; - padding: 18px 0 0 0; - list-style: none; -} - -.al-sidebar-sublist .subitem-submenu-list { - padding-left: 15px; -} - -.subitem-submenu-link { - .fa { - top: 7px; - } -} - -.al-sidebar-list-item { - display: block; - position: relative; - float: none; - padding: 0; - &.selected:not(.with-sub-menu) { - background-color: $primary; - a.al-sidebar-list-link { - color: $sidebar-text; - b { - color: $sidebar-text; - } - } - } -} - -.ba-sidebar-item-expanded { - > ul.al-sidebar-sublist { - display: block!important; - } - -} - -.al-sidebar-list-item, .ba-sidebar-sublist-item { - &.ba-sidebar-item-expanded { - > .al-sidebar-list-link { - b { - transform: rotate(180deg); - } - } - - > .al-sidebar-sublist { - display: block; - } - } -} - -a.al-sidebar-list-link { - display: block; - height: 42px; - padding-left: 18px; - text-shadow: none; - font-size: 13px; - text-decoration: none; - color: $sidebar-text; - line-height: 42px; - white-space: nowrap; - overflow: hidden; - cursor: pointer; - &:hover { - color: $primary; - b { - color: $primary; - } - } - i { - margin-right: 18px; - width: 16px; - display: inline-block; - } - b { + .al-sidebar { + width: $sidebar-width; + top: $top-height; + left: 0; + z-index: 1001; display: block; - opacity: 1; - width: 14px; - height: 14px; - line-height: 14px; - text-shadow: none; - font-size: 18px; - position: absolute; - right: 10px; - top: 12px; - padding: 0; - text-align: center; - color: $sidebar-text; - transition: transform 0.2s linear; - } -} - -.slimScrollBar, .slimScrollRail { - border-radius: 0px !important; - width: $sidebar-scroll-width !important; - left: $sidebar-width - $sidebar-scroll-width; -} - -@mixin layout-collapsed() { - .al-main { - margin-left: 50px; + min-height: 100%; + background-color: $sidebar; + height: 100%; + position: fixed; } - .al-footer { - padding-left: 83px + .al-sidebar-list { + margin: 0; + overflow: hidden; + padding: 18px 0 0 0; + list-style: none; } -} -@mixin default-sublist() { - padding: 0; - list-style: none; - position: relative; - display: none; - &.expanded { - display: block; - } - > ba-menu-item > li { + .al-sidebar-sublist .subitem-submenu-list { + padding-left: 15px; + } + + .subitem-submenu-link { + .fa { + top: 7px; + } + } + + .al-sidebar-list-item { display: block; + position: relative; float: none; padding: 0; - border-bottom: none; - position: relative; - a { - display: block; - text-shadow: none; - font-size: 13px; - text-decoration: none; - color: $sidebar-text; - padding-left: 52px; - height: auto; - line-height: 29px; - &:hover { + &.selected:not(.with-sub-menu) { + background-color: $primary; + a.al-sidebar-list-link { + color: $sidebar-text; + b { + color: $sidebar-text; + } + } + } + } + + .ba-sidebar-item-expanded { + > ul.al-sidebar-sublist { + display: block !important; + } + + } + + .al-sidebar-list-item, .ba-sidebar-sublist-item { + &.ba-sidebar-item-expanded { + > .al-sidebar-list-link { + b { + transform: rotate(180deg); + } + } + + > .al-sidebar-sublist { + display: block; + } + } + } + + a.al-sidebar-list-link { + display: block; + height: 42px; + padding-left: 18px; + text-shadow: none; + font-size: 13px; + text-decoration: none; + color: $sidebar-text; + line-height: 42px; + white-space: nowrap; + overflow: hidden; + cursor: pointer; + &:hover { + color: $primary; + b { color: $primary; } } - &.selected:not(.with-sub-menu) > a { - border: none; - background-color: $primary; - &:hover { - color: $sidebar-text; - } + i { + margin-right: 18px; + width: 16px; + display: inline-block; } - - } -} - -.al-sidebar-sublist { - @include default-sublist(); -} - -.sidebar-hover-elem{ - width: $sidebar-scroll-width; - background: $primary; - position: absolute; - top: -150px; - left: $sidebar-width - $sidebar-scroll-width; - transition: all 0.5s ease; - transition-property: top, height; - height: 42px; - display: block; -} - -.sidebar-select-elem { - display: block; - top: 94px; -} - -@mixin sidebar-collapsed() { - .al-sidebar { - width: 52px; - - .fa-angle-down, .fa-angle-up { - opacity: 0; - } - - .al-sidebar-sublist { - position: absolute; - top: -1px; - left: 52px; - @include bg-translucent-dark(0.8); - width: 0; + b { display: block; - overflow: hidden; - transition: width 0.5s ease; - &.slide-right { - width: 135px; + opacity: 1; + width: 14px; + height: 14px; + line-height: 14px; + text-shadow: none; + font-size: 18px; + position: absolute; + right: 10px; + top: 12px; + padding: 0; + text-align: center; + color: $sidebar-text; + transition: transform 0.2s linear; + } + } + + .slimScrollBar, .slimScrollRail { + border-radius: 0px !important; + width: $sidebar-scroll-width !important; + left: $sidebar-width - $sidebar-scroll-width; + } + + @mixin layout-collapsed() { + .al-main { + margin-left: 50px; + } + + .al-footer { + padding-left: 83px + } + } + + @mixin default-sublist() { + padding: 0; + list-style: none; + position: relative; + display: none; + &.expanded { + display: block; + } + > ba-menu-item > li { + display: block; + float: none; + padding: 0; + border-bottom: none; + position: relative; + a { + display: block; + text-shadow: none; + font-size: 13px; + text-decoration: none; + color: $sidebar-text; + padding-left: 52px; + height: auto; + line-height: 29px; + &:hover { + color: $primary; + } } - &:before { - display: none; + &.selected:not(.with-sub-menu) > a { + border: none; + background-color: $primary; + &:hover { + color: $sidebar-text; + } } - li { + + } + } + + .al-sidebar-sublist { + @include default-sublist(); + } + + .sidebar-hover-elem { + width: $sidebar-scroll-width; + background: $primary; + position: absolute; + top: -150px; + left: $sidebar-width - $sidebar-scroll-width; + transition: all 0.5s ease; + transition-property: top, height; + height: 42px; + display: block; + } + + .sidebar-select-elem { + display: block; + top: 94px; + } + + @mixin sidebar-collapsed() { + .al-sidebar { + width: 52px; + + .fa-angle-down, .fa-angle-up { + opacity: 0; + } + + .al-sidebar-sublist { + position: absolute; + top: -1px; + left: 52px; + @include bg-translucent-dark(0.8); + width: 0; + display: block; + overflow: hidden; + transition: width 0.5s ease; + &.slide-right { + width: 135px; + } &:before { display: none; } - a { - padding-left: 18px; - padding-right: 18px; - min-width: 130px; - white-space: nowrap; + li { + &:before { + display: none; + } + a { + padding-left: 18px; + padding-right: 18px; + min-width: 130px; + white-space: nowrap; + } } } - } + .sidebar-hover-elem, .sidebar-select-elem { + left: 48px; + } + } + } + + @mixin sidebar-hidden() { + .al-sidebar { + width: 0; + } .sidebar-hover-elem, .sidebar-select-elem { - left: 48px; + display: none; } } -} -@mixin sidebar-hidden() { - .al-sidebar { - width: 0; - } - .sidebar-hover-elem, .sidebar-select-elem { - display: none; - } -} + @mixin sidebar-overlap() { + .al-sidebar { + width: $sidebar-width; + @include bg-translucent-dark(0.75); + transition: width 0.5s ease; -@mixin sidebar-overlap() { - .al-sidebar { - width: $sidebar-width; - @include bg-translucent-dark(0.75); - transition: width 0.5s ease; + .fa-angle-down, .fa-angle-up { + opacity: 1; + } - .fa-angle-down, .fa-angle-up { - opacity: 1; - } + .al-sidebar-sublist { + @include default-sublist(); + top: auto; + left: auto; + background: none; + width: auto; + overflow: visible; + transition: none; + } - .al-sidebar-sublist { - @include default-sublist(); - top: auto; - left: auto; - background: none; - width: auto; - overflow: visible; - transition: none; - } - - .sidebar-hover-elem, .sidebar-select-elem { - left: $sidebar-width - 4; - transition: left 0.5s ease; + .sidebar-hover-elem, .sidebar-select-elem { + left: $sidebar-width - 4; + transition: left 0.5s ease; + } } } -} -.menu-collapsed { - .slimScrollBar, .slimScrollRail { - display: none!important; - } -} - -@media (min-width: 1200px) { .menu-collapsed { + .slimScrollBar, .slimScrollRail { + display: none !important; + } + } + + @media (min-width: 1200px) { + .menu-collapsed { + @include layout-collapsed(); + } + } + + @media (min-width: $resXS + 1) { + .menu-collapsed { + @include sidebar-collapsed(); + } + } + + @media (max-width: 1200px) and (min-width: $resXS) { @include layout-collapsed(); } -} -@media (min-width: $resXS + 1) { - .menu-collapsed { - @include sidebar-collapsed(); - } -} - -@media (max-width: 1200px) and (min-width: $resXS) { - @include layout-collapsed(); -} - -@media (max-width: 1200px) { - @include sidebar-overlap(); -} - -@media (max-width: $resXS) { - .menu-collapsed { - @include sidebar-hidden(); - } - .al-main { - margin-left: 0; - } - .al-footer { - padding-left: 0; + @media (max-width: 1200px) { + @include sidebar-overlap(); + } + + @media (max-width: $resXS) { + .menu-collapsed { + @include sidebar-hidden(); + } + .al-main { + margin-left: 0; + } + .al-footer { + padding-left: 0; + } } } diff --git a/src/app/theme/sass/_icons.scss b/src/app/theme/sass/_icons.scss index 40b8d264..76456977 100644 --- a/src/app/theme/sass/_icons.scss +++ b/src/app/theme/sass/_icons.scss @@ -13,7 +13,7 @@ @mixin svg-icon-class($iconName, $width:'', $height:'') { .#{'i-' + $iconName} { - @include svg-icon($images-root + $iconName + '.svg', $width, $height); + @include svg-icon('/assets/img/' + $iconName + '.svg', $width, $height); } } diff --git a/src/app/theme/sass/_layout.scss b/src/app/theme/sass/_layout.scss index df07d1c0..df4b2a75 100644 --- a/src/app/theme/sass/_layout.scss +++ b/src/app/theme/sass/_layout.scss @@ -160,11 +160,12 @@ a { } .icon-up { - @include bg-nr('arrow-green-up.svg'); + //@include bg-nr('arrow-green-up.svg'); + background: url('/assets/img/arrow-green-up.svg') no-repeat 0 0; } .icon-down { - @include bg-nr('arrow-red-down.svg'); + background: url('/assets/img/arrow-red-down.svg') no-repeat 0 0; } .disable-text-selection { diff --git a/src/app/theme/sass/_socicon.scss b/src/app/theme/sass/_socicon.scss index 927bed8f..5376aa7d 100644 --- a/src/app/theme/sass/_socicon.scss +++ b/src/app/theme/sass/_socicon.scss @@ -1,11 +1,11 @@ @font-face { font-family: 'socicon'; - src: url('#{$fonts-root}socicon.eot'); - src: url('#{$fonts-root}socicon.eot?#iefix') format('embedded-opentype'), - url('#{$fonts-root}socicon.woff') format('woff'), - url('#{$fonts-root}socicon.woff2') format('woff2'), - url('#{$fonts-root}socicon.ttf') format('truetype'), - url('#{$fonts-root}socicon.svg#sociconregular') format('svg'); + src: url('/assets#{$fonts-root}socicon.eot'); + src: url('/assets#{$fonts-root}socicon.eot?#iefix') format('embedded-opentype'), + url('/assets#{$fonts-root}socicon.woff') format('woff'), + url('/assets#{$fonts-root}socicon.woff2') format('woff2'), + url('/assets#{$fonts-root}socicon.ttf') format('truetype'), + url('/assets#{$fonts-root}socicon.svg#sociconregular') format('svg'); font-weight: $font-normal; font-style: normal; text-transform: initial; @@ -67,4 +67,4 @@ .socicon-behace { @include socicon($behace-color, "H"); -} \ No newline at end of file +} diff --git a/src/app/theme/sass/bootstrap-overrides/_card.scss b/src/app/theme/sass/bootstrap-overrides/_card.scss index 40be447f..d18f0b85 100644 --- a/src/app/theme/sass/bootstrap-overrides/_card.scss +++ b/src/app/theme/sass/bootstrap-overrides/_card.scss @@ -2,7 +2,7 @@ $card-title-height: 44px; $card-header-font-size: 16px; .card.card-blur { - $blurredBgUrl: $images-root + 'blur-bg-blurred.jpg'; + $blurredBgUrl: '/img/blur-bg-blurred.jpg'; background: url($blurredBgUrl); transition: none; background-attachment: fixed; diff --git a/src/app/theme/sass/conf/_mixins.scss b/src/app/theme/sass/conf/_mixins.scss index 37be10e8..ab21db06 100644 --- a/src/app/theme/sass/conf/_mixins.scss +++ b/src/app/theme/sass/conf/_mixins.scss @@ -46,7 +46,7 @@ } @mixin bg-image($relativeUrl) { - background-image: url($images-root + $relativeUrl); + background-image: url($assets-root + $images-root + $relativeUrl); } @mixin bg-translucent-dark($opacity) { diff --git a/src/app/theme/sass/conf/_variables.scss b/src/app/theme/sass/conf/_variables.scss index 32111079..d58e3a5f 100644 --- a/src/app/theme/sass/conf/_variables.scss +++ b/src/app/theme/sass/conf/_variables.scss @@ -21,9 +21,9 @@ $large-card-height: 974px; $default-animation-duration: 0.2s; $default-animation-style: ease-out; -$assets-root: 'assets/'; -$images-root: $assets-root + 'img/'; -$fonts-root: $assets-root + 'fonts/'; +$assets-root: '/assets'; +$images-root: '/img/'; +$fonts-root: '/fonts/'; $font-thin: 100; $font-light: 300; $font-normal: 400; diff --git a/src/app/theme/sass/conf/colorSchemes/_ng2.scss b/src/app/theme/sass/conf/colorSchemes/_ng2.scss index 1d895829..859166dd 100644 --- a/src/app/theme/sass/conf/colorSchemes/_ng2.scss +++ b/src/app/theme/sass/conf/colorSchemes/_ng2.scss @@ -65,7 +65,7 @@ $hoverlink: darken($activelink, 20%); @mixin body-bg() { background-color: $body-bg; - $mainBgUrl: $images-root + 'sky-bg.jpg'; + $mainBgUrl: $assets-root + $images-root + 'sky-bg.jpg'; &::before { content: ''; diff --git a/src/custom-typings.d.ts b/src/custom-typings.d.ts deleted file mode 100644 index 80388d64..00000000 --- a/src/custom-typings.d.ts +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Custom Type Definitions - * When including 3rd party modules you also need to include the type definition for the module - * if they don't provide one within the module. You can try to install it with @types - npm install @types/node - npm install @types/lodash - * If you can't find the type definition in the registry we can make an ambient/global definition in - * this file for now. For example - declare module 'my-module' { - export function doesSomething(value: string): string; - } - * If you are using a CommonJS module that is using module.exports then you will have to write your - * types using export = yourObjectOrFunction with a namespace above it - * notice how we have to create a namespace that is equal to the function we're assigning the export to - declare module 'jwt-decode' { - function jwtDecode(token: string): any; - namespace jwtDecode {} - export = jwtDecode; - } - * - * If you're prototying and you will fix the types later you can also declare it as type any - * - declare var assert: any; - declare var _: any; - declare var $: any; - * - * If you're importing a module that uses Node.js modules which are CommonJS you need to import as - * in the files such as main.browser.ts or any file within app/ - * - import * as _ from 'lodash' - * You can include your type definitions in this file until you create one for the @types - * - */ - -interface JQuery { - easyPieChart; -} - -declare var GoogleMapsLoader:any; -declare var L:any; -declare var AmCharts:any; -declare var Chart:any; -declare var Chartist:any; - -// support NodeJS modules without type definitions -declare module '*'; - -// Extra variables that live on Global that will be replaced by webpack DefinePlugin -declare var ENV: string; -declare var HMR: boolean; -declare var System: SystemJS; - -interface SystemJS { - import: (path?: string) => Promise; -} - -interface GlobalEnvironment { - ENV: string; - HMR: boolean; - SystemJS: SystemJS; - System: SystemJS; -} - -interface Es6PromiseLoader { - (id: string): (exportName?: string) => Promise; -} - -type FactoryEs6PromiseLoader = () => Es6PromiseLoader; -type FactoryPromise = () => Promise; - -type AsyncRoutes = { - [component: string]: Es6PromiseLoader | - Function | - FactoryEs6PromiseLoader | - FactoryPromise -}; - - -type IdleCallbacks = Es6PromiseLoader | - Function | - FactoryEs6PromiseLoader | - FactoryPromise ; - -interface WebpackModule { - hot: { - data?: any, - idle: any, - accept(dependencies?: string | string[], callback?: (updatedDependencies?: any) => void): void; - decline(deps?: any | string | string[]): void; - dispose(callback?: (data?: any) => void): void; - addDisposeHandler(callback?: (data?: any) => void): void; - removeDisposeHandler(callback?: (data?: any) => void): void; - check(autoApply?: any, callback?: (err?: Error, outdatedModules?: any[]) => void): void; - apply(options?: any, callback?: (err?: Error, outdatedModules?: any[]) => void): void; - status(callback?: (status?: string) => void): void | string; - removeStatusHandler(callback?: (status?: string) => void): void; - }; -} - - -interface WebpackRequire { - (id: string): any; - (paths: string[], callback: (...modules: any[]) => void): void; - ensure(ids: string[], callback: (req: WebpackRequire) => void, chunkName?: string): void; - context(directory: string, useSubDirectories?: boolean, regExp?: RegExp): WebpackContext; -} - -interface WebpackContext extends WebpackRequire { - keys(): string[]; -} - -interface ErrorStackTraceLimit { - stackTraceLimit: number; -} - - -// Extend typings -interface NodeRequire extends WebpackRequire {} -interface ErrorConstructor extends ErrorStackTraceLimit {} -interface NodeRequireFunction extends Es6PromiseLoader {} -interface NodeModule extends WebpackModule {} -interface Global extends GlobalEnvironment {} diff --git a/src/desktop.ts b/src/desktop.ts deleted file mode 100644 index 67267913..00000000 --- a/src/desktop.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { app, BrowserWindow } from 'electron'; - -let win: Electron.BrowserWindow; - -function createWindow () { - // Create the browser window. - win = new BrowserWindow({width: 800, height: 600}); - - // and load the index.html of the app. - win.loadURL(`file://${__dirname}/index.html`); - - // Open the DevTools. - // win.webContents.openDevTools(); - - // Emitted when the window is closed. - win.on('closed', () => { - // Dereference the window object, usually you would store windows - // in an array if your app supports multi windows, this is the time - // when you should delete the corresponding element. - win = null; - }); -} - -// This method will be called when Electron has finished -// initialization and is ready to create browser windows. -// Some APIs can only be used after this event occurs. -app.on('ready', createWindow); - -// Quit when all windows are closed. -app.on('window-all-closed', () => { - // On macOS it is common for applications and their menu bar - // to stay active until the user quits explicitly with Cmd + Q - if (process.platform !== 'darwin') { - app.quit(); - } -}); - -app.on('activate', () => { - // On macOS it's common to re-create a window in the app when the - // dock icon is clicked and there are no other windows open. - if (win === null) { - createWindow(); - } -}); - -// In this file you can include the rest of your app's specific main process -// code. You can also put them in separate files and require them here. diff --git a/src/environments/environment.prod.ts b/src/environments/environment.prod.ts new file mode 100644 index 00000000..c9669790 --- /dev/null +++ b/src/environments/environment.prod.ts @@ -0,0 +1,3 @@ +export const environment = { + production: true, +}; diff --git a/src/environments/environment.ts b/src/environments/environment.ts new file mode 100644 index 00000000..cf6bba0d --- /dev/null +++ b/src/environments/environment.ts @@ -0,0 +1,8 @@ +// The file contents for the current environment will overwrite these during build. +// The build system defaults to the dev environment which uses `environment.ts`, but if you do +// `ng build --env=prod` then `environment.prod.ts` will be used instead. +// The list of which env maps to which file can be found in `.angular-cli.json`. + +export const environment = { + production: false, +}; diff --git a/src/favicon.ico b/src/favicon.ico new file mode 100644 index 00000000..8081c7ce Binary files /dev/null and b/src/favicon.ico differ diff --git a/src/index.html b/src/index.html index 2d3b315e..70f110be 100644 --- a/src/index.html +++ b/src/index.html @@ -5,18 +5,18 @@ - <%= htmlWebpackPlugin.options.title %> + + ng2-admin - + - <% if (webpackConfig.htmlElements.headTags) { %> - - <%= webpackConfig.htmlElements.headTags %> - <% } %> + + + + - - + @@ -28,10 +28,10 @@
-<% if (htmlWebpackPlugin.options.metadata.isDevServer && htmlWebpackPlugin.options.metadata.HMR !== true) { %> - - -<% } %> + + + + diff --git a/src/main.browser.aot.ts b/src/main.browser.aot.ts deleted file mode 100644 index 0febbee0..00000000 --- a/src/main.browser.aot.ts +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Angular bootstraping - */ -import { platformBrowser } from '@angular/platform-browser'; -import { decorateModuleRef } from './app/environment'; -/* - * App Module - * our top level module that holds all of our components - */ -import { AppModuleNgFactory } from '../compiled/src/app/app.module.ngfactory'; - -/* - * Bootstrap our Angular app with a top level NgModule - */ -export function main(): Promise { - return platformBrowser() - .bootstrapModuleFactory(AppModuleNgFactory) - .then(decorateModuleRef) - .catch(err => console.error(err)); -} - -export function bootstrapDomReady() { - document.addEventListener('DOMContentLoaded', main); -} - -bootstrapDomReady(); diff --git a/src/main.browser.ts b/src/main.browser.ts deleted file mode 100644 index 8022029a..00000000 --- a/src/main.browser.ts +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Angular bootstraping - */ -import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; -import { decorateModuleRef } from './app/environment'; -import { bootloader } from '@angularclass/hmr'; -/* - * App Module - * our top level module that holds all of our components - */ -import { AppModule } from './app'; - -/* - * Bootstrap our Angular app with a top level NgModule - */ -export function main(): Promise { - return platformBrowserDynamic() - .bootstrapModule(AppModule) - .then(decorateModuleRef) - .catch(err => console.error(err)); - -} - - -bootloader(main); diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 00000000..541acb2b --- /dev/null +++ b/src/main.ts @@ -0,0 +1,6 @@ +import { enableProdMode } from '@angular/core'; +import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; + +import { AppModule } from './app/app.module'; + +platformBrowserDynamic().bootstrapModule(AppModule); diff --git a/src/package.json b/src/package.json deleted file mode 100644 index 7c268619..00000000 --- a/src/package.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "name" : "electron-app", - "version" : "0.0.1", - "main" : "main.js" -} diff --git a/src/polyfills.browser.ts b/src/polyfills.browser.ts deleted file mode 100644 index a4037ba9..00000000 --- a/src/polyfills.browser.ts +++ /dev/null @@ -1,45 +0,0 @@ -// Polyfills - -// import 'ie-shim'; // Internet Explorer 9 support - - -// import 'core-js/es6'; -// Added parts of es6 which are necessary for your project or your browser support requirements. -import 'core-js/es6/symbol'; -import 'core-js/es6/object'; -import 'core-js/es6/function'; -import 'core-js/es6/parse-int'; -import 'core-js/es6/parse-float'; -import 'core-js/es6/number'; -import 'core-js/es6/math'; -import 'core-js/es6/string'; -import 'core-js/es6/date'; -import 'core-js/es6/array'; -import 'core-js/es6/regexp'; -import 'core-js/es6/map'; -import 'core-js/es6/set'; -import 'core-js/es6/weak-map'; -import 'core-js/es6/weak-set'; -import 'core-js/es6/typed'; -import 'core-js/es6/reflect'; -// see issue https://github.com/AngularClass/angular2-webpack-starter/issues/709 -// import 'core-js/es6/promise'; - -import 'core-js/es7/reflect'; -import 'zone.js/dist/zone'; - -// Typescript emit helpers polyfill -import 'ts-helpers'; - -if ('production' === ENV) { - // Production - - -} else { - // Development - - Error.stackTraceLimit = Infinity; - - require('zone.js/dist/long-stack-trace-zone'); - -} diff --git a/src/polyfills.ts b/src/polyfills.ts new file mode 100644 index 00000000..53bdaf1b --- /dev/null +++ b/src/polyfills.ts @@ -0,0 +1,68 @@ +/** + * This file includes polyfills needed by Angular and is loaded before the app. + * You can add your own extra polyfills to this file. + * + * This file is divided into 2 sections: + * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. + * 2. Application imports. Files imported after ZoneJS that should be loaded before your main + * file. + * + * The current setup is for so-called "evergreen" browsers; the last versions of browsers that + * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), + * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. + * + * Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html + */ + +/*************************************************************************************************** + * BROWSER POLYFILLS + */ + +/** IE9, IE10 and IE11 requires all of the following polyfills. **/ +// import 'core-js/es6/symbol'; +// import 'core-js/es6/object'; +// import 'core-js/es6/function'; +// import 'core-js/es6/parse-int'; +// import 'core-js/es6/parse-float'; +// import 'core-js/es6/number'; +// import 'core-js/es6/math'; +// import 'core-js/es6/string'; +// import 'core-js/es6/date'; +// import 'core-js/es6/array'; +// import 'core-js/es6/regexp'; +// import 'core-js/es6/map'; +// import 'core-js/es6/set'; + +/** IE10 and IE11 requires the following for NgClass support on SVG elements */ +// import 'classlist.js'; // Run `npm install --save classlist.js`. + +/** IE10 and IE11 requires the following to support `@angular/animation`. */ +// import 'web-animations-js'; // Run `npm install --save web-animations-js`. + + +/** Evergreen browsers require these. **/ +import 'core-js/es6/reflect'; +import 'core-js/es7/reflect'; + + +/** ALL Firefox browsers require the following to support `@angular/animation`. **/ +// import 'web-animations-js'; // Run `npm install --save web-animations-js`. + + + +/*************************************************************************************************** + * Zone JS is required by Angular itself. + */ +import 'zone.js/dist/zone'; // Included with Angular CLI. + + + +/*************************************************************************************************** + * APPLICATION IMPORTS + */ + +/** + * Date, currency, decimal and percent pipes. + * Needed for: All but Chrome, Firefox, Edge, IE11 and Safari 10 + */ +// import 'intl'; // Run `npm install --save intl`. diff --git a/src/styles.scss b/src/styles.scss new file mode 100644 index 00000000..90d4ee00 --- /dev/null +++ b/src/styles.scss @@ -0,0 +1 @@ +/* You can add global styles to this file, and also import other style files */ diff --git a/src/test.ts b/src/test.ts new file mode 100644 index 00000000..9bf72267 --- /dev/null +++ b/src/test.ts @@ -0,0 +1,32 @@ +// This file is required by karma.conf.js and loads recursively all the .spec and framework files + +import 'zone.js/dist/long-stack-trace-zone'; +import 'zone.js/dist/proxy.js'; +import 'zone.js/dist/sync-test'; +import 'zone.js/dist/jasmine-patch'; +import 'zone.js/dist/async-test'; +import 'zone.js/dist/fake-async-test'; +import { getTestBed } from '@angular/core/testing'; +import { + BrowserDynamicTestingModule, + platformBrowserDynamicTesting +} from '@angular/platform-browser-dynamic/testing'; + +// Unfortunately there's no typing for the `__karma__` variable. Just declare it as any. +declare var __karma__: any; +declare var require: any; + +// Prevent Karma from running prematurely. +__karma__.loaded = function () {}; + +// First, initialize the Angular testing environment. +getTestBed().initTestEnvironment( + BrowserDynamicTestingModule, + platformBrowserDynamicTesting() +); +// Then we find all the tests. +const context = require.context('./', true, /\.spec\.ts$/); +// And load the modules. +context.keys().map(context); +// Finally, start Karma to run the tests. +__karma__.start(); diff --git a/src/tsconfig.app.json b/src/tsconfig.app.json new file mode 100644 index 00000000..5e2507db --- /dev/null +++ b/src/tsconfig.app.json @@ -0,0 +1,13 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/app", + "module": "es2015", + "baseUrl": "", + "types": [] + }, + "exclude": [ + "test.ts", + "**/*.spec.ts" + ] +} diff --git a/src/tsconfig.spec.json b/src/tsconfig.spec.json new file mode 100644 index 00000000..510e3f1f --- /dev/null +++ b/src/tsconfig.spec.json @@ -0,0 +1,20 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/spec", + "module": "commonjs", + "target": "es5", + "baseUrl": "", + "types": [ + "jasmine", + "node" + ] + }, + "files": [ + "test.ts" + ], + "include": [ + "**/*.spec.ts", + "**/*.d.ts" + ] +} diff --git a/src/typings.d.ts b/src/typings.d.ts new file mode 100644 index 00000000..39ae7166 --- /dev/null +++ b/src/typings.d.ts @@ -0,0 +1,50 @@ +/* SystemJS module definition */ +declare var module: NodeModule; +interface NodeModule { + id: string; +} + +/* + * Custom Type Definitions + * When including 3rd party modules you also need to include the type definition for the module + * if they don't provide one within the module. You can try to install it with @types + npm install @types/node + npm install @types/lodash + * If you can't find the type definition in the registry we can make an ambient/global definition in + * this file for now. For example + declare module 'my-module' { + export function doesSomething(value: string): string; + } + * If you are using a CommonJS module that is using module.exports then you will have to write your + * types using export = yourObjectOrFunction with a namespace above it + * notice how we have to create a namespace that is equal to the function we're assigning the export to + declare module 'jwt-decode' { + function jwtDecode(token: string): any; + namespace jwtDecode {} + export = jwtDecode; + } + * + * If you're prototying and you will fix the types later you can also declare it as type any + * + declare var assert: any; + declare var _: any; + declare var $: any; + * + * If you're importing a module that uses Node.js modules which are CommonJS you need to import as + * in the files such as main.browser.ts or any file within app/ + * + import * as _ from 'lodash' + * You can include your type definitions in this file until you create one for the @types + * + */ + +interface JQuery { + easyPieChart; +} + +declare var GoogleMapsLoader:any; +declare var L:any; +declare var AmCharts:any; +declare var Chart:any; +declare var Chartist:any; + diff --git a/src/vendor.browser.ts b/src/vendor.browser.ts deleted file mode 100644 index 6730261c..00000000 --- a/src/vendor.browser.ts +++ /dev/null @@ -1,32 +0,0 @@ -// For vendors for example jQuery, Lodash, angular2-jwt just import them here unless you plan on -// chunking vendors files for async loading. You would need to import the async loaded vendors -// at the entry point of the async loaded file. Also see custom-typings.d.ts as you also need to -// run `typings install x` where `x` is your module - -// Angular 2 -import '@angular/platform-browser'; -import '@angular/platform-browser-dynamic'; -import '@angular/core'; -import '@angular/common'; -import '@angular/forms'; -import '@angular/http'; -import '@angular/router'; - -// AngularClass -import '@angularclass/hmr'; - -// RxJS -import 'rxjs/add/operator/map'; -import 'rxjs/add/operator/mergeMap'; - -// Web dependencies -import 'jquery'; -import 'bootstrap-loader'; -import 'font-awesome-sass-loader'; -import 'lodash'; - -if ('production' === ENV) { - // Production -} else { - // Development -} diff --git a/tsconfig.json b/tsconfig.json index 32c9705a..a35a8ee3 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,35 +1,20 @@ { + "compileOnSave": false, "compilerOptions": { - "target": "es5", - "module": "commonjs", + "outDir": "./dist/out-tsc", + "baseUrl": "src", + "sourceMap": true, + "declaration": false, "moduleResolution": "node", "emitDecoratorMetadata": true, "experimentalDecorators": true, - "allowSyntheticDefaultImports": true, - "sourceMap": true, - "noEmit": true, - "noEmitHelpers": true, - "importHelpers": true, - "strictNullChecks": false, - "lib": [ - "dom", - "es6" - ], + "target": "es5", "typeRoots": [ "node_modules/@types" + ], + "lib": [ + "es2016", + "dom" ] - }, - "exclude": [ - "node_modules", - "dist" - ], - "awesomeTypescriptLoaderOptions": { - "forkChecker": true, - "useWebpackText": true - }, - "compileOnSave": false, - "buildOnSave": false, - "atom": { - "rewriteTsconfig": false } } diff --git a/tsconfig.webpack.json b/tsconfig.webpack.json deleted file mode 100644 index 5b31fd4c..00000000 --- a/tsconfig.webpack.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "compilerOptions": { - "target": "es5", - "module": "es2015", - "moduleResolution": "node", - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "allowSyntheticDefaultImports": true, - "sourceMap": true, - "noEmit": true, - "noEmitHelpers": true, - "strictNullChecks": false, - "lib": [ - "es2015", - "dom" - ], - "typeRoots": [ - "node_modules/@types" - ] - }, - "exclude": [ - "node_modules", - "dist", - "src/**/*.spec.ts", - "src/**/*.e2e.ts" - ], - "awesomeTypescriptLoaderOptions": { - "forkChecker": true, - "useWebpackText": true - }, - "angularCompilerOptions": { - "genDir": "./compiled", - "skipMetadataEmit": true - }, - "compileOnSave": false, - "buildOnSave": false, - "atom": { - "rewriteTsconfig": false - } -} diff --git a/tslint.json b/tslint.json index a27066d7..12441d1b 100644 --- a/tslint.json +++ b/tslint.json @@ -1,20 +1,24 @@ { "rulesDirectory": [ + "node_modules/tslint-eslint-rules/dist/rules", "node_modules/codelyzer" ], "rules": { - "member-access": false, - "member-ordering": [ - true, - "public-before-private", - "static-before-instance", - "variables-before-functions" - ], - "no-any": false, - "no-inferrable-types": false, + "max-line-length": [true, 120], + "class-name": true, + "comment-format": [true, "check-space"], + "indent": [true, "spaces"], + "eofline": true, + "no-duplicate-variable": true, + "no-eval": true, + "no-arg": true, "no-internal-module": true, - "no-var-requires": false, - "typedef": false, + "no-bitwise": true, + "no-shadowed-variable": true, + "no-unused-expression": true, + "one-line": [true, "check-catch", "check-else", "check-open-brace", "check-whitespace"], + "quotemark": [true, "single", "avoid-escape"], + "semicolon": true, "typedef-whitespace": [ true, { @@ -23,106 +27,91 @@ "parameter": "nospace", "property-declaration": "nospace", "variable-declaration": "nospace" - }, - { - "call-signature": "space", - "index-signature": "space", - "parameter": "space", - "property-declaration": "space", - "variable-declaration": "space" } ], - - "ban": false, - "curly": false, - "forin": true, - "label-position": true, - "no-arg": true, - "no-bitwise": true, - "no-conditional-assignment": true, - "no-console": [ - true, - "debug", - "info", - "time", - "timeEnd", - "trace" - ], - "no-construct": true, + "curly": true, + "variable-name": [true, "ban-keywords", "check-format", "allow-leading-underscore"], + "whitespace": [true, "check-branch", "check-decl", "check-operator", "check-separator", "check-type"], + "no-constant-condition": true, + "no-control-regex": true, "no-debugger": true, - "no-duplicate-variable": true, - "no-empty": false, - "no-eval": true, - "no-null-keyword": false, - "no-shadowed-variable": true, - "no-string-literal": false, - "no-switch-case-fall-through": true, - "no-unused-expression": true, + "no-duplicate-case": true, + "no-empty-character-class": true, + "no-ex-assign": true, + "no-extra-boolean-cast": true, + "no-extra-semi": true, + "no-inner-declarations": [true, "functions"], + "no-invalid-regexp": true, + "no-irregular-whitespace": true, + "no-regex-spaces": true, + "no-sparse-arrays": true, + "no-unsafe-finally": true, + "use-isnan": true, + "valid-typeof": true, + "label-position": true, + "no-multi-spaces": [ + true, + { + "exceptions": { + "BinaryExpression": true, + "PropertyAssignment": false, + "VariableDeclarator": false, + "ImportDeclaration": false + } + } + ], + "no-unused-new": true, "no-use-before-declare": true, + "array-bracket-spacing": [true, "never"], + "block-spacing": [ + true, + "always" + ], + "brace-style": [ + true, + "1tbs", + { + "allowSingleLine": true + } + ], + "new-parens": true, + "no-consecutive-blank-lines": [true, 2], + "object-curly-spacing": [true, "always"], + "ter-arrow-spacing": [ + true, + { + "before": true, + "after": true + } + ], "no-var-keyword": true, - "radix": true, - "switch-default": true, - "triple-equals": [ - true, - "allow-null-check" - ], - "eofline": true, - "indent": [ - true, - "spaces" - ], - "max-line-length": [ - true, - 120 - ], - "no-require-imports": false, - "no-trailing-whitespace": true, - "object-literal-sort-keys": false, + "prefer-const": true, "trailing-comma": [ true, { - "multiline": false, + "multiline": "always", "singleline": "never" } ], - - "align": false, - "class-name": true, - "comment-format": [ - true, - "check-space" - ], - "interface-name": false, - "jsdoc-format": true, - "no-consecutive-blank-lines": false, - "one-line": [ - false, - "check-open-brace", - "check-catch", - "check-else", - "check-finally", - "check-whitespace" - ], - "quotemark": [ - true, - "single", - "avoid-escape" - ], - "semicolon": [true, "always"], - "variable-name": [ - true, - "check-format", - "allow-leading-underscore", - "ban-keywords" - ], - "whitespace": [ - true, - "check-branch", - "check-decl", - "check-operator", - "check-separator", - "check-type" - ], - "import-destructuring-spacing": true + "no-conditional-assignment": true, + "no-console": [true, "log"], + "directive-selector": [true, "attribute", ["nga"], "camelCase"], + "component-selector": [true, "element", ["nga"], "kebab-case"], + "use-input-property-decorator": true, + "use-output-property-decorator": true, + "use-host-property-decorator": true, + "no-attribute-parameter-decorator": true, + "no-input-rename": true, + "no-output-rename": true, + "no-forward-ref": true, + "use-life-cycle-interface": true, + "use-pipe-transform-interface": true, + "component-class-suffix": [true, "Component"], + "directive-class-suffix": [true, "Directive"], + "import-destructuring-spacing": true, + "templates-use-public": true, + "no-access-missing-member": true, + "invoke-injectable": true, + "space-in-parens": ["error", "info", "never"] } } diff --git a/typedoc.json b/typedoc.json deleted file mode 100644 index 5546b067..00000000 --- a/typedoc.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "mode": "modules", - "out": "doc", - "theme": "default", - "ignoreCompilerErrors": "true", - "experimentalDecorators": "true", - "emitDecoratorMetadata": "true", - "target": "ES5", - "moduleResolution": "node", - "preserveConstEnums": "true", - "stripInternal": "true", - "suppressExcessPropertyErrors": "true", - "suppressImplicitAnyIndexErrors": "true", - "module": "commonjs" -} diff --git a/webpack.config.js b/webpack.config.js deleted file mode 100644 index 72efa4ae..00000000 --- a/webpack.config.js +++ /dev/null @@ -1,11 +0,0 @@ -// Look in ./config folder for webpack.dev.js -switch (process.env.NODE_ENV) { - case 'prod': - case 'production': - module.exports = require('./config/webpack.prod')({env: 'production'}); - break; - case 'dev': - case 'development': - default: - module.exports = require('./config/webpack.dev')({env: 'development'}); -} diff --git a/yarn.lock b/yarn.lock index aede4d01..b3763b7a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,70 @@ # yarn lockfile v1 +"@angular/cli@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-1.0.0.tgz#7bfde1e7c5f28bf5bed4dda1352ee67ee887302f" + dependencies: + "@ngtools/json-schema" "1.0.5" + "@ngtools/webpack" "1.3.0" + autoprefixer "^6.5.3" + chalk "^1.1.3" + common-tags "^1.3.1" + css-loader "^0.26.1" + cssnano "^3.10.0" + debug "^2.1.3" + denodeify "^1.2.1" + diff "^3.1.0" + ember-cli-normalize-entity-name "^1.0.0" + ember-cli-string-utils "^1.0.0" + exports-loader "^0.6.3" + extract-text-webpack-plugin "~2.0.0" + file-loader "^0.10.0" + fs-extra "^2.0.0" + get-caller-file "^1.0.0" + glob "^7.0.3" + html-webpack-plugin "^2.19.0" + inflection "^1.7.0" + inquirer "^3.0.0" + isbinaryfile "^3.0.0" + istanbul-instrumenter-loader "^2.0.0" + json-loader "^0.5.4" + karma-sourcemap-loader "^0.3.7" + karma-webpack "^2.0.0" + less "^2.7.2" + less-loader "^2.2.3" + lodash "^4.11.1" + minimatch "^3.0.3" + node-modules-path "^1.0.0" + nopt "^4.0.1" + opn "4.0.2" + portfinder "~1.0.12" + postcss-loader "^0.13.0" + postcss-url "^5.1.2" + raw-loader "^0.5.1" + resolve "^1.1.7" + rimraf "^2.5.3" + rsvp "^3.0.17" + rxjs "^5.0.1" + sass-loader "^4.1.1" + script-loader "^0.7.0" + semver "^5.1.0" + silent-error "^1.0.0" + source-map-loader "^0.1.5" + style-loader "^0.13.1" + stylus "^0.54.5" + stylus-loader "^2.4.0" + temp "0.8.3" + typescript ">=2.0.0 <2.3.0" + url-loader "^0.5.7" + walk-sync "^0.3.1" + webpack "~2.2.0" + webpack-dev-server "~2.3.0" + webpack-merge "^2.4.0" + zone.js "^0.7.2" + optionalDependencies: + node-sass "^4.3.0" + "@angular/common@4.0.1": version "4.0.1" resolved "https://registry.yarnpkg.com/@angular/common/-/common-4.0.1.tgz#df488eada842b2d841ded750712292b18387b5b0" @@ -38,13 +102,6 @@ version "4.0.1" resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-4.0.1.tgz#4b9efbeb2fbb900de188743b988802d3aa2b33ff" -"@angular/platform-server@4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@angular/platform-server/-/platform-server-4.0.1.tgz#3d5fc98255c0f60c6f9079eb8d6cc0c8def31d06" - dependencies: - parse5 "^3.0.1" - xhr2 "^0.1.4" - "@angular/router@4.0.1": version "4.0.1" resolved "https://registry.yarnpkg.com/@angular/router/-/router-4.0.1.tgz#2d73a4b6c40e18d5cd0bfd1f20222af64a11c11e" @@ -75,6 +132,19 @@ version "1.0.0-alpha.22" resolved "https://registry.yarnpkg.com/@ng-bootstrap/ng-bootstrap/-/ng-bootstrap-1.0.0-alpha.22.tgz#aaad058cc39293ea6184e4b9b849f298c0b11a86" +"@ngtools/json-schema@1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@ngtools/json-schema/-/json-schema-1.0.5.tgz#ad39037c70c88b245ac7267a71777646b6063d77" + +"@ngtools/webpack@1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-1.3.0.tgz#a1071230985358ecdf87b2fa9879ae6cc6355e83" + dependencies: + enhanced-resolve "^3.1.0" + loader-utils "^1.0.2" + magic-string "^0.19.0" + source-map "^0.5.6" + "@ngx-translate/core@6.0.1": version "6.0.1" resolved "https://registry.yarnpkg.com/@ngx-translate/core/-/core-6.0.1.tgz#7c7a80077feb994fc815b67a72065af04d394efe" @@ -114,9 +184,9 @@ version "9.1.9" resolved "https://registry.yarnpkg.com/@types/highlight.js/-/highlight.js-9.1.9.tgz#ed6336955eaf233b75eb7923b9b1f373d045ef01" -"@types/jasmine@2.5.47": - version "2.5.47" - resolved "https://registry.yarnpkg.com/@types/jasmine/-/jasmine-2.5.47.tgz#bbba9bcf0e95e7890c6f4a47394e8bacaa960eb6" +"@types/jasmine@2.5.38": + version "2.5.38" + resolved "https://registry.yarnpkg.com/@types/jasmine/-/jasmine-2.5.38.tgz#a4379124c4921d4e21de54ec74669c9e9b356717" "@types/jquery.slimscroll@1.3.30": version "1.3.30" @@ -140,13 +210,17 @@ version "2.0.29" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-2.0.29.tgz#5002e14f75e2d71e564281df0431c8c1b4a2a36a" -"@types/node@*", "@types/node@7.0.12": - version "7.0.12" - resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.12.tgz#ae5f67a19c15f752148004db07cbbb372e69efc9" +"@types/node@*", "@types/node@6.0.60", "@types/node@^6.0.46": + version "6.0.60" + resolved "https://registry.yarnpkg.com/@types/node/-/node-6.0.60.tgz#e7e134ebc674ae6ed93c36c767739b110d2c57fc" -"@types/node@^6.0.46": - version "6.0.68" - resolved "https://registry.yarnpkg.com/@types/node/-/node-6.0.68.tgz#0c43b6b8b9445feb86a0fbd3457e3f4bc591e66d" +"@types/q@^0.0.32": + version "0.0.32" + resolved "https://registry.yarnpkg.com/@types/q/-/q-0.0.32.tgz#bd284e57c84f1325da702babfc82a5328190c0c5" + +"@types/selenium-webdriver@^2.53.35", "@types/selenium-webdriver@~2.53.39": + version "2.53.42" + resolved "https://registry.yarnpkg.com/@types/selenium-webdriver/-/selenium-webdriver-2.53.42.tgz#74cb77fb6052edaff2a8984ddafd88d419f25cac" "@types/shelljs@^0.3.32": version "0.3.33" @@ -176,7 +250,18 @@ "@types/tapable" "*" "@types/uglify-js" "*" -abbrev@1, abbrev@1.0.x, abbrev@~1.0.9: +JSONStream@^0.8.4: + version "0.8.4" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-0.8.4.tgz#91657dfe6ff857483066132b4618b62e8f4887bd" + dependencies: + jsonparse "0.0.5" + through ">=2.2.7 <3" + +abbrev@1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f" + +abbrev@~1.0.9: version "1.0.9" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" @@ -225,17 +310,32 @@ adjust-sourcemap-loader@^1.1.0: object-path "^0.9.2" regex-parser "^2.2.1" +adm-zip@0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.4.tgz#a61ed5ae6905c3aea58b3a657d25033091052736" + +adm-zip@^0.4.7: + version "0.4.7" + resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.7.tgz#8606c2cbf1c426ce8c8ec00174447fd49b6eafc1" + after@0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" -ajv-keywords@^1.1.1: +agent-base@2: + version "2.0.1" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-2.0.1.tgz#bd8f9e86a8eb221fffa07bd14befd55df142815e" + dependencies: + extend "~3.0.0" + semver "~5.0.1" + +ajv-keywords@^1.0.0, ajv-keywords@^1.1.1: version "1.5.1" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" ajv@^4.11.2, ajv@^4.7.0, ajv@^4.9.1: - version "4.11.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.6.tgz#947e93049790942b2a2d60a8289b28924d39f987" + version "4.11.7" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.7.tgz#8655a5d86d0824985cc471a1d913fb6729a0ec48" dependencies: co "^4.6.0" json-stable-stringify "^1.0.1" @@ -256,7 +356,7 @@ alphanum-sort@^1.0.1, alphanum-sort@^1.0.2: version "3.21.0" resolved "https://codeload.github.com/amcharts/amcharts3/tar.gz/2a51faccb6726e724a205f2164956ba65f4d8048" -amdefine@>=0.0.4, amdefine@^1.0.0: +amdefine@>=0.0.4: version "1.0.1" resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" @@ -280,11 +380,15 @@ ansi-align@^1.1.0: dependencies: string-width "^1.0.1" +ansi-escapes@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" + ansi-html@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" -ansi-regex@^2.0.0: +ansi-regex@*, ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" @@ -300,6 +404,10 @@ ansistyles@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/ansistyles/-/ansistyles-0.1.3.tgz#5de60415bda071bb37127854c864f41b23254539" +any-promise@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + anymatch@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507" @@ -311,6 +419,12 @@ app-root-path@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-2.0.1.tgz#cd62dcf8e4fd5a417efc664d2e5b10653c651b46" +append-transform@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991" + dependencies: + default-require-extensions "^1.0.0" + aproba@^1.0.3, aproba@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.0.4.tgz#2713680775e7614c8ba186c065d4e2e52d1072c0" @@ -339,8 +453,8 @@ arr-diff@^2.0.0: arr-flatten "^1.0.1" arr-flatten@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.1.tgz#e5ffe54d45e19f32f216e91eb99c8ce892bb604b" + version "1.0.3" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.3.tgz#a274ed85ac08849b6bd7847c4580745dc51adfb1" array-differ@^1.0.0: version "1.0.0" @@ -383,7 +497,7 @@ array-union@^1.0.1: dependencies: array-uniq "^1.0.1" -array-uniq@^1.0.1, array-uniq@^1.0.2: +array-uniq@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" @@ -451,7 +565,7 @@ async-foreach@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" -async@0.2: +async@0.2, async@~0.2.6: version "0.2.10" resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" @@ -459,10 +573,6 @@ async@0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/async/-/async-0.9.0.tgz#ac3613b1da9bed1b47510bb4651b8931e47146c7" -async@1.x, async@^1.4.0, async@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" - async@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/async/-/async-2.1.2.tgz#612a4ab45ef42a70cde806bad86ee6db047e8385" @@ -473,7 +583,11 @@ async@^0.9.0, async@~0.9.0: version "0.9.2" resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" -async@^2.1.2, async@^2.1.5: +async@^1.4.0, async@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + +async@^2.0.1, async@^2.1.2, async@^2.1.4: version "2.3.0" resolved "https://registry.yarnpkg.com/async/-/async-2.3.0.tgz#1013d1051047dd320fe24e494d5c66ecaf6147d9" dependencies: @@ -497,15 +611,15 @@ atob@~1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/atob/-/atob-1.1.3.tgz#95f13629b12c3a51a5d215abdce2aa9f32f80773" -autoprefixer@^6.3.1: - version "6.7.7" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz#1dbd1c835658e35ce3f9984099db00585c782014" +autoprefixer@6.5.3, autoprefixer@^6.0.0, autoprefixer@^6.3.1, autoprefixer@^6.5.3: + version "6.5.3" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.5.3.tgz#2d853af66d04449fcf50db3066279ab54c3e4b01" dependencies: - browserslist "^1.7.6" - caniuse-db "^1.0.30000634" + browserslist "~1.4.0" + caniuse-db "^1.0.30000578" normalize-range "^0.1.2" num2fraction "^1.2.2" - postcss "^5.2.16" + postcss "^5.2.5" postcss-value-parser "^3.2.3" awesome-typescript-loader@3.1.2: @@ -555,7 +669,7 @@ babel-messages@^6.23.0: dependencies: babel-runtime "^6.22.0" -babel-runtime@^6.22.0: +babel-runtime@^6.18.0, babel-runtime@^6.22.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.23.0.tgz#0a9489f144de70efb3ce4300accdb329e2fc543b" dependencies: @@ -603,7 +717,7 @@ backo2@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" -balanced-match@^0.4.1, balanced-match@^0.4.2: +balanced-match@^0.4.0, balanced-match@^0.4.1, balanced-match@^0.4.2: version "0.4.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" @@ -629,10 +743,6 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -beeper@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809" - better-assert@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" @@ -663,6 +773,12 @@ block-stream@*: dependencies: inherits "~2.0.0" +blocking-proxy@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/blocking-proxy/-/blocking-proxy-0.0.4.tgz#49016732ac38e8d53a2c7dcd502520aa0e58e044" + dependencies: + minimist "^1.2.0" + bluebird@^2.10.2: version "2.11.0" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-2.11.0.tgz#534b9033c022c9579c56ba3b3e5a5caafbb650e1" @@ -675,7 +791,7 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: version "4.11.6" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" -body-parser@^1.16.1: +body-parser@^1.12.4: version "1.17.1" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.17.1.tgz#75b3bc98ddd6e7e0d8ffe750dfaca5c66993fa47" dependencies: @@ -808,7 +924,13 @@ browserify-zlib@^0.1.4: dependencies: pako "~0.2.0" -browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: +browserslist@^1.1.1, browserslist@^1.1.3, browserslist@~1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.4.0.tgz#9cfdcf5384d9158f5b70da2aa00b30e8ff019049" + dependencies: + caniuse-db "^1.0.30000539" + +browserslist@^1.3.6, browserslist@^1.5.2: version "1.7.7" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9" dependencies: @@ -877,7 +999,7 @@ camelcase@^1.0.2, camelcase@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" -camelcase@^2.0.0: +camelcase@^2.0.0, camelcase@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" @@ -898,9 +1020,9 @@ caniuse-api@^1.5.2: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: - version "1.0.30000649" - resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000649.tgz#1ee1754a6df235450c8b7cd15e0ebf507221a86a" +caniuse-db@^1.0.30000187, caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000539, caniuse-db@^1.0.30000578, caniuse-db@^1.0.30000639: + version "1.0.30000655" + resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000655.tgz#e40b6287adc938848d6708ef83d65b5f54ac1874" capture-stack-trace@^1.0.0: version "1.0.0" @@ -921,7 +1043,7 @@ center-align@^0.1.1: align-text "^0.1.3" lazy-cache "^1.0.3" -chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3, chalk@~1.1.3: +chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3, chalk@~1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" dependencies: @@ -968,6 +1090,10 @@ cipher-base@^1.0.0, cipher-base@^1.0.1: dependencies: inherits "^2.0.1" +circular-json@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d" + ckeditor@4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/ckeditor/-/ckeditor-4.6.2.tgz#b1552b7a2f9537e165d7afd2d29d3d4959ff6bad" @@ -979,8 +1105,8 @@ clap@^1.0.9: chalk "^1.1.3" clean-css@4.0.x: - version "4.0.11" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.0.11.tgz#a6d88bffb399420b24298db49d99a1ed067534a8" + version "4.0.12" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.0.12.tgz#a02e61707f1840bd3338f54dbc9acbda4e772fa3" dependencies: source-map "0.5.x" @@ -995,6 +1121,16 @@ cli-boxes@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" +cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + dependencies: + restore-cursor "^2.0.0" + +cli-width@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" + cliui@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" @@ -1003,7 +1139,7 @@ cliui@^2.1.0: right-align "^0.1.1" wordwrap "0.0.2" -cliui@^3.2.0: +cliui@^3.0.3, cliui@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" dependencies: @@ -1011,21 +1147,14 @@ cliui@^3.2.0: strip-ansi "^3.0.1" wrap-ansi "^2.0.0" -clone-deep@^0.2.4: - version "0.2.4" - resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-0.2.4.tgz#4e73dd09e9fb971cc38670c5dced9c1896481cc6" +clone-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/clone-regexp/-/clone-regexp-1.0.0.tgz#eae0a2413f55c0942f818c229fefce845d7f3b1c" dependencies: - for-own "^0.1.3" - is-plain-object "^2.0.1" - kind-of "^3.0.2" - lazy-cache "^1.0.3" - shallow-clone "^0.1.2" + is-regexp "^1.0.0" + is-supported-regexp-flag "^1.0.0" -clone-stats@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1" - -clone@^1.0.0, clone@^1.0.2: +clone@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149" @@ -1050,20 +1179,19 @@ code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" -codelyzer@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/codelyzer/-/codelyzer-2.1.1.tgz#0573c7f8da4ac2a4473b0042807f7b901dec8b0a" +codelyzer@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/codelyzer/-/codelyzer-2.0.0.tgz#212b9182ba9fe0fee325f08781b0d49521a1c987" dependencies: app-root-path "^2.0.1" css-selector-tokenizer "^0.7.0" cssauron "^1.4.0" - semver-dsl "^1.0.1" source-map "^0.5.6" sprintf-js "^1.0.3" coffee-script@~1.12.1: - version "1.12.4" - resolved "https://registry.yarnpkg.com/coffee-script/-/coffee-script-1.12.4.tgz#fe1bced97fe1fb3927b998f2b45616e0658be1ff" + version "1.12.5" + resolved "https://registry.yarnpkg.com/coffee-script/-/coffee-script-1.12.5.tgz#809f4585419112bbfe46a073ad7543af18c27346" collections@^0.2.0: version "0.2.2" @@ -1077,6 +1205,10 @@ color-convert@^1.3.0: dependencies: color-name "^1.1.1" +color-diff@^0.1.3: + version "0.1.7" + resolved "https://registry.yarnpkg.com/color-diff/-/color-diff-0.1.7.tgz#6db78cd9482a8e459d40821eaf4b503283dcb8e2" + color-name@^1.0.0, color-name@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.2.tgz#5c8ab72b64bd2215d617ae9559ebb148475cf98d" @@ -1095,6 +1227,21 @@ color@^0.11.0: color-convert "^1.3.0" color-string "^0.3.0" +colorguard@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/colorguard/-/colorguard-1.2.0.tgz#f3facaf5caaeba4ef54653d9fb25bb73177c0d84" + dependencies: + chalk "^1.1.1" + color-diff "^0.1.3" + log-symbols "^1.0.2" + object-assign "^4.0.1" + pipetteur "^2.0.0" + plur "^2.0.0" + postcss "^5.0.4" + postcss-reporter "^1.2.1" + text-table "^0.2.0" + yargs "^1.2.6" + colormin@^1.0.5: version "1.1.2" resolved "https://registry.yarnpkg.com/colormin/-/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133" @@ -1107,7 +1254,7 @@ colors@1.0.3, colors@1.0.x: version "1.0.3" resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" -colors@^1.1.0, colors@^1.1.2, colors@~1.1.2: +colors@1.1.2, colors@^1.1.0, colors@^1.1.2, colors@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" @@ -1148,6 +1295,12 @@ commander@2.9.0, commander@2.9.x, commander@^2.9.0, commander@~2.9.0: dependencies: graceful-readlink ">= 1.0.0" +common-tags@^1.3.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.4.0.tgz#1187be4f3d4cf0c0427d43f74eef1f73501614c0" + dependencies: + babel-runtime "^6.18.0" + component-bind@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" @@ -1223,7 +1376,7 @@ connect-history-api-fallback@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.3.0.tgz#e51d17f8f0ef0db90a64fdb47de3051556e9f169" -connect@^3.6.0: +connect@^3.3.5: version "3.6.0" resolved "https://registry.yarnpkg.com/connect/-/connect-3.6.0.tgz#f09a4f7dcd17324b663b725c815bdb1c4158a46e" dependencies: @@ -1302,7 +1455,7 @@ corser@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/corser/-/corser-2.0.1.tgz#8eda252ecaab5840dcd975ceb90d9370c819ff87" -cosmiconfig@^2.1.0, cosmiconfig@^2.1.1: +cosmiconfig@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-2.1.1.tgz#817f2c2039347a1e9bf7d090c0923e53f749ca82" dependencies: @@ -1389,18 +1542,22 @@ crypto-random-string@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" +css-color-names@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.3.tgz#de0cef16f4d8aa8222a320d5b6d7e9bbada7b9f6" + css-color-names@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" -css-loader@*, css-loader@0.28.0: - version "0.28.0" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.0.tgz#417cfa9789f8cde59a30ccbf3e4da7a806889bad" +css-loader@*, css-loader@0.26.1, css-loader@^0.26.1: + version "0.26.1" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.26.1.tgz#2ba7f20131b93597496b3e9bb500785a49cd29ea" dependencies: babel-code-frame "^6.11.0" css-selector-tokenizer "^0.7.0" cssnano ">=2.6.1 <4" - loader-utils "^1.0.2" + loader-utils "~0.2.2" lodash.camelcase "^4.3.0" object-assign "^4.0.1" postcss "^5.0.6" @@ -1408,7 +1565,20 @@ css-loader@*, css-loader@0.28.0: postcss-modules-local-by-default "^1.0.1" postcss-modules-scope "^1.0.0" postcss-modules-values "^1.1.0" - source-list-map "^0.1.7" + source-list-map "^0.1.4" + +css-parse@1.7.x: + version "1.7.0" + resolved "https://registry.yarnpkg.com/css-parse/-/css-parse-1.7.0.tgz#321f6cf73782a6ff751111390fc05e2c657d8c9b" + +css-rule-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/css-rule-stream/-/css-rule-stream-1.1.0.tgz#3786e7198983d965a26e31957e09078cbb7705a2" + dependencies: + css-tokenize "^1.0.1" + duplexer2 "0.0.2" + ldjson-stream "^1.2.1" + through2 "^0.6.3" css-select@^1.1.0: version "1.2.0" @@ -1435,6 +1605,13 @@ css-selector-tokenizer@^0.7.0: fastparse "^1.1.1" regexpu-core "^1.0.0" +css-tokenize@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/css-tokenize/-/css-tokenize-1.0.1.tgz#4625cb1eda21c143858b7f81d6803c1d26fc14be" + dependencies: + inherits "^2.0.1" + readable-stream "^1.0.33" + css-what@2.1: version "2.1.0" resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd" @@ -1458,7 +1635,7 @@ cssesc@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" -"cssnano@>=2.6.1 <4": +cssnano@3.10.0, "cssnano@>=2.6.1 <4", cssnano@^3.10.0: version "3.10.0" resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-3.10.0.tgz#4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38" dependencies: @@ -1532,12 +1709,11 @@ date-now@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" -dateformat@^1.0.11, dateformat@^1.0.6: - version "1.0.12" - resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.12.tgz#9f124b67594c937ff706932e4a642cca8dbbfee9" +debug@*, debug@2, debug@^2.1.3, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0: + version "2.6.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.3.tgz#0f7eb8c30965ec08c72accfa0130c8b79984141d" dependencies: - get-stdin "^4.0.1" - meow "^3.3.0" + ms "0.7.2" debug@0.7.4: version "0.7.4" @@ -1561,13 +1737,7 @@ debug@2.6.1: dependencies: ms "0.7.2" -debug@2.6.3, debug@^2.1.3, debug@^2.2.0, debug@^2.3.3: - version "2.6.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.3.tgz#0f7eb8c30965ec08c72accfa0130c8b79984141d" - dependencies: - ms "0.7.2" - -debuglog@^1.0.1: +debuglog@*, debuglog@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" @@ -1579,9 +1749,11 @@ deep-extend@~0.4.0: version "0.4.1" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.1.tgz#efe4113d08085f4e6f9687759810f807469e2253" -deep-is@~0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" +default-require-extensions@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8" + dependencies: + strip-bom "^2.0.0" defaults@^1.0.3: version "1.0.3" @@ -1600,6 +1772,18 @@ defined@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" +del@^2.0.2, del@^2.2.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" + dependencies: + globby "^5.0.0" + is-path-cwd "^1.0.0" + is-path-in-cwd "^1.0.0" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + rimraf "^2.2.8" + delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -1608,6 +1792,10 @@ delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" +denodeify@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/denodeify/-/denodeify-1.2.1.tgz#3a36287f5034e699e7577901052c2e6c94251631" + depd@1.1.0, depd@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.0.tgz#e1bd82c6aab6ced965b97b88b17ed3e528ca18c3" @@ -1652,6 +1840,38 @@ diffie-hellman@^5.0.0: miller-rabin "^4.0.0" randombytes "^2.0.0" +directory-encoder@^0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/directory-encoder/-/directory-encoder-0.7.2.tgz#59b4e2aa4f25422f6c63b527b462f5e2d0dd2c58" + dependencies: + fs-extra "^0.23.1" + handlebars "^1.3.0" + img-stats "^0.5.2" + +doctrine@^0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-0.7.2.tgz#7cb860359ba3be90e040b26b729ce4bfa654c523" + dependencies: + esutils "^1.1.6" + isarray "0.0.1" + +doiuse@^2.4.1: + version "2.6.0" + resolved "https://registry.yarnpkg.com/doiuse/-/doiuse-2.6.0.tgz#1892d10b61a9a356addbf2b614933e81f8bb3834" + dependencies: + browserslist "^1.1.1" + caniuse-db "^1.0.30000187" + css-rule-stream "^1.1.0" + duplexer2 "0.0.2" + jsonfilter "^1.1.2" + ldjson-stream "^1.2.1" + lodash "^4.0.0" + multimatch "^2.0.0" + postcss "^5.0.8" + source-map "^0.4.2" + through2 "^0.6.3" + yargs "^3.5.4" + dom-converter@~0.1: version "0.1.4" resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.1.4.tgz#a45ef5727b890c9bffe6d7c876e7b19cb0e17f3b" @@ -1789,6 +2009,16 @@ elliptic@^6.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.0" +ember-cli-normalize-entity-name@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/ember-cli-normalize-entity-name/-/ember-cli-normalize-entity-name-1.0.0.tgz#0b14f7bcbc599aa117b5fddc81e4fd03c4bad5b7" + dependencies: + silent-error "^1.0.0" + +ember-cli-string-utils@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ember-cli-string-utils/-/ember-cli-string-utils-1.1.0.tgz#39b677fc2805f55173735376fcef278eaa4452a1" + emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" @@ -1797,9 +2027,9 @@ encodeurl@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20" -engine.io-client@1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-1.8.3.tgz#1798ed93451246453d4c6f635d7a201fe940d5ab" +engine.io-client@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-1.8.2.tgz#c38767547f2a7d184f5752f6f0ad501006703766" dependencies: component-emitter "1.2.1" component-inherit "0.0.3" @@ -1810,7 +2040,7 @@ engine.io-client@1.8.3: parsejson "0.0.3" parseqs "0.0.5" parseuri "0.0.5" - ws "1.1.2" + ws "1.1.1" xmlhttprequest-ssl "1.5.3" yeast "0.1.2" @@ -1825,16 +2055,16 @@ engine.io-parser@1.3.2: has-binary "0.1.7" wtf-8 "1.0.0" -engine.io@1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-1.8.3.tgz#8de7f97895d20d39b85f88eeee777b2bd42b13d4" +engine.io@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-1.8.2.tgz#6b59be730b348c0125b0a4589de1c355abcf7a7e" dependencies: accepts "1.3.3" base64id "1.0.0" cookie "0.3.1" debug "2.3.3" engine.io-parser "1.3.2" - ws "1.1.2" + ws "1.1.1" enhanced-resolve@^3.0.0, enhanced-resolve@^3.1.0: version "3.1.0" @@ -1845,6 +2075,10 @@ enhanced-resolve@^3.0.0, enhanced-resolve@^3.1.0: object-assign "^4.0.1" tapable "^0.2.5" +ensure-posix-path@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/ensure-posix-path/-/ensure-posix-path-1.0.2.tgz#a65b3e42d0b71cfc585eb774f9943c8d9b91b0c2" + ent@~2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" @@ -1853,7 +2087,7 @@ entities@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" -errno@^0.1.3: +errno@^0.1.1, errno@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d" dependencies: @@ -1926,22 +2160,11 @@ escape-regexp@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/escape-regexp/-/escape-regexp-0.0.1.tgz#f44bda12d45bbdf9cb7f862ee7e4827b3dd32254" -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.3: +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.3, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" -escodegen@1.8.x: - version "1.8.1" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018" - dependencies: - esprima "^2.7.1" - estraverse "^1.9.1" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.2.0" - -esprima@2.7.x, esprima@^2.6.0, esprima@^2.7.1: +esprima@^2.6.0: version "2.7.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" @@ -1949,14 +2172,14 @@ esprima@^3.1.1, esprima@~3.1.0: version "3.1.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" -estraverse@^1.9.1: - version "1.9.3" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" - estree-walker@^0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.3.1.tgz#e6b1a51cf7292524e7237c312e5fe6660c1ce1aa" +esutils@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-1.1.6.tgz#c01ccaa9ae4b897c6d0c3e210ae52f3c7a844375" + esutils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" @@ -1985,7 +2208,7 @@ events@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" -eventsource@0.1.6: +eventsource@~0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-0.1.6.tgz#0acede849ed7dd1ccc32c811bb11b944d4f29232" dependencies: @@ -2008,6 +2231,16 @@ execa@^0.4.0: path-key "^1.0.0" strip-eof "^1.0.0" +execall@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execall/-/execall-1.0.0.tgz#73d0904e395b3cab0658b08d09ec25307f29bb73" + dependencies: + clone-regexp "^1.0.0" + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + expand-braces@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/expand-braces/-/expand-braces-0.1.2.tgz#488b1d1d2451cb3d3a6b192cfc030f44c5855fea" @@ -2035,12 +2268,12 @@ expand-range@^1.8.1: dependencies: fill-range "^2.1.0" -exports-loader@0.6.4, exports-loader@^0.6.3: - version "0.6.4" - resolved "https://registry.yarnpkg.com/exports-loader/-/exports-loader-0.6.4.tgz#d70fc6121975b35fc12830cf52754be2740fc886" +exports-loader@0.6.3, exports-loader@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/exports-loader/-/exports-loader-0.6.3.tgz#57dc78917f709b96f247fa91e69b554c855013c8" dependencies: - loader-utils "^1.0.2" - source-map "0.5.x" + loader-utils "0.2.x" + source-map "0.1.x" expose-loader@0.7.3: version "0.7.3" @@ -2079,10 +2312,16 @@ express@^4.13.3: utils-merge "1.0.0" vary "~1.1.0" -extend@^3.0.0, extend@~3.0.0: +extend@3, extend@^3.0.0, extend@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4" +external-editor@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.0.1.tgz#4c597c6c88fa6410e41dbbaa7b1be2336aa31095" + dependencies: + tmp "^0.0.31" + extglob@^0.3.1: version "0.3.2" resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" @@ -2098,6 +2337,15 @@ extract-text-webpack-plugin@2.1.0: loader-utils "^1.0.2" webpack-sources "^0.1.0" +extract-text-webpack-plugin@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/extract-text-webpack-plugin/-/extract-text-webpack-plugin-2.0.0.tgz#8640f72609800a3528f13a2a9634d566a5c1ae60" + dependencies: + ajv "^4.11.2" + async "^2.1.2" + loader-utils "^1.0.2" + webpack-sources "^0.1.0" + extract-zip@^1.0.3: version "1.6.0" resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.0.tgz#7f400c9607ea866ecab7aa6d54fb978eeb11621a" @@ -2115,17 +2363,6 @@ eyes@0.1.x: version "0.1.8" resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" -fancy-log@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.0.tgz#45be17d02bb9917d60ccffd4995c999e6c8c9948" - dependencies: - chalk "^1.1.1" - time-stamp "^1.0.0" - -fast-levenshtein@~2.0.4: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - fastparse@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8" @@ -2148,16 +2385,36 @@ fd-slicer@~1.0.1: dependencies: pend "~1.2.0" -file-loader@0.11.1: - version "0.11.1" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-0.11.1.tgz#6b328ee1234a729e4e47d36375dd6d35c0e1db84" +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" dependencies: - loader-utils "^1.0.2" + escape-string-regexp "^1.0.5" + +file-entry-cache@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" + dependencies: + flat-cache "^1.2.1" + object-assign "^4.0.1" + +file-loader@0.10.0, file-loader@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-0.10.0.tgz#bbe6db7474ac92c7f54fdc197cf547e98b6b8e12" + dependencies: + loader-utils "~0.2.5" filename-regex@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.0.tgz#996e3e80479b98b9897f15a8a58b3d084e926775" +fileset@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0" + dependencies: + glob "^7.0.3" + minimatch "^3.0.3" + fill-range@^2.1.0: version "2.2.3" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" @@ -2168,7 +2425,7 @@ fill-range@^2.1.0: repeat-element "^1.1.2" repeat-string "^1.5.2" -finalhandler@1.0.0: +finalhandler@1.0.0, finalhandler@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.0.0.tgz#b5691c2c0912092f18ac23e9416bde5cd7dc6755" dependencies: @@ -2180,19 +2437,7 @@ finalhandler@1.0.0: statuses "~1.3.1" unpipe "~1.0.0" -finalhandler@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.0.1.tgz#bcd15d1689c0e5ed729b6f7f541a6df984117db8" - dependencies: - debug "2.6.3" - encodeurl "~1.0.1" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.1" - statuses "~1.3.1" - unpipe "~1.0.0" - -find-root@1.0.0, find-root@^1.0.0: +find-root@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.0.0.tgz#962ff211aab25c6520feeeb8d6287f8f6e95807a" @@ -2209,6 +2454,15 @@ findup-sync@~0.3.0: dependencies: glob "~5.0.0" +flat-cache@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.2.tgz#fa86714e72c21db88601761ecf2f555d1abc6b96" + dependencies: + circular-json "^0.3.1" + del "^2.0.2" + graceful-fs "^4.1.2" + write "^0.2.1" + flatten@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" @@ -2225,15 +2479,11 @@ font-awesome@4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/font-awesome/-/font-awesome-4.7.0.tgz#8fa8cf0411a1a31afd07b06d2902bb9fc815a133" -for-in@^0.1.3: - version "0.1.8" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1" - for-in@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" -for-own@^0.1.3, for-own@^0.1.4: +for-own@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" dependencies: @@ -2281,6 +2531,15 @@ fs-access@^1.0.0: dependencies: null-check "^1.0.0" +fs-extra@^0.23.1: + version "0.23.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.23.1.tgz#6611dba6adf2ab8dc9c69fab37cddf8818157e3d" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^2.1.0" + path-is-absolute "^1.0.0" + rimraf "^2.2.8" + fs-extra@^0.26.4: version "0.26.7" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.26.7.tgz#9ae1fdd94897798edab76d0918cf42d0c3184fa9" @@ -2371,6 +2630,10 @@ function-bind@^1.0.2, function-bind@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771" +gather-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gather-stream/-/gather-stream-1.0.0.tgz#b33994af457a8115700d410f317733cbe7a0904b" + gauge@~2.6.0: version "2.6.0" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.6.0.tgz#d35301ad18e96902b4751dcbbe40f4218b942a46" @@ -2414,7 +2677,7 @@ generate-object-property@^1.1.0: dependencies: is-property "^1.0.0" -get-caller-file@^1.0.1: +get-caller-file@^1.0.0, get-caller-file@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" @@ -2422,6 +2685,10 @@ get-stdin@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" +get-stdin@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398" + get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" @@ -2464,13 +2731,14 @@ glob@3: inherits "2" minimatch "0.3" -glob@^5.0.15, glob@~5.0.0: - version "5.0.15" - resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" +glob@7.0.x: + version "7.0.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.6.tgz#211bafaf49e525b8cd93260d14ab136152b3f57a" dependencies: + fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "2 || 3" + minimatch "^3.0.2" once "^1.3.0" path-is-absolute "^1.0.0" @@ -2484,7 +2752,7 @@ glob@^6.0.4: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@~7.1.0, glob@~7.1.1: +glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.0.6, glob@^7.1.1, glob@~7.1.0, glob@~7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" dependencies: @@ -2495,11 +2763,32 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@~7.1.0, glob@~7.1.1: once "^1.3.0" path-is-absolute "^1.0.0" +glob@~5.0.0: + version "5.0.15" + resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + globals@^9.0.0: version "9.17.0" resolved "https://registry.yarnpkg.com/globals/-/globals-9.17.0.tgz#0c0ca696d9b9bb694d2e5470bd37777caad50286" -globby@^6.1.0: +globby@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" + dependencies: + array-union "^1.0.1" + arrify "^1.0.0" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +globby@^6.0.0, globby@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" dependencies: @@ -2509,6 +2798,10 @@ globby@^6.1.0: pify "^2.0.0" pinkie-promise "^2.0.0" +globjoin@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/globjoin/-/globjoin-0.1.4.tgz#2f4494ac8919e3767c5cbb691e9f463324285d43" + globule@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/globule/-/globule-1.1.0.tgz#c49352e4dc183d85893ee825385eb994bb6df45f" @@ -2517,12 +2810,6 @@ globule@^1.0.0: lodash "~4.16.4" minimatch "~3.0.2" -glogg@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.0.tgz#7fe0f199f57ac906cf512feead8f90ee4a284fc5" - dependencies: - sparkles "^1.0.0" - google-maps@3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/google-maps/-/google-maps-3.2.1.tgz#c0758f2b175a4a8d110c1abb1fc4cc38c1176e06" @@ -2551,40 +2838,11 @@ graceful-fs@4.1.10, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, version "1.0.1" resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" -gulp-util@3.0.7: - version "3.0.7" - resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.7.tgz#78925c4b8f8b49005ac01a011c557e6218941cbb" - dependencies: - array-differ "^1.0.0" - array-uniq "^1.0.2" - beeper "^1.0.0" - chalk "^1.0.0" - dateformat "^1.0.11" - fancy-log "^1.1.0" - gulplog "^1.0.0" - has-gulplog "^0.1.0" - lodash._reescape "^3.0.0" - lodash._reevaluate "^3.0.0" - lodash._reinterpolate "^3.0.0" - lodash.template "^3.0.0" - minimist "^1.1.0" - multipipe "^0.1.2" - object-assign "^3.0.0" - replace-ext "0.0.1" - through2 "^2.0.0" - vinyl "^0.5.0" - -gulplog@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5" - dependencies: - glogg "^1.0.0" - handle-thing@^1.2.4: version "1.2.5" resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-1.2.5.tgz#fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4" -handlebars@4.0.5, handlebars@^4.0.1: +handlebars@4.0.5, handlebars@^4.0.3: version "4.0.5" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.5.tgz#92c6ed6bb164110c50d4d8d0fbddc70806c6f8e7" dependencies: @@ -2594,6 +2852,14 @@ handlebars@4.0.5, handlebars@^4.0.1: optionalDependencies: uglify-js "^2.6" +handlebars@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-1.3.0.tgz#9e9b130a93e389491322d975cf3ec1818c37ce34" + dependencies: + optimist "~0.3" + optionalDependencies: + uglify-js "~2.3" + har-schema@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" @@ -2638,12 +2904,6 @@ has-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" -has-gulplog@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce" - dependencies: - sparkles "^1.0.0" - has-unicode@^2.0.0, has-unicode@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" @@ -2701,7 +2961,11 @@ home-path@^1.0.1: version "1.0.5" resolved "https://registry.yarnpkg.com/home-path/-/home-path-1.0.5.tgz#788b29815b12d53bacf575648476e6f9041d133f" -hosted-git-info@^2.1.4, hosted-git-info@^2.1.5, hosted-git-info@~2.1.5: +hosted-git-info@^2.1.4, hosted-git-info@^2.1.5: + version "2.4.2" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.4.2.tgz#0076b9f46a270506ddbaaea56496897460612a67" + +hosted-git-info@~2.1.5: version "2.1.5" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.1.5.tgz#0ba81d90da2e25ab34a332e6ec77936e1598118b" @@ -2735,7 +2999,11 @@ html-minifier@^3.2.3: relateurl "0.2.x" uglify-js "~2.8.22" -html-webpack-plugin@2.28.0: +html-tags@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-1.1.1.tgz#869f43859f12d9bdc3892419e494a628aa1b204e" + +html-webpack-plugin@2.28.0, html-webpack-plugin@^2.19.0: version "2.28.0" resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-2.28.0.tgz#2e7863b57e5fd48fe263303e2ffc934c3064d009" dependencies: @@ -2776,7 +3044,7 @@ http-errors@~1.6.1: setprototypeof "1.0.3" statuses ">= 1.3.1 < 2" -http-proxy-middleware@~0.17.4: +http-proxy-middleware@~0.17.1: version "0.17.4" resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz#642e8848851d66f09d4f124912846dbaeb41b833" dependencies: @@ -2817,6 +3085,14 @@ https-browserify@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82" +https-proxy-agent@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz#35f7da6c48ce4ddbfa264891ac593ee5ff8671e6" + dependencies: + agent-base "2" + debug "2" + extend "3" + iconv-lite@0.4.15: version "0.4.15" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb" @@ -2837,6 +3113,20 @@ iferr@^0.1.5, iferr@~0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" +ignore@^3.2.0: + version "3.2.7" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.2.7.tgz#4810ca5f1d8eca5595213a34b94f2eb4ed926bbd" + +image-size@~0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.1.tgz#28eea8548a4b1443480ddddc1e083ae54652439f" + +img-stats@^0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/img-stats/-/img-stats-0.5.2.tgz#c203496c42f2d9eb2e5ab8232fa756bab32c9e2b" + dependencies: + xmldom "^0.1.19" + imports-loader@0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/imports-loader/-/imports-loader-0.7.1.tgz#f204b5f34702a32c1db7d48d89d5e867a0441253" @@ -2844,7 +3134,7 @@ imports-loader@0.7.1: loader-utils "^1.0.2" source-map "^0.5.6" -imurmurhash@^0.1.4: +imurmurhash@*, imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -2866,6 +3156,10 @@ indexof@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" +inflection@^1.7.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/inflection/-/inflection-1.12.0.tgz#a200935656d6f5f6bc4dc7502e1aecb703228416" + inflight@^1.0.4, inflight@~1.0.5: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -2886,11 +3180,11 @@ ini@^1.3.4, ini@~1.3.0, ini@~1.3.4: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" init-package-json@~1.9.4: - version "1.9.5" - resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-1.9.5.tgz#7d4d64a264dc76c1f1f557cbbe824978bf10cd09" + version "1.9.6" + resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-1.9.6.tgz#789fc2b74466a4952b9ea77c0575bc78ebd60a61" dependencies: glob "^7.1.1" - npm-package-arg "^4.0.0" + npm-package-arg "^4.0.0 || ^5.0.0" promzard "^0.3.0" read "~1.0.1" read-package-json "1 || 2" @@ -2898,6 +3192,24 @@ init-package-json@~1.9.4: validate-npm-package-license "^3.0.1" validate-npm-package-name "^3.0.0" +inquirer@^3.0.0: + version "3.0.6" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.0.6.tgz#e04aaa9d05b7a3cb9b0f407d04375f0447190347" + dependencies: + ansi-escapes "^1.1.0" + chalk "^1.0.0" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^2.0.1" + figures "^2.0.0" + lodash "^4.3.0" + mute-stream "0.0.7" + run-async "^2.2.0" + rx "^4.1.0" + string-width "^2.0.0" + strip-ansi "^3.0.0" + through "^2.3.6" + interpret@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.2.tgz#f4f623f0bb7122f15f5717c8e254b8161b5c5b2d" @@ -2920,6 +3232,10 @@ ipaddr.js@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.3.0.tgz#1e03a52fdad83a8bbb2b25cbf4998b4cffcd3dec" +irregular-plurals@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/irregular-plurals/-/irregular-plurals-1.2.0.tgz#38f299834ba8c00c30be9c554e137269752ff3ac" + is-absolute-url@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" @@ -3040,16 +3356,26 @@ is-obj@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" +is-path-cwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" + +is-path-in-cwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" + dependencies: + is-path-inside "^1.0.0" + +is-path-inside@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f" + dependencies: + path-is-inside "^1.0.1" + is-plain-obj@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" -is-plain-object@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.1.tgz#4d7ca539bc9db9b737b8acb612f2318ef92f294f" - dependencies: - isobject "^1.0.0" - is-posix-bracket@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" @@ -3058,7 +3384,7 @@ is-primitive@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" -is-promise@^2.0.0: +is-promise@^2.0.0, is-promise@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" @@ -3076,6 +3402,10 @@ is-regex@^1.0.3: dependencies: has "^1.0.1" +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + is-retry-allowed@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" @@ -3084,6 +3414,10 @@ is-stream@^1.0.0, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" +is-supported-regexp-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.0.tgz#8b520c85fae7a253382d4b02652e045576e13bb8" + is-svg@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9" @@ -3118,10 +3452,6 @@ isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" -isobject@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-1.0.2.tgz#f0f9b8ce92dd540fa0740882e3835a2e022ec78a" - isobject@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" @@ -3132,7 +3462,23 @@ isstream@0.1.x, isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" -istanbul-instrumenter-loader@2.0.0: +istanbul-api@^1.1.1: + version "1.1.7" + resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.1.7.tgz#f6f37f09f8002b130f891c646b70ee4a8e7345ae" + dependencies: + async "^2.1.4" + fileset "^2.0.2" + istanbul-lib-coverage "^1.0.2" + istanbul-lib-hook "^1.0.5" + istanbul-lib-instrument "^1.7.0" + istanbul-lib-report "^1.0.0" + istanbul-lib-source-maps "^1.1.1" + istanbul-reports "^1.0.2" + js-yaml "^3.7.0" + mkdirp "^0.5.1" + once "^1.4.0" + +istanbul-instrumenter-loader@2.0.0, istanbul-instrumenter-loader@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/istanbul-instrumenter-loader/-/istanbul-instrumenter-loader-2.0.0.tgz#e5492900ab0bba835efa8024cb00be9b3eea2700" dependencies: @@ -3145,7 +3491,13 @@ istanbul-lib-coverage@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.0.2.tgz#87a0c015b6910651cb3b184814dfb339337e25e1" -istanbul-lib-instrument@^1.1.3: +istanbul-lib-hook@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.0.5.tgz#6ca3d16d60c5f4082da39f7c5cd38ea8a772b88e" + dependencies: + append-transform "^0.4.0" + +istanbul-lib-instrument@^1.1.3, istanbul-lib-instrument@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.0.tgz#b8e0dc25709bb44e17336ab47b7bb5c97c23f659" dependencies: @@ -3157,24 +3509,29 @@ istanbul-lib-instrument@^1.1.3: istanbul-lib-coverage "^1.0.2" semver "^5.3.0" -istanbul@0.4.5, istanbul@^0.4.0: - version "0.4.5" - resolved "https://registry.yarnpkg.com/istanbul/-/istanbul-0.4.5.tgz#65c7d73d4c4da84d4f3ac310b918fb0b8033733b" +istanbul-lib-report@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.0.0.tgz#d83dac7f26566b521585569367fe84ccfc7aaecb" dependencies: - abbrev "1.0.x" - async "1.x" - escodegen "1.8.x" - esprima "2.7.x" - glob "^5.0.15" - handlebars "^4.0.1" - js-yaml "3.x" - mkdirp "0.5.x" - nopt "3.x" - once "1.x" - resolve "1.1.x" - supports-color "^3.1.0" - which "^1.1.1" - wordwrap "^1.0.0" + istanbul-lib-coverage "^1.0.2" + mkdirp "^0.5.1" + path-parse "^1.0.5" + supports-color "^3.1.2" + +istanbul-lib-source-maps@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.1.1.tgz#f8c8c2e8f2160d1d91526d97e5bd63b2079af71c" + dependencies: + istanbul-lib-coverage "^1.0.2" + mkdirp "^0.5.1" + rimraf "^2.4.4" + source-map "^0.5.3" + +istanbul-reports@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.0.2.tgz#4e8366abe6fa746cc1cd6633f108de12cc6ac6fa" + dependencies: + handlebars "^4.0.3" jade-legacy@~1.11.1: version "1.11.1" @@ -3190,10 +3547,28 @@ jade-legacy@~1.11.1: void-elements "~2.0.1" with "~5.1.1" -jasmine-core@2.5.2: +jasmine-core@2.5.2, jasmine-core@~2.5.2: version "2.5.2" resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.5.2.tgz#6f61bd79061e27f43e6f9355e44b3c6cab6ff297" +jasmine-spec-reporter@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/jasmine-spec-reporter/-/jasmine-spec-reporter-3.2.0.tgz#fdbe85a80ccdd3b276746bc77fde83c1ce773eff" + dependencies: + colors "1.1.2" + +jasmine@^2.5.3: + version "2.5.3" + resolved "https://registry.yarnpkg.com/jasmine/-/jasmine-2.5.3.tgz#5441f254e1fc2269deb1dfd93e0e57d565ff4d22" + dependencies: + exit "^0.1.2" + glob "^7.0.6" + jasmine-core "~2.5.2" + +jasminewd2@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/jasminewd2/-/jasminewd2-2.0.0.tgz#10aacd2c588c1ceb6a0b849f1a7f3f959f777c91" + jju@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/jju/-/jju-1.3.0.tgz#dadd9ef01924bc728b03f2f7979bdbd62f7a2aaa" @@ -3214,7 +3589,7 @@ jquery-slimscroll@1.3.8: version "3.2.1" resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.2.1.tgz#5c4d9de652af6cd0a770154a631bba12b015c787" -js-base64@^2.1.9: +js-base64@^2.1.5, js-base64@^2.1.9: version "2.1.9" resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.1.9.tgz#f0e80ae039a4bd654b5f281fc93f04a914a7fcce" @@ -3222,7 +3597,7 @@ js-tokens@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" -js-yaml@3.x, js-yaml@^3.4.3, js-yaml@^3.7.0: +js-yaml@^3.4.3, js-yaml@^3.7.0: version "3.8.3" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.8.3.tgz#33a05ec481c850c8875929166fe1beb61c728766" dependencies: @@ -3280,16 +3655,29 @@ json5@^0.5.0: version "0.5.1" resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" -jsonfile@^2.1.0, jsonfile@^2.4.0: +jsonfile@^2.1.0: version "2.4.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" optionalDependencies: graceful-fs "^4.1.6" +jsonfilter@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/jsonfilter/-/jsonfilter-1.1.2.tgz#21ef7cedc75193813c75932e96a98be205ba5a11" + dependencies: + JSONStream "^0.8.4" + minimist "^1.1.0" + stream-combiner "^0.2.1" + through2 "^0.6.3" + jsonify@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" +jsonparse@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-0.0.5.tgz#330542ad3f0a654665b778f3eb2d9a9fa507ac64" + jsonpointer@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" @@ -3323,39 +3711,35 @@ karma-chrome-launcher@2.0.0: fs-access "^1.0.0" which "^1.2.1" -karma-coverage@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/karma-coverage/-/karma-coverage-1.1.1.tgz#5aff8b39cf6994dc22de4c84362c76001b637cf6" +karma-cli@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/karma-cli/-/karma-cli-1.0.1.tgz#ae6c3c58a313a1d00b45164c455b9b86ce17f960" dependencies: - dateformat "^1.0.6" - istanbul "^0.4.0" - lodash "^3.8.0" - minimatch "^3.0.0" - source-map "^0.5.1" + resolve "^1.1.6" -karma-jasmine@1.1.0: +karma-coverage-istanbul-reporter@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-0.2.0.tgz#5766263338adeb0026f7e4ac7a89a5f056c5642c" + dependencies: + istanbul-api "^1.1.1" + +karma-jasmine-html-reporter@0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-0.2.2.tgz#48a8e5ef18807617ee2b5e33c1194c35b439524c" + dependencies: + karma-jasmine "^1.0.2" + +karma-jasmine@1.1.0, karma-jasmine@^1.0.2: version "1.1.0" resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-1.1.0.tgz#22e4c06bf9a182e5294d1f705e3733811b810acf" -karma-mocha-reporter@2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/karma-mocha-reporter/-/karma-mocha-reporter-2.2.3.tgz#04fdda45a1d9697a73871c7472223c581701ab20" - dependencies: - chalk "1.1.3" - -karma-remap-coverage@0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/karma-remap-coverage/-/karma-remap-coverage-0.1.4.tgz#29feff25aa159655cc347586bcf4a200591b3b28" - dependencies: - remap-istanbul "0.8.4" - -karma-sourcemap-loader@0.3.7: +karma-sourcemap-loader@0.3.7, karma-sourcemap-loader@^0.3.7: version "0.3.7" resolved "https://registry.yarnpkg.com/karma-sourcemap-loader/-/karma-sourcemap-loader-0.3.7.tgz#91322c77f8f13d46fed062b042e1009d4c4505d8" dependencies: graceful-fs "^4.1.2" -karma-webpack@2.0.3: +karma-webpack@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/karma-webpack/-/karma-webpack-2.0.3.tgz#39cebf5ca2580139b27f9ae69b78816b9c82fae6" dependencies: @@ -3365,16 +3749,16 @@ karma-webpack@2.0.3: source-map "^0.1.41" webpack-dev-middleware "^1.0.11" -karma@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/karma/-/karma-1.6.0.tgz#0e871d4527d5eac56c41d181f03c5c0a7e6dbf3e" +karma@1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/karma/-/karma-1.4.1.tgz#41981a71d54237606b0a3ea8c58c90773f41650e" dependencies: bluebird "^3.3.0" - body-parser "^1.16.1" + body-parser "^1.12.4" chokidar "^1.4.1" colors "^1.1.0" combine-lists "^1.0.0" - connect "^3.6.0" + connect "^3.3.5" core-js "^2.2.0" di "^0.0.1" dom-serialize "^2.2.0" @@ -3386,27 +3770,21 @@ karma@1.6.0: lodash "^3.8.0" log4js "^0.6.31" mime "^1.3.4" - minimatch "^3.0.2" + minimatch "^3.0.0" optimist "^0.6.1" qjobs "^1.1.4" range-parser "^1.2.0" - rimraf "^2.6.0" + rimraf "^2.3.3" safe-buffer "^5.0.1" - socket.io "1.7.3" + socket.io "1.7.2" source-map "^0.5.3" - tmp "0.0.31" - useragent "^2.1.12" + tmp "0.0.28" + useragent "^2.1.10" keypress@0.1.x: version "0.1.0" resolved "https://registry.yarnpkg.com/keypress/-/keypress-0.1.0.tgz#4a3188d4291b66b4f65edb99f806aa9ae293592a" -kind-of@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-2.0.1.tgz#018ec7a4ce7e3a86cb9141be519d24c8faa981b5" - dependencies: - is-buffer "^1.0.2" - kind-of@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.1.0.tgz#475d698a5e49ff5e53d14e3e732429dc8bf4cf47" @@ -3419,16 +3797,16 @@ klaw@^1.0.0: optionalDependencies: graceful-fs "^4.1.9" +known-css-properties@^0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.0.7.tgz#9104343a2adfd8ef3b07bdee7a325e4d44ed9371" + latest-version@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" dependencies: package-json "^4.0.0" -lazy-cache@^0.2.3: - version "0.2.7" - resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-0.2.7.tgz#7feddf2dcb6edb77d11ef1d117ab5ffdf0ab1b65" - lazy-cache@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" @@ -3443,6 +3821,13 @@ lcid@^1.0.0: dependencies: invert-kv "^1.0.0" +ldjson-stream@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ldjson-stream/-/ldjson-stream-1.2.1.tgz#91beceda5ac4ed2b17e649fb777e7abfa0189c2b" + dependencies: + split2 "^0.2.1" + through2 "^0.6.1" + leaflet-map@0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/leaflet-map/-/leaflet-map-0.2.1.tgz#eb19fa8fa14e87ba7bf8e5d80a7bce2ccc448d20" @@ -3453,12 +3838,24 @@ leaflet@0.7.7, leaflet@^0.7.3: version "0.7.7" resolved "https://registry.yarnpkg.com/leaflet/-/leaflet-0.7.7.tgz#1e352ba54e63d076451fa363c900890cb2cf75ee" -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" +less-loader@2.2.3, less-loader@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-2.2.3.tgz#b6d8f8139c8493df09d992a93a00734b08f84528" dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" + loader-utils "^0.2.5" + +less@^2.7.2: + version "2.7.2" + resolved "https://registry.yarnpkg.com/less/-/less-2.7.2.tgz#368d6cc73e1fb03981183280918743c5dcf9b3df" + optionalDependencies: + errno "^0.1.1" + graceful-fs "^4.1.2" + image-size "~0.5.0" + mime "^1.2.11" + mkdirp "^0.5.0" + promise "^7.1.1" + request "^2.72.0" + source-map "^0.5.3" load-json-file@^1.0.0: version "1.1.0" @@ -3483,7 +3880,7 @@ loader-runner@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2" -loader-utils@^0.2.15, loader-utils@^0.2.16, loader-utils@^0.2.5, loader-utils@~0.2.2: +loader-utils@0.2.x, loader-utils@^0.2.15, loader-utils@^0.2.16, loader-utils@^0.2.5, loader-utils@^0.2.7, loader-utils@^0.2.9, loader-utils@~0.2.2, loader-utils@~0.2.5: version "0.2.17" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" dependencies: @@ -3492,7 +3889,7 @@ loader-utils@^0.2.15, loader-utils@^0.2.16, loader-utils@^0.2.5, loader-utils@~0 json5 "^0.5.0" object-assign "^4.0.1" -loader-utils@^1.0.0, loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1.0: +loader-utils@^1.0.0, loader-utils@^1.0.2, loader-utils@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" dependencies: @@ -3527,9 +3924,9 @@ lodash._basefor@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/lodash._basefor/-/lodash._basefor-3.0.3.tgz#7550b4e9218ef09fad24343b612021c79b4c20c2" -lodash._basetostring@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5" +lodash._baseindexof@*: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz#fe52b53a1c6761e42618d654e4a25789ed61822c" lodash._baseuniq@~4.6.0: version "4.6.0" @@ -3538,14 +3935,14 @@ lodash._baseuniq@~4.6.0: lodash._createset "~4.0.0" lodash._root "~3.0.0" -lodash._basevalues@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7" - -lodash._bindcallback@^3.0.0: +lodash._bindcallback@*, lodash._bindcallback@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" +lodash._cacheindexof@*: + version "3.0.2" + resolved "https://registry.yarnpkg.com/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz#3dc69ac82498d2ee5e3ce56091bafd2adc7bde92" + lodash._createassigner@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz#838a5bae2fdaca63ac22dee8e19fa4e6d6970b11" @@ -3554,11 +3951,17 @@ lodash._createassigner@^3.0.0: lodash._isiterateecall "^3.0.0" lodash.restparam "^3.0.0" +lodash._createcache@*: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash._createcache/-/lodash._createcache-3.1.2.tgz#56d6a064017625e79ebca6b8018e17440bdcf093" + dependencies: + lodash._getnative "^3.0.0" + lodash._createset@~4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/lodash._createset/-/lodash._createset-4.0.3.tgz#0f4659fbb09d75194fa9e2b88a6644d363c9fe26" -lodash._getnative@^3.0.0: +lodash._getnative@*, lodash._getnative@^3.0.0: version "3.9.1" resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" @@ -3566,19 +3969,7 @@ lodash._isiterateecall@^3.0.0: version "3.0.9" resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" -lodash._reescape@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._reescape/-/lodash._reescape-3.0.0.tgz#2b1d6f5dfe07c8a355753e5f27fac7f1cde1616a" - -lodash._reevaluate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz#58bc74c40664953ae0b124d806996daca431e2ed" - -lodash._reinterpolate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" - -lodash._root@^3.0.0, lodash._root@~3.0.0: +lodash._root@~3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" @@ -3613,12 +4004,6 @@ lodash.defaults@^4.0.0: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" -lodash.escape@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698" - dependencies: - lodash._root "^3.0.0" - lodash.isarguments@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" @@ -3678,35 +4063,10 @@ lodash.mergewith@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz#150cf0a16791f5903b8891eab154609274bdea55" -lodash.restparam@^3.0.0: +lodash.restparam@*, lodash.restparam@^3.0.0: version "3.6.1" resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" -lodash.tail@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.tail/-/lodash.tail-4.1.1.tgz#d2333a36d9e7717c8ad2f7cacafec7c32b444664" - -lodash.template@^3.0.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-3.6.2.tgz#f8cdecc6169a255be9098ae8b0c53d378931d14f" - dependencies: - lodash._basecopy "^3.0.0" - lodash._basetostring "^3.0.0" - lodash._basevalues "^3.0.0" - lodash._isiterateecall "^3.0.0" - lodash._reinterpolate "^3.0.0" - lodash.escape "^3.0.0" - lodash.keys "^3.0.0" - lodash.restparam "^3.0.0" - lodash.templatesettings "^3.0.0" - -lodash.templatesettings@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz#fb307844753b66b9f1afa54e262c745307dba8e5" - dependencies: - lodash._reinterpolate "^3.0.0" - lodash.escape "^3.0.0" - lodash.toplainobject@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash.toplainobject/-/lodash.toplainobject-3.0.0.tgz#28790ad942d293d78aa663a07ecf7f52ca04198d" @@ -3726,7 +4086,7 @@ lodash.without@~4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.without/-/lodash.without-4.4.0.tgz#3cd4574a00b67bae373a94b748772640507b7aac" -lodash@4.17.4, lodash@^4, lodash@^4.0.0, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0, lodash@^4.5.0: +lodash@4.17.4, lodash@^4, lodash@^4.0.0, lodash@^4.1.0, lodash@^4.11.1, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0, lodash@^4.5.0: version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" @@ -3738,6 +4098,12 @@ lodash@~4.16.4: version "4.16.6" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.16.6.tgz#d22c9ac660288f3843e16ba7d2b5d06cca27d777" +log-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" + dependencies: + chalk "^1.0.0" + log4js@^0.6.31: version "0.6.38" resolved "https://registry.yarnpkg.com/log4js/-/log4js-0.6.38.tgz#2c494116695d6fb25480943d3fc872e662a522fd" @@ -3795,6 +4161,12 @@ magic-string@^0.16.0: dependencies: vlq "^0.2.1" +magic-string@^0.19.0: + version "0.19.0" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.19.0.tgz#198948217254e3e0b93080e01146b7c73b2a06b2" + dependencies: + vlq "^0.2.1" + make-error@^1.1.1: version "1.2.3" resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.2.3.tgz#6c4402df732e0977ac6faf754a5074b3d2b1d19d" @@ -3817,6 +4189,12 @@ marked@^0.3.5, marked@~0.3.6: version "0.3.6" resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.6.tgz#b2c6c618fccece4ef86c4fc6cb8a7cbf5aeda8d7" +matcher-collection@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/matcher-collection/-/matcher-collection-1.0.4.tgz#2f66ae0869996f29e43d0b62c83dd1d43e581755" + dependencies: + minimatch "^3.0.2" + math-expression-evaluator@^1.2.14: version "1.2.16" resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.16.tgz#b357fa1ca9faefb8e48d10c14ef2bcb2d9f0a7c9" @@ -3890,7 +4268,11 @@ mime-types@^2.1.11, mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.15, dependencies: mime-db "~1.27.0" -mime@1.3.4, mime@1.3.x, mime@^1.2.11, mime@^1.3.4, mime@~1.3.4: +mime@1.2.x: + version "1.2.11" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.2.11.tgz#58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10" + +mime@1.3.4, mime@^1.2.11, mime@^1.3.4, mime@~1.3.4: version "1.3.4" resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" @@ -3898,6 +4280,10 @@ mimeparse@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/mimeparse/-/mimeparse-0.1.4.tgz#dafb02752370fd226093ae3152c271af01ac254a" +mimic-fn@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" + minimalistic-assert@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3" @@ -3913,7 +4299,7 @@ minimatch@0.3: lru-cache "2" sigmund "~1.0.0" -"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@~3.0.2, minimatch@~3.0.3: +"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@~3.0.2, minimatch@~3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" dependencies: @@ -3931,13 +4317,6 @@ minimist@~0.0.1: version "0.0.10" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" -mixin-object@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/mixin-object/-/mixin-object-2.0.1.tgz#4fb949441dab182540f1fe035ba60e1947a5e57e" - dependencies: - for-in "^0.1.3" - is-extendable "^0.1.1" - mkdirp@0.3: version "0.3.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.5.tgz#de3e5f8961c88c787ee1368df849ac4413eca8d7" @@ -3966,19 +4345,22 @@ ms@0.7.2: version "0.7.2" resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" -multipipe@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b" +multimatch@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b" dependencies: - duplexer2 "0.0.2" + array-differ "^1.0.0" + array-union "^1.0.1" + arrify "^1.0.0" + minimatch "^3.0.0" -mute-stream@~0.0.4: +mute-stream@0.0.7, mute-stream@~0.0.4: version "0.0.7" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" nan@^2.3.0, nan@^2.3.2: - version "2.6.1" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.1.tgz#8c84f7b14c96b89f57fbc838012180ec8ca39a01" + version "2.6.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45" ncname@1.0.x: version "1.0.0" @@ -4109,6 +4491,10 @@ node-libs-browser@^2.0.0: util "^0.10.3" vm-browserify "0.0.4" +node-modules-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/node-modules-path/-/node-modules-path-1.0.1.tgz#40096b08ce7ad0ea14680863af449c7c75a5d1c8" + node-pre-gyp@^0.6.29: version "0.6.34" resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.34.tgz#94ad1c798a11d7fc67381b50d47f8cc18d9799f7" @@ -4123,7 +4509,7 @@ node-pre-gyp@^0.6.29: tar "^2.2.1" tar-pack "^3.4.0" -node-sass@4.5.2: +node-sass@4.5.2, node-sass@^4.3.0: version "4.5.2" resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.5.2.tgz#4012fa2bd129b1d6365117e88d9da0500d99da64" dependencies: @@ -4171,7 +4557,7 @@ node-uuid@~1.4.7: version "1.4.8" resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907" -"nopt@2 || 3", nopt@3.x, nopt@~3.0.6: +"nopt@2 || 3", nopt@~3.0.6: version "3.0.6" resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" dependencies: @@ -4213,6 +4599,10 @@ normalize-range@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" +normalize-selector@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/normalize-selector/-/normalize-selector-0.2.0.tgz#d0b145eb691189c63a78d201dc4fdb1293ef0c03" + normalize-url@^1.4.0: version "1.9.1" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" @@ -4236,7 +4626,7 @@ npm-install-checks@~3.0.0: dependencies: semver "^2.3.0 || 3.x || 4 || 5" -"npm-package-arg@^3.0.0 || ^4.0.0", npm-package-arg@^4.0.0, npm-package-arg@^4.1.1, npm-package-arg@~4.2.0: +"npm-package-arg@^3.0.0 || ^4.0.0", "npm-package-arg@^4.0.0 || ^5.0.0", npm-package-arg@^4.1.1, npm-package-arg@~4.2.0: version "4.2.1" resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-4.2.1.tgz#593303fdea85f7c422775f17f9eb7670f680e3ec" dependencies: @@ -4413,10 +4803,6 @@ object-assign@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" -object-assign@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" - object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" @@ -4458,12 +4844,22 @@ on-headers@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7" -once@1.x, once@^1.3.0, once@^1.3.3, once@~1.4.0: +once@^1.3.0, once@^1.3.3, once@^1.4.0, once@~1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" dependencies: wrappy "1" +onecolor@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/onecolor/-/onecolor-3.0.4.tgz#75a46f80da6c7aaa5b4daae17a47198bd9652494" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + dependencies: + mimic-fn "^1.0.0" + opener@~1.4.0, opener@~1.4.2: version "1.4.3" resolved "https://registry.yarnpkg.com/opener/-/opener-1.4.3.tgz#5c6da2c5d7e5831e8ffa3964950f8d6674ac90b8" @@ -4482,6 +4878,12 @@ optimist@0.6.x, optimist@^0.6.1, optimist@~0.6.0: minimist "~0.0.1" wordwrap "~0.0.2" +optimist@~0.3, optimist@~0.3.5: + version "0.3.7" + resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.3.7.tgz#c90941ad59e4273328923074d2cf2e7cbc6ec0d9" + dependencies: + wordwrap "~0.0.2" + optimize-js-plugin@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/optimize-js-plugin/-/optimize-js-plugin-0.0.4.tgz#69e7a67e0f66c69f7fc0c7b25c5d33b2db6c2817" @@ -4499,17 +4901,6 @@ optimize-js@^1.0.0: magic-string "^0.16.0" yargs "^4.8.1" -optionator@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.4" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - wordwrap "~1.0.0" - options@>=0.0.5: version "0.0.6" resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f" @@ -4546,8 +4937,8 @@ osenv@0, osenv@^0.1.4, osenv@~0.1.3: os-tmpdir "^1.0.0" package-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.0.tgz#f3c9dc8738f5b59304d54d2cfb3f91d08fdd7998" + version "4.0.1" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" dependencies: got "^6.7.1" registry-auth-token "^3.0.1" @@ -4589,12 +4980,6 @@ parse-json@^2.2.0: dependencies: error-ex "^1.2.0" -parse5@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.2.tgz#05eff57f0ef4577fb144a79f8b9a967a6cc44510" - dependencies: - "@types/node" "^6.0.46" - parsejson@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/parsejson/-/parsejson-0.0.3.tgz#ab7e3759f209ece99437973f7d0f1f64ae0e64ab" @@ -4687,7 +5072,7 @@ performance-now@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" -pify@^2.0.0, pify@^2.3.0: +pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -4701,6 +5086,19 @@ pinkie@^2.0.0, pinkie@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" +pipetteur@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/pipetteur/-/pipetteur-2.0.3.tgz#1955760959e8d1a11cb2a50ec83eec470633e49f" + dependencies: + onecolor "^3.0.4" + synesthesia "^1.0.1" + +plur@^2.0.0, plur@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/plur/-/plur-2.1.2.tgz#7482452c1a0f508e3e344eaec312c91c29dc655a" + dependencies: + irregular-plurals "^1.0.0" + portfinder@0.4.x: version "0.4.0" resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-0.4.0.tgz#a3ffadffafe4fb98e0601a85eda27c27ce84ca1e" @@ -4708,7 +5106,7 @@ portfinder@0.4.x: async "0.9.0" mkdirp "0.5.x" -portfinder@^1.0.9: +portfinder@^1.0.9, portfinder@~1.0.12: version "1.0.13" resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.13.tgz#bb32ecd87c27104ae6ee44b5a3ccbf0ebb1aede9" dependencies: @@ -4777,37 +5175,22 @@ postcss-filter-plugins@^2.0.0: postcss "^5.0.4" uniqid "^4.0.0" -postcss-load-config@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-1.2.0.tgz#539e9afc9ddc8620121ebf9d8c3673e0ce50d28a" +postcss-less@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/postcss-less/-/postcss-less-0.14.0.tgz#c631b089c6cce422b9a10f3a958d2bedd3819324" dependencies: - cosmiconfig "^2.1.0" - object-assign "^4.1.0" - postcss-load-options "^1.2.0" - postcss-load-plugins "^2.3.0" + postcss "^5.0.21" -postcss-load-options@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-load-options/-/postcss-load-options-1.2.0.tgz#b098b1559ddac2df04bc0bb375f99a5cfe2b6d8c" +postcss-loader@0.13.0, postcss-loader@^0.13.0: + version "0.13.0" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-0.13.0.tgz#72fdaf0d29444df77d3751ce4e69dc40bc99ed85" dependencies: - cosmiconfig "^2.1.0" - object-assign "^4.1.0" + loader-utils "^0.2.15" + postcss "^5.2.0" -postcss-load-plugins@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz#745768116599aca2f009fad426b00175049d8d92" - dependencies: - cosmiconfig "^2.1.1" - object-assign "^4.1.0" - -postcss-loader@1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-1.3.3.tgz#a621ea1fa29062a83972a46f54486771301916eb" - dependencies: - loader-utils "^1.0.2" - object-assign "^4.1.1" - postcss "^5.2.15" - postcss-load-config "^1.2.0" +postcss-media-query-parser@^0.2.0: + version "0.2.3" + resolved "https://registry.yarnpkg.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz#27b39c6f4d94f81b1a73b8f76351c609e5cef244" postcss-merge-idents@^2.1.5: version "2.1.7" @@ -4940,7 +5323,35 @@ postcss-reduce-transforms@^1.0.3: postcss "^5.0.8" postcss-value-parser "^3.0.1" -postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2: +postcss-reporter@^1.2.1, postcss-reporter@^1.3.3: + version "1.4.1" + resolved "https://registry.yarnpkg.com/postcss-reporter/-/postcss-reporter-1.4.1.tgz#c136f0a5b161915f379dd3765c61075f7e7b9af2" + dependencies: + chalk "^1.0.0" + lodash "^4.1.0" + log-symbols "^1.0.2" + postcss "^5.0.0" + +postcss-reporter@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-reporter/-/postcss-reporter-3.0.0.tgz#09ea0f37a444c5693878606e09b018ebeff7cf8f" + dependencies: + chalk "^1.0.0" + lodash "^4.1.0" + log-symbols "^1.0.2" + postcss "^5.0.0" + +postcss-resolve-nested-selector@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz#29ccbc7c37dedfac304e9fff0bf1596b3f6a0e4e" + +postcss-scss@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-0.4.1.tgz#ad771b81f0f72f5f4845d08aa60f93557653d54c" + dependencies: + postcss "^5.2.13" + +postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.1.1, postcss-selector-parser@^2.2.2: version "2.2.3" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90" dependencies: @@ -4965,6 +5376,18 @@ postcss-unique-selectors@^2.0.2: postcss "^5.0.4" uniqs "^2.0.0" +postcss-url@5.1.2, postcss-url@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/postcss-url/-/postcss-url-5.1.2.tgz#98b3165be8d592471cb0caadde2c0d1f832f133e" + dependencies: + directory-encoder "^0.7.2" + js-base64 "^2.1.5" + mime "^1.2.11" + minimatch "^3.0.0" + mkdirp "^0.5.0" + path-is-absolute "^1.0.0" + postcss "^5.0.0" + postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15" @@ -4977,19 +5400,15 @@ postcss-zindex@^2.0.1: postcss "^5.0.4" uniqs "^2.0.0" -postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.15, postcss@^5.2.16: - version "5.2.16" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.16.tgz#732b3100000f9ff8379a48a53839ed097376ad57" +postcss@^5.0.0, postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.18, postcss@^5.0.2, postcss@^5.0.20, postcss@^5.0.21, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.0, postcss@^5.2.13, postcss@^5.2.4, postcss@^5.2.5: + version "5.2.17" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.17.tgz#cf4f597b864d65c8a492b2eabe9d706c879c388b" dependencies: chalk "^1.1.3" js-base64 "^2.1.9" source-map "^0.5.6" supports-color "^3.2.3" -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - prepend-http@^1.0.0, prepend-http@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" @@ -5035,7 +5454,7 @@ progress@^1.1.8: version "1.1.8" resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" -promise@^7.0.1: +promise@^7.0.1, promise@^7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/promise/-/promise-7.1.1.tgz#489654c692616b8aa55b0724fa809bb7db49c5bf" dependencies: @@ -5051,6 +5470,26 @@ proto-list@~1.2.1: version "1.2.4" resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" +protractor@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/protractor/-/protractor-5.1.0.tgz#d2650f2f1fe69031aad35284eec1ef79a50625a1" + dependencies: + "@types/node" "^6.0.46" + "@types/q" "^0.0.32" + "@types/selenium-webdriver" "~2.53.39" + blocking-proxy "0.0.4" + chalk "^1.1.3" + glob "^7.0.3" + jasmine "^2.5.3" + jasminewd2 "^2.0.0" + optimist "~0.6.0" + q "1.4.1" + saucelabs "~1.3.0" + selenium-webdriver "3.0.1" + source-map-support "~0.4.0" + webdriver-js-extender "^1.0.0" + webdriver-manager "^12.0.1" + proxy-addr@~1.1.3: version "1.1.4" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.1.4.tgz#27e545f6960a44a627d9b44467e35c1b6b4ce2f3" @@ -5101,7 +5540,7 @@ q-io@1.13.2: qs "^1.2.1" url2 "^0.0.0" -q@1.4.1, q@^1.0.1, q@^1.1.2: +q@1.4.1, q@^1.0.1, q@^1.1.2, q@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e" @@ -5126,8 +5565,8 @@ qs@~6.2.0: resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.3.tgz#1cfcb25c10a9b2b483053ff39f5dfc9233908cfe" query-string@^4.1.0: - version "4.3.2" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.2.tgz#ec0fd765f58a50031a3968c2431386f8947a5cdd" + version "4.3.3" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.3.tgz#91c90ff7173d9acd9e088b3cc223f9b437865692" dependencies: object-assign "^4.1.0" strict-uri-encode "^1.0.0" @@ -5167,7 +5606,7 @@ raw-body@~2.2.0: iconv-lite "0.4.15" unpipe "1.0.0" -raw-loader@0.5.1: +raw-loader@0.5.1, raw-loader@^0.5.1, raw-loader@~0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-0.5.1.tgz#0c3d0beaed8a01c966d9787bf778281252a979aa" @@ -5186,6 +5625,12 @@ read-cmd-shim@~1.0.1: dependencies: graceful-fs "^4.1.2" +read-file-stdin@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/read-file-stdin/-/read-file-stdin-0.2.1.tgz#25eccff3a153b6809afacb23ee15387db9e0ee61" + dependencies: + gather-stream "^1.0.0" + read-installed@~4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/read-installed/-/read-installed-4.0.3.tgz#ff9b8b67f187d1e4c29b9feb31f6b223acd19067" @@ -5260,7 +5705,7 @@ read@1, read@~1.0.1, read@~1.0.7: string_decoder "~1.0.0" util-deprecate "~1.0.1" -readable-stream@1.0, readable-stream@~1.0.2: +readable-stream@1.0, "readable-stream@>=1.0.33-1 <1.1.0-0", readable-stream@~1.0.2: version "1.0.34" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" dependencies: @@ -5269,7 +5714,7 @@ readable-stream@1.0, readable-stream@~1.0.2: isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@~1.1.9: +readable-stream@^1.0.33, readable-stream@~1.1.9: version "1.1.14" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" dependencies: @@ -5301,7 +5746,7 @@ readable-stream@~2.1.5: string_decoder "~0.10.x" util-deprecate "~1.0.1" -readdir-scoped-modules@^1.0.0: +readdir-scoped-modules@*, readdir-scoped-modules@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz#9fafa37d286be5d92cbaebdee030dc9b5f406747" dependencies: @@ -5423,16 +5868,6 @@ relateurl@0.2.x: version "0.2.7" resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" -remap-istanbul@0.8.4: - version "0.8.4" - resolved "https://registry.yarnpkg.com/remap-istanbul/-/remap-istanbul-0.8.4.tgz#b4bfdfdbc90efa635e9a28b1f4a116e22c8c2697" - dependencies: - amdefine "^1.0.0" - gulp-util "3.0.7" - istanbul "0.4.5" - source-map ">=0.5.6" - through2 "2.0.1" - remove-trailing-separator@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.0.1.tgz#615ebb96af559552d4bf4057c8436d486ab63cc4" @@ -5465,11 +5900,7 @@ repeating@^2.0.0: dependencies: is-finite "^1.0.0" -replace-ext@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924" - -request@2, request@^2.45.0, request@^2.61.0, request@^2.74.0, request@^2.79.0, request@^2.81.0: +request@2, request@^2.45.0, request@^2.61.0, request@^2.72.0, request@^2.74.0, request@^2.78.0, request@^2.79.0, request@^2.81.0: version "2.81.0" resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" dependencies: @@ -5538,6 +5969,10 @@ requires-port@1.0.x, requires-port@1.x.x: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" +resolve-from@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" + resolve-url-loader@2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-2.0.2.tgz#c465e97ea0a4791f3961f766cea775ff2e3ceb8c" @@ -5556,16 +5991,19 @@ resolve-url@~0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" -resolve@1.1.x: - version "1.1.7" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" - resolve@^1.1.6, resolve@^1.1.7: version "1.3.2" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.2.tgz#1f0442c9e0cbb8136e87b9305f932f46c7f28235" dependencies: path-parse "^1.0.5" +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + retry@^0.10.0, retry@~0.10.0: version "0.10.1" resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" @@ -5587,12 +6025,16 @@ right-align@^0.1.1: dependencies: align-text "^0.1.1" -rimraf@2, rimraf@2.6.1, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.1: +rimraf@2, rimraf@2.6.1, rimraf@^2.2.8, rimraf@^2.3.3, rimraf@^2.4.4, rimraf@^2.5.1, rimraf@^2.5.2, rimraf@^2.5.3, rimraf@^2.5.4, rimraf@^2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" dependencies: glob "^7.0.5" +rimraf@~2.2.6: + version "2.2.8" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582" + rimraf@~2.5.4: version "2.5.4" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04" @@ -5607,9 +6049,23 @@ roboto-fontface@0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/roboto-fontface/-/roboto-fontface-0.7.0.tgz#2f36464e5c99353e8427f55f1fca7be1a8a417d9" -rxjs@5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.3.0.tgz#d88ccbdd46af290cbdb97d5d8055e52453fabe2d" +rsvp@^3.0.17: + version "3.5.0" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.5.0.tgz#a62c573a4ae4e1dfd0697ebc6242e79c681eaa34" + +run-async@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" + dependencies: + is-promise "^2.1.0" + +rx@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" + +rxjs@5.1.0, rxjs@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.1.0.tgz#0aa9018b7f440b505fa42bd742b6738be550e720" dependencies: symbol-observable "^1.0.1" @@ -5625,17 +6081,29 @@ sass-graph@^2.1.1: lodash "^4.0.0" yargs "^4.7.1" -sass-loader@*, sass-loader@6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-6.0.3.tgz#33983b1f90d27ddab0e57d0dac403dce9bc7ecfd" +sass-loader@*, sass-loader@4.1.1, sass-loader@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-4.1.1.tgz#79ef9468cf0bf646c29529e1f2cba6bd6e51c7bc" dependencies: - async "^2.1.5" - clone-deep "^0.2.4" - loader-utils "^1.0.1" - lodash.tail "^4.1.1" - pify "^2.3.0" + async "^2.0.1" + loader-utils "^0.2.15" + object-assign "^4.1.0" -sax@~1.2.1: +saucelabs@~1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/saucelabs/-/saucelabs-1.3.0.tgz#d240e8009df7fa87306ec4578a69ba3b5c424fee" + dependencies: + https-proxy-agent "^1.0.0" + +sax@0.5.x: + version "0.5.8" + resolved "https://registry.yarnpkg.com/sax/-/sax-0.5.8.tgz#d472db228eb331c2506b0e8c15524adb939d12c1" + +sax@0.6.x: + version "0.6.1" + resolved "https://registry.yarnpkg.com/sax/-/sax-0.6.1.tgz#563b19c7c1de892e09bfc4f2fc30e3c27f0952b9" + +sax@>=0.6.0, sax@~1.2.1: version "1.2.2" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.2.tgz#fd8631a23bc7826bef5d871bdb87378c95647828" @@ -5645,22 +6113,41 @@ script-ext-html-webpack-plugin@1.7.1: dependencies: debug "^2.3.3" +script-loader@0.7.0, script-loader@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/script-loader/-/script-loader-0.7.0.tgz#685dc7e7069e0dee7a92674f0ebc5b0f55baa5ec" + dependencies: + raw-loader "~0.5.1" + select-hose@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" +selenium-webdriver@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-3.0.1.tgz#a2dea5da4a97f6672e89e7ca7276cefa365147a7" + dependencies: + adm-zip "^0.4.7" + rimraf "^2.5.4" + tmp "0.0.30" + xml2js "^0.4.17" + +selenium-webdriver@^2.53.2: + version "2.53.3" + resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-2.53.3.tgz#d29ff5a957dff1a1b49dc457756e4e4bfbdce085" + dependencies: + adm-zip "0.4.4" + rimraf "^2.2.8" + tmp "0.0.24" + ws "^1.0.1" + xml2js "0.4.4" + semver-diff@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" dependencies: semver "^5.0.3" -semver-dsl@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/semver-dsl/-/semver-dsl-1.0.1.tgz#d3678de5555e8a61f629eed025366ae5f27340a0" - dependencies: - semver "^5.3.0" - "semver@2 >=2.2.1 || 3.x || 4 || 5", "semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", "semver@^2.3.0 || 3.x || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@~5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" @@ -5669,6 +6156,10 @@ semver@~4.3.3: version "4.3.6" resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" +semver@~5.0.1: + version "5.0.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.0.3.tgz#77466de589cd5d3c95f138aa78bc569a3cb5d27a" + send@0.15.1: version "0.15.1" resolved "https://registry.yarnpkg.com/send/-/send-0.15.1.tgz#8a02354c26e6f5cca700065f5f0cdeba90ec7b5f" @@ -5745,15 +6236,6 @@ sha@~2.0.1: graceful-fs "^4.1.2" readable-stream "^2.0.2" -shallow-clone@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-0.1.2.tgz#5909e874ba77106d73ac414cfec1ffca87d97060" - dependencies: - is-extendable "^0.1.1" - kind-of "^2.0.1" - lazy-cache "^0.2.3" - mixin-object "^2.0.1" - shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" @@ -5785,16 +6267,26 @@ sigmund@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" -signal-exit@^3.0.0: +signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" +silent-error@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/silent-error/-/silent-error-1.0.1.tgz#71b7d503d1c6f94882b51b56be879b113cb4822c" + dependencies: + debug "^2.2.0" + single-line-log@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/single-line-log/-/single-line-log-1.1.2.tgz#c2f83f273a3e1a16edb0995661da0ed5ef033364" dependencies: string-width "^1.0.1" +slice-ansi@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + slide@^1.1.3, slide@^1.1.5, slide@~1.1.3, slide@~1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" @@ -5816,15 +6308,15 @@ socket.io-adapter@0.5.0: debug "2.3.3" socket.io-parser "2.3.1" -socket.io-client@1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-1.7.3.tgz#b30e86aa10d5ef3546601c09cde4765e381da377" +socket.io-client@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-1.7.2.tgz#39fdb0c3dd450e321b7e40cfd83612ec533dd644" dependencies: backo2 "1.0.2" component-bind "1.0.0" component-emitter "1.2.1" debug "2.3.3" - engine.io-client "1.8.3" + engine.io-client "1.8.2" has-binary "0.1.7" indexof "0.0.1" object-component "0.0.3" @@ -5841,24 +6333,24 @@ socket.io-parser@2.3.1: isarray "0.0.1" json3 "3.3.2" -socket.io@1.7.3: - version "1.7.3" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-1.7.3.tgz#b8af9caba00949e568e369f1327ea9be9ea2461b" +socket.io@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-1.7.2.tgz#83bbbdf2e79263b378900da403e7843e05dc3b71" dependencies: debug "2.3.3" - engine.io "1.8.3" + engine.io "1.8.2" has-binary "0.1.7" object-assign "4.1.0" socket.io-adapter "0.5.0" - socket.io-client "1.7.3" + socket.io-client "1.7.2" socket.io-parser "2.3.1" -sockjs-client@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.2.tgz#f0212a8550e4c9468c8cceaeefd2e3493c033ad5" +sockjs-client@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.1.tgz#284843e9a9784d7c474b1571b3240fca9dda4bb0" dependencies: debug "^2.2.0" - eventsource "0.1.6" + eventsource "~0.1.6" faye-websocket "~0.11.0" inherits "^2.0.1" json3 "^3.3.2" @@ -5881,17 +6373,13 @@ sorted-object@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/sorted-object/-/sorted-object-2.0.1.tgz#7d631f4bd3a798a24af1dffcfbfe83337a5df5fc" -source-list-map@^0.1.7, source-list-map@~0.1.7: +source-list-map@^0.1.4, source-list-map@~0.1.7: version "0.1.8" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.8.tgz#c550b2ab5427f6b3f21f5afead88c4f5587b2106" -source-list-map@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-1.1.1.tgz#1a33ac210ca144d1e561f906ebccab5669ff4cb4" - -source-map-loader@0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-0.2.1.tgz#48126be9230bd47fad05e46a8c3c2e3d2dabe507" +source-map-loader@0.1.5, source-map-loader@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-0.1.5.tgz#0ec6ca58aa0e61463a28673dd4c49e8ba67dc718" dependencies: async "^0.9.0" loader-utils "~0.2.2" @@ -5906,7 +6394,7 @@ source-map-resolve@^0.3.0: source-map-url "~0.3.0" urix "~0.1.0" -source-map-support@^0.4.0, source-map-support@^0.4.11, source-map-support@^0.4.2: +source-map-support@^0.4.0, source-map-support@^0.4.11, source-map-support@^0.4.2, source-map-support@~0.4.0: version "0.4.14" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.14.tgz#9d4463772598b86271b4f523f6c1f4e02a7d6aef" dependencies: @@ -5916,31 +6404,21 @@ source-map-url@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.3.0.tgz#7ecaf13b57bcd09da8a40c5d269db33799d4aaf9" -source-map@0.4.x, source-map@^0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" - dependencies: - amdefine ">=0.0.4" - -source-map@0.5.x, source-map@>=0.5.6, source-map@^0.5.0, source-map@^0.5.1, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.0, source-map@~0.5.1, source-map@~0.5.3: - version "0.5.6" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" - -source-map@^0.1.38, source-map@^0.1.41, source-map@~0.1.33: +source-map@0.1.x, source-map@^0.1.38, source-map@^0.1.41, source-map@~0.1.33, source-map@~0.1.7: version "0.1.43" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" dependencies: amdefine ">=0.0.4" -source-map@~0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d" +source-map@0.4.x, source-map@^0.4.2, source-map@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" dependencies: amdefine ">=0.0.4" -sparkles@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.0.tgz#1acbbfb592436d10bbe8f785b7cc6f82815012c3" +source-map@0.5.x, source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.0, source-map@~0.5.1, source-map@~0.5.3: + version "0.5.6" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" spdx-correct@~1.0.0: version "1.0.2" @@ -5976,10 +6454,20 @@ spdy@^3.4.1: select-hose "^2.0.0" spdy-transport "^2.0.15" +specificity@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/specificity/-/specificity-0.3.0.tgz#332472d4e5eb5af20821171933998a6bc3b1ce6f" + speedometer@~0.1.2: version "0.1.4" resolved "https://registry.yarnpkg.com/speedometer/-/speedometer-0.1.4.tgz#9876dbd2a169d3115402d48e6ea6329c8816a50d" +split2@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/split2/-/split2-0.2.1.tgz#02ddac9adc03ec0bb78c1282ec079ca6e85ae900" + dependencies: + through2 "~0.6.1" + split@0.3: version "0.3.3" resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" @@ -5991,8 +6479,8 @@ sprintf-js@^1.0.3, sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" sshpk@^1.7.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.11.0.tgz#2d8d5ebb4a6fab28ffba37fa62a90f4a3ea59d77" + version "1.13.0" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.0.tgz#ff2a3e4fd04497555fed97b39a0fd82fafb3a33c" dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" @@ -6026,6 +6514,13 @@ stream-browserify@^2.0.1: inherits "~2.0.1" readable-stream "^2.0.2" +stream-combiner@^0.2.1: + version "0.2.2" + resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.2.2.tgz#aec8cbac177b56b6f4fa479ced8c1912cee52858" + dependencies: + duplexer "~0.1.1" + through "~2.3.4" + stream-combiner@~0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" @@ -6120,11 +6615,97 @@ strip-json-comments@^2.0.0, strip-json-comments@^2.0.1, strip-json-comments@~2.0 version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" -style-loader@*, style-loader@0.16.1: - version "0.16.1" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.16.1.tgz#50e325258d4e78421dd9680636b41e8661595d10" +style-loader@*, style-loader@0.13.1, style-loader@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.13.1.tgz#468280efbc0473023cd3a6cd56e33b5a1d7fc3a9" dependencies: - loader-utils "^1.0.2" + loader-utils "^0.2.7" + +style-search@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/style-search/-/style-search-0.1.0.tgz#7958c793e47e32e07d2b5cafe5c0bf8e12e77902" + +stylehacks@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-2.3.2.tgz#64c83e0438a68c9edf449e8c552a7d9ab6009b0b" + dependencies: + browserslist "^1.1.3" + chalk "^1.1.1" + log-symbols "^1.0.2" + minimist "^1.2.0" + plur "^2.1.2" + postcss "^5.0.18" + postcss-reporter "^1.3.3" + postcss-selector-parser "^2.0.0" + read-file-stdin "^0.2.1" + text-table "^0.2.0" + write-file-stdout "0.0.2" + +stylelint@7.10.1: + version "7.10.1" + resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-7.10.1.tgz#209a7ce5e781fc2a62489fbb31ec0201ec675db2" + dependencies: + autoprefixer "^6.0.0" + balanced-match "^0.4.0" + chalk "^1.1.1" + colorguard "^1.2.0" + cosmiconfig "^2.1.1" + debug "^2.6.0" + doiuse "^2.4.1" + execall "^1.0.0" + file-entry-cache "^2.0.0" + get-stdin "^5.0.0" + globby "^6.0.0" + globjoin "^0.1.4" + html-tags "^1.1.1" + ignore "^3.2.0" + imurmurhash "^0.1.4" + known-css-properties "^0.0.7" + lodash "^4.17.4" + log-symbols "^1.0.2" + meow "^3.3.0" + micromatch "^2.3.11" + normalize-selector "^0.2.0" + postcss "^5.0.20" + postcss-less "^0.14.0" + postcss-media-query-parser "^0.2.0" + postcss-reporter "^3.0.0" + postcss-resolve-nested-selector "^0.1.1" + postcss-scss "^0.4.0" + postcss-selector-parser "^2.1.1" + postcss-value-parser "^3.1.1" + resolve-from "^2.0.0" + specificity "^0.3.0" + string-width "^2.0.0" + style-search "^0.1.0" + stylehacks "^2.3.2" + sugarss "^0.2.0" + svg-tags "^1.0.0" + table "^4.0.1" + +stylus-loader@2.4.0, stylus-loader@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/stylus-loader/-/stylus-loader-2.4.0.tgz#2ffbf2854a2071086b88bc338f423ad985b43544" + dependencies: + loader-utils "^0.2.9" + when "~3.6.x" + +stylus@^0.54.5: + version "0.54.5" + resolved "https://registry.yarnpkg.com/stylus/-/stylus-0.54.5.tgz#42b9560931ca7090ce8515a798ba9e6aa3d6dc79" + dependencies: + css-parse "1.7.x" + debug "*" + glob "7.0.x" + mkdirp "0.5.x" + sax "0.5.x" + source-map "0.1.x" + +sugarss@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/sugarss/-/sugarss-0.2.0.tgz#ac34237563327c6ff897b64742bf6aec190ad39e" + dependencies: + postcss "^5.2.4" sumchecker@^1.2.0: version "1.3.1" @@ -6137,12 +6718,16 @@ supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" -supports-color@^3.1.0, supports-color@^3.1.1, supports-color@^3.2.3: +supports-color@^3.1.0, supports-color@^3.1.1, supports-color@^3.1.2, supports-color@^3.2.3: version "3.2.3" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" dependencies: has-flag "^1.0.0" +svg-tags@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" + svgo@^0.7.0: version "0.7.2" resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5" @@ -6159,6 +6744,23 @@ symbol-observable@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d" +synesthesia@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/synesthesia/-/synesthesia-1.0.1.tgz#5ef95ea548c0d5c6e6f9bb4b0d0731dff864a777" + dependencies: + css-color-names "0.0.3" + +table@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/table/-/table-4.0.1.tgz#a8116c133fac2c61f4a420ab6cdf5c4d61f0e435" + dependencies: + ajv "^4.7.0" + ajv-keywords "^1.0.0" + chalk "^1.1.1" + lodash "^4.0.0" + slice-ansi "0.0.4" + string-width "^2.0.0" + tapable@^0.2.5, tapable@~0.2.5: version "0.2.6" resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.6.tgz#206be8e188860b514425375e6f1ae89bfb01fd8d" @@ -6184,17 +6786,24 @@ tar@^2.0.0, tar@^2.2.1, tar@~2.2.1: fstream "^1.0.2" inherits "2" +temp@0.8.3: + version "0.8.3" + resolved "https://registry.yarnpkg.com/temp/-/temp-0.8.3.tgz#e0c6bc4d26b903124410e4fed81103014dfc1f59" + dependencies: + os-tmpdir "^1.0.0" + rimraf "~2.2.6" + term-size@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/term-size/-/term-size-0.1.1.tgz#87360b96396cab5760963714cda0d0cbeecad9ca" dependencies: execa "^0.4.0" -tether@1.4.0, tether@^1.4.0: +tether@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/tether/-/tether-1.4.0.tgz#0f9fa171f75bf58485d8149e94799d7ae74d1c1a" -text-table@~0.2.0: +text-table@^0.2.0, text-table@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" @@ -6202,12 +6811,12 @@ throttleit@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-0.0.2.tgz#cfedf88e60c00dd9697b61fdd2a8343a9b680eaf" -through2@2.0.1, through2@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.1.tgz#384e75314d49f32de12eebb8136b8eb6b5d59da9" +through2@^0.6.1, through2@^0.6.3, through2@~0.6.1: + version "0.6.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" dependencies: - readable-stream "~2.0.0" - xtend "~4.0.0" + readable-stream ">=1.0.33-1 <1.1.0-0" + xtend ">=4.0.0 <4.1.0-0" through2@~0.2.3: version "0.2.3" @@ -6216,14 +6825,10 @@ through2@~0.2.3: readable-stream "~1.1.9" xtend "~2.1.1" -through@2, through@X.X.X, through@~2.3, through@~2.3.1: +through@2, "through@>=2.2.7 <3", through@X.X.X, through@^2.3.6, through@~2.3, through@~2.3.1, through@~2.3.4: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" -time-stamp@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.0.1.tgz#9f4bd23559c9365966f3302dbba2b07c6b99b151" - timed-out@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" @@ -6234,7 +6839,23 @@ timers-browserify@^2.0.2: dependencies: setimmediate "^1.0.4" -tmp@0.0.31, tmp@0.0.x: +tmp@0.0.24: + version "0.0.24" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.24.tgz#d6a5e198d14a9835cc6f2d7c3d9e302428c8cf12" + +tmp@0.0.28, tmp@0.0.x: + version "0.0.28" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.28.tgz#172735b7f614ea7af39664fa84cf0de4e515d120" + dependencies: + os-tmpdir "~1.0.1" + +tmp@0.0.30: + version "0.0.30" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.30.tgz#72419d4a8be7d6ce75148fd8b324e593a711c2ed" + dependencies: + os-tmpdir "~1.0.1" + +tmp@^0.0.31: version "0.0.31" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7" dependencies: @@ -6280,24 +6901,9 @@ ts-helpers@1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/ts-helpers/-/ts-helpers-1.1.2.tgz#fc69be9f1f3baed01fb1a0ef8d4cfe748814d835" -ts-node@3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-3.0.2.tgz#cfc9516c831b920d7efbe16005915062b1294f8c" - dependencies: - arrify "^1.0.0" - chalk "^1.1.1" - diff "^3.1.0" - make-error "^1.1.1" - minimist "^1.2.0" - mkdirp "^0.5.1" - source-map-support "^0.4.0" - tsconfig "^6.0.0" - v8flags "^2.0.11" - yn "^1.2.0" - -ts-node@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-2.1.2.tgz#45087b45e7b371b3daf04ecc470ec29a836655ea" +ts-node@2.0.0, ts-node@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-2.0.0.tgz#16e4fecc949088238b4cbf1c39c9582526b66f74" dependencies: arrify "^1.0.0" chalk "^1.1.1" @@ -6307,16 +6913,18 @@ ts-node@^2.0.0: mkdirp "^0.5.1" pinkie "^2.0.4" source-map-support "^0.4.0" - tsconfig "^6.0.0" + tsconfig "^5.0.2" v8flags "^2.0.11" xtend "^4.0.0" yn "^1.2.0" -tsconfig@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/tsconfig/-/tsconfig-6.0.0.tgz#6b0e8376003d7af1864f8df8f89dd0059ffcd032" +tsconfig@^5.0.2: + version "5.0.3" + resolved "https://registry.yarnpkg.com/tsconfig/-/tsconfig-5.0.3.tgz#5f4278e701800967a8fc383fd19648878f2a6e3a" dependencies: - strip-bom "^3.0.0" + any-promise "^1.3.0" + parse-json "^2.2.0" + strip-bom "^2.0.0" strip-json-comments "^2.0.0" tsickle@^0.21.0: @@ -6328,13 +6936,21 @@ tsickle@^0.21.0: source-map "^0.5.6" source-map-support "^0.4.2" -tslib@1.6.0: +tslib@^1.0.0: version "1.6.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.6.0.tgz#cf36c93e02ae86a20fc131eae511162b869a6652" -tslint@4.5.1: - version "4.5.1" - resolved "https://registry.yarnpkg.com/tslint/-/tslint-4.5.1.tgz#05356871bef23a434906734006fc188336ba824b" +tslint-eslint-rules@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/tslint-eslint-rules/-/tslint-eslint-rules-4.0.0.tgz#4e0e59ecd5701c9a48c66ed47bdcafb1c635d27b" + dependencies: + doctrine "^0.7.2" + tslib "^1.0.0" + tsutils "^1.4.0" + +tslint@4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/tslint/-/tslint-4.5.0.tgz#12b384a339d456ee1d3cc665f13f4e759bbe5d64" dependencies: babel-code-frame "^6.20.0" colors "^1.1.2" @@ -6346,7 +6962,7 @@ tslint@4.5.1: tsutils "^1.1.0" update-notifier "^2.0.0" -tsutils@^1.1.0: +tsutils@^1.1.0, tsutils@^1.4.0: version "1.6.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-1.6.0.tgz#1fd7fac2a61369ed99cd3997f0fbb437128850f2" @@ -6368,12 +6984,6 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - dependencies: - prelude-ls "~1.1.2" - type-is@~1.6.14: version "1.6.15" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.15.tgz#cab10fb4909e441c82842eafe1ad646c81804410" @@ -6386,8 +6996,8 @@ typedarray@^0.0.6, typedarray@~0.0.5: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" typedoc-default-themes@^0.4.2: - version "0.4.3" - resolved "https://registry.yarnpkg.com/typedoc-default-themes/-/typedoc-default-themes-0.4.3.tgz#39014c515585f27e59773d29e8921a5b8b89d4c0" + version "0.4.4" + resolved "https://registry.yarnpkg.com/typedoc-default-themes/-/typedoc-default-themes-0.4.4.tgz#abe997dcf17462b627438bc63b65c50d363c252f" typedoc@0.5.10: version "0.5.10" @@ -6411,6 +7021,10 @@ typedoc@0.5.10: typedoc-default-themes "^0.4.2" typescript "2.2.2" +typescript@2.2.0, "typescript@>=2.0.0 <2.3.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.2.0.tgz#626f2fc70087d2480f21ebb12c1888288c8614e3" + typescript@2.2.2: version "2.2.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.2.2.tgz#606022508479b55ffa368b58fee963a03dfd7b0c" @@ -6424,7 +7038,7 @@ typogr@0.6.6: glob "3" mkdirp "0.3" -uglify-js@^2.6, uglify-js@^2.8.5, uglify-js@~2.8.22: +uglify-js@^2.6, uglify-js@^2.7.5, uglify-js@~2.8.22: version "2.8.22" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.22.tgz#d54934778a8da14903fa29a326fb24c0ab51a1a0" dependencies: @@ -6433,6 +7047,14 @@ uglify-js@^2.6, uglify-js@^2.8.5, uglify-js@~2.8.22: optionalDependencies: uglify-to-browserify "~1.0.0" +uglify-js@~2.3: + version "2.3.6" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.3.6.tgz#fa0984770b428b7a9b2a8058f46355d14fef211a" + dependencies: + async "~0.2.6" + optimist "~0.3.5" + source-map "~0.1.7" + uglify-to-browserify@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" @@ -6524,12 +7146,12 @@ url-join@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/url-join/-/url-join-1.1.0.tgz#741c6c2f4596c4830d6718460920d0c92202dc78" -url-loader@0.5.8: - version "0.5.8" - resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-0.5.8.tgz#b9183b1801e0f847718673673040bc9dc1c715c5" +url-loader@0.5.7, url-loader@^0.5.7: + version "0.5.7" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-0.5.7.tgz#67e8779759f8000da74994906680c943a9b0925d" dependencies: - loader-utils "^1.0.2" - mime "1.3.x" + loader-utils "0.2.x" + mime "1.2.x" url-parse-lax@^1.0.0: version "1.0.0" @@ -6566,7 +7188,7 @@ user-home@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" -useragent@^2.1.12: +useragent@^2.1.10: version "2.1.13" resolved "https://registry.yarnpkg.com/useragent/-/useragent-2.1.13.tgz#bba43e8aa24d5ceb83c2937473e102e21df74c10" dependencies: @@ -6613,7 +7235,7 @@ v8flags@^2.0.11: dependencies: user-home "^1.1.1" -validate-npm-package-license@^3.0.1: +validate-npm-package-license@*, validate-npm-package-license@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" dependencies: @@ -6646,17 +7268,9 @@ verror@1.3.6: dependencies: extsprintf "1.0.2" -vinyl@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.5.3.tgz#b0455b38fc5e0cf30d4325132e461970c2091cde" - dependencies: - clone "^1.0.0" - clone-stats "^0.0.1" - replace-ext "0.0.1" - vlq@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.1.tgz#14439d711891e682535467f8587c5630e4222a6c" + version "0.2.2" + resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.2.tgz#e316d5257b40b86bb43cb8d5fea5d7f54d6b0ca1" vm-browserify@0.0.4: version "0.0.4" @@ -6668,7 +7282,14 @@ void-elements@^2.0.0, void-elements@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" -watchpack@^1.3.1: +walk-sync@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/walk-sync/-/walk-sync-0.3.1.tgz#558a16aeac8c0db59c028b73c66f397684ece465" + dependencies: + ensure-posix-path "^1.0.0" + matcher-collection "^1.0.0" + +watchpack@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.3.1.tgz#7d8693907b28ce6013e7f3610aa2a1acf07dad87" dependencies: @@ -6692,7 +7313,30 @@ weak-map@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/weak-map/-/weak-map-1.0.0.tgz#b66e56a9df0bd25a76bbf1b514db129080614a37" -webpack-dev-middleware@1.10.1, webpack-dev-middleware@^1.0.11, webpack-dev-middleware@^1.9.0: +webdriver-js-extender@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/webdriver-js-extender/-/webdriver-js-extender-1.0.0.tgz#81c533a9e33d5bfb597b4e63e2cdb25b54777515" + dependencies: + "@types/selenium-webdriver" "^2.53.35" + selenium-webdriver "^2.53.2" + +webdriver-manager@^12.0.1: + version "12.0.4" + resolved "https://registry.yarnpkg.com/webdriver-manager/-/webdriver-manager-12.0.4.tgz#658e431c805bc3a7e6bf74bc819475884e6d4861" + dependencies: + adm-zip "^0.4.7" + chalk "^1.1.1" + del "^2.2.0" + glob "^7.0.3" + ini "^1.3.4" + minimist "^1.2.0" + q "^1.4.1" + request "^2.78.0" + rimraf "^2.5.2" + semver "^5.3.0" + xml2js "^0.4.17" + +webpack-dev-middleware@^1.0.11, webpack-dev-middleware@^1.9.0: version "1.10.1" resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.10.1.tgz#c6b4cf428139cf1aefbe06a0c00fdb4f8da2f893" dependencies: @@ -6701,9 +7345,9 @@ webpack-dev-middleware@1.10.1, webpack-dev-middleware@^1.0.11, webpack-dev-middl path-is-absolute "^1.0.0" range-parser "^1.0.3" -webpack-dev-server@2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.4.2.tgz#cf595d6b40878452b6d2ad7229056b686f8a16be" +webpack-dev-server@2.3.0, webpack-dev-server@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.3.0.tgz#0437704bbd4d941a6e4c061eb3cc232ed7d06101" dependencies: ansi-html "0.0.7" chokidar "^1.6.0" @@ -6711,48 +7355,34 @@ webpack-dev-server@2.4.2: connect-history-api-fallback "^1.3.0" express "^4.13.3" html-entities "^1.2.0" - http-proxy-middleware "~0.17.4" + http-proxy-middleware "~0.17.1" opn "4.0.2" portfinder "^1.0.9" serve-index "^1.7.2" sockjs "0.3.18" - sockjs-client "1.1.2" + sockjs-client "1.1.1" spdy "^3.4.1" strip-ansi "^3.0.0" supports-color "^3.1.1" webpack-dev-middleware "^1.9.0" yargs "^6.0.0" -webpack-dll-bundles-plugin@1.0.0-beta.5: - version "1.0.0-beta.5" - resolved "https://registry.yarnpkg.com/webpack-dll-bundles-plugin/-/webpack-dll-bundles-plugin-1.0.0-beta.5.tgz#cfb109710a88c3eeb557fcc38be0c5015a54196d" - dependencies: - find-root "^1.0.0" - jsonfile "^2.4.0" - -webpack-merge@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.1.0.tgz#6ad72223b3e0b837e531e4597c199f909361511e" +webpack-merge@^2.4.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-2.6.1.tgz#f1d801d2c5d39f83ffec9f119240b3e3be994a1c" dependencies: lodash "^4.17.4" -webpack-sources@^0.1.0, webpack-sources@^0.1.2: +webpack-sources@^0.1.0, webpack-sources@^0.1.2, webpack-sources@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-0.1.5.tgz#aa1f3abf0f0d74db7111c40e500b84f966640750" dependencies: source-list-map "~0.1.7" source-map "~0.5.3" -webpack-sources@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-0.2.3.tgz#17c62bfaf13c707f9d02c479e0dcdde8380697fb" - dependencies: - source-list-map "^1.1.1" - source-map "~0.5.3" - -webpack@2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-2.3.3.tgz#eecc083c18fb7bf958ea4f40b57a6640c5a0cc78" +webpack@~2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-2.2.1.tgz#7bb1d72ae2087dd1a4af526afec15eed17dda475" dependencies: acorn "^4.0.4" acorn-dynamic-import "^2.0.0" @@ -6770,9 +7400,9 @@ webpack@2.3.3: source-map "^0.5.3" supports-color "^3.1.0" tapable "~0.2.5" - uglify-js "^2.8.5" - watchpack "^1.3.1" - webpack-sources "^0.2.3" + uglify-js "^2.7.5" + watchpack "^1.2.0" + webpack-sources "^0.1.4" yargs "^6.0.0" websocket-driver@>=0.5.1: @@ -6785,6 +7415,10 @@ websocket-extensions@>=0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.1.tgz#76899499c184b6ef754377c2dbb0cd6cb55d29e7" +when@~3.6.x: + version "3.6.4" + resolved "https://registry.yarnpkg.com/when/-/when-3.6.4.tgz#473b517ec159e2b85005497a13983f095412e34e" + whet.extend@~0.9.9: version "0.9.9" resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1" @@ -6793,7 +7427,7 @@ which-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" -which@1, which@^1.1.1, which@^1.2.1, which@^1.2.8, which@^1.2.9, which@~1.2.11: +which@1, which@^1.2.1, which@^1.2.8, which@^1.2.9, which@~1.2.11: version "1.2.14" resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5" dependencies: @@ -6815,6 +7449,10 @@ window-size@0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" +window-size@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.4.tgz#f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876" + window-size@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075" @@ -6870,10 +7508,6 @@ wordwrap@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" -wordwrap@^1.0.0, wordwrap@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - wordwrap@~0.0.2: version "0.0.3" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" @@ -6897,9 +7531,26 @@ write-file-atomic@^1.1.2, write-file-atomic@~1.2.0: imurmurhash "^0.1.4" slide "^1.1.5" -ws@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.2.tgz#8a244fa052401e08c9886cf44a85189e1fd4067f" +write-file-stdout@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/write-file-stdout/-/write-file-stdout-0.0.2.tgz#c252d7c7c5b1b402897630e3453c7bfe690d9ca1" + +write@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" + dependencies: + mkdirp "^0.5.1" + +ws@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.1.tgz#082ddb6c641e85d4bb451f03d52f06eabdb1f018" + dependencies: + options ">=0.0.5" + ultron "1.0.x" + +ws@^1.0.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.4.tgz#57f40d036832e5f5055662a397c4de76ed66bf61" dependencies: options ">=0.0.5" ultron "1.0.x" @@ -6912,19 +7563,39 @@ xdg-basedir@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" -xhr2@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/xhr2/-/xhr2-0.1.4.tgz#7f87658847716db5026323812f818cadab387a5f" - xml-char-classes@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/xml-char-classes/-/xml-char-classes-1.0.0.tgz#64657848a20ffc5df583a42ad8a277b4512bbc4d" +xml2js@0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.4.tgz#3111010003008ae19240eba17497b57c729c555d" + dependencies: + sax "0.6.x" + xmlbuilder ">=1.0.0" + +xml2js@^0.4.17: + version "0.4.17" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.17.tgz#17be93eaae3f3b779359c795b419705a8817e868" + dependencies: + sax ">=0.6.0" + xmlbuilder "^4.1.0" + +xmlbuilder@>=1.0.0, xmlbuilder@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-4.2.1.tgz#aa58a3041a066f90eaa16c2f5389ff19f3f461a5" + dependencies: + lodash "^4.0.0" + +xmldom@^0.1.19: + version "0.1.27" + resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.27.tgz#d501f97b3bdb403af8ef9ecc20573187aadac0e9" + xmlhttprequest-ssl@1.5.3: version "1.5.3" resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz#185a888c04eca46c3e4070d99f7b49de3528992d" -xtend@^4.0.0, xtend@~4.0.0: +"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" @@ -6934,7 +7605,7 @@ xtend@~2.1.1: dependencies: object-keys "~0.4.0" -y18n@^3.2.1: +y18n@^3.2.0, y18n@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" @@ -6955,6 +7626,22 @@ yargs-parser@^4.2.0: dependencies: camelcase "^3.0.0" +yargs@^1.2.6: + version "1.3.3" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-1.3.3.tgz#054de8b61f22eefdb7207059eaef9d6b83fb931a" + +yargs@^3.5.4: + version "3.32.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.32.0.tgz#03088e9ebf9e756b69751611d2a5ef591482c995" + dependencies: + camelcase "^2.0.1" + cliui "^3.0.3" + decamelize "^1.1.1" + os-locale "^1.4.0" + string-width "^1.0.1" + window-size "^0.1.4" + y18n "^3.2.0" + yargs@^4.7.1, yargs@^4.8.1: version "4.8.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-4.8.1.tgz#c0c42924ca4aaa6b0e6da1739dfb216439f9ddc0" @@ -7015,6 +7702,10 @@ yn@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/yn/-/yn-1.2.0.tgz#d237a4c533f279b2b89d3acac2db4b8c795e4a63" -zone.js@0.8.5: - version "0.8.5" - resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.8.5.tgz#7906e017482cbff4c3f079c5c34305ce941f5ba2" +zone.js@0.8.4: + version "0.8.4" + resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.8.4.tgz#cc40ae5a1c879601c5ebba2096b5c80f0c4c3602" + +zone.js@^0.7.2: + version "0.7.8" + resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.7.8.tgz#4f3fe8834d44597f2639053a0fa438df34fffded"