Update bootstrap to 3.3.7. Commit ready for merge.
- Legacy-Id: 13098
This commit is contained in:
parent
bb13eeefb5
commit
00accc3d86
|
@ -24,11 +24,16 @@ restrictions:
|
||||||
* Please **do not** derail or troll issues. Keep the discussion on topic and
|
* Please **do not** derail or troll issues. Keep the discussion on topic and
|
||||||
respect the opinions of others.
|
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)
|
||||||
|
instead. We reserve the right to delete comments which violate this rule.
|
||||||
|
|
||||||
* Please **do not** open issues or pull requests regarding the code in
|
* Please **do not** open issues or pull requests regarding the code in
|
||||||
[`Normalize`](https://github.com/necolas/normalize.css) (open them in
|
[`Normalize`](https://github.com/necolas/normalize.css) (open them in
|
||||||
their respective repositories).
|
their respective repositories).
|
||||||
|
|
||||||
* Please **do not** open issues regarding the official themes offered on <http://themes.getbootstrap.com/>. Instead, please email any questions or feedback regarding those themes to `themes AT getbootstrap DOT com`.
|
* Please **do not** open issues regarding the official themes offered on <http://themes.getbootstrap.com/>.
|
||||||
|
Instead, please email any questions or feedback regarding those themes to `themes AT getbootstrap DOT com`.
|
||||||
|
|
||||||
|
|
||||||
## Issues and labels
|
## Issues and labels
|
||||||
|
@ -37,7 +42,7 @@ Our bug tracker utilizes several labels to help organize and identify issues. He
|
||||||
|
|
||||||
- `browser bug` - Issues that are reported to us, but actually are the result of a browser-specific bug. These are diagnosed with reduced test cases and result in an issue opened on that browser's own bug tracker.
|
- `browser bug` - Issues that are reported to us, but actually are the result of a browser-specific bug. These are diagnosed with reduced test cases and result in an issue opened on that browser's own bug tracker.
|
||||||
- `confirmed` - Issues that have been confirmed with a reduced test case and identify a bug in Bootstrap.
|
- `confirmed` - Issues that have been confirmed with a reduced test case and identify a bug in Bootstrap.
|
||||||
- `css` - Issues stemming from our compiled CSS or source Less files.
|
- `css` - Issues stemming from our compiled CSS or source Less/Sass files.
|
||||||
- `customizer` - Issues with our web-based Customizer.
|
- `customizer` - Issues with our web-based Customizer.
|
||||||
- `docs` - Issues for improving or updating our documentation.
|
- `docs` - Issues for improving or updating our documentation.
|
||||||
- `examples` - Issues involving the example templates included in our docs.
|
- `examples` - Issues involving the example templates included in our docs.
|
||||||
|
@ -107,7 +112,7 @@ When feasible, we aim to report such upstream bugs to the relevant browser vendo
|
||||||
| Mozilla | Firefox | Gecko | https://bugzilla.mozilla.org/enter_bug.cgi | "Core" is normally the right product option to choose. |
|
| Mozilla | Firefox | Gecko | https://bugzilla.mozilla.org/enter_bug.cgi | "Core" is normally the right product option to choose. |
|
||||||
| Apple | Safari | WebKit | https://bugs.webkit.org/enter_bug.cgi?product=WebKit <br> https://bugreport.apple.com | In Apple's bug reporter, choose "Safari" as the product. |
|
| Apple | Safari | WebKit | https://bugs.webkit.org/enter_bug.cgi?product=WebKit <br> https://bugreport.apple.com | In Apple's bug reporter, choose "Safari" as the product. |
|
||||||
| Google, Opera | Chrome, Chromium, Opera v15+ | Blink | https://code.google.com/p/chromium/issues/list | Click the "New issue" button. |
|
| Google, Opera | Chrome, Chromium, Opera v15+ | Blink | https://code.google.com/p/chromium/issues/list | Click the "New issue" button. |
|
||||||
| Microsoft | Internet Explorer / Edge | Trident/EdgeHTML | https://connect.microsoft.com/IE/feedback/LoadSubmitFeedbackForm | |
|
| Microsoft | Edge | EdgeHTML | https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/ | |
|
||||||
|
|
||||||
### Issues bots
|
### Issues bots
|
||||||
|
|
||||||
|
@ -116,7 +121,13 @@ When feasible, we aim to report such upstream bugs to the relevant browser vendo
|
||||||
|
|
||||||
## Feature requests
|
## Feature requests
|
||||||
|
|
||||||
Feature requests are welcome. But take a moment to find out whether your idea
|
Feature requests are welcome, but please note that they **must target
|
||||||
|
[Bootstrap v4](https://github.com/twbs/bootstrap/tree/v4-dev),** because
|
||||||
|
Bootstrap v3 is now in maintenance mode and is closed off to new features.
|
||||||
|
This is so that we can focus our efforts on Bootstrap v4, the future of the
|
||||||
|
framework.
|
||||||
|
|
||||||
|
Before opening a feature request, please take a moment to find out whether your idea
|
||||||
fits with the scope and aims of the project. It's up to *you* to make a strong
|
fits with the scope and aims of the project. It's up to *you* to make a strong
|
||||||
case to convince the project's developers of the merits of this feature. Please
|
case to convince the project's developers of the merits of this feature. Please
|
||||||
provide as much detail and context as possible.
|
provide as much detail and context as possible.
|
||||||
|
@ -133,13 +144,21 @@ implementing features, refactoring code, porting to a different language),
|
||||||
otherwise you risk spending a lot of time working on something that the
|
otherwise you risk spending a lot of time working on something that the
|
||||||
project's developers might not want to merge into the project.
|
project's developers might not want to merge into the project.
|
||||||
|
|
||||||
|
In particular, **pull requests that add new features to Bootstrap v3 will be
|
||||||
|
rejected.** Bootstrap v3 is now in maintenance mode and is therefore closed
|
||||||
|
off to new features, so that we can focus our efforts on Bootstrap v4, the
|
||||||
|
future of the framework. Pull requests that add new features should target
|
||||||
|
[Bootstrap v4 (the `v4-dev` git branch)](https://github.com/twbs/bootstrap/tree/v4-dev)
|
||||||
|
instead, where they will be welcomed and duly considered.
|
||||||
|
|
||||||
Please adhere to the [coding guidelines](#code-guidelines) used throughout the
|
Please adhere to the [coding guidelines](#code-guidelines) used throughout the
|
||||||
project (indentation, accurate comments, etc.) and any other requirements
|
project (indentation, accurate comments, etc.) and any other requirements
|
||||||
(such as test coverage).
|
(such as test coverage).
|
||||||
|
|
||||||
**Do not edit `bootstrap.css`, `bootstrap-theme.css`, or `bootstrap.js`
|
**Do not edit `bootstrap.css`, `bootstrap-theme.css`, or `bootstrap.js`
|
||||||
directly!** Those files are automatically generated. You should edit the
|
directly!** Those files are automatically generated. You should edit the
|
||||||
source files in [`/bootstrap/less/`](https://github.com/twbs/bootstrap/tree/master/less)
|
source files in [`/bootstrap/less/`](https://github.com/twbs/bootstrap/tree/master/less),
|
||||||
|
[`/bootstrap/scss/`](https://github.com/twbs/bootstrap/tree/v4-dev/scss) (for Bootstrap v4),
|
||||||
and/or [`/bootstrap/js/`](https://github.com/twbs/bootstrap/tree/master/js) instead.
|
and/or [`/bootstrap/js/`](https://github.com/twbs/bootstrap/tree/master/js) instead.
|
||||||
|
|
||||||
Similarly, when contributing to Bootstrap's documentation, you should edit the
|
Similarly, when contributing to Bootstrap's documentation, you should edit the
|
||||||
|
@ -179,7 +198,7 @@ included in the project:
|
||||||
|
|
||||||
4. Commit your changes in logical chunks. Please adhere to these [git commit
|
4. Commit your changes in logical chunks. Please adhere to these [git commit
|
||||||
message guidelines](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html)
|
message guidelines](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html)
|
||||||
or your code is unlikely be merged into the main project. Use Git's
|
or your code is unlikely to be merged into the main project. Use Git's
|
||||||
[interactive rebase](https://help.github.com/articles/interactive-rebase)
|
[interactive rebase](https://help.github.com/articles/interactive-rebase)
|
||||||
feature to tidy up your commits before making them public.
|
feature to tidy up your commits before making them public.
|
||||||
|
|
||||||
|
@ -229,7 +248,7 @@ includes code changes) and under the terms of the
|
||||||
[Adhere to the Code Guide.](http://codeguide.co/#css)
|
[Adhere to the Code Guide.](http://codeguide.co/#css)
|
||||||
|
|
||||||
- When feasible, default color palettes should comply with [WCAG color contrast guidelines](http://www.w3.org/TR/WCAG20/#visual-audio-contrast).
|
- When feasible, default color palettes should comply with [WCAG color contrast guidelines](http://www.w3.org/TR/WCAG20/#visual-audio-contrast).
|
||||||
- Except in rare cases, don't remove default `:focus` styles (via e.g. `outline: none;`) without providing alternative styles. See [this A11Y Project post](http://a11yproject.com/posts/never-remove-css-outlines/) for more details.
|
- Except in rare cases, don't remove default `:focus` styles (via e.g. `outline: none;`) without providing alternative styles. See [this A11Y Project post](http://a11yproject.com/posts/never-remove-css-outlines) for more details.
|
||||||
|
|
||||||
### JS
|
### JS
|
||||||
|
|
||||||
|
@ -237,6 +256,7 @@ includes code changes) and under the terms of the
|
||||||
- 2 spaces (no tabs)
|
- 2 spaces (no tabs)
|
||||||
- strict mode
|
- strict mode
|
||||||
- "Attractive"
|
- "Attractive"
|
||||||
|
- Don't use [jQuery event alias convenience methods](https://github.com/jquery/jquery/blob/master/src/event/alias.js) (such as `$().focus()`). Instead, use [`$().trigger(eventType, ...)`](http://api.jquery.com/trigger/) or [`$().on(eventType, ...)`](http://api.jquery.com/on/), depending on whether you're firing an event or listening for an event. (For example, `$().trigger('focus')` or `$().on('focus', function (event) { /* handle focus event */ })`) We do this to be compatible with custom builds of jQuery where the event aliases module has been excluded.
|
||||||
|
|
||||||
### Checking coding style
|
### Checking coding style
|
||||||
|
|
||||||
|
|
6
bootstrap/Gemfile
Normal file
6
bootstrap/Gemfile
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
source 'https://rubygems.org'
|
||||||
|
|
||||||
|
group :development, :test do
|
||||||
|
gem 'jekyll', '~> 3.1.2'
|
||||||
|
gem 'jekyll-sitemap', '~> 0.11.0'
|
||||||
|
end
|
43
bootstrap/Gemfile.lock
Normal file
43
bootstrap/Gemfile.lock
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
GEM
|
||||||
|
remote: https://rubygems.org/
|
||||||
|
specs:
|
||||||
|
addressable (2.4.0)
|
||||||
|
colorator (0.1)
|
||||||
|
ffi (1.9.14-x64-mingw32)
|
||||||
|
jekyll (3.1.6)
|
||||||
|
colorator (~> 0.1)
|
||||||
|
jekyll-sass-converter (~> 1.0)
|
||||||
|
jekyll-watch (~> 1.1)
|
||||||
|
kramdown (~> 1.3)
|
||||||
|
liquid (~> 3.0)
|
||||||
|
mercenary (~> 0.3.3)
|
||||||
|
rouge (~> 1.7)
|
||||||
|
safe_yaml (~> 1.0)
|
||||||
|
jekyll-sass-converter (1.4.0)
|
||||||
|
sass (~> 3.4)
|
||||||
|
jekyll-sitemap (0.11.0)
|
||||||
|
addressable (~> 2.4.0)
|
||||||
|
jekyll-watch (1.4.0)
|
||||||
|
listen (~> 3.0, < 3.1)
|
||||||
|
kramdown (1.11.1)
|
||||||
|
liquid (3.0.6)
|
||||||
|
listen (3.0.8)
|
||||||
|
rb-fsevent (~> 0.9, >= 0.9.4)
|
||||||
|
rb-inotify (~> 0.9, >= 0.9.7)
|
||||||
|
mercenary (0.3.6)
|
||||||
|
rb-fsevent (0.9.7)
|
||||||
|
rb-inotify (0.9.7)
|
||||||
|
ffi (>= 0.5.0)
|
||||||
|
rouge (1.11.1)
|
||||||
|
safe_yaml (1.0.4)
|
||||||
|
sass (3.4.22)
|
||||||
|
|
||||||
|
PLATFORMS
|
||||||
|
x64-mingw32
|
||||||
|
|
||||||
|
DEPENDENCIES
|
||||||
|
jekyll (~> 3.1.2)
|
||||||
|
jekyll-sitemap (~> 0.11.0)
|
||||||
|
|
||||||
|
BUNDLED WITH
|
||||||
|
1.12.5
|
|
@ -1,7 +1,7 @@
|
||||||
/*!
|
/*!
|
||||||
* Bootstrap's Gruntfile
|
* Bootstrap's Gruntfile
|
||||||
* http://getbootstrap.com
|
* http://getbootstrap.com
|
||||||
* Copyright 2013-2015 Twitter, Inc.
|
* Copyright 2013-2016 Twitter, Inc.
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -17,7 +17,6 @@ module.exports = function (grunt) {
|
||||||
|
|
||||||
var fs = require('fs');
|
var fs = require('fs');
|
||||||
var path = require('path');
|
var path = require('path');
|
||||||
var npmShrinkwrap = require('npm-shrinkwrap');
|
|
||||||
var generateGlyphiconsData = require('./grunt/bs-glyphicons-data-generator.js');
|
var generateGlyphiconsData = require('./grunt/bs-glyphicons-data-generator.js');
|
||||||
var BsLessdocParser = require('./grunt/bs-lessdoc-parser.js');
|
var BsLessdocParser = require('./grunt/bs-lessdoc-parser.js');
|
||||||
var getLessVarsData = function () {
|
var getLessVarsData = function () {
|
||||||
|
@ -130,7 +129,7 @@ module.exports = function (grunt) {
|
||||||
warnings: false
|
warnings: false
|
||||||
},
|
},
|
||||||
mangle: true,
|
mangle: true,
|
||||||
preserveComments: 'some'
|
preserveComments: /^!|@preserve|@license|@cc_on/i
|
||||||
},
|
},
|
||||||
core: {
|
core: {
|
||||||
src: '<%= concat.bootstrap.dest %>',
|
src: '<%= concat.bootstrap.dest %>',
|
||||||
|
@ -232,6 +231,7 @@ module.exports = function (grunt) {
|
||||||
compatibility: 'ie8',
|
compatibility: 'ie8',
|
||||||
keepSpecialComments: '*',
|
keepSpecialComments: '*',
|
||||||
sourceMap: true,
|
sourceMap: true,
|
||||||
|
sourceMapInlineSources: true,
|
||||||
advanced: false
|
advanced: false
|
||||||
},
|
},
|
||||||
minifyCore: {
|
minifyCore: {
|
||||||
|
@ -277,7 +277,7 @@ module.exports = function (grunt) {
|
||||||
copy: {
|
copy: {
|
||||||
fonts: {
|
fonts: {
|
||||||
expand: true,
|
expand: true,
|
||||||
src: 'fonts/*',
|
src: 'fonts/**',
|
||||||
dest: 'dist/'
|
dest: 'dist/'
|
||||||
},
|
},
|
||||||
docs: {
|
docs: {
|
||||||
|
@ -301,7 +301,9 @@ module.exports = function (grunt) {
|
||||||
|
|
||||||
jekyll: {
|
jekyll: {
|
||||||
options: {
|
options: {
|
||||||
config: '_config.yml'
|
bundleExec: true,
|
||||||
|
config: '_config.yml',
|
||||||
|
incremental: false
|
||||||
},
|
},
|
||||||
docs: {},
|
docs: {},
|
||||||
github: {
|
github: {
|
||||||
|
@ -314,12 +316,27 @@ module.exports = function (grunt) {
|
||||||
htmlmin: {
|
htmlmin: {
|
||||||
dist: {
|
dist: {
|
||||||
options: {
|
options: {
|
||||||
|
collapseBooleanAttributes: true,
|
||||||
collapseWhitespace: true,
|
collapseWhitespace: true,
|
||||||
conservativeCollapse: true,
|
conservativeCollapse: true,
|
||||||
minifyCSS: true,
|
decodeEntities: false,
|
||||||
|
minifyCSS: {
|
||||||
|
compatibility: 'ie8',
|
||||||
|
keepSpecialComments: 0
|
||||||
|
},
|
||||||
minifyJS: true,
|
minifyJS: true,
|
||||||
|
minifyURLs: false,
|
||||||
|
processConditionalComments: true,
|
||||||
removeAttributeQuotes: true,
|
removeAttributeQuotes: true,
|
||||||
removeComments: true
|
removeComments: true,
|
||||||
|
removeOptionalAttributes: true,
|
||||||
|
removeOptionalTags: true,
|
||||||
|
removeRedundantAttributes: true,
|
||||||
|
removeScriptTypeAttributes: true,
|
||||||
|
removeStyleLinkTypeAttributes: true,
|
||||||
|
removeTagWhitespace: false,
|
||||||
|
sortAttributes: true,
|
||||||
|
sortClassName: true
|
||||||
},
|
},
|
||||||
expand: true,
|
expand: true,
|
||||||
cwd: '_gh_pages',
|
cwd: '_gh_pages',
|
||||||
|
@ -331,17 +348,17 @@ module.exports = function (grunt) {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
jade: {
|
pug: {
|
||||||
options: {
|
options: {
|
||||||
pretty: true,
|
pretty: true,
|
||||||
data: getLessVarsData
|
data: getLessVarsData
|
||||||
},
|
},
|
||||||
customizerVars: {
|
customizerVars: {
|
||||||
src: 'docs/_jade/customizer-variables.jade',
|
src: 'docs/_pug/customizer-variables.pug',
|
||||||
dest: 'docs/_includes/customizer-variables.html'
|
dest: 'docs/_includes/customizer-variables.html'
|
||||||
},
|
},
|
||||||
customizerNav: {
|
customizerNav: {
|
||||||
src: 'docs/_jade/customizer-nav.jade',
|
src: 'docs/_pug/customizer-nav.pug',
|
||||||
dest: 'docs/_includes/nav/customize.html'
|
dest: 'docs/_includes/nav/customize.html'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -350,7 +367,7 @@ module.exports = function (grunt) {
|
||||||
options: {
|
options: {
|
||||||
ignore: [
|
ignore: [
|
||||||
'Attribute "autocomplete" not allowed on element "button" at this point.',
|
'Attribute "autocomplete" not allowed on element "button" at this point.',
|
||||||
'Attribute "autocomplete" is only allowed when the input type is "color", "date", "datetime", "datetime-local", "email", "month", "number", "password", "range", "search", "tel", "text", "time", "url", or "week".',
|
'Attribute "autocomplete" is only allowed when the input type is "color", "date", "datetime", "datetime-local", "email", "hidden", "month", "number", "password", "range", "search", "tel", "text", "time", "url", or "week".',
|
||||||
'Element "img" is missing required attribute "src".'
|
'Element "img" is missing required attribute "src".'
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -372,25 +389,6 @@ module.exports = function (grunt) {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
sed: {
|
|
||||||
versionNumber: {
|
|
||||||
pattern: (function () {
|
|
||||||
var old = grunt.option('oldver');
|
|
||||||
return old ? RegExp.quote(old) : old;
|
|
||||||
})(),
|
|
||||||
replacement: grunt.option('newver'),
|
|
||||||
exclude: [
|
|
||||||
'dist/fonts',
|
|
||||||
'docs/assets',
|
|
||||||
'fonts',
|
|
||||||
'js/tests/vendor',
|
|
||||||
'node_modules',
|
|
||||||
'test-infra'
|
|
||||||
],
|
|
||||||
recursive: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
'saucelabs-qunit': {
|
'saucelabs-qunit': {
|
||||||
all: {
|
all: {
|
||||||
options: {
|
options: {
|
||||||
|
@ -485,16 +483,11 @@ module.exports = function (grunt) {
|
||||||
// Default task.
|
// Default task.
|
||||||
grunt.registerTask('default', ['clean:dist', 'copy:fonts', 'test']);
|
grunt.registerTask('default', ['clean:dist', 'copy:fonts', 'test']);
|
||||||
|
|
||||||
// Version numbering task.
|
|
||||||
// grunt change-version-number --oldver=A.B.C --newver=X.Y.Z
|
|
||||||
// This can be overzealous, so its changes should always be manually reviewed!
|
|
||||||
grunt.registerTask('change-version-number', 'sed');
|
|
||||||
|
|
||||||
grunt.registerTask('build-glyphicons-data', function () { generateGlyphiconsData.call(this, grunt); });
|
grunt.registerTask('build-glyphicons-data', function () { generateGlyphiconsData.call(this, grunt); });
|
||||||
|
|
||||||
// task for building customizer
|
// task for building customizer
|
||||||
grunt.registerTask('build-customizer', ['build-customizer-html', 'build-raw-files']);
|
grunt.registerTask('build-customizer', ['build-customizer-html', 'build-raw-files']);
|
||||||
grunt.registerTask('build-customizer-html', 'jade');
|
grunt.registerTask('build-customizer-html', 'pug');
|
||||||
grunt.registerTask('build-raw-files', 'Add scripts/less files to customizer.', function () {
|
grunt.registerTask('build-raw-files', 'Add scripts/less files to customizer.', function () {
|
||||||
var banner = grunt.template.process('<%= banner %>');
|
var banner = grunt.template.process('<%= banner %>');
|
||||||
generateRawFiles(grunt, banner);
|
generateRawFiles(grunt, banner);
|
||||||
|
@ -512,22 +505,7 @@ module.exports = function (grunt) {
|
||||||
grunt.registerTask('docs-js', ['uglify:docsJs', 'uglify:customize']);
|
grunt.registerTask('docs-js', ['uglify:docsJs', 'uglify:customize']);
|
||||||
grunt.registerTask('lint-docs-js', ['jshint:assets', 'jscs:assets']);
|
grunt.registerTask('lint-docs-js', ['jshint:assets', 'jscs:assets']);
|
||||||
grunt.registerTask('docs', ['docs-css', 'lint-docs-css', 'docs-js', 'lint-docs-js', 'clean:docs', 'copy:docs', 'build-glyphicons-data', 'build-customizer']);
|
grunt.registerTask('docs', ['docs-css', 'lint-docs-css', 'docs-js', 'lint-docs-js', 'clean:docs', 'copy:docs', 'build-glyphicons-data', 'build-customizer']);
|
||||||
|
grunt.registerTask('docs-github', ['jekyll:github', 'htmlmin']);
|
||||||
|
|
||||||
grunt.registerTask('prep-release', ['dist', 'docs', 'jekyll:github', 'htmlmin', 'compress']);
|
grunt.registerTask('prep-release', ['dist', 'docs', 'docs-github', 'compress']);
|
||||||
|
|
||||||
// Task for updating the cached npm packages used by the Travis build (which are controlled by test-infra/npm-shrinkwrap.json).
|
|
||||||
// This task should be run and the updated file should be committed whenever Bootstrap's dependencies change.
|
|
||||||
grunt.registerTask('update-shrinkwrap', ['exec:npmUpdate', '_update-shrinkwrap']);
|
|
||||||
grunt.registerTask('_update-shrinkwrap', function () {
|
|
||||||
var done = this.async();
|
|
||||||
npmShrinkwrap({ dev: true, dirname: __dirname }, function (err) {
|
|
||||||
if (err) {
|
|
||||||
grunt.fail.warn(err);
|
|
||||||
}
|
|
||||||
var dest = 'test-infra/npm-shrinkwrap.json';
|
|
||||||
fs.renameSync('npm-shrinkwrap.json', dest);
|
|
||||||
grunt.log.writeln('File ' + dest.cyan + ' updated.');
|
|
||||||
done();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|
22
bootstrap/ISSUE_TEMPLATE.md
Normal file
22
bootstrap/ISSUE_TEMPLATE.md
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
Before opening an issue:
|
||||||
|
|
||||||
|
- [Search for duplicate or closed issues](https://github.com/twbs/bootstrap/issues?utf8=%E2%9C%93&q=is%3Aissue)
|
||||||
|
- [Validate](http://validator.w3.org/nu/) and [lint](https://github.com/twbs/bootlint#in-the-browser) any HTML to avoid common problems
|
||||||
|
- Prepare a [reduced test case](https://css-tricks.com/reduced-test-cases/) for any bugs
|
||||||
|
- Read the [contributing guidelines](https://github.com/twbs/bootstrap/blob/master/CONTRIBUTING.md)
|
||||||
|
|
||||||
|
When asking general "how to" questions:
|
||||||
|
|
||||||
|
- Please do not open an issue here
|
||||||
|
- Instead, ask for help on [StackOverflow, IRC, or Slack](https://github.com/twbs/bootstrap/blob/master/README.md#community)
|
||||||
|
|
||||||
|
When reporting a bug, include:
|
||||||
|
|
||||||
|
- Operating system and version (Windows, Mac OS X, Android, iOS, Win10 Mobile)
|
||||||
|
- Browser and version (Chrome, Firefox, Safari, IE, MS Edge, Opera 15+, Android Browser)
|
||||||
|
- Reduced test cases and potential fixes using [JS Bin](https://jsbin.com)
|
||||||
|
|
||||||
|
When suggesting a feature, include:
|
||||||
|
|
||||||
|
- As much detail as possible for what we should add and why it's important to Bootstrap
|
||||||
|
- Relevant links to prior art, screenshots, or live demos whenever possible
|
|
@ -1,6 +1,6 @@
|
||||||
The MIT License (MIT)
|
The MIT License (MIT)
|
||||||
|
|
||||||
Copyright (c) 2011-2015 Twitter, Inc
|
Copyright (c) 2011-2016 Twitter, Inc.
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|
|
@ -29,10 +29,10 @@ To get started, check out <http://getbootstrap.com>!
|
||||||
|
|
||||||
Several quick start options are available:
|
Several quick start options are available:
|
||||||
|
|
||||||
* [Download the latest release](https://github.com/twbs/bootstrap/archive/v3.3.6.zip).
|
* [Download the latest release](https://github.com/twbs/bootstrap/archive/v3.3.7.zip).
|
||||||
* Clone the repo: `git clone https://github.com/twbs/bootstrap.git`.
|
* Clone the repo: `git clone https://github.com/twbs/bootstrap.git`.
|
||||||
* Install with [Bower](http://bower.io): `bower install bootstrap`.
|
* Install with [Bower](http://bower.io): `bower install bootstrap`.
|
||||||
* Install with [npm](https://www.npmjs.com): `npm install bootstrap`.
|
* Install with [npm](https://www.npmjs.com): `npm install bootstrap@3`.
|
||||||
* Install with [Meteor](https://www.meteor.com): `meteor add twbs:bootstrap`.
|
* Install with [Meteor](https://www.meteor.com): `meteor add twbs:bootstrap`.
|
||||||
* Install with [Composer](https://getcomposer.org): `composer require twbs/bootstrap`.
|
* Install with [Composer](https://getcomposer.org): `composer require twbs/bootstrap`.
|
||||||
|
|
||||||
|
@ -71,6 +71,8 @@ We provide compiled CSS and JS (`bootstrap.*`), as well as compiled and minified
|
||||||
|
|
||||||
Have a bug or a feature request? Please first read the [issue guidelines](https://github.com/twbs/bootstrap/blob/master/CONTRIBUTING.md#using-the-issue-tracker) and search for existing and closed issues. If your problem or idea is not addressed yet, [please open a new issue](https://github.com/twbs/bootstrap/issues/new).
|
Have a bug or a feature request? Please first read the [issue guidelines](https://github.com/twbs/bootstrap/blob/master/CONTRIBUTING.md#using-the-issue-tracker) and search for existing and closed issues. If your problem or idea is not addressed yet, [please open a new issue](https://github.com/twbs/bootstrap/issues/new).
|
||||||
|
|
||||||
|
Note that **feature requests must target [Bootstrap v4](https://github.com/twbs/bootstrap/tree/v4-dev),** because Bootstrap v3 is now in maintenance mode and is closed off to new features. This is so that we can focus our efforts on Bootstrap v4.
|
||||||
|
|
||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
|
@ -78,10 +80,9 @@ Bootstrap's documentation, included in this repo in the root directory, is built
|
||||||
|
|
||||||
### Running documentation locally
|
### Running documentation locally
|
||||||
|
|
||||||
1. If necessary, [install Jekyll](http://jekyllrb.com/docs/installation) (requires v3.0.x).
|
1. If necessary, [install Jekyll](http://jekyllrb.com/docs/installation) and other Ruby dependencies with `bundle install`.
|
||||||
**Note for Windows users:** Read [this unofficial guide](http://jekyll-windows.juthilo.com/) to get Jekyll up and running without problems.
|
**Note for Windows users:** Read [this unofficial guide](http://jekyll-windows.juthilo.com/) to get Jekyll up and running without problems.
|
||||||
2. Install the Ruby-based syntax highlighter, [Rouge](https://github.com/jneen/rouge), with `gem install rouge`.
|
2. From the root `/bootstrap` directory, run `bundle exec jekyll serve` in the command line.
|
||||||
3. From the root `/bootstrap` directory, run `jekyll serve` in the command line.
|
|
||||||
4. Open `http://localhost:9001` in your browser, and voilà.
|
4. Open `http://localhost:9001` in your browser, and voilà.
|
||||||
|
|
||||||
Learn more about using Jekyll by reading its [documentation](http://jekyllrb.com/docs/home/).
|
Learn more about using Jekyll by reading its [documentation](http://jekyllrb.com/docs/home/).
|
||||||
|
@ -99,6 +100,8 @@ Please read through our [contributing guidelines](https://github.com/twbs/bootst
|
||||||
|
|
||||||
Moreover, if your pull request contains JavaScript patches or features, you must include [relevant unit tests](https://github.com/twbs/bootstrap/tree/master/js/tests). All HTML and CSS should conform to the [Code Guide](https://github.com/mdo/code-guide), maintained by [Mark Otto](https://github.com/mdo).
|
Moreover, if your pull request contains JavaScript patches or features, you must include [relevant unit tests](https://github.com/twbs/bootstrap/tree/master/js/tests). All HTML and CSS should conform to the [Code Guide](https://github.com/mdo/code-guide), maintained by [Mark Otto](https://github.com/mdo).
|
||||||
|
|
||||||
|
**Bootstrap v3 is now closed off to new features.** It has gone into maintenance mode so that we can focus our efforts on [Bootstrap v4](https://github.com/twbs/bootstrap/tree/v4-dev), the future of the framework. Pull requests which add new features (rather than fix bugs) should target [Bootstrap v4 (the `v4-dev` git branch)](https://github.com/twbs/bootstrap/tree/v4-dev) instead.
|
||||||
|
|
||||||
Editor preferences are available in the [editor config](https://github.com/twbs/bootstrap/blob/master/.editorconfig) for easy use in common text editors. Read more and download plugins at <http://editorconfig.org>.
|
Editor preferences are available in the [editor config](https://github.com/twbs/bootstrap/blob/master/.editorconfig) for easy use in common text editors. Read more and download plugins at <http://editorconfig.org>.
|
||||||
|
|
||||||
|
|
||||||
|
@ -136,4 +139,4 @@ See [the Releases section of our GitHub project](https://github.com/twbs/bootstr
|
||||||
|
|
||||||
## Copyright and license
|
## Copyright and license
|
||||||
|
|
||||||
Code and documentation copyright 2011-2015 Twitter, Inc. Code released under [the MIT license](https://github.com/twbs/bootstrap/blob/master/LICENSE). Docs released under [Creative Commons](https://github.com/twbs/bootstrap/blob/master/docs/LICENSE).
|
Code and documentation copyright 2011-2016 Twitter, Inc. Code released under [the MIT license](https://github.com/twbs/bootstrap/blob/master/LICENSE). Docs released under [Creative Commons](https://github.com/twbs/bootstrap/blob/master/docs/LICENSE).
|
||||||
|
|
|
@ -13,24 +13,28 @@ port: 9001
|
||||||
url: http://getbootstrap.com
|
url: http://getbootstrap.com
|
||||||
encoding: UTF-8
|
encoding: UTF-8
|
||||||
|
|
||||||
|
gems:
|
||||||
|
- jekyll-sitemap
|
||||||
|
|
||||||
# Custom vars
|
# Custom vars
|
||||||
current_version: 3.3.6
|
current_version: 3.3.7
|
||||||
repo: https://github.com/twbs/bootstrap
|
repo: https://github.com/twbs/bootstrap
|
||||||
sass_repo: https://github.com/twbs/bootstrap-sass
|
sass_repo: https://github.com/twbs/bootstrap-sass
|
||||||
|
|
||||||
download:
|
download:
|
||||||
source: https://github.com/twbs/bootstrap/archive/v3.3.6.zip
|
source: https://github.com/twbs/bootstrap/archive/v3.3.7.zip
|
||||||
dist: https://github.com/twbs/bootstrap/releases/download/v3.3.6/bootstrap-3.3.6-dist.zip
|
dist: https://github.com/twbs/bootstrap/releases/download/v3.3.7/bootstrap-3.3.7-dist.zip
|
||||||
sass: https://github.com/twbs/bootstrap-sass/archive/v3.3.6.tar.gz
|
sass: https://github.com/twbs/bootstrap-sass/archive/v3.3.7.tar.gz
|
||||||
|
|
||||||
blog: http://blog.getbootstrap.com
|
blog: http://blog.getbootstrap.com
|
||||||
expo: http://expo.getbootstrap.com
|
expo: http://expo.getbootstrap.com
|
||||||
|
themes: http://themes.getbootstrap.com
|
||||||
|
|
||||||
cdn:
|
cdn:
|
||||||
# See https://www.srihash.org for info on how to generate the hashes
|
# See https://www.srihash.org for info on how to generate the hashes
|
||||||
css: https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css
|
css: https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css
|
||||||
css_hash: "sha512-dTfge/zgoMYpP7QbHy4gWMEGsbsdZeCXz7irItjcC3sPUFtf0kuFbDz/ixG7ArTxmDjLXDmezHubeNikyKGVyQ=="
|
css_hash: "sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u"
|
||||||
css_theme: https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap-theme.min.css
|
css_theme: https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css
|
||||||
css_theme_hash: "sha384-aUGj/X2zp5rLCbBxumKTCw2Z50WgIr1vs/PFN4praOTvYXWlVyh2UtNUU0KAUhAX"
|
css_theme_hash: "sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp"
|
||||||
js: https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js
|
js: https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js
|
||||||
js_hash: "sha512-K1qjQ+NcF2TYO/eI3M6v8EiNYZfA95pQumfvcVrTHtwQVDG+aHRqLi/ETn2uB+1JqwYqVG3LIvdm9lj6imS/pQ=="
|
js_hash: "sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa"
|
||||||
|
|
|
@ -29,6 +29,6 @@
|
||||||
"test-infra"
|
"test-infra"
|
||||||
],
|
],
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"jquery": "1.9.1 - 2"
|
"jquery": "1.9.1 - 3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*!
|
/*!
|
||||||
* Bootstrap v3.3.6 (http://getbootstrap.com)
|
* Bootstrap v3.3.7 (http://getbootstrap.com)
|
||||||
* Copyright 2011-2015 Twitter, Inc.
|
* Copyright 2011-2016 Twitter, Inc.
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
*/
|
*/
|
||||||
.btn-pass {
|
.btn-pass {
|
||||||
|
|
2
bootstrap/dist/css/bootstrap-theme.css.map
vendored
2
bootstrap/dist/css/bootstrap-theme.css.map
vendored
File diff suppressed because one or more lines are too long
4
bootstrap/dist/css/bootstrap-theme.min.css
vendored
4
bootstrap/dist/css/bootstrap-theme.min.css
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1,6 +1,6 @@
|
||||||
/*!
|
/*!
|
||||||
* Bootstrap v3.3.6 (http://getbootstrap.com)
|
* Bootstrap v3.3.7 (http://getbootstrap.com)
|
||||||
* Copyright 2011-2015 Twitter, Inc.
|
* Copyright 2011-2016 Twitter, Inc.
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
*/
|
*/
|
||||||
.btn-pass {
|
.btn-pass {
|
||||||
|
@ -1262,7 +1262,6 @@ a:focus {
|
||||||
text-decoration: underline;
|
text-decoration: underline;
|
||||||
}
|
}
|
||||||
a:focus {
|
a:focus {
|
||||||
outline: thin dotted;
|
|
||||||
outline: 5px auto -webkit-focus-ring-color;
|
outline: 5px auto -webkit-focus-ring-color;
|
||||||
outline-offset: -2px;
|
outline-offset: -2px;
|
||||||
}
|
}
|
||||||
|
@ -2693,7 +2692,6 @@ select[size] {
|
||||||
input[type="file"]:focus,
|
input[type="file"]:focus,
|
||||||
input[type="radio"]:focus,
|
input[type="radio"]:focus,
|
||||||
input[type="checkbox"]:focus {
|
input[type="checkbox"]:focus {
|
||||||
outline: thin dotted;
|
|
||||||
outline: 5px auto -webkit-focus-ring-color;
|
outline: 5px auto -webkit-focus-ring-color;
|
||||||
outline-offset: -2px;
|
outline-offset: -2px;
|
||||||
}
|
}
|
||||||
|
@ -3185,7 +3183,6 @@ select[multiple].input-lg {
|
||||||
.btn.focus,
|
.btn.focus,
|
||||||
.btn:active.focus,
|
.btn:active.focus,
|
||||||
.btn.active.focus {
|
.btn.active.focus {
|
||||||
outline: thin dotted;
|
|
||||||
outline: 5px auto -webkit-focus-ring-color;
|
outline: 5px auto -webkit-focus-ring-color;
|
||||||
outline-offset: -2px;
|
outline-offset: -2px;
|
||||||
}
|
}
|
||||||
|
|
2
bootstrap/dist/css/bootstrap.css.map
vendored
2
bootstrap/dist/css/bootstrap.css.map
vendored
File diff suppressed because one or more lines are too long
6
bootstrap/dist/css/bootstrap.min.css
vendored
6
bootstrap/dist/css/bootstrap.min.css
vendored
File diff suppressed because one or more lines are too long
2
bootstrap/dist/css/bootstrap.min.css.map
vendored
2
bootstrap/dist/css/bootstrap.min.css.map
vendored
File diff suppressed because one or more lines are too long
|
@ -1,6 +1,6 @@
|
||||||
/*!
|
/*!
|
||||||
* Bootstrap v3.3.6 (http://getbootstrap.com)
|
* Bootstrap v3.3.7 (http://getbootstrap.com)
|
||||||
* Copyright 2011-2016 Twitter, Inc.
|
* Copyright 2011-2017 Twitter, Inc.
|
||||||
* Licensed under the MIT license
|
* Licensed under the MIT license
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -11,16 +11,16 @@ if (typeof jQuery === 'undefined') {
|
||||||
+function ($) {
|
+function ($) {
|
||||||
'use strict';
|
'use strict';
|
||||||
var version = $.fn.jquery.split(' ')[0].split('.')
|
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] > 2)) {
|
if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] > 3)) {
|
||||||
throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 3')
|
throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4')
|
||||||
}
|
}
|
||||||
}(jQuery);
|
}(jQuery);
|
||||||
|
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: transition.js v3.3.6
|
* Bootstrap: transition.js v3.3.7
|
||||||
* http://getbootstrap.com/javascript/#transitions
|
* http://getbootstrap.com/javascript/#transitions
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2011-2015 Twitter, Inc.
|
* Copyright 2011-2016 Twitter, Inc.
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
* ======================================================================== */
|
* ======================================================================== */
|
||||||
|
|
||||||
|
@ -77,10 +77,10 @@ if (typeof jQuery === 'undefined') {
|
||||||
}(jQuery);
|
}(jQuery);
|
||||||
|
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: alert.js v3.3.6
|
* Bootstrap: alert.js v3.3.7
|
||||||
* http://getbootstrap.com/javascript/#alerts
|
* http://getbootstrap.com/javascript/#alerts
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2011-2015 Twitter, Inc.
|
* Copyright 2011-2016 Twitter, Inc.
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
* ======================================================================== */
|
* ======================================================================== */
|
||||||
|
|
||||||
|
@ -96,7 +96,7 @@ if (typeof jQuery === 'undefined') {
|
||||||
$(el).on('click', dismiss, this.close)
|
$(el).on('click', dismiss, this.close)
|
||||||
}
|
}
|
||||||
|
|
||||||
Alert.VERSION = '3.3.6'
|
Alert.VERSION = '3.3.7'
|
||||||
|
|
||||||
Alert.TRANSITION_DURATION = 150
|
Alert.TRANSITION_DURATION = 150
|
||||||
|
|
||||||
|
@ -109,7 +109,7 @@ if (typeof jQuery === 'undefined') {
|
||||||
selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
|
selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
|
||||||
}
|
}
|
||||||
|
|
||||||
var $parent = $(selector)
|
var $parent = $(selector === '#' ? [] : selector)
|
||||||
|
|
||||||
if (e) e.preventDefault()
|
if (e) e.preventDefault()
|
||||||
|
|
||||||
|
@ -172,10 +172,10 @@ if (typeof jQuery === 'undefined') {
|
||||||
}(jQuery);
|
}(jQuery);
|
||||||
|
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: button.js v3.3.6
|
* Bootstrap: button.js v3.3.7
|
||||||
* http://getbootstrap.com/javascript/#buttons
|
* http://getbootstrap.com/javascript/#buttons
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2011-2015 Twitter, Inc.
|
* Copyright 2011-2016 Twitter, Inc.
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
* ======================================================================== */
|
* ======================================================================== */
|
||||||
|
|
||||||
|
@ -192,7 +192,7 @@ if (typeof jQuery === 'undefined') {
|
||||||
this.isLoading = false
|
this.isLoading = false
|
||||||
}
|
}
|
||||||
|
|
||||||
Button.VERSION = '3.3.6'
|
Button.VERSION = '3.3.7'
|
||||||
|
|
||||||
Button.DEFAULTS = {
|
Button.DEFAULTS = {
|
||||||
loadingText: 'loading...'
|
loadingText: 'loading...'
|
||||||
|
@ -214,10 +214,10 @@ if (typeof jQuery === 'undefined') {
|
||||||
|
|
||||||
if (state == 'loadingText') {
|
if (state == 'loadingText') {
|
||||||
this.isLoading = true
|
this.isLoading = true
|
||||||
$el.addClass(d).attr(d, d)
|
$el.addClass(d).attr(d, d).prop(d, true)
|
||||||
} else if (this.isLoading) {
|
} else if (this.isLoading) {
|
||||||
this.isLoading = false
|
this.isLoading = false
|
||||||
$el.removeClass(d).removeAttr(d)
|
$el.removeClass(d).removeAttr(d).prop(d, false)
|
||||||
}
|
}
|
||||||
}, this), 0)
|
}, this), 0)
|
||||||
}
|
}
|
||||||
|
@ -281,10 +281,15 @@ if (typeof jQuery === 'undefined') {
|
||||||
|
|
||||||
$(document)
|
$(document)
|
||||||
.on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) {
|
.on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) {
|
||||||
var $btn = $(e.target)
|
var $btn = $(e.target).closest('.btn')
|
||||||
if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
|
|
||||||
Plugin.call($btn, 'toggle')
|
Plugin.call($btn, 'toggle')
|
||||||
if (!($(e.target).is('input[type="radio"]') || $(e.target).is('input[type="checkbox"]'))) e.preventDefault()
|
if (!($(e.target).is('input[type="radio"], input[type="checkbox"]'))) {
|
||||||
|
// Prevent double click on radios, and the double selections (so cancellation) on checkboxes
|
||||||
|
e.preventDefault()
|
||||||
|
// The target component still receive the focus
|
||||||
|
if ($btn.is('input,button')) $btn.trigger('focus')
|
||||||
|
else $btn.find('input:visible,button:visible').first().trigger('focus')
|
||||||
|
}
|
||||||
})
|
})
|
||||||
.on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) {
|
.on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) {
|
||||||
$(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))
|
$(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))
|
||||||
|
@ -293,10 +298,10 @@ if (typeof jQuery === 'undefined') {
|
||||||
}(jQuery);
|
}(jQuery);
|
||||||
|
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: carousel.js v3.3.6
|
* Bootstrap: carousel.js v3.3.7
|
||||||
* http://getbootstrap.com/javascript/#carousel
|
* http://getbootstrap.com/javascript/#carousel
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2011-2015 Twitter, Inc.
|
* Copyright 2011-2016 Twitter, Inc.
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
* ======================================================================== */
|
* ======================================================================== */
|
||||||
|
|
||||||
|
@ -324,7 +329,7 @@ if (typeof jQuery === 'undefined') {
|
||||||
.on('mouseleave.bs.carousel', $.proxy(this.cycle, this))
|
.on('mouseleave.bs.carousel', $.proxy(this.cycle, this))
|
||||||
}
|
}
|
||||||
|
|
||||||
Carousel.VERSION = '3.3.6'
|
Carousel.VERSION = '3.3.7'
|
||||||
|
|
||||||
Carousel.TRANSITION_DURATION = 600
|
Carousel.TRANSITION_DURATION = 600
|
||||||
|
|
||||||
|
@ -531,13 +536,14 @@ if (typeof jQuery === 'undefined') {
|
||||||
}(jQuery);
|
}(jQuery);
|
||||||
|
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: collapse.js v3.3.6
|
* Bootstrap: collapse.js v3.3.7
|
||||||
* http://getbootstrap.com/javascript/#collapse
|
* http://getbootstrap.com/javascript/#collapse
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2011-2015 Twitter, Inc.
|
* Copyright 2011-2016 Twitter, Inc.
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
* ======================================================================== */
|
* ======================================================================== */
|
||||||
|
|
||||||
|
/* jshint latedef: false */
|
||||||
|
|
||||||
+function ($) {
|
+function ($) {
|
||||||
'use strict';
|
'use strict';
|
||||||
|
@ -561,7 +567,7 @@ if (typeof jQuery === 'undefined') {
|
||||||
if (this.options.toggle) this.toggle()
|
if (this.options.toggle) this.toggle()
|
||||||
}
|
}
|
||||||
|
|
||||||
Collapse.VERSION = '3.3.6'
|
Collapse.VERSION = '3.3.7'
|
||||||
|
|
||||||
Collapse.TRANSITION_DURATION = 350
|
Collapse.TRANSITION_DURATION = 350
|
||||||
|
|
||||||
|
@ -743,10 +749,10 @@ if (typeof jQuery === 'undefined') {
|
||||||
}(jQuery);
|
}(jQuery);
|
||||||
|
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: dropdown.js v3.3.6
|
* Bootstrap: dropdown.js v3.3.7
|
||||||
* http://getbootstrap.com/javascript/#dropdowns
|
* http://getbootstrap.com/javascript/#dropdowns
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2011-2015 Twitter, Inc.
|
* Copyright 2011-2016 Twitter, Inc.
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
* ======================================================================== */
|
* ======================================================================== */
|
||||||
|
|
||||||
|
@ -763,7 +769,7 @@ if (typeof jQuery === 'undefined') {
|
||||||
$(element).on('click.bs.dropdown', this.toggle)
|
$(element).on('click.bs.dropdown', this.toggle)
|
||||||
}
|
}
|
||||||
|
|
||||||
Dropdown.VERSION = '3.3.6'
|
Dropdown.VERSION = '3.3.7'
|
||||||
|
|
||||||
function getParent($this) {
|
function getParent($this) {
|
||||||
var selector = $this.attr('data-target')
|
var selector = $this.attr('data-target')
|
||||||
|
@ -909,10 +915,10 @@ if (typeof jQuery === 'undefined') {
|
||||||
}(jQuery);
|
}(jQuery);
|
||||||
|
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: modal.js v3.3.6
|
* Bootstrap: modal.js v3.3.7
|
||||||
* http://getbootstrap.com/javascript/#modals
|
* http://getbootstrap.com/javascript/#modals
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2011-2015 Twitter, Inc.
|
* Copyright 2011-2016 Twitter, Inc.
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
* ======================================================================== */
|
* ======================================================================== */
|
||||||
|
|
||||||
|
@ -943,7 +949,7 @@ if (typeof jQuery === 'undefined') {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Modal.VERSION = '3.3.6'
|
Modal.VERSION = '3.3.7'
|
||||||
|
|
||||||
Modal.TRANSITION_DURATION = 300
|
Modal.TRANSITION_DURATION = 300
|
||||||
Modal.BACKDROP_TRANSITION_DURATION = 150
|
Modal.BACKDROP_TRANSITION_DURATION = 150
|
||||||
|
@ -1050,7 +1056,9 @@ if (typeof jQuery === 'undefined') {
|
||||||
$(document)
|
$(document)
|
||||||
.off('focusin.bs.modal') // guard against infinite focus loop
|
.off('focusin.bs.modal') // guard against infinite focus loop
|
||||||
.on('focusin.bs.modal', $.proxy(function (e) {
|
.on('focusin.bs.modal', $.proxy(function (e) {
|
||||||
if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {
|
if (document !== e.target &&
|
||||||
|
this.$element[0] !== e.target &&
|
||||||
|
!this.$element.has(e.target).length) {
|
||||||
this.$element.trigger('focus')
|
this.$element.trigger('focus')
|
||||||
}
|
}
|
||||||
}, this))
|
}, this))
|
||||||
|
@ -1247,11 +1255,11 @@ if (typeof jQuery === 'undefined') {
|
||||||
}(jQuery);
|
}(jQuery);
|
||||||
|
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: tooltip.js v3.3.6
|
* Bootstrap: tooltip.js v3.3.7
|
||||||
* http://getbootstrap.com/javascript/#tooltip
|
* http://getbootstrap.com/javascript/#tooltip
|
||||||
* Inspired by the original jQuery.tipsy by Jason Frame
|
* Inspired by the original jQuery.tipsy by Jason Frame
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2011-2015 Twitter, Inc.
|
* Copyright 2011-2016 Twitter, Inc.
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
* ======================================================================== */
|
* ======================================================================== */
|
||||||
|
|
||||||
|
@ -1274,7 +1282,7 @@ if (typeof jQuery === 'undefined') {
|
||||||
this.init('tooltip', element, options)
|
this.init('tooltip', element, options)
|
||||||
}
|
}
|
||||||
|
|
||||||
Tooltip.VERSION = '3.3.6'
|
Tooltip.VERSION = '3.3.7'
|
||||||
|
|
||||||
Tooltip.TRANSITION_DURATION = 150
|
Tooltip.TRANSITION_DURATION = 150
|
||||||
|
|
||||||
|
@ -1565,9 +1573,11 @@ if (typeof jQuery === 'undefined') {
|
||||||
|
|
||||||
function complete() {
|
function complete() {
|
||||||
if (that.hoverState != 'in') $tip.detach()
|
if (that.hoverState != 'in') $tip.detach()
|
||||||
that.$element
|
if (that.$element) { // TODO: Check whether guarding this code with this `if` is really necessary.
|
||||||
.removeAttr('aria-describedby')
|
that.$element
|
||||||
.trigger('hidden.bs.' + that.type)
|
.removeAttr('aria-describedby')
|
||||||
|
.trigger('hidden.bs.' + that.type)
|
||||||
|
}
|
||||||
callback && callback()
|
callback && callback()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1610,7 +1620,10 @@ if (typeof jQuery === 'undefined') {
|
||||||
// width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093
|
// width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093
|
||||||
elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })
|
elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })
|
||||||
}
|
}
|
||||||
var elOffset = isBody ? { top: 0, left: 0 } : $element.offset()
|
var isSvg = window.SVGElement && el instanceof window.SVGElement
|
||||||
|
// Avoid using $.offset() on SVGs since it gives incorrect results in jQuery 3.
|
||||||
|
// See https://github.com/twbs/bootstrap/issues/20280
|
||||||
|
var elOffset = isBody ? { top: 0, left: 0 } : (isSvg ? null : $element.offset())
|
||||||
var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }
|
var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }
|
||||||
var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null
|
var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null
|
||||||
|
|
||||||
|
@ -1726,6 +1739,7 @@ if (typeof jQuery === 'undefined') {
|
||||||
that.$tip = null
|
that.$tip = null
|
||||||
that.$arrow = null
|
that.$arrow = null
|
||||||
that.$viewport = null
|
that.$viewport = null
|
||||||
|
that.$element = null
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1762,10 +1776,10 @@ if (typeof jQuery === 'undefined') {
|
||||||
}(jQuery);
|
}(jQuery);
|
||||||
|
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: popover.js v3.3.6
|
* Bootstrap: popover.js v3.3.7
|
||||||
* http://getbootstrap.com/javascript/#popovers
|
* http://getbootstrap.com/javascript/#popovers
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2011-2015 Twitter, Inc.
|
* Copyright 2011-2016 Twitter, Inc.
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
* ======================================================================== */
|
* ======================================================================== */
|
||||||
|
|
||||||
|
@ -1782,7 +1796,7 @@ if (typeof jQuery === 'undefined') {
|
||||||
|
|
||||||
if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
|
if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
|
||||||
|
|
||||||
Popover.VERSION = '3.3.6'
|
Popover.VERSION = '3.3.7'
|
||||||
|
|
||||||
Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
|
Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
|
||||||
placement: 'right',
|
placement: 'right',
|
||||||
|
@ -1871,10 +1885,10 @@ if (typeof jQuery === 'undefined') {
|
||||||
}(jQuery);
|
}(jQuery);
|
||||||
|
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: scrollspy.js v3.3.6
|
* Bootstrap: scrollspy.js v3.3.7
|
||||||
* http://getbootstrap.com/javascript/#scrollspy
|
* http://getbootstrap.com/javascript/#scrollspy
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2011-2015 Twitter, Inc.
|
* Copyright 2011-2016 Twitter, Inc.
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
* ======================================================================== */
|
* ======================================================================== */
|
||||||
|
|
||||||
|
@ -1900,7 +1914,7 @@ if (typeof jQuery === 'undefined') {
|
||||||
this.process()
|
this.process()
|
||||||
}
|
}
|
||||||
|
|
||||||
ScrollSpy.VERSION = '3.3.6'
|
ScrollSpy.VERSION = '3.3.7'
|
||||||
|
|
||||||
ScrollSpy.DEFAULTS = {
|
ScrollSpy.DEFAULTS = {
|
||||||
offset: 10
|
offset: 10
|
||||||
|
@ -2044,10 +2058,10 @@ if (typeof jQuery === 'undefined') {
|
||||||
}(jQuery);
|
}(jQuery);
|
||||||
|
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: tab.js v3.3.6
|
* Bootstrap: tab.js v3.3.7
|
||||||
* http://getbootstrap.com/javascript/#tabs
|
* http://getbootstrap.com/javascript/#tabs
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2011-2015 Twitter, Inc.
|
* Copyright 2011-2016 Twitter, Inc.
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
* ======================================================================== */
|
* ======================================================================== */
|
||||||
|
|
||||||
|
@ -2064,7 +2078,7 @@ if (typeof jQuery === 'undefined') {
|
||||||
// jscs:enable requireDollarBeforejQueryAssignment
|
// jscs:enable requireDollarBeforejQueryAssignment
|
||||||
}
|
}
|
||||||
|
|
||||||
Tab.VERSION = '3.3.6'
|
Tab.VERSION = '3.3.7'
|
||||||
|
|
||||||
Tab.TRANSITION_DURATION = 150
|
Tab.TRANSITION_DURATION = 150
|
||||||
|
|
||||||
|
@ -2200,10 +2214,10 @@ if (typeof jQuery === 'undefined') {
|
||||||
}(jQuery);
|
}(jQuery);
|
||||||
|
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: affix.js v3.3.6
|
* Bootstrap: affix.js v3.3.7
|
||||||
* http://getbootstrap.com/javascript/#affix
|
* http://getbootstrap.com/javascript/#affix
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2011-2015 Twitter, Inc.
|
* Copyright 2011-2016 Twitter, Inc.
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
* ======================================================================== */
|
* ======================================================================== */
|
||||||
|
|
||||||
|
@ -2229,7 +2243,7 @@ if (typeof jQuery === 'undefined') {
|
||||||
this.checkPosition()
|
this.checkPosition()
|
||||||
}
|
}
|
||||||
|
|
||||||
Affix.VERSION = '3.3.6'
|
Affix.VERSION = '3.3.7'
|
||||||
|
|
||||||
Affix.RESET = 'affix affix-top affix-bottom'
|
Affix.RESET = 'affix affix-top affix-bottom'
|
||||||
|
|
||||||
|
|
8
bootstrap/dist/js/bootstrap.min.js
vendored
8
bootstrap/dist/js/bootstrap.min.js
vendored
File diff suppressed because one or more lines are too long
109
bootstrap/grunt/change-version.js
Executable file
109
bootstrap/grunt/change-version.js
Executable file
|
@ -0,0 +1,109 @@
|
||||||
|
#!/usr/bin/env node
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
/* globals Set */
|
||||||
|
/*!
|
||||||
|
* Script to update version number references in the project.
|
||||||
|
* Copyright 2015 Twitter, Inc.
|
||||||
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
|
*/
|
||||||
|
var fs = require('fs');
|
||||||
|
var path = require('path');
|
||||||
|
var sh = require('shelljs');
|
||||||
|
sh.config.fatal = true;
|
||||||
|
var sed = sh.sed;
|
||||||
|
|
||||||
|
// Blame TC39... https://github.com/benjamingr/RegExp.escape/issues/37
|
||||||
|
RegExp.quote = function (string) {
|
||||||
|
return string.replace(/[-\\^$*+?.()|[\]{}]/g, '\\$&');
|
||||||
|
};
|
||||||
|
RegExp.quoteReplacement = function (string) {
|
||||||
|
return string.replace(/[$]/g, '$$');
|
||||||
|
};
|
||||||
|
|
||||||
|
var DRY_RUN = false;
|
||||||
|
|
||||||
|
function walkAsync(directory, excludedDirectories, fileCallback, errback) {
|
||||||
|
if (excludedDirectories.has(path.parse(directory).base)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
fs.readdir(directory, function (err, names) {
|
||||||
|
if (err) {
|
||||||
|
errback(err);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
names.forEach(function (name) {
|
||||||
|
var filepath = path.join(directory, name);
|
||||||
|
fs.lstat(filepath, function (err, stats) {
|
||||||
|
if (err) {
|
||||||
|
process.nextTick(errback, err);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (stats.isSymbolicLink()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else if (stats.isDirectory()) {
|
||||||
|
process.nextTick(walkAsync, filepath, excludedDirectories, fileCallback, errback);
|
||||||
|
}
|
||||||
|
else if (stats.isFile()) {
|
||||||
|
process.nextTick(fileCallback, filepath);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function replaceRecursively(directory, excludedDirectories, allowedExtensions, original, replacement) {
|
||||||
|
original = new RegExp(RegExp.quote(original), 'g');
|
||||||
|
replacement = RegExp.quoteReplacement(replacement);
|
||||||
|
var updateFile = !DRY_RUN ? function (filepath) {
|
||||||
|
if (allowedExtensions.has(path.parse(filepath).ext)) {
|
||||||
|
sed('-i', original, replacement, filepath);
|
||||||
|
}
|
||||||
|
} : function (filepath) {
|
||||||
|
if (allowedExtensions.has(path.parse(filepath).ext)) {
|
||||||
|
console.log('FILE: ' + filepath);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
console.log('EXCLUDED:' + filepath);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
walkAsync(directory, excludedDirectories, updateFile, function (err) {
|
||||||
|
console.error('ERROR while traversing directory!:');
|
||||||
|
console.error(err);
|
||||||
|
process.exit(1);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function main(args) {
|
||||||
|
if (args.length !== 2) {
|
||||||
|
console.error('USAGE: change-version old_version new_version');
|
||||||
|
console.error('Got arguments:', args);
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
var oldVersion = args[0];
|
||||||
|
var newVersion = args[1];
|
||||||
|
var EXCLUDED_DIRS = new Set([
|
||||||
|
'.git',
|
||||||
|
'node_modules',
|
||||||
|
'vendor'
|
||||||
|
]);
|
||||||
|
var INCLUDED_EXTENSIONS = new Set([
|
||||||
|
// This extension whitelist is how we avoid modifying binary files
|
||||||
|
'',
|
||||||
|
'.css',
|
||||||
|
'.html',
|
||||||
|
'.js',
|
||||||
|
'.json',
|
||||||
|
'.less',
|
||||||
|
'.md',
|
||||||
|
'.nuspec',
|
||||||
|
'.ps1',
|
||||||
|
'.scss',
|
||||||
|
'.txt',
|
||||||
|
'.yml'
|
||||||
|
]);
|
||||||
|
replaceRecursively('.', EXCLUDED_DIRS, INCLUDED_EXTENSIONS, oldVersion, newVersion);
|
||||||
|
}
|
||||||
|
|
||||||
|
main(process.argv.slice(2));
|
|
@ -13,7 +13,7 @@
|
||||||
"docsJs": [
|
"docsJs": [
|
||||||
"../assets/js/vendor/holder.min.js",
|
"../assets/js/vendor/holder.min.js",
|
||||||
"../assets/js/vendor/ZeroClipboard.min.js",
|
"../assets/js/vendor/ZeroClipboard.min.js",
|
||||||
"../assets/js/vendor/anchor.js",
|
"../assets/js/vendor/anchor.min.js",
|
||||||
"../assets/js/src/application.js"
|
"../assets/js/src/application.js"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -37,8 +37,8 @@
|
||||||
"+function ($) {",
|
"+function ($) {",
|
||||||
" 'use strict';",
|
" 'use strict';",
|
||||||
" var version = $.fn.jquery.split(' ')[0].split('.')",
|
" 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] > 2)) {",
|
" if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] > 3)) {",
|
||||||
" throw new Error('Bootstrap\\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 3')",
|
" throw new Error('Bootstrap\\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4')",
|
||||||
" }",
|
" }",
|
||||||
"}(jQuery);\n\n"
|
"}(jQuery);\n\n"
|
||||||
]
|
]
|
||||||
|
|
2679
bootstrap/grunt/npm-shrinkwrap.json
generated
Normal file
2679
bootstrap/grunt/npm-shrinkwrap.json
generated
Normal file
File diff suppressed because it is too large
Load diff
|
@ -57,7 +57,7 @@
|
||||||
{
|
{
|
||||||
browserName: "iphone",
|
browserName: "iphone",
|
||||||
platform: "OS X 10.10",
|
platform: "OS X 10.10",
|
||||||
version: "8.2"
|
version: "9.2"
|
||||||
},
|
},
|
||||||
|
|
||||||
# iOS Chrome not currently supported by Sauce Labs
|
# iOS Chrome not currently supported by Sauce Labs
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: affix.js v3.3.6
|
* Bootstrap: affix.js v3.3.7
|
||||||
* http://getbootstrap.com/javascript/#affix
|
* http://getbootstrap.com/javascript/#affix
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2011-2015 Twitter, Inc.
|
* Copyright 2011-2016 Twitter, Inc.
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
* ======================================================================== */
|
* ======================================================================== */
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@
|
||||||
this.checkPosition()
|
this.checkPosition()
|
||||||
}
|
}
|
||||||
|
|
||||||
Affix.VERSION = '3.3.6'
|
Affix.VERSION = '3.3.7'
|
||||||
|
|
||||||
Affix.RESET = 'affix affix-top affix-bottom'
|
Affix.RESET = 'affix affix-top affix-bottom'
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: alert.js v3.3.6
|
* Bootstrap: alert.js v3.3.7
|
||||||
* http://getbootstrap.com/javascript/#alerts
|
* http://getbootstrap.com/javascript/#alerts
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2011-2015 Twitter, Inc.
|
* Copyright 2011-2016 Twitter, Inc.
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
* ======================================================================== */
|
* ======================================================================== */
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@
|
||||||
$(el).on('click', dismiss, this.close)
|
$(el).on('click', dismiss, this.close)
|
||||||
}
|
}
|
||||||
|
|
||||||
Alert.VERSION = '3.3.6'
|
Alert.VERSION = '3.3.7'
|
||||||
|
|
||||||
Alert.TRANSITION_DURATION = 150
|
Alert.TRANSITION_DURATION = 150
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@
|
||||||
selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
|
selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
|
||||||
}
|
}
|
||||||
|
|
||||||
var $parent = $(selector)
|
var $parent = $(selector === '#' ? [] : selector)
|
||||||
|
|
||||||
if (e) e.preventDefault()
|
if (e) e.preventDefault()
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: button.js v3.3.6
|
* Bootstrap: button.js v3.3.7
|
||||||
* http://getbootstrap.com/javascript/#buttons
|
* http://getbootstrap.com/javascript/#buttons
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2011-2015 Twitter, Inc.
|
* Copyright 2011-2016 Twitter, Inc.
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
* ======================================================================== */
|
* ======================================================================== */
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
this.isLoading = false
|
this.isLoading = false
|
||||||
}
|
}
|
||||||
|
|
||||||
Button.VERSION = '3.3.6'
|
Button.VERSION = '3.3.7'
|
||||||
|
|
||||||
Button.DEFAULTS = {
|
Button.DEFAULTS = {
|
||||||
loadingText: 'loading...'
|
loadingText: 'loading...'
|
||||||
|
@ -41,10 +41,10 @@
|
||||||
|
|
||||||
if (state == 'loadingText') {
|
if (state == 'loadingText') {
|
||||||
this.isLoading = true
|
this.isLoading = true
|
||||||
$el.addClass(d).attr(d, d)
|
$el.addClass(d).attr(d, d).prop(d, true)
|
||||||
} else if (this.isLoading) {
|
} else if (this.isLoading) {
|
||||||
this.isLoading = false
|
this.isLoading = false
|
||||||
$el.removeClass(d).removeAttr(d)
|
$el.removeClass(d).removeAttr(d).prop(d, false)
|
||||||
}
|
}
|
||||||
}, this), 0)
|
}, this), 0)
|
||||||
}
|
}
|
||||||
|
@ -108,10 +108,15 @@
|
||||||
|
|
||||||
$(document)
|
$(document)
|
||||||
.on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) {
|
.on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) {
|
||||||
var $btn = $(e.target)
|
var $btn = $(e.target).closest('.btn')
|
||||||
if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
|
|
||||||
Plugin.call($btn, 'toggle')
|
Plugin.call($btn, 'toggle')
|
||||||
if (!($(e.target).is('input[type="radio"]') || $(e.target).is('input[type="checkbox"]'))) e.preventDefault()
|
if (!($(e.target).is('input[type="radio"], input[type="checkbox"]'))) {
|
||||||
|
// Prevent double click on radios, and the double selections (so cancellation) on checkboxes
|
||||||
|
e.preventDefault()
|
||||||
|
// The target component still receive the focus
|
||||||
|
if ($btn.is('input,button')) $btn.trigger('focus')
|
||||||
|
else $btn.find('input:visible,button:visible').first().trigger('focus')
|
||||||
|
}
|
||||||
})
|
})
|
||||||
.on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) {
|
.on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) {
|
||||||
$(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))
|
$(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: carousel.js v3.3.6
|
* Bootstrap: carousel.js v3.3.7
|
||||||
* http://getbootstrap.com/javascript/#carousel
|
* http://getbootstrap.com/javascript/#carousel
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2011-2015 Twitter, Inc.
|
* Copyright 2011-2016 Twitter, Inc.
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
* ======================================================================== */
|
* ======================================================================== */
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
.on('mouseleave.bs.carousel', $.proxy(this.cycle, this))
|
.on('mouseleave.bs.carousel', $.proxy(this.cycle, this))
|
||||||
}
|
}
|
||||||
|
|
||||||
Carousel.VERSION = '3.3.6'
|
Carousel.VERSION = '3.3.7'
|
||||||
|
|
||||||
Carousel.TRANSITION_DURATION = 600
|
Carousel.TRANSITION_DURATION = 600
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: collapse.js v3.3.6
|
* Bootstrap: collapse.js v3.3.7
|
||||||
* http://getbootstrap.com/javascript/#collapse
|
* http://getbootstrap.com/javascript/#collapse
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2011-2015 Twitter, Inc.
|
* Copyright 2011-2016 Twitter, Inc.
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
* ======================================================================== */
|
* ======================================================================== */
|
||||||
|
|
||||||
|
/* jshint latedef: false */
|
||||||
|
|
||||||
+function ($) {
|
+function ($) {
|
||||||
'use strict';
|
'use strict';
|
||||||
|
@ -29,7 +30,7 @@
|
||||||
if (this.options.toggle) this.toggle()
|
if (this.options.toggle) this.toggle()
|
||||||
}
|
}
|
||||||
|
|
||||||
Collapse.VERSION = '3.3.6'
|
Collapse.VERSION = '3.3.7'
|
||||||
|
|
||||||
Collapse.TRANSITION_DURATION = 350
|
Collapse.TRANSITION_DURATION = 350
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: dropdown.js v3.3.6
|
* Bootstrap: dropdown.js v3.3.7
|
||||||
* http://getbootstrap.com/javascript/#dropdowns
|
* http://getbootstrap.com/javascript/#dropdowns
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2011-2015 Twitter, Inc.
|
* Copyright 2011-2016 Twitter, Inc.
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
* ======================================================================== */
|
* ======================================================================== */
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
$(element).on('click.bs.dropdown', this.toggle)
|
$(element).on('click.bs.dropdown', this.toggle)
|
||||||
}
|
}
|
||||||
|
|
||||||
Dropdown.VERSION = '3.3.6'
|
Dropdown.VERSION = '3.3.7'
|
||||||
|
|
||||||
function getParent($this) {
|
function getParent($this) {
|
||||||
var selector = $this.attr('data-target')
|
var selector = $this.attr('data-target')
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: modal.js v3.3.6
|
* Bootstrap: modal.js v3.3.7
|
||||||
* http://getbootstrap.com/javascript/#modals
|
* http://getbootstrap.com/javascript/#modals
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2011-2015 Twitter, Inc.
|
* Copyright 2011-2016 Twitter, Inc.
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
* ======================================================================== */
|
* ======================================================================== */
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Modal.VERSION = '3.3.6'
|
Modal.VERSION = '3.3.7'
|
||||||
|
|
||||||
Modal.TRANSITION_DURATION = 300
|
Modal.TRANSITION_DURATION = 300
|
||||||
Modal.BACKDROP_TRANSITION_DURATION = 150
|
Modal.BACKDROP_TRANSITION_DURATION = 150
|
||||||
|
@ -140,7 +140,9 @@
|
||||||
$(document)
|
$(document)
|
||||||
.off('focusin.bs.modal') // guard against infinite focus loop
|
.off('focusin.bs.modal') // guard against infinite focus loop
|
||||||
.on('focusin.bs.modal', $.proxy(function (e) {
|
.on('focusin.bs.modal', $.proxy(function (e) {
|
||||||
if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {
|
if (document !== e.target &&
|
||||||
|
this.$element[0] !== e.target &&
|
||||||
|
!this.$element.has(e.target).length) {
|
||||||
this.$element.trigger('focus')
|
this.$element.trigger('focus')
|
||||||
}
|
}
|
||||||
}, this))
|
}, this))
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: popover.js v3.3.6
|
* Bootstrap: popover.js v3.3.7
|
||||||
* http://getbootstrap.com/javascript/#popovers
|
* http://getbootstrap.com/javascript/#popovers
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2011-2015 Twitter, Inc.
|
* Copyright 2011-2016 Twitter, Inc.
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
* ======================================================================== */
|
* ======================================================================== */
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
|
|
||||||
if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
|
if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
|
||||||
|
|
||||||
Popover.VERSION = '3.3.6'
|
Popover.VERSION = '3.3.7'
|
||||||
|
|
||||||
Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
|
Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
|
||||||
placement: 'right',
|
placement: 'right',
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: scrollspy.js v3.3.6
|
* Bootstrap: scrollspy.js v3.3.7
|
||||||
* http://getbootstrap.com/javascript/#scrollspy
|
* http://getbootstrap.com/javascript/#scrollspy
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2011-2015 Twitter, Inc.
|
* Copyright 2011-2016 Twitter, Inc.
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
* ======================================================================== */
|
* ======================================================================== */
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@
|
||||||
this.process()
|
this.process()
|
||||||
}
|
}
|
||||||
|
|
||||||
ScrollSpy.VERSION = '3.3.6'
|
ScrollSpy.VERSION = '3.3.7'
|
||||||
|
|
||||||
ScrollSpy.DEFAULTS = {
|
ScrollSpy.DEFAULTS = {
|
||||||
offset: 10
|
offset: 10
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: tab.js v3.3.6
|
* Bootstrap: tab.js v3.3.7
|
||||||
* http://getbootstrap.com/javascript/#tabs
|
* http://getbootstrap.com/javascript/#tabs
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2011-2015 Twitter, Inc.
|
* Copyright 2011-2016 Twitter, Inc.
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
* ======================================================================== */
|
* ======================================================================== */
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
// jscs:enable requireDollarBeforejQueryAssignment
|
// jscs:enable requireDollarBeforejQueryAssignment
|
||||||
}
|
}
|
||||||
|
|
||||||
Tab.VERSION = '3.3.6'
|
Tab.VERSION = '3.3.7'
|
||||||
|
|
||||||
Tab.TRANSITION_DURATION = 150
|
Tab.TRANSITION_DURATION = 150
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,10 @@
|
||||||
'undelegate'
|
'undelegate'
|
||||||
]
|
]
|
||||||
for (var i = 0; i < eventAliases.length; i++) {
|
for (var i = 0; i < eventAliases.length; i++) {
|
||||||
$.fn[eventAliases[i]] = undefined
|
var eventAlias = eventAliases[i]
|
||||||
|
$.fn[eventAlias] = function () {
|
||||||
|
throw new Error('Using the ".' + eventAlias + '()" method is not allowed, so that Bootstrap can be compatible with custom jQuery builds which exclude the "event aliases" module that defines said method. See https://github.com/twbs/bootstrap/blob/master/CONTRIBUTING.md#js')
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})()
|
})()
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -169,7 +169,7 @@ $(function () {
|
||||||
var $div = $('<div id="modal-test"/>')
|
var $div = $('<div id="modal-test"/>')
|
||||||
$div
|
$div
|
||||||
.on('shown.bs.modal', function () {
|
.on('shown.bs.modal', function () {
|
||||||
assert.ok($('#modal-test').length, 'modal insterted into dom')
|
assert.ok($('#modal-test').length, 'modal inserted into dom')
|
||||||
assert.ok($('#modal-test').is(':visible'), 'modal visible')
|
assert.ok($('#modal-test').is(':visible'), 'modal visible')
|
||||||
$div.trigger($.Event('keydown', { which: 27 }))
|
$div.trigger($.Event('keydown', { which: 27 }))
|
||||||
|
|
||||||
|
|
|
@ -131,13 +131,12 @@ $(function () {
|
||||||
.appendTo('#qunit-fixture')
|
.appendTo('#qunit-fixture')
|
||||||
.bootstrapScrollspy({ offset: 0, target: '.navbar' })
|
.bootstrapScrollspy({ offset: 0, target: '.navbar' })
|
||||||
|
|
||||||
|
var done = assert.async()
|
||||||
var testElementIsActiveAfterScroll = function (element, target) {
|
var testElementIsActiveAfterScroll = function (element, target) {
|
||||||
var deferred = $.Deferred()
|
var deferred = $.Deferred()
|
||||||
var scrollHeight = Math.ceil($content.scrollTop() + $(target).position().top)
|
var scrollHeight = Math.ceil($content.scrollTop() + $(target).position().top)
|
||||||
var done = assert.async()
|
|
||||||
$content.one('scroll', function () {
|
$content.one('scroll', function () {
|
||||||
assert.ok($(element).hasClass('active'), 'target:' + target + ', element' + element)
|
assert.ok($(element).hasClass('active'), 'target:' + target + ', element' + element)
|
||||||
done()
|
|
||||||
deferred.resolve()
|
deferred.resolve()
|
||||||
})
|
})
|
||||||
$content.scrollTop(scrollHeight)
|
$content.scrollTop(scrollHeight)
|
||||||
|
@ -146,6 +145,7 @@ $(function () {
|
||||||
|
|
||||||
$.when(testElementIsActiveAfterScroll('#li-1', '#div-1'))
|
$.when(testElementIsActiveAfterScroll('#li-1', '#div-1'))
|
||||||
.then(function () { return testElementIsActiveAfterScroll('#li-2', '#div-2') })
|
.then(function () { return testElementIsActiveAfterScroll('#li-2', '#div-2') })
|
||||||
|
.then(function () { done() })
|
||||||
})
|
})
|
||||||
|
|
||||||
QUnit.test('should add the active class correctly when there are nested elements at 0 scroll offset', function (assert) {
|
QUnit.test('should add the active class correctly when there are nested elements at 0 scroll offset', function (assert) {
|
||||||
|
@ -258,21 +258,21 @@ $(function () {
|
||||||
var testElementIsActiveAfterScroll = function (element, target) {
|
var testElementIsActiveAfterScroll = function (element, target) {
|
||||||
var deferred = $.Deferred()
|
var deferred = $.Deferred()
|
||||||
var scrollHeight = Math.ceil($content.scrollTop() + $(target).position().top)
|
var scrollHeight = Math.ceil($content.scrollTop() + $(target).position().top)
|
||||||
var done = assert.async()
|
|
||||||
$content.one('scroll', function () {
|
$content.one('scroll', function () {
|
||||||
assert.ok($(element).hasClass('active'), 'target:' + target + ', element: ' + element)
|
assert.ok($(element).hasClass('active'), 'target:' + target + ', element: ' + element)
|
||||||
done()
|
|
||||||
deferred.resolve()
|
deferred.resolve()
|
||||||
})
|
})
|
||||||
$content.scrollTop(scrollHeight)
|
$content.scrollTop(scrollHeight)
|
||||||
return deferred.promise()
|
return deferred.promise()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var done = assert.async()
|
||||||
$.when(testElementIsActiveAfterScroll('#li-100-5', '#div-100-5'))
|
$.when(testElementIsActiveAfterScroll('#li-100-5', '#div-100-5'))
|
||||||
.then(function () { return testElementIsActiveAfterScroll('#li-100-4', '#div-100-4') })
|
.then(function () { return testElementIsActiveAfterScroll('#li-100-4', '#div-100-4') })
|
||||||
.then(function () { return testElementIsActiveAfterScroll('#li-100-3', '#div-100-3') })
|
.then(function () { return testElementIsActiveAfterScroll('#li-100-3', '#div-100-3') })
|
||||||
.then(function () { return testElementIsActiveAfterScroll('#li-100-2', '#div-100-2') })
|
.then(function () { return testElementIsActiveAfterScroll('#li-100-2', '#div-100-2') })
|
||||||
.then(function () { return testElementIsActiveAfterScroll('#li-100-1', '#div-100-1') })
|
.then(function () { return testElementIsActiveAfterScroll('#li-100-1', '#div-100-1') })
|
||||||
|
.then(function () { done() })
|
||||||
})
|
})
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
10
bootstrap/js/tests/vendor/jquery.min.js
vendored
10
bootstrap/js/tests/vendor/jquery.min.js
vendored
File diff suppressed because one or more lines are too long
41
bootstrap/js/tests/vendor/qunit.css
vendored
41
bootstrap/js/tests/vendor/qunit.css
vendored
|
@ -1,27 +1,27 @@
|
||||||
/*!
|
/*!
|
||||||
* QUnit 1.17.1
|
* QUnit 1.22.0
|
||||||
* http://qunitjs.com/
|
* https://qunitjs.com/
|
||||||
*
|
*
|
||||||
* Copyright jQuery Foundation and other contributors
|
* Copyright jQuery Foundation and other contributors
|
||||||
* Released under the MIT license
|
* Released under the MIT license
|
||||||
* http://jquery.org/license
|
* https://jquery.org/license
|
||||||
*
|
*
|
||||||
* Date: 2015-01-20T19:39Z
|
* Date: 2016-02-23T15:57Z
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/** Font Family and Sizes */
|
/** Font Family and Sizes */
|
||||||
|
|
||||||
#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult {
|
#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-filteredTest, #qunit-userAgent, #qunit-testresult {
|
||||||
font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
|
font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
|
||||||
}
|
}
|
||||||
|
|
||||||
#qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; }
|
#qunit-testrunner-toolbar, #qunit-filteredTest, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; }
|
||||||
#qunit-tests { font-size: smaller; }
|
#qunit-tests { font-size: smaller; }
|
||||||
|
|
||||||
|
|
||||||
/** Resets */
|
/** Resets */
|
||||||
|
|
||||||
#qunit-tests, #qunit-header, #qunit-banner, #qunit-userAgent, #qunit-testresult, #qunit-modulefilter {
|
#qunit-tests, #qunit-header, #qunit-banner, #qunit-filteredTest, #qunit-userAgent, #qunit-testresult, #qunit-modulefilter {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
@ -68,6 +68,12 @@
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#qunit-filteredTest {
|
||||||
|
padding: 0.5em 1em 0.5em 1em;
|
||||||
|
background-color: #F4FF77;
|
||||||
|
color: #366097;
|
||||||
|
}
|
||||||
|
|
||||||
#qunit-userAgent {
|
#qunit-userAgent {
|
||||||
padding: 0.5em 1em 0.5em 1em;
|
padding: 0.5em 1em 0.5em 1em;
|
||||||
background-color: #2B81AF;
|
background-color: #2B81AF;
|
||||||
|
@ -114,9 +120,19 @@
|
||||||
display: list-item;
|
display: list-item;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#qunit-tests.hidepass {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
#qunit-tests.hidepass li.running,
|
#qunit-tests.hidepass li.running,
|
||||||
#qunit-tests.hidepass li.pass {
|
#qunit-tests.hidepass li.pass {
|
||||||
display: none;
|
visibility: hidden;
|
||||||
|
position: absolute;
|
||||||
|
width: 0;
|
||||||
|
height: 0;
|
||||||
|
padding: 0;
|
||||||
|
border: 0;
|
||||||
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#qunit-tests li strong {
|
#qunit-tests li strong {
|
||||||
|
@ -132,6 +148,11 @@
|
||||||
color: #C2CCD1;
|
color: #C2CCD1;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#qunit-tests li p a {
|
||||||
|
padding: 0.25em;
|
||||||
|
color: #6B6464;
|
||||||
|
}
|
||||||
#qunit-tests li a:hover,
|
#qunit-tests li a:hover,
|
||||||
#qunit-tests li a:focus {
|
#qunit-tests li a:focus {
|
||||||
color: #000;
|
color: #000;
|
||||||
|
@ -151,6 +172,10 @@
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.qunit-source {
|
||||||
|
margin: 0.6em 0 0.3em;
|
||||||
|
}
|
||||||
|
|
||||||
.qunit-collapsed {
|
.qunit-collapsed {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
3333
bootstrap/js/tests/vendor/qunit.js
vendored
3333
bootstrap/js/tests/vendor/qunit.js
vendored
File diff suppressed because it is too large
Load diff
|
@ -60,7 +60,7 @@
|
||||||
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
||||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
||||||
<!--[if lt IE 9]>
|
<!--[if lt IE 9]>
|
||||||
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
|
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
|
||||||
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||||
<![endif]-->
|
<![endif]-->
|
||||||
</head>
|
</head>
|
||||||
|
|
|
@ -44,7 +44,7 @@
|
||||||
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
||||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
||||||
<!--[if lt IE 9]>
|
<!--[if lt IE 9]>
|
||||||
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
|
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
|
||||||
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||||
<![endif]-->
|
<![endif]-->
|
||||||
</head>
|
</head>
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
||||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
||||||
<!--[if lt IE 9]>
|
<!--[if lt IE 9]>
|
||||||
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
|
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
|
||||||
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||||
<![endif]-->
|
<![endif]-->
|
||||||
</head>
|
</head>
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
||||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
||||||
<!--[if lt IE 9]>
|
<!--[if lt IE 9]>
|
||||||
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
|
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
|
||||||
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||||
<![endif]-->
|
<![endif]-->
|
||||||
</head>
|
</head>
|
||||||
|
@ -28,6 +28,9 @@
|
||||||
|
|
||||||
<button type="button" class="btn btn-primary" data-toggle="button">Single toggle</button>
|
<button type="button" class="btn btn-primary" data-toggle="button">Single toggle</button>
|
||||||
|
|
||||||
|
<p>For checkboxes and radio buttons, ensure that keyboard behavior is functioning correctly.</p>
|
||||||
|
<p>Navigate to the checkboxes with the keyboard (generally, using <kbd>TAB</kbd> / <kbd>SHIFT + TAB</kbd>), and ensure that <kbd>SPACE</kbd> toggles the currently focused checkbox. Click on one of the checkboxes using the mouse, ensure that focus was correctly set on the actual checkbox, and that <kbd>SPACE</kbd> toggles the checkbox again.</p>
|
||||||
|
|
||||||
<div class="btn-group" data-toggle="buttons">
|
<div class="btn-group" data-toggle="buttons">
|
||||||
<label class="btn btn-primary">
|
<label class="btn btn-primary">
|
||||||
<input type="checkbox"> checkbox 1
|
<input type="checkbox"> checkbox 1
|
||||||
|
@ -40,6 +43,8 @@
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<p>Navigate to the radio button group with the keyboard (generally, using <kbd>TAB</kbd> / <kbd>SHIFT + TAB</kbd>). If no radio button was initially set to be selected, the first/last radio button should receive focus (depending on whether you navigated "forward" to the group with <kbd>TAB</kbd> or "backwards" using <kbd>SHIFT + TAB</kbd>). If a radio button was already selected, navigating with the keyboard should set focus to that particular radio button. Only one radio button in a group should receive focus at any given time. Ensure that the selected radio button can be changed by using the <kbd>←</kbd> and <kbd>→</kbd> arrow keys. Click on one of the radio buttons with the mouse, ensure that focus was correctly set on the actual radio button, and that <kbd>←</kbd> and <kbd>→</kbd> change the selected radio button again.</p>
|
||||||
|
|
||||||
<div class="btn-group" data-toggle="buttons">
|
<div class="btn-group" data-toggle="buttons">
|
||||||
<label class="btn btn-primary">
|
<label class="btn btn-primary">
|
||||||
<input type="radio" name="options" id="option1"> Radio 1
|
<input type="radio" name="options" id="option1"> Radio 1
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
||||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
||||||
<!--[if lt IE 9]>
|
<!--[if lt IE 9]>
|
||||||
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
|
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
|
||||||
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||||
<![endif]-->
|
<![endif]-->
|
||||||
</head>
|
</head>
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
||||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
||||||
<!--[if lt IE 9]>
|
<!--[if lt IE 9]>
|
||||||
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
|
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
|
||||||
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||||
<![endif]-->
|
<![endif]-->
|
||||||
</head>
|
</head>
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
||||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
||||||
<!--[if lt IE 9]>
|
<!--[if lt IE 9]>
|
||||||
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
|
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
|
||||||
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||||
<![endif]-->
|
<![endif]-->
|
||||||
</head>
|
</head>
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
||||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
||||||
<!--[if lt IE 9]>
|
<!--[if lt IE 9]>
|
||||||
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
|
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
|
||||||
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||||
<![endif]-->
|
<![endif]-->
|
||||||
|
|
||||||
|
@ -127,12 +127,37 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div id="myModal2" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel2">
|
||||||
|
<div class="modal-dialog" role="document">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||||
|
<h4 class="modal-title" id="myModalLabel2">Modal Heading</h4>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<ol>
|
||||||
|
<li>Ensure you're using Firefox.</li>
|
||||||
|
<li>Open a new tab and then switch back to this tab.</li>
|
||||||
|
<li>Click into this input: <input type="text" id="ff-bug-input"></li>
|
||||||
|
<li>Switch to the other tab and then back to this tab.</li>
|
||||||
|
</ol>
|
||||||
|
<p>Test result: <strong id="ff-bug-test-result"></strong></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">
|
<button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">
|
||||||
Launch demo modal
|
Launch demo modal
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<button id="tall-toggle" class="btn btn-default">Toggle tall <body> content</button>
|
<button id="tall-toggle" class="btn btn-default">Toggle tall <body> content</button>
|
||||||
<br><br>
|
<br><br>
|
||||||
|
<button class="btn btn-secondary btn-lg" data-toggle="modal" data-target="#myModal2">
|
||||||
|
Launch Firefox bug test modal
|
||||||
|
</button>
|
||||||
|
(<a href="https://github.com/twbs/bootstrap/issues/18365">See Issue #18365</a>)
|
||||||
|
<br><br>
|
||||||
<div id="tall" style="display: none;">
|
<div id="tall" style="display: none;">
|
||||||
Tall body content to force the page to have a scrollbar.
|
Tall body content to force the page to have a scrollbar.
|
||||||
</div>
|
</div>
|
||||||
|
@ -149,12 +174,30 @@
|
||||||
|
|
||||||
<!-- JavaScript Test -->
|
<!-- JavaScript Test -->
|
||||||
<script>
|
<script>
|
||||||
|
var firefoxTestDone = false
|
||||||
|
function reportFirefoxTestResult(result) {
|
||||||
|
if (!firefoxTestDone) {
|
||||||
|
$('#ff-bug-test-result')
|
||||||
|
.addClass(result ? 'text-success' : 'text-danger')
|
||||||
|
.text(result ? 'PASS' : 'FAIL')
|
||||||
|
}
|
||||||
|
firefoxTestDone = true
|
||||||
|
}
|
||||||
|
|
||||||
$(function () {
|
$(function () {
|
||||||
$('.js-popover').popover()
|
$('.js-popover').popover()
|
||||||
$('.js-tooltip').tooltip()
|
$('.js-tooltip').tooltip()
|
||||||
$('#tall-toggle').click(function () {
|
$('#tall-toggle').click(function () {
|
||||||
$('#tall').toggle()
|
$('#tall').toggle()
|
||||||
})
|
})
|
||||||
|
$('#ff-bug-input').one('focus', function () {
|
||||||
|
$('#myModal2').on('focus', function () {
|
||||||
|
reportFirefoxTestResult(false)
|
||||||
|
})
|
||||||
|
$('#ff-bug-input').on('focus', function () {
|
||||||
|
reportFirefoxTestResult(true)
|
||||||
|
})
|
||||||
|
})
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
||||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
||||||
<!--[if lt IE 9]>
|
<!--[if lt IE 9]>
|
||||||
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
|
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
|
||||||
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||||
<![endif]-->
|
<![endif]-->
|
||||||
</head>
|
</head>
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
||||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
||||||
<!--[if lt IE 9]>
|
<!--[if lt IE 9]>
|
||||||
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
|
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
|
||||||
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||||
<![endif]-->
|
<![endif]-->
|
||||||
</head>
|
</head>
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
||||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
||||||
<!--[if lt IE 9]>
|
<!--[if lt IE 9]>
|
||||||
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
|
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
|
||||||
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||||
<![endif]-->
|
<![endif]-->
|
||||||
</head>
|
</head>
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
||||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
||||||
<!--[if lt IE 9]>
|
<!--[if lt IE 9]>
|
||||||
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
|
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
|
||||||
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||||
<![endif]-->
|
<![endif]-->
|
||||||
</head>
|
</head>
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: tooltip.js v3.3.6
|
* Bootstrap: tooltip.js v3.3.7
|
||||||
* http://getbootstrap.com/javascript/#tooltip
|
* http://getbootstrap.com/javascript/#tooltip
|
||||||
* Inspired by the original jQuery.tipsy by Jason Frame
|
* Inspired by the original jQuery.tipsy by Jason Frame
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2011-2015 Twitter, Inc.
|
* Copyright 2011-2016 Twitter, Inc.
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
* ======================================================================== */
|
* ======================================================================== */
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@
|
||||||
this.init('tooltip', element, options)
|
this.init('tooltip', element, options)
|
||||||
}
|
}
|
||||||
|
|
||||||
Tooltip.VERSION = '3.3.6'
|
Tooltip.VERSION = '3.3.7'
|
||||||
|
|
||||||
Tooltip.TRANSITION_DURATION = 150
|
Tooltip.TRANSITION_DURATION = 150
|
||||||
|
|
||||||
|
@ -317,9 +317,11 @@
|
||||||
|
|
||||||
function complete() {
|
function complete() {
|
||||||
if (that.hoverState != 'in') $tip.detach()
|
if (that.hoverState != 'in') $tip.detach()
|
||||||
that.$element
|
if (that.$element) { // TODO: Check whether guarding this code with this `if` is really necessary.
|
||||||
.removeAttr('aria-describedby')
|
that.$element
|
||||||
.trigger('hidden.bs.' + that.type)
|
.removeAttr('aria-describedby')
|
||||||
|
.trigger('hidden.bs.' + that.type)
|
||||||
|
}
|
||||||
callback && callback()
|
callback && callback()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -362,7 +364,10 @@
|
||||||
// width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093
|
// width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093
|
||||||
elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })
|
elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })
|
||||||
}
|
}
|
||||||
var elOffset = isBody ? { top: 0, left: 0 } : $element.offset()
|
var isSvg = window.SVGElement && el instanceof window.SVGElement
|
||||||
|
// Avoid using $.offset() on SVGs since it gives incorrect results in jQuery 3.
|
||||||
|
// See https://github.com/twbs/bootstrap/issues/20280
|
||||||
|
var elOffset = isBody ? { top: 0, left: 0 } : (isSvg ? null : $element.offset())
|
||||||
var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }
|
var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }
|
||||||
var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null
|
var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null
|
||||||
|
|
||||||
|
@ -478,6 +483,7 @@
|
||||||
that.$tip = null
|
that.$tip = null
|
||||||
that.$arrow = null
|
that.$arrow = null
|
||||||
that.$viewport = null
|
that.$viewport = null
|
||||||
|
that.$element = null
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
/* ========================================================================
|
/* ========================================================================
|
||||||
* Bootstrap: transition.js v3.3.6
|
* Bootstrap: transition.js v3.3.7
|
||||||
* http://getbootstrap.com/javascript/#transitions
|
* http://getbootstrap.com/javascript/#transitions
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
* Copyright 2011-2015 Twitter, Inc.
|
* Copyright 2011-2016 Twitter, Inc.
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
* ======================================================================== */
|
* ======================================================================== */
|
||||||
|
|
||||||
|
|
4
bootstrap/less/bootstrap.less
vendored
4
bootstrap/less/bootstrap.less
vendored
|
@ -1,6 +1,6 @@
|
||||||
/*!
|
/*!
|
||||||
* Bootstrap v3.3.6 (http://getbootstrap.com)
|
* Bootstrap v3.3.7 (http://getbootstrap.com)
|
||||||
* Copyright 2011-2015 Twitter, Inc.
|
* Copyright 2011-2016 Twitter, Inc.
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
@ -59,7 +59,7 @@
|
||||||
.border-right-radius(0);
|
.border-right-radius(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it
|
// Need .dropdown-toggle since :last-child doesn't apply, given that a .dropdown-menu is used immediately after it
|
||||||
.btn-group > .btn:last-child:not(:first-child),
|
.btn-group > .btn:last-child:not(:first-child),
|
||||||
.btn-group > .dropdown-toggle:not(:first-child) {
|
.btn-group > .dropdown-toggle:not(:first-child) {
|
||||||
.border-left-radius(0);
|
.border-left-radius(0);
|
||||||
|
|
|
@ -181,7 +181,7 @@ input[type="search"] {
|
||||||
// set a pixel line-height that matches the given height of the input, but only
|
// set a pixel line-height that matches the given height of the input, but only
|
||||||
// for Safari. See https://bugs.webkit.org/show_bug.cgi?id=139848
|
// for Safari. See https://bugs.webkit.org/show_bug.cgi?id=139848
|
||||||
//
|
//
|
||||||
// Note that as of 8.3, iOS doesn't support `datetime` or `week`.
|
// Note that as of 9.3, iOS doesn't support `week`.
|
||||||
|
|
||||||
@media screen and (-webkit-min-device-pixel-ratio: 0) {
|
@media screen and (-webkit-min-device-pixel-ratio: 0) {
|
||||||
input[type="date"],
|
input[type="date"],
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
|
|
||||||
width: 100%;
|
width: 100%;
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
|
|
||||||
&:focus {
|
&:focus {
|
||||||
z-index: 3;
|
z-index: 3;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
// WebKit-style focus
|
// WebKit-style focus
|
||||||
|
|
||||||
.tab-focus() {
|
.tab-focus() {
|
||||||
// Default
|
// WebKit-specific. Other browsers will keep their default outline style.
|
||||||
outline: thin dotted;
|
// (Initially tried to also force default via `outline: initial`,
|
||||||
// WebKit
|
// but that seems to erroneously remove the outline in Firefox altogether.)
|
||||||
outline: 5px auto -webkit-focus-ring-color;
|
outline: 5px auto -webkit-focus-ring-color;
|
||||||
outline-offset: -2px;
|
outline-offset: -2px;
|
||||||
}
|
}
|
||||||
|
|
|
@ -214,7 +214,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Collapsable panels (aka, accordion)
|
// Collapsible panels (aka, accordion)
|
||||||
//
|
//
|
||||||
// Wrap a series of panels in `.panel-group` to turn them into an accordion with
|
// Wrap a series of panels in `.panel-group` to turn them into an accordion with
|
||||||
// the help of our collapse JavaScript plugin.
|
// the help of our collapse JavaScript plugin.
|
||||||
|
|
|
@ -120,7 +120,7 @@ hr {
|
||||||
|
|
||||||
// Only display content to screen readers
|
// Only display content to screen readers
|
||||||
//
|
//
|
||||||
// See: http://a11yproject.com/posts/how-to-hide-content/
|
// See: http://a11yproject.com/posts/how-to-hide-content
|
||||||
|
|
||||||
.sr-only {
|
.sr-only {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*!
|
/*!
|
||||||
* Bootstrap v3.3.6 (http://getbootstrap.com)
|
* Bootstrap v3.3.7 (http://getbootstrap.com)
|
||||||
* Copyright 2011-2015 Twitter, Inc.
|
* Copyright 2011-2016 Twitter, Inc.
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -12,7 +12,6 @@
|
||||||
@import "ietf.less"; // IETF datatracker overrides
|
@import "ietf.less"; // IETF datatracker overrides
|
||||||
@import "mixins.less";
|
@import "mixins.less";
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Buttons
|
// Buttons
|
||||||
// --------------------------------------------------
|
// --------------------------------------------------
|
||||||
|
|
|
@ -111,7 +111,7 @@
|
||||||
//** Global background color for active items (e.g., navs or dropdowns).
|
//** Global background color for active items (e.g., navs or dropdowns).
|
||||||
@component-active-bg: @brand-primary;
|
@component-active-bg: @brand-primary;
|
||||||
|
|
||||||
//** Width of the `border` for generating carets that indicator dropdowns.
|
//** Width of the `border` for generating carets that indicate dropdowns.
|
||||||
@caret-width-base: 4px;
|
@caret-width-base: 4px;
|
||||||
//** Carets increase slightly in size for larger components.
|
//** Carets increase slightly in size for larger components.
|
||||||
@caret-width-large: 5px;
|
@caret-width-large: 5px;
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
$nuget = $env:NuGet
|
$nuget = $env:NuGet
|
||||||
|
|
||||||
#parse the version number out of package.json
|
# parse the version number out of package.json
|
||||||
$bsversion = ((Get-Content $env:SourcesPath\package.json) -join "`n" | ConvertFrom-Json).version
|
$bsversion = ((Get-Content $env:SourcesPath\package.json) -join "`n" | ConvertFrom-Json).version
|
||||||
|
|
||||||
#create packages
|
# create packages
|
||||||
& $nuget pack "nuget\bootstrap.nuspec" -Verbosity detailed -NonInteractive -NoPackageAnalysis -BasePath $env:SourcesPath -Version $bsversion
|
& $nuget pack "nuget\bootstrap.nuspec" -Verbosity detailed -NonInteractive -NoPackageAnalysis -BasePath $env:SourcesPath -Version $bsversion
|
||||||
& $nuget pack "nuget\bootstrap.less.nuspec" -Verbosity detailed -NonInteractive -NoPackageAnalysis -BasePath $env:SourcesPath -Version $bsversion
|
& $nuget pack "nuget\bootstrap.less.nuspec" -Verbosity detailed -NonInteractive -NoPackageAnalysis -BasePath $env:SourcesPath -Version $bsversion
|
||||||
|
|
|
@ -2,23 +2,23 @@
|
||||||
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
|
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
|
||||||
<metadata>
|
<metadata>
|
||||||
<id>bootstrap.less</id>
|
<id>bootstrap.less</id>
|
||||||
<version>3.3</version>
|
<version>3.3.7</version>
|
||||||
<title>Bootstrap Less</title>
|
<title>Bootstrap Less</title>
|
||||||
<authors>Twitter, Inc.</authors>
|
<authors>Twitter, Inc.</authors>
|
||||||
<owners>bootstrap</owners>
|
<owners>bootstrap</owners>
|
||||||
<description>The most popular front-end framework for developing responsive, mobile first projects on the web.</description>
|
<description>The most popular front-end framework for developing responsive, mobile first projects on the web.</description>
|
||||||
<releaseNotes>http://blog.getbootstrap.com</releaseNotes>
|
<releaseNotes>http://blog.getbootstrap.com</releaseNotes>
|
||||||
<summary>Bootstrap framework in Less. Includes fonts and JavaScript</summary>
|
<summary>Bootstrap framework in Less. Includes fonts and JavaScript</summary>
|
||||||
<language>en-us</language>
|
<language>en-us</language>
|
||||||
<projectUrl>http://getbootstrap.com</projectUrl>
|
<projectUrl>http://getbootstrap.com</projectUrl>
|
||||||
<iconUrl>http://getbootstrap.com/apple-touch-icon.png</iconUrl>
|
<iconUrl>http://getbootstrap.com/apple-touch-icon.png</iconUrl>
|
||||||
<licenseUrl>https://github.com/twbs/bootstrap/blob/master/LICENSE</licenseUrl>
|
<licenseUrl>https://github.com/twbs/bootstrap/blob/master/LICENSE</licenseUrl>
|
||||||
<copyright>Copyright 2015</copyright>
|
<copyright>Copyright 2016</copyright>
|
||||||
<requireLicenseAcceptance>false</requireLicenseAcceptance>
|
<requireLicenseAcceptance>false</requireLicenseAcceptance>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency id="jQuery" version="[1.9.1,3)" />
|
<dependency id="jQuery" version="[1.9.1,4)" />
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<tags>css js less mobile-first responsive front-end framework web</tags>
|
<tags>css js less mobile-first responsive front-end framework web</tags>
|
||||||
</metadata>
|
</metadata>
|
||||||
<files>
|
<files>
|
||||||
<file src="less\**\*.less" target="content\Content\bootstrap" />
|
<file src="less\**\*.less" target="content\Content\bootstrap" />
|
||||||
|
|
|
@ -2,23 +2,23 @@
|
||||||
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
|
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
|
||||||
<metadata>
|
<metadata>
|
||||||
<id>bootstrap</id>
|
<id>bootstrap</id>
|
||||||
<version>3.3</version>
|
<version>3.3.7</version>
|
||||||
<title>Bootstrap CSS</title>
|
<title>Bootstrap CSS</title>
|
||||||
<authors>Twitter, Inc.</authors>
|
<authors>Twitter, Inc.</authors>
|
||||||
<owners>bootstrap</owners>
|
<owners>bootstrap</owners>
|
||||||
<description>The most popular front-end framework for developing responsive, mobile first projects on the web.</description>
|
<description>The most popular front-end framework for developing responsive, mobile first projects on the web.</description>
|
||||||
<releaseNotes>http://blog.getbootstrap.com</releaseNotes>
|
<releaseNotes>http://blog.getbootstrap.com</releaseNotes>
|
||||||
<summary>Bootstrap framework in CSS. Includes fonts and JavaScript</summary>
|
<summary>Bootstrap framework in CSS. Includes fonts and JavaScript</summary>
|
||||||
<language>en-us</language>
|
<language>en-us</language>
|
||||||
<projectUrl>http://getbootstrap.com</projectUrl>
|
<projectUrl>http://getbootstrap.com</projectUrl>
|
||||||
<iconUrl>http://getbootstrap.com/apple-touch-icon.png</iconUrl>
|
<iconUrl>http://getbootstrap.com/apple-touch-icon.png</iconUrl>
|
||||||
<licenseUrl>https://github.com/twbs/bootstrap/blob/master/LICENSE</licenseUrl>
|
<licenseUrl>https://github.com/twbs/bootstrap/blob/master/LICENSE</licenseUrl>
|
||||||
<copyright>Copyright 2015</copyright>
|
<copyright>Copyright 2016</copyright>
|
||||||
<requireLicenseAcceptance>false</requireLicenseAcceptance>
|
<requireLicenseAcceptance>false</requireLicenseAcceptance>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency id="jQuery" version="[1.9.1,3)" />
|
<dependency id="jQuery" version="[1.9.1,4)" />
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<tags>css js less mobile-first responsive front-end framework web</tags>
|
<tags>css js less mobile-first responsive front-end framework web</tags>
|
||||||
</metadata>
|
</metadata>
|
||||||
<files>
|
<files>
|
||||||
<file src="dist\css\*.*" target="content\Content" />
|
<file src="dist\css\*.*" target="content\Content" />
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
Package.describe({
|
Package.describe({
|
||||||
name: 'twbs:bootstrap', // http://atmospherejs.com/twbs/bootstrap
|
name: 'twbs:bootstrap', // http://atmospherejs.com/twbs/bootstrap
|
||||||
summary: 'The most popular front-end framework for developing responsive, mobile first projects on the web.',
|
summary: 'The most popular front-end framework for developing responsive, mobile first projects on the web.',
|
||||||
version: '3.3.6',
|
version: '3.3.7',
|
||||||
git: 'https://github.com/twbs/bootstrap.git'
|
git: 'https://github.com/twbs/bootstrap.git'
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "bootstrap",
|
"name": "bootstrap",
|
||||||
"description": "The most popular front-end framework for developing responsive, mobile first projects on the web.",
|
"description": "The most popular front-end framework for developing responsive, mobile first projects on the web.",
|
||||||
"version": "3.3.6",
|
"version": "3.3.7",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"css",
|
"css",
|
||||||
"less",
|
"less",
|
||||||
|
@ -14,6 +14,8 @@
|
||||||
"homepage": "http://getbootstrap.com",
|
"homepage": "http://getbootstrap.com",
|
||||||
"author": "Twitter, Inc.",
|
"author": "Twitter, Inc.",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
"change-version": "node grunt/change-version.js",
|
||||||
|
"update-shrinkwrap": "npm shrinkwrap --dev && shx mv ./npm-shrinkwrap.json ./grunt/npm-shrinkwrap.json",
|
||||||
"test": "grunt test"
|
"test": "grunt test"
|
||||||
},
|
},
|
||||||
"style": "dist/css/bootstrap.css",
|
"style": "dist/css/bootstrap.css",
|
||||||
|
@ -29,34 +31,34 @@
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"btoa": "~1.1.2",
|
"btoa": "~1.1.2",
|
||||||
"glob": "~6.0.1",
|
"glob": "~7.0.3",
|
||||||
"grunt": "~0.4.5",
|
"grunt": "~1.0.1",
|
||||||
"grunt-autoprefixer": "~3.0.3",
|
"grunt-autoprefixer": "~3.0.4",
|
||||||
"grunt-contrib-clean": "~0.6.0",
|
"grunt-contrib-clean": "~1.0.0",
|
||||||
"grunt-contrib-compress": "~0.14.0",
|
"grunt-contrib-compress": "~1.3.0",
|
||||||
"grunt-contrib-concat": "~0.5.1",
|
"grunt-contrib-concat": "~1.0.0",
|
||||||
"grunt-contrib-connect": "~0.11.2",
|
"grunt-contrib-connect": "~1.0.0",
|
||||||
"grunt-contrib-copy": "~0.8.0",
|
"grunt-contrib-copy": "~1.0.0",
|
||||||
"grunt-contrib-csslint": "~0.5.0",
|
"grunt-contrib-csslint": "~1.0.0",
|
||||||
"grunt-contrib-cssmin": "~0.14.0",
|
"grunt-contrib-cssmin": "~1.0.0",
|
||||||
"grunt-contrib-htmlmin": "~0.6.0",
|
"grunt-contrib-htmlmin": "~1.5.0",
|
||||||
"grunt-contrib-jade": "~0.15.0",
|
"grunt-contrib-jshint": "~1.0.0",
|
||||||
"grunt-contrib-jshint": "~0.11.2",
|
"grunt-contrib-less": "~1.3.0",
|
||||||
"grunt-contrib-less": "~1.1.0",
|
"grunt-contrib-pug": "~1.0.0",
|
||||||
"grunt-contrib-qunit": "~0.7.0",
|
"grunt-contrib-qunit": "~0.7.0",
|
||||||
"grunt-contrib-uglify": "~0.9.2",
|
"grunt-contrib-uglify": "~1.0.0",
|
||||||
"grunt-contrib-watch": "~0.6.1",
|
"grunt-contrib-watch": "~1.0.0",
|
||||||
"grunt-csscomb": "~3.1.0",
|
"grunt-csscomb": "~3.1.0",
|
||||||
"grunt-exec": "~0.4.6",
|
"grunt-exec": "~1.0.0",
|
||||||
"grunt-html": "~5.0.1",
|
"grunt-html": "~8.0.1",
|
||||||
"grunt-jekyll": "~0.4.2",
|
"grunt-jekyll": "~0.4.4",
|
||||||
"grunt-jscs": "~2.3.0",
|
"grunt-jscs": "~3.0.1",
|
||||||
"grunt-saucelabs": "~8.6.1",
|
"grunt-saucelabs": "~9.0.0",
|
||||||
"grunt-sed": "twbs/grunt-sed#v0.2.0",
|
"load-grunt-tasks": "~3.5.0",
|
||||||
"load-grunt-tasks": "~3.3.0",
|
"markdown-it": "^7.0.0",
|
||||||
"markdown-it": "^5.0.0",
|
"shelljs": "^0.7.0",
|
||||||
"npm-shrinkwrap": "^200.4.0",
|
"shx": "^0.1.2",
|
||||||
"time-grunt": "^1.2.1"
|
"time-grunt": "^1.3.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=0.10.1"
|
"node": ">=0.10.1"
|
||||||
|
|
Loading…
Reference in a new issue