mirror of
https://github.com/twbs/bootstrap.git
synced 2024-11-28 10:24:19 +01:00
Merge branch 'v4-dev' into form-tweaks
This commit is contained in:
commit
5463d8436b
19
.travis.yml
19
.travis.yml
@ -9,30 +9,27 @@ node_js:
|
||||
before_install:
|
||||
- if [[ `npm -v` != 4* ]]; then npm install -g npm@4; fi
|
||||
- "export TRAVIS_COMMIT_MSG=\"`git log --format=%B --no-merges -n 1`\""
|
||||
- echo "$TRAVIS_COMMIT_MSG" | grep '\[skip validator\]'; export TWBS_DO_VALIDATOR=$?; true
|
||||
- echo "$TRAVIS_COMMIT_MSG" | grep '\[skip sauce\]'; export TWBS_DO_SAUCE=$?; true
|
||||
- if [ "$TRAVIS_REPO_SLUG" = twbs-savage/bootstrap ]; then export TWBS_DO_VALIDATOR=0; fi
|
||||
- echo "$TRAVIS_COMMIT_MSG" | grep '\[skip browser\]'; export TWBS_DO_BROWSER=$?; true
|
||||
install:
|
||||
- bundle install --deployment --jobs=3 --retry=3
|
||||
- cp grunt/npm-shrinkwrap.json ./
|
||||
- cp build/npm-shrinkwrap.json ./
|
||||
- npm install
|
||||
script:
|
||||
- npm test
|
||||
- if [ "$TWBS_TEST" = browser -a "$SAUCE_ACCESS_KEY" ]; then npm run js-test-cloud; fi
|
||||
after_success:
|
||||
- if [ "$TWBS_TEST" = sauce-js-unit ]; then grunt/upload-preview.sh; fi
|
||||
- if [ "$TRAVIS_REPO_SLUG" = twbs-savage/bootstrap ]; then npm run docs-upload-preview; fi
|
||||
cache:
|
||||
directories:
|
||||
- node_modules
|
||||
- vendor/bundle
|
||||
- "$HOME/google-cloud-sdk"
|
||||
env:
|
||||
- TWBS_TEST=core
|
||||
- TWBS_TEST=validate-html
|
||||
- TWBS_TEST=sauce-js-unit
|
||||
- TWBS_TEST=browser
|
||||
matrix:
|
||||
exclude:
|
||||
- node_js: "4"
|
||||
env: TWBS_TEST=validate-html
|
||||
- node_js: "4"
|
||||
env: TWBS_TEST=sauce-js-unit
|
||||
env: TWBS_TEST=browser
|
||||
notifications:
|
||||
slack: heybb:iz4wwosL0N0EdaX1gvgkU0NH
|
||||
webhooks:
|
||||
|
@ -25,7 +25,7 @@ restrictions:
|
||||
respect the opinions of others.
|
||||
|
||||
* Please **do not** post comments consisting solely of "+1" or ":thumbsup:".
|
||||
Use [GitHub's "reactions" feature](https://github.com/blog/2119-add-reactions-to-pull-requests-issues-and-comments)
|
||||
Use [GitHub's "reactions" feature](https://github.com/blog/2119-add-reactions-to-pull-requests-issues-and-comments)
|
||||
instead. We reserve the right to delete comments which violate this rule.
|
||||
|
||||
* Please **do not** open issues regarding the official themes offered on <https://themes.getbootstrap.com/>.
|
||||
@ -42,7 +42,7 @@ Our bug tracker utilizes several labels to help organize and identify issues. He
|
||||
- `docs` - Issues for improving or updating our documentation.
|
||||
- `examples` - Issues involving the example templates included in our docs.
|
||||
- `feature` - Issues asking for a new feature to be added, or an existing one to be extended or modified. New features require a minor version bump (e.g., `v3.0.0` to `v3.1.0`).
|
||||
- `grunt` - Issues with our included JavaScript-based Gruntfile, which is used to run all our tests, concatenate and compile source files, and more.
|
||||
- `grunt` - Issues with our build system, which is used to run all our tests, concatenate and compile source files, and more.
|
||||
- `help wanted` - Issues we need or would love help from the community to resolve.
|
||||
- `js` - Issues stemming from our compiled or source JavaScript files.
|
||||
- `meta` - Issues with the project itself or our GitHub repository.
|
||||
@ -241,7 +241,7 @@ includes code changes) and under the terms of the
|
||||
|
||||
### Checking coding style
|
||||
|
||||
Run `grunt test` before committing to ensure your changes follow our coding standards.
|
||||
Run `npm run test` before committing to ensure your changes follow our coding standards.
|
||||
|
||||
|
||||
## License
|
||||
|
6
Gemfile
6
Gemfile
@ -1,8 +1,8 @@
|
||||
source 'https://rubygems.org'
|
||||
|
||||
group :development, :test do
|
||||
gem 'jekyll', '~> 3.4.2'
|
||||
gem 'jekyll', '~> 3.4.3'
|
||||
gem 'jekyll-redirect-from', '~> 0.12.1'
|
||||
gem 'jekyll-sitemap', '~> 1.0.0'
|
||||
gem 'scss_lint', '~> 0.52.0'
|
||||
gem 'jekyll-sitemap', '~> 1.1.1'
|
||||
gem 'scss_lint', '~> 0.53.0'
|
||||
end
|
||||
|
14
Gemfile.lock
14
Gemfile.lock
@ -1,12 +1,12 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
addressable (2.5.0)
|
||||
addressable (2.5.1)
|
||||
public_suffix (~> 2.0, >= 2.0.2)
|
||||
colorator (1.1.0)
|
||||
ffi (1.9.18)
|
||||
forwardable-extended (2.6.0)
|
||||
jekyll (3.4.2)
|
||||
jekyll (3.4.3)
|
||||
addressable (~> 2.4)
|
||||
colorator (~> 1.0)
|
||||
jekyll-sass-converter (~> 1.0)
|
||||
@ -21,7 +21,7 @@ GEM
|
||||
jekyll (~> 3.3)
|
||||
jekyll-sass-converter (1.5.0)
|
||||
sass (~> 3.4)
|
||||
jekyll-sitemap (1.0.0)
|
||||
jekyll-sitemap (1.1.1)
|
||||
jekyll (~> 3.3)
|
||||
jekyll-watch (1.5.0)
|
||||
listen (~> 3.0, < 3.1)
|
||||
@ -41,7 +41,7 @@ GEM
|
||||
rouge (1.11.1)
|
||||
safe_yaml (1.0.4)
|
||||
sass (3.4.23)
|
||||
scss_lint (0.52.0)
|
||||
scss_lint (0.53.0)
|
||||
rake (>= 0.9, < 13)
|
||||
sass (~> 3.4.20)
|
||||
|
||||
@ -49,10 +49,10 @@ PLATFORMS
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
jekyll (~> 3.4.2)
|
||||
jekyll (~> 3.4.3)
|
||||
jekyll-redirect-from (~> 0.12.1)
|
||||
jekyll-sitemap (~> 1.0.0)
|
||||
scss_lint (~> 0.52.0)
|
||||
jekyll-sitemap (~> 1.1.1)
|
||||
scss_lint (~> 0.53.0)
|
||||
|
||||
BUNDLED WITH
|
||||
1.14.6
|
||||
|
296
Gruntfile.js
296
Gruntfile.js
@ -9,151 +9,8 @@
|
||||
module.exports = function (grunt) {
|
||||
'use strict'
|
||||
|
||||
// Force use of Unix newlines
|
||||
grunt.util.linefeed = '\n'
|
||||
|
||||
RegExp.quote = function (string) {
|
||||
return string.replace(/[-\\^$*+?.()|[\]{}]/g, '\\$&')
|
||||
}
|
||||
|
||||
var isTravis = require('is-travis')
|
||||
|
||||
// Project configuration.
|
||||
grunt.initConfig({
|
||||
|
||||
// Metadata.
|
||||
pkg: grunt.file.readJSON('package.json'),
|
||||
banner: '/*!\n' +
|
||||
' * Bootstrap v<%= pkg.version %> (<%= pkg.homepage %>)\n' +
|
||||
' * Copyright 2011-<%= grunt.template.today("yyyy") %> <%= pkg.author %>\n' +
|
||||
' * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n' +
|
||||
' */\n',
|
||||
jqueryCheck: 'if (typeof jQuery === \'undefined\') {\n' +
|
||||
' throw new Error(\'Bootstrap\\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\\'s JavaScript.\')\n' +
|
||||
'}\n',
|
||||
jqueryVersionCheck: '+function ($) {\n' +
|
||||
' var version = $.fn.jquery.split(\' \')[0].split(\'.\')\n' +
|
||||
' if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] >= 4)) {\n' +
|
||||
' throw new Error(\'Bootstrap\\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0\')\n' +
|
||||
' }\n' +
|
||||
'}(jQuery);\n\n',
|
||||
|
||||
// Task configuration.
|
||||
clean: {
|
||||
dist: 'dist',
|
||||
docs: 'docs/dist'
|
||||
},
|
||||
|
||||
// JS build configuration
|
||||
babel: {
|
||||
dev: {
|
||||
options: {
|
||||
sourceMap: true
|
||||
},
|
||||
files: {
|
||||
'js/dist/util.js' : 'js/src/util.js',
|
||||
'js/dist/alert.js' : 'js/src/alert.js',
|
||||
'js/dist/button.js' : 'js/src/button.js',
|
||||
'js/dist/carousel.js' : 'js/src/carousel.js',
|
||||
'js/dist/collapse.js' : 'js/src/collapse.js',
|
||||
'js/dist/dropdown.js' : 'js/src/dropdown.js',
|
||||
'js/dist/modal.js' : 'js/src/modal.js',
|
||||
'js/dist/scrollspy.js' : 'js/src/scrollspy.js',
|
||||
'js/dist/tab.js' : 'js/src/tab.js',
|
||||
'js/dist/tooltip.js' : 'js/src/tooltip.js',
|
||||
'js/dist/popover.js' : 'js/src/popover.js'
|
||||
}
|
||||
},
|
||||
dist: {
|
||||
options: {
|
||||
extends: '../../.babelrc'
|
||||
},
|
||||
files: {
|
||||
'<%= concat.bootstrap.dest %>' : '<%= concat.bootstrap.dest %>'
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
stamp: {
|
||||
options: {
|
||||
banner: '<%= banner %>\n<%= jqueryCheck %>\n<%= jqueryVersionCheck %>\n+function () {\n',
|
||||
footer: '\n}();'
|
||||
},
|
||||
bootstrap: {
|
||||
files: {
|
||||
src: '<%= concat.bootstrap.dest %>'
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
concat: {
|
||||
options: {
|
||||
// Custom function to remove all export and import statements
|
||||
process: function (src) {
|
||||
return src.replace(/^(export|import).*/gm, '')
|
||||
}
|
||||
},
|
||||
bootstrap: {
|
||||
src: [
|
||||
'js/src/util.js',
|
||||
'js/src/alert.js',
|
||||
'js/src/button.js',
|
||||
'js/src/carousel.js',
|
||||
'js/src/collapse.js',
|
||||
'js/src/dropdown.js',
|
||||
'js/src/modal.js',
|
||||
'js/src/scrollspy.js',
|
||||
'js/src/tab.js',
|
||||
'js/src/tooltip.js',
|
||||
'js/src/popover.js'
|
||||
],
|
||||
dest: 'dist/js/<%= pkg.name %>.js'
|
||||
}
|
||||
},
|
||||
|
||||
qunit: {
|
||||
options: {
|
||||
inject: 'js/tests/unit/phantom.js'
|
||||
},
|
||||
files: 'js/tests/index.html'
|
||||
},
|
||||
|
||||
// CSS build configuration
|
||||
copy: {
|
||||
docs: {
|
||||
expand: true,
|
||||
cwd: 'dist/',
|
||||
src: [
|
||||
'**/*'
|
||||
],
|
||||
dest: 'docs/dist/'
|
||||
}
|
||||
},
|
||||
|
||||
connect: {
|
||||
server: {
|
||||
options: {
|
||||
port: 3000,
|
||||
base: '.'
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
watch: {
|
||||
src: {
|
||||
files: '<%= concat.bootstrap.src %>',
|
||||
tasks: ['babel:dev']
|
||||
},
|
||||
sass: {
|
||||
files: 'scss/**/*.scss',
|
||||
tasks: ['dist-css', 'docs']
|
||||
},
|
||||
docs: {
|
||||
files: 'docs/assets/scss/**/*.scss',
|
||||
tasks: ['dist-css', 'docs']
|
||||
}
|
||||
},
|
||||
|
||||
'saucelabs-qunit': {
|
||||
all: {
|
||||
options: {
|
||||
@ -162,160 +19,11 @@ module.exports = function (grunt) {
|
||||
maxRetries: 3,
|
||||
maxPollRetries: 4,
|
||||
urls: ['http://127.0.0.1:3000/js/tests/index.html?hidepassed'],
|
||||
browsers: grunt.file.readYAML('grunt/sauce_browsers.yml')
|
||||
browsers: grunt.file.readYAML('build/sauce_browsers.yml')
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
exec: {
|
||||
'clean-css': {
|
||||
command: 'npm run clean-css'
|
||||
},
|
||||
'clean-css-docs': {
|
||||
command: 'npm run clean-css-docs'
|
||||
},
|
||||
postcss: {
|
||||
command: 'npm run postcss'
|
||||
},
|
||||
'postcss-docs': {
|
||||
command: 'npm run postcss-docs'
|
||||
},
|
||||
htmlhint: {
|
||||
command: 'npm run htmlhint'
|
||||
},
|
||||
htmllint: {
|
||||
command: 'npm run htmllint'
|
||||
},
|
||||
jekyll: {
|
||||
command: 'npm run jekyll'
|
||||
},
|
||||
'jekyll-github': {
|
||||
command: 'npm run jekyll-github'
|
||||
},
|
||||
sass: {
|
||||
command: 'npm run sass'
|
||||
},
|
||||
'sass-docs': {
|
||||
command: 'npm run sass-docs'
|
||||
},
|
||||
'scss-lint': {
|
||||
command: 'npm run scss-lint'
|
||||
},
|
||||
'scss-lint-docs': {
|
||||
command: 'npm run scss-lint-docs'
|
||||
},
|
||||
uglify: {
|
||||
command: 'npm run uglify'
|
||||
},
|
||||
'uglify-docs': {
|
||||
command: 'npm run uglify-docs'
|
||||
}
|
||||
},
|
||||
|
||||
buildcontrol: {
|
||||
options: {
|
||||
dir: '_gh_pages',
|
||||
commit: true,
|
||||
push: true,
|
||||
message: 'Built %sourceName% from commit %sourceCommit% on branch %sourceBranch%'
|
||||
},
|
||||
pages: {
|
||||
options: {
|
||||
remote: 'git@github.com:twbs/derpstrap.git',
|
||||
branch: 'gh-pages'
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
compress: {
|
||||
main: {
|
||||
options: {
|
||||
archive: 'bootstrap-<%= pkg.version %>-dist.zip',
|
||||
mode: 'zip',
|
||||
level: 9,
|
||||
pretty: true
|
||||
},
|
||||
files: [
|
||||
{
|
||||
expand: true,
|
||||
cwd: 'dist/',
|
||||
src: ['**'],
|
||||
dest: 'bootstrap-<%= pkg.version %>-dist'
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
|
||||
// These plugins provide necessary tasks.
|
||||
require('load-grunt-tasks')(grunt)
|
||||
require('time-grunt')(grunt)
|
||||
|
||||
// Docs HTML validation task
|
||||
grunt.registerTask('validate-html', ['exec:jekyll', 'exec:htmllint', 'exec:htmlhint'])
|
||||
|
||||
var runSubset = function (subset) {
|
||||
return !process.env.TWBS_TEST || process.env.TWBS_TEST === subset
|
||||
}
|
||||
var isUndefOrNonZero = function (val) {
|
||||
return val === undefined || val !== '0'
|
||||
}
|
||||
|
||||
// Test task.
|
||||
var testSubtasks = []
|
||||
// Skip core tests if running a different subset of the test suite
|
||||
if (runSubset('core') &&
|
||||
// Skip core tests if this is a Savage build
|
||||
process.env.TRAVIS_REPO_SLUG !== 'twbs-savage/bootstrap') {
|
||||
testSubtasks = testSubtasks.concat(['dist-css', 'dist-js', 'test-scss', 'qunit', 'docs'])
|
||||
}
|
||||
// Skip HTML validation if running a different subset of the test suite
|
||||
if (runSubset('validate-html') &&
|
||||
isTravis &&
|
||||
// Skip HTML5 validator when [skip validator] is in the commit message
|
||||
isUndefOrNonZero(process.env.TWBS_DO_VALIDATOR)) {
|
||||
testSubtasks.push('validate-html')
|
||||
}
|
||||
// Only run Sauce Labs tests if there's a Sauce access key
|
||||
if (typeof process.env.SAUCE_ACCESS_KEY !== 'undefined' &&
|
||||
// Skip Sauce if running a different subset of the test suite
|
||||
runSubset('sauce-js-unit')) {
|
||||
testSubtasks = testSubtasks.concat(['dist', 'docs-css', 'docs-js', 'clean:docs', 'copy:docs'])
|
||||
// Skip Sauce on Travis when [skip sauce] is in the commit message
|
||||
if (isUndefOrNonZero(process.env.TWBS_DO_SAUCE)) {
|
||||
testSubtasks.push('connect')
|
||||
testSubtasks.push('saucelabs-qunit')
|
||||
}
|
||||
}
|
||||
grunt.registerTask('test', testSubtasks)
|
||||
|
||||
// JS distribution task.
|
||||
grunt.registerTask('dist-js', ['babel:dev', 'concat', 'babel:dist', 'stamp', 'exec:uglify'])
|
||||
|
||||
grunt.registerTask('test-scss', ['exec:scss-lint'])
|
||||
|
||||
// CSS distribution task.
|
||||
grunt.registerTask('sass-compile', ['exec:sass', 'exec:sass-docs'])
|
||||
|
||||
grunt.registerTask('dist-css', ['sass-compile', 'exec:postcss', 'exec:clean-css', 'exec:clean-css-docs'])
|
||||
|
||||
// Full distribution task.
|
||||
grunt.registerTask('dist', ['clean:dist', 'dist-css', 'dist-js'])
|
||||
|
||||
// Default task.
|
||||
grunt.registerTask('default', ['clean:dist', 'test'])
|
||||
|
||||
// Docs task.
|
||||
grunt.registerTask('docs-css', ['exec:clean-css-docs', 'exec:postcss-docs'])
|
||||
grunt.registerTask('lint-docs-css', ['exec:scss-lint-docs'])
|
||||
grunt.registerTask('docs-js', ['exec:uglify-docs'])
|
||||
grunt.registerTask('docs', ['lint-docs-css', 'docs-css', 'docs-js', 'clean:docs', 'copy:docs'])
|
||||
grunt.registerTask('docs-github', ['exec:jekyll-github'])
|
||||
|
||||
grunt.registerTask('prep-release', ['dist', 'docs', 'docs-github', 'compress'])
|
||||
|
||||
// Publish to GitHub
|
||||
grunt.registerTask('publish', ['buildcontrol:pages'])
|
||||
grunt.loadNpmTasks('grunt-saucelabs')
|
||||
}
|
||||
|
@ -44,14 +44,14 @@ Read the [Getting started page](https://getbootstrap.com/getting-started/) for i
|
||||
## Status
|
||||
|
||||
[![Slack](https://bootstrap-slack.herokuapp.com/badge.svg)](https://bootstrap-slack.herokuapp.com)
|
||||
![Bower version](https://img.shields.io/bower/v/bootstrap.svg)
|
||||
[![Bower](https://img.shields.io/bower/v/bootstrap.svg)](https://bower.io/search/?q=bootstrap)
|
||||
[![npm version](https://img.shields.io/npm/v/bootstrap.svg)](https://www.npmjs.com/package/bootstrap)
|
||||
[![Gem version](https://img.shields.io/gem/v/bootstrap.svg)](https://rubygems.org/gems/bootstrap)
|
||||
[![Build Status](https://img.shields.io/travis/twbs/bootstrap/v4-dev.svg)](https://travis-ci.org/twbs/bootstrap)
|
||||
[![devDependency Status](https://img.shields.io/david/dev/twbs/bootstrap.svg)](https://david-dm.org/twbs/bootstrap?type=dev)
|
||||
[![Meteor Atmosphere](https://img.shields.io/badge/meteor-twbs%3Abootstrap-blue.svg)](https://atmospherejs.com/twbs/bootstrap)
|
||||
[![Packagist Prerelease](https://img.shields.io/packagist/vpre/twbs/bootstrap.svg)](https://packagist.org/packages/twbs/bootstrap)
|
||||
[![NuGet](https://img.shields.io/nuget/vpre/bootstrap.svg)](https://www.nuget.org/packages/bootstrap/4.0.0-alpha5)
|
||||
[![NuGet](https://img.shields.io/nuget/vpre/bootstrap.svg)](https://www.nuget.org/packages/bootstrap/absoluteLatest)
|
||||
|
||||
[![Selenium Test Status](https://saucelabs.com/browser-matrix/bootstrap.svg)](https://saucelabs.com/u/bootstrap)
|
||||
|
||||
@ -86,7 +86,7 @@ Bootstrap's documentation, included in this repo in the root directory, is built
|
||||
### Running documentation locally
|
||||
|
||||
1. Run through the [tooling setup](https://github.com/twbs/bootstrap/blob/v4-dev/docs/getting-started/build-tools.md#tooling-setup) to install Jekyll (the site builder) and other Ruby dependencies with `bundle install`.
|
||||
2. Run `grunt` (or a specific set of Grunt tasks) to rebuild distributed CSS and JavaScript files, as well as our docs assets.
|
||||
2. Run `npm run test` (or a specific NPM script) to rebuild distributed CSS and JavaScript files, as well as our docs assets.
|
||||
3. From the root `/bootstrap` directory, run `bundle exec jekyll serve` in the command line.
|
||||
4. Open <http://localhost:9001> in your browser, and voilà.
|
||||
|
||||
|
@ -25,6 +25,7 @@
|
||||
"composer.json",
|
||||
"CONTRIBUTING.md",
|
||||
"docs",
|
||||
"Gruntfile.js",
|
||||
"js/tests",
|
||||
"test-infra"
|
||||
],
|
||||
|
2438
grunt/npm-shrinkwrap.json → build/npm-shrinkwrap.json
generated
2438
grunt/npm-shrinkwrap.json → build/npm-shrinkwrap.json
generated
@ -8,16 +8,10 @@
|
||||
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"accepts": {
|
||||
"version": "1.3.3",
|
||||
"from": "accepts@>=1.3.3 <1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"acorn": {
|
||||
"version": "4.0.4",
|
||||
"from": "acorn@4.0.4",
|
||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.4.tgz",
|
||||
"version": "5.0.3",
|
||||
"from": "acorn@>=5.0.1 <6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-5.0.3.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"acorn-jsx": {
|
||||
@ -34,24 +28,10 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"agent-base": {
|
||||
"version": "2.0.1",
|
||||
"from": "agent-base@>=2.0.0 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-2.0.1.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"semver": {
|
||||
"version": "5.0.3",
|
||||
"from": "semver@>=5.0.1 <5.1.0",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"ajv": {
|
||||
"version": "4.11.5",
|
||||
"version": "4.11.6",
|
||||
"from": "ajv@>=4.7.0 <5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.5.tgz",
|
||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.6.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"ajv-keywords": {
|
||||
@ -86,7 +66,7 @@
|
||||
},
|
||||
"any-promise": {
|
||||
"version": "1.3.0",
|
||||
"from": "any-promise@>=1.0.0 <2.0.0",
|
||||
"from": "any-promise@>=1.3.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
@ -102,26 +82,6 @@
|
||||
"resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"archiver": {
|
||||
"version": "1.3.0",
|
||||
"from": "archiver@>=1.0.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/archiver/-/archiver-1.3.0.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"async": {
|
||||
"version": "2.1.5",
|
||||
"from": "async@>=2.0.0 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/async/-/async-2.1.5.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"archiver-utils": {
|
||||
"version": "1.3.0",
|
||||
"from": "archiver-utils@>=1.3.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-1.3.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"are-we-there-yet": {
|
||||
"version": "1.1.2",
|
||||
"from": "are-we-there-yet@>=1.1.2 <1.2.0",
|
||||
@ -141,15 +101,15 @@
|
||||
"dev": true
|
||||
},
|
||||
"arr-flatten": {
|
||||
"version": "1.0.1",
|
||||
"version": "1.0.2",
|
||||
"from": "arr-flatten@>=1.0.1 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.1.tgz",
|
||||
"resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.2.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"array-differ": {
|
||||
"version": "1.0.0",
|
||||
"from": "array-differ@>=1.0.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz",
|
||||
"array-filter": {
|
||||
"version": "0.0.1",
|
||||
"from": "array-filter@>=0.0.0 <0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"array-find-index": {
|
||||
@ -158,6 +118,18 @@
|
||||
"resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"array-map": {
|
||||
"version": "0.0.0",
|
||||
"from": "array-map@>=0.0.0 <0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"array-reduce": {
|
||||
"version": "0.0.0",
|
||||
"from": "array-reduce@>=0.0.0 <0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"array-union": {
|
||||
"version": "1.0.2",
|
||||
"from": "array-union@>=1.0.1 <2.0.0",
|
||||
@ -201,9 +173,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"async": {
|
||||
"version": "1.5.2",
|
||||
"from": "async@>=1.5.2 <1.6.0",
|
||||
"resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
|
||||
"version": "1.4.2",
|
||||
"from": "async@1.4.2",
|
||||
"resolved": "https://registry.npmjs.org/async/-/async-1.4.2.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"async-each": {
|
||||
@ -242,90 +214,236 @@
|
||||
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-cli": {
|
||||
"version": "6.24.1",
|
||||
"from": "babel-cli@>=6.24.1 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.24.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-code-frame": {
|
||||
"version": "6.22.0",
|
||||
"from": "babel-code-frame@>=6.16.0 <7.0.0",
|
||||
"from": "babel-code-frame@>=6.22.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-core": {
|
||||
"version": "6.24.0",
|
||||
"from": "babel-core@>=6.0.12 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.24.0.tgz",
|
||||
"version": "6.24.1",
|
||||
"from": "babel-core@>=6.24.1 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.24.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-eslint": {
|
||||
"version": "7.1.1",
|
||||
"from": "babel-eslint@>=7.1.1 <8.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-7.1.1.tgz",
|
||||
"version": "7.2.2",
|
||||
"from": "babel-eslint@>=7.2.2 <8.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-7.2.2.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-generator": {
|
||||
"version": "6.24.0",
|
||||
"from": "babel-generator@>=6.24.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.24.0.tgz",
|
||||
"version": "6.24.1",
|
||||
"from": "babel-generator@>=6.24.1 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.24.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-helper-call-delegate": {
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-helper-call-delegate@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-7.0.0-alpha.7.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"jsesc": {
|
||||
"version": "1.3.0",
|
||||
"from": "jsesc@>=1.3.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",
|
||||
"babel-code-frame": {
|
||||
"version": "7.0.0-alpha.3",
|
||||
"from": "babel-code-frame@7.0.0-alpha.3",
|
||||
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-alpha.3.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-messages": {
|
||||
"version": "7.0.0-alpha.3",
|
||||
"from": "babel-messages@7.0.0-alpha.3",
|
||||
"resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-7.0.0-alpha.3.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-traverse": {
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-traverse@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-types": {
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-types@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babylon": {
|
||||
"version": "7.0.0-beta.8",
|
||||
"from": "babylon@7.0.0-beta.8",
|
||||
"resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.8.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"babel-helper-call-delegate": {
|
||||
"version": "6.22.0",
|
||||
"from": "babel-helper-call-delegate@>=6.22.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.22.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-helper-define-map": {
|
||||
"version": "6.23.0",
|
||||
"from": "babel-helper-define-map@>=6.23.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.23.0.tgz",
|
||||
"dev": true
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-helper-define-map@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-7.0.0-alpha.7.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"babel-types": {
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-types@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"babel-helper-function-name": {
|
||||
"version": "6.23.0",
|
||||
"from": "babel-helper-function-name@>=6.23.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.23.0.tgz",
|
||||
"dev": true
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-helper-function-name@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-7.0.0-alpha.7.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"babel-code-frame": {
|
||||
"version": "7.0.0-alpha.3",
|
||||
"from": "babel-code-frame@7.0.0-alpha.3",
|
||||
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-alpha.3.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-messages": {
|
||||
"version": "7.0.0-alpha.3",
|
||||
"from": "babel-messages@7.0.0-alpha.3",
|
||||
"resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-7.0.0-alpha.3.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-template": {
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-template@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-traverse": {
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-traverse@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-types": {
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-types@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babylon": {
|
||||
"version": "7.0.0-beta.8",
|
||||
"from": "babylon@7.0.0-beta.8",
|
||||
"resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.8.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"babel-helper-get-function-arity": {
|
||||
"version": "6.22.0",
|
||||
"from": "babel-helper-get-function-arity@>=6.22.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.22.0.tgz",
|
||||
"dev": true
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-helper-get-function-arity@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-7.0.0-alpha.7.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"babel-types": {
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-types@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"babel-helper-hoist-variables": {
|
||||
"version": "6.22.0",
|
||||
"from": "babel-helper-hoist-variables@>=6.22.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.22.0.tgz",
|
||||
"dev": true
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-helper-hoist-variables@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-7.0.0-alpha.7.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"babel-types": {
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-types@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"babel-helper-optimise-call-expression": {
|
||||
"version": "6.23.0",
|
||||
"from": "babel-helper-optimise-call-expression@>=6.23.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.23.0.tgz",
|
||||
"dev": true
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-helper-optimise-call-expression@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-7.0.0-alpha.7.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"babel-types": {
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-types@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"babel-helper-regex": {
|
||||
"version": "6.22.0",
|
||||
"from": "babel-helper-regex@>=6.22.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.22.0.tgz",
|
||||
"dev": true
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-helper-regex@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-7.0.0-alpha.7.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"babel-types": {
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-types@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"babel-helper-replace-supers": {
|
||||
"version": "6.23.0",
|
||||
"from": "babel-helper-replace-supers@>=6.23.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.23.0.tgz",
|
||||
"dev": true
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-helper-replace-supers@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-7.0.0-alpha.7.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"babel-code-frame": {
|
||||
"version": "7.0.0-alpha.3",
|
||||
"from": "babel-code-frame@7.0.0-alpha.3",
|
||||
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-alpha.3.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-messages": {
|
||||
"version": "7.0.0-alpha.3",
|
||||
"from": "babel-messages@7.0.0-alpha.3",
|
||||
"resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-7.0.0-alpha.3.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-template": {
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-template@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-traverse": {
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-traverse@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-types": {
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-types@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babylon": {
|
||||
"version": "7.0.0-beta.8",
|
||||
"from": "babylon@7.0.0-beta.8",
|
||||
"resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.8.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"babel-helpers": {
|
||||
"version": "6.23.0",
|
||||
"from": "babel-helpers@>=6.23.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.23.0.tgz",
|
||||
"version": "6.24.1",
|
||||
"from": "babel-helpers@>=6.24.1 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-messages": {
|
||||
@ -335,171 +453,521 @@
|
||||
"dev": true
|
||||
},
|
||||
"babel-plugin-check-es2015-constants": {
|
||||
"version": "6.22.0",
|
||||
"from": "babel-plugin-check-es2015-constants@>=6.22.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz",
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-plugin-check-es2015-constants@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-plugin-transform-es2015-arrow-functions": {
|
||||
"version": "6.22.0",
|
||||
"from": "babel-plugin-transform-es2015-arrow-functions@>=6.22.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz",
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-plugin-transform-es2015-arrow-functions@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-plugin-transform-es2015-block-scoped-functions": {
|
||||
"version": "6.22.0",
|
||||
"from": "babel-plugin-transform-es2015-block-scoped-functions@>=6.22.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz",
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-plugin-transform-es2015-block-scoped-functions@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-plugin-transform-es2015-block-scoping": {
|
||||
"version": "6.23.0",
|
||||
"from": "babel-plugin-transform-es2015-block-scoping@>=6.22.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.23.0.tgz",
|
||||
"dev": true
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-plugin-transform-es2015-block-scoping@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-7.0.0-alpha.7.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"babel-code-frame": {
|
||||
"version": "7.0.0-alpha.3",
|
||||
"from": "babel-code-frame@7.0.0-alpha.3",
|
||||
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-alpha.3.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-messages": {
|
||||
"version": "7.0.0-alpha.3",
|
||||
"from": "babel-messages@7.0.0-alpha.3",
|
||||
"resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-7.0.0-alpha.3.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-template": {
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-template@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-traverse": {
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-traverse@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-types": {
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-types@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babylon": {
|
||||
"version": "7.0.0-beta.8",
|
||||
"from": "babylon@7.0.0-beta.8",
|
||||
"resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.8.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"babel-plugin-transform-es2015-classes": {
|
||||
"version": "6.23.0",
|
||||
"from": "babel-plugin-transform-es2015-classes@>=6.22.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.23.0.tgz",
|
||||
"dev": true
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-plugin-transform-es2015-classes@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-7.0.0-alpha.7.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"babel-code-frame": {
|
||||
"version": "7.0.0-alpha.3",
|
||||
"from": "babel-code-frame@7.0.0-alpha.3",
|
||||
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-alpha.3.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-messages": {
|
||||
"version": "7.0.0-alpha.3",
|
||||
"from": "babel-messages@7.0.0-alpha.3",
|
||||
"resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-7.0.0-alpha.3.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-template": {
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-template@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-traverse": {
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-traverse@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-types": {
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-types@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babylon": {
|
||||
"version": "7.0.0-beta.8",
|
||||
"from": "babylon@7.0.0-beta.8",
|
||||
"resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.8.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"babel-plugin-transform-es2015-computed-properties": {
|
||||
"version": "6.22.0",
|
||||
"from": "babel-plugin-transform-es2015-computed-properties@>=6.22.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.22.0.tgz",
|
||||
"dev": true
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-plugin-transform-es2015-computed-properties@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-7.0.0-alpha.7.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"babel-code-frame": {
|
||||
"version": "7.0.0-alpha.3",
|
||||
"from": "babel-code-frame@7.0.0-alpha.3",
|
||||
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-alpha.3.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-messages": {
|
||||
"version": "7.0.0-alpha.3",
|
||||
"from": "babel-messages@7.0.0-alpha.3",
|
||||
"resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-7.0.0-alpha.3.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-template": {
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-template@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-traverse": {
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-traverse@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-types": {
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-types@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babylon": {
|
||||
"version": "7.0.0-beta.8",
|
||||
"from": "babylon@7.0.0-beta.8",
|
||||
"resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.8.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"babel-plugin-transform-es2015-destructuring": {
|
||||
"version": "6.23.0",
|
||||
"from": "babel-plugin-transform-es2015-destructuring@>=6.22.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz",
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-plugin-transform-es2015-destructuring@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-plugin-transform-es2015-duplicate-keys": {
|
||||
"version": "6.22.0",
|
||||
"from": "babel-plugin-transform-es2015-duplicate-keys@>=6.22.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.22.0.tgz",
|
||||
"dev": true
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-plugin-transform-es2015-duplicate-keys@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-7.0.0-alpha.7.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"babel-types": {
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-types@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"babel-plugin-transform-es2015-for-of": {
|
||||
"version": "6.23.0",
|
||||
"from": "babel-plugin-transform-es2015-for-of@>=6.22.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz",
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-plugin-transform-es2015-for-of@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-plugin-transform-es2015-function-name": {
|
||||
"version": "6.22.0",
|
||||
"from": "babel-plugin-transform-es2015-function-name@>=6.22.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.22.0.tgz",
|
||||
"dev": true
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-plugin-transform-es2015-function-name@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-7.0.0-alpha.7.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"babel-types": {
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-types@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"babel-plugin-transform-es2015-literals": {
|
||||
"version": "6.22.0",
|
||||
"from": "babel-plugin-transform-es2015-literals@>=6.22.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz",
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-plugin-transform-es2015-literals@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-plugin-transform-es2015-modules-amd": {
|
||||
"version": "6.24.0",
|
||||
"from": "babel-plugin-transform-es2015-modules-amd@>=6.24.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.0.tgz",
|
||||
"dev": true
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-plugin-transform-es2015-modules-amd@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-7.0.0-alpha.7.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"babel-code-frame": {
|
||||
"version": "7.0.0-alpha.3",
|
||||
"from": "babel-code-frame@7.0.0-alpha.3",
|
||||
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-alpha.3.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-messages": {
|
||||
"version": "7.0.0-alpha.3",
|
||||
"from": "babel-messages@7.0.0-alpha.3",
|
||||
"resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-7.0.0-alpha.3.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-template": {
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-template@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-traverse": {
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-traverse@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-types": {
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-types@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babylon": {
|
||||
"version": "7.0.0-beta.8",
|
||||
"from": "babylon@7.0.0-beta.8",
|
||||
"resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.8.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"babel-plugin-transform-es2015-modules-commonjs": {
|
||||
"version": "6.24.0",
|
||||
"from": "babel-plugin-transform-es2015-modules-commonjs@>=6.24.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.24.0.tgz",
|
||||
"dev": true
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-plugin-transform-es2015-modules-commonjs@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-7.0.0-alpha.7.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"babel-code-frame": {
|
||||
"version": "7.0.0-alpha.3",
|
||||
"from": "babel-code-frame@7.0.0-alpha.3",
|
||||
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-alpha.3.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-messages": {
|
||||
"version": "7.0.0-alpha.3",
|
||||
"from": "babel-messages@7.0.0-alpha.3",
|
||||
"resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-7.0.0-alpha.3.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-template": {
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-template@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-traverse": {
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-traverse@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-types": {
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-types@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babylon": {
|
||||
"version": "7.0.0-beta.8",
|
||||
"from": "babylon@7.0.0-beta.8",
|
||||
"resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.8.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"babel-plugin-transform-es2015-modules-strip": {
|
||||
"version": "0.1.0",
|
||||
"from": "babel-plugin-transform-es2015-modules-strip@>=0.1.0 <0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-strip/-/babel-plugin-transform-es2015-modules-strip-0.1.0.tgz",
|
||||
"version": "0.1.1",
|
||||
"from": "babel-plugin-transform-es2015-modules-strip@>=0.1.1 <0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-strip/-/babel-plugin-transform-es2015-modules-strip-0.1.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-plugin-transform-es2015-modules-systemjs": {
|
||||
"version": "6.23.0",
|
||||
"from": "babel-plugin-transform-es2015-modules-systemjs@>=6.22.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.23.0.tgz",
|
||||
"dev": true
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-plugin-transform-es2015-modules-systemjs@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-7.0.0-alpha.7.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"babel-code-frame": {
|
||||
"version": "7.0.0-alpha.3",
|
||||
"from": "babel-code-frame@7.0.0-alpha.3",
|
||||
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-alpha.3.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-messages": {
|
||||
"version": "7.0.0-alpha.3",
|
||||
"from": "babel-messages@7.0.0-alpha.3",
|
||||
"resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-7.0.0-alpha.3.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-template": {
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-template@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-traverse": {
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-traverse@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-types": {
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-types@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babylon": {
|
||||
"version": "7.0.0-beta.8",
|
||||
"from": "babylon@7.0.0-beta.8",
|
||||
"resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.8.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"babel-plugin-transform-es2015-modules-umd": {
|
||||
"version": "6.24.0",
|
||||
"from": "babel-plugin-transform-es2015-modules-umd@>=6.24.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.0.tgz",
|
||||
"dev": true
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-plugin-transform-es2015-modules-umd@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-7.0.0-alpha.7.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"babel-code-frame": {
|
||||
"version": "7.0.0-alpha.3",
|
||||
"from": "babel-code-frame@7.0.0-alpha.3",
|
||||
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-alpha.3.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-messages": {
|
||||
"version": "7.0.0-alpha.3",
|
||||
"from": "babel-messages@7.0.0-alpha.3",
|
||||
"resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-7.0.0-alpha.3.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-template": {
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-template@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-traverse": {
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-traverse@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-types": {
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-types@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babylon": {
|
||||
"version": "7.0.0-beta.8",
|
||||
"from": "babylon@7.0.0-beta.8",
|
||||
"resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.8.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"babel-plugin-transform-es2015-object-super": {
|
||||
"version": "6.22.0",
|
||||
"from": "babel-plugin-transform-es2015-object-super@>=6.22.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.22.0.tgz",
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-plugin-transform-es2015-object-super@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-plugin-transform-es2015-parameters": {
|
||||
"version": "6.23.0",
|
||||
"from": "babel-plugin-transform-es2015-parameters@>=6.22.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.23.0.tgz",
|
||||
"dev": true
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-plugin-transform-es2015-parameters@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-7.0.0-alpha.7.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"babel-code-frame": {
|
||||
"version": "7.0.0-alpha.3",
|
||||
"from": "babel-code-frame@7.0.0-alpha.3",
|
||||
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-7.0.0-alpha.3.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-messages": {
|
||||
"version": "7.0.0-alpha.3",
|
||||
"from": "babel-messages@7.0.0-alpha.3",
|
||||
"resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-7.0.0-alpha.3.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-template": {
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-template@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-template/-/babel-template-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-traverse": {
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-traverse@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-types": {
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-types@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babylon": {
|
||||
"version": "7.0.0-beta.8",
|
||||
"from": "babylon@7.0.0-beta.8",
|
||||
"resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.8.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"babel-plugin-transform-es2015-shorthand-properties": {
|
||||
"version": "6.22.0",
|
||||
"from": "babel-plugin-transform-es2015-shorthand-properties@>=6.22.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.22.0.tgz",
|
||||
"dev": true
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-plugin-transform-es2015-shorthand-properties@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-7.0.0-alpha.7.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"babel-types": {
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-types@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"babel-plugin-transform-es2015-spread": {
|
||||
"version": "6.22.0",
|
||||
"from": "babel-plugin-transform-es2015-spread@>=6.22.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz",
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-plugin-transform-es2015-spread@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-plugin-transform-es2015-sticky-regex": {
|
||||
"version": "6.22.0",
|
||||
"from": "babel-plugin-transform-es2015-sticky-regex@>=6.22.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.22.0.tgz",
|
||||
"dev": true
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-plugin-transform-es2015-sticky-regex@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-7.0.0-alpha.7.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"babel-types": {
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-types@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"babel-plugin-transform-es2015-template-literals": {
|
||||
"version": "6.22.0",
|
||||
"from": "babel-plugin-transform-es2015-template-literals@>=6.22.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz",
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-plugin-transform-es2015-template-literals@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-plugin-transform-es2015-typeof-symbol": {
|
||||
"version": "6.23.0",
|
||||
"from": "babel-plugin-transform-es2015-typeof-symbol@>=6.22.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz",
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-plugin-transform-es2015-typeof-symbol@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-plugin-transform-es2015-unicode-regex": {
|
||||
"version": "6.22.0",
|
||||
"from": "babel-plugin-transform-es2015-unicode-regex@>=6.22.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.22.0.tgz",
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-plugin-transform-es2015-unicode-regex@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-plugin-transform-regenerator": {
|
||||
"version": "6.22.0",
|
||||
"from": "babel-plugin-transform-regenerator@>=6.22.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.22.0.tgz",
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-plugin-transform-regenerator@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-plugin-transform-strict-mode": {
|
||||
"version": "6.22.0",
|
||||
"from": "babel-plugin-transform-strict-mode@>=6.22.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.22.0.tgz",
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-plugin-transform-strict-mode@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-7.0.0-alpha.7.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"babel-types": {
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-types@7.0.0-alpha.7",
|
||||
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"babel-polyfill": {
|
||||
"version": "6.23.0",
|
||||
"from": "babel-polyfill@>=6.23.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.23.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-preset-es2015": {
|
||||
"version": "6.24.0",
|
||||
"from": "babel-preset-es2015@>=6.24.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.0.tgz",
|
||||
"version": "7.0.0-alpha.7",
|
||||
"from": "babel-preset-es2015@>=7.0.0-alpha.3 <8.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-7.0.0-alpha.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-register": {
|
||||
"version": "6.24.0",
|
||||
"from": "babel-register@>=6.24.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.24.0.tgz",
|
||||
"version": "6.24.1",
|
||||
"from": "babel-register@>=6.24.1 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.24.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-runtime": {
|
||||
@ -509,26 +977,26 @@
|
||||
"dev": true
|
||||
},
|
||||
"babel-template": {
|
||||
"version": "6.23.0",
|
||||
"from": "babel-template@>=6.23.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.23.0.tgz",
|
||||
"version": "6.24.1",
|
||||
"from": "babel-template@>=6.24.1 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.24.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-traverse": {
|
||||
"version": "6.23.1",
|
||||
"from": "babel-traverse@>=6.15.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.23.1.tgz",
|
||||
"version": "6.24.1",
|
||||
"from": "babel-traverse@>=6.24.1 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.24.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babel-types": {
|
||||
"version": "6.23.0",
|
||||
"from": "babel-types@>=6.15.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.23.0.tgz",
|
||||
"version": "6.24.1",
|
||||
"from": "babel-types@>=6.24.1 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.24.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"babylon": {
|
||||
"version": "6.16.1",
|
||||
"from": "babylon@>=6.13.0 <7.0.0",
|
||||
"from": "babylon@>=6.11.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babylon/-/babylon-6.16.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
@ -538,18 +1006,6 @@
|
||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"basic-auth": {
|
||||
"version": "1.1.0",
|
||||
"from": "basic-auth@>=1.1.0 <1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-1.1.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"batch": {
|
||||
"version": "0.5.3",
|
||||
"from": "batch@0.5.3",
|
||||
"resolved": "https://registry.npmjs.org/batch/-/batch-0.5.3.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"bcrypt-pbkdf": {
|
||||
"version": "1.0.1",
|
||||
"from": "bcrypt-pbkdf@>=1.0.0 <2.0.0",
|
||||
@ -563,12 +1019,6 @@
|
||||
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.8.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"bl": {
|
||||
"version": "1.2.0",
|
||||
"from": "bl@>=1.0.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/bl/-/bl-1.2.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"block-stream": {
|
||||
"version": "0.0.9",
|
||||
"from": "block-stream@*",
|
||||
@ -577,48 +1027,10 @@
|
||||
},
|
||||
"bluebird": {
|
||||
"version": "3.5.0",
|
||||
"from": "bluebird@>=3.0.6 <4.0.0",
|
||||
"from": "bluebird@>=3.4.7 <4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"body-parser": {
|
||||
"version": "1.14.2",
|
||||
"from": "body-parser@>=1.14.0 <1.15.0",
|
||||
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.2.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "2.2.0",
|
||||
"from": "debug@>=2.2.0 <2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"http-errors": {
|
||||
"version": "1.3.1",
|
||||
"from": "http-errors@>=1.3.1 <1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"iconv-lite": {
|
||||
"version": "0.4.13",
|
||||
"from": "iconv-lite@0.4.13",
|
||||
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"ms": {
|
||||
"version": "0.7.1",
|
||||
"from": "ms@0.7.1",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"qs": {
|
||||
"version": "5.2.0",
|
||||
"from": "qs@5.2.0",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-5.2.0.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"boom": {
|
||||
"version": "2.10.1",
|
||||
"from": "boom@>=2.0.0 <3.0.0",
|
||||
@ -626,9 +1038,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"brace-expansion": {
|
||||
"version": "1.1.6",
|
||||
"version": "1.1.7",
|
||||
"from": "brace-expansion@>=1.0.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"braces": {
|
||||
@ -638,20 +1050,14 @@
|
||||
"dev": true
|
||||
},
|
||||
"browserslist": {
|
||||
"version": "1.7.6",
|
||||
"version": "1.7.7",
|
||||
"from": "browserslist@>=1.7.6 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.6.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"buffer-crc32": {
|
||||
"version": "0.2.13",
|
||||
"from": "buffer-crc32@>=0.2.1 <0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
|
||||
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"buffer-shims": {
|
||||
"version": "1.0.0",
|
||||
"from": "buffer-shims@>=1.0.0 <2.0.0",
|
||||
"from": "buffer-shims@>=1.0.0 <1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
@ -681,12 +1087,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"bytes": {
|
||||
"version": "2.2.0",
|
||||
"from": "bytes@2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/bytes/-/bytes-2.2.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"caller-path": {
|
||||
"version": "0.1.0",
|
||||
"from": "caller-path@>=0.1.0 <0.2.0",
|
||||
@ -700,27 +1100,35 @@
|
||||
"dev": true
|
||||
},
|
||||
"camelcase": {
|
||||
"version": "2.1.1",
|
||||
"from": "camelcase@>=2.0.0 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
|
||||
"version": "3.0.0",
|
||||
"from": "camelcase@>=3.0.0 <4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"camelcase-keys": {
|
||||
"version": "2.1.0",
|
||||
"from": "camelcase-keys@>=2.0.0 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"camelcase": {
|
||||
"version": "2.1.1",
|
||||
"from": "camelcase@>=2.0.0 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"caniuse-db": {
|
||||
"version": "1.0.30000637",
|
||||
"version": "1.0.30000653",
|
||||
"from": "caniuse-db@>=1.0.30000634 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000637.tgz",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000653.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"caseless": {
|
||||
"version": "0.11.0",
|
||||
"from": "caseless@>=0.11.0 <0.12.0",
|
||||
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz",
|
||||
"version": "0.12.0",
|
||||
"from": "caseless@>=0.12.0 <0.13.0",
|
||||
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"center-align": {
|
||||
@ -762,15 +1170,15 @@
|
||||
"dev": true
|
||||
},
|
||||
"clean-css": {
|
||||
"version": "4.0.9",
|
||||
"from": "clean-css@>=4.0.9 <5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.0.9.tgz",
|
||||
"version": "4.0.12",
|
||||
"from": "clean-css@>=4.0.12 <5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.0.12.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"clean-css-cli": {
|
||||
"version": "4.0.9",
|
||||
"from": "clean-css-cli@>=4.0.9 <5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/clean-css-cli/-/clean-css-cli-4.0.9.tgz",
|
||||
"version": "4.0.12",
|
||||
"from": "clean-css-cli@>=4.0.12 <5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/clean-css-cli/-/clean-css-cli-4.0.12.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"cli": {
|
||||
@ -829,16 +1237,10 @@
|
||||
"resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"coffee-script": {
|
||||
"version": "1.10.0",
|
||||
"from": "coffee-script@>=1.10.0 <1.11.0",
|
||||
"resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.10.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"colors": {
|
||||
"version": "1.1.2",
|
||||
"from": "colors@>=1.1.2 <1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
|
||||
"version": "1.0.3",
|
||||
"from": "colors@1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"combined-stream": {
|
||||
@ -849,16 +1251,10 @@
|
||||
},
|
||||
"commander": {
|
||||
"version": "2.9.0",
|
||||
"from": "commander@>=2.0.0 <3.0.0",
|
||||
"from": "commander@>=2.8.1 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"compress-commons": {
|
||||
"version": "1.2.0",
|
||||
"from": "compress-commons@>=1.1.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-1.2.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"concat-map": {
|
||||
"version": "0.0.1",
|
||||
"from": "concat-map@0.0.1",
|
||||
@ -871,26 +1267,6 @@
|
||||
"resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"connect": {
|
||||
"version": "3.6.0",
|
||||
"from": "connect@>=3.4.0 <4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/connect/-/connect-3.6.0.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "2.6.1",
|
||||
"from": "debug@2.6.1",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.1.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"connect-livereload": {
|
||||
"version": "0.5.4",
|
||||
"from": "connect-livereload@>=0.5.0 <0.6.0",
|
||||
"resolved": "https://registry.npmjs.org/connect-livereload/-/connect-livereload-0.5.4.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"console-browserify": {
|
||||
"version": "1.1.0",
|
||||
"from": "console-browserify@>=1.1.0 <1.2.0",
|
||||
@ -903,16 +1279,10 @@
|
||||
"resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"content-type": {
|
||||
"version": "1.0.2",
|
||||
"from": "content-type@>=1.0.1 <1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"convert-source-map": {
|
||||
"version": "1.4.0",
|
||||
"version": "1.5.0",
|
||||
"from": "convert-source-map@>=1.1.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.4.0.tgz",
|
||||
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"core-js": {
|
||||
@ -941,18 +1311,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"crc": {
|
||||
"version": "3.4.4",
|
||||
"from": "crc@>=3.4.4 <4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/crc/-/crc-3.4.4.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"crc32-stream": {
|
||||
"version": "2.0.0",
|
||||
"from": "crc32-stream@>=2.0.0 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-2.0.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"cross-spawn": {
|
||||
"version": "3.0.1",
|
||||
"from": "cross-spawn@>=3.0.0 <4.0.0",
|
||||
@ -1011,27 +1369,15 @@
|
||||
"resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"date-time": {
|
||||
"version": "1.1.0",
|
||||
"from": "date-time@>=1.1.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/date-time/-/date-time-1.1.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"dateformat": {
|
||||
"version": "1.0.12",
|
||||
"from": "dateformat@>=1.0.12 <1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"debug": {
|
||||
"version": "2.6.3",
|
||||
"from": "debug@>=2.2.0 <3.0.0",
|
||||
"from": "debug@>=2.1.1 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.3.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"decamelize": {
|
||||
"version": "1.2.0",
|
||||
"from": "decamelize@>=1.1.2 <2.0.0",
|
||||
"from": "decamelize@>=1.1.1 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
@ -1041,6 +1387,12 @@
|
||||
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"define-properties": {
|
||||
"version": "1.1.2",
|
||||
"from": "define-properties@>=1.1.2 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"del": {
|
||||
"version": "2.2.2",
|
||||
"from": "del@>=2.0.2 <3.0.0",
|
||||
@ -1059,16 +1411,10 @@
|
||||
"resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"depd": {
|
||||
"version": "1.1.0",
|
||||
"from": "depd@>=1.1.0 <1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"destroy": {
|
||||
"version": "1.0.4",
|
||||
"from": "destroy@>=1.0.4 <1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
|
||||
"dependency-graph": {
|
||||
"version": "0.5.0",
|
||||
"from": "dependency-graph@>=0.5.0 <0.6.0",
|
||||
"resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.5.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"detect-file": {
|
||||
@ -1127,6 +1473,12 @@
|
||||
"resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"duplexer": {
|
||||
"version": "0.1.1",
|
||||
"from": "duplexer@>=0.1.1 <0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"ecc-jsbn": {
|
||||
"version": "0.1.1",
|
||||
"from": "ecc-jsbn@>=0.1.1 <0.2.0",
|
||||
@ -1134,28 +1486,16 @@
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"ee-first": {
|
||||
"version": "1.1.1",
|
||||
"from": "ee-first@1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"electron-to-chromium": {
|
||||
"version": "1.2.7",
|
||||
"from": "electron-to-chromium@>=1.2.5 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.2.7.tgz",
|
||||
"version": "1.3.3",
|
||||
"from": "electron-to-chromium@>=1.2.7 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.3.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"encodeurl": {
|
||||
"version": "1.0.1",
|
||||
"from": "encodeurl@>=1.0.1 <1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"end-of-stream": {
|
||||
"version": "1.4.0",
|
||||
"from": "end-of-stream@>=1.0.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz",
|
||||
"ensure-posix-path": {
|
||||
"version": "1.0.2",
|
||||
"from": "ensure-posix-path@>=1.0.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ensure-posix-path/-/ensure-posix-path-1.0.2.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"entities": {
|
||||
@ -1170,10 +1510,22 @@
|
||||
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"es-abstract": {
|
||||
"version": "1.7.0",
|
||||
"from": "es-abstract@>=1.4.3 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.7.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"es-to-primitive": {
|
||||
"version": "1.1.1",
|
||||
"from": "es-to-primitive@>=1.1.1 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"es5-ext": {
|
||||
"version": "0.10.14",
|
||||
"version": "0.10.15",
|
||||
"from": "es5-ext@>=0.10.14 <0.11.0",
|
||||
"resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.14.tgz",
|
||||
"resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.15.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"es6-iterator": {
|
||||
@ -1218,12 +1570,6 @@
|
||||
"resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"escape-html": {
|
||||
"version": "1.0.3",
|
||||
"from": "escape-html@>=1.0.3 <1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"escape-string-regexp": {
|
||||
"version": "1.0.5",
|
||||
"from": "escape-string-regexp@>=1.0.2 <2.0.0",
|
||||
@ -1237,15 +1583,23 @@
|
||||
"dev": true
|
||||
},
|
||||
"eslint": {
|
||||
"version": "3.18.0",
|
||||
"from": "eslint@>=3.18.0 <4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-3.18.0.tgz",
|
||||
"dev": true
|
||||
"version": "3.19.0",
|
||||
"from": "eslint@>=3.19.0 <4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-3.19.0.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"user-home": {
|
||||
"version": "2.0.0",
|
||||
"from": "user-home@>=2.0.0 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"espree": {
|
||||
"version": "3.4.0",
|
||||
"version": "3.4.1",
|
||||
"from": "espree@>=3.4.0 <4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/espree/-/espree-3.4.0.tgz",
|
||||
"resolved": "https://registry.npmjs.org/espree/-/espree-3.4.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"esprima": {
|
||||
@ -1286,27 +1640,27 @@
|
||||
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"etag": {
|
||||
"version": "1.8.0",
|
||||
"from": "etag@>=1.8.0 <1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"event-emitter": {
|
||||
"version": "0.3.5",
|
||||
"from": "event-emitter@>=0.3.5 <0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"eventemitter2": {
|
||||
"version": "0.4.14",
|
||||
"from": "eventemitter2@>=0.4.13 <0.5.0",
|
||||
"resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
|
||||
"event-stream": {
|
||||
"version": "3.3.4",
|
||||
"from": "event-stream@>=3.3.0 <3.4.0",
|
||||
"resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"exists-stat": {
|
||||
"version": "1.0.0",
|
||||
"from": "exists-stat@1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/exists-stat/-/exists-stat-1.0.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"exit": {
|
||||
"version": "0.1.2",
|
||||
"from": "exit@>=0.1.1 <0.2.0",
|
||||
"from": "exit@>=0.1.0 <0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
|
||||
"dev": true
|
||||
},
|
||||
@ -1336,7 +1690,7 @@
|
||||
},
|
||||
"extend": {
|
||||
"version": "3.0.0",
|
||||
"from": "extend@>=3.0.0 <3.1.0",
|
||||
"from": "extend@>=3.0.0 <4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
@ -1375,6 +1729,12 @@
|
||||
"from": "readable-stream@>=2.0.0 <2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"string_decoder": {
|
||||
"version": "0.10.31",
|
||||
"from": "string_decoder@>=0.10.0 <0.11.0",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -1390,38 +1750,12 @@
|
||||
"resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"faye-websocket": {
|
||||
"version": "0.10.0",
|
||||
"from": "faye-websocket@>=0.10.0 <0.11.0",
|
||||
"resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"fd-slicer": {
|
||||
"version": "1.0.1",
|
||||
"from": "fd-slicer@>=1.0.1 <1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"fg-lodash": {
|
||||
"version": "0.0.2",
|
||||
"from": "fg-lodash@0.0.2",
|
||||
"resolved": "https://registry.npmjs.org/fg-lodash/-/fg-lodash-0.0.2.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"lodash": {
|
||||
"version": "2.4.2",
|
||||
"from": "lodash@>=2.4.1 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"underscore.string": {
|
||||
"version": "2.3.3",
|
||||
"from": "underscore.string@>=2.3.3 <2.4.0",
|
||||
"resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"figures": {
|
||||
"version": "1.7.0",
|
||||
"from": "figures@>=1.3.5 <2.0.0",
|
||||
@ -1434,12 +1768,6 @@
|
||||
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"file-sync-cmp": {
|
||||
"version": "0.1.1",
|
||||
"from": "file-sync-cmp@>=0.1.0 <0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/file-sync-cmp/-/file-sync-cmp-0.1.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"filename-regex": {
|
||||
"version": "2.0.0",
|
||||
"from": "filename-regex@>=2.0.0 <3.0.0",
|
||||
@ -1452,20 +1780,6 @@
|
||||
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"finalhandler": {
|
||||
"version": "1.0.0",
|
||||
"from": "finalhandler@1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.0.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "2.6.1",
|
||||
"from": "debug@2.6.1",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.1.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"find-up": {
|
||||
"version": "1.1.2",
|
||||
"from": "find-up@>=1.0.0 <2.0.0",
|
||||
@ -1473,18 +1787,10 @@
|
||||
"dev": true
|
||||
},
|
||||
"findup-sync": {
|
||||
"version": "0.3.0",
|
||||
"from": "findup-sync@>=0.3.0 <0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"glob": {
|
||||
"version": "5.0.15",
|
||||
"from": "glob@>=5.0.0 <5.1.0",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
"version": "0.4.3",
|
||||
"from": "findup-sync@>=0.4.2 <0.5.0",
|
||||
"resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.4.3.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"fined": {
|
||||
"version": "1.0.2",
|
||||
@ -1516,6 +1822,12 @@
|
||||
"resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"foreach": {
|
||||
"version": "2.0.5",
|
||||
"from": "foreach@>=2.0.5 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"forever-agent": {
|
||||
"version": "0.6.1",
|
||||
"from": "forever-agent@>=0.6.1 <0.7.0",
|
||||
@ -1523,15 +1835,15 @@
|
||||
"dev": true
|
||||
},
|
||||
"form-data": {
|
||||
"version": "2.1.2",
|
||||
"version": "2.1.4",
|
||||
"from": "form-data@>=2.1.1 <2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.2.tgz",
|
||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"fresh": {
|
||||
"version": "0.5.0",
|
||||
"from": "fresh@0.5.0",
|
||||
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.0.tgz",
|
||||
"from": {
|
||||
"version": "0.1.7",
|
||||
"from": "from@>=0.0.0 <1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"fs-exists-sync": {
|
||||
@ -1547,9 +1859,23 @@
|
||||
"dev": true
|
||||
},
|
||||
"fs-promise": {
|
||||
"version": "2.0.2",
|
||||
"from": "fs-promise@>=2.0.2 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fs-promise/-/fs-promise-2.0.2.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"fs-extra": {
|
||||
"version": "2.1.2",
|
||||
"from": "fs-extra@>=2.0.0 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-2.1.2.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"fs-readdir-recursive": {
|
||||
"version": "1.0.0",
|
||||
"from": "fs-promise@>=1.0.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fs-promise/-/fs-promise-1.0.0.tgz",
|
||||
"from": "fs-readdir-recursive@>=1.0.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.0.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"fs.realpath": {
|
||||
@ -1564,6 +1890,12 @@
|
||||
"resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"function-bind": {
|
||||
"version": "1.1.0",
|
||||
"from": "function-bind@>=1.0.2 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"gauge": {
|
||||
"version": "2.7.3",
|
||||
"from": "gauge@>=2.7.1 <2.8.0",
|
||||
@ -1600,12 +1932,6 @@
|
||||
"resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"getobject": {
|
||||
"version": "0.1.0",
|
||||
"from": "getobject@>=0.1.0 <0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"getpass": {
|
||||
"version": "0.1.6",
|
||||
"from": "getpass@>=0.1.1 <0.2.0",
|
||||
@ -1622,7 +1948,7 @@
|
||||
},
|
||||
"glob": {
|
||||
"version": "7.1.1",
|
||||
"from": "glob@>=7.0.3 <8.0.0",
|
||||
"from": "glob@>=7.0.0 <8.0.0",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
@ -1651,9 +1977,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"globals": {
|
||||
"version": "9.16.0",
|
||||
"version": "9.17.0",
|
||||
"from": "globals@>=9.0.0 <10.0.0",
|
||||
"resolved": "https://registry.npmjs.org/globals/-/globals-9.16.0.tgz",
|
||||
"resolved": "https://registry.npmjs.org/globals/-/globals-9.17.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"globby": {
|
||||
@ -1688,210 +2014,22 @@
|
||||
"resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"grunt": {
|
||||
"version": "1.0.1",
|
||||
"from": "grunt@>=1.0.1 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/grunt/-/grunt-1.0.1.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"esprima": {
|
||||
"version": "2.7.3",
|
||||
"from": "esprima@>=2.6.0 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"glob": {
|
||||
"version": "7.0.6",
|
||||
"from": "glob@>=7.0.0 <7.1.0",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"grunt-cli": {
|
||||
"version": "1.2.0",
|
||||
"from": "grunt-cli@>=1.2.0 <1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.2.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"js-yaml": {
|
||||
"version": "3.5.5",
|
||||
"from": "js-yaml@>=3.5.2 <3.6.0",
|
||||
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.5.5.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"resolve": {
|
||||
"version": "1.1.7",
|
||||
"from": "resolve@>=1.1.0 <1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"rimraf": {
|
||||
"version": "2.2.8",
|
||||
"from": "rimraf@>=2.2.8 <2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"grunt-babel": {
|
||||
"version": "6.0.0",
|
||||
"from": "grunt-babel@>=6.0.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/grunt-babel/-/grunt-babel-6.0.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"grunt-build-control": {
|
||||
"version": "0.7.1",
|
||||
"from": "grunt-build-control@>=0.7.1 <0.8.0",
|
||||
"resolved": "https://registry.npmjs.org/grunt-build-control/-/grunt-build-control-0.7.1.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"semver": {
|
||||
"version": "4.3.6",
|
||||
"from": "semver@>=4.3.3 <4.4.0",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"shelljs": {
|
||||
"version": "0.2.6",
|
||||
"from": "shelljs@>=0.2.6 <0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.2.6.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"grunt-contrib-clean": {
|
||||
"version": "1.0.0",
|
||||
"from": "grunt-contrib-clean@>=1.0.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-1.0.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"grunt-contrib-compress": {
|
||||
"version": "1.4.1",
|
||||
"from": "grunt-contrib-compress@>=1.4.1 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/grunt-contrib-compress/-/grunt-contrib-compress-1.4.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"grunt-contrib-concat": {
|
||||
"version": "1.0.1",
|
||||
"from": "grunt-contrib-concat@>=1.0.1 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/grunt-contrib-concat/-/grunt-contrib-concat-1.0.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"grunt-contrib-connect": {
|
||||
"version": "1.0.2",
|
||||
"from": "grunt-contrib-connect@>=1.0.2 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/grunt-contrib-connect/-/grunt-contrib-connect-1.0.2.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"grunt-contrib-copy": {
|
||||
"version": "1.0.0",
|
||||
"from": "grunt-contrib-copy@>=1.0.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/grunt-contrib-copy/-/grunt-contrib-copy-1.0.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"grunt-contrib-qunit": {
|
||||
"version": "1.3.0",
|
||||
"from": "grunt-contrib-qunit@>=1.3.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/grunt-contrib-qunit/-/grunt-contrib-qunit-1.3.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"grunt-contrib-watch": {
|
||||
"version": "1.0.0",
|
||||
"from": "grunt-contrib-watch@>=1.0.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-1.0.0.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"lodash": {
|
||||
"version": "3.10.1",
|
||||
"from": "lodash@>=3.10.1 <4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"grunt-exec": {
|
||||
"version": "2.0.0",
|
||||
"from": "grunt-exec@>=2.0.0 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/grunt-exec/-/grunt-exec-2.0.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"grunt-known-options": {
|
||||
"version": "1.1.0",
|
||||
"from": "grunt-known-options@>=1.1.0 <1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"grunt-legacy-log": {
|
||||
"version": "1.0.0",
|
||||
"from": "grunt-legacy-log@>=1.0.0 <1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-1.0.0.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"lodash": {
|
||||
"version": "3.10.1",
|
||||
"from": "lodash@>=3.10.1 <3.11.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"grunt-legacy-log-utils": {
|
||||
"version": "1.0.0",
|
||||
"from": "grunt-legacy-log-utils@>=1.0.0 <1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-1.0.0.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"lodash": {
|
||||
"version": "4.3.0",
|
||||
"from": "lodash@>=4.3.0 <4.4.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.3.0.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"grunt-legacy-util": {
|
||||
"version": "1.0.0",
|
||||
"from": "grunt-legacy-util@>=1.0.0 <1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-1.0.0.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"lodash": {
|
||||
"version": "4.3.0",
|
||||
"from": "lodash@>=4.3.0 <4.4.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.3.0.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"grunt-lib-phantomjs": {
|
||||
"version": "1.1.0",
|
||||
"from": "grunt-lib-phantomjs@>=1.0.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/grunt-lib-phantomjs/-/grunt-lib-phantomjs-1.1.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"grunt-saucelabs": {
|
||||
"version": "9.0.0",
|
||||
"from": "grunt-saucelabs@>=9.0.0 <10.0.0",
|
||||
"resolved": "https://registry.npmjs.org/grunt-saucelabs/-/grunt-saucelabs-9.0.0.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"lodash": {
|
||||
"version": "4.13.1",
|
||||
"from": "lodash@>=4.13.1 <4.14.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.13.1.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"grunt-stamp": {
|
||||
"version": "0.3.0",
|
||||
"from": "grunt-stamp@>=0.3.0 <0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/grunt-stamp/-/grunt-stamp-0.3.0.tgz",
|
||||
"har-schema": {
|
||||
"version": "1.0.5",
|
||||
"from": "har-schema@>=1.0.5 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"har-validator": {
|
||||
"version": "2.0.6",
|
||||
"from": "har-validator@>=2.0.6 <2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz",
|
||||
"version": "4.2.1",
|
||||
"from": "har-validator@>=4.2.1 <4.3.0",
|
||||
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"has": {
|
||||
"version": "1.0.1",
|
||||
"from": "has@>=1.0.1 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"has-ansi": {
|
||||
@ -1942,16 +2080,10 @@
|
||||
"resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"hooker": {
|
||||
"version": "0.2.3",
|
||||
"from": "hooker@>=0.2.3 <0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"hosted-git-info": {
|
||||
"version": "2.3.1",
|
||||
"version": "2.4.2",
|
||||
"from": "hosted-git-info@>=2.1.4 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.3.1.tgz",
|
||||
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.4.2.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"htmlhint": {
|
||||
@ -1960,18 +2092,6 @@
|
||||
"resolved": "https://registry.npmjs.org/htmlhint/-/htmlhint-0.9.13.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"async": {
|
||||
"version": "1.4.2",
|
||||
"from": "async@1.4.2",
|
||||
"resolved": "https://registry.npmjs.org/async/-/async-1.4.2.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"colors": {
|
||||
"version": "1.0.3",
|
||||
"from": "colors@1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"commander": {
|
||||
"version": "2.6.0",
|
||||
"from": "commander@2.6.0",
|
||||
@ -2021,52 +2141,27 @@
|
||||
"from": "readable-stream@>=1.1.0 <1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"string_decoder": {
|
||||
"version": "0.10.31",
|
||||
"from": "string_decoder@>=0.10.0 <0.11.0",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"http-errors": {
|
||||
"version": "1.5.1",
|
||||
"from": "http-errors@>=1.5.0 <1.6.0",
|
||||
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.5.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"http-signature": {
|
||||
"version": "1.1.1",
|
||||
"from": "http-signature@>=1.1.0 <1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"http2": {
|
||||
"version": "3.3.6",
|
||||
"from": "http2@>=3.3.4 <4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/http2/-/http2-3.3.6.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"https-proxy-agent": {
|
||||
"version": "1.0.0",
|
||||
"from": "https-proxy-agent@>=1.0.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"iconv-lite": {
|
||||
"version": "0.4.15",
|
||||
"from": "iconv-lite@>=0.4.13 <0.5.0",
|
||||
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"ignore": {
|
||||
"version": "3.2.6",
|
||||
"version": "3.2.7",
|
||||
"from": "ignore@>=3.2.0 <4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ignore/-/ignore-3.2.6.tgz",
|
||||
"resolved": "https://registry.npmjs.org/ignore/-/ignore-3.2.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"iltorb": {
|
||||
"version": "1.0.13",
|
||||
"from": "iltorb@>=1.0.13 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/iltorb/-/iltorb-1.0.13.tgz",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"imurmurhash": {
|
||||
"version": "0.1.4",
|
||||
"from": "imurmurhash@>=0.1.4 <0.2.0",
|
||||
@ -2093,7 +2188,7 @@
|
||||
},
|
||||
"inherits": {
|
||||
"version": "2.0.3",
|
||||
"from": "inherits@>=2.0.3 <3.0.0",
|
||||
"from": "inherits@>=2.0.1 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
|
||||
"dev": true
|
||||
},
|
||||
@ -2110,9 +2205,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"interpret": {
|
||||
"version": "1.0.1",
|
||||
"version": "1.0.2",
|
||||
"from": "interpret@>=1.0.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.1.tgz",
|
||||
"resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.2.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"invariant": {
|
||||
@ -2157,6 +2252,18 @@
|
||||
"resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"is-callable": {
|
||||
"version": "1.1.3",
|
||||
"from": "is-callable@>=1.1.3 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"is-date-object": {
|
||||
"version": "1.0.1",
|
||||
"from": "is-date-object@>=1.0.1 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"is-dotfile": {
|
||||
"version": "1.0.2",
|
||||
"from": "is-dotfile@>=1.0.0 <2.0.0",
|
||||
@ -2247,6 +2354,12 @@
|
||||
"resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"is-regex": {
|
||||
"version": "1.0.4",
|
||||
"from": "is-regex@>=1.0.3 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"is-relative": {
|
||||
"version": "0.2.1",
|
||||
"from": "is-relative@>=0.2.1 <0.3.0",
|
||||
@ -2265,10 +2378,10 @@
|
||||
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"is-travis": {
|
||||
"version": "1.0.0",
|
||||
"from": "is-travis@>=1.0.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-travis/-/is-travis-1.0.0.tgz",
|
||||
"is-symbol": {
|
||||
"version": "1.0.1",
|
||||
"from": "is-symbol@>=1.0.1 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"is-typedarray": {
|
||||
@ -2297,14 +2410,14 @@
|
||||
},
|
||||
"isarray": {
|
||||
"version": "1.0.0",
|
||||
"from": "isarray@>=1.0.0 <1.1.0",
|
||||
"from": "isarray@1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"isexe": {
|
||||
"version": "1.1.2",
|
||||
"from": "isexe@>=1.1.1 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/isexe/-/isexe-1.1.2.tgz",
|
||||
"version": "2.0.0",
|
||||
"from": "isexe@>=2.0.0 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"isobject": {
|
||||
@ -2333,9 +2446,9 @@
|
||||
"optional": true
|
||||
},
|
||||
"jquery": {
|
||||
"version": "3.2.0",
|
||||
"version": "3.2.1",
|
||||
"from": "jquery@>=1.9.1",
|
||||
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.2.0.tgz"
|
||||
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.2.1.tgz"
|
||||
},
|
||||
"js-base64": {
|
||||
"version": "2.1.9",
|
||||
@ -2343,6 +2456,12 @@
|
||||
"resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"js-reporters": {
|
||||
"version": "1.2.0",
|
||||
"from": "js-reporters@1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/js-reporters/-/js-reporters-1.2.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"js-tokens": {
|
||||
"version": "3.0.1",
|
||||
"from": "js-tokens@>=3.0.0 <4.0.0",
|
||||
@ -2350,9 +2469,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"js-yaml": {
|
||||
"version": "3.8.2",
|
||||
"version": "3.8.3",
|
||||
"from": "js-yaml@>=3.5.1 <4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.8.2.tgz",
|
||||
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.8.3.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"jsbn": {
|
||||
@ -2363,9 +2482,9 @@
|
||||
"optional": true
|
||||
},
|
||||
"jsesc": {
|
||||
"version": "0.5.0",
|
||||
"from": "jsesc@>=0.5.0 <0.6.0",
|
||||
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
|
||||
"version": "1.3.0",
|
||||
"from": "jsesc@>=1.3.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"jshint": {
|
||||
@ -2486,12 +2605,6 @@
|
||||
"resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"lazystream": {
|
||||
"version": "1.0.0",
|
||||
"from": "lazystream@>=1.0.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"lcid": {
|
||||
"version": "1.0.0",
|
||||
"from": "lcid@>=1.0.0 <2.0.0",
|
||||
@ -2508,26 +2621,6 @@
|
||||
"version": "2.3.0",
|
||||
"from": "liftoff@>=2.3.0 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.3.0.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"findup-sync": {
|
||||
"version": "0.4.3",
|
||||
"from": "findup-sync@>=0.4.2 <0.5.0",
|
||||
"resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.4.3.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"livereload-js": {
|
||||
"version": "2.2.2",
|
||||
"from": "livereload-js@>=2.2.0 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.2.2.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"load-grunt-tasks": {
|
||||
"version": "3.5.2",
|
||||
"from": "load-grunt-tasks@>=3.5.2 <4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/load-grunt-tasks/-/load-grunt-tasks-3.5.2.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"load-json-file": {
|
||||
@ -2604,12 +2697,6 @@
|
||||
"resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"lodash.pickby": {
|
||||
"version": "4.6.0",
|
||||
"from": "lodash.pickby@>=4.6.0 <5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash.pickby/-/lodash.pickby-4.6.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"log-symbols": {
|
||||
"version": "1.0.2",
|
||||
"from": "log-symbols@>=1.0.2 <2.0.0",
|
||||
@ -2652,15 +2739,21 @@
|
||||
"resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"media-typer": {
|
||||
"version": "0.3.0",
|
||||
"from": "media-typer@0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
|
||||
"map-stream": {
|
||||
"version": "0.1.0",
|
||||
"from": "map-stream@>=0.1.0 <0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"matcher-collection": {
|
||||
"version": "1.0.4",
|
||||
"from": "matcher-collection@>=1.0.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/matcher-collection/-/matcher-collection-1.0.4.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"meow": {
|
||||
"version": "3.7.0",
|
||||
"from": "meow@>=3.3.0 <4.0.0",
|
||||
"from": "meow@>=3.7.0 <4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
@ -2674,26 +2767,20 @@
|
||||
},
|
||||
"micromatch": {
|
||||
"version": "2.3.11",
|
||||
"from": "micromatch@>=2.3.7 <3.0.0",
|
||||
"from": "micromatch@>=2.1.5 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"mime": {
|
||||
"version": "1.3.4",
|
||||
"from": "mime@1.3.4",
|
||||
"resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"mime-db": {
|
||||
"version": "1.26.0",
|
||||
"from": "mime-db@>=1.26.0 <1.27.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.26.0.tgz",
|
||||
"version": "1.27.0",
|
||||
"from": "mime-db@>=1.27.0 <1.28.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"mime-types": {
|
||||
"version": "2.1.14",
|
||||
"from": "mime-types@>=2.1.11 <2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz",
|
||||
"version": "2.1.15",
|
||||
"from": "mime-types@>=2.1.7 <2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"mimic-fn": {
|
||||
@ -2716,36 +2803,16 @@
|
||||
},
|
||||
"mkdirp": {
|
||||
"version": "0.5.1",
|
||||
"from": "mkdirp@>=0.5.0 <0.6.0",
|
||||
"from": "mkdirp@>=0.5.1 <0.6.0",
|
||||
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"morgan": {
|
||||
"version": "1.8.1",
|
||||
"from": "morgan@>=1.6.1 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/morgan/-/morgan-1.8.1.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "2.6.1",
|
||||
"from": "debug@2.6.1",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.1.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"ms": {
|
||||
"version": "0.7.2",
|
||||
"from": "ms@0.7.2",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"multimatch": {
|
||||
"version": "2.1.0",
|
||||
"from": "multimatch@>=2.0.0 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"mute-stream": {
|
||||
"version": "0.0.5",
|
||||
"from": "mute-stream@0.0.5",
|
||||
@ -2754,14 +2821,14 @@
|
||||
},
|
||||
"mz": {
|
||||
"version": "2.6.0",
|
||||
"from": "mz@>=2.3.1 <3.0.0",
|
||||
"from": "mz@>=2.6.0 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/mz/-/mz-2.6.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"nan": {
|
||||
"version": "2.5.1",
|
||||
"from": "nan@>=2.4.0 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/nan/-/nan-2.5.1.tgz",
|
||||
"version": "2.6.2",
|
||||
"from": "nan@>=2.3.2 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"natural-compare": {
|
||||
@ -2770,12 +2837,6 @@
|
||||
"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"negotiator": {
|
||||
"version": "0.6.1",
|
||||
"from": "negotiator@0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"node-gyp": {
|
||||
"version": "3.6.0",
|
||||
"from": "node-gyp@>=3.3.1 <4.0.0",
|
||||
@ -2783,27 +2844,27 @@
|
||||
"dev": true
|
||||
},
|
||||
"node-sass": {
|
||||
"version": "4.5.0",
|
||||
"from": "node-sass@>=4.5.0 <5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.5.0.tgz",
|
||||
"version": "4.5.2",
|
||||
"from": "node-sass@>=4.5.2 <5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.5.2.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"nopt": {
|
||||
"version": "3.0.6",
|
||||
"from": "nopt@>=3.0.6 <3.1.0",
|
||||
"from": "nopt@>=2.0.0 <3.0.0||>=3.0.0 <4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"normalize-package-data": {
|
||||
"version": "2.3.6",
|
||||
"from": "normalize-package-data@>=2.3.4 <3.0.0",
|
||||
"from": "normalize-package-data@>=2.3.2 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.6.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"normalize-path": {
|
||||
"version": "2.0.1",
|
||||
"from": "normalize-path@>=2.0.0 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.0.1.tgz",
|
||||
"version": "2.1.1",
|
||||
"from": "normalize-path@>=2.0.1 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"normalize-range": {
|
||||
@ -2812,6 +2873,44 @@
|
||||
"resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"npm-run-all": {
|
||||
"version": "4.0.2",
|
||||
"from": "npm-run-all@>=4.0.2 <5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.0.2.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"cross-spawn": {
|
||||
"version": "5.1.0",
|
||||
"from": "cross-spawn@>=5.0.1 <6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"load-json-file": {
|
||||
"version": "2.0.0",
|
||||
"from": "load-json-file@>=2.0.0 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"lru-cache": {
|
||||
"version": "4.0.2",
|
||||
"from": "lru-cache@>=4.0.1 <5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.2.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"path-type": {
|
||||
"version": "2.0.0",
|
||||
"from": "path-type@>=2.0.0 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"read-pkg": {
|
||||
"version": "2.0.0",
|
||||
"from": "read-pkg@>=2.0.0 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"npmlog": {
|
||||
"version": "4.0.2",
|
||||
"from": "npmlog@>=4.0.0 <5.0.0",
|
||||
@ -2838,28 +2937,22 @@
|
||||
},
|
||||
"object-assign": {
|
||||
"version": "4.1.1",
|
||||
"from": "object-assign@>=4.0.1 <5.0.0",
|
||||
"from": "object-assign@>=4.1.0 <5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"object-keys": {
|
||||
"version": "1.0.11",
|
||||
"from": "object-keys@>=1.0.8 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"object.omit": {
|
||||
"version": "2.0.1",
|
||||
"from": "object.omit@>=2.0.0 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"on-finished": {
|
||||
"version": "2.3.0",
|
||||
"from": "on-finished@>=2.3.0 <2.4.0",
|
||||
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"on-headers": {
|
||||
"version": "1.0.1",
|
||||
"from": "on-headers@>=1.0.1 <1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"once": {
|
||||
"version": "1.4.0",
|
||||
"from": "once@>=1.3.0 <2.0.0",
|
||||
@ -2872,12 +2965,6 @@
|
||||
"resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"opn": {
|
||||
"version": "4.0.2",
|
||||
"from": "opn@>=4.0.0 <5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/opn/-/opn-4.0.2.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"optionator": {
|
||||
"version": "0.8.2",
|
||||
"from": "optionator@>=0.8.2 <0.9.0",
|
||||
@ -2885,9 +2972,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"ora": {
|
||||
"version": "1.1.0",
|
||||
"version": "1.2.0",
|
||||
"from": "ora@>=1.1.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ora/-/ora-1.1.0.tgz",
|
||||
"resolved": "https://registry.npmjs.org/ora/-/ora-1.2.0.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"cli-cursor": {
|
||||
@ -2897,9 +2984,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"onetime": {
|
||||
"version": "2.0.0",
|
||||
"version": "2.0.1",
|
||||
"from": "onetime@>=2.0.0 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.0.tgz",
|
||||
"resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"restore-cursor": {
|
||||
@ -2934,10 +3021,10 @@
|
||||
"resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"package": {
|
||||
"version": "1.0.1",
|
||||
"from": "package@>=1.0.0 <1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/package/-/package-1.0.1.tgz",
|
||||
"output-file-sync": {
|
||||
"version": "1.1.2",
|
||||
"from": "output-file-sync@>=1.1.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"parse-filepath": {
|
||||
@ -2948,7 +3035,7 @@
|
||||
},
|
||||
"parse-glob": {
|
||||
"version": "3.0.4",
|
||||
"from": "parse-glob@3.0.4",
|
||||
"from": "parse-glob@>=3.0.4 <4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
|
||||
"dev": true
|
||||
},
|
||||
@ -2958,12 +3045,6 @@
|
||||
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"parse-ms": {
|
||||
"version": "1.0.1",
|
||||
"from": "parse-ms@>=1.0.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-1.0.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"parse-passwd": {
|
||||
"version": "1.0.0",
|
||||
"from": "parse-passwd@>=1.0.0 <2.0.0",
|
||||
@ -2976,12 +3057,6 @@
|
||||
"resolved": "https://registry.npmjs.org/parserlib/-/parserlib-0.2.5.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"parseurl": {
|
||||
"version": "1.3.1",
|
||||
"from": "parseurl@>=1.3.1 <1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"path-exists": {
|
||||
"version": "2.1.0",
|
||||
"from": "path-exists@>=2.0.0 <3.0.0",
|
||||
@ -3024,17 +3099,61 @@
|
||||
"resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"pause-stream": {
|
||||
"version": "0.0.11",
|
||||
"from": "pause-stream@0.0.11",
|
||||
"resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"pend": {
|
||||
"version": "1.2.0",
|
||||
"from": "pend@>=1.2.0 <1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"performance-now": {
|
||||
"version": "0.2.0",
|
||||
"from": "performance-now@>=0.2.0 <0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"phantomjs-prebuilt": {
|
||||
"version": "2.1.14",
|
||||
"from": "phantomjs-prebuilt@>=2.1.3 <3.0.0",
|
||||
"from": "phantomjs-prebuilt@>=2.1.14 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.14.tgz",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"caseless": {
|
||||
"version": "0.11.0",
|
||||
"from": "caseless@>=0.11.0 <0.12.0",
|
||||
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"har-validator": {
|
||||
"version": "2.0.6",
|
||||
"from": "har-validator@>=2.0.6 <2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"qs": {
|
||||
"version": "6.3.2",
|
||||
"from": "qs@>=6.3.0 <6.4.0",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"request": {
|
||||
"version": "2.79.0",
|
||||
"from": "request@>=2.79.0 <2.80.0",
|
||||
"resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"tunnel-agent": {
|
||||
"version": "0.4.3",
|
||||
"from": "tunnel-agent@>=0.4.1 <0.5.0",
|
||||
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"pify": {
|
||||
"version": "2.3.0",
|
||||
@ -3054,48 +3173,24 @@
|
||||
"resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"pkg-up": {
|
||||
"version": "1.0.0",
|
||||
"from": "pkg-up@>=1.0.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-1.0.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"plur": {
|
||||
"version": "1.0.0",
|
||||
"from": "plur@>=1.0.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/plur/-/plur-1.0.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"pluralize": {
|
||||
"version": "1.2.1",
|
||||
"from": "pluralize@>=1.2.1 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"portscanner": {
|
||||
"version": "1.2.0",
|
||||
"from": "portscanner@>=1.0.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/portscanner/-/portscanner-1.2.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"postcss": {
|
||||
"version": "5.2.16",
|
||||
"version": "5.2.17",
|
||||
"from": "postcss@>=5.2.16 <6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.16.tgz",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"postcss-cli": {
|
||||
"version": "3.0.0",
|
||||
"from": "postcss-cli@>=3.0.0 <4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-3.0.0.tgz",
|
||||
"version": "3.1.1",
|
||||
"from": "postcss-cli@>=3.1.1 <4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-3.1.1.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"camelcase": {
|
||||
"version": "3.0.0",
|
||||
"from": "camelcase@>=3.0.0 <4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"get-stdin": {
|
||||
"version": "5.0.1",
|
||||
"from": "get-stdin@>=5.0.1 <6.0.0",
|
||||
@ -3109,9 +3204,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"yargs": {
|
||||
"version": "7.0.2",
|
||||
"version": "7.1.0",
|
||||
"from": "yargs@>=7.0.2 <8.0.0",
|
||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-7.0.2.tgz",
|
||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"yargs-parser": {
|
||||
@ -3123,9 +3218,9 @@
|
||||
}
|
||||
},
|
||||
"postcss-flexbugs-fixes": {
|
||||
"version": "2.1.0",
|
||||
"from": "postcss-flexbugs-fixes@>=2.1.0 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-2.1.0.tgz",
|
||||
"version": "2.1.1",
|
||||
"from": "postcss-flexbugs-fixes@>=2.1.1 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-2.1.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"postcss-load-config": {
|
||||
@ -3170,18 +3265,6 @@
|
||||
"resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"pretty-bytes": {
|
||||
"version": "3.0.1",
|
||||
"from": "pretty-bytes@>=3.0.1 <4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-3.0.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"pretty-ms": {
|
||||
"version": "2.1.0",
|
||||
"from": "pretty-ms@>=2.1.0 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-2.1.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"private": {
|
||||
"version": "0.1.7",
|
||||
"from": "private@>=0.1.6 <0.2.0",
|
||||
@ -3206,6 +3289,12 @@
|
||||
"resolved": "https://registry.npmjs.org/promise/-/promise-7.1.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"ps-tree": {
|
||||
"version": "1.1.0",
|
||||
"from": "ps-tree@>=1.0.1 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.1.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"pseudomap": {
|
||||
"version": "1.0.2",
|
||||
"from": "pseudomap@>=1.0.1 <2.0.0",
|
||||
@ -3218,16 +3307,28 @@
|
||||
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"q": {
|
||||
"version": "1.4.1",
|
||||
"from": "q@>=1.4.1 <1.5.0",
|
||||
"resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz",
|
||||
"qs": {
|
||||
"version": "6.4.0",
|
||||
"from": "qs@>=6.4.0 <6.5.0",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"qs": {
|
||||
"version": "6.3.2",
|
||||
"from": "qs@>=6.3.0 <6.4.0",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz",
|
||||
"qunit-phantomjs-runner": {
|
||||
"version": "2.3.0",
|
||||
"from": "qunit-phantomjs-runner@>=2.3.0 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/qunit-phantomjs-runner/-/qunit-phantomjs-runner-2.3.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"qunit-reporter-junit": {
|
||||
"version": "1.1.1",
|
||||
"from": "qunit-reporter-junit@>=1.0.2 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/qunit-reporter-junit/-/qunit-reporter-junit-1.1.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"qunitjs": {
|
||||
"version": "2.3.1",
|
||||
"from": "qunitjs@>=2.3.1 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/qunitjs/-/qunitjs-2.3.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"randomatic": {
|
||||
@ -3236,32 +3337,12 @@
|
||||
"resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.6.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"range-parser": {
|
||||
"version": "1.2.0",
|
||||
"from": "range-parser@>=1.2.0 <1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
|
||||
"read-cache": {
|
||||
"version": "1.0.0",
|
||||
"from": "read-cache@>=1.0.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"raw-body": {
|
||||
"version": "2.1.7",
|
||||
"from": "raw-body@>=2.1.5 <2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.7.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"bytes": {
|
||||
"version": "2.4.0",
|
||||
"from": "bytes@2.4.0",
|
||||
"resolved": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"iconv-lite": {
|
||||
"version": "0.4.13",
|
||||
"from": "iconv-lite@0.4.13",
|
||||
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"read-pkg": {
|
||||
"version": "1.1.0",
|
||||
"from": "read-pkg@>=1.0.0 <2.0.0",
|
||||
@ -3275,9 +3356,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"readable-stream": {
|
||||
"version": "2.2.6",
|
||||
"from": "readable-stream@>=2.2.2 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.6.tgz",
|
||||
"version": "2.2.9",
|
||||
"from": "readable-stream@>=2.0.2 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"readdirp": {
|
||||
@ -3306,10 +3387,16 @@
|
||||
},
|
||||
"regenerate": {
|
||||
"version": "1.3.2",
|
||||
"from": "regenerate@>=1.2.1 <2.0.0",
|
||||
"from": "regenerate@>=1.3.2 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"regenerate-unicode-properties": {
|
||||
"version": "5.0.3",
|
||||
"from": "regenerate-unicode-properties@>=5.0.3 <6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-5.0.3.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"regenerator-runtime": {
|
||||
"version": "0.10.3",
|
||||
"from": "regenerator-runtime@>=0.10.0 <0.11.0",
|
||||
@ -3317,9 +3404,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"regenerator-transform": {
|
||||
"version": "0.9.8",
|
||||
"from": "regenerator-transform@0.9.8",
|
||||
"resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.9.8.tgz",
|
||||
"version": "0.9.11",
|
||||
"from": "regenerator-transform@0.9.11",
|
||||
"resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.9.11.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"regex-cache": {
|
||||
@ -3329,21 +3416,35 @@
|
||||
"dev": true
|
||||
},
|
||||
"regexpu-core": {
|
||||
"version": "2.0.0",
|
||||
"from": "regexpu-core@>=2.0.0 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz",
|
||||
"version": "4.0.7",
|
||||
"from": "regexpu-core@>=4.0.2 <5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.0.7.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"regjsgen": {
|
||||
"version": "0.2.0",
|
||||
"from": "regjsgen@>=0.2.0 <0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
|
||||
"version": "0.3.0",
|
||||
"from": "regjsgen@>=0.3.0 <0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.3.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"regjsparser": {
|
||||
"version": "0.1.5",
|
||||
"from": "regjsparser@>=0.1.4 <0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz",
|
||||
"version": "0.2.1",
|
||||
"from": "regjsparser@>=0.2.1 <0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.2.1.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"jsesc": {
|
||||
"version": "0.5.0",
|
||||
"from": "jsesc@>=0.5.0 <0.6.0",
|
||||
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"remove-trailing-separator": {
|
||||
"version": "1.0.1",
|
||||
"from": "remove-trailing-separator@>=1.0.1 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"repeat-element": {
|
||||
@ -3365,9 +3466,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"request": {
|
||||
"version": "2.79.0",
|
||||
"from": "request@>=2.79.0 <2.80.0",
|
||||
"resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz",
|
||||
"version": "2.81.0",
|
||||
"from": "request@>=2.79.0 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"request-progress": {
|
||||
@ -3376,12 +3477,6 @@
|
||||
"resolved": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"requestretry": {
|
||||
"version": "1.9.1",
|
||||
"from": "requestretry@>=1.9.0 <1.10.0",
|
||||
"resolved": "https://registry.npmjs.org/requestretry/-/requestretry-1.9.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"require-directory": {
|
||||
"version": "2.1.1",
|
||||
"from": "require-directory@>=2.1.1 <3.0.0",
|
||||
@ -3424,20 +3519,6 @@
|
||||
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"resolve-pkg": {
|
||||
"version": "0.1.0",
|
||||
"from": "resolve-pkg@>=0.1.0 <0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/resolve-pkg/-/resolve-pkg-0.1.0.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"resolve-from": {
|
||||
"version": "2.0.0",
|
||||
"from": "resolve-from@>=2.0.0 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"restore-cursor": {
|
||||
"version": "1.0.1",
|
||||
"from": "restore-cursor@>=1.0.1 <2.0.0",
|
||||
@ -3468,18 +3549,18 @@
|
||||
"resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"safe-buffer": {
|
||||
"version": "5.0.1",
|
||||
"from": "safe-buffer@>=5.0.1 <6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"sass-graph": {
|
||||
"version": "2.1.2",
|
||||
"from": "sass-graph@>=2.1.1 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.1.2.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"camelcase": {
|
||||
"version": "3.0.0",
|
||||
"from": "camelcase@>=3.0.0 <4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"yargs": {
|
||||
"version": "4.8.1",
|
||||
"from": "yargs@>=4.7.1 <5.0.0",
|
||||
@ -3494,76 +3575,12 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"sauce-tunnel": {
|
||||
"version": "2.5.0",
|
||||
"from": "sauce-tunnel@>=2.5.0 <2.6.0",
|
||||
"resolved": "https://registry.npmjs.org/sauce-tunnel/-/sauce-tunnel-2.5.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"saucelabs": {
|
||||
"version": "1.2.0",
|
||||
"from": "saucelabs@>=1.2.0 <1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.2.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"semver": {
|
||||
"version": "5.3.0",
|
||||
"from": "semver@>=2.0.0 <3.0.0||>=3.0.0 <4.0.0||>=4.0.0 <5.0.0||>=5.0.0 <6.0.0",
|
||||
"from": "semver@>=5.3.0 <6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"send": {
|
||||
"version": "0.15.1",
|
||||
"from": "send@0.15.1",
|
||||
"resolved": "https://registry.npmjs.org/send/-/send-0.15.1.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "2.6.1",
|
||||
"from": "debug@2.6.1",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"http-errors": {
|
||||
"version": "1.6.1",
|
||||
"from": "http-errors@>=1.6.1 <1.7.0",
|
||||
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"setprototypeof": {
|
||||
"version": "1.0.3",
|
||||
"from": "setprototypeof@1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"serve-index": {
|
||||
"version": "1.8.0",
|
||||
"from": "serve-index@>=1.7.1 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.8.0.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "2.2.0",
|
||||
"from": "debug@>=2.2.0 <2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"ms": {
|
||||
"version": "0.7.1",
|
||||
"from": "ms@0.7.1",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"serve-static": {
|
||||
"version": "1.12.1",
|
||||
"from": "serve-static@>=1.10.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.12.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"set-blocking": {
|
||||
"version": "2.0.0",
|
||||
"from": "set-blocking@>=2.0.0 <3.0.0",
|
||||
@ -3576,10 +3593,22 @@
|
||||
"resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"setprototypeof": {
|
||||
"version": "1.0.2",
|
||||
"from": "setprototypeof@1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.2.tgz",
|
||||
"shebang-command": {
|
||||
"version": "1.2.0",
|
||||
"from": "shebang-command@>=1.2.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"shebang-regex": {
|
||||
"version": "1.0.0",
|
||||
"from": "shebang-regex@>=1.0.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"shell-quote": {
|
||||
"version": "1.6.1",
|
||||
"from": "shell-quote@>=1.6.1 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"shelljs": {
|
||||
@ -3663,9 +3692,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"split": {
|
||||
"version": "1.0.0",
|
||||
"from": "split@>=1.0.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/split/-/split-1.0.0.tgz",
|
||||
"version": "0.3.3",
|
||||
"from": "split@>=0.3.0 <0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"sprintf-js": {
|
||||
@ -3675,9 +3704,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"sshpk": {
|
||||
"version": "1.11.0",
|
||||
"version": "1.13.0",
|
||||
"from": "sshpk@>=1.7.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.11.0.tgz",
|
||||
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.0.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"assert-plus": {
|
||||
@ -3688,28 +3717,22 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"statuses": {
|
||||
"version": "1.3.1",
|
||||
"from": "statuses@>=1.3.1 <1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"stdout-stream": {
|
||||
"version": "1.4.0",
|
||||
"from": "stdout-stream@>=1.4.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"stream-buffers": {
|
||||
"version": "2.2.0",
|
||||
"from": "stream-buffers@>=2.1.0 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz",
|
||||
"stream-combiner": {
|
||||
"version": "0.0.4",
|
||||
"from": "stream-combiner@>=0.0.4 <0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"string_decoder": {
|
||||
"version": "0.10.31",
|
||||
"from": "string_decoder@>=0.10.0 <0.11.0",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
|
||||
"version": "1.0.0",
|
||||
"from": "string_decoder@>=1.0.0 <1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"string-width": {
|
||||
@ -3718,6 +3741,12 @@
|
||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"string.prototype.padend": {
|
||||
"version": "3.0.0",
|
||||
"from": "string.prototype.padend@>=3.0.0 <4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"stringstream": {
|
||||
"version": "0.0.5",
|
||||
"from": "stringstream@>=0.0.4 <0.1.0",
|
||||
@ -3780,18 +3809,6 @@
|
||||
"resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"tar-stream": {
|
||||
"version": "1.5.2",
|
||||
"from": "tar-stream@>=1.5.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.2.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"temporary": {
|
||||
"version": "0.0.8",
|
||||
"from": "temporary@>=0.0.8 <0.0.9",
|
||||
"resolved": "https://registry.npmjs.org/temporary/-/temporary-0.0.8.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"tether": {
|
||||
"version": "1.4.0",
|
||||
"from": "tether@>=1.4.0 <2.0.0",
|
||||
@ -3827,44 +3844,6 @@
|
||||
"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"time-grunt": {
|
||||
"version": "1.4.0",
|
||||
"from": "time-grunt@>=1.4.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/time-grunt/-/time-grunt-1.4.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"time-zone": {
|
||||
"version": "0.1.0",
|
||||
"from": "time-zone@>=0.1.0 <0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/time-zone/-/time-zone-0.1.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"tiny-lr": {
|
||||
"version": "0.2.1",
|
||||
"from": "tiny-lr@>=0.2.1 <0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-0.2.1.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "2.2.0",
|
||||
"from": "debug@>=2.2.0 <2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"ms": {
|
||||
"version": "0.7.1",
|
||||
"from": "ms@0.7.1",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"qs": {
|
||||
"version": "5.1.0",
|
||||
"from": "qs@>=5.1.0 <5.2.0",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"to-fast-properties": {
|
||||
"version": "1.0.2",
|
||||
"from": "to-fast-properties@>=1.0.1 <2.0.0",
|
||||
@ -3896,9 +3875,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"tunnel-agent": {
|
||||
"version": "0.4.3",
|
||||
"from": "tunnel-agent@>=0.4.1 <0.5.0",
|
||||
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz",
|
||||
"version": "0.6.0",
|
||||
"from": "tunnel-agent@>=0.6.0 <0.7.0",
|
||||
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"tweetnacl": {
|
||||
@ -3914,12 +3893,6 @@
|
||||
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"type-is": {
|
||||
"version": "1.6.14",
|
||||
"from": "type-is@>=1.6.10 <1.7.0",
|
||||
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.14.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"typedarray": {
|
||||
"version": "0.0.6",
|
||||
"from": "typedarray@>=0.0.6 <0.0.7",
|
||||
@ -3927,9 +3900,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"uglify-js": {
|
||||
"version": "2.8.14",
|
||||
"from": "uglify-js@>=2.8.14 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.14.tgz",
|
||||
"version": "2.8.22",
|
||||
"from": "uglify-js@>=2.8.22 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.22.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"camelcase": {
|
||||
@ -3968,7 +3941,8 @@
|
||||
"version": "1.0.2",
|
||||
"from": "uglify-to-browserify@>=1.0.0 <1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"unc-path-regex": {
|
||||
"version": "0.1.2",
|
||||
@ -3976,22 +3950,40 @@
|
||||
"resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"underscore.string": {
|
||||
"version": "3.2.3",
|
||||
"from": "underscore.string@>=3.2.3 <3.3.0",
|
||||
"resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.2.3.tgz",
|
||||
"unicode-canonical-property-names": {
|
||||
"version": "1.0.3",
|
||||
"from": "unicode-canonical-property-names@>=1.0.3 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/unicode-canonical-property-names/-/unicode-canonical-property-names-1.0.3.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"unpipe": {
|
||||
"version": "1.0.0",
|
||||
"from": "unpipe@>=1.0.0 <1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
|
||||
"unicode-match-property": {
|
||||
"version": "0.1.3",
|
||||
"from": "unicode-match-property@>=0.1.3 <0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/unicode-match-property/-/unicode-match-property-0.1.3.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"unicode-match-property-value": {
|
||||
"version": "1.0.2",
|
||||
"from": "unicode-match-property-value@>=1.0.2 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/unicode-match-property-value/-/unicode-match-property-value-1.0.2.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"unicode-property-aliases": {
|
||||
"version": "1.1.1",
|
||||
"from": "unicode-property-aliases@>=1.1.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/unicode-property-aliases/-/unicode-property-aliases-1.1.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"unicode-property-value-aliases": {
|
||||
"version": "1.2.2",
|
||||
"from": "unicode-property-value-aliases@>=1.2.1 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/unicode-property-value-aliases/-/unicode-property-value-aliases-1.2.2.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"user-home": {
|
||||
"version": "2.0.0",
|
||||
"from": "user-home@>=2.0.0 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz",
|
||||
"version": "1.1.1",
|
||||
"from": "user-home@>=1.1.1 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"util-deprecate": {
|
||||
@ -4000,18 +3992,18 @@
|
||||
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"utils-merge": {
|
||||
"version": "1.0.0",
|
||||
"from": "utils-merge@1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"uuid": {
|
||||
"version": "3.0.1",
|
||||
"from": "uuid@>=3.0.0 <4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"v8flags": {
|
||||
"version": "2.0.12",
|
||||
"from": "v8flags@>=2.0.10 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.0.12.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"validate-npm-package-license": {
|
||||
"version": "3.0.1",
|
||||
"from": "validate-npm-package-license@>=3.0.1 <4.0.0",
|
||||
@ -4024,34 +4016,16 @@
|
||||
"resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"walkdir": {
|
||||
"version": "0.0.11",
|
||||
"from": "walkdir@>=0.0.11 <0.0.12",
|
||||
"resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.0.11.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"websocket-driver": {
|
||||
"version": "0.6.5",
|
||||
"from": "websocket-driver@>=0.5.1",
|
||||
"resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"websocket-extensions": {
|
||||
"version": "0.1.1",
|
||||
"from": "websocket-extensions@>=0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"when": {
|
||||
"version": "3.7.8",
|
||||
"from": "when@>=3.7.5 <3.8.0",
|
||||
"resolved": "https://registry.npmjs.org/when/-/when-3.7.8.tgz",
|
||||
"walk-sync": {
|
||||
"version": "0.3.1",
|
||||
"from": "walk-sync@0.3.1",
|
||||
"resolved": "https://registry.npmjs.org/walk-sync/-/walk-sync-0.3.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"which": {
|
||||
"version": "1.2.12",
|
||||
"from": "which@>=1.2.1 <1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/which/-/which-1.2.12.tgz",
|
||||
"version": "1.2.14",
|
||||
"from": "which@>=1.2.12 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"which-module": {
|
||||
@ -4124,41 +4098,19 @@
|
||||
"version": "6.6.0",
|
||||
"from": "yargs@>=6.6.0 <7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"camelcase": {
|
||||
"version": "3.0.0",
|
||||
"from": "camelcase@>=3.0.0 <4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
"dev": true
|
||||
},
|
||||
"yargs-parser": {
|
||||
"version": "4.2.1",
|
||||
"from": "yargs-parser@>=4.2.0 <5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"camelcase": {
|
||||
"version": "3.0.0",
|
||||
"from": "camelcase@>=3.0.0 <4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
"dev": true
|
||||
},
|
||||
"yauzl": {
|
||||
"version": "2.4.1",
|
||||
"from": "yauzl@2.4.1",
|
||||
"resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz",
|
||||
"dev": true
|
||||
},
|
||||
"zip-stream": {
|
||||
"version": "1.1.1",
|
||||
"from": "zip-stream@>=1.1.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-1.1.1.tgz",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
}
|
@ -48,10 +48,10 @@
|
||||
# Win Opera 15+ not currently supported by Sauce Labs
|
||||
|
||||
{
|
||||
browserName: "Safari",
|
||||
browserName: "iphone",
|
||||
deviceName: "iPhone Simulator",
|
||||
platformVersion: "9.3",
|
||||
platformName: "iOS"
|
||||
platformName: "OS X 10.11",
|
||||
version: "9.3"
|
||||
},
|
||||
|
||||
# iOS Chrome not currently supported by Sauce Labs
|
41
build/stamp.js
Normal file
41
build/stamp.js
Normal file
@ -0,0 +1,41 @@
|
||||
const fs = require('fs')
|
||||
|
||||
fs.readFile('package.json', (err, data) => {
|
||||
if (err) {
|
||||
throw err
|
||||
}
|
||||
|
||||
const pkg = JSON.parse(data)
|
||||
const year = new Date().getFullYear()
|
||||
|
||||
const stampTop =
|
||||
`/*!
|
||||
* Bootstrap v${pkg.version} (${pkg.homepage})
|
||||
* Copyright 2011-${year} ${pkg.author}
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
if (typeof jQuery === 'undefined') {
|
||||
throw new Error('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')
|
||||
}
|
||||
|
||||
(function ($) {
|
||||
var version = $.fn.jquery.split(' ')[0].split('.')
|
||||
if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] >= 4)) {
|
||||
throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')
|
||||
}
|
||||
})(jQuery);
|
||||
|
||||
(function () {
|
||||
`
|
||||
const stampEnd = `
|
||||
})()`
|
||||
|
||||
process.stdout.write(stampTop)
|
||||
|
||||
process.stdin.on('end', () => {
|
||||
process.stdout.write(stampEnd)
|
||||
})
|
||||
|
||||
process.stdin.pipe(process.stdout)
|
||||
})
|
13
build/upload-preview.sh
Executable file
13
build/upload-preview.sh
Executable file
@ -0,0 +1,13 @@
|
||||
#!/bin/bash
|
||||
# Upload built docs to preview.twbsapps.com
|
||||
|
||||
# Add build metadata to version
|
||||
sed -i "/^current_version:/ s/\$/+pr.${TRAVIS_COMMIT}/" _config.yml
|
||||
bundle exec jekyll build --destination "$TRAVIS_COMMIT" --baseurl "/c/${TRAVIS_COMMIT}"
|
||||
|
||||
openssl aes-256-cbc -K $encrypted_2b749c8e6327_key -iv $encrypted_2b749c8e6327_iv -in build/gcp-key.json.enc -out build/gcp-key.json -d
|
||||
gcloud auth activate-service-account "$GCP_SERVICE_ACCOUNT" --key-file build/gcp-key.json &> /dev/null || (echo 'GCP login failed!'; exit 1)
|
||||
|
||||
echo "Uploading to http://preview.twbsapps.com/c/${TRAVIS_COMMIT} ..."
|
||||
time gsutil -q -m cp -z html,css,js,svg -r "./${TRAVIS_COMMIT}" gs://preview.twbsapps.com/c/
|
||||
echo 'Done.'
|
5
dist/css/bootstrap-reboot.css
vendored
5
dist/css/bootstrap-reboot.css
vendored
@ -256,11 +256,6 @@ input[type="checkbox"] {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
input[type="radio"]:disabled,
|
||||
input[type="checkbox"]:disabled {
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
input[type="date"],
|
||||
input[type="time"],
|
||||
input[type="datetime-local"],
|
||||
|
2
dist/css/bootstrap-reboot.css.map
vendored
2
dist/css/bootstrap-reboot.css.map
vendored
File diff suppressed because one or more lines are too long
2
dist/css/bootstrap-reboot.min.css
vendored
2
dist/css/bootstrap-reboot.min.css
vendored
@ -1 +1 @@
|
||||
html{-webkit-box-sizing:border-box;box-sizing:border-box;font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}*,::after,::before{-webkit-box-sizing:inherit;box-sizing:inherit}@-ms-viewport{width:device-width}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:1rem;font-weight:400;line-height:1.5;color:#292b2c;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0275d8;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#014c8c;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}[role=button],a,area,button,input,label,select,summary,textarea{-ms-touch-action:manipulation;touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#636c72;text-align:left;caption-side:bottom}th{text-align:left}label{display:inline-block;margin-bottom:.5rem}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=checkbox]:disabled,input[type=radio]:disabled{cursor:not-allowed}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}/*# sourceMappingURL=bootstrap-reboot.min.css.map */
|
||||
html{-webkit-box-sizing:border-box;box-sizing:border-box;font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}*,::after,::before{-webkit-box-sizing:inherit;box-sizing:inherit}@-ms-viewport{width:device-width}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:1rem;font-weight:400;line-height:1.5;color:#292b2c;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0275d8;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#014c8c;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}[role=button],a,area,button,input,label,select,summary,textarea{-ms-touch-action:manipulation;touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#636c72;text-align:left;caption-side:bottom}th{text-align:left}label{display:inline-block;margin-bottom:.5rem}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}/*# sourceMappingURL=bootstrap-reboot.min.css.map */
|
2
dist/css/bootstrap-reboot.min.css.map
vendored
2
dist/css/bootstrap-reboot.min.css.map
vendored
@ -1 +1 @@
|
||||
{"version":3,"sources":["../../scss/_reboot.scss","dist/css/bootstrap-reboot.css","bootstrap-reboot.css","../../scss/mixins/_hover.scss"],"names":[],"mappings":"AAoBA,KACE,mBAAA,WAAA,WAAA,WACA,YAAA,WACA,YAAA,KACA,yBAAA,KACA,qBAAA,KACA,mBAAA,UACA,4BAAA,YAGF,ECjBA,QADA,SDqBE,mBAAA,QAAA,WAAA,QAKA,cAAgB,MAAA,aASlB,KACE,OAAA,EACA,YAAA,aAAA,CAAA,kBAAA,CAAA,UAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,KAAA,CAAA,WACA,UAAA,KACA,YAAA,IACA,YAAA,IACA,MAAA,QACA,iBAAA,KExBF,sBFiCE,QAAA,YASF,GACE,mBAAA,YAAA,WAAA,YACA,OAAA,EACA,SAAA,QAYF,GAAA,GAAA,GAAA,GAAA,GAAA,GACE,WAAA,EACA,cAAA,MAOF,EACE,WAAA,EACA,cAAA,KC5CF,0BDsDA,YAEE,gBAAA,UACA,gBAAA,UAAA,OACA,OAAA,KACA,cAAA,EAGF,QACE,cAAA,KACA,WAAA,OACA,YAAA,QClDF,GDqDA,GCtDA,GDyDE,WAAA,EACA,cAAA,KAGF,MCrDA,MACA,MAFA,MD0DE,cAAA,EAGF,GACE,YAAA,IAGF,GACE,cAAA,MACA,YAAA,EAGF,WACE,OAAA,EAAA,EAAA,KAGF,IACE,WAAA,OAGF,ECtDA,ODwDE,YAAA,OAGF,MACE,UAAA,IAQF,IC3DA,ID6DE,SAAA,SACA,UAAA,IACA,YAAA,EACA,eAAA,SAGF,IAAM,OAAA,OACN,IAAM,IAAA,MAON,EACE,MAAA,QACA,gBAAA,KACA,iBAAA,YACA,6BAAA,QGhLE,QHmLA,MAAA,QACA,gBAAA,UAUJ,8BACE,MAAA,QACA,gBAAA,KGrLE,oCAAA,oCHwLA,MAAA,QACA,gBAAA,KANJ,oCAUI,QAAA,EC7DJ,KACA,IDqEA,ICpEA,KDwEE,YAAA,SAAA,CAAA,UACA,UAAA,IAGF,IAEE,WAAA,EAEA,cAAA,KAEA,SAAA,KAQF,OAEE,OAAA,EAAA,EAAA,KAQF,IACE,eAAA,OACA,aAAA,KAGF,eACE,SAAA,OC/EF,cD6FA,EC/FA,KACA,OAEA,MACA,MACA,OACA,QACA,SDiGE,iBAAA,aAAA,aAAA,aAQF,MACE,gBAAA,SAGF,QACE,YAAA,OACA,eAAA,OACA,MAAA,QACA,WAAA,KACA,aAAA,OAGF,GAEE,WAAA,KAQF,MAEE,QAAA,aACA,cAAA,MAOF,aACE,QAAA,IAAA,OACA,QAAA,IAAA,KAAA,yBC3GF,OD8GA,MC5GA,SADA,OAEA,SDgHE,OAAA,EACA,YAAA,QACA,UAAA,QACA,YAAA,QAGF,OC9GA,MDgHE,SAAA,QAGF,OC9GA,ODgHE,eAAA,KC1GF,aACA,cD+GA,OCjHA,mBDqHE,mBAAA,OC9GF,gCACA,+BACA,gCDgHA,yBAIE,QAAA,EACA,aAAA,KC/GF,qBDkHA,kBAEE,mBAAA,WAAA,WAAA,WACA,QAAA,EC9GF,8BD2GA,2BASI,OAAA,YAKJ,iBCnHA,2BACA,kBAFA,iBD6HE,mBAAA,QAGF,SACE,SAAA,KAEA,OAAA,SAGF,SAME,UAAA,EAEA,QAAA,EACA,OAAA,EACA,OAAA,EAKF,OACE,QAAA,MACA,MAAA,KACA,UAAA,KACA,QAAA,EACA,cAAA,MACA,UAAA,OACA,YAAA,QACA,MAAA,QACA,YAAA,OAGF,SACE,eAAA,SErIF,yCDMA,yCDqIE,OAAA,KEtIF,cF8IE,eAAA,KACA,mBAAA,KE1IF,4CDMA,yCD6IE,mBAAA,KAQF,6BACE,KAAA,QACA,mBAAA,OAOF,OACE,QAAA,aAGF,QACE,QAAA,UAGF,SACE,QAAA,KEvJF,SF6JE,QAAA"}
|
||||
{"version":3,"sources":["../../scss/_reboot.scss","dist/css/bootstrap-reboot.css","bootstrap-reboot.css","../../scss/mixins/_hover.scss"],"names":[],"mappings":"AAoBA,KACE,mBAAA,WAAA,WAAA,WACA,YAAA,WACA,YAAA,KACA,yBAAA,KACA,qBAAA,KACA,mBAAA,UACA,4BAAA,YAGF,ECjBA,QADA,SDqBE,mBAAA,QAAA,WAAA,QAKA,cAAgB,MAAA,aASlB,KACE,OAAA,EACA,YAAA,aAAA,CAAA,kBAAA,CAAA,UAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,KAAA,CAAA,WACA,UAAA,KACA,YAAA,IACA,YAAA,IACA,MAAA,QACA,iBAAA,KExBF,sBFiCE,QAAA,YASF,GACE,mBAAA,YAAA,WAAA,YACA,OAAA,EACA,SAAA,QAYF,GAAA,GAAA,GAAA,GAAA,GAAA,GACE,WAAA,EACA,cAAA,MAOF,EACE,WAAA,EACA,cAAA,KC5CF,0BDsDA,YAEE,gBAAA,UACA,gBAAA,UAAA,OACA,OAAA,KACA,cAAA,EAGF,QACE,cAAA,KACA,WAAA,OACA,YAAA,QClDF,GDqDA,GCtDA,GDyDE,WAAA,EACA,cAAA,KAGF,MCrDA,MACA,MAFA,MD0DE,cAAA,EAGF,GACE,YAAA,IAGF,GACE,cAAA,MACA,YAAA,EAGF,WACE,OAAA,EAAA,EAAA,KAGF,IACE,WAAA,OAGF,ECtDA,ODwDE,YAAA,OAGF,MACE,UAAA,IAQF,IC3DA,ID6DE,SAAA,SACA,UAAA,IACA,YAAA,EACA,eAAA,SAGF,IAAM,OAAA,OACN,IAAM,IAAA,MAON,EACE,MAAA,QACA,gBAAA,KACA,iBAAA,YACA,6BAAA,QGhLE,QHmLA,MAAA,QACA,gBAAA,UAUJ,8BACE,MAAA,QACA,gBAAA,KGrLE,oCAAA,oCHwLA,MAAA,QACA,gBAAA,KANJ,oCAUI,QAAA,EC7DJ,KACA,IDqEA,ICpEA,KDwEE,YAAA,SAAA,CAAA,UACA,UAAA,IAGF,IAEE,WAAA,EAEA,cAAA,KAEA,SAAA,KAQF,OAEE,OAAA,EAAA,EAAA,KAQF,IACE,eAAA,OACA,aAAA,KAGF,eACE,SAAA,OC/EF,cD6FA,EC/FA,KACA,OAEA,MACA,MACA,OACA,QACA,SDiGE,iBAAA,aAAA,aAAA,aAQF,MACE,gBAAA,SAGF,QACE,YAAA,OACA,eAAA,OACA,MAAA,QACA,WAAA,KACA,aAAA,OAGF,GAEE,WAAA,KAQF,MAEE,QAAA,aACA,cAAA,MAOF,aACE,QAAA,IAAA,OACA,QAAA,IAAA,KAAA,yBC3GF,OD8GA,MC5GA,SADA,OAEA,SDgHE,OAAA,EACA,YAAA,QACA,UAAA,QACA,YAAA,QAGF,OC9GA,MDgHE,SAAA,QAGF,OC9GA,ODgHE,eAAA,KC1GF,aACA,cD+GA,OCjHA,mBDqHE,mBAAA,OC9GF,gCACA,+BACA,gCDgHA,yBAIE,QAAA,EACA,aAAA,KC/GF,qBDkHA,kBAEE,mBAAA,WAAA,WAAA,WACA,QAAA,EAIF,iBCjHA,2BACA,kBAFA,iBD2HE,mBAAA,QAGF,SACE,SAAA,KAEA,OAAA,SAGF,SAME,UAAA,EAEA,QAAA,EACA,OAAA,EACA,OAAA,EAKF,OACE,QAAA,MACA,MAAA,KACA,UAAA,KACA,QAAA,EACA,cAAA,MACA,UAAA,OACA,YAAA,QACA,MAAA,QACA,YAAA,OAGF,SACE,eAAA,SEnIF,yCDMA,yCDmIE,OAAA,KEpIF,cF4IE,eAAA,KACA,mBAAA,KExIF,4CDMA,yCD2IE,mBAAA,KAQF,6BACE,KAAA,QACA,mBAAA,OAOF,OACE,QAAA,aAGF,QACE,QAAA,UAGF,SACE,QAAA,KErJF,SF2JE,QAAA"}
|
@ -329,11 +329,6 @@ input[type="checkbox"] {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
input[type="radio"]:disabled,
|
||||
input[type="checkbox"]:disabled {
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
input[type="date"],
|
||||
input[type="time"],
|
||||
input[type="datetime-local"],
|
||||
@ -1966,10 +1961,6 @@ pre code {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.form-control:disabled {
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
select.form-control:not([size]):not([multiple]) {
|
||||
height: calc(2.25rem + 2px);
|
||||
}
|
||||
@ -2074,7 +2065,6 @@ select.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.for
|
||||
|
||||
.form-check.disabled .form-check-label {
|
||||
color: #636c72;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
.form-check-label {
|
||||
@ -2344,7 +2334,6 @@ select.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.for
|
||||
}
|
||||
|
||||
.btn.disabled, .btn:disabled {
|
||||
cursor: not-allowed;
|
||||
opacity: .65;
|
||||
}
|
||||
|
||||
@ -2831,6 +2820,10 @@ tbody.collapse.show {
|
||||
border-left: 0.3em solid transparent;
|
||||
}
|
||||
|
||||
.dropdown-toggle:empty::after {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.dropup .dropdown-toggle::after {
|
||||
border-top: 0;
|
||||
border-bottom: 0.3em solid;
|
||||
@ -2867,7 +2860,7 @@ tbody.collapse.show {
|
||||
.dropdown-item {
|
||||
display: block;
|
||||
width: 100%;
|
||||
padding: 3px 1.5rem;
|
||||
padding: 0.25rem 1.5rem;
|
||||
clear: both;
|
||||
font-weight: normal;
|
||||
color: #292b2c;
|
||||
@ -2891,7 +2884,6 @@ tbody.collapse.show {
|
||||
|
||||
.dropdown-item.disabled, .dropdown-item:disabled {
|
||||
color: #636c72;
|
||||
cursor: not-allowed;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
@ -2922,15 +2914,6 @@ tbody.collapse.show {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.dropdown-backdrop {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
z-index: 990;
|
||||
}
|
||||
|
||||
.dropup .dropdown-menu {
|
||||
top: auto;
|
||||
bottom: 100%;
|
||||
@ -3036,11 +3019,6 @@ tbody.collapse.show {
|
||||
border-bottom-left-radius: 0;
|
||||
}
|
||||
|
||||
.btn-group .dropdown-toggle:active,
|
||||
.btn-group.open .dropdown-toggle {
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
.btn + .dropdown-toggle-split {
|
||||
padding-right: 0.75rem;
|
||||
padding-left: 0.75rem;
|
||||
@ -3313,13 +3291,11 @@ tbody.collapse.show {
|
||||
}
|
||||
|
||||
.custom-control-input:disabled ~ .custom-control-indicator {
|
||||
cursor: not-allowed;
|
||||
background-color: #eceeef;
|
||||
}
|
||||
|
||||
.custom-control-input:disabled ~ .custom-control-description {
|
||||
color: #636c72;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
.custom-control-indicator {
|
||||
@ -3412,7 +3388,6 @@ tbody.collapse.show {
|
||||
|
||||
.custom-select:disabled {
|
||||
color: #636c72;
|
||||
cursor: not-allowed;
|
||||
background-color: #eceeef;
|
||||
}
|
||||
|
||||
@ -3510,22 +3485,16 @@ tbody.collapse.show {
|
||||
|
||||
.nav-link.disabled {
|
||||
color: #636c72;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
.nav-tabs {
|
||||
border-bottom: 1px solid #ddd;
|
||||
}
|
||||
|
||||
.nav-tabs .nav-item,
|
||||
.nav-tabs .nav-link {
|
||||
.nav-tabs .nav-item {
|
||||
margin-bottom: -1px;
|
||||
}
|
||||
|
||||
.nav-tabs .nav-item .nav-link {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.nav-tabs .nav-link {
|
||||
border: 1px solid transparent;
|
||||
border-top-left-radius: 0.25rem;
|
||||
@ -4023,9 +3992,9 @@ tbody.collapse.show {
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
.navbar-light .navbar-nav .open > .nav-link,
|
||||
.navbar-light .navbar-nav .show > .nav-link,
|
||||
.navbar-light .navbar-nav .active > .nav-link,
|
||||
.navbar-light .navbar-nav .nav-link.open,
|
||||
.navbar-light .navbar-nav .nav-link.show,
|
||||
.navbar-light .navbar-nav .nav-link.active {
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
}
|
||||
@ -4063,9 +4032,9 @@ tbody.collapse.show {
|
||||
color: rgba(255, 255, 255, 0.25);
|
||||
}
|
||||
|
||||
.navbar-inverse .navbar-nav .open > .nav-link,
|
||||
.navbar-inverse .navbar-nav .show > .nav-link,
|
||||
.navbar-inverse .navbar-nav .active > .nav-link,
|
||||
.navbar-inverse .navbar-nav .nav-link.open,
|
||||
.navbar-inverse .navbar-nav .nav-link.show,
|
||||
.navbar-inverse .navbar-nav .nav-link.active {
|
||||
color: white;
|
||||
}
|
||||
@ -4226,31 +4195,67 @@ tbody.collapse.show {
|
||||
border-color: #0275d8;
|
||||
}
|
||||
|
||||
.card-outline-primary .card-header,
|
||||
.card-outline-primary .card-footer {
|
||||
background-color: transparent;
|
||||
border-color: #0275d8;
|
||||
}
|
||||
|
||||
.card-outline-secondary {
|
||||
background-color: transparent;
|
||||
border-color: #ccc;
|
||||
}
|
||||
|
||||
.card-outline-secondary .card-header,
|
||||
.card-outline-secondary .card-footer {
|
||||
background-color: transparent;
|
||||
border-color: #ccc;
|
||||
}
|
||||
|
||||
.card-outline-info {
|
||||
background-color: transparent;
|
||||
border-color: #5bc0de;
|
||||
}
|
||||
|
||||
.card-outline-info .card-header,
|
||||
.card-outline-info .card-footer {
|
||||
background-color: transparent;
|
||||
border-color: #5bc0de;
|
||||
}
|
||||
|
||||
.card-outline-success {
|
||||
background-color: transparent;
|
||||
border-color: #5cb85c;
|
||||
}
|
||||
|
||||
.card-outline-success .card-header,
|
||||
.card-outline-success .card-footer {
|
||||
background-color: transparent;
|
||||
border-color: #5cb85c;
|
||||
}
|
||||
|
||||
.card-outline-warning {
|
||||
background-color: transparent;
|
||||
border-color: #f0ad4e;
|
||||
}
|
||||
|
||||
.card-outline-warning .card-header,
|
||||
.card-outline-warning .card-footer {
|
||||
background-color: transparent;
|
||||
border-color: #f0ad4e;
|
||||
}
|
||||
|
||||
.card-outline-danger {
|
||||
background-color: transparent;
|
||||
border-color: #d9534f;
|
||||
}
|
||||
|
||||
.card-outline-danger .card-header,
|
||||
.card-outline-danger .card-footer {
|
||||
background-color: transparent;
|
||||
border-color: #d9534f;
|
||||
}
|
||||
|
||||
.card-inverse {
|
||||
color: rgba(255, 255, 255, 0.65);
|
||||
}
|
||||
@ -4395,6 +4400,10 @@ tbody.collapse.show {
|
||||
}
|
||||
}
|
||||
|
||||
.card-columns .card {
|
||||
margin-bottom: 0.75rem;
|
||||
}
|
||||
|
||||
@media (min-width: 576px) {
|
||||
.card-columns {
|
||||
-webkit-column-count: 3;
|
||||
@ -4407,7 +4416,6 @@ tbody.collapse.show {
|
||||
.card-columns .card {
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
margin-bottom: 0.75rem;
|
||||
}
|
||||
}
|
||||
|
||||
@ -4480,7 +4488,6 @@ tbody.collapse.show {
|
||||
.page-item.disabled .page-link {
|
||||
color: #636c72;
|
||||
pointer-events: none;
|
||||
cursor: not-allowed;
|
||||
background-color: #fff;
|
||||
border-color: #ddd;
|
||||
}
|
||||
@ -4627,10 +4634,6 @@ a.badge:focus, a.badge:hover {
|
||||
}
|
||||
}
|
||||
|
||||
.jumbotron-hr {
|
||||
border-top-color: #d0d5d8;
|
||||
}
|
||||
|
||||
.jumbotron-fluid {
|
||||
padding-right: 0;
|
||||
padding-left: 0;
|
||||
@ -4761,6 +4764,9 @@ a.badge:focus, a.badge:hover {
|
||||
line-height: 1rem;
|
||||
color: #fff;
|
||||
background-color: #0275d8;
|
||||
-webkit-transition: width 0.6s ease;
|
||||
-o-transition: width 0.6s ease;
|
||||
transition: width 0.6s ease;
|
||||
}
|
||||
|
||||
.progress-bar-striped {
|
||||
@ -4852,7 +4858,6 @@ a.badge:focus, a.badge:hover {
|
||||
|
||||
.list-group-item.disabled, .list-group-item:disabled {
|
||||
color: #636c72;
|
||||
cursor: not-allowed;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
@ -5391,7 +5396,7 @@ button.close {
|
||||
.popover.popover-bottom::after, .popover.bs-tether-element-attached-top::after {
|
||||
top: -10px;
|
||||
margin-left: -10px;
|
||||
border-bottom-color: #f7f7f7;
|
||||
border-bottom-color: #fff;
|
||||
}
|
||||
|
||||
.popover.popover-bottom .popover-title::before, .popover.bs-tether-element-attached-top .popover-title::before {
|
||||
@ -5479,35 +5484,20 @@ button.close {
|
||||
.carousel-item {
|
||||
position: relative;
|
||||
display: none;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
@media (-webkit-transform-3d) {
|
||||
.carousel-item {
|
||||
-webkit-transition: -webkit-transform 0.6s ease-in-out;
|
||||
transition: -webkit-transform 0.6s ease-in-out;
|
||||
-o-transition: -o-transform 0.6s ease-in-out;
|
||||
transition: transform 0.6s ease-in-out;
|
||||
transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out, -o-transform 0.6s ease-in-out;
|
||||
-webkit-backface-visibility: hidden;
|
||||
backface-visibility: hidden;
|
||||
-webkit-perspective: 1000px;
|
||||
perspective: 1000px;
|
||||
}
|
||||
}
|
||||
|
||||
@supports ((-webkit-transform: translate3d(0, 0, 0)) or (transform: translate3d(0, 0, 0))) {
|
||||
.carousel-item {
|
||||
-webkit-transition: -webkit-transform 0.6s ease-in-out;
|
||||
transition: -webkit-transform 0.6s ease-in-out;
|
||||
-o-transition: -o-transform 0.6s ease-in-out;
|
||||
transition: transform 0.6s ease-in-out;
|
||||
transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out, -o-transform 0.6s ease-in-out;
|
||||
-webkit-backface-visibility: hidden;
|
||||
backface-visibility: hidden;
|
||||
-webkit-perspective: 1000px;
|
||||
perspective: 1000px;
|
||||
}
|
||||
-webkit-transition: -webkit-transform 0.6s ease;
|
||||
transition: -webkit-transform 0.6s ease;
|
||||
-o-transition: -o-transform 0.6s ease;
|
||||
transition: transform 0.6s ease;
|
||||
transition: transform 0.6s ease, -webkit-transform 0.6s ease, -o-transform 0.6s ease;
|
||||
-webkit-backface-visibility: hidden;
|
||||
backface-visibility: hidden;
|
||||
-webkit-perspective: 1000px;
|
||||
perspective: 1000px;
|
||||
}
|
||||
|
||||
.carousel-item.active,
|
||||
@ -5525,40 +5515,22 @@ button.close {
|
||||
top: 0;
|
||||
}
|
||||
|
||||
@media (-webkit-transform-3d) {
|
||||
.carousel-item-next.carousel-item-left,
|
||||
.carousel-item-prev.carousel-item-right {
|
||||
-webkit-transform: translate3d(0, 0, 0);
|
||||
transform: translate3d(0, 0, 0);
|
||||
}
|
||||
.carousel-item-next,
|
||||
.active.carousel-item-right {
|
||||
-webkit-transform: translate3d(100%, 0, 0);
|
||||
transform: translate3d(100%, 0, 0);
|
||||
}
|
||||
.carousel-item-prev,
|
||||
.active.carousel-item-left {
|
||||
-webkit-transform: translate3d(-100%, 0, 0);
|
||||
transform: translate3d(-100%, 0, 0);
|
||||
}
|
||||
.carousel-item-next.carousel-item-left,
|
||||
.carousel-item-prev.carousel-item-right {
|
||||
-webkit-transform: translate3d(0, 0, 0);
|
||||
transform: translate3d(0, 0, 0);
|
||||
}
|
||||
|
||||
@supports ((-webkit-transform: translate3d(0, 0, 0)) or (transform: translate3d(0, 0, 0))) {
|
||||
.carousel-item-next.carousel-item-left,
|
||||
.carousel-item-prev.carousel-item-right {
|
||||
-webkit-transform: translate3d(0, 0, 0);
|
||||
transform: translate3d(0, 0, 0);
|
||||
}
|
||||
.carousel-item-next,
|
||||
.active.carousel-item-right {
|
||||
-webkit-transform: translate3d(100%, 0, 0);
|
||||
transform: translate3d(100%, 0, 0);
|
||||
}
|
||||
.carousel-item-prev,
|
||||
.active.carousel-item-left {
|
||||
-webkit-transform: translate3d(-100%, 0, 0);
|
||||
transform: translate3d(-100%, 0, 0);
|
||||
}
|
||||
.carousel-item-next,
|
||||
.active.carousel-item-right {
|
||||
-webkit-transform: translate3d(100%, 0, 0);
|
||||
transform: translate3d(100%, 0, 0);
|
||||
}
|
||||
|
||||
.carousel-item-prev,
|
||||
.active.carousel-item-left {
|
||||
-webkit-transform: translate3d(-100%, 0, 0);
|
||||
transform: translate3d(-100%, 0, 0);
|
||||
}
|
||||
|
||||
.carousel-control-prev,
|
||||
|
2
dist/css/bootstrap.css.map
vendored
2
dist/css/bootstrap.css.map
vendored
File diff suppressed because one or more lines are too long
2
dist/css/bootstrap.min.css
vendored
2
dist/css/bootstrap.min.css
vendored
File diff suppressed because one or more lines are too long
2
dist/css/bootstrap.min.css.map
vendored
2
dist/css/bootstrap.min.css.map
vendored
File diff suppressed because one or more lines are too long
@ -420,6 +420,7 @@ var Button = function ($) {
|
||||
|
||||
Button.prototype.toggle = function toggle() {
|
||||
var triggerChangeEvent = true;
|
||||
var addAriaPressed = true;
|
||||
var rootElement = $(this._element).closest(Selector.DATA_TOGGLE)[0];
|
||||
|
||||
if (rootElement) {
|
||||
@ -444,10 +445,13 @@ var Button = function ($) {
|
||||
}
|
||||
|
||||
input.focus();
|
||||
addAriaPressed = false;
|
||||
}
|
||||
}
|
||||
|
||||
this._element.setAttribute('aria-pressed', !$(this._element).hasClass(ClassName.ACTIVE));
|
||||
if (addAriaPressed) {
|
||||
this._element.setAttribute('aria-pressed', !$(this._element).hasClass(ClassName.ACTIVE));
|
||||
}
|
||||
|
||||
if (triggerChangeEvent) {
|
||||
$(this._element).toggleClass(ClassName.ACTIVE);
|
||||
@ -1154,7 +1158,6 @@ var Collapse = function ($) {
|
||||
$(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);
|
||||
|
||||
this._element.style[dimension] = 0;
|
||||
this._element.setAttribute('aria-expanded', true);
|
||||
|
||||
if (this._triggerArray.length) {
|
||||
$(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);
|
||||
@ -1206,8 +1209,6 @@ var Collapse = function ($) {
|
||||
|
||||
$(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);
|
||||
|
||||
this._element.setAttribute('aria-expanded', false);
|
||||
|
||||
if (this._triggerArray.length) {
|
||||
$(this._triggerArray).addClass(ClassName.COLLAPSED).attr('aria-expanded', false);
|
||||
}
|
||||
@ -1273,7 +1274,6 @@ var Collapse = function ($) {
|
||||
Collapse.prototype._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
|
||||
if (element) {
|
||||
var isOpen = $(element).hasClass(ClassName.SHOW);
|
||||
element.setAttribute('aria-expanded', isOpen);
|
||||
|
||||
if (triggerArray.length) {
|
||||
$(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
|
||||
@ -1384,10 +1384,11 @@ var Dropdown = function ($) {
|
||||
var JQUERY_NO_CONFLICT = $.fn[NAME];
|
||||
var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
|
||||
var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key
|
||||
var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key
|
||||
var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
|
||||
var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
|
||||
var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
|
||||
var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + '|' + ARROW_DOWN_KEYCODE + '|' + ESCAPE_KEYCODE + '|' + SPACE_KEYCODE);
|
||||
var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + '|' + ARROW_DOWN_KEYCODE + '|' + ESCAPE_KEYCODE);
|
||||
|
||||
var Event = {
|
||||
HIDE: 'hide' + EVENT_KEY,
|
||||
@ -1396,24 +1397,21 @@ var Dropdown = function ($) {
|
||||
SHOWN: 'shown' + EVENT_KEY,
|
||||
CLICK: 'click' + EVENT_KEY,
|
||||
CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY,
|
||||
FOCUSIN_DATA_API: 'focusin' + EVENT_KEY + DATA_API_KEY,
|
||||
KEYDOWN_DATA_API: 'keydown' + EVENT_KEY + DATA_API_KEY
|
||||
KEYDOWN_DATA_API: 'keydown' + EVENT_KEY + DATA_API_KEY,
|
||||
KEYUP_DATA_API: 'keyup' + EVENT_KEY + DATA_API_KEY
|
||||
};
|
||||
|
||||
var ClassName = {
|
||||
BACKDROP: 'dropdown-backdrop',
|
||||
DISABLED: 'disabled',
|
||||
SHOW: 'show'
|
||||
};
|
||||
|
||||
var Selector = {
|
||||
BACKDROP: '.dropdown-backdrop',
|
||||
DATA_TOGGLE: '[data-toggle="dropdown"]',
|
||||
FORM_CHILD: '.dropdown form',
|
||||
ROLE_MENU: '[role="menu"]',
|
||||
ROLE_LISTBOX: '[role="listbox"]',
|
||||
MENU: '.dropdown-menu',
|
||||
NAVBAR_NAV: '.navbar-nav',
|
||||
VISIBLE_ITEMS: '[role="menu"] li:not(.disabled) a, ' + '[role="listbox"] li:not(.disabled) a'
|
||||
VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled)'
|
||||
};
|
||||
|
||||
/**
|
||||
@ -1460,14 +1458,12 @@ var Dropdown = function ($) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// set the backdrop only if the dropdown menu will be opened
|
||||
// if this is a touch-enabled device we add extra
|
||||
// empty mouseover listeners to the body's immediate children;
|
||||
// only needed because of broken event delegation on iOS
|
||||
// https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
|
||||
if ('ontouchstart' in document.documentElement && !$(parent).closest(Selector.NAVBAR_NAV).length) {
|
||||
|
||||
// if mobile we use a backdrop because click events don't delegate
|
||||
var dropdown = document.createElement('div');
|
||||
dropdown.className = ClassName.BACKDROP;
|
||||
$(dropdown).insertBefore(this);
|
||||
$(dropdown).on('click', Dropdown._clearMenus);
|
||||
$('body').children().on('mouseover', '*', $.noop);
|
||||
}
|
||||
|
||||
this.focus();
|
||||
@ -1512,7 +1508,7 @@ var Dropdown = function ($) {
|
||||
};
|
||||
|
||||
Dropdown._clearMenus = function _clearMenus(event) {
|
||||
if (event && event.which === RIGHT_MOUSE_BUTTON_WHICH) {
|
||||
if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -1528,7 +1524,7 @@ var Dropdown = function ($) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'focusin') && $.contains(parent, event.target)) {
|
||||
if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $.contains(parent, event.target)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -1538,10 +1534,10 @@ var Dropdown = function ($) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// remove backdrop only if the dropdown menu will be hidden
|
||||
var backdrop = $(parent).find(Selector.BACKDROP)[0];
|
||||
if (backdrop) {
|
||||
backdrop.parentNode.removeChild(backdrop);
|
||||
// if this is a touch-enabled device we remove the extra
|
||||
// empty mouseover listeners we added for iOS support
|
||||
if ('ontouchstart' in document.documentElement) {
|
||||
$('body').children().off('mouseover', '*', $.noop);
|
||||
}
|
||||
|
||||
toggles[i].setAttribute('aria-expanded', 'false');
|
||||
@ -1562,7 +1558,7 @@ var Dropdown = function ($) {
|
||||
};
|
||||
|
||||
Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
|
||||
if (!REGEXP_KEYDOWN.test(event.which) || /input|textarea/i.test(event.target.tagName)) {
|
||||
if (!REGEXP_KEYDOWN.test(event.which) || /button/i.test(event.target.tagName) && event.which === SPACE_KEYCODE || /input|textarea/i.test(event.target.tagName)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -1576,7 +1572,7 @@ var Dropdown = function ($) {
|
||||
var parent = Dropdown._getParentFromElement(this);
|
||||
var isActive = $(parent).hasClass(ClassName.SHOW);
|
||||
|
||||
if (!isActive && event.which !== ESCAPE_KEYCODE || isActive && event.which === ESCAPE_KEYCODE) {
|
||||
if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
|
||||
|
||||
if (event.which === ESCAPE_KEYCODE) {
|
||||
var toggle = $(parent).find(Selector.DATA_TOGGLE)[0];
|
||||
@ -1628,7 +1624,7 @@ var Dropdown = function ($) {
|
||||
* ------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
$(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.ROLE_MENU, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.ROLE_LISTBOX, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + ' ' + Event.FOCUSIN_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, Dropdown.prototype.toggle).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {
|
||||
$(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + ' ' + Event.KEYUP_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, Dropdown.prototype.toggle).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {
|
||||
e.stopPropagation();
|
||||
});
|
||||
|
||||
@ -1928,6 +1924,7 @@ var Modal = function ($) {
|
||||
if (this._isShown && this._config.keyboard) {
|
||||
$(this._element).on(Event.KEYDOWN_DISMISS, function (event) {
|
||||
if (event.which === ESCAPE_KEYCODE) {
|
||||
event.preventDefault();
|
||||
_this13.hide();
|
||||
}
|
||||
});
|
||||
|
4
dist/js/bootstrap.min.js
vendored
4
dist/js/bootstrap.min.js
vendored
File diff suppressed because one or more lines are too long
@ -33,3 +33,7 @@
|
||||
- name: Gleb Mazovetskiy
|
||||
user: glebm
|
||||
gravatar: 729f685b8e8d7e9feed18c177c82e59b
|
||||
|
||||
- name: Johann-S
|
||||
user: johann-s
|
||||
gravatar: d90d49733a4fe1aa461e45cb4a4fd9e3
|
||||
|
@ -55,9 +55,16 @@
|
||||
|
||||
// Insert copy to clipboard button before .highlight
|
||||
$('.highlight').each(function () {
|
||||
var btnHtml = '<div class="bd-clipboard"><span class="btn-clipboard" title="Copy to clipboard">Copy</span></div>'
|
||||
var btnHtml = '<div class="bd-clipboard"><button class="btn-clipboard" title="Copy to clipboard">Copy</button></div>'
|
||||
$(this).before(btnHtml)
|
||||
$('.btn-clipboard').tooltip()
|
||||
$('.btn-clipboard')
|
||||
.tooltip()
|
||||
.on('mouseleave', function () {
|
||||
// explicitly hide tooltip, since after clicking it remains
|
||||
// focused (as it's a button), so tooltip would otherwise
|
||||
// remain visible until focus is moved away
|
||||
$(this).tooltip('hide')
|
||||
})
|
||||
})
|
||||
|
||||
var clipboard = new Clipboard('.btn-clipboard', {
|
||||
|
@ -23,6 +23,7 @@
|
||||
color: #818a91;
|
||||
cursor: pointer;
|
||||
background-color: transparent;
|
||||
border: 0;
|
||||
border-radius: .25rem;
|
||||
|
||||
&:hover {
|
||||
|
@ -12,6 +12,14 @@ Group a series of buttons together on a single line with the button group. Add o
|
||||
* Will be replaced with the ToC, excluding the "Contents" header
|
||||
{:toc}
|
||||
|
||||
{% callout warning %}
|
||||
## Ensure correct `role` and provide a label
|
||||
|
||||
In order for assistive technologies (such as screen readers) to convey that a series of buttons is grouped, an appropriate `role` attribute needs to be provided. For button groups, this would be `role="group"`, while toolbars should have a `role="toolbar"`.
|
||||
|
||||
In addition, groups and toolbars should be given an explicit label, as most assistive technologies will otherwise not announce them, despite the presence of the correct role attribute. In the examples provided here, we use `aria-label`, but alternatives such as `aria-labelledby` can also be used.
|
||||
{% endcallout %}
|
||||
|
||||
## Basic example
|
||||
|
||||
Wrap a series of buttons with `.btn` in `.btn-group`.
|
||||
@ -59,7 +67,7 @@ Feel free to mix input groups with button groups in your toolbars. Similar to th
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon" id="btnGroupAddon">@</span>
|
||||
<input type="text" class="form-control" placeholder="Input group example" aria-describedby="btnGroupAddon">
|
||||
<input type="text" class="form-control" placeholder="Input group example" aria-label="Input group example" aria-describedby="btnGroupAddon">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -72,7 +80,7 @@ Feel free to mix input groups with button groups in your toolbars. Similar to th
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon" id="btnGroupAddon2">@</span>
|
||||
<input type="text" class="form-control" placeholder="Input group example" aria-describedby="btnGroupAddon2">
|
||||
<input type="text" class="form-control" placeholder="Input group example" aria-label="Input group example" aria-describedby="btnGroupAddon2">
|
||||
</div>
|
||||
</div>
|
||||
{% endexample %}
|
||||
|
@ -28,7 +28,7 @@ Here's a carousel with slides only. Note the presence of the `.d-block` and `.im
|
||||
|
||||
{% example html %}
|
||||
<div id="carouselExampleSlidesOnly" class="carousel slide" data-ride="carousel">
|
||||
<div class="carousel-inner" role="listbox">
|
||||
<div class="carousel-inner">
|
||||
<div class="carousel-item active">
|
||||
<img class="d-block w-100" data-src="holder.js/800x400?auto=yes&bg=777&fg=555&text=First slide" alt="First slide">
|
||||
</div>
|
||||
@ -48,7 +48,7 @@ Adding in the previous and next controls:
|
||||
|
||||
{% example html %}
|
||||
<div id="carouselExampleControls" class="carousel slide" data-ride="carousel">
|
||||
<div class="carousel-inner" role="listbox">
|
||||
<div class="carousel-inner">
|
||||
<div class="carousel-item active">
|
||||
<img class="d-block w-100" data-src="holder.js/800x400?auto=yes&bg=777&fg=555&text=First slide" alt="First slide">
|
||||
</div>
|
||||
@ -81,7 +81,7 @@ You can also add the indicators to the carousel, alongside the controls, too.
|
||||
<li data-target="#carouselExampleIndicators" data-slide-to="1"></li>
|
||||
<li data-target="#carouselExampleIndicators" data-slide-to="2"></li>
|
||||
</ol>
|
||||
<div class="carousel-inner" role="listbox">
|
||||
<div class="carousel-inner">
|
||||
<div class="carousel-item active">
|
||||
<img class="d-block w-100" data-src="holder.js/800x400?auto=yes&bg=777&fg=555&text=First slide" alt="First slide">
|
||||
</div>
|
||||
@ -120,7 +120,7 @@ Add captions to your slides easily with the `.carousel-caption` element within a
|
||||
<li data-target="#carouselExampleCaptions" data-slide-to="1"></li>
|
||||
<li data-target="#carouselExampleCaptions" data-slide-to="2"></li>
|
||||
</ol>
|
||||
<div class="carousel-inner" role="listbox">
|
||||
<div class="carousel-inner">
|
||||
<div class="carousel-item active">
|
||||
<img class="d-block w-100" data-src="holder.js/800x400?auto=yes&bg=777&fg=555&text=First slide" alt="First slide">
|
||||
<div class="carousel-caption d-none d-md-block">
|
||||
@ -210,7 +210,8 @@ Options can be passed via data attributes or JavaScript. For data attributes, ap
|
||||
<td>pause</td>
|
||||
<td>string | boolean</td>
|
||||
<td>"hover"</td>
|
||||
<td>If set to <code>"hover"</code>, pauses the cycling of the carousel on <code>mouseenter</code> and resumes the cycling of the carousel on <code>mouseleave</code>. If set to <code>false</code>, hovering over the carousel won't pause it.</td>
|
||||
<td><p>If set to <code>"hover"</code>, pauses the cycling of the carousel on <code>mouseenter</code> and resumes the cycling of the carousel on <code>mouseleave</code>. If set to <code>false</code>, hovering over the carousel won't pause it.</p>
|
||||
<p>On touch-enabled devices, when set to <code>"hover"</code>, cycling will pause on <code>touchend</code> (once the user finished interacting with the carousel) for two intervals, before automatically resuming. Note that this is in addition to the above mouse behavior.</p></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ride</td>
|
||||
|
@ -119,7 +119,7 @@ You can also create accordions with custom markup. Add the `data-children` attri
|
||||
|
||||
## Accessibility
|
||||
|
||||
Be sure to add `aria-expanded` to the control element. This attribute explicitly defines the current state of the collapsible element to screen readers and similar assistive technologies. If the collapsible element is closed by default, it should have a value of `aria-expanded="false"`. If you've set the collapsible element to be open by default using the `show` class, set `aria-expanded="true"` on the control instead. The plugin will automatically toggle this attribute based on whether or not the collapsible element has been opened or closed.
|
||||
Be sure to add `aria-expanded` to the control element. This attribute explicitly conveys the current state of the collapsible element tied to the control to screen readers and similar assistive technologies. If the collapsible element is closed by default, the attribute on the control element should have a value of `aria-expanded="false"`. If you've set the collapsible element to be open by default using the `show` class, set `aria-expanded="true"` on the control instead. The plugin will automatically toggle this attribute on the control based on whether or not the collapsible element has been opened or closed (via JavaScript, or because the user triggered another control element also tied to the same collapsbile element).
|
||||
|
||||
Additionally, if your control element is targeting a single collapsible element – i.e. the `data-target` attribute is pointing to an `id` selector – you may add an additional `aria-controls` attribute to the control element, containing the `id` of the collapsible element. Modern screen readers and similar assistive technologies make use of this attribute to provide users with additional shortcuts to navigate directly to the collapsible element itself.
|
||||
|
||||
|
@ -16,6 +16,16 @@ Dropdowns are toggleable, contextual overlays for displaying lists of links and
|
||||
|
||||
Wrap the dropdown's toggle (your button or link) and the dropdown menu within `.dropdown`, or another element that declares `position: relative;`. Dropdowns can be triggered from `<a>` or `<button>` elements to better fit your potential needs.
|
||||
|
||||
{% callout info %}
|
||||
### Dropdown menu accessibility
|
||||
|
||||
The [<abbr title="Web Accessibility Initiative">WAI</abbr> <abbr title="Accessible Rich Internet Applications">ARIA</abbr>](https://www.w3.org/TR/wai-aria/) standard defines an actual [`role="menu"` widget](https://www.w3.org/TR/wai-aria/roles#menu), but this is specific to application-like menus which trigger actions or functions. <abbr title="Accessible Rich Internet Applications">ARIA</abbr> menus can only contain menu items, checkbox menu items, radio button menu items, radio button groups, and sub-menus.
|
||||
|
||||
Bootstrap's dropdowns, on the other hand, are designed to be generic and applicable to a variety of situations and markup structures. For instance, it is possible to create dropdowns that contain additional inputs and form controls, such as search fields or login forms. For this reason, Bootstrap does not expect (nor automatically add) any of the `role` and `aria-` attributes required for true <abbr title="Accessible Rich Internet Applications">ARIA</abbr> menus. Authors will have to include these more specific attributes themselves.
|
||||
|
||||
However, Bootstrap does add built-in support for most standard keyboard menu interactions, such as the ability to move through individual `.dropdown-item` elements using the cursor keys and close the menu with the <kbd>ESC</kbd> key.
|
||||
{% endcallout %}
|
||||
|
||||
### Single button dropdowns
|
||||
|
||||
Any single `.btn` can be turned into a dropdown toggle with some markup changes. Here's how you can put them to work with either `<button>` elements:
|
||||
@ -37,7 +47,7 @@ And with `<a>` elements:
|
||||
|
||||
{% example html %}
|
||||
<div class="dropdown show">
|
||||
<a class="btn btn-secondary dropdown-toggle" href="https://example.com" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<a class="btn btn-secondary dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
Dropdown link
|
||||
</a>
|
||||
|
||||
@ -480,7 +490,9 @@ Add `.disabled` to items in the dropdown to **style them as disabled**.
|
||||
|
||||
Via data attributes or JavaScript, the dropdown plugin toggles hidden content (dropdown menus) by toggling the `.show` class on the parent list item.
|
||||
|
||||
On mobile devices, opening a dropdown adds a `.dropdown-backdrop` as a tap area for closing dropdown menus when tapping outside the menu, a requirement for proper iOS support. **This means that switching from an open dropdown menu to a different dropdown menu requires an extra tap on mobile.**
|
||||
{% callout info %}
|
||||
On touch-enabled devices, opening a dropdown adds empty (`$.noop`) `mouseover` handlers to the immediate children of the `<body>` element. This admittedly ugly hack is necessary to work around a [quirk in iOS' event delegation](https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html), which would otherwise prevent a tap anywhere outside of the dropdown from triggering the code that closes the dropdown. Once the dropdown is closed, these additional empty `mouseover` handlers are removed.
|
||||
{% endcallout %}
|
||||
|
||||
Note: The `data-toggle="dropdown"` attribute is relied on for closing dropdown menus at an application level, so it's a good idea to always use it.
|
||||
|
||||
|
@ -19,11 +19,11 @@ Place one add-on or button on either side of an input. You may also place one on
|
||||
{% example html %}
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon" id="basic-addon1">@</span>
|
||||
<input type="text" class="form-control" placeholder="Username" aria-describedby="basic-addon1">
|
||||
<input type="text" class="form-control" placeholder="Username" aria-label="Username" aria-describedby="basic-addon1">
|
||||
</div>
|
||||
<br>
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control" placeholder="Recipient's username" aria-describedby="basic-addon2">
|
||||
<input type="text" class="form-control" placeholder="Recipient's username" aria-label="Recipient's username" aria-describedby="basic-addon2">
|
||||
<span class="input-group-addon" id="basic-addon2">@example.com</span>
|
||||
</div>
|
||||
<br>
|
||||
@ -53,12 +53,12 @@ Add the relative form sizing classes to the `.input-group` itself and contents w
|
||||
{% example html %}
|
||||
<div class="input-group input-group-lg">
|
||||
<span class="input-group-addon" id="sizing-addon1">@</span>
|
||||
<input type="text" class="form-control" placeholder="Username" aria-describedby="sizing-addon1">
|
||||
<input type="text" class="form-control" placeholder="Username" aria-label="Username" aria-describedby="sizing-addon1">
|
||||
</div>
|
||||
<br>
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon" id="sizing-addon2">@</span>
|
||||
<input type="text" class="form-control" placeholder="Username" aria-describedby="sizing-addon2">
|
||||
<input type="text" class="form-control" placeholder="Username" aria-label="Username" aria-describedby="sizing-addon2">
|
||||
</div>
|
||||
{% endexample %}
|
||||
|
||||
@ -124,12 +124,12 @@ Buttons in input groups must wrapped in a `.input-group-btn` for proper alignmen
|
||||
<span class="input-group-btn">
|
||||
<button class="btn btn-secondary" type="button">Go!</button>
|
||||
</span>
|
||||
<input type="text" class="form-control" placeholder="Search for...">
|
||||
<input type="text" class="form-control" placeholder="Search for..." aria-label="Search for...">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control" placeholder="Search for...">
|
||||
<input type="text" class="form-control" placeholder="Search for..." aria-label="Search for...>
|
||||
<span class="input-group-btn">
|
||||
<button class="btn btn-secondary" type="button">Go!</button>
|
||||
</span>
|
||||
@ -143,7 +143,7 @@ Buttons in input groups must wrapped in a `.input-group-btn` for proper alignmen
|
||||
<span class="input-group-btn">
|
||||
<button class="btn btn-secondary" type="button">Hate it</button>
|
||||
</span>
|
||||
<input type="text" class="form-control" placeholder="Product name">
|
||||
<input type="text" class="form-control" placeholder="Product name" aria-label="Product name">
|
||||
<span class="input-group-btn">
|
||||
<button class="btn btn-secondary" type="button">Love it</button>
|
||||
</span>
|
||||
@ -240,4 +240,4 @@ Buttons in input groups must wrapped in a `.input-group-btn` for proper alignmen
|
||||
|
||||
Screen readers will have trouble with your forms if you don't include a label for every input. For these input groups, ensure that any additional label or functionality is conveyed to assistive technologies.
|
||||
|
||||
The exact technique to be used (`<label>` elements hidden using the `.sr-only` class, or use of the `aria-label`, `aria-labelledby`, `aria-describedby`, `title` or `placeholder` attribute) and what additional information will need to be conveyed will vary depending on the exact type of interface widget you're implementing. The examples in this section provide a few suggested, case-specific approaches.
|
||||
The exact technique to be used (`<label>` elements hidden using the `.sr-only` class, or use of the `aria-label` and `aria-labelledby` attributes, possibly in combination with `aria-describedby`) and what additional information will need to be conveyed will vary depending on the exact type of interface widget you're implementing. The examples in this section provide a few suggested, case-specific approaches.
|
||||
|
@ -57,7 +57,7 @@ Here's an example of all the sub-components included in a responsive light-theme
|
||||
</li>
|
||||
</ul>
|
||||
<form class="form-inline my-2 my-lg-0">
|
||||
<input class="form-control mr-sm-2" type="text" placeholder="Search">
|
||||
<input class="form-control mr-sm-2" type="text" placeholder="Search" aria-label="Search">
|
||||
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
|
||||
</form>
|
||||
</div>
|
||||
@ -192,7 +192,7 @@ Place various form controls and components within a navbar with `.form-inline`.
|
||||
{% example html %}
|
||||
<nav class="navbar navbar-light bg-faded">
|
||||
<form class="form-inline">
|
||||
<input class="form-control mr-sm-2" type="text" placeholder="Search">
|
||||
<input class="form-control mr-sm-2" type="text" placeholder="Search" aria-label="Search">
|
||||
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
|
||||
</form>
|
||||
</nav>
|
||||
@ -204,7 +204,7 @@ Align the contents of your inline forms with utilities as needed.
|
||||
<nav class="navbar navbar-light bg-faded justify-content-between">
|
||||
<a class="navbar-brand">Navbar</a>
|
||||
<form class="form-inline">
|
||||
<input class="form-control mr-sm-2" type="text" placeholder="Search">
|
||||
<input class="form-control mr-sm-2" type="text" placeholder="Search" aria-label="Search">
|
||||
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
|
||||
</form>
|
||||
</nav>
|
||||
@ -217,7 +217,7 @@ Input groups work, too:
|
||||
<form class="form-inline">
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon" id="basic-addon1">@</span>
|
||||
<input type="text" class="form-control" placeholder="Username" aria-describedby="basic-addon1">
|
||||
<input type="text" class="form-control" placeholder="Username" aria-label="Username" aria-describedby="basic-addon1">
|
||||
</div>
|
||||
</form>
|
||||
</nav>
|
||||
@ -300,7 +300,7 @@ Theming the navbar has never been easier thanks to the combination of theming cl
|
||||
</li>
|
||||
</ul>
|
||||
<form class="form-inline">
|
||||
<input class="form-control mr-sm-2" type="text" placeholder="Search">
|
||||
<input class="form-control mr-sm-2" type="text" placeholder="Search" aria-label="Search">
|
||||
<button class="btn btn-outline-info my-2 my-sm-0" type="submit">Search</button>
|
||||
</form>
|
||||
</div>
|
||||
@ -328,7 +328,7 @@ Theming the navbar has never been easier thanks to the combination of theming cl
|
||||
</li>
|
||||
</ul>
|
||||
<form class="form-inline">
|
||||
<input class="form-control mr-sm-2" type="text" placeholder="Search">
|
||||
<input class="form-control mr-sm-2" type="text" placeholder="Search" aria-label="Search">
|
||||
<button class="btn btn-outline-secondary my-2 my-sm-0" type="submit">Search</button>
|
||||
</form>
|
||||
</div>
|
||||
@ -356,7 +356,7 @@ Theming the navbar has never been easier thanks to the combination of theming cl
|
||||
</li>
|
||||
</ul>
|
||||
<form class="form-inline">
|
||||
<input class="form-control mr-sm-2" type="text" placeholder="Search">
|
||||
<input class="form-control mr-sm-2" type="text" placeholder="Search" aria-label="Search">
|
||||
<button class="btn btn-outline-primary my-2 my-sm-0" type="submit">Search</button>
|
||||
</form>
|
||||
</div>
|
||||
@ -458,7 +458,7 @@ With no `.navbar-brand` shown in lowest breakpoint:
|
||||
</li>
|
||||
</ul>
|
||||
<form class="form-inline my-2 my-lg-0">
|
||||
<input class="form-control mr-sm-2" type="text" placeholder="Search">
|
||||
<input class="form-control mr-sm-2" type="text" placeholder="Search" aria-label="Search">
|
||||
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
|
||||
</form>
|
||||
</div>
|
||||
@ -516,7 +516,7 @@ With a toggler on the left and brand name on the right:
|
||||
</li>
|
||||
</ul>
|
||||
<form class="form-inline my-2 my-lg-0">
|
||||
<input class="form-control mr-sm-2" type="text" placeholder="Search">
|
||||
<input class="form-control mr-sm-2" type="text" placeholder="Search" aria-label="Search">
|
||||
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
|
||||
</form>
|
||||
</div>
|
||||
|
@ -295,7 +295,7 @@ Add dropdown menus with a little extra HTML and the [dropdowns JavaScript plugin
|
||||
|
||||
Use the tab JavaScript plugin—include it individually or through the compiled `bootstrap.js` file—to extend our navigational tabs and pills to create tabbable panes of local content, even via dropdown menus.
|
||||
|
||||
<div class="bd-example bd-example-tabs" role="tabpanel">
|
||||
<div class="bd-example bd-example-tabs">
|
||||
<ul class="nav nav-tabs" id="myTab" role="tablist">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link active" id="home-tab" data-toggle="tab" href="#home" role="tab" aria-controls="home" aria-expanded="true">Home</a>
|
||||
@ -357,7 +357,7 @@ Use the tab JavaScript plugin—include it individually or through the compiled
|
||||
|
||||
To help fit your needs, this works with `<ul>`-based markup, as shown above, as well as `<nav>`-based markup shown below.
|
||||
|
||||
<div class="bd-example bd-example-tabs" role="tabpanel">
|
||||
<div class="bd-example bd-example-tabs">
|
||||
<nav class="nav nav-tabs" id="nav-tab" role="tablist">
|
||||
<a class="nav-item nav-link active" id="nav-home-tab" data-toggle="tab" href="#nav-home" role="tab" aria-controls="home" aria-expanded="true">Home</a>
|
||||
<a class="nav-item nav-link" id="nav-profile-tab" data-toggle="tab" href="#nav-profile" role="tab" aria-controls="profile">Profile</a>
|
||||
@ -411,7 +411,7 @@ To help fit your needs, this works with `<ul>`-based markup, as shown above, as
|
||||
|
||||
The tabs plugin also works with pills.
|
||||
|
||||
<div class="bd-example bd-example-tabs" role="tabpanel">
|
||||
<div class="bd-example bd-example-tabs">
|
||||
<ul class="nav nav-pills mb-3" id="pills-tab" role="tablist">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link active" id="pills-home-tab" data-toggle="pill" href="#pills-home" role="tab" aria-controls="pills-home" aria-expanded="true">Home</a>
|
||||
@ -469,7 +469,7 @@ The tabs plugin also works with pills.
|
||||
|
||||
And with vertical pills.
|
||||
|
||||
<div class="bd-example bd-example-tabs" role="tabpanel">
|
||||
<div class="bd-example bd-example-tabs">
|
||||
<div class="row">
|
||||
<div class="col-3">
|
||||
<div class="nav flex-column nav-pills" id="v-pills-tab" role="tablist">
|
||||
@ -517,7 +517,6 @@ And with vertical pills.
|
||||
|
||||
You can activate a tab or pill navigation without writing any JavaScript by simply specifying `data-toggle="tab"` or `data-toggle="pill"` on an element. Use these data attributes on `.nav-tabs` or `.nav-pills`.
|
||||
|
||||
<div role="tabpanel">
|
||||
{% highlight html %}
|
||||
<!-- Nav tabs -->
|
||||
<ul class="nav nav-tabs" id="myTab" role="tablist">
|
||||
@ -543,7 +542,6 @@ You can activate a tab or pill navigation without writing any JavaScript by simp
|
||||
<div class="tab-pane" id="settings" role="tabpanel">...</div>
|
||||
</div>
|
||||
{% endhighlight %}
|
||||
</div>
|
||||
|
||||
### Via JavaScript
|
||||
|
||||
|
5
docs/dist/css/bootstrap-reboot.css
vendored
5
docs/dist/css/bootstrap-reboot.css
vendored
@ -256,11 +256,6 @@ input[type="checkbox"] {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
input[type="radio"]:disabled,
|
||||
input[type="checkbox"]:disabled {
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
input[type="date"],
|
||||
input[type="time"],
|
||||
input[type="datetime-local"],
|
||||
|
2
docs/dist/css/bootstrap-reboot.css.map
vendored
2
docs/dist/css/bootstrap-reboot.css.map
vendored
File diff suppressed because one or more lines are too long
2
docs/dist/css/bootstrap-reboot.min.css
vendored
2
docs/dist/css/bootstrap-reboot.min.css
vendored
@ -1 +1 @@
|
||||
html{-webkit-box-sizing:border-box;box-sizing:border-box;font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}*,::after,::before{-webkit-box-sizing:inherit;box-sizing:inherit}@-ms-viewport{width:device-width}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:1rem;font-weight:400;line-height:1.5;color:#292b2c;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0275d8;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#014c8c;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}[role=button],a,area,button,input,label,select,summary,textarea{-ms-touch-action:manipulation;touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#636c72;text-align:left;caption-side:bottom}th{text-align:left}label{display:inline-block;margin-bottom:.5rem}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=checkbox]:disabled,input[type=radio]:disabled{cursor:not-allowed}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}/*# sourceMappingURL=bootstrap-reboot.min.css.map */
|
||||
html{-webkit-box-sizing:border-box;box-sizing:border-box;font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}*,::after,::before{-webkit-box-sizing:inherit;box-sizing:inherit}@-ms-viewport{width:device-width}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:1rem;font-weight:400;line-height:1.5;color:#292b2c;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0275d8;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#014c8c;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}[role=button],a,area,button,input,label,select,summary,textarea{-ms-touch-action:manipulation;touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#636c72;text-align:left;caption-side:bottom}th{text-align:left}label{display:inline-block;margin-bottom:.5rem}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}/*# sourceMappingURL=bootstrap-reboot.min.css.map */
|
2
docs/dist/css/bootstrap-reboot.min.css.map
vendored
2
docs/dist/css/bootstrap-reboot.min.css.map
vendored
@ -1 +1 @@
|
||||
{"version":3,"sources":["../../scss/_reboot.scss","dist/css/bootstrap-reboot.css","bootstrap-reboot.css","../../scss/mixins/_hover.scss"],"names":[],"mappings":"AAoBA,KACE,mBAAA,WAAA,WAAA,WACA,YAAA,WACA,YAAA,KACA,yBAAA,KACA,qBAAA,KACA,mBAAA,UACA,4BAAA,YAGF,ECjBA,QADA,SDqBE,mBAAA,QAAA,WAAA,QAKA,cAAgB,MAAA,aASlB,KACE,OAAA,EACA,YAAA,aAAA,CAAA,kBAAA,CAAA,UAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,KAAA,CAAA,WACA,UAAA,KACA,YAAA,IACA,YAAA,IACA,MAAA,QACA,iBAAA,KExBF,sBFiCE,QAAA,YASF,GACE,mBAAA,YAAA,WAAA,YACA,OAAA,EACA,SAAA,QAYF,GAAA,GAAA,GAAA,GAAA,GAAA,GACE,WAAA,EACA,cAAA,MAOF,EACE,WAAA,EACA,cAAA,KC5CF,0BDsDA,YAEE,gBAAA,UACA,gBAAA,UAAA,OACA,OAAA,KACA,cAAA,EAGF,QACE,cAAA,KACA,WAAA,OACA,YAAA,QClDF,GDqDA,GCtDA,GDyDE,WAAA,EACA,cAAA,KAGF,MCrDA,MACA,MAFA,MD0DE,cAAA,EAGF,GACE,YAAA,IAGF,GACE,cAAA,MACA,YAAA,EAGF,WACE,OAAA,EAAA,EAAA,KAGF,IACE,WAAA,OAGF,ECtDA,ODwDE,YAAA,OAGF,MACE,UAAA,IAQF,IC3DA,ID6DE,SAAA,SACA,UAAA,IACA,YAAA,EACA,eAAA,SAGF,IAAM,OAAA,OACN,IAAM,IAAA,MAON,EACE,MAAA,QACA,gBAAA,KACA,iBAAA,YACA,6BAAA,QGhLE,QHmLA,MAAA,QACA,gBAAA,UAUJ,8BACE,MAAA,QACA,gBAAA,KGrLE,oCAAA,oCHwLA,MAAA,QACA,gBAAA,KANJ,oCAUI,QAAA,EC7DJ,KACA,IDqEA,ICpEA,KDwEE,YAAA,SAAA,CAAA,UACA,UAAA,IAGF,IAEE,WAAA,EAEA,cAAA,KAEA,SAAA,KAQF,OAEE,OAAA,EAAA,EAAA,KAQF,IACE,eAAA,OACA,aAAA,KAGF,eACE,SAAA,OC/EF,cD6FA,EC/FA,KACA,OAEA,MACA,MACA,OACA,QACA,SDiGE,iBAAA,aAAA,aAAA,aAQF,MACE,gBAAA,SAGF,QACE,YAAA,OACA,eAAA,OACA,MAAA,QACA,WAAA,KACA,aAAA,OAGF,GAEE,WAAA,KAQF,MAEE,QAAA,aACA,cAAA,MAOF,aACE,QAAA,IAAA,OACA,QAAA,IAAA,KAAA,yBC3GF,OD8GA,MC5GA,SADA,OAEA,SDgHE,OAAA,EACA,YAAA,QACA,UAAA,QACA,YAAA,QAGF,OC9GA,MDgHE,SAAA,QAGF,OC9GA,ODgHE,eAAA,KC1GF,aACA,cD+GA,OCjHA,mBDqHE,mBAAA,OC9GF,gCACA,+BACA,gCDgHA,yBAIE,QAAA,EACA,aAAA,KC/GF,qBDkHA,kBAEE,mBAAA,WAAA,WAAA,WACA,QAAA,EC9GF,8BD2GA,2BASI,OAAA,YAKJ,iBCnHA,2BACA,kBAFA,iBD6HE,mBAAA,QAGF,SACE,SAAA,KAEA,OAAA,SAGF,SAME,UAAA,EAEA,QAAA,EACA,OAAA,EACA,OAAA,EAKF,OACE,QAAA,MACA,MAAA,KACA,UAAA,KACA,QAAA,EACA,cAAA,MACA,UAAA,OACA,YAAA,QACA,MAAA,QACA,YAAA,OAGF,SACE,eAAA,SErIF,yCDMA,yCDqIE,OAAA,KEtIF,cF8IE,eAAA,KACA,mBAAA,KE1IF,4CDMA,yCD6IE,mBAAA,KAQF,6BACE,KAAA,QACA,mBAAA,OAOF,OACE,QAAA,aAGF,QACE,QAAA,UAGF,SACE,QAAA,KEvJF,SF6JE,QAAA"}
|
||||
{"version":3,"sources":["../../scss/_reboot.scss","dist/css/bootstrap-reboot.css","bootstrap-reboot.css","../../scss/mixins/_hover.scss"],"names":[],"mappings":"AAoBA,KACE,mBAAA,WAAA,WAAA,WACA,YAAA,WACA,YAAA,KACA,yBAAA,KACA,qBAAA,KACA,mBAAA,UACA,4BAAA,YAGF,ECjBA,QADA,SDqBE,mBAAA,QAAA,WAAA,QAKA,cAAgB,MAAA,aASlB,KACE,OAAA,EACA,YAAA,aAAA,CAAA,kBAAA,CAAA,UAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,KAAA,CAAA,WACA,UAAA,KACA,YAAA,IACA,YAAA,IACA,MAAA,QACA,iBAAA,KExBF,sBFiCE,QAAA,YASF,GACE,mBAAA,YAAA,WAAA,YACA,OAAA,EACA,SAAA,QAYF,GAAA,GAAA,GAAA,GAAA,GAAA,GACE,WAAA,EACA,cAAA,MAOF,EACE,WAAA,EACA,cAAA,KC5CF,0BDsDA,YAEE,gBAAA,UACA,gBAAA,UAAA,OACA,OAAA,KACA,cAAA,EAGF,QACE,cAAA,KACA,WAAA,OACA,YAAA,QClDF,GDqDA,GCtDA,GDyDE,WAAA,EACA,cAAA,KAGF,MCrDA,MACA,MAFA,MD0DE,cAAA,EAGF,GACE,YAAA,IAGF,GACE,cAAA,MACA,YAAA,EAGF,WACE,OAAA,EAAA,EAAA,KAGF,IACE,WAAA,OAGF,ECtDA,ODwDE,YAAA,OAGF,MACE,UAAA,IAQF,IC3DA,ID6DE,SAAA,SACA,UAAA,IACA,YAAA,EACA,eAAA,SAGF,IAAM,OAAA,OACN,IAAM,IAAA,MAON,EACE,MAAA,QACA,gBAAA,KACA,iBAAA,YACA,6BAAA,QGhLE,QHmLA,MAAA,QACA,gBAAA,UAUJ,8BACE,MAAA,QACA,gBAAA,KGrLE,oCAAA,oCHwLA,MAAA,QACA,gBAAA,KANJ,oCAUI,QAAA,EC7DJ,KACA,IDqEA,ICpEA,KDwEE,YAAA,SAAA,CAAA,UACA,UAAA,IAGF,IAEE,WAAA,EAEA,cAAA,KAEA,SAAA,KAQF,OAEE,OAAA,EAAA,EAAA,KAQF,IACE,eAAA,OACA,aAAA,KAGF,eACE,SAAA,OC/EF,cD6FA,EC/FA,KACA,OAEA,MACA,MACA,OACA,QACA,SDiGE,iBAAA,aAAA,aAAA,aAQF,MACE,gBAAA,SAGF,QACE,YAAA,OACA,eAAA,OACA,MAAA,QACA,WAAA,KACA,aAAA,OAGF,GAEE,WAAA,KAQF,MAEE,QAAA,aACA,cAAA,MAOF,aACE,QAAA,IAAA,OACA,QAAA,IAAA,KAAA,yBC3GF,OD8GA,MC5GA,SADA,OAEA,SDgHE,OAAA,EACA,YAAA,QACA,UAAA,QACA,YAAA,QAGF,OC9GA,MDgHE,SAAA,QAGF,OC9GA,ODgHE,eAAA,KC1GF,aACA,cD+GA,OCjHA,mBDqHE,mBAAA,OC9GF,gCACA,+BACA,gCDgHA,yBAIE,QAAA,EACA,aAAA,KC/GF,qBDkHA,kBAEE,mBAAA,WAAA,WAAA,WACA,QAAA,EAIF,iBCjHA,2BACA,kBAFA,iBD2HE,mBAAA,QAGF,SACE,SAAA,KAEA,OAAA,SAGF,SAME,UAAA,EAEA,QAAA,EACA,OAAA,EACA,OAAA,EAKF,OACE,QAAA,MACA,MAAA,KACA,UAAA,KACA,QAAA,EACA,cAAA,MACA,UAAA,OACA,YAAA,QACA,MAAA,QACA,YAAA,OAGF,SACE,eAAA,SEnIF,yCDMA,yCDmIE,OAAA,KEpIF,cF4IE,eAAA,KACA,mBAAA,KExIF,4CDMA,yCD2IE,mBAAA,KAQF,6BACE,KAAA,QACA,mBAAA,OAOF,OACE,QAAA,aAGF,QACE,QAAA,UAGF,SACE,QAAA,KErJF,SF2JE,QAAA"}
|
@ -329,11 +329,6 @@ input[type="checkbox"] {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
input[type="radio"]:disabled,
|
||||
input[type="checkbox"]:disabled {
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
input[type="date"],
|
||||
input[type="time"],
|
||||
input[type="datetime-local"],
|
||||
@ -1966,10 +1961,6 @@ pre code {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.form-control:disabled {
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
select.form-control:not([size]):not([multiple]) {
|
||||
height: calc(2.25rem + 2px);
|
||||
}
|
||||
@ -2074,7 +2065,6 @@ select.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.for
|
||||
|
||||
.form-check.disabled .form-check-label {
|
||||
color: #636c72;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
.form-check-label {
|
||||
@ -2344,7 +2334,6 @@ select.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.for
|
||||
}
|
||||
|
||||
.btn.disabled, .btn:disabled {
|
||||
cursor: not-allowed;
|
||||
opacity: .65;
|
||||
}
|
||||
|
||||
@ -2831,6 +2820,10 @@ tbody.collapse.show {
|
||||
border-left: 0.3em solid transparent;
|
||||
}
|
||||
|
||||
.dropdown-toggle:empty::after {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.dropup .dropdown-toggle::after {
|
||||
border-top: 0;
|
||||
border-bottom: 0.3em solid;
|
||||
@ -2867,7 +2860,7 @@ tbody.collapse.show {
|
||||
.dropdown-item {
|
||||
display: block;
|
||||
width: 100%;
|
||||
padding: 3px 1.5rem;
|
||||
padding: 0.25rem 1.5rem;
|
||||
clear: both;
|
||||
font-weight: normal;
|
||||
color: #292b2c;
|
||||
@ -2891,7 +2884,6 @@ tbody.collapse.show {
|
||||
|
||||
.dropdown-item.disabled, .dropdown-item:disabled {
|
||||
color: #636c72;
|
||||
cursor: not-allowed;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
@ -2922,15 +2914,6 @@ tbody.collapse.show {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.dropdown-backdrop {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
z-index: 990;
|
||||
}
|
||||
|
||||
.dropup .dropdown-menu {
|
||||
top: auto;
|
||||
bottom: 100%;
|
||||
@ -3036,11 +3019,6 @@ tbody.collapse.show {
|
||||
border-bottom-left-radius: 0;
|
||||
}
|
||||
|
||||
.btn-group .dropdown-toggle:active,
|
||||
.btn-group.open .dropdown-toggle {
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
.btn + .dropdown-toggle-split {
|
||||
padding-right: 0.75rem;
|
||||
padding-left: 0.75rem;
|
||||
@ -3313,13 +3291,11 @@ tbody.collapse.show {
|
||||
}
|
||||
|
||||
.custom-control-input:disabled ~ .custom-control-indicator {
|
||||
cursor: not-allowed;
|
||||
background-color: #eceeef;
|
||||
}
|
||||
|
||||
.custom-control-input:disabled ~ .custom-control-description {
|
||||
color: #636c72;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
.custom-control-indicator {
|
||||
@ -3412,7 +3388,6 @@ tbody.collapse.show {
|
||||
|
||||
.custom-select:disabled {
|
||||
color: #636c72;
|
||||
cursor: not-allowed;
|
||||
background-color: #eceeef;
|
||||
}
|
||||
|
||||
@ -3510,22 +3485,16 @@ tbody.collapse.show {
|
||||
|
||||
.nav-link.disabled {
|
||||
color: #636c72;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
.nav-tabs {
|
||||
border-bottom: 1px solid #ddd;
|
||||
}
|
||||
|
||||
.nav-tabs .nav-item,
|
||||
.nav-tabs .nav-link {
|
||||
.nav-tabs .nav-item {
|
||||
margin-bottom: -1px;
|
||||
}
|
||||
|
||||
.nav-tabs .nav-item .nav-link {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.nav-tabs .nav-link {
|
||||
border: 1px solid transparent;
|
||||
border-top-left-radius: 0.25rem;
|
||||
@ -4023,9 +3992,9 @@ tbody.collapse.show {
|
||||
color: rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
.navbar-light .navbar-nav .open > .nav-link,
|
||||
.navbar-light .navbar-nav .show > .nav-link,
|
||||
.navbar-light .navbar-nav .active > .nav-link,
|
||||
.navbar-light .navbar-nav .nav-link.open,
|
||||
.navbar-light .navbar-nav .nav-link.show,
|
||||
.navbar-light .navbar-nav .nav-link.active {
|
||||
color: rgba(0, 0, 0, 0.9);
|
||||
}
|
||||
@ -4063,9 +4032,9 @@ tbody.collapse.show {
|
||||
color: rgba(255, 255, 255, 0.25);
|
||||
}
|
||||
|
||||
.navbar-inverse .navbar-nav .open > .nav-link,
|
||||
.navbar-inverse .navbar-nav .show > .nav-link,
|
||||
.navbar-inverse .navbar-nav .active > .nav-link,
|
||||
.navbar-inverse .navbar-nav .nav-link.open,
|
||||
.navbar-inverse .navbar-nav .nav-link.show,
|
||||
.navbar-inverse .navbar-nav .nav-link.active {
|
||||
color: white;
|
||||
}
|
||||
@ -4226,31 +4195,67 @@ tbody.collapse.show {
|
||||
border-color: #0275d8;
|
||||
}
|
||||
|
||||
.card-outline-primary .card-header,
|
||||
.card-outline-primary .card-footer {
|
||||
background-color: transparent;
|
||||
border-color: #0275d8;
|
||||
}
|
||||
|
||||
.card-outline-secondary {
|
||||
background-color: transparent;
|
||||
border-color: #ccc;
|
||||
}
|
||||
|
||||
.card-outline-secondary .card-header,
|
||||
.card-outline-secondary .card-footer {
|
||||
background-color: transparent;
|
||||
border-color: #ccc;
|
||||
}
|
||||
|
||||
.card-outline-info {
|
||||
background-color: transparent;
|
||||
border-color: #5bc0de;
|
||||
}
|
||||
|
||||
.card-outline-info .card-header,
|
||||
.card-outline-info .card-footer {
|
||||
background-color: transparent;
|
||||
border-color: #5bc0de;
|
||||
}
|
||||
|
||||
.card-outline-success {
|
||||
background-color: transparent;
|
||||
border-color: #5cb85c;
|
||||
}
|
||||
|
||||
.card-outline-success .card-header,
|
||||
.card-outline-success .card-footer {
|
||||
background-color: transparent;
|
||||
border-color: #5cb85c;
|
||||
}
|
||||
|
||||
.card-outline-warning {
|
||||
background-color: transparent;
|
||||
border-color: #f0ad4e;
|
||||
}
|
||||
|
||||
.card-outline-warning .card-header,
|
||||
.card-outline-warning .card-footer {
|
||||
background-color: transparent;
|
||||
border-color: #f0ad4e;
|
||||
}
|
||||
|
||||
.card-outline-danger {
|
||||
background-color: transparent;
|
||||
border-color: #d9534f;
|
||||
}
|
||||
|
||||
.card-outline-danger .card-header,
|
||||
.card-outline-danger .card-footer {
|
||||
background-color: transparent;
|
||||
border-color: #d9534f;
|
||||
}
|
||||
|
||||
.card-inverse {
|
||||
color: rgba(255, 255, 255, 0.65);
|
||||
}
|
||||
@ -4395,6 +4400,10 @@ tbody.collapse.show {
|
||||
}
|
||||
}
|
||||
|
||||
.card-columns .card {
|
||||
margin-bottom: 0.75rem;
|
||||
}
|
||||
|
||||
@media (min-width: 576px) {
|
||||
.card-columns {
|
||||
-webkit-column-count: 3;
|
||||
@ -4407,7 +4416,6 @@ tbody.collapse.show {
|
||||
.card-columns .card {
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
margin-bottom: 0.75rem;
|
||||
}
|
||||
}
|
||||
|
||||
@ -4480,7 +4488,6 @@ tbody.collapse.show {
|
||||
.page-item.disabled .page-link {
|
||||
color: #636c72;
|
||||
pointer-events: none;
|
||||
cursor: not-allowed;
|
||||
background-color: #fff;
|
||||
border-color: #ddd;
|
||||
}
|
||||
@ -4627,10 +4634,6 @@ a.badge:focus, a.badge:hover {
|
||||
}
|
||||
}
|
||||
|
||||
.jumbotron-hr {
|
||||
border-top-color: #d0d5d8;
|
||||
}
|
||||
|
||||
.jumbotron-fluid {
|
||||
padding-right: 0;
|
||||
padding-left: 0;
|
||||
@ -4761,6 +4764,9 @@ a.badge:focus, a.badge:hover {
|
||||
line-height: 1rem;
|
||||
color: #fff;
|
||||
background-color: #0275d8;
|
||||
-webkit-transition: width 0.6s ease;
|
||||
-o-transition: width 0.6s ease;
|
||||
transition: width 0.6s ease;
|
||||
}
|
||||
|
||||
.progress-bar-striped {
|
||||
@ -4852,7 +4858,6 @@ a.badge:focus, a.badge:hover {
|
||||
|
||||
.list-group-item.disabled, .list-group-item:disabled {
|
||||
color: #636c72;
|
||||
cursor: not-allowed;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
@ -5391,7 +5396,7 @@ button.close {
|
||||
.popover.popover-bottom::after, .popover.bs-tether-element-attached-top::after {
|
||||
top: -10px;
|
||||
margin-left: -10px;
|
||||
border-bottom-color: #f7f7f7;
|
||||
border-bottom-color: #fff;
|
||||
}
|
||||
|
||||
.popover.popover-bottom .popover-title::before, .popover.bs-tether-element-attached-top .popover-title::before {
|
||||
@ -5479,35 +5484,20 @@ button.close {
|
||||
.carousel-item {
|
||||
position: relative;
|
||||
display: none;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
@media (-webkit-transform-3d) {
|
||||
.carousel-item {
|
||||
-webkit-transition: -webkit-transform 0.6s ease-in-out;
|
||||
transition: -webkit-transform 0.6s ease-in-out;
|
||||
-o-transition: -o-transform 0.6s ease-in-out;
|
||||
transition: transform 0.6s ease-in-out;
|
||||
transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out, -o-transform 0.6s ease-in-out;
|
||||
-webkit-backface-visibility: hidden;
|
||||
backface-visibility: hidden;
|
||||
-webkit-perspective: 1000px;
|
||||
perspective: 1000px;
|
||||
}
|
||||
}
|
||||
|
||||
@supports ((-webkit-transform: translate3d(0, 0, 0)) or (transform: translate3d(0, 0, 0))) {
|
||||
.carousel-item {
|
||||
-webkit-transition: -webkit-transform 0.6s ease-in-out;
|
||||
transition: -webkit-transform 0.6s ease-in-out;
|
||||
-o-transition: -o-transform 0.6s ease-in-out;
|
||||
transition: transform 0.6s ease-in-out;
|
||||
transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out, -o-transform 0.6s ease-in-out;
|
||||
-webkit-backface-visibility: hidden;
|
||||
backface-visibility: hidden;
|
||||
-webkit-perspective: 1000px;
|
||||
perspective: 1000px;
|
||||
}
|
||||
-webkit-transition: -webkit-transform 0.6s ease;
|
||||
transition: -webkit-transform 0.6s ease;
|
||||
-o-transition: -o-transform 0.6s ease;
|
||||
transition: transform 0.6s ease;
|
||||
transition: transform 0.6s ease, -webkit-transform 0.6s ease, -o-transform 0.6s ease;
|
||||
-webkit-backface-visibility: hidden;
|
||||
backface-visibility: hidden;
|
||||
-webkit-perspective: 1000px;
|
||||
perspective: 1000px;
|
||||
}
|
||||
|
||||
.carousel-item.active,
|
||||
@ -5525,40 +5515,22 @@ button.close {
|
||||
top: 0;
|
||||
}
|
||||
|
||||
@media (-webkit-transform-3d) {
|
||||
.carousel-item-next.carousel-item-left,
|
||||
.carousel-item-prev.carousel-item-right {
|
||||
-webkit-transform: translate3d(0, 0, 0);
|
||||
transform: translate3d(0, 0, 0);
|
||||
}
|
||||
.carousel-item-next,
|
||||
.active.carousel-item-right {
|
||||
-webkit-transform: translate3d(100%, 0, 0);
|
||||
transform: translate3d(100%, 0, 0);
|
||||
}
|
||||
.carousel-item-prev,
|
||||
.active.carousel-item-left {
|
||||
-webkit-transform: translate3d(-100%, 0, 0);
|
||||
transform: translate3d(-100%, 0, 0);
|
||||
}
|
||||
.carousel-item-next.carousel-item-left,
|
||||
.carousel-item-prev.carousel-item-right {
|
||||
-webkit-transform: translate3d(0, 0, 0);
|
||||
transform: translate3d(0, 0, 0);
|
||||
}
|
||||
|
||||
@supports ((-webkit-transform: translate3d(0, 0, 0)) or (transform: translate3d(0, 0, 0))) {
|
||||
.carousel-item-next.carousel-item-left,
|
||||
.carousel-item-prev.carousel-item-right {
|
||||
-webkit-transform: translate3d(0, 0, 0);
|
||||
transform: translate3d(0, 0, 0);
|
||||
}
|
||||
.carousel-item-next,
|
||||
.active.carousel-item-right {
|
||||
-webkit-transform: translate3d(100%, 0, 0);
|
||||
transform: translate3d(100%, 0, 0);
|
||||
}
|
||||
.carousel-item-prev,
|
||||
.active.carousel-item-left {
|
||||
-webkit-transform: translate3d(-100%, 0, 0);
|
||||
transform: translate3d(-100%, 0, 0);
|
||||
}
|
||||
.carousel-item-next,
|
||||
.active.carousel-item-right {
|
||||
-webkit-transform: translate3d(100%, 0, 0);
|
||||
transform: translate3d(100%, 0, 0);
|
||||
}
|
||||
|
||||
.carousel-item-prev,
|
||||
.active.carousel-item-left {
|
||||
-webkit-transform: translate3d(-100%, 0, 0);
|
||||
transform: translate3d(-100%, 0, 0);
|
||||
}
|
||||
|
||||
.carousel-control-prev,
|
||||
|
2
docs/dist/css/bootstrap.css.map
vendored
2
docs/dist/css/bootstrap.css.map
vendored
File diff suppressed because one or more lines are too long
2
docs/dist/css/bootstrap.min.css
vendored
2
docs/dist/css/bootstrap.min.css
vendored
File diff suppressed because one or more lines are too long
2
docs/dist/css/bootstrap.min.css.map
vendored
2
docs/dist/css/bootstrap.min.css.map
vendored
File diff suppressed because one or more lines are too long
@ -420,6 +420,7 @@ var Button = function ($) {
|
||||
|
||||
Button.prototype.toggle = function toggle() {
|
||||
var triggerChangeEvent = true;
|
||||
var addAriaPressed = true;
|
||||
var rootElement = $(this._element).closest(Selector.DATA_TOGGLE)[0];
|
||||
|
||||
if (rootElement) {
|
||||
@ -444,10 +445,13 @@ var Button = function ($) {
|
||||
}
|
||||
|
||||
input.focus();
|
||||
addAriaPressed = false;
|
||||
}
|
||||
}
|
||||
|
||||
this._element.setAttribute('aria-pressed', !$(this._element).hasClass(ClassName.ACTIVE));
|
||||
if (addAriaPressed) {
|
||||
this._element.setAttribute('aria-pressed', !$(this._element).hasClass(ClassName.ACTIVE));
|
||||
}
|
||||
|
||||
if (triggerChangeEvent) {
|
||||
$(this._element).toggleClass(ClassName.ACTIVE);
|
||||
@ -1154,7 +1158,6 @@ var Collapse = function ($) {
|
||||
$(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);
|
||||
|
||||
this._element.style[dimension] = 0;
|
||||
this._element.setAttribute('aria-expanded', true);
|
||||
|
||||
if (this._triggerArray.length) {
|
||||
$(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);
|
||||
@ -1206,8 +1209,6 @@ var Collapse = function ($) {
|
||||
|
||||
$(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);
|
||||
|
||||
this._element.setAttribute('aria-expanded', false);
|
||||
|
||||
if (this._triggerArray.length) {
|
||||
$(this._triggerArray).addClass(ClassName.COLLAPSED).attr('aria-expanded', false);
|
||||
}
|
||||
@ -1273,7 +1274,6 @@ var Collapse = function ($) {
|
||||
Collapse.prototype._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
|
||||
if (element) {
|
||||
var isOpen = $(element).hasClass(ClassName.SHOW);
|
||||
element.setAttribute('aria-expanded', isOpen);
|
||||
|
||||
if (triggerArray.length) {
|
||||
$(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
|
||||
@ -1384,10 +1384,11 @@ var Dropdown = function ($) {
|
||||
var JQUERY_NO_CONFLICT = $.fn[NAME];
|
||||
var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
|
||||
var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key
|
||||
var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key
|
||||
var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
|
||||
var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
|
||||
var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
|
||||
var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + '|' + ARROW_DOWN_KEYCODE + '|' + ESCAPE_KEYCODE + '|' + SPACE_KEYCODE);
|
||||
var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + '|' + ARROW_DOWN_KEYCODE + '|' + ESCAPE_KEYCODE);
|
||||
|
||||
var Event = {
|
||||
HIDE: 'hide' + EVENT_KEY,
|
||||
@ -1396,24 +1397,21 @@ var Dropdown = function ($) {
|
||||
SHOWN: 'shown' + EVENT_KEY,
|
||||
CLICK: 'click' + EVENT_KEY,
|
||||
CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY,
|
||||
FOCUSIN_DATA_API: 'focusin' + EVENT_KEY + DATA_API_KEY,
|
||||
KEYDOWN_DATA_API: 'keydown' + EVENT_KEY + DATA_API_KEY
|
||||
KEYDOWN_DATA_API: 'keydown' + EVENT_KEY + DATA_API_KEY,
|
||||
KEYUP_DATA_API: 'keyup' + EVENT_KEY + DATA_API_KEY
|
||||
};
|
||||
|
||||
var ClassName = {
|
||||
BACKDROP: 'dropdown-backdrop',
|
||||
DISABLED: 'disabled',
|
||||
SHOW: 'show'
|
||||
};
|
||||
|
||||
var Selector = {
|
||||
BACKDROP: '.dropdown-backdrop',
|
||||
DATA_TOGGLE: '[data-toggle="dropdown"]',
|
||||
FORM_CHILD: '.dropdown form',
|
||||
ROLE_MENU: '[role="menu"]',
|
||||
ROLE_LISTBOX: '[role="listbox"]',
|
||||
MENU: '.dropdown-menu',
|
||||
NAVBAR_NAV: '.navbar-nav',
|
||||
VISIBLE_ITEMS: '[role="menu"] li:not(.disabled) a, ' + '[role="listbox"] li:not(.disabled) a'
|
||||
VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled)'
|
||||
};
|
||||
|
||||
/**
|
||||
@ -1460,14 +1458,12 @@ var Dropdown = function ($) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// set the backdrop only if the dropdown menu will be opened
|
||||
// if this is a touch-enabled device we add extra
|
||||
// empty mouseover listeners to the body's immediate children;
|
||||
// only needed because of broken event delegation on iOS
|
||||
// https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
|
||||
if ('ontouchstart' in document.documentElement && !$(parent).closest(Selector.NAVBAR_NAV).length) {
|
||||
|
||||
// if mobile we use a backdrop because click events don't delegate
|
||||
var dropdown = document.createElement('div');
|
||||
dropdown.className = ClassName.BACKDROP;
|
||||
$(dropdown).insertBefore(this);
|
||||
$(dropdown).on('click', Dropdown._clearMenus);
|
||||
$('body').children().on('mouseover', '*', $.noop);
|
||||
}
|
||||
|
||||
this.focus();
|
||||
@ -1512,7 +1508,7 @@ var Dropdown = function ($) {
|
||||
};
|
||||
|
||||
Dropdown._clearMenus = function _clearMenus(event) {
|
||||
if (event && event.which === RIGHT_MOUSE_BUTTON_WHICH) {
|
||||
if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -1528,7 +1524,7 @@ var Dropdown = function ($) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'focusin') && $.contains(parent, event.target)) {
|
||||
if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $.contains(parent, event.target)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -1538,10 +1534,10 @@ var Dropdown = function ($) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// remove backdrop only if the dropdown menu will be hidden
|
||||
var backdrop = $(parent).find(Selector.BACKDROP)[0];
|
||||
if (backdrop) {
|
||||
backdrop.parentNode.removeChild(backdrop);
|
||||
// if this is a touch-enabled device we remove the extra
|
||||
// empty mouseover listeners we added for iOS support
|
||||
if ('ontouchstart' in document.documentElement) {
|
||||
$('body').children().off('mouseover', '*', $.noop);
|
||||
}
|
||||
|
||||
toggles[i].setAttribute('aria-expanded', 'false');
|
||||
@ -1562,7 +1558,7 @@ var Dropdown = function ($) {
|
||||
};
|
||||
|
||||
Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
|
||||
if (!REGEXP_KEYDOWN.test(event.which) || /input|textarea/i.test(event.target.tagName)) {
|
||||
if (!REGEXP_KEYDOWN.test(event.which) || /button/i.test(event.target.tagName) && event.which === SPACE_KEYCODE || /input|textarea/i.test(event.target.tagName)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -1576,7 +1572,7 @@ var Dropdown = function ($) {
|
||||
var parent = Dropdown._getParentFromElement(this);
|
||||
var isActive = $(parent).hasClass(ClassName.SHOW);
|
||||
|
||||
if (!isActive && event.which !== ESCAPE_KEYCODE || isActive && event.which === ESCAPE_KEYCODE) {
|
||||
if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
|
||||
|
||||
if (event.which === ESCAPE_KEYCODE) {
|
||||
var toggle = $(parent).find(Selector.DATA_TOGGLE)[0];
|
||||
@ -1628,7 +1624,7 @@ var Dropdown = function ($) {
|
||||
* ------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
$(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.ROLE_MENU, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.ROLE_LISTBOX, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + ' ' + Event.FOCUSIN_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, Dropdown.prototype.toggle).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {
|
||||
$(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + ' ' + Event.KEYUP_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, Dropdown.prototype.toggle).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {
|
||||
e.stopPropagation();
|
||||
});
|
||||
|
||||
@ -1928,6 +1924,7 @@ var Modal = function ($) {
|
||||
if (this._isShown && this._config.keyboard) {
|
||||
$(this._element).on(Event.KEYDOWN_DISMISS, function (event) {
|
||||
if (event.which === ESCAPE_KEYCODE) {
|
||||
event.preventDefault();
|
||||
_this13.hide();
|
||||
}
|
||||
});
|
||||
|
4
docs/dist/js/bootstrap.min.js
vendored
4
docs/dist/js/bootstrap.min.js
vendored
File diff suppressed because one or more lines are too long
@ -35,7 +35,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
<form class="form-inline mt-2 mt-md-0">
|
||||
<input class="form-control mr-sm-2" type="text" placeholder="Search">
|
||||
<input class="form-control mr-sm-2" type="text" placeholder="Search" aria-label="Search">
|
||||
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
|
||||
</form>
|
||||
</div>
|
||||
@ -47,7 +47,7 @@
|
||||
<li data-target="#myCarousel" data-slide-to="1"></li>
|
||||
<li data-target="#myCarousel" data-slide-to="2"></li>
|
||||
</ol>
|
||||
<div class="carousel-inner" role="listbox">
|
||||
<div class="carousel-inner">
|
||||
<div class="carousel-item active">
|
||||
<img class="first-slide" src="data:image/gif;base64,R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==" alt="First slide">
|
||||
<div class="container">
|
||||
|
@ -39,7 +39,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
<form class="form-inline mt-2 mt-md-0">
|
||||
<input class="form-control mr-sm-2" type="text" placeholder="Search">
|
||||
<input class="form-control mr-sm-2" type="text" placeholder="Search" aria-label="Search">
|
||||
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
|
||||
</form>
|
||||
</div>
|
||||
|
@ -45,7 +45,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
<form class="form-inline my-2 my-lg-0">
|
||||
<input class="form-control mr-sm-2" type="text" placeholder="Search">
|
||||
<input class="form-control mr-sm-2" type="text" placeholder="Search" aria-label="Search">
|
||||
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
|
||||
</form>
|
||||
</div>
|
||||
|
@ -36,7 +36,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
<form class="form-inline mt-2 mt-md-0">
|
||||
<input class="form-control mr-sm-2" type="text" placeholder="Search">
|
||||
<input class="form-control mr-sm-2" type="text" placeholder="Search" aria-label="Search">
|
||||
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
|
||||
</form>
|
||||
</div>
|
||||
|
@ -36,7 +36,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
<form class="form-inline mt-2 mt-md-0">
|
||||
<input class="form-control mr-sm-2" type="text" placeholder="Search">
|
||||
<input class="form-control mr-sm-2" type="text" placeholder="Search" aria-label="Search">
|
||||
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
|
||||
</form>
|
||||
</div>
|
||||
|
@ -45,7 +45,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
<form class="form-inline my-2 my-md-0">
|
||||
<input class="form-control" type="text" placeholder="Search">
|
||||
<input class="form-control" type="text" placeholder="Search" aria-label="Search">
|
||||
</form>
|
||||
</div>
|
||||
</nav>
|
||||
@ -238,7 +238,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
<form class="form-inline my-2 my-md-0">
|
||||
<input class="form-control" type="text" placeholder="Search">
|
||||
<input class="form-control" type="text" placeholder="Search" aria-label="Search">
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@ -300,7 +300,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
<form class="form-inline my-2 my-md-0">
|
||||
<input class="form-control" type="text" placeholder="Search">
|
||||
<input class="form-control" type="text" placeholder="Search" aria-label="Search">
|
||||
</form>
|
||||
</div>
|
||||
</nav>
|
||||
|
@ -45,7 +45,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
<form class="form-inline my-2 my-lg-0">
|
||||
<input class="form-control mr-sm-2" type="text" placeholder="Search">
|
||||
<input class="form-control mr-sm-2" type="text" placeholder="Search" aria-label="Search">
|
||||
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
|
||||
</form>
|
||||
</div>
|
||||
|
@ -45,7 +45,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
<form class="form-inline my-2 my-lg-0">
|
||||
<input class="form-control mr-sm-2" type="text" placeholder="Search">
|
||||
<input class="form-control mr-sm-2" type="text" placeholder="Search" aria-label="Search">
|
||||
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
|
||||
</form>
|
||||
</div>
|
||||
|
@ -37,7 +37,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
<form class="form-inline mt-2 mt-md-0">
|
||||
<input class="form-control mr-sm-2" type="text" placeholder="Search">
|
||||
<input class="form-control mr-sm-2" type="text" placeholder="Search" aria-label="Search">
|
||||
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
|
||||
</form>
|
||||
</div>
|
||||
|
@ -1,57 +1,57 @@
|
||||
---
|
||||
layout: docs
|
||||
title: Accessibility
|
||||
description: Learn how Bootstrap supports common web standards for making sites that are accessibile to those using assistive technology.
|
||||
description: A brief overview of Bootstrap's features and limitations for the creation of accessible content.
|
||||
group: getting-started
|
||||
---
|
||||
|
||||
Bootstrap follows common web standards and—with minimal extra effort—can be used to create sites that are accessible to those using <abbr title="Assistive Technology" class="initialism">AT</abbr>.
|
||||
Bootstrap provides an easy-to-use framework of ready-made styles, layout tools, and interactive components, allowing developers to create web sites and applications that are visually appealing, functionally rich, and accessible out of the box.
|
||||
|
||||
## Contents
|
||||
|
||||
* Will be replaced with the ToC, excluding the "Contents" header
|
||||
{:toc}
|
||||
|
||||
## Component requirements
|
||||
## Overview and limitations
|
||||
|
||||
Some common HTML elements are always in need for basic accessibility enhancements through `role`s and Aria attributes. Below is a list of some of the most frequently used ones.
|
||||
The overall accessibility of any project built with Bootstrap depends in large part on the author's markup, additional styling, and scripting they've included. However, provided that these have been implemented correctly, it should be perfectly possible to create web sites and applications with Bootstrap that fulfill [<abbr title="Web Content Accessibility Guidelines">WCAG</abbr> 2.0](https://www.w3.org/TR/WCAG20/) (A/AA/AAA), [Section 508](https://www.section508.gov/) and similar accessibility standards and requirements.
|
||||
|
||||
### Button groups
|
||||
### Structural markup
|
||||
|
||||
In order for assistive technologies–such as screen readers–to convey that a series of buttons is grouped, an appropriate `role` attribute needs to be provided. For button groups, this would be `role="group"`, while toolbars should have a `role="toolbar"`.
|
||||
Bootstrap's styling and layout can be applied to a wide range of markup structures. This documentation aims to provide developers with best practice examples to demonstrate the use of Bootstrap itself and illustrate appropriate semantic markup, including ways in which potential accessibility concerns can be addressed.
|
||||
|
||||
In addition, groups and toolbars should be given an explicit label, as most assistive technologies will otherwise not announce them, despite the presence of the correct `role` attribute. In the examples provided here, we use `aria-label`, but alternatives such as `aria-labelledby` can also be used.
|
||||
### Interactive components
|
||||
|
||||
## Skip navigation
|
||||
Bootstrap's interactive components—such as modal dialogs, dropdown menus and custom tooltips—are designed to work for touch, mouse and keyboard users. Through the use of relevant [<abbr title="Web Accessibility Initiative">WAI</abbr> <abbr title="Accessible Rich Internet Applications">ARIA</abbr>](https://www.w3.org/WAI/intro/aria) roles and attributes, these components should also be understandable and operable using assistive technologies (such as screen readers).
|
||||
|
||||
If your navigation contains many links and comes before the main content in the DOM, add a `Skip to main content` link before the navigation (for a simple explanation, see this [A11Y Project article on skip navigation links](http://a11yproject.com/posts/skip-nav-links/)). Using the `.sr-only` class will visually hide the skip link, and the <code>.sr-only-focusable</code> class will ensure that the link becomes visible once focused (for sighted keyboard users).
|
||||
Because Bootstrap's components are purposely designed to be fairly generic, authors may need to include further <abbr title="Accessible Rich Internet Applications">ARIA</abbr> roles and attributes, as well as JavaScript behavior, to more accurately convey the precise nature and functionality of their component. This is usually noted in the documentation.
|
||||
|
||||
{% callout danger %}
|
||||
Due to long-standing shortcomings/bugs in Internet Explorer (see this article on [in-page links and focus order](http://accessibleculture.org/articles/2010/05/in-page-links/)), you will need to make sure that the target of your skip link is at least programmatically focusable by adding `tabindex="-1"`.
|
||||
### Color contrast
|
||||
|
||||
In addition, you may want to explicitly suppress a visible focus indication on the target (particularly as Chrome currently also sets focus on elements with `tabindex="-1"` when they are clicked with the mouse) with `#content:focus { outline: none; }`.
|
||||
Most colors that currently make up Bootstrap's default palette—used throughout the framework for things such as button variations, alert variations, form validation indicators—lead to *insufficient* color contrast (below the recommended [WCAG 2.0 color contrast ratio of 4.5:1](https://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-contrast.html)) when used against a light background. Authors will need to manually modify/extend these default colors to ensure adequate color contrast ratios.
|
||||
|
||||
Note that this bug will also affect any other in-page links your site may be using, rendering them useless for keyboard users. You may consider adding a similar stop-gap fix to all other named anchors / fragment identifiers that act as link targets.
|
||||
{% endcallout %}
|
||||
### Visually hidden content
|
||||
|
||||
Content which should be visually hidden, but remain accessible to assistive technologies such as screen readers, can be styled using the `.sr-only` class. This can be useful in situations where additional visual information or cues (such as meaning denoted through the use of color) need to also be conveyed to non-visual users.
|
||||
|
||||
{% highlight html %}
|
||||
<body>
|
||||
<a href="#content" class="sr-only sr-only-focusable">Skip to main content</a>
|
||||
...
|
||||
<div class="container" id="content" tabindex="-1">
|
||||
<!-- The main page content -->
|
||||
</div>
|
||||
</body>
|
||||
<p class="text-danger">
|
||||
<span class=".sr-only">Danger: </span>
|
||||
This action is not reversible
|
||||
</p>
|
||||
{% endhighlight %}
|
||||
|
||||
## Nested headings
|
||||
For visually hidden interactive controls, such as traditional "skip" links, `.sr-only` can be combined with the `.sr-only-focusable` class. This will ensure that the control becomes visible once focused (for sighted keyboard users).
|
||||
|
||||
When nesting headings (`<h1>` - `<h6>`), your primary document header should be an `<h1>`. Subsequent headings should make logical use of `<h2>` - `<h6>` such that screen readers can construct a table of contents for your pages.
|
||||
|
||||
Learn more at [HTML CodeSniffer](https://squizlabs.github.io/HTML_CodeSniffer/Standards/Section508/) and [Penn State's Accessibility](http://accessibility.psu.edu/headings/).
|
||||
{% highlight html %}
|
||||
<a class="sr-only sr-only-focusable" href="#content">Skip to main content</a>
|
||||
{% endhighlight %}
|
||||
|
||||
## Additional resources
|
||||
|
||||
- ["HTML Codesniffer" bookmarklet for identifying accessibility issues](https://github.com/squizlabs/HTML_CodeSniffer)
|
||||
- [Web Content Accessibility Guidelines (WCAG) 2.0](https://www.w3.org/TR/WCAG20/)
|
||||
- [The A11Y Project](http://a11yproject.com/)
|
||||
- [MDN accessibility documentation](https://developer.mozilla.org/en-US/docs/Web/Accessibility)
|
||||
- [Tenon.io Accessibility Checker](https://tenon.io/)
|
||||
- [Colour Contrast Analyser (CCA)](https://www.paciellogroup.com/resources/contrastanalyser/)
|
||||
- ["HTML Codesniffer" bookmarklet for identifying accessibility issues](https://github.com/squizlabs/HTML_CodeSniffer)
|
||||
|
@ -5,7 +5,7 @@ description: Details on how to use Bootstrap's included build tools to compile s
|
||||
group: getting-started
|
||||
---
|
||||
|
||||
Bootstrap uses [Grunt](http://gruntjs.com) for its CSS and JavaScript build system and Jekyll for the written documentation. Our Gruntfile includes convenient methods for working with the framework, including compiling code, running tests, and more.
|
||||
Bootstrap uses [NPM scripts](https://docs.npmjs.com/misc/scripts) for its build system. Our [package.json](https://github.com/twbs/bootstrap/blob/master/package.json) includes convenient methods for working with the framework, including compiling code, running tests, and more.
|
||||
|
||||
## Contents
|
||||
|
||||
@ -14,49 +14,46 @@ Bootstrap uses [Grunt](http://gruntjs.com) for its CSS and JavaScript build syst
|
||||
|
||||
## Tooling setup
|
||||
|
||||
To use our Gruntfile and run our documentation locally, you'll need a copy of Bootstrap's source files, Node, and Grunt. Follow these steps and you should be ready to rock:
|
||||
To use our build system and run our documentation locally, you'll need a copy of Bootstrap's source files and Node. Follow these steps and you should be ready to rock:
|
||||
|
||||
1. [Download and install Node](https://nodejs.org/download/), which we use to manage our dependencies.
|
||||
2. Install the Grunt command line tools, `grunt-cli`, with `npm install -g grunt-cli`.
|
||||
3. Navigate to the root `/bootstrap` directory and run `npm install` to install our local dependencies listed in [package.json](https://github.com/twbs/bootstrap/blob/master/package.json).
|
||||
2. Navigate to the root `/bootstrap` directory and run `npm install` to install our local dependencies listed in [package.json](https://github.com/twbs/bootstrap/blob/master/package.json).
|
||||
4. [Install Ruby][install-ruby], install [Bundler][gembundler] with `gem install bundler`, and finally run `bundle install`. This will install all Ruby dependencies, such as Jekyll and plugins.
|
||||
- **Windows users:** Read [this unofficial guide](http://jekyll-windows.juthilo.com/) to get Jekyll up and running without problems.
|
||||
|
||||
When completed, you'll be able to run the various Grunt commands provided from the command line.
|
||||
When completed, you'll be able to run the various commands provided from the command line.
|
||||
|
||||
[install-ruby]: https://www.ruby-lang.org/en/documentation/installation/
|
||||
[gembundler]: https://bundler.io/
|
||||
|
||||
## Using Grunt
|
||||
## Using NPM scripts
|
||||
|
||||
Our Gruntfile includes the following commands and tasks:
|
||||
Our [package.json](https://github.com/twbs/bootstrap/blob/master/package.json) includes the following commands and tasks:
|
||||
|
||||
| Task | Description |
|
||||
| --- | --- |
|
||||
| `grunt` | Run `grunt` to run tests locally and compile the CSS and JavaScript into `/dist`. **Uses [Sass](http://sass-lang.com/), [Autoprefixer][autoprefixer], and [UglifyJS](http://lisperator.net/uglifyjs/).** |
|
||||
| `grunt dist` | `grunt dist` creates the `/dist` directory with compiled files. **Uses [Sass](http://sass-lang.com/), [Autoprefixer][autoprefixer], and [UglifyJS](http://lisperator.net/uglifyjs/).** |
|
||||
| `grunt test` | Runs [scss-lint](https://github.com/brigade/scss-lint), [ESLint](http://eslint.org/) and [QUnit](https://qunitjs.com/) tests headlessly in [PhantomJS](http://phantomjs.org/) (used for CI). |
|
||||
| `grunt docs` | Builds and tests CSS, JavaScript, and other assets which are used when running the documentation locally via `jekyll serve`. |
|
||||
| `grunt watch` | This is a convenience method for watching just Sass files and automatically building them whenever you save. |
|
||||
| `npm test` | Run `npm test` to run tests locally and compile the CSS and JavaScript into `/dist`. **Uses [Sass](http://sass-lang.com/), [Autoprefixer][autoprefixer], and [UglifyJS](http://lisperator.net/uglifyjs/).** |
|
||||
| `npm run dist` | `npm run dist` creates the `/dist` directory with compiled files. **Uses [Sass](http://sass-lang.com/), [Autoprefixer][autoprefixer], and [UglifyJS](http://lisperator.net/uglifyjs/).** |
|
||||
| `npm run docs` | Builds and tests CSS, JavaScript, and other assets which are used when running the documentation locally via `npm run docs-serve`. |
|
||||
|
||||
## Autoprefixer
|
||||
|
||||
Bootstrap uses [Autoprefixer][autoprefixer] (included in our Gruntfile and build process) to automatically add vendor prefixes to some CSS properties at build time. Doing so saves us time and code by allowing us to write key parts of our CSS a single time while eliminating the need for vendor mixins like those found in v3.
|
||||
Bootstrap uses [Autoprefixer][autoprefixer] (included in our build process) to automatically add vendor prefixes to some CSS properties at build time. Doing so saves us time and code by allowing us to write key parts of our CSS a single time while eliminating the need for vendor mixins like those found in v3.
|
||||
|
||||
We maintain the list of browsers supported through Autoprefixer in a separate file within our GitHub repository. See [`/grunt/postcss.js`](https://github.com/twbs/bootstrap/blob/v4-dev/grunt/postcss.js) for details.
|
||||
We maintain the list of browsers supported through Autoprefixer in a separate file within our GitHub repository. See [`/build/postcss.js`](https://github.com/twbs/bootstrap/blob/v4-dev/build/postcss.js) for details.
|
||||
|
||||
## Local documentation
|
||||
|
||||
Running our documentation locally requires the use of Jekyll, a decently flexible static site generator that provides us: basic includes, Markdown-based files, templates, and more. Here's how to get it started:
|
||||
|
||||
1. Run through the [tooling setup](#tooling-setup) above to install Jekyll (the site builder) and other Ruby dependencies with `bundle install`.
|
||||
2. From the root `/bootstrap` directory, run `bundle exec jekyll serve` in the command line.
|
||||
2. From the root `/bootstrap` directory, run `npm run docs-serve` in the command line.
|
||||
3. Open <http://localhost:9001> in your browser, and voilà.
|
||||
|
||||
Learn more about using Jekyll by reading its [documentation](https://jekyllrb.com/docs/home/).
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
Should you encounter problems with installing dependencies or running Grunt commands, uninstall all previous dependency versions (global and local). Then, rerun `npm install`.
|
||||
Should you encounter problems with installing dependencies, uninstall all previous dependency versions (global and local). Then, rerun `npm install`.
|
||||
|
||||
[autoprefixer]: https://github.com/postcss/autoprefixer
|
||||
|
@ -5,7 +5,7 @@ description: Customize Bootstrap with Sass variables, easily toggling global pre
|
||||
group: getting-started
|
||||
---
|
||||
|
||||
Customize Bootstrap 4 with our built-in custom variables file and easily toggle global CSS preferences with new `$enable-*` Sass variables. Override a variable's value and recompile with the included Gruntfile as needed.
|
||||
Customize Bootstrap 4 with our built-in custom variables file and easily toggle global CSS preferences with new `$enable-*` Sass variables. Override a variable's value and recompile with `npm run test` as needed.
|
||||
|
||||
## Customizing variables
|
||||
|
||||
|
@ -22,7 +22,7 @@ layout: home
|
||||
<div class="row">
|
||||
<div class="col-sm-6 mb-3">
|
||||
<h4>Managed dependencies</h4>
|
||||
<p>Include Bootstrap's source Sass and JavaScript files via Bower, Composer, Meteor, or npm. Package managed installs don't include documentation, but do include our Gruntfile and readme.</p>
|
||||
<p>Include Bootstrap's source Sass and JavaScript files via Bower, Composer, Meteor, or npm. Package managed installs don't include documentation, but do include our build system and readme.</p>
|
||||
<p>
|
||||
<a class="btn btn-bs" href="{{ site.baseurl }}/getting-started/download/#package-managers">View install methods</a>
|
||||
</p>
|
||||
|
@ -1,27 +0,0 @@
|
||||
#!/bin/bash
|
||||
# Upload built docs to preview.twbsapps.com
|
||||
|
||||
if [ "$TRAVIS_REPO_SLUG" != twbs-savage/bootstrap ]; then exit 0; fi
|
||||
|
||||
# Add build metadata to version
|
||||
sed -i "/^current_version:/ s/\$/+pr.${TRAVIS_COMMIT}/" _config.yml
|
||||
# Fix URLs since the site's root is now a subdirectory
|
||||
bundle exec jekyll build --destination "$TRAVIS_COMMIT" --baseurl "/c/${TRAVIS_COMMIT}"
|
||||
|
||||
# Install gcloud & gsutil
|
||||
GSUTIL_VERSION=$(gsutil version | cut -d ' ' -f 3)
|
||||
if [ ! -d "${HOME}/google-cloud-sdk" ] || [ "${GSUTIL_VERSION}" != '4.19' ]; then
|
||||
rm -rf "${HOME}/google-cloud-sdk" # Kill Travis' outdated non-updateable preinstalled version
|
||||
echo 'Installing google-cloud-sdk...'
|
||||
export CLOUDSDK_CORE_DISABLE_PROMPTS=1
|
||||
time (curl -S -s https://sdk.cloud.google.com | bash &>/dev/null)
|
||||
echo 'Done.'
|
||||
fi
|
||||
source "${HOME}/google-cloud-sdk/path.bash.inc"
|
||||
|
||||
openssl aes-256-cbc -K $encrypted_2b749c8e6327_key -iv $encrypted_2b749c8e6327_iv -in grunt/gcp-key.json.enc -out grunt/gcp-key.json -d
|
||||
gcloud auth activate-service-account "$GCP_SERVICE_ACCOUNT" --key-file grunt/gcp-key.json &> /dev/null || (echo 'GCP login failed!'; exit 1)
|
||||
|
||||
echo "Uploading to http://preview.twbsapps.com/c/${TRAVIS_COMMIT} ..."
|
||||
time gsutil -q -m cp -z html,css,js,svg -r "./${TRAVIS_COMMIT}" gs://preview.twbsapps.com/c/
|
||||
echo 'Done.'
|
@ -18,7 +18,6 @@
|
||||
"no-extra-parens": "error",
|
||||
"no-prototype-builtins": "off",
|
||||
"no-template-curly-in-string": "error",
|
||||
"no-unsafe-negation": "error",
|
||||
"valid-jsdoc": "error",
|
||||
|
||||
// Best Practices
|
||||
@ -45,7 +44,6 @@
|
||||
"no-extra-bind": "error",
|
||||
"no-extra-label": "error",
|
||||
"no-floating-decimal": "error",
|
||||
"no-global-assign": "error",
|
||||
"no-implicit-coercion": "error",
|
||||
"no-implicit-globals": "error",
|
||||
"no-implied-eval": "error",
|
||||
@ -70,9 +68,8 @@
|
||||
],
|
||||
"no-multi-str": "error",
|
||||
"no-new": "error",
|
||||
"no-new-func": "off",
|
||||
"no-new-func": "error",
|
||||
"no-new-wrappers": "error",
|
||||
"no-new": "error",
|
||||
"no-octal-escape": "error",
|
||||
"no-param-reassign": "off",
|
||||
"no-proto": "error",
|
||||
@ -94,6 +91,7 @@
|
||||
"no-with": "error",
|
||||
"prefer-promise-reject-errors": "error",
|
||||
"radix": "error",
|
||||
"require-await": "error",
|
||||
"vars-on-top": "error",
|
||||
"wrap-iife": "error",
|
||||
"yoda": "error",
|
||||
@ -128,8 +126,8 @@
|
||||
"array-bracket-spacing": "error",
|
||||
"block-spacing": "error",
|
||||
"brace-style": "error",
|
||||
"capitalized-comments": "off",
|
||||
"camelcase": "error",
|
||||
"capitalized-comments": "off",
|
||||
"comma-dangle": "error",
|
||||
"comma-spacing": "error",
|
||||
"comma-style": "error",
|
||||
@ -227,6 +225,7 @@
|
||||
"object-shorthand": "error",
|
||||
"prefer-arrow-callback": "error",
|
||||
"prefer-const": "error",
|
||||
"prefer-destructuring": "off",
|
||||
"prefer-numeric-literals": "error",
|
||||
"prefer-rest-params": "error",
|
||||
"prefer-spread": "error",
|
||||
|
6
js/dist/button.js
vendored
6
js/dist/button.js
vendored
@ -62,6 +62,7 @@ var Button = function ($) {
|
||||
|
||||
Button.prototype.toggle = function toggle() {
|
||||
var triggerChangeEvent = true;
|
||||
var addAriaPressed = true;
|
||||
var rootElement = $(this._element).closest(Selector.DATA_TOGGLE)[0];
|
||||
|
||||
if (rootElement) {
|
||||
@ -86,10 +87,13 @@ var Button = function ($) {
|
||||
}
|
||||
|
||||
input.focus();
|
||||
addAriaPressed = false;
|
||||
}
|
||||
}
|
||||
|
||||
this._element.setAttribute('aria-pressed', !$(this._element).hasClass(ClassName.ACTIVE));
|
||||
if (addAriaPressed) {
|
||||
this._element.setAttribute('aria-pressed', !$(this._element).hasClass(ClassName.ACTIVE));
|
||||
}
|
||||
|
||||
if (triggerChangeEvent) {
|
||||
$(this._element).toggleClass(ClassName.ACTIVE);
|
||||
|
2
js/dist/button.js.map
vendored
2
js/dist/button.js.map
vendored
File diff suppressed because one or more lines are too long
4
js/dist/collapse.js
vendored
4
js/dist/collapse.js
vendored
@ -150,7 +150,6 @@ var Collapse = function ($) {
|
||||
$(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);
|
||||
|
||||
this._element.style[dimension] = 0;
|
||||
this._element.setAttribute('aria-expanded', true);
|
||||
|
||||
if (this._triggerArray.length) {
|
||||
$(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);
|
||||
@ -202,8 +201,6 @@ var Collapse = function ($) {
|
||||
|
||||
$(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);
|
||||
|
||||
this._element.setAttribute('aria-expanded', false);
|
||||
|
||||
if (this._triggerArray.length) {
|
||||
$(this._triggerArray).addClass(ClassName.COLLAPSED).attr('aria-expanded', false);
|
||||
}
|
||||
@ -269,7 +266,6 @@ var Collapse = function ($) {
|
||||
Collapse.prototype._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
|
||||
if (element) {
|
||||
var isOpen = $(element).hasClass(ClassName.SHOW);
|
||||
element.setAttribute('aria-expanded', isOpen);
|
||||
|
||||
if (triggerArray.length) {
|
||||
$(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
|
||||
|
2
js/dist/collapse.js.map
vendored
2
js/dist/collapse.js.map
vendored
File diff suppressed because one or more lines are too long
44
js/dist/dropdown.js
vendored
44
js/dist/dropdown.js
vendored
@ -25,10 +25,11 @@ var Dropdown = function ($) {
|
||||
var JQUERY_NO_CONFLICT = $.fn[NAME];
|
||||
var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
|
||||
var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key
|
||||
var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key
|
||||
var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
|
||||
var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
|
||||
var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
|
||||
var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + '|' + ARROW_DOWN_KEYCODE + '|' + ESCAPE_KEYCODE + '|' + SPACE_KEYCODE);
|
||||
var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + '|' + ARROW_DOWN_KEYCODE + '|' + ESCAPE_KEYCODE);
|
||||
|
||||
var Event = {
|
||||
HIDE: 'hide' + EVENT_KEY,
|
||||
@ -37,24 +38,21 @@ var Dropdown = function ($) {
|
||||
SHOWN: 'shown' + EVENT_KEY,
|
||||
CLICK: 'click' + EVENT_KEY,
|
||||
CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY,
|
||||
FOCUSIN_DATA_API: 'focusin' + EVENT_KEY + DATA_API_KEY,
|
||||
KEYDOWN_DATA_API: 'keydown' + EVENT_KEY + DATA_API_KEY
|
||||
KEYDOWN_DATA_API: 'keydown' + EVENT_KEY + DATA_API_KEY,
|
||||
KEYUP_DATA_API: 'keyup' + EVENT_KEY + DATA_API_KEY
|
||||
};
|
||||
|
||||
var ClassName = {
|
||||
BACKDROP: 'dropdown-backdrop',
|
||||
DISABLED: 'disabled',
|
||||
SHOW: 'show'
|
||||
};
|
||||
|
||||
var Selector = {
|
||||
BACKDROP: '.dropdown-backdrop',
|
||||
DATA_TOGGLE: '[data-toggle="dropdown"]',
|
||||
FORM_CHILD: '.dropdown form',
|
||||
ROLE_MENU: '[role="menu"]',
|
||||
ROLE_LISTBOX: '[role="listbox"]',
|
||||
MENU: '.dropdown-menu',
|
||||
NAVBAR_NAV: '.navbar-nav',
|
||||
VISIBLE_ITEMS: '[role="menu"] li:not(.disabled) a, ' + '[role="listbox"] li:not(.disabled) a'
|
||||
VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled)'
|
||||
};
|
||||
|
||||
/**
|
||||
@ -101,14 +99,12 @@ var Dropdown = function ($) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// set the backdrop only if the dropdown menu will be opened
|
||||
// if this is a touch-enabled device we add extra
|
||||
// empty mouseover listeners to the body's immediate children;
|
||||
// only needed because of broken event delegation on iOS
|
||||
// https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
|
||||
if ('ontouchstart' in document.documentElement && !$(parent).closest(Selector.NAVBAR_NAV).length) {
|
||||
|
||||
// if mobile we use a backdrop because click events don't delegate
|
||||
var dropdown = document.createElement('div');
|
||||
dropdown.className = ClassName.BACKDROP;
|
||||
$(dropdown).insertBefore(this);
|
||||
$(dropdown).on('click', Dropdown._clearMenus);
|
||||
$('body').children().on('mouseover', '*', $.noop);
|
||||
}
|
||||
|
||||
this.focus();
|
||||
@ -153,7 +149,7 @@ var Dropdown = function ($) {
|
||||
};
|
||||
|
||||
Dropdown._clearMenus = function _clearMenus(event) {
|
||||
if (event && event.which === RIGHT_MOUSE_BUTTON_WHICH) {
|
||||
if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -169,7 +165,7 @@ var Dropdown = function ($) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'focusin') && $.contains(parent, event.target)) {
|
||||
if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $.contains(parent, event.target)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -179,10 +175,10 @@ var Dropdown = function ($) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// remove backdrop only if the dropdown menu will be hidden
|
||||
var backdrop = $(parent).find(Selector.BACKDROP)[0];
|
||||
if (backdrop) {
|
||||
backdrop.parentNode.removeChild(backdrop);
|
||||
// if this is a touch-enabled device we remove the extra
|
||||
// empty mouseover listeners we added for iOS support
|
||||
if ('ontouchstart' in document.documentElement) {
|
||||
$('body').children().off('mouseover', '*', $.noop);
|
||||
}
|
||||
|
||||
toggles[i].setAttribute('aria-expanded', 'false');
|
||||
@ -203,7 +199,7 @@ var Dropdown = function ($) {
|
||||
};
|
||||
|
||||
Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
|
||||
if (!REGEXP_KEYDOWN.test(event.which) || /input|textarea/i.test(event.target.tagName)) {
|
||||
if (!REGEXP_KEYDOWN.test(event.which) || /button/i.test(event.target.tagName) && event.which === SPACE_KEYCODE || /input|textarea/i.test(event.target.tagName)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -217,7 +213,7 @@ var Dropdown = function ($) {
|
||||
var parent = Dropdown._getParentFromElement(this);
|
||||
var isActive = $(parent).hasClass(ClassName.SHOW);
|
||||
|
||||
if (!isActive && event.which !== ESCAPE_KEYCODE || isActive && event.which === ESCAPE_KEYCODE) {
|
||||
if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
|
||||
|
||||
if (event.which === ESCAPE_KEYCODE) {
|
||||
var toggle = $(parent).find(Selector.DATA_TOGGLE)[0];
|
||||
@ -269,7 +265,7 @@ var Dropdown = function ($) {
|
||||
* ------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
$(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.ROLE_MENU, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.ROLE_LISTBOX, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + ' ' + Event.FOCUSIN_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, Dropdown.prototype.toggle).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {
|
||||
$(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + ' ' + Event.KEYUP_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, Dropdown.prototype.toggle).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {
|
||||
e.stopPropagation();
|
||||
});
|
||||
|
||||
|
2
js/dist/dropdown.js.map
vendored
2
js/dist/dropdown.js.map
vendored
File diff suppressed because one or more lines are too long
1
js/dist/modal.js
vendored
1
js/dist/modal.js
vendored
@ -284,6 +284,7 @@ var Modal = function ($) {
|
||||
if (this._isShown && this._config.keyboard) {
|
||||
$(this._element).on(Event.KEYDOWN_DISMISS, function (event) {
|
||||
if (event.which === ESCAPE_KEYCODE) {
|
||||
event.preventDefault();
|
||||
_this5.hide();
|
||||
}
|
||||
});
|
||||
|
2
js/dist/modal.js.map
vendored
2
js/dist/modal.js.map
vendored
File diff suppressed because one or more lines are too long
@ -66,6 +66,7 @@ const Button = (($) => {
|
||||
|
||||
toggle() {
|
||||
let triggerChangeEvent = true
|
||||
let addAriaPressed = true
|
||||
const rootElement = $(this._element).closest(
|
||||
Selector.DATA_TOGGLE
|
||||
)[0]
|
||||
@ -94,12 +95,15 @@ const Button = (($) => {
|
||||
}
|
||||
|
||||
input.focus()
|
||||
addAriaPressed = false
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
this._element.setAttribute('aria-pressed',
|
||||
!$(this._element).hasClass(ClassName.ACTIVE))
|
||||
if (addAriaPressed) {
|
||||
this._element.setAttribute('aria-pressed',
|
||||
!$(this._element).hasClass(ClassName.ACTIVE))
|
||||
}
|
||||
|
||||
if (triggerChangeEvent) {
|
||||
$(this._element).toggleClass(ClassName.ACTIVE)
|
||||
|
@ -17,15 +17,16 @@ const Carousel = (($) => {
|
||||
* ------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
const NAME = 'carousel'
|
||||
const VERSION = '4.0.0-alpha.6'
|
||||
const DATA_KEY = 'bs.carousel'
|
||||
const EVENT_KEY = `.${DATA_KEY}`
|
||||
const DATA_API_KEY = '.data-api'
|
||||
const JQUERY_NO_CONFLICT = $.fn[NAME]
|
||||
const TRANSITION_DURATION = 600
|
||||
const ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key
|
||||
const ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key
|
||||
const NAME = 'carousel'
|
||||
const VERSION = '4.0.0-alpha.6'
|
||||
const DATA_KEY = 'bs.carousel'
|
||||
const EVENT_KEY = `.${DATA_KEY}`
|
||||
const DATA_API_KEY = '.data-api'
|
||||
const JQUERY_NO_CONFLICT = $.fn[NAME]
|
||||
const TRANSITION_DURATION = 600
|
||||
const ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key
|
||||
const ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key
|
||||
const TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch
|
||||
|
||||
const Default = {
|
||||
interval : 5000,
|
||||
@ -56,6 +57,7 @@ const Carousel = (($) => {
|
||||
KEYDOWN : `keydown${EVENT_KEY}`,
|
||||
MOUSEENTER : `mouseenter${EVENT_KEY}`,
|
||||
MOUSELEAVE : `mouseleave${EVENT_KEY}`,
|
||||
TOUCHEND : `touchend${EVENT_KEY}`,
|
||||
LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`,
|
||||
CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`
|
||||
}
|
||||
@ -98,6 +100,8 @@ const Carousel = (($) => {
|
||||
this._isPaused = false
|
||||
this._isSliding = false
|
||||
|
||||
this.touchTimeout = null
|
||||
|
||||
this._config = this._getConfig(config)
|
||||
this._element = $(element)[0]
|
||||
this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0]
|
||||
@ -227,11 +231,26 @@ const Carousel = (($) => {
|
||||
.on(Event.KEYDOWN, (event) => this._keydown(event))
|
||||
}
|
||||
|
||||
if (this._config.pause === 'hover' &&
|
||||
!('ontouchstart' in document.documentElement)) {
|
||||
if (this._config.pause === 'hover') {
|
||||
$(this._element)
|
||||
.on(Event.MOUSEENTER, (event) => this.pause(event))
|
||||
.on(Event.MOUSELEAVE, (event) => this.cycle(event))
|
||||
if ('ontouchstart' in document.documentElement) {
|
||||
// if it's a touch-enabled device, mouseenter/leave are fired as
|
||||
// part of the mouse compatibility events on first tap - the carousel
|
||||
// would stop cycling until user tapped out of it;
|
||||
// here, we listen for touchend, explicitly pause the carousel
|
||||
// (as if it's the second time we tap on it, mouseenter compat event
|
||||
// is NOT fired) and after a timeout (to allow for mouse compatibility
|
||||
// events to fire) we explicitly restart cycling
|
||||
$(this._element).on(Event.TOUCHEND, () => {
|
||||
this.pause()
|
||||
if (this.touchTimeout) {
|
||||
clearTimeout(this.touchTimeout)
|
||||
}
|
||||
this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -162,7 +162,6 @@ const Collapse = (($) => {
|
||||
.addClass(ClassName.COLLAPSING)
|
||||
|
||||
this._element.style[dimension] = 0
|
||||
this._element.setAttribute('aria-expanded', true)
|
||||
|
||||
if (this._triggerArray.length) {
|
||||
$(this._triggerArray)
|
||||
@ -223,8 +222,6 @@ const Collapse = (($) => {
|
||||
.removeClass(ClassName.COLLAPSE)
|
||||
.removeClass(ClassName.SHOW)
|
||||
|
||||
this._element.setAttribute('aria-expanded', false)
|
||||
|
||||
if (this._triggerArray.length) {
|
||||
$(this._triggerArray)
|
||||
.addClass(ClassName.COLLAPSED)
|
||||
@ -300,7 +297,6 @@ const Collapse = (($) => {
|
||||
_addAriaAndCollapsedClass(element, triggerArray) {
|
||||
if (element) {
|
||||
const isOpen = $(element).hasClass(ClassName.SHOW)
|
||||
element.setAttribute('aria-expanded', isOpen)
|
||||
|
||||
if (triggerArray.length) {
|
||||
$(triggerArray)
|
||||
|
@ -25,10 +25,11 @@ const Dropdown = (($) => {
|
||||
const JQUERY_NO_CONFLICT = $.fn[NAME]
|
||||
const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key
|
||||
const SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key
|
||||
const TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key
|
||||
const ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key
|
||||
const ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key
|
||||
const RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)
|
||||
const REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}|${SPACE_KEYCODE}`)
|
||||
const REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)
|
||||
|
||||
const Event = {
|
||||
HIDE : `hide${EVENT_KEY}`,
|
||||
@ -37,25 +38,21 @@ const Dropdown = (($) => {
|
||||
SHOWN : `shown${EVENT_KEY}`,
|
||||
CLICK : `click${EVENT_KEY}`,
|
||||
CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,
|
||||
FOCUSIN_DATA_API : `focusin${EVENT_KEY}${DATA_API_KEY}`,
|
||||
KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`
|
||||
KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`,
|
||||
KEYUP_DATA_API : `keyup${EVENT_KEY}${DATA_API_KEY}`
|
||||
}
|
||||
|
||||
const ClassName = {
|
||||
BACKDROP : 'dropdown-backdrop',
|
||||
DISABLED : 'disabled',
|
||||
SHOW : 'show'
|
||||
}
|
||||
|
||||
const Selector = {
|
||||
BACKDROP : '.dropdown-backdrop',
|
||||
DATA_TOGGLE : '[data-toggle="dropdown"]',
|
||||
FORM_CHILD : '.dropdown form',
|
||||
ROLE_MENU : '[role="menu"]',
|
||||
ROLE_LISTBOX : '[role="listbox"]',
|
||||
MENU : '.dropdown-menu',
|
||||
NAVBAR_NAV : '.navbar-nav',
|
||||
VISIBLE_ITEMS : '[role="menu"] li:not(.disabled) a, '
|
||||
+ '[role="listbox"] li:not(.disabled) a'
|
||||
VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled)'
|
||||
}
|
||||
|
||||
|
||||
@ -108,15 +105,13 @@ const Dropdown = (($) => {
|
||||
return false
|
||||
}
|
||||
|
||||
// set the backdrop only if the dropdown menu will be opened
|
||||
// if this is a touch-enabled device we add extra
|
||||
// empty mouseover listeners to the body's immediate children;
|
||||
// only needed because of broken event delegation on iOS
|
||||
// https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
|
||||
if ('ontouchstart' in document.documentElement &&
|
||||
!$(parent).closest(Selector.NAVBAR_NAV).length) {
|
||||
|
||||
// if mobile we use a backdrop because click events don't delegate
|
||||
const dropdown = document.createElement('div')
|
||||
dropdown.className = ClassName.BACKDROP
|
||||
$(dropdown).insertBefore(this)
|
||||
$(dropdown).on('click', Dropdown._clearMenus)
|
||||
$('body').children().on('mouseover', null, $.noop)
|
||||
}
|
||||
|
||||
this.focus()
|
||||
@ -163,7 +158,8 @@ const Dropdown = (($) => {
|
||||
}
|
||||
|
||||
static _clearMenus(event) {
|
||||
if (event && event.which === RIGHT_MOUSE_BUTTON_WHICH) {
|
||||
if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||
|
||||
event.type === 'keyup' && event.which !== TAB_KEYCODE)) {
|
||||
return
|
||||
}
|
||||
|
||||
@ -180,7 +176,7 @@ const Dropdown = (($) => {
|
||||
}
|
||||
|
||||
if (event && (event.type === 'click' &&
|
||||
/input|textarea/i.test(event.target.tagName) || event.type === 'focusin')
|
||||
/input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE)
|
||||
&& $.contains(parent, event.target)) {
|
||||
continue
|
||||
}
|
||||
@ -191,10 +187,10 @@ const Dropdown = (($) => {
|
||||
continue
|
||||
}
|
||||
|
||||
// remove backdrop only if the dropdown menu will be hidden
|
||||
const backdrop = $(parent).find(Selector.BACKDROP)[0]
|
||||
if (backdrop) {
|
||||
backdrop.parentNode.removeChild(backdrop)
|
||||
// if this is a touch-enabled device we remove the extra
|
||||
// empty mouseover listeners we added for iOS support
|
||||
if ('ontouchstart' in document.documentElement) {
|
||||
$('body').children().off('mouseover', null, $.noop)
|
||||
}
|
||||
|
||||
toggles[i].setAttribute('aria-expanded', 'false')
|
||||
@ -217,7 +213,7 @@ const Dropdown = (($) => {
|
||||
}
|
||||
|
||||
static _dataApiKeydownHandler(event) {
|
||||
if (!REGEXP_KEYDOWN.test(event.which) ||
|
||||
if (!REGEXP_KEYDOWN.test(event.which) || /button/i.test(event.target.tagName) && event.which === SPACE_KEYCODE ||
|
||||
/input|textarea/i.test(event.target.tagName)) {
|
||||
return
|
||||
}
|
||||
@ -232,8 +228,8 @@ const Dropdown = (($) => {
|
||||
const parent = Dropdown._getParentFromElement(this)
|
||||
const isActive = $(parent).hasClass(ClassName.SHOW)
|
||||
|
||||
if (!isActive && event.which !== ESCAPE_KEYCODE ||
|
||||
isActive && event.which === ESCAPE_KEYCODE) {
|
||||
if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) ||
|
||||
isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
|
||||
|
||||
if (event.which === ESCAPE_KEYCODE) {
|
||||
const toggle = $(parent).find(Selector.DATA_TOGGLE)[0]
|
||||
@ -278,9 +274,8 @@ const Dropdown = (($) => {
|
||||
|
||||
$(document)
|
||||
.on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)
|
||||
.on(Event.KEYDOWN_DATA_API, Selector.ROLE_MENU, Dropdown._dataApiKeydownHandler)
|
||||
.on(Event.KEYDOWN_DATA_API, Selector.ROLE_LISTBOX, Dropdown._dataApiKeydownHandler)
|
||||
.on(`${Event.CLICK_DATA_API} ${Event.FOCUSIN_DATA_API}`, Dropdown._clearMenus)
|
||||
.on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)
|
||||
.on(`${Event.CLICK_DATA_API} ${Event.KEYUP_DATA_API}`, Dropdown._clearMenus)
|
||||
.on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, Dropdown.prototype.toggle)
|
||||
.on(Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => {
|
||||
e.stopPropagation()
|
||||
|
@ -289,6 +289,7 @@ const Modal = (($) => {
|
||||
if (this._isShown && this._config.keyboard) {
|
||||
$(this._element).on(Event.KEYDOWN_DISMISS, (event) => {
|
||||
if (event.which === ESCAPE_KEYCODE) {
|
||||
event.preventDefault()
|
||||
this.hide()
|
||||
}
|
||||
})
|
||||
|
@ -304,6 +304,14 @@ const Tooltip = (($) => {
|
||||
|
||||
$(tip).addClass(ClassName.SHOW)
|
||||
|
||||
// if this is a touch-enabled device we add extra
|
||||
// empty mouseover listeners to the body's immediate children;
|
||||
// only needed because of broken event delegation on iOS
|
||||
// https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
|
||||
if ('ontouchstart' in document.documentElement) {
|
||||
$('body').children().on('mouseover', null, $.noop)
|
||||
}
|
||||
|
||||
const complete = () => {
|
||||
const prevHoverState = this._hoverState
|
||||
this._hoverState = null
|
||||
@ -352,6 +360,12 @@ const Tooltip = (($) => {
|
||||
|
||||
$(tip).removeClass(ClassName.SHOW)
|
||||
|
||||
// if this is a touch-enabled device we remove the extra
|
||||
// empty mouseover listeners we added for iOS support
|
||||
if ('ontouchstart' in document.documentElement) {
|
||||
$('body').children().off('mouseover', null, $.noop)
|
||||
}
|
||||
|
||||
this._activeTrigger[Trigger.CLICK] = false
|
||||
this._activeTrigger[Trigger.FOCUS] = false
|
||||
this._activeTrigger[Trigger.HOVER] = false
|
||||
@ -368,6 +382,7 @@ const Tooltip = (($) => {
|
||||
}
|
||||
|
||||
this._hoverState = ''
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
"env": {
|
||||
"qunit": true,
|
||||
"es6": false
|
||||
"es6": false,
|
||||
"qunit": true
|
||||
},
|
||||
"globals": {
|
||||
"Util": false
|
||||
|
@ -6,7 +6,7 @@ Bootstrap uses [QUnit](https://qunitjs.com/), a powerful, easy-to-use JavaScript
|
||||
* `vendor/` contains third-party testing-related code (QUnit and jQuery).
|
||||
* `visual/` contains "visual" tests which are run interactively in real browsers and require manual verification by humans.
|
||||
|
||||
To run the unit test suite via [PhantomJS](http://phantomjs.org/), run `grunt test-js`.
|
||||
To run the unit test suite via [PhantomJS](http://phantomjs.org/), run `npm run js-test`.
|
||||
|
||||
To run the unit test suite via a real web browser, open `index.html` in the browser.
|
||||
|
||||
@ -16,7 +16,7 @@ To run the unit test suite via a real web browser, open `index.html` in the brow
|
||||
1. Locate and open the file dedicated to the plugin which you need to add tests to (`unit/<plugin-name>.js`).
|
||||
2. Review the [QUnit API Documentation](https://api.qunitjs.com/) and use the existing tests as references for how to structure your new tests.
|
||||
3. Write the necessary unit test(s) for the new or revised functionality.
|
||||
4. Run `grunt test-js` to see the results of your newly-added test(s).
|
||||
4. Run `npm run js-test` to see the results of your newly-added test(s).
|
||||
|
||||
**Note:** Your new unit tests should fail before your changes are applied to the plugin, and should pass after your changes are applied to the plugin.
|
||||
|
||||
|
@ -138,4 +138,22 @@ $(function () {
|
||||
assert.ok($btn2.find('input').prop('checked'), 'btn2 is checked')
|
||||
})
|
||||
|
||||
QUnit.test('should not add aria-pressed on labels for radio/checkbox inputs in a data-toggle="buttons" group', function (assert) {
|
||||
assert.expect(2)
|
||||
var groupHTML = '<div class="btn-group" data-toggle="buttons">'
|
||||
+ '<label class="btn btn-primary"><input type="checkbox" autocomplete="off"> Checkbox</label>'
|
||||
+ '<label class="btn btn-primary"><input type="radio" name="options" autocomplete="off"> Radio</label>'
|
||||
+ '</div>'
|
||||
var $group = $(groupHTML).appendTo('#qunit-fixture')
|
||||
|
||||
var $btn1 = $group.children().eq(0)
|
||||
var $btn2 = $group.children().eq(1)
|
||||
|
||||
$btn1.find('input').trigger('click')
|
||||
assert.ok($btn1.is(':not([aria-pressed])'), 'label for nested checkbox input has not been given an aria-pressed attribute')
|
||||
|
||||
$btn2.find('input').trigger('click')
|
||||
assert.ok($btn2.is(':not([aria-pressed])'), 'label for nested radio input has not been given an aria-pressed attribute')
|
||||
})
|
||||
|
||||
})
|
||||
|
@ -654,29 +654,6 @@ $(function () {
|
||||
assert.strictEqual($template.find('.carousel-item')[0], $template.find('.active')[0], 'first item still active after left arrow press in <textarea>')
|
||||
})
|
||||
|
||||
QUnit.test('should only add mouseenter and mouseleave listeners when not on mobile', function (assert) {
|
||||
assert.expect(2)
|
||||
var isMobile = 'ontouchstart' in document.documentElement
|
||||
var templateHTML = '<div id="myCarousel" class="carousel" data-interval="false" data-pause="hover">'
|
||||
+ '<div class="carousel-inner">'
|
||||
+ '<div id="first" class="carousel-item active">'
|
||||
+ '<img alt="">'
|
||||
+ '</div>'
|
||||
+ '<div id="second" class="carousel-item">'
|
||||
+ '<img alt="">'
|
||||
+ '</div>'
|
||||
+ '<div id="third" class="carousel-item">'
|
||||
+ '<img alt="">'
|
||||
+ '</div>'
|
||||
+ '</div>'
|
||||
+ '</div>'
|
||||
var $template = $(templateHTML).bootstrapCarousel()
|
||||
|
||||
$.each(['mouseover', 'mouseout'], function (i, type) {
|
||||
assert.strictEqual(type in $._data($template[0], 'events'), !isMobile, 'does' + (isMobile ? ' not' : '') + ' listen for ' + type + ' events')
|
||||
})
|
||||
})
|
||||
|
||||
QUnit.test('should wrap around from end to start when wrap option is true', function (assert) {
|
||||
assert.expect(3)
|
||||
var carouselHTML = '<div id="carousel-example-generic" class="carousel slide" data-wrap="true">'
|
||||
|
@ -322,7 +322,7 @@ $(function () {
|
||||
$target3.trigger('click')
|
||||
})
|
||||
|
||||
QUnit.test('should set aria-expanded="true" on target when collapse is shown', function (assert) {
|
||||
QUnit.test('should set aria-expanded="true" on trigger/control when collapse is shown', function (assert) {
|
||||
assert.expect(1)
|
||||
var done = assert.async()
|
||||
|
||||
@ -338,7 +338,7 @@ $(function () {
|
||||
$target.trigger('click')
|
||||
})
|
||||
|
||||
QUnit.test('should set aria-expanded="false" on target when collapse is hidden', function (assert) {
|
||||
QUnit.test('should set aria-expanded="false" on trigger/control when collapse is hidden', function (assert) {
|
||||
assert.expect(1)
|
||||
var done = assert.async()
|
||||
|
||||
@ -364,8 +364,8 @@ $(function () {
|
||||
$('<div id="test1"/>')
|
||||
.appendTo('#qunit-fixture')
|
||||
.on('shown.bs.collapse', function () {
|
||||
assert.strictEqual($target.attr('aria-expanded'), 'true', 'aria-expanded on target is "true"')
|
||||
assert.strictEqual($alt.attr('aria-expanded'), 'true', 'aria-expanded on alt is "true"')
|
||||
assert.strictEqual($target.attr('aria-expanded'), 'true', 'aria-expanded on trigger/control is "true"')
|
||||
assert.strictEqual($alt.attr('aria-expanded'), 'true', 'aria-expanded on alternative trigger/control is "true"')
|
||||
done()
|
||||
})
|
||||
|
||||
@ -382,15 +382,15 @@ $(function () {
|
||||
$('<div id="test1" class="show"/>')
|
||||
.appendTo('#qunit-fixture')
|
||||
.on('hidden.bs.collapse', function () {
|
||||
assert.strictEqual($target.attr('aria-expanded'), 'false', 'aria-expanded on target is "false"')
|
||||
assert.strictEqual($alt.attr('aria-expanded'), 'false', 'aria-expanded on alt is "false"')
|
||||
assert.strictEqual($target.attr('aria-expanded'), 'false', 'aria-expanded on trigger/control is "false"')
|
||||
assert.strictEqual($alt.attr('aria-expanded'), 'false', 'aria-expanded on alternative trigger/control is "false"')
|
||||
done()
|
||||
})
|
||||
|
||||
$target.trigger('click')
|
||||
})
|
||||
|
||||
QUnit.test('should change aria-expanded from active accordion target to "false" and set the newly active one to "true"', function (assert) {
|
||||
QUnit.test('should change aria-expanded from active accordion trigger/control to "false" and set the trigger/control for the newly active one to "true"', function (assert) {
|
||||
assert.expect(3)
|
||||
var done = assert.async()
|
||||
|
||||
@ -401,22 +401,22 @@ $(function () {
|
||||
+ '</div>'
|
||||
var $groups = $(accordionHTML).appendTo('#qunit-fixture').find('.card')
|
||||
|
||||
var $target1 = $('<a role="button" data-toggle="collapse" href="#body1"/>').appendTo($groups.eq(0))
|
||||
var $target1 = $('<a role="button" data-toggle="collapse" aria-expanded="true" href="#body1"/>').appendTo($groups.eq(0))
|
||||
|
||||
$('<div id="body1" aria-expanded="true" class="show" data-parent="#accordion"/>').appendTo($groups.eq(0))
|
||||
$('<div id="body1" class="show" data-parent="#accordion"/>').appendTo($groups.eq(0))
|
||||
|
||||
var $target2 = $('<a role="button" data-toggle="collapse" href="#body2" class="collapsed" aria-expanded="false" />').appendTo($groups.eq(1))
|
||||
var $target2 = $('<a role="button" data-toggle="collapse" aria-expanded="false" href="#body2" class="collapsed" aria-expanded="false" />').appendTo($groups.eq(1))
|
||||
|
||||
$('<div id="body2" aria-expanded="false" data-parent="#accordion"/>').appendTo($groups.eq(1))
|
||||
$('<div id="body2" data-parent="#accordion"/>').appendTo($groups.eq(1))
|
||||
|
||||
var $target3 = $('<a class="collapsed" data-toggle="collapse" role="button" href="#body3"/>').appendTo($groups.eq(2))
|
||||
var $target3 = $('<a class="collapsed" data-toggle="collapse" aria-expanded="false" role="button" href="#body3"/>').appendTo($groups.eq(2))
|
||||
|
||||
$('<div id="body3" aria-expanded="false" data-parent="#accordion"/>')
|
||||
$('<div id="body3" data-parent="#accordion"/>')
|
||||
.appendTo($groups.eq(2))
|
||||
.on('shown.bs.collapse', function () {
|
||||
assert.strictEqual($target1.attr('aria-expanded'), 'false', 'inactive target 1 has aria-expanded="false"')
|
||||
assert.strictEqual($target2.attr('aria-expanded'), 'false', 'inactive target 2 has aria-expanded="false"')
|
||||
assert.strictEqual($target3.attr('aria-expanded'), 'true', 'active target 3 has aria-expanded="false"')
|
||||
assert.strictEqual($target1.attr('aria-expanded'), 'false', 'inactive trigger/control 1 has aria-expanded="false"')
|
||||
assert.strictEqual($target2.attr('aria-expanded'), 'false', 'inactive trigger/control 2 has aria-expanded="false"')
|
||||
assert.strictEqual($target3.attr('aria-expanded'), 'true', 'active trigger/control 3 has aria-expanded="true"')
|
||||
|
||||
done()
|
||||
})
|
||||
|
@ -45,58 +45,62 @@ $(function () {
|
||||
})
|
||||
|
||||
QUnit.test('should not open dropdown if target is disabled via attribute', function (assert) {
|
||||
assert.expect(1)
|
||||
var dropdownHTML = '<ul class="tabs">'
|
||||
+ '<li class="dropdown">'
|
||||
assert.expect(0)
|
||||
var dropdownHTML = '<div class="tabs">'
|
||||
+ '<div class="dropdown">'
|
||||
+ '<button disabled href="#" class="btn dropdown-toggle" data-toggle="dropdown">Dropdown</button>'
|
||||
+ '<ul class="dropdown-menu">'
|
||||
+ '<li><a href="#">Secondary link</a></li>'
|
||||
+ '<li><a href="#">Something else here</a></li>'
|
||||
+ '<li class="divider"/>'
|
||||
+ '<li><a href="#">Another link</a></li>'
|
||||
+ '</ul>'
|
||||
+ '</li>'
|
||||
+ '</ul>'
|
||||
var $dropdown = $(dropdownHTML).find('[data-toggle="dropdown"]').bootstrapDropdown().trigger('click')
|
||||
|
||||
assert.ok(!$dropdown.parent('.dropdown').hasClass('show'), '"show" class added on click')
|
||||
+ '<div class="dropdown-menu">'
|
||||
+ '<a class="dropdown-item" href="#">Secondary link</a>'
|
||||
+ '<a class="dropdown-item" href="#">Something else here</a>'
|
||||
+ '<div class="divider"/>'
|
||||
+ '<a class="dropdown-item" href="#">Another link</a>'
|
||||
+ '</div>'
|
||||
+ '</div>'
|
||||
+ '</div>'
|
||||
var $dropdown = $(dropdownHTML).find('[data-toggle="dropdown"]').bootstrapDropdown()
|
||||
setTimeout(function () {
|
||||
assert.ok(!$dropdown.parent('.dropdown').hasClass('show'), '"show" class added on click')
|
||||
}, 300)
|
||||
})
|
||||
|
||||
QUnit.test('should set aria-expanded="true" on target when dropdown menu is shown', function (assert) {
|
||||
assert.expect(1)
|
||||
var dropdownHTML = '<ul class="tabs">'
|
||||
+ '<li class="dropdown">'
|
||||
var done = assert.async()
|
||||
var dropdownHTML = '<div class="tabs">'
|
||||
+ '<div class="dropdown">'
|
||||
+ '<a href="#" class="dropdown-toggle" data-toggle="dropdown" aria-expanded="false">Dropdown</a>'
|
||||
+ '<ul class="dropdown-menu">'
|
||||
+ '<li><a href="#">Secondary link</a></li>'
|
||||
+ '<li><a href="#">Something else here</a></li>'
|
||||
+ '<li class="divider"/>'
|
||||
+ '<li><a href="#">Another link</a></li>'
|
||||
+ '</ul>'
|
||||
+ '</li>'
|
||||
+ '</ul>'
|
||||
var $dropdown = $(dropdownHTML)
|
||||
.find('[data-toggle="dropdown"]')
|
||||
.bootstrapDropdown()
|
||||
.trigger('click')
|
||||
|
||||
assert.strictEqual($dropdown.attr('aria-expanded'), 'true', 'aria-expanded is set to string "true" on click')
|
||||
+ '<div class="dropdown-menu">'
|
||||
+ '<a class="dropdown-item" href="#">Secondary link</a>'
|
||||
+ '<a class="dropdown-item" href="#">Something else here</a>'
|
||||
+ '<div class="divider"/>'
|
||||
+ '<a class="dropdown-item" href="#">Another link</a>'
|
||||
+ '</div>'
|
||||
+ '</div>'
|
||||
+ '</div>'
|
||||
var $dropdown = $(dropdownHTML).find('[data-toggle="dropdown"]').bootstrapDropdown()
|
||||
$dropdown
|
||||
.parent('.dropdown')
|
||||
.on('shown.bs.dropdown', function () {
|
||||
assert.strictEqual($dropdown.attr('aria-expanded'), 'true', 'aria-expanded is set to string "true" on click')
|
||||
done()
|
||||
})
|
||||
$dropdown.trigger('click')
|
||||
})
|
||||
|
||||
QUnit.test('should set aria-expanded="false" on target when dropdown menu is hidden', function (assert) {
|
||||
assert.expect(1)
|
||||
var done = assert.async()
|
||||
var dropdownHTML = '<ul class="tabs">'
|
||||
+ '<li class="dropdown">'
|
||||
var dropdownHTML = '<div class="tabs">'
|
||||
+ '<div class="dropdown">'
|
||||
+ '<a href="#" class="dropdown-toggle" aria-expanded="false" data-toggle="dropdown">Dropdown</a>'
|
||||
+ '<ul class="dropdown-menu">'
|
||||
+ '<li><a href="#">Secondary link</a></li>'
|
||||
+ '<li><a href="#">Something else here</a></li>'
|
||||
+ '<li class="divider"/>'
|
||||
+ '<li><a href="#">Another link</a></li>'
|
||||
+ '</ul>'
|
||||
+ '</li>'
|
||||
+ '</ul>'
|
||||
+ '<div class="dropdown-menu">'
|
||||
+ '<a class="dropdown-item" href="#">Secondary link</a>'
|
||||
+ '<a class="dropdown-item" href="#">Something else here</a>'
|
||||
+ '<div class="divider"/>'
|
||||
+ '<a class="dropdown-item" href="#">Another link</a>'
|
||||
+ '</div>'
|
||||
+ '</div>'
|
||||
+ '</div>'
|
||||
var $dropdown = $(dropdownHTML)
|
||||
.appendTo('#qunit-fixture')
|
||||
.find('[data-toggle="dropdown"]')
|
||||
@ -114,86 +118,107 @@ $(function () {
|
||||
})
|
||||
|
||||
QUnit.test('should not open dropdown if target is disabled via class', function (assert) {
|
||||
assert.expect(1)
|
||||
var dropdownHTML = '<ul class="tabs">'
|
||||
+ '<li class="dropdown">'
|
||||
assert.expect(0)
|
||||
var dropdownHTML = '<div class="tabs">'
|
||||
+ '<div class="dropdown">'
|
||||
+ '<button href="#" class="btn dropdown-toggle disabled" data-toggle="dropdown">Dropdown</button>'
|
||||
+ '<ul class="dropdown-menu">'
|
||||
+ '<li><a href="#">Secondary link</a></li>'
|
||||
+ '<li><a href="#">Something else here</a></li>'
|
||||
+ '<li class="divider"/>'
|
||||
+ '<li><a href="#">Another link</a></li>'
|
||||
+ '</ul>'
|
||||
+ '</li>'
|
||||
+ '</ul>'
|
||||
+ '<div class="dropdown-menu">'
|
||||
+ '<a class="dropdown-item" href="#">Secondary link</a>'
|
||||
+ '<a class="dropdown-item" href="#">Something else here</a>'
|
||||
+ '<div class="divider"/>'
|
||||
+ '<a class="dropdown-item" href="#">Another link</a>'
|
||||
+ '</div>'
|
||||
+ '</div>'
|
||||
+ '</div>'
|
||||
var $dropdown = $(dropdownHTML).find('[data-toggle="dropdown"]').bootstrapDropdown().trigger('click')
|
||||
|
||||
assert.ok(!$dropdown.parent('.dropdown').hasClass('show'), '"show" class added on click')
|
||||
setTimeout(function () {
|
||||
assert.ok(!$dropdown.parent('.dropdown').hasClass('show'), '"show" class added on click')
|
||||
}, 300)
|
||||
})
|
||||
|
||||
QUnit.test('should add class show to menu if clicked', function (assert) {
|
||||
assert.expect(1)
|
||||
var dropdownHTML = '<ul class="tabs">'
|
||||
+ '<li class="dropdown">'
|
||||
var done = assert.async()
|
||||
var dropdownHTML = '<div class="tabs">'
|
||||
+ '<div class="dropdown">'
|
||||
+ '<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown</a>'
|
||||
+ '<ul class="dropdown-menu">'
|
||||
+ '<li><a href="#">Secondary link</a></li>'
|
||||
+ '<li><a href="#">Something else here</a></li>'
|
||||
+ '<li class="divider"/>'
|
||||
+ '<li><a href="#">Another link</a></li>'
|
||||
+ '</ul>'
|
||||
+ '</li>'
|
||||
+ '</ul>'
|
||||
var $dropdown = $(dropdownHTML).find('[data-toggle="dropdown"]').bootstrapDropdown().trigger('click')
|
||||
|
||||
assert.ok($dropdown.parent('.dropdown').hasClass('show'), '"show" class added on click')
|
||||
+ '<div class="dropdown-menu">'
|
||||
+ '<a class="dropdown-item" href="#">Secondary link</a>'
|
||||
+ '<a class="dropdown-item" href="#">Something else here</a>'
|
||||
+ '<div class="divider"/>'
|
||||
+ '<a class="dropdown-item" href="#">Another link</a>'
|
||||
+ '</div>'
|
||||
+ '</div>'
|
||||
+ '</div>'
|
||||
var $dropdown = $(dropdownHTML).find('[data-toggle="dropdown"]').bootstrapDropdown()
|
||||
$dropdown
|
||||
.parent('.dropdown')
|
||||
.on('shown.bs.dropdown', function () {
|
||||
assert.ok($dropdown.parent('.dropdown').hasClass('show'), '"show" class added on click')
|
||||
done()
|
||||
})
|
||||
$dropdown.trigger('click')
|
||||
})
|
||||
|
||||
QUnit.test('should test if element has a # before assuming it\'s a selector', function (assert) {
|
||||
assert.expect(1)
|
||||
var dropdownHTML = '<ul class="tabs">'
|
||||
+ '<li class="dropdown">'
|
||||
var done = assert.async()
|
||||
var dropdownHTML = '<div class="tabs">'
|
||||
+ '<div class="dropdown">'
|
||||
+ '<a href="/foo/" class="dropdown-toggle" data-toggle="dropdown">Dropdown</a>'
|
||||
+ '<ul class="dropdown-menu">'
|
||||
+ '<li><a href="#">Secondary link</a></li>'
|
||||
+ '<li><a href="#">Something else here</a></li>'
|
||||
+ '<li class="divider"/>'
|
||||
+ '<li><a href="#">Another link</a></li>'
|
||||
+ '</ul>'
|
||||
+ '</li>'
|
||||
+ '</ul>'
|
||||
var $dropdown = $(dropdownHTML).find('[data-toggle="dropdown"]').bootstrapDropdown().trigger('click')
|
||||
|
||||
assert.ok($dropdown.parent('.dropdown').hasClass('show'), '"show" class added on click')
|
||||
+ '<div class="dropdown-menu">'
|
||||
+ '<a class="dropdown-item" href="#">Secondary link</a>'
|
||||
+ '<a class="dropdown-item" href="#">Something else here</a>'
|
||||
+ '<div class="divider"/>'
|
||||
+ '<a class="dropdown-item" href="#">Another link</a>'
|
||||
+ '</div>'
|
||||
+ '</div>'
|
||||
+ '</div>'
|
||||
var $dropdown = $(dropdownHTML).find('[data-toggle="dropdown"]').bootstrapDropdown()
|
||||
$dropdown
|
||||
.parent('.dropdown')
|
||||
.on('shown.bs.dropdown', function () {
|
||||
assert.ok($dropdown.parent('.dropdown').hasClass('show'), '"show" class added on click')
|
||||
done()
|
||||
})
|
||||
$dropdown.trigger('click')
|
||||
})
|
||||
|
||||
|
||||
QUnit.test('should remove "show" class if body is clicked', function (assert) {
|
||||
assert.expect(2)
|
||||
var dropdownHTML = '<ul class="tabs">'
|
||||
+ '<li class="dropdown">'
|
||||
var done = assert.async()
|
||||
var dropdownHTML = '<div class="tabs">'
|
||||
+ '<div class="dropdown">'
|
||||
+ '<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown</a>'
|
||||
+ '<ul class="dropdown-menu">'
|
||||
+ '<li><a href="#">Secondary link</a></li>'
|
||||
+ '<li><a href="#">Something else here</a></li>'
|
||||
+ '<li class="divider"/>'
|
||||
+ '<li><a href="#">Another link</a></li>'
|
||||
+ '</ul>'
|
||||
+ '</li>'
|
||||
+ '</ul>'
|
||||
+ '<div class="dropdown-menu">'
|
||||
+ '<a class="dropdown-item" href="#">Secondary link</a>'
|
||||
+ '<a class="dropdown-item" href="#">Something else here</a>'
|
||||
+ '<div class="divider"/>'
|
||||
+ '<a class="dropdown-item" href="#">Another link</a>'
|
||||
+ '</div>'
|
||||
+ '</div>'
|
||||
+ '</div>'
|
||||
var $dropdown = $(dropdownHTML)
|
||||
.appendTo('#qunit-fixture')
|
||||
.find('[data-toggle="dropdown"]')
|
||||
.bootstrapDropdown()
|
||||
.trigger('click')
|
||||
|
||||
assert.ok($dropdown.parent('.dropdown').hasClass('show'), '"show" class added on click')
|
||||
$(document.body).trigger('click')
|
||||
assert.ok(!$dropdown.parent('.dropdown').hasClass('show'), '"show" class removed')
|
||||
$dropdown
|
||||
.parent('.dropdown')
|
||||
.on('shown.bs.dropdown', function () {
|
||||
assert.ok($dropdown.parent('.dropdown').hasClass('show'), '"show" class added on click')
|
||||
$(document.body).trigger('click')
|
||||
}).on('hidden.bs.dropdown', function () {
|
||||
assert.ok(!$dropdown.parent('.dropdown').hasClass('show'), '"show" class removed')
|
||||
done()
|
||||
})
|
||||
$dropdown.trigger('click')
|
||||
})
|
||||
|
||||
QUnit.test('should remove "show" class if body is focused', function (assert) {
|
||||
QUnit.test('should remove "show" class if tabbing outside of menu', function (assert) {
|
||||
assert.expect(2)
|
||||
var done = assert.async()
|
||||
var dropdownHTML = '<div class="tabs">'
|
||||
+ '<div class="dropdown">'
|
||||
+ '<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown</a>'
|
||||
@ -209,30 +234,37 @@ $(function () {
|
||||
.appendTo('#qunit-fixture')
|
||||
.find('[data-toggle="dropdown"]')
|
||||
.bootstrapDropdown()
|
||||
.trigger('click')
|
||||
|
||||
assert.ok($dropdown.parent('.dropdown').hasClass('show'), '"show" class added on click')
|
||||
$(document.body).trigger('focusin')
|
||||
assert.ok(!$dropdown.parent('.dropdown').hasClass('show'), '"show" class removed')
|
||||
$dropdown
|
||||
.parent('.dropdown')
|
||||
.on('shown.bs.dropdown', function () {
|
||||
assert.ok($dropdown.parent('.dropdown').hasClass('show'), '"show" class added on click')
|
||||
var e = $.Event('keyup')
|
||||
e.which = 9 // Tab
|
||||
$(document.body).trigger(e)
|
||||
}).on('hidden.bs.dropdown', function () {
|
||||
assert.ok(!$dropdown.parent('.dropdown').hasClass('show'), '"show" class removed')
|
||||
done()
|
||||
})
|
||||
$dropdown.trigger('click')
|
||||
})
|
||||
|
||||
QUnit.test('should remove "show" class if body is clicked, with multiple dropdowns', function (assert) {
|
||||
assert.expect(7)
|
||||
var dropdownHTML = '<ul class="nav">'
|
||||
+ '<li><a href="#menu1">Menu 1</a></li>'
|
||||
+ '<li class="dropdown" id="testmenu">'
|
||||
var done = assert.async()
|
||||
var dropdownHTML = '<div class="nav">'
|
||||
+ '<div class="dropdown" id="testmenu">'
|
||||
+ '<a class="dropdown-toggle" data-toggle="dropdown" href="#testmenu">Test menu <span class="caret"/></a>'
|
||||
+ '<ul class="dropdown-menu">'
|
||||
+ '<li><a href="#sub1">Submenu 1</a></li>'
|
||||
+ '</ul>'
|
||||
+ '</li>'
|
||||
+ '</ul>'
|
||||
+ '<div class="dropdown-menu">'
|
||||
+ '<a class="dropdown-item" href="#sub1">Submenu 1</a>'
|
||||
+ '</div>'
|
||||
+ '</div>'
|
||||
+ '</div>'
|
||||
+ '<div class="btn-group">'
|
||||
+ '<button class="btn">Actions</button>'
|
||||
+ '<button class="btn dropdown-toggle" data-toggle="dropdown"><span class="caret"/></button>'
|
||||
+ '<ul class="dropdown-menu">'
|
||||
+ '<li><a href="#">Action 1</a></li>'
|
||||
+ '</ul>'
|
||||
+ '<button class="btn dropdown-toggle" data-toggle="dropdown"></button>'
|
||||
+ '<div class="dropdown-menu">'
|
||||
+ '<a class="dropdown-item" href="#">Action 1</a>'
|
||||
+ '</div>'
|
||||
+ '</div>'
|
||||
var $dropdowns = $(dropdownHTML).appendTo('#qunit-fixture').find('[data-toggle="dropdown"]')
|
||||
var $first = $dropdowns.first()
|
||||
@ -240,21 +272,31 @@ $(function () {
|
||||
|
||||
assert.strictEqual($dropdowns.length, 2, 'two dropdowns')
|
||||
|
||||
$first.trigger('click')
|
||||
assert.strictEqual($first.parents('.show').length, 1, '"show" class added on click')
|
||||
assert.strictEqual($('#qunit-fixture .show').length, 1, 'only one dropdown is shown')
|
||||
$(document.body).trigger('click')
|
||||
assert.strictEqual($('#qunit-fixture .show').length, 0, '"show" class removed')
|
||||
$first.parent('.dropdown')
|
||||
.on('shown.bs.dropdown', function () {
|
||||
assert.strictEqual($first.parents('.show').length, 1, '"show" class added on click')
|
||||
assert.strictEqual($('#qunit-fixture .show').length, 1, 'only one dropdown is shown')
|
||||
$(document.body).trigger('click')
|
||||
}).on('hidden.bs.dropdown', function () {
|
||||
assert.strictEqual($('#qunit-fixture .show').length, 0, '"show" class removed')
|
||||
$last.trigger('click')
|
||||
})
|
||||
|
||||
$last.trigger('click')
|
||||
assert.strictEqual($last.parent('.show').length, 1, '"show" class added on click')
|
||||
assert.strictEqual($('#qunit-fixture .show').length, 1, 'only one dropdown is shown')
|
||||
$(document.body).trigger('click')
|
||||
assert.strictEqual($('#qunit-fixture .show').length, 0, '"show" class removed')
|
||||
$last.parent('.btn-group')
|
||||
.on('shown.bs.dropdown', function () {
|
||||
assert.strictEqual($last.parent('.show').length, 1, '"show" class added on click')
|
||||
assert.strictEqual($('#qunit-fixture .show').length, 1, 'only one dropdown is shown')
|
||||
$(document.body).trigger('click')
|
||||
}).on('hidden.bs.dropdown', function () {
|
||||
assert.strictEqual($('#qunit-fixture .show').length, 0, '"show" class removed')
|
||||
done()
|
||||
})
|
||||
$first.trigger('click')
|
||||
})
|
||||
|
||||
QUnit.test('should remove "show" class if body is focused, with multiple dropdowns', function (assert) {
|
||||
QUnit.test('should remove "show" class if body if tabbing outside of menu, with multiple dropdowns', function (assert) {
|
||||
assert.expect(7)
|
||||
var done = assert.async()
|
||||
var dropdownHTML = '<div class="nav">'
|
||||
+ '<div class="dropdown" id="testmenu">'
|
||||
+ '<a class="dropdown-toggle" data-toggle="dropdown" href="#testmenu">Test menu <span class="caret"/></a>'
|
||||
@ -276,32 +318,45 @@ $(function () {
|
||||
|
||||
assert.strictEqual($dropdowns.length, 2, 'two dropdowns')
|
||||
|
||||
$first.trigger('click')
|
||||
assert.strictEqual($first.parents('.show').length, 1, '"show" class added on click')
|
||||
assert.strictEqual($('#qunit-fixture .show').length, 1, 'only one dropdown is show')
|
||||
$(document.body).trigger('focusin')
|
||||
assert.strictEqual($('#qunit-fixture .show').length, 0, '"show" class removed')
|
||||
$first.parent('.dropdown')
|
||||
.on('shown.bs.dropdown', function () {
|
||||
assert.strictEqual($first.parents('.show').length, 1, '"show" class added on click')
|
||||
assert.strictEqual($('#qunit-fixture .show').length, 1, 'only one dropdown is shown')
|
||||
var e = $.Event('keyup')
|
||||
e.which = 9 // Tab
|
||||
$(document.body).trigger(e)
|
||||
}).on('hidden.bs.dropdown', function () {
|
||||
assert.strictEqual($('#qunit-fixture .show').length, 0, '"show" class removed')
|
||||
$last.trigger('click')
|
||||
})
|
||||
|
||||
$last.trigger('click')
|
||||
assert.strictEqual($last.parent('.show').length, 1, '"show" class added on click')
|
||||
assert.strictEqual($('#qunit-fixture .show').length, 1, 'only one dropdown is show')
|
||||
$(document.body).trigger('focusin')
|
||||
assert.strictEqual($('#qunit-fixture .show').length, 0, '"show" class removed')
|
||||
$last.parent('.btn-group')
|
||||
.on('shown.bs.dropdown', function () {
|
||||
assert.strictEqual($last.parent('.show').length, 1, '"show" class added on click')
|
||||
assert.strictEqual($('#qunit-fixture .show').length, 1, 'only one dropdown is shown')
|
||||
var e = $.Event('keyup')
|
||||
e.which = 9 // Tab
|
||||
$(document.body).trigger(e)
|
||||
}).on('hidden.bs.dropdown', function () {
|
||||
assert.strictEqual($('#qunit-fixture .show').length, 0, '"show" class removed')
|
||||
done()
|
||||
})
|
||||
$first.trigger('click')
|
||||
})
|
||||
|
||||
QUnit.test('should fire show and hide event', function (assert) {
|
||||
assert.expect(2)
|
||||
var dropdownHTML = '<ul class="tabs">'
|
||||
+ '<li class="dropdown">'
|
||||
var dropdownHTML = '<div class="tabs">'
|
||||
+ '<div class="dropdown">'
|
||||
+ '<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown</a>'
|
||||
+ '<ul class="dropdown-menu">'
|
||||
+ '<li><a href="#">Secondary link</a></li>'
|
||||
+ '<li><a href="#">Something else here</a></li>'
|
||||
+ '<li class="divider"/>'
|
||||
+ '<li><a href="#">Another link</a></li>'
|
||||
+ '</ul>'
|
||||
+ '</li>'
|
||||
+ '</ul>'
|
||||
+ '<div class="dropdown-menu">'
|
||||
+ '<a class="dropdown-item" href="#">Secondary link</a>'
|
||||
+ '<a class="dropdown-item" href="#">Something else here</a>'
|
||||
+ '<div class="divider"/>'
|
||||
+ '<a class="dropdown-item" href="#">Another link</a>'
|
||||
+ '</div>'
|
||||
+ '</div>'
|
||||
+ '</div>'
|
||||
var $dropdown = $(dropdownHTML)
|
||||
.appendTo('#qunit-fixture')
|
||||
.find('[data-toggle="dropdown"]')
|
||||
@ -326,17 +381,17 @@ $(function () {
|
||||
|
||||
QUnit.test('should fire shown and hidden event', function (assert) {
|
||||
assert.expect(2)
|
||||
var dropdownHTML = '<ul class="tabs">'
|
||||
+ '<li class="dropdown">'
|
||||
var dropdownHTML = '<div class="tabs">'
|
||||
+ '<div class="dropdown">'
|
||||
+ '<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown</a>'
|
||||
+ '<ul class="dropdown-menu">'
|
||||
+ '<li><a href="#">Secondary link</a></li>'
|
||||
+ '<li><a href="#">Something else here</a></li>'
|
||||
+ '<li class="divider"/>'
|
||||
+ '<li><a href="#">Another link</a></li>'
|
||||
+ '</ul>'
|
||||
+ '</li>'
|
||||
+ '</ul>'
|
||||
+ '<div class="dropdown-menu">'
|
||||
+ '<a class="dropdown-item" href="#">Secondary link</a>'
|
||||
+ '<a class="dropdown-item" href="#">Something else here</a>'
|
||||
+ '<div class="divider"/>'
|
||||
+ '<a class="dropdown-item" href="#">Another link</a>'
|
||||
+ '</div>'
|
||||
+ '</div>'
|
||||
+ '</div>'
|
||||
var $dropdown = $(dropdownHTML)
|
||||
.appendTo('#qunit-fixture')
|
||||
.find('[data-toggle="dropdown"]')
|
||||
@ -360,17 +415,17 @@ $(function () {
|
||||
|
||||
QUnit.test('should fire shown and hidden event with a relatedTarget', function (assert) {
|
||||
assert.expect(2)
|
||||
var dropdownHTML = '<ul class="tabs">'
|
||||
+ '<li class="dropdown">'
|
||||
var dropdownHTML = '<div class="tabs">'
|
||||
+ '<div class="dropdown">'
|
||||
+ '<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown</a>'
|
||||
+ '<ul class="dropdown-menu">'
|
||||
+ '<li><a href="#">Secondary link</a></li>'
|
||||
+ '<li><a href="#">Something else here</a></li>'
|
||||
+ '<li class="divider"/>'
|
||||
+ '<li><a href="#">Another link</a></li>'
|
||||
+ '</ul>'
|
||||
+ '</li>'
|
||||
+ '</ul>'
|
||||
+ '<div class="dropdown-menu">'
|
||||
+ '<a class="dropdown-item" href="#">Secondary link</a>'
|
||||
+ '<a class="dropdown-item" href="#">Something else here</a>'
|
||||
+ '<div class="divider"/>'
|
||||
+ '<a class="dropdown-item" href="#">Another link</a>'
|
||||
+ '</div>'
|
||||
+ '</div>'
|
||||
+ '</div>'
|
||||
var $dropdown = $(dropdownHTML)
|
||||
.appendTo('#qunit-fixture')
|
||||
.find('[data-toggle="dropdown"]')
|
||||
@ -394,19 +449,19 @@ $(function () {
|
||||
assert.expect(3)
|
||||
var done = assert.async()
|
||||
|
||||
var dropdownHTML = '<ul class="tabs">'
|
||||
+ '<li class="dropdown">'
|
||||
var dropdownHTML = '<div class="tabs">'
|
||||
+ '<div class="dropdown">'
|
||||
+ '<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown</a>'
|
||||
+ '<ul class="dropdown-menu">'
|
||||
+ '<li><a href="#">Secondary link</a></li>'
|
||||
+ '<li><a href="#">Something else here</a></li>'
|
||||
+ '<li class="divider"/>'
|
||||
+ '<li><a href="#">Another link</a></li>'
|
||||
+ '<li><input type="text" id="input"></li>'
|
||||
+ '<li><textarea id="textarea"/></li>'
|
||||
+ '</ul>'
|
||||
+ '</li>'
|
||||
+ '</ul>'
|
||||
+ '<div class="dropdown-menu">'
|
||||
+ '<a class="dropdown-item" href="#">Secondary link</a>'
|
||||
+ '<a class="dropdown-item" href="#">Something else here</a>'
|
||||
+ '<div class="divider"/>'
|
||||
+ '<a class="dropdown-item" href="#">Another link</a>'
|
||||
+ '<input type="text" id="input">'
|
||||
+ '<textarea id="textarea"/>'
|
||||
+ '</div>'
|
||||
+ '</div>'
|
||||
+ '</div>'
|
||||
var $dropdown = $(dropdownHTML)
|
||||
.appendTo('#qunit-fixture')
|
||||
.find('[data-toggle="dropdown"]')
|
||||
@ -433,63 +488,124 @@ $(function () {
|
||||
})
|
||||
|
||||
QUnit.test('should skip disabled element when using keyboard navigation', function (assert) {
|
||||
assert.expect(1)
|
||||
var dropdownHTML = '<ul class="tabs">'
|
||||
+ '<li class="dropdown">'
|
||||
assert.expect(2)
|
||||
var done = assert.async()
|
||||
var dropdownHTML = '<div class="tabs">'
|
||||
+ '<div class="dropdown">'
|
||||
+ '<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown</a>'
|
||||
+ '<ul class="dropdown-menu">'
|
||||
+ '<li class="disabled"><a href="#">Disabled link</a></li>'
|
||||
+ '<li><a href="#">Another link</a></li>'
|
||||
+ '</ul>'
|
||||
+ '</li>'
|
||||
+ '</ul>'
|
||||
+ '<div class="dropdown-menu">'
|
||||
+ '<a class="dropdown-item disabled" href="#">Disabled link</a>'
|
||||
+ '<a class="dropdown-item" href="#">Another link</a>'
|
||||
+ '</div>'
|
||||
+ '</div>'
|
||||
+ '</div>'
|
||||
var $dropdown = $(dropdownHTML)
|
||||
.appendTo('#qunit-fixture')
|
||||
.find('[data-toggle="dropdown"]')
|
||||
.bootstrapDropdown()
|
||||
.trigger('click')
|
||||
|
||||
$dropdown.trigger($.Event('keydown', { which: 40 }))
|
||||
$dropdown.trigger($.Event('keydown', { which: 40 }))
|
||||
$dropdown
|
||||
.parent('.dropdown')
|
||||
.on('shown.bs.dropdown', function () {
|
||||
assert.ok(true, 'shown was fired')
|
||||
$dropdown.trigger($.Event('keydown', { which: 40 }))
|
||||
$dropdown.trigger($.Event('keydown', { which: 40 }))
|
||||
assert.ok(!$(document.activeElement).is('.disabled'), '.disabled is not focused')
|
||||
done()
|
||||
})
|
||||
$dropdown.trigger('click')
|
||||
})
|
||||
|
||||
QUnit.test('should focus next/previous element when using keyboard navigation', function (assert) {
|
||||
assert.expect(4)
|
||||
var done = assert.async()
|
||||
var dropdownHTML = '<div class="tabs">'
|
||||
+ '<div class="dropdown">'
|
||||
+ '<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown</a>'
|
||||
+ '<div class="dropdown-menu">'
|
||||
+ '<a id="item1" class="dropdown-item" href="#">A link</a>'
|
||||
+ '<a id="item2" class="dropdown-item" href="#">Another link</a>'
|
||||
+ '</div>'
|
||||
+ '</div>'
|
||||
+ '</div>'
|
||||
var $dropdown = $(dropdownHTML)
|
||||
.appendTo('#qunit-fixture')
|
||||
.find('[data-toggle="dropdown"]')
|
||||
.bootstrapDropdown()
|
||||
|
||||
$dropdown
|
||||
.parent('.dropdown')
|
||||
.on('shown.bs.dropdown', function () {
|
||||
assert.ok(true, 'shown was fired')
|
||||
$dropdown.trigger($.Event('keydown', { which: 40 }))
|
||||
assert.ok($(document.activeElement).is($('#item1')), 'item1 is focused')
|
||||
|
||||
$(document.activeElement).trigger($.Event('keydown', { which: 40 }))
|
||||
assert.ok($(document.activeElement).is($('#item2')), 'item2 is focused')
|
||||
|
||||
$(document.activeElement).trigger($.Event('keydown', { which: 38 }))
|
||||
assert.ok($(document.activeElement).is($('#item1')), 'item1 is focused')
|
||||
done()
|
||||
})
|
||||
$dropdown.trigger('click')
|
||||
|
||||
assert.ok(!$(document.activeElement).parent().is('.disabled'), '.disabled is not focused')
|
||||
})
|
||||
|
||||
QUnit.test('should not close the dropdown if the user clicks on a text field', function (assert) {
|
||||
assert.expect(1)
|
||||
var dropdownHTML = '<div class="btn-group">'
|
||||
var done = assert.async()
|
||||
var dropdownHTML = '<div class="dropdown">'
|
||||
+ '<button type="button" data-toggle="dropdown">Dropdown</button>'
|
||||
+ '<ul class="dropdown-menu">'
|
||||
+ '<li><input id="textField" type="text" /></li>'
|
||||
+ '</ul>'
|
||||
+ '<div class="dropdown-menu">'
|
||||
+ '<input id="textField" type="text" />'
|
||||
+ '</div>'
|
||||
+ '</div>'
|
||||
var $dropdown = $(dropdownHTML)
|
||||
.appendTo('#qunit-fixture')
|
||||
.find('[data-toggle="dropdown"]')
|
||||
.bootstrapDropdown()
|
||||
.trigger('click')
|
||||
|
||||
$('#textField').trigger('click')
|
||||
|
||||
assert.ok($dropdown.parent('.btn-group').hasClass('show'), 'dropdown menu is shown')
|
||||
$dropdown
|
||||
.parent('.dropdown')
|
||||
.on('shown.bs.dropdown', function () {
|
||||
$('#textField').trigger('click')
|
||||
assert.ok($dropdown.parent('.dropdown').hasClass('show'), 'dropdown menu is shown')
|
||||
setTimeout(function () {
|
||||
done()
|
||||
}, 300)
|
||||
})
|
||||
.on('hidden.bs.dropdown', function () {
|
||||
assert.ok($dropdown.parent('.dropdown').hasClass('show'), 'dropdown menu is shown')
|
||||
})
|
||||
$dropdown.trigger('click')
|
||||
})
|
||||
|
||||
QUnit.test('should not close the dropdown if the user clicks on a textarea', function (assert) {
|
||||
assert.expect(1)
|
||||
var dropdownHTML = '<div class="btn-group">'
|
||||
var done = assert.async()
|
||||
var dropdownHTML = '<div class="dropdown">'
|
||||
+ '<button type="button" data-toggle="dropdown">Dropdown</button>'
|
||||
+ '<ul class="dropdown-menu">'
|
||||
+ '<li><textarea id="textArea"></textarea></li>'
|
||||
+ '</ul>'
|
||||
+ '<div class="dropdown-menu">'
|
||||
+ '<textarea id="textArea"></textarea>'
|
||||
+ '</div>'
|
||||
+ '</div>'
|
||||
var $dropdown = $(dropdownHTML)
|
||||
.appendTo('#qunit-fixture')
|
||||
.find('[data-toggle="dropdown"]')
|
||||
.bootstrapDropdown()
|
||||
.trigger('click')
|
||||
|
||||
$('#textArea').trigger('click')
|
||||
|
||||
assert.ok($dropdown.parent('.btn-group').hasClass('show'), 'dropdown menu is shown')
|
||||
$dropdown
|
||||
.parent('.dropdown')
|
||||
.on('shown.bs.dropdown', function () {
|
||||
$('#textArea').trigger('click')
|
||||
assert.ok($dropdown.parent('.dropdown').hasClass('show'), 'dropdown menu is shown')
|
||||
setTimeout(function () {
|
||||
done()
|
||||
}, 300)
|
||||
})
|
||||
.on('hidden.bs.dropdown', function () {
|
||||
assert.ok($dropdown.parent('.dropdown').hasClass('show'), 'dropdown menu is shown')
|
||||
})
|
||||
$dropdown.trigger('click')
|
||||
})
|
||||
})
|
||||
|
@ -1,72 +0,0 @@
|
||||
/*
|
||||
* grunt-contrib-qunit
|
||||
* http://gruntjs.com/
|
||||
*
|
||||
* Copyright (c) 2014 "Cowboy" Ben Alman, contributors
|
||||
* Licensed under the MIT license.
|
||||
*/
|
||||
|
||||
(function () {
|
||||
'use strict'
|
||||
|
||||
// Don't re-order tests.
|
||||
QUnit.config.reorder = false
|
||||
// Run tests serially, not in parallel.
|
||||
QUnit.config.autorun = false
|
||||
|
||||
// Send messages to the parent PhantomJS process via alert! Good times!!
|
||||
function sendMessage() {
|
||||
var args = [].slice.call(arguments)
|
||||
alert(JSON.stringify(args))
|
||||
}
|
||||
|
||||
// These methods connect QUnit to PhantomJS.
|
||||
QUnit.log(function (obj) {
|
||||
// What is this I don’t even
|
||||
if (obj.message === '[object Object], undefined:undefined') { return }
|
||||
|
||||
// Parse some stuff before sending it.
|
||||
var actual
|
||||
var expected
|
||||
if (!obj.result) {
|
||||
// Dumping large objects can be very slow, and the dump isn't used for
|
||||
// passing tests, so only dump if the test failed.
|
||||
actual = QUnit.dump.parse(obj.actual)
|
||||
expected = QUnit.dump.parse(obj.expected)
|
||||
}
|
||||
// Send it.
|
||||
sendMessage('qunit.log', obj.result, actual, expected, obj.message, obj.source)
|
||||
})
|
||||
|
||||
QUnit.testStart(function (obj) {
|
||||
sendMessage('qunit.testStart', obj.name)
|
||||
})
|
||||
|
||||
QUnit.testDone(function (obj) {
|
||||
sendMessage('qunit.testDone', obj.name, obj.failed, obj.passed, obj.total, obj.duration)
|
||||
})
|
||||
|
||||
QUnit.moduleStart(function (obj) {
|
||||
sendMessage('qunit.moduleStart', obj.name)
|
||||
})
|
||||
|
||||
QUnit.moduleDone(function (obj) {
|
||||
if (obj.failed === 0) {
|
||||
console.log('\r\u221A All tests passed in "' + obj.name + '" module')
|
||||
} else {
|
||||
console.log('\u00D7 ' + obj.failed + ' tests failed in "' + obj.name + '" module')
|
||||
}
|
||||
sendMessage('qunit.moduleDone', obj.name, obj.failed, obj.passed, obj.total)
|
||||
})
|
||||
|
||||
QUnit.begin(function () {
|
||||
sendMessage('qunit.begin')
|
||||
console.log('\n\nStarting test suite')
|
||||
console.log('================================================\n')
|
||||
})
|
||||
|
||||
QUnit.done(function (obj) {
|
||||
sendMessage('qunit.done', obj.failed, obj.passed, obj.total, obj.runtime)
|
||||
})
|
||||
|
||||
}())
|
@ -18,15 +18,15 @@
|
||||
<li data-target="#carousel-example-generic" data-slide-to="1"></li>
|
||||
<li data-target="#carousel-example-generic" data-slide-to="2"></li>
|
||||
</ol>
|
||||
<div class="carousel-inner" role="listbox">
|
||||
<div class="carousel-inner">
|
||||
<div class="carousel-item active">
|
||||
<img src="https://37.media.tumblr.com/tumblr_m8tay0JcfG1qa42jro1_1280.jpg" alt="First slide">
|
||||
<img src="http://i.imgur.com/iEZgY7Y.jpg" alt="First slide">
|
||||
</div>
|
||||
<div class="carousel-item">
|
||||
<img src="https://37.media.tumblr.com/tumblr_m8tazfiVYJ1qa42jro1_1280.jpg" alt="Second slide">
|
||||
<img src="http://i.imgur.com/eNWn1Xs.jpg" alt="Second slide">
|
||||
</div>
|
||||
<div class="carousel-item">
|
||||
<img src="https://38.media.tumblr.com/tumblr_m8tb2rVsD31qa42jro1_1280.jpg" alt="Third slide">
|
||||
<img src="http://i.imgur.com/Nm7xoti.jpg" alt="Third slide">
|
||||
</div>
|
||||
</div>
|
||||
<a class="carousel-control-prev" href="#carousel-example-generic" role="button" data-slide="prev">
|
||||
|
102
package.json
102
package.json
@ -17,24 +17,41 @@
|
||||
"Twitter, Inc."
|
||||
],
|
||||
"scripts": {
|
||||
"change-version": "node grunt/change-version.js",
|
||||
"clean-css": "cleancss --level 1 --source-map --output dist/css/bootstrap.min.css dist/css/bootstrap.css && cleancss --level 1 --source-map --output dist/css/bootstrap-grid.min.css dist/css/bootstrap-grid.css && cleancss --level 1 --source-map --output dist/css/bootstrap-reboot.min.css dist/css/bootstrap-reboot.css",
|
||||
"clean-css-docs": "cleancss --level 1 --source-map --output docs/assets/css/docs.min.css docs/assets/css/docs.min.css",
|
||||
"eslint": "eslint --ignore-path .eslintignore js && eslint --config js/tests/.eslintrc.json --env node grunt Gruntfile.js && eslint --config js/tests/.eslintrc.json docs/assets/js/src docs/assets/js/ie-emulation-modes-warning.js docs/assets/js/ie10-viewport-bug-workaround.js",
|
||||
"htmlhint": "htmlhint --config docs/.htmlhintrc _gh_pages/",
|
||||
"htmllint": "htmllint --rc docs/.htmllintrc _gh_pages/**/*.html js/tests/visual/*.html",
|
||||
"jekyll": "bundle exec jekyll build",
|
||||
"jekyll-github": "shx echo 'github: true' > $npm_config_tmp/twbsjekyll.yml && npm run jekyll -- --config _config.yml,$npm_config_tmp/twbsjekyll.yml && shx rm $npm_config_tmp/twbsjekyll.yml",
|
||||
"postcss": "postcss --config grunt/ --replace dist/css/*.css",
|
||||
"postcss-docs": "postcss --config grunt/ --replace docs/assets/css/docs.min.css && postcss --config grunt/ --replace docs/examples/**/*.css",
|
||||
"sass": "node-sass --output-style expanded --source-map true --precision 6 scss/bootstrap.scss dist/css/bootstrap.css && node-sass --output-style expanded --source-map true --precision 6 scss/bootstrap-grid.scss dist/css/bootstrap-grid.css && node-sass --output-style expanded --source-map true --precision 6 scss/bootstrap-reboot.scss dist/css/bootstrap-reboot.css",
|
||||
"sass-docs": "node-sass --output-style expanded --source-map true --precision 6 docs/assets/scss/docs.scss docs/assets/css/docs.min.css",
|
||||
"scss-lint": "bundle exec scss-lint --config scss/.scss-lint.yml scss/*.scss",
|
||||
"scss-lint-docs": "bundle exec scss-lint --config scss/.scss-lint.yml --exclude docs/assets/scss/docs.scss docs/assets/scss/*.scss",
|
||||
"uglify": "uglifyjs --compress warnings=false --mangle --comments '/^!/' --output dist/js/bootstrap.min.js dist/js/bootstrap.js",
|
||||
"uglify-docs": "uglifyjs --compress warnings=false --mangle --comments '/^!/' --output docs/assets/js/docs.min.js docs/assets/js/vendor/anchor.min.js docs/assets/js/vendor/clipboard.min.js docs/assets/js/vendor/holder.min.js docs/assets/js/src/application.js",
|
||||
"update-shrinkwrap": "npm shrinkwrap --dev && shx mv ./npm-shrinkwrap.json ./grunt/npm-shrinkwrap.json",
|
||||
"test": "npm run eslint && grunt test"
|
||||
"bash": "bash",
|
||||
"css": "npm-run-all css-lint css-compile css-prefix css-minify",
|
||||
"css-docs": "npm-run-all css-lint-docs css-compile-docs css-prefix-docs css-minify-docs",
|
||||
"css-lint": "bundle exec scss-lint --config scss/.scss-lint.yml scss/*.scss",
|
||||
"css-lint-docs": "bundle exec scss-lint --config scss/.scss-lint.yml --exclude docs/assets/scss/docs.scss docs/assets/scss/*.scss",
|
||||
"css-compile": "node-sass --output-style expanded --source-map true --precision 6 scss/bootstrap.scss dist/css/bootstrap.css && node-sass --output-style expanded --source-map true --precision 6 scss/bootstrap-grid.scss dist/css/bootstrap-grid.css && node-sass --output-style expanded --source-map true --precision 6 scss/bootstrap-reboot.scss dist/css/bootstrap-reboot.css",
|
||||
"css-compile-docs": "node-sass --output-style expanded --source-map true --precision 6 docs/assets/scss/docs.scss docs/assets/css/docs.min.css",
|
||||
"css-prefix": "postcss --config build/ --replace dist/css/*.css",
|
||||
"css-prefix-docs": "postcss --config build/ --no-map --replace docs/assets/css/docs.min.css docs/examples/**/*.css",
|
||||
"css-minify": "cleancss --level 1 --source-map --output dist/css/bootstrap.min.css dist/css/bootstrap.css && cleancss --level 1 --source-map --output dist/css/bootstrap-grid.min.css dist/css/bootstrap-grid.css && cleancss --level 1 --source-map --output dist/css/bootstrap-reboot.min.css dist/css/bootstrap-reboot.css",
|
||||
"css-minify-docs": "cleancss --level 1 --source-map --output docs/assets/css/docs.min.css docs/assets/css/docs.min.css",
|
||||
"js": "npm-run-all js-compile js-minify",
|
||||
"js-docs": "npm-run-all js-lint-docs js-minify-docs",
|
||||
"js-lint": "eslint js/ && eslint --config js/tests/.eslintrc.json --env node build/ Gruntfile.js",
|
||||
"js-lint-docs": "eslint --config js/tests/.eslintrc.json docs/assets/js/",
|
||||
"js-compile": "npm-run-all --parallel js-compile-*",
|
||||
"js-compile-bundle": "shx cat js/src/util.js js/src/alert.js js/src/button.js js/src/carousel.js js/src/collapse.js js/src/dropdown.js js/src/modal.js js/src/scrollspy.js js/src/tab.js js/src/tooltip.js js/src/popover.js | shx sed \"s/^(import|export).*//\" | babel --filename js/src/bootstrap.js | node build/stamp.js > dist/js/bootstrap.js",
|
||||
"js-compile-plugins": "babel js/src/ --out-dir js/dist/ --source-maps",
|
||||
"js-minify": "uglifyjs --compress warnings=false --mangle --comments '/^!/' --output dist/js/bootstrap.min.js dist/js/bootstrap.js",
|
||||
"js-minify-docs": "uglifyjs --compress warnings=false --mangle --comments '/^!/' --output docs/assets/js/docs.min.js docs/assets/js/vendor/anchor.min.js docs/assets/js/vendor/clipboard.min.js docs/assets/js/vendor/holder.min.js docs/assets/js/src/application.js",
|
||||
"js-test": "phantomjs ./node_modules/qunit-phantomjs-runner/runner.js js/tests/index.html 60",
|
||||
"js-test-cloud": "ruby -run -ehttpd . -p3000 > /dev/null & grunt saucelabs-qunit",
|
||||
"docs": "npm-run-all docs-compile docs-lint",
|
||||
"docs-lint": "htmlhint --config docs/.htmlhintrc _gh_pages/ js/tests/visual/ && htmllint --rc docs/.htmllintrc _gh_pages/*.html _gh_pages/**/*.html js/tests/visual/*.html",
|
||||
"docs-clean": "shx rm -r docs/dist/* && shx cp -r dist/* docs/dist/",
|
||||
"docs-compile": "npm run docs-clean && bundle exec jekyll build",
|
||||
"docs-serve": "npm run docs-clean && bundle exec jekyll serve",
|
||||
"docs-github": "shx echo 'github: true' > $npm_config_tmp/twbsconfig.yml && npm run docs-compile -- --config _config.yml,$npm_config_tmp/twbsconfig.yml && shx rm $npm_config_tmp/twbsconfig.yml",
|
||||
"docs-upload-preview": "build/upload-preview.sh",
|
||||
"maintenance-dependencies": "ncu -a -x jquery && bundle update && shx echo 'Manually update docs/assets/js/vendor/*, js/tests/vendor/*, bower.json and .travis.yml'",
|
||||
"maintenance-shrinkwrap": "npm shrinkwrap --dev && shx mv npm-shrinkwrap.json build/npm-shrinkwrap.json",
|
||||
"release-version": "node build/change-version.js",
|
||||
"release-zip": "cd dist/ && zip -r9 bootstrap-$npm_package_version-dist.zip * && shx mv bootstrap-$npm_package_version-dist.zip ..",
|
||||
"dist": "npm-run-all --parallel css js",
|
||||
"test": "npm-run-all dist docs"
|
||||
},
|
||||
"style": "dist/css/bootstrap.css",
|
||||
"sass": "scss/bootstrap.scss",
|
||||
@ -53,45 +70,40 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"autoprefixer": "^6.7.7",
|
||||
"babel-eslint": "^7.1.1",
|
||||
"babel-plugin-transform-es2015-modules-strip": "^0.1.0",
|
||||
"babel-preset-es2015": "^6.24.0",
|
||||
"clean-css-cli": "^4.0.9",
|
||||
"eslint": "^3.18.0",
|
||||
"babel-cli": "^6.24.1",
|
||||
"babel-eslint": "^7.2.2",
|
||||
"babel-plugin-transform-es2015-modules-strip": "^0.1.1",
|
||||
"babel-preset-es2015": "^7.0.0-alpha.7",
|
||||
"clean-css-cli": "^4.0.12",
|
||||
"eslint": "^3.19.0",
|
||||
"grunt": "^1.0.1",
|
||||
"grunt-babel": "^6.0.0",
|
||||
"grunt-build-control": "^0.7.1",
|
||||
"grunt-contrib-clean": "^1.0.0",
|
||||
"grunt-contrib-compress": "^1.4.1",
|
||||
"grunt-contrib-concat": "^1.0.1",
|
||||
"grunt-contrib-connect": "^1.0.2",
|
||||
"grunt-contrib-copy": "^1.0.0",
|
||||
"grunt-contrib-qunit": "^1.3.0",
|
||||
"grunt-contrib-watch": "^1.0.0",
|
||||
"grunt-exec": "^2.0.0",
|
||||
"grunt-saucelabs": "^9.0.0",
|
||||
"grunt-stamp": "^0.3.0",
|
||||
"htmlhint": "^0.9.13",
|
||||
"htmllint-cli": "^0.0.6",
|
||||
"is-travis": "^1.0.0",
|
||||
"load-grunt-tasks": "^3.5.2",
|
||||
"node-sass": "^4.5.0",
|
||||
"postcss-cli": "^3.0.0",
|
||||
"postcss-flexbugs-fixes": "^2.1.0",
|
||||
"node-sass": "^4.5.2",
|
||||
"npm-run-all": "^4.0.2",
|
||||
"phantomjs-prebuilt": "^2.1.14",
|
||||
"postcss-cli": "^3.1.1",
|
||||
"postcss-flexbugs-fixes": "^2.1.1",
|
||||
"qunit-phantomjs-runner": "^2.3.0",
|
||||
"qunitjs": "^2.3.1",
|
||||
"shelljs": "^0.7.7",
|
||||
"shx": "^0.2.2",
|
||||
"time-grunt": "^1.4.0",
|
||||
"uglify-js": "^2.8.14"
|
||||
"uglify-js": "^2.8.22"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
},
|
||||
"files": [
|
||||
"dist",
|
||||
"grunt",
|
||||
"js/**/*.js",
|
||||
"scss/**/*.scss",
|
||||
".babelrc",
|
||||
".eslintignore",
|
||||
"Gruntfile.js",
|
||||
"dist",
|
||||
"build",
|
||||
"js/.eslintrc.json",
|
||||
"js/**/*.js",
|
||||
"scss/.scss-lint.yml",
|
||||
"scss/**/*.scss",
|
||||
"LICENSE"
|
||||
],
|
||||
"jspm": {
|
||||
|
@ -42,14 +42,14 @@
|
||||
// Generate contextual modifier classes for colorizing the alert.
|
||||
|
||||
.alert-success {
|
||||
@include alert-variant($alert-success-bg, $alert-success-border, $alert-success-text);
|
||||
@include alert-variant($alert-success-bg, $alert-success-border-color, $alert-success-text);
|
||||
}
|
||||
.alert-info {
|
||||
@include alert-variant($alert-info-bg, $alert-info-border, $alert-info-text);
|
||||
@include alert-variant($alert-info-bg, $alert-info-border-color, $alert-info-text);
|
||||
}
|
||||
.alert-warning {
|
||||
@include alert-variant($alert-warning-bg, $alert-warning-border, $alert-warning-text);
|
||||
@include alert-variant($alert-warning-bg, $alert-warning-border-color, $alert-warning-text);
|
||||
}
|
||||
.alert-danger {
|
||||
@include alert-variant($alert-danger-bg, $alert-danger-border, $alert-danger-text);
|
||||
@include alert-variant($alert-danger-bg, $alert-danger-border-color, $alert-danger-text);
|
||||
}
|
||||
|
@ -28,7 +28,6 @@
|
||||
// Disabled comes first so active can properly restyle
|
||||
&.disabled,
|
||||
&:disabled {
|
||||
cursor: $cursor-disabled;
|
||||
opacity: .65;
|
||||
@include box-shadow(none);
|
||||
}
|
||||
@ -52,22 +51,22 @@ fieldset[disabled] a.btn {
|
||||
//
|
||||
|
||||
.btn-primary {
|
||||
@include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border);
|
||||
@include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border-color);
|
||||
}
|
||||
.btn-secondary {
|
||||
@include button-variant($btn-secondary-color, $btn-secondary-bg, $btn-secondary-border);
|
||||
@include button-variant($btn-secondary-color, $btn-secondary-bg, $btn-secondary-border-color);
|
||||
}
|
||||
.btn-info {
|
||||
@include button-variant($btn-info-color, $btn-info-bg, $btn-info-border);
|
||||
@include button-variant($btn-info-color, $btn-info-bg, $btn-info-border-color);
|
||||
}
|
||||
.btn-success {
|
||||
@include button-variant($btn-success-color, $btn-success-bg, $btn-success-border);
|
||||
@include button-variant($btn-success-color, $btn-success-bg, $btn-success-border-color);
|
||||
}
|
||||
.btn-warning {
|
||||
@include button-variant($btn-warning-color, $btn-warning-bg, $btn-warning-border);
|
||||
@include button-variant($btn-warning-color, $btn-warning-bg, $btn-warning-border-color);
|
||||
}
|
||||
.btn-danger {
|
||||
@include button-variant($btn-danger-color, $btn-danger-bg, $btn-danger-border);
|
||||
@include button-variant($btn-danger-color, $btn-danger-bg, $btn-danger-border-color);
|
||||
}
|
||||
|
||||
// Remove all backgrounds
|
||||
@ -75,7 +74,7 @@ fieldset[disabled] a.btn {
|
||||
@include button-outline-variant($btn-primary-bg, $btn-primary-color);
|
||||
}
|
||||
.btn-outline-secondary {
|
||||
@include button-outline-variant($btn-secondary-border, $btn-secondary-color);
|
||||
@include button-outline-variant($btn-secondary-border-color, $btn-secondary-color);
|
||||
}
|
||||
.btn-outline-info {
|
||||
@include button-outline-variant($btn-info-bg, $btn-info-color);
|
||||
|
@ -20,6 +20,7 @@
|
||||
|
||||
.card-title {
|
||||
margin-bottom: $card-spacer-y;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.card-subtitle {
|
||||
@ -124,7 +125,7 @@
|
||||
@include card-outline-variant($btn-primary-bg);
|
||||
}
|
||||
.card-outline-secondary {
|
||||
@include card-outline-variant($btn-secondary-border);
|
||||
@include card-outline-variant($btn-secondary-border-color);
|
||||
}
|
||||
.card-outline-info {
|
||||
@include card-outline-variant($btn-info-bg);
|
||||
@ -262,15 +263,18 @@
|
||||
// Columns
|
||||
//
|
||||
|
||||
@include media-breakpoint-up(sm) {
|
||||
.card-columns {
|
||||
.card-columns {
|
||||
.card {
|
||||
margin-bottom: $card-columns-margin;
|
||||
}
|
||||
|
||||
@include media-breakpoint-up(sm) {
|
||||
column-count: $card-columns-count;
|
||||
column-gap: $card-columns-gap;
|
||||
|
||||
.card {
|
||||
display: inline-block; // Don't let them vertically span multiple columns
|
||||
width: 100%; // Don't let their width change
|
||||
margin-bottom: $card-columns-margin;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -41,13 +41,11 @@
|
||||
|
||||
&:disabled {
|
||||
~ .custom-control-indicator {
|
||||
cursor: $custom-control-disabled-cursor;
|
||||
background-color: $custom-control-disabled-indicator-bg;
|
||||
}
|
||||
|
||||
~ .custom-control-description {
|
||||
color: $custom-control-disabled-description-color;
|
||||
cursor: $custom-control-disabled-cursor;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -169,7 +167,6 @@
|
||||
|
||||
&:disabled {
|
||||
color: $custom-select-disabled-color;
|
||||
cursor: $cursor-disabled;
|
||||
background-color: $custom-select-disabled-bg;
|
||||
}
|
||||
|
||||
|
@ -90,7 +90,6 @@
|
||||
&.disabled,
|
||||
&:disabled {
|
||||
color: $dropdown-link-disabled-color;
|
||||
cursor: $cursor-disabled;
|
||||
background-color: transparent;
|
||||
// Remove CSS gradients if they're enabled
|
||||
@if $enable-gradients {
|
||||
@ -136,16 +135,6 @@
|
||||
white-space: nowrap; // as with > li > a
|
||||
}
|
||||
|
||||
// Backdrop to catch body clicks on mobile, etc.
|
||||
.dropdown-backdrop {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
z-index: $zindex-dropdown-backdrop;
|
||||
}
|
||||
|
||||
// Allow for dropdowns to go bottom up (aka, dropup-menu)
|
||||
//
|
||||
// Just add .dropup after the standard .dropdown class and you're set.
|
||||
|
@ -58,10 +58,6 @@
|
||||
// iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
&:disabled {
|
||||
cursor: $cursor-disabled;
|
||||
}
|
||||
}
|
||||
|
||||
select.form-control {
|
||||
@ -212,7 +208,6 @@ select.form-control-lg {
|
||||
&.disabled {
|
||||
.form-check-label {
|
||||
color: $text-muted;
|
||||
cursor: $cursor-disabled;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -65,7 +65,6 @@
|
||||
&.disabled,
|
||||
&:disabled {
|
||||
color: $list-group-disabled-color;
|
||||
cursor: $cursor-disabled;
|
||||
background-color: $list-group-disabled-bg;
|
||||
}
|
||||
|
||||
@ -74,7 +73,7 @@
|
||||
z-index: 2; // Place active items above their siblings for proper border styling
|
||||
color: $list-group-active-color;
|
||||
background-color: $list-group-active-bg;
|
||||
border-color: $list-group-active-border;
|
||||
border-color: $list-group-active-border-color;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -19,10 +19,9 @@
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
// Disabled state lightens text and removes hover/tab effects
|
||||
// Disabled state lightens text
|
||||
&.disabled {
|
||||
color: $nav-disabled-link-color;
|
||||
cursor: $cursor-disabled;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -226,7 +226,7 @@
|
||||
|
||||
.navbar-toggler {
|
||||
color: $navbar-light-color;
|
||||
border-color: $navbar-light-toggler-border;
|
||||
border-color: $navbar-light-toggler-border-color;
|
||||
}
|
||||
|
||||
.navbar-toggler-icon {
|
||||
@ -271,7 +271,7 @@
|
||||
|
||||
.navbar-toggler {
|
||||
color: $navbar-inverse-color;
|
||||
border-color: $navbar-inverse-toggler-border;
|
||||
border-color: $navbar-inverse-toggler-border-color;
|
||||
}
|
||||
|
||||
.navbar-toggler-icon {
|
||||
|
@ -23,15 +23,14 @@
|
||||
z-index: 2;
|
||||
color: $pagination-active-color;
|
||||
background-color: $pagination-active-bg;
|
||||
border-color: $pagination-active-border;
|
||||
border-color: $pagination-active-border-color;
|
||||
}
|
||||
|
||||
&.disabled .page-link {
|
||||
color: $pagination-disabled-color;
|
||||
pointer-events: none;
|
||||
cursor: $cursor-disabled; // While `pointer-events: none` removes the cursor in modern browsers, we provide a disabled cursor as a fallback.
|
||||
background-color: $pagination-disabled-bg;
|
||||
border-color: $pagination-disabled-border;
|
||||
border-color: $pagination-disabled-border-color;
|
||||
}
|
||||
}
|
||||
|
||||
@ -49,7 +48,7 @@
|
||||
color: $pagination-hover-color;
|
||||
text-decoration: none;
|
||||
background-color: $pagination-hover-bg;
|
||||
border-color: $pagination-hover-border;
|
||||
border-color: $pagination-hover-border-color;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -86,7 +86,7 @@
|
||||
&::after {
|
||||
top: -($popover-arrow-outer-width - 1);
|
||||
margin-left: -$popover-arrow-width;
|
||||
border-bottom-color: $popover-title-bg;
|
||||
border-bottom-color: $popover-arrow-color;
|
||||
}
|
||||
|
||||
// This will remove the popover-title's border just below the arrow
|
||||
|
@ -368,13 +368,6 @@ input[type="radio"],
|
||||
input[type="checkbox"] {
|
||||
box-sizing: border-box; // 1. Add the correct box sizing in IE 10-
|
||||
padding: 0; // 2. Remove the padding in IE 10-
|
||||
|
||||
// Apply a disabled cursor for radios and checkboxes.
|
||||
//
|
||||
// Note: Neither radios nor checkboxes can be readonly.
|
||||
&:disabled {
|
||||
cursor: $cursor-disabled;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -125,7 +125,7 @@
|
||||
th,
|
||||
td,
|
||||
thead th {
|
||||
border-color: $table-inverse-border;
|
||||
border-color: $table-inverse-border-color;
|
||||
}
|
||||
|
||||
&.table-bordered {
|
||||
|
@ -330,7 +330,7 @@ $table-inverse-bg: $gray-dark !default;
|
||||
$table-inverse-bg-accent: rgba($white, .05) !default;
|
||||
$table-inverse-bg-hover: rgba($white, .075) !default;
|
||||
$table-inverse-bg-active: $table-inverse-bg-hover !default;
|
||||
$table-inverse-border: lighten($gray-dark, 7.5%) !default;
|
||||
$table-inverse-border-color: lighten($gray-dark, 7.5%) !default;
|
||||
$table-inverse-color: $body-bg !default;
|
||||
|
||||
|
||||
@ -357,27 +357,27 @@ $btn-active-box-shadow: inset 0 3px 5px rgba($black,.125) !default;
|
||||
|
||||
$btn-primary-color: $white !default;
|
||||
$btn-primary-bg: $brand-primary !default;
|
||||
$btn-primary-border: $btn-primary-bg !default;
|
||||
$btn-primary-border-color: $btn-primary-bg !default;
|
||||
|
||||
$btn-secondary-color: $gray-dark !default;
|
||||
$btn-secondary-bg: $white !default;
|
||||
$btn-secondary-border: #ccc !default;
|
||||
$btn-secondary-border-color: #ccc !default;
|
||||
|
||||
$btn-info-color: $white !default;
|
||||
$btn-info-bg: $brand-info !default;
|
||||
$btn-info-border: $btn-info-bg !default;
|
||||
$btn-info-border-color: $btn-info-bg !default;
|
||||
|
||||
$btn-success-color: $white !default;
|
||||
$btn-success-bg: $brand-success !default;
|
||||
$btn-success-border: $btn-success-bg !default;
|
||||
$btn-success-border-color: $btn-success-bg !default;
|
||||
|
||||
$btn-warning-color: $white !default;
|
||||
$btn-warning-bg: $brand-warning !default;
|
||||
$btn-warning-border: $btn-warning-bg !default;
|
||||
$btn-warning-border-color: $btn-warning-bg !default;
|
||||
|
||||
$btn-danger-color: $white !default;
|
||||
$btn-danger-bg: $brand-danger !default;
|
||||
$btn-danger-border: $btn-danger-bg !default;
|
||||
$btn-danger-border-color: $btn-danger-bg !default;
|
||||
|
||||
$btn-link-disabled-color: $gray-light !default;
|
||||
|
||||
@ -406,7 +406,7 @@ $input-border-radius-lg: $border-radius-lg !default;
|
||||
$input-border-radius-sm: $border-radius-sm !default;
|
||||
|
||||
$input-bg-focus: $input-bg !default;
|
||||
$input-border-focus: lighten($brand-primary, 25%) !default;
|
||||
$input-border-color-focus: lighten($brand-primary, 25%) !default;
|
||||
$input-box-shadow-focus: $input-box-shadow, $btn-focus-box-shadow !default;
|
||||
$input-color-focus: $input-color !default;
|
||||
|
||||
@ -433,8 +433,6 @@ $form-group-margin-bottom: 1rem !default;
|
||||
$input-group-addon-bg: $gray-lighter !default;
|
||||
$input-group-addon-border-color: $input-border-color !default;
|
||||
|
||||
$cursor-disabled: not-allowed !default;
|
||||
|
||||
$custom-control-gutter: 1.5rem !default;
|
||||
$custom-control-spacer-y: .25rem !default;
|
||||
$custom-control-spacer-x: 1rem !default;
|
||||
@ -444,7 +442,6 @@ $custom-control-indicator-bg: #ddd !default;
|
||||
$custom-control-indicator-bg-size: 50% 50% !default;
|
||||
$custom-control-indicator-box-shadow: inset 0 .25rem .25rem rgba($black,.1) !default;
|
||||
|
||||
$custom-control-disabled-cursor: $cursor-disabled !default;
|
||||
$custom-control-disabled-indicator-bg: $gray-lighter !default;
|
||||
$custom-control-disabled-description-color: $gray-light !default;
|
||||
|
||||
@ -558,7 +555,6 @@ $dropdown-header-color: $gray-light !default;
|
||||
// Warning: Avoid customizing these values. They're used for a bird's eye view
|
||||
// of components dependent on the z-axis and are designed to all work together.
|
||||
|
||||
$zindex-dropdown-backdrop: 990 !default;
|
||||
$zindex-dropdown: 1000 !default;
|
||||
$zindex-sticky: 1020 !default;
|
||||
$zindex-fixed: 1030 !default;
|
||||
@ -611,14 +607,14 @@ $navbar-inverse-hover-color: rgba($white,.75) !default;
|
||||
$navbar-inverse-active-color: rgba($white,1) !default;
|
||||
$navbar-inverse-disabled-color: rgba($white,.25) !default;
|
||||
$navbar-inverse-toggler-bg: str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-inverse-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"), "#", "%23") !default;
|
||||
$navbar-inverse-toggler-border: rgba($white,.1) !default;
|
||||
$navbar-inverse-toggler-border-color: rgba($white,.1) !default;
|
||||
|
||||
$navbar-light-color: rgba($black,.5) !default;
|
||||
$navbar-light-hover-color: rgba($black,.7) !default;
|
||||
$navbar-light-active-color: rgba($black,.9) !default;
|
||||
$navbar-light-disabled-color: rgba($black,.3) !default;
|
||||
$navbar-light-toggler-bg: str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-light-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"), "#", "%23") !default;
|
||||
$navbar-light-toggler-border: rgba($black,.1) !default;
|
||||
$navbar-light-toggler-border-color: rgba($black,.1) !default;
|
||||
|
||||
// Pagination
|
||||
|
||||
@ -637,15 +633,15 @@ $pagination-border-color: #ddd !default;
|
||||
|
||||
$pagination-hover-color: $link-hover-color !default;
|
||||
$pagination-hover-bg: $gray-lighter !default;
|
||||
$pagination-hover-border: #ddd !default;
|
||||
$pagination-hover-border-color: #ddd !default;
|
||||
|
||||
$pagination-active-color: $white !default;
|
||||
$pagination-active-bg: $brand-primary !default;
|
||||
$pagination-active-border: $brand-primary !default;
|
||||
$pagination-active-border-color: $brand-primary !default;
|
||||
|
||||
$pagination-disabled-color: $gray-light !default;
|
||||
$pagination-disabled-bg: $white !default;
|
||||
$pagination-disabled-border: #ddd !default;
|
||||
$pagination-disabled-border-color: #ddd !default;
|
||||
|
||||
|
||||
// Jumbotron
|
||||
@ -660,20 +656,20 @@ $jumbotron-bg: $gray-lighter !default;
|
||||
|
||||
$state-success-text: #3c763d !default;
|
||||
$state-success-bg: #dff0d8 !default;
|
||||
$state-success-border: darken($state-success-bg, 5%) !default;
|
||||
$state-success-border-color: darken($state-success-bg, 5%) !default;
|
||||
|
||||
$state-info-text: #31708f !default;
|
||||
$state-info-bg: #d9edf7 !default;
|
||||
$state-info-border: darken($state-info-bg, 7%) !default;
|
||||
$state-info-border-color: darken($state-info-bg, 7%) !default;
|
||||
|
||||
$state-warning-text: #8a6d3b !default;
|
||||
$state-warning-bg: #fcf8e3 !default;
|
||||
$mark-bg: $state-warning-bg !default;
|
||||
$state-warning-border: darken($state-warning-bg, 5%) !default;
|
||||
$state-warning-border-color: darken($state-warning-bg, 5%) !default;
|
||||
|
||||
$state-danger-text: #a94442 !default;
|
||||
$state-danger-bg: #f2dede !default;
|
||||
$state-danger-border: darken($state-danger-bg, 5%) !default;
|
||||
$state-danger-border-color: darken($state-danger-bg, 5%) !default;
|
||||
|
||||
|
||||
// Cards
|
||||
@ -803,19 +799,19 @@ $alert-border-width: $border-width !default;
|
||||
|
||||
$alert-success-bg: $state-success-bg !default;
|
||||
$alert-success-text: $state-success-text !default;
|
||||
$alert-success-border: $state-success-border !default;
|
||||
$alert-success-border-color: $state-success-border-color !default;
|
||||
|
||||
$alert-info-bg: $state-info-bg !default;
|
||||
$alert-info-text: $state-info-text !default;
|
||||
$alert-info-border: $state-info-border !default;
|
||||
$alert-info-border-color: $state-info-border-color !default;
|
||||
|
||||
$alert-warning-bg: $state-warning-bg !default;
|
||||
$alert-warning-text: $state-warning-text !default;
|
||||
$alert-warning-border: $state-warning-border !default;
|
||||
$alert-warning-border-color: $state-warning-border-color !default;
|
||||
|
||||
$alert-danger-bg: $state-danger-bg !default;
|
||||
$alert-danger-text: $state-danger-text !default;
|
||||
$alert-danger-border: $state-danger-border !default;
|
||||
$alert-danger-border-color: $state-danger-border-color !default;
|
||||
|
||||
|
||||
// Progress bars
|
||||
@ -841,10 +837,10 @@ $list-group-border-radius: $border-radius !default;
|
||||
$list-group-item-padding-y: .75rem !default;
|
||||
$list-group-item-padding-x: 1.25rem !default;
|
||||
|
||||
$list-group-hover-bg: $gray-lightest !default;
|
||||
$list-group-active-color: $component-active-color !default;
|
||||
$list-group-active-bg: $component-active-bg !default;
|
||||
$list-group-active-border: $list-group-active-bg !default;
|
||||
$list-group-hover-bg: $gray-lightest !default;
|
||||
$list-group-active-color: $component-active-color !default;
|
||||
$list-group-active-bg: $component-active-bg !default;
|
||||
$list-group-active-border-color: $list-group-active-bg !default;
|
||||
|
||||
$list-group-disabled-color: $gray-light !default;
|
||||
$list-group-disabled-bg: $list-group-bg !default;
|
||||
|
@ -13,6 +13,12 @@
|
||||
@mixin card-outline-variant($color) {
|
||||
background-color: transparent;
|
||||
border-color: $color;
|
||||
|
||||
.card-header,
|
||||
.card-footer {
|
||||
background-color: transparent;
|
||||
border-color: $color;
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
|
@ -35,7 +35,7 @@
|
||||
// Form control focus state
|
||||
//
|
||||
// Generate a customized focus state and for any input with the specified color,
|
||||
// which defaults to the `@input-border-focus` variable.
|
||||
// which defaults to the `@input-border-color-focus` variable.
|
||||
//
|
||||
// We highly encourage you to not customize the default value, but instead use
|
||||
// this to tweak colors on an as-needed basis. This aesthetic change is based on
|
||||
@ -48,7 +48,7 @@
|
||||
&:focus {
|
||||
color: $input-color-focus;
|
||||
background-color: $input-bg-focus;
|
||||
border-color: $input-border-focus;
|
||||
border-color: $input-border-color-focus;
|
||||
outline: none;
|
||||
@include box-shadow($input-box-shadow-focus);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user