mirror of
https://github.com/twbs/bootstrap.git
synced 2025-02-19 16:54:24 +01:00
Merge branch 'master' into v4
Conflicts: .gitignore Gruntfile.js _config.yml dist/css/bootstrap-theme.css dist/css/bootstrap-theme.min.css dist/css/bootstrap.css dist/css/bootstrap.css.map dist/css/bootstrap.min.css dist/js/bootstrap.js dist/js/bootstrap.min.js docs/_includes/components/navbar.html docs/_includes/components/progress-bars.html docs/_includes/css/grid.html docs/_includes/css/overview.html docs/_includes/customizer-variables.html docs/_includes/getting-started/accessibility.html docs/_includes/getting-started/browser-device-support.html docs/_includes/getting-started/community.html docs/_includes/getting-started/disabling-responsiveness.html docs/_includes/getting-started/download.html docs/_includes/getting-started/examples.html docs/_includes/getting-started/license.html docs/_includes/getting-started/third-party-support.html docs/_includes/js/alerts.html docs/_includes/js/buttons.html docs/_includes/js/carousel.html docs/_includes/js/collapse.html docs/_includes/js/dropdowns.html docs/_includes/js/modal.html docs/_includes/js/popovers.html docs/_includes/js/scrollspy.html docs/_includes/js/tabs.html docs/_includes/js/tooltips.html docs/_includes/js/transitions.html docs/_includes/nav/javascript.html docs/_includes/nav/main.html docs/about.html docs/assets/css/docs.min.css docs/assets/css/src/docs.css docs/assets/js/customize.min.js docs/assets/js/raw-files.min.js docs/assets/js/src/customizer.js docs/dist/css/bootstrap-theme.css docs/dist/css/bootstrap-theme.min.css docs/dist/css/bootstrap.css docs/dist/css/bootstrap.css.map docs/dist/css/bootstrap.min.css docs/dist/js/bootstrap.js docs/dist/js/bootstrap.min.js docs/migration.html js/affix.js js/alert.js js/button.js js/carousel.js js/collapse.js js/dropdown.js js/modal.js js/popover.js js/scrollspy.js js/tab.js js/tests/unit/affix.js js/tests/unit/button.js js/tests/unit/carousel.js js/tests/unit/modal.js js/tests/unit/tooltip.js js/tests/visual/modal.html js/tooltip.js less/component-animations.less less/jumbotron.less less/mixins/background-variant.less less/mixins/buttons.less less/mixins/responsive-visibility.less less/mixins/text-emphasis.less less/navbar.less less/navs.less less/scaffolding.less less/tooltip.less less/utilities.less less/variables.less package.json scss/_buttons.scss scss/_forms.scss scss/_modal.scss
This commit is contained in:
commit
58082cd83e
@ -246,6 +246,9 @@ module.exports = function (grunt) {
|
||||
|
||||
cssmin: {
|
||||
options: {
|
||||
// TODO: disable `zeroUnits` optimization once clean-css 3.2 is released
|
||||
// and then simplify the fix for https://github.com/twbs/bootstrap/issues/14837 accordingly
|
||||
compatibility: 'ie8',
|
||||
keepSpecialComments: '*',
|
||||
noAdvanced: true
|
||||
},
|
||||
@ -341,7 +344,7 @@ module.exports = function (grunt) {
|
||||
watch: {
|
||||
src: {
|
||||
files: '<%= jshint.core.src %>',
|
||||
tasks: ['jshint:src', 'qunit', 'concat']
|
||||
tasks: ['jshint:core', 'qunit', 'concat']
|
||||
},
|
||||
test: {
|
||||
files: '<%= jshint.test.src %>',
|
||||
|
11
README.md
11
README.md
@ -23,13 +23,14 @@ To get started, check out <http://getbootstrap.com>!
|
||||
|
||||
## Quick start
|
||||
|
||||
Four quick start options are available:
|
||||
Several quick start options are available:
|
||||
|
||||
- [Download the latest release](https://github.com/twbs/bootstrap/archive/v3.3.2.zip).
|
||||
- [Download the latest release](https://github.com/twbs/bootstrap/archive/v3.3.4.zip).
|
||||
- Clone the repo: `git clone https://github.com/twbs/bootstrap.git`.
|
||||
- Install with [Bower](http://bower.io): `bower install bootstrap`.
|
||||
- Install with [npm](https://www.npmjs.com): `npm install bootstrap`.
|
||||
- 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`.
|
||||
|
||||
Read the [Getting started page](http://getbootstrap.com/getting-started/) for information on the framework contents, templates and examples, and more.
|
||||
|
||||
@ -83,7 +84,7 @@ Documentation for v2.3.2 has been made available for the time being at <http://g
|
||||
|
||||
Please read through our [contributing guidelines](https://github.com/twbs/bootstrap/blob/master/CONTRIBUTING.md). Included are directions for opening issues, coding standards, and notes on development.
|
||||
|
||||
Moreover, if your pull request contains JavaScript patches or features, you must include relevant unit 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).
|
||||
|
||||
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>.
|
||||
|
||||
@ -97,7 +98,7 @@ Keep track of development and community news.
|
||||
- Read and subscribe to [The Official Bootstrap Blog](http://blog.getbootstrap.com).
|
||||
- Chat with fellow Bootstrappers in IRC. On the `irc.freenode.net` server, in the `##bootstrap` channel.
|
||||
- Implementation help may be found at Stack Overflow (tagged [`twitter-bootstrap-3`](http://stackoverflow.com/questions/tagged/twitter-bootstrap-3)).
|
||||
- Developers should use the keyword `bootstrap` on packages which modify or add to the functionality of Bootstrap when distributing through [npm](https://www.npmjs.com/browse/keyword/twbs-bootstrap) or similar delivery mechanisms for maximum discoverability.
|
||||
- Developers should use the keyword `bootstrap` on packages which modify or add to the functionality of Bootstrap when distributing through [npm](https://www.npmjs.com/browse/keyword/bootstrap) or similar delivery mechanisms for maximum discoverability.
|
||||
|
||||
|
||||
|
||||
|
10
_config.yml
10
_config.yml
@ -24,16 +24,16 @@ repo: https://github.com/twbs/bootstrap
|
||||
sass_repo: https://github.com/twbs/bootstrap-sass
|
||||
|
||||
download:
|
||||
source: https://github.com/twbs/bootstrap/archive/v3.3.2.zip
|
||||
dist: https://github.com/twbs/bootstrap/releases/download/v3.3.2/bootstrap-3.3.2-dist.zip
|
||||
sass: https://github.com/twbs/bootstrap-sass/archive/v3.3.2.tar.gz
|
||||
source: https://github.com/twbs/bootstrap/archive/v3.3.4.zip
|
||||
dist: https://github.com/twbs/bootstrap/releases/download/v3.3.4/bootstrap-3.3.4-dist.zip
|
||||
sass: https://github.com/twbs/bootstrap-sass/archive/v3.3.4.tar.gz
|
||||
|
||||
blog: http://blog.getbootstrap.com
|
||||
expo: http://expo.getbootstrap.com
|
||||
|
||||
cdn:
|
||||
css: https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css
|
||||
js: https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js
|
||||
css: https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css
|
||||
js: https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js
|
||||
jquery: //code.jquery.com/jquery-2.1.1.min.js
|
||||
|
||||
bug:
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "bootstrap",
|
||||
"description": "The most popular front-end framework for developing responsive, mobile first projects on the web.",
|
||||
"version": "3.3.2",
|
||||
"version": "3.3.4",
|
||||
"keywords": [
|
||||
"css",
|
||||
"js",
|
||||
|
@ -118,6 +118,16 @@
|
||||
origin: >
|
||||
Bootstrap#14409
|
||||
|
||||
-
|
||||
browser: >
|
||||
Chrome
|
||||
summary: >
|
||||
`:focus` `outline` style causes cursor to not be displayed when toggling a `readonly` `<input>` to read-write.
|
||||
upstream_bug: >
|
||||
Chromium#465274
|
||||
origin: >
|
||||
Bootstrap#16022
|
||||
|
||||
-
|
||||
browser: >
|
||||
Chrome (Windows & Linux)
|
||||
|
@ -42,3 +42,8 @@
|
||||
code: uk
|
||||
description: Bootstrap українською
|
||||
url: http://twbs.docs.org.ua
|
||||
|
||||
- name: Vietnamese
|
||||
code: vi
|
||||
description: Bootstrap bằng tiếng Việt
|
||||
url: http://getbootstrap.com.vn
|
||||
|
@ -7,4 +7,4 @@ Originally created by a designer and a developer at Twitter, Bootstrap has becom
|
||||
|
||||
Bootstrap was created at Twitter in mid-2010 by [@mdo](https://twitter.com/mdo) and [@fat](https://twitter.com/fat). Prior to being an open-sourced framework, Bootstrap was known as _Twitter Blueprint_. A few months into development, Twitter held its [first Hack Week](https://blog.twitter.com/2010/hack-week) and the project exploded as developers of all skill levels jumped in without any external guidance. It served as the style guide for internal tools development at the company for over a year before its public release, and continues to do so today.
|
||||
|
||||
Originally [released](https://dev.twitter.com/blog/bootstrap-twitter) on [<time datetime="2011-08-19 11:25">Friday, August 19, 2011</time>](https://twitter.com/mdo/statuses/104620039650557952), we've since had over [twenty releases](https://github.com/twbs/bootstrap/releases), including two major rewrites with v2 and v3. With Bootstrap 2, we added responsive functionality to the entire framework as an optional stylesheet. Building on that with Bootstrap 3, we rewrote the library once more to make it responsive by default with a mobile first approach.
|
||||
Originally [released](https://blog.twitter.com/2011/bootstrap-twitter) on [<time datetime="2011-08-19 11:25">Friday, August 19, 2011</time>](https://twitter.com/mdo/statuses/104620039650557952), we've since had over [twenty releases](https://github.com/twbs/bootstrap/releases), including two major rewrites with v2 and v3. With Bootstrap 2, we added responsive functionality to the entire framework as an optional stylesheet. Building on that with Bootstrap 3, we rewrote the library once more to make it responsive by default with a mobile first approach.
|
@ -5,7 +5,7 @@ title: Accessibility
|
||||
|
||||
Bootstrap follows common web standards and—with minimal extra effort—can be used to create sites that are accessible to those using <abbr title="Assistive Technology" class="initialism">AT</abbr>.
|
||||
|
||||
### Skip navigation
|
||||
## Skip navigation
|
||||
|
||||
If your navigation contains many links and comes before the main content in the DOM, add a `Skip to main content` link before the navigation (for a simple explanation, see this [A11Y Project article on skip navigation links](http://a11yproject.com/posts/skip-nav-links/)). Using the `.sr-only` class will visually hide the skip link, and the <code>.sr-only-focusable</code> class will ensure that the link becomes visible once focused (for sighted keyboard users).
|
||||
|
||||
@ -25,13 +25,13 @@ If your navigation contains many links and comes before the main content in the
|
||||
</body>
|
||||
{% endhighlight %}
|
||||
|
||||
### Nested headings
|
||||
## Nested headings
|
||||
|
||||
When nesting headings (`<h1>` - `<h6>`), your primary document header should be an `<h1>`. Subsequent headings should make logical use of `<h2>` - `<h6>` such that screen readers can construct a table of contents for your pages.
|
||||
|
||||
Learn more at [HTML CodeSniffer](http://squizlabs.github.io/HTML_CodeSniffer/Standards/Section508/) and [Penn State's Accessability](http://accessibility.psu.edu/headings).
|
||||
|
||||
### Additional resources
|
||||
## Additional resources
|
||||
|
||||
- ["HTML Codesniffer" bookmarklet for identifying accessibility issues](https://github.com/squizlabs/HTML_CodeSniffer)
|
||||
- [The A11Y Project](http://a11yproject.com/)
|
||||
|
@ -54,6 +54,19 @@ Bootstrap's `package.json` contains some additional metadata under the following
|
||||
- `less` - path to Bootstrap's main [Less](http://lesscss.org) source file
|
||||
- `style` - path to Bootstrap's non-minified CSS that's been precompiled using the default settings (no customization)
|
||||
|
||||
### Meteor
|
||||
|
||||
{% highlight bash %}
|
||||
$ meteor add twbs:bootstrap
|
||||
{% endhighlight %}
|
||||
|
||||
### Composer
|
||||
|
||||
{% highlight bash %}
|
||||
$ composer require twbs/bootstrap
|
||||
{% endhighlight %}
|
||||
|
||||
|
||||
### Autoprefixer required
|
||||
|
||||
Bootstrap uses [Autoprefixer](https://github.com/postcss/autoprefixer) to deal with [CSS vendor prefixes](http://webdesign.about.com/od/css/a/css-vendor-prefixes.htm). If you're compiling Bootstrap from its source Sass and not using our Gruntfile, you'll need to integrate Autoprefixer into your build process yourself. If you're using precompiled Bootstrap or using our Gruntfile, you don't need to worry about this as Autoprefixer is already integrated into our Gruntfile.
|
||||
|
@ -5,7 +5,7 @@ title: Supported platforms
|
||||
|
||||
Bootstrap is built to work best with the latest techniques. As such, older desktop and mobile browsers may display differently, but should remain fully functional.
|
||||
|
||||
### Supported browsers
|
||||
## Supported browsers
|
||||
|
||||
Bootstrap supports the **latest, stable releases** of all major browsers and platforms. On Windows, **we support Internet Explorer 9-11**. More specific support information is provided below.
|
||||
|
||||
@ -65,7 +65,7 @@ Unofficially, Bootstrap should look and behave well enough in Chromium and Chrom
|
||||
|
||||
For a list of some of the browser bugs that Bootstrap has to grapple with, see our [Wall of browser bugs](../browser-bugs/).
|
||||
|
||||
### Internet Explorer 9
|
||||
## Internet Explorer 9
|
||||
|
||||
Internet Explorer 9 is also supported, however, please be aware that some CSS3 properties and HTML5 elements are not fully supported.
|
||||
|
||||
@ -104,7 +104,7 @@ Internet Explorer 9 is also supported, however, please be aware that some CSS3 p
|
||||
|
||||
Visit [Can I use...](http://caniuse.com/) for details on browser support of CSS3 and HTML5 features.
|
||||
|
||||
### Supporting Internet Explorer 8
|
||||
## Supporting Internet Explorer 8
|
||||
|
||||
As of v4, Bootstrap no longer supports IE8. **If you require IE8 support, we recommend you use Bootstrap 3.** It's still supported by our team for bugfixes and documentation changes, but no new features will be added to it.
|
||||
|
||||
@ -114,7 +114,7 @@ Alternatively, you can add the some third party JavaScript to backfill support f
|
||||
* [Respond.js](https://github.com/scottjehl/Respond)
|
||||
* [Rem unit polyfill](https://github.com/chuckcarpenter/REM-unit-polyfill)
|
||||
|
||||
### IE Compatibility modes
|
||||
## IE Compatibility modes
|
||||
|
||||
Bootstrap is not supported in the old Internet Explorer compatibility modes. To be sure you're using the latest rendering mode for IE, consider including the appropriate `<meta>` tag in your pages:
|
||||
|
||||
@ -128,7 +128,7 @@ This tag is included in all of Bootstrap's documentation and examples to ensure
|
||||
|
||||
See [this StackOverflow question](http://stackoverflow.com/questions/6771258/whats-the-difference-if-meta-http-equiv-x-ua-compatible-content-ie-edge) for more information.
|
||||
|
||||
### Internet Explorer 10 in Windows Phone 8
|
||||
## Internet Explorer 10 in Windows Phone 8
|
||||
|
||||
Internet Explorer 10 in Windows Phone 8 versions older than [Update 3 (a.k.a. GDR3)](http://blogs.windows.com/windows_phone/b/wpdev/archive/2013/10/14/introducing-windows-phone-preview-for-developers.aspx) doesn't differentiate **device width** from **viewport width** in `@-ms-viewport` at-rules, and thus doesn't properly apply the media queries in Bootstrap's CSS. To address this, you'll need to **include the following JavaScript to work around the bug**.
|
||||
|
||||
@ -148,30 +148,30 @@ For more information and usage guidelines, read [Windows Phone 8 and Device-Widt
|
||||
|
||||
As a heads up, we include this in all of Bootstrap's documentation and examples as a demonstration.
|
||||
|
||||
### Modals, navbars, and virtual keyboards
|
||||
## Modals, navbars, and virtual keyboards
|
||||
|
||||
#### Overflow and scrolling
|
||||
### Overflow and scrolling
|
||||
|
||||
Support for `overflow: hidden;` on the `<body>` element is quite limited in iOS and Android. To that end, when you scroll past the top or bottom of a modal in either of those devices' browsers, the `<body>` content will begin to scroll.
|
||||
|
||||
#### Virtual keyboards
|
||||
### Virtual keyboards
|
||||
|
||||
Also, note that if you're using a fixed navbar or using inputs within a modal, iOS has a rendering bug that doesn't update the position of fixed elements when the virtual keyboard is triggered. A few workarounds for this include transforming your elements to `position: absolute;` or invoking a timer on focus to try to correct the positioning manually. This is not handled by Bootstrap, so it is up to you to decide which solution is best for your application.
|
||||
|
||||
#### Navbar Dropdowns
|
||||
### Navbar Dropdowns
|
||||
|
||||
The `.dropdown-backdrop` element isn't used on iOS in the nav because of the complexity of z-indexing. Thus, to close dropdowns in navbars, you must directly click the dropdown element (or [any other element which will fire a click event in iOS](https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile)).
|
||||
|
||||
### Browser zooming
|
||||
## Browser zooming
|
||||
|
||||
Page zooming inevitably presents rendering artifacts in some components, both in Bootstrap and the rest of the web. Depending on the issue, we may be able to fix it (search first and then open an issue if need be). However, we tend to ignore these as they often have no direct solution other than hacky workarounds.
|
||||
|
||||
### Sticky `:hover`/`:focus` on mobile
|
||||
## Sticky `:hover`/`:focus` on mobile
|
||||
Even though real hovering isn't possible on most touchscreens, most mobile browsers emulate hovering support and make `:hover` "sticky". In other words, `:hover` styles start applying after tapping an element and only stop applying after the user taps some other element. On mobile-first sites, this behavior is normally undesirable.
|
||||
|
||||
Bootstrap includes a workaround for this, although it is disabled by default. By setting `$use-hover-media-query` to `true` when compiling from Sass, Bootstrap will use [mq4-hover-shim](https://github.com/twbs/mq4-hover-shim) to disable `:hover` styles in browsers that emulate hovering, thus preventing sticky `:hover` styles. There are some caveats to this workaround; see the shim's documentation for details.
|
||||
|
||||
### Printing
|
||||
## Printing
|
||||
|
||||
Even in some modern browsers, printing can be quirky.
|
||||
|
||||
@ -187,7 +187,7 @@ Also, as of Safari v8.0, fixed-width <code>.container</code>s can cause Safari t
|
||||
}
|
||||
{% endhighlight %}
|
||||
|
||||
### Android stock browser
|
||||
## Android stock browser
|
||||
|
||||
Out of the box, Android 4.1 (and even some newer releases apparently) ship with the Browser app as the default web browser of choice (as opposed to Chrome). Unfortunately, the Browser app has lots of bugs and inconsistencies with CSS in general.
|
||||
|
||||
@ -209,7 +209,7 @@ $(function () {
|
||||
|
||||
Want to see an example? [Check out this JS Bin demo.](http://jsbin.com/OyaqoDO/2)
|
||||
|
||||
### Validators
|
||||
## Validators
|
||||
|
||||
In order to provide the best possible experience to old and buggy browsers, Bootstrap uses [CSS browser hacks](http://browserhacks.com) in several places to target special CSS to certain browser versions in order to work around bugs in the browsers themselves. These hacks understandably cause CSS validators to complain that they are invalid. In a couple places, we also use bleeding-edge CSS features that aren't yet fully standardized, but these are used purely for progressive enhancement.
|
||||
|
||||
|
@ -5,7 +5,7 @@ title: Third party support
|
||||
|
||||
While we don't officially support any third party plugins or add-ons, we do offer some useful advice to help avoid potential issues in your projects.
|
||||
|
||||
### Box-sizing
|
||||
## Box-sizing
|
||||
|
||||
Some third-party software, including Google Maps and Google Custom Search Engine, conflict with Bootstrap due to `* { box-sizing: border-box; }`, a rule which makes it so `padding` does not affect the final computed width of an element. These widgets expect the box model to be `content-box` instead. Learn more about [box model and sizing at CSS Tricks](http://css-tricks.com/box-sizing/).
|
||||
|
||||
|
@ -8,6 +8,7 @@
|
||||
"disallowSpaceAfterPrefixUnaryOperators": ["++", "--", "+", "-", "~", "!"],
|
||||
"disallowSpaceBeforeBinaryOperators": [","],
|
||||
"disallowSpaceBeforePostfixUnaryOperators": ["++", "--"],
|
||||
"disallowSpacesInFunctionDeclaration": { "beforeOpeningRoundBrace": true },
|
||||
"disallowSpacesInNamedFunctionExpression": { "beforeOpeningRoundBrace": true },
|
||||
"disallowSpacesInsideArrayBrackets": true,
|
||||
"disallowSpacesInsideParentheses": true,
|
||||
|
61
js/tests/README.md
Normal file
61
js/tests/README.md
Normal file
@ -0,0 +1,61 @@
|
||||
## How does Bootstrap's test suite work?
|
||||
|
||||
Bootstrap uses [QUnit](http://api.qunitjs.com/), a powerful, easy-to-use JavaScript unit test framework. Each plugin has a file dedicated to its tests in `unit/<plugin-name>.js`.
|
||||
|
||||
* `unit/` contains the unit test files for each Bootstrap plugin.
|
||||
* `vendor/` contains third-party testing-related code (QUnit and jQuery).
|
||||
* `visual/` contains "visual" tests which are run interactively in real browsers and require manual verification by humans.
|
||||
|
||||
To run the unit test suite via [PhantomJS](http://phantomjs.org/), run `grunt test-js`.
|
||||
|
||||
To run the unit test suite via a real web browser, open `index.html` in the browser.
|
||||
|
||||
|
||||
## How do I add a new unit test?
|
||||
|
||||
1. Locate and open the file dedicated to the plugin which you need to add tests to (`unit/<plugin-name>.js`).
|
||||
2. Review the [QUnit API Documentation](http://api.qunitjs.com/) and use the existing tests as references for how to structure your new tests.
|
||||
3. Write the necessary unit test(s) for the new or revised functionality.
|
||||
4. Run `grunt test-js` to see the results of your newly-added test(s).
|
||||
|
||||
**Note:** Your new unit tests should fail before your changes are applied to the plugin, and should pass after your changes are applied to the plugin.
|
||||
|
||||
## What should a unit test look like?
|
||||
|
||||
* Each test should have a unique name clearly stating what unit is being tested.
|
||||
* Each test should test only one unit per test, although one test can include several assertions. Create multiple tests for multiple units of functionality.
|
||||
* Each test should begin with [`assert.expect`](http://api.qunitjs.com/expect/) to ensure that the expected assertions are run.
|
||||
* Each test should follow the project's [JavaScript Code Guidelines](https://github.com/twbs/bootstrap/blob/master/CONTRIBUTING.md#js)
|
||||
|
||||
### Example tests
|
||||
|
||||
```javascript
|
||||
// Synchronous test
|
||||
QUnit.test('should describe the unit being tested', function (assert) {
|
||||
assert.expect(1)
|
||||
var templateHTML = '<div class="alert alert-danger fade in">'
|
||||
+ '<a class="close" href="#" data-dismiss="alert">×</a>'
|
||||
+ '<p><strong>Template necessary for the test.</p>'
|
||||
+ '</div>'
|
||||
var $alert = $(templateHTML).appendTo('#qunit-fixture').bootstrapAlert()
|
||||
|
||||
$alert.find('.close').click()
|
||||
|
||||
// Make assertion
|
||||
assert.strictEqual($alert.hasClass('in'), false, 'remove .in class on .close click')
|
||||
})
|
||||
|
||||
// Asynchronous test
|
||||
QUnit.test('should describe the unit being tested', function (assert) {
|
||||
assert.expect(1)
|
||||
var done = assert.async()
|
||||
|
||||
$('<div title="tooltip title"></div>')
|
||||
.appendTo('#qunit-fixture')
|
||||
.on('shown.bs.tooltip', function () {
|
||||
assert.ok(true, '"shown" event was fired after calling "show"')
|
||||
done()
|
||||
})
|
||||
.bootstrapTooltip('show')
|
||||
})
|
||||
```
|
@ -7,19 +7,55 @@
|
||||
|
||||
<!-- jQuery -->
|
||||
<script src="vendor/jquery.min.js"></script>
|
||||
<script>
|
||||
// Disable jQuery event aliases to ensure we don't accidentally use any of them
|
||||
(function () {
|
||||
var eventAliases = [
|
||||
'blur',
|
||||
'focus',
|
||||
'focusin',
|
||||
'focusout',
|
||||
'load',
|
||||
'resize',
|
||||
'scroll',
|
||||
'unload',
|
||||
'click',
|
||||
'dblclick',
|
||||
'mousedown',
|
||||
'mouseup',
|
||||
'mousemove',
|
||||
'mouseover',
|
||||
'mouseout',
|
||||
'mouseenter',
|
||||
'mouseleave',
|
||||
'change',
|
||||
'select',
|
||||
'submit',
|
||||
'keydown',
|
||||
'keypress',
|
||||
'keyup',
|
||||
'error',
|
||||
'contextmenu',
|
||||
'hover',
|
||||
'bind',
|
||||
'unbind',
|
||||
'delegate',
|
||||
'undelegate'
|
||||
]
|
||||
for (var i = 0; i < eventAliases.length; i++) {
|
||||
$.fn[eventAliases[i]] = undefined
|
||||
}
|
||||
})()
|
||||
</script>
|
||||
|
||||
<!-- QUnit -->
|
||||
<link rel="stylesheet" href="vendor/qunit.css" media="screen">
|
||||
<script src="vendor/qunit.js"></script>
|
||||
<style>
|
||||
#qunit-fixture {
|
||||
top: 0;
|
||||
left: 0;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
// See https://github.com/axemclion/grunt-saucelabs#test-result-details-with-qunit
|
||||
var log = []
|
||||
// Require assert.expect in each test.
|
||||
QUnit.config.requireExpects = true
|
||||
QUnit.done(function (testResults) {
|
||||
var tests = []
|
||||
for (var i = 0, len = log.length; i < len; i++) {
|
||||
@ -52,6 +88,45 @@
|
||||
$('#qunit-fixture').empty()
|
||||
$('#modal-test, .modal-backdrop').remove()
|
||||
})
|
||||
|
||||
// Display fixture on-screen on iOS to avoid false positives
|
||||
if (/iPhone|iPad|iPod/.test(navigator.userAgent)) {
|
||||
QUnit.begin(function() {
|
||||
$('#qunit-fixture').css({ top: 0, left: 0 })
|
||||
})
|
||||
|
||||
QUnit.done(function () {
|
||||
$('#qunit-fixture').css({ top: '', left: '' })
|
||||
})
|
||||
}
|
||||
|
||||
// Disable deprecated global QUnit method aliases in preparation for QUnit v2
|
||||
(function () {
|
||||
var methodNames = [
|
||||
'async',
|
||||
'asyncTest',
|
||||
'deepEqual',
|
||||
'equal',
|
||||
'expect',
|
||||
'module',
|
||||
'notDeepEqual',
|
||||
'notEqual',
|
||||
'notPropEqual',
|
||||
'notStrictEqual',
|
||||
'ok',
|
||||
'propEqual',
|
||||
'push',
|
||||
'start',
|
||||
'stop',
|
||||
'strictEqual',
|
||||
'test',
|
||||
'throws'
|
||||
];
|
||||
for (var i = 0; i < methodNames.length; i++) {
|
||||
var methodName = methodNames[i];
|
||||
window[methodName] = undefined;
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<!-- Plugin sources -->
|
||||
|
@ -1,5 +1,6 @@
|
||||
{
|
||||
"extends" : "../../.jshintrc",
|
||||
"devel" : true,
|
||||
"es3" : false,
|
||||
"qunit" : true
|
||||
}
|
||||
|
@ -4,6 +4,7 @@ $(function () {
|
||||
QUnit.module('alert plugin')
|
||||
|
||||
QUnit.test('should be defined on jquery object', function (assert) {
|
||||
assert.expect(1)
|
||||
assert.ok($(document.body).alert, 'alert method is defined')
|
||||
})
|
||||
|
||||
@ -19,10 +20,12 @@ $(function () {
|
||||
})
|
||||
|
||||
QUnit.test('should provide no conflict', function (assert) {
|
||||
assert.expect(1)
|
||||
assert.strictEqual($.fn.alert, undefined, 'alert was set back to undefined (org value)')
|
||||
})
|
||||
|
||||
QUnit.test('should return jquery collection containing the element', function (assert) {
|
||||
assert.expect(2)
|
||||
var $el = $('<div/>')
|
||||
var $alert = $el.bootstrapAlert()
|
||||
assert.ok($alert instanceof $, 'returns jquery collection')
|
||||
@ -30,18 +33,20 @@ $(function () {
|
||||
})
|
||||
|
||||
QUnit.test('should fade element out on clicking .close', function (assert) {
|
||||
assert.expect(1)
|
||||
var alertHTML = '<div class="alert alert-danger fade in">'
|
||||
+ '<a class="close" href="#" data-dismiss="alert">×</a>'
|
||||
+ '<p><strong>Holy guacamole!</strong> Best check yo self, you\'re not looking too good.</p>'
|
||||
+ '</div>'
|
||||
var $alert = $(alertHTML).bootstrapAlert()
|
||||
|
||||
$alert.find('.close').click()
|
||||
$alert.find('.close').trigger('click')
|
||||
|
||||
assert.strictEqual($alert.hasClass('in'), false, 'remove .in class on .close click')
|
||||
})
|
||||
|
||||
QUnit.test('should remove element when clicking .close', function (assert) {
|
||||
assert.expect(2)
|
||||
var alertHTML = '<div class="alert alert-danger fade in">'
|
||||
+ '<a class="close" href="#" data-dismiss="alert">×</a>'
|
||||
+ '<p><strong>Holy guacamole!</strong> Best check yo self, you\'re not looking too good.</p>'
|
||||
@ -50,12 +55,13 @@ $(function () {
|
||||
|
||||
assert.notEqual($('#qunit-fixture').find('.alert').length, 0, 'element added to dom')
|
||||
|
||||
$alert.find('.close').click()
|
||||
$alert.find('.close').trigger('click')
|
||||
|
||||
assert.strictEqual($('#qunit-fixture').find('.alert').length, 0, 'element removed from dom')
|
||||
})
|
||||
|
||||
QUnit.test('should not fire closed when close is prevented', function (assert) {
|
||||
assert.expect(1)
|
||||
var done = assert.async()
|
||||
$('<div class="alert"/>')
|
||||
.on('close.bs.alert', function (e) {
|
||||
|
@ -4,6 +4,7 @@ $(function () {
|
||||
QUnit.module('collapse plugin')
|
||||
|
||||
QUnit.test('should be defined on jquery object', function (assert) {
|
||||
assert.expect(1)
|
||||
assert.ok($(document.body).collapse, 'collapse method is defined')
|
||||
})
|
||||
|
||||
@ -19,10 +20,12 @@ $(function () {
|
||||
})
|
||||
|
||||
QUnit.test('should provide no conflict', function (assert) {
|
||||
assert.expect(1)
|
||||
assert.strictEqual($.fn.collapse, undefined, 'collapse was set back to undefined (org value)')
|
||||
})
|
||||
|
||||
QUnit.test('should return jquery collection containing the element', function (assert) {
|
||||
assert.expect(2)
|
||||
var $el = $('<div/>')
|
||||
var $collapse = $el.bootstrapCollapse()
|
||||
assert.ok($collapse instanceof $, 'returns jquery collection')
|
||||
@ -30,6 +33,7 @@ $(function () {
|
||||
})
|
||||
|
||||
QUnit.test('should show a collapsed element', function (assert) {
|
||||
assert.expect(2)
|
||||
var $el = $('<div class="collapse"/>').bootstrapCollapse('show')
|
||||
|
||||
assert.ok($el.hasClass('in'), 'has class "in"')
|
||||
@ -37,13 +41,14 @@ $(function () {
|
||||
})
|
||||
|
||||
QUnit.test('should hide a collapsed element', function (assert) {
|
||||
assert.expect(1)
|
||||
var $el = $('<div class="collapse"/>').bootstrapCollapse('hide')
|
||||
|
||||
assert.ok(!$el.hasClass('in'), 'does not have class "in"')
|
||||
assert.ok(/height/i.test($el.attr('style')), 'has height set')
|
||||
})
|
||||
|
||||
QUnit.test('should not fire shown when show is prevented', function (assert) {
|
||||
assert.expect(1)
|
||||
var done = assert.async()
|
||||
|
||||
$('<div class="collapse"/>')
|
||||
@ -59,6 +64,7 @@ $(function () {
|
||||
})
|
||||
|
||||
QUnit.test('should reset style to auto after finishing opening collapse', function (assert) {
|
||||
assert.expect(2)
|
||||
var done = assert.async()
|
||||
|
||||
$('<div class="collapse" style="height: 0px"/>')
|
||||
@ -73,9 +79,10 @@ $(function () {
|
||||
})
|
||||
|
||||
QUnit.test('should remove "collapsed" class from target when collapse is shown', function (assert) {
|
||||
assert.expect(1)
|
||||
var done = assert.async()
|
||||
|
||||
var $target = $('<a data-toggle="collapse" class="collapsed" href="#test1"/>').appendTo('#qunit-fixture')
|
||||
var $target = $('<a role="button" data-toggle="collapse" class="collapsed" href="#test1"/>').appendTo('#qunit-fixture')
|
||||
|
||||
$('<div id="test1"/>')
|
||||
.appendTo('#qunit-fixture')
|
||||
@ -84,13 +91,14 @@ $(function () {
|
||||
done()
|
||||
})
|
||||
|
||||
$target.click()
|
||||
$target.trigger('click')
|
||||
})
|
||||
|
||||
QUnit.test('should add "collapsed" class to target when collapse is hidden', function (assert) {
|
||||
assert.expect(1)
|
||||
var done = assert.async()
|
||||
|
||||
var $target = $('<a data-toggle="collapse" href="#test1"/>').appendTo('#qunit-fixture')
|
||||
var $target = $('<a role="button" data-toggle="collapse" href="#test1"/>').appendTo('#qunit-fixture')
|
||||
|
||||
$('<div id="test1" class="in"/>')
|
||||
.appendTo('#qunit-fixture')
|
||||
@ -99,14 +107,15 @@ $(function () {
|
||||
done()
|
||||
})
|
||||
|
||||
$target.click()
|
||||
$target.trigger('click')
|
||||
})
|
||||
|
||||
QUnit.test('should remove "collapsed" class from all triggers targeting the collapse when the collapse is shown', function (assert) {
|
||||
assert.expect(2)
|
||||
var done = assert.async()
|
||||
|
||||
var $target = $('<a data-toggle="collapse" class="collapsed" href="#test1"/>').appendTo('#qunit-fixture')
|
||||
var $alt = $('<a data-toggle="collapse" class="collapsed" href="#test1"/>').appendTo('#qunit-fixture')
|
||||
var $target = $('<a role="button" data-toggle="collapse" class="collapsed" href="#test1"/>').appendTo('#qunit-fixture')
|
||||
var $alt = $('<a role="button" data-toggle="collapse" class="collapsed" href="#test1"/>').appendTo('#qunit-fixture')
|
||||
|
||||
$('<div id="test1"/>')
|
||||
.appendTo('#qunit-fixture')
|
||||
@ -116,14 +125,15 @@ $(function () {
|
||||
done()
|
||||
})
|
||||
|
||||
$target.click()
|
||||
$target.trigger('click')
|
||||
})
|
||||
|
||||
QUnit.test('should add "collapsed" class to all triggers targeting the collapse when the collapse is hidden', function (assert) {
|
||||
assert.expect(2)
|
||||
var done = assert.async()
|
||||
|
||||
var $target = $('<a data-toggle="collapse" href="#test1"/>').appendTo('#qunit-fixture')
|
||||
var $alt = $('<a data-toggle="collapse" href="#test1"/>').appendTo('#qunit-fixture')
|
||||
var $target = $('<a role="button" data-toggle="collapse" href="#test1"/>').appendTo('#qunit-fixture')
|
||||
var $alt = $('<a role="button" data-toggle="collapse" href="#test1"/>').appendTo('#qunit-fixture')
|
||||
|
||||
$('<div id="test1" class="in"/>')
|
||||
.appendTo('#qunit-fixture')
|
||||
@ -133,13 +143,12 @@ $(function () {
|
||||
done()
|
||||
})
|
||||
|
||||
$target.click()
|
||||
$target.trigger('click')
|
||||
})
|
||||
|
||||
QUnit.test('should not close a collapse when initialized with "show" if already shown', function (assert) {
|
||||
var done = assert.async()
|
||||
|
||||
QUnit.test('should not close a collapse when initialized with "show" option if already shown', function (assert) {
|
||||
assert.expect(0)
|
||||
var done = assert.async()
|
||||
|
||||
var $test = $('<div id="test1" class="in"/>')
|
||||
.appendTo('#qunit-fixture')
|
||||
@ -152,10 +161,9 @@ $(function () {
|
||||
setTimeout(done, 0)
|
||||
})
|
||||
|
||||
QUnit.test('should open a collapse when initialized with "show" if not already shown', function (assert) {
|
||||
var done = assert.async()
|
||||
|
||||
QUnit.test('should open a collapse when initialized with "show" option if not already shown', function (assert) {
|
||||
assert.expect(1)
|
||||
var done = assert.async()
|
||||
|
||||
var $test = $('<div id="test1" />')
|
||||
.appendTo('#qunit-fixture')
|
||||
@ -168,7 +176,36 @@ $(function () {
|
||||
setTimeout(done, 0)
|
||||
})
|
||||
|
||||
QUnit.test('should not show a collapse when initialized with "hide" option if already hidden', function (assert) {
|
||||
assert.expect(0)
|
||||
var done = assert.async()
|
||||
|
||||
$('<div class="collapse"></div>')
|
||||
.appendTo('#qunit-fixture')
|
||||
.on('show.bs.collapse', function () {
|
||||
assert.ok(false, 'showing a previously-uninitialized hidden collapse when the "hide" method is called')
|
||||
})
|
||||
.bootstrapCollapse('hide')
|
||||
|
||||
setTimeout(done, 0)
|
||||
})
|
||||
|
||||
QUnit.test('should hide a collapse when initialized with "hide" option if not already hidden', function (assert) {
|
||||
assert.expect(1)
|
||||
var done = assert.async()
|
||||
|
||||
$('<div class="collapse in"></div>')
|
||||
.appendTo('#qunit-fixture')
|
||||
.on('hide.bs.collapse', function () {
|
||||
assert.ok(true, 'hiding a previously-uninitialized shown collapse when the "hide" method is called')
|
||||
})
|
||||
.bootstrapCollapse('hide')
|
||||
|
||||
setTimeout(done, 0)
|
||||
})
|
||||
|
||||
QUnit.test('should remove "collapsed" class from active accordion target', function (assert) {
|
||||
assert.expect(3)
|
||||
var done = assert.async()
|
||||
|
||||
var accordionHTML = '<div class="panel-group" id="accordion">'
|
||||
@ -178,15 +215,15 @@ $(function () {
|
||||
+ '</div>'
|
||||
var $groups = $(accordionHTML).appendTo('#qunit-fixture').find('.panel')
|
||||
|
||||
var $target1 = $('<a data-toggle="collapse" href="#body1" data-parent="#accordion"/>').appendTo($groups.eq(0))
|
||||
var $target1 = $('<a role="button" data-toggle="collapse" href="#body1" data-parent="#accordion"/>').appendTo($groups.eq(0))
|
||||
|
||||
$('<div id="body1" class="in"/>').appendTo($groups.eq(0))
|
||||
|
||||
var $target2 = $('<a class="collapsed" data-toggle="collapse" href="#body2" data-parent="#accordion"/>').appendTo($groups.eq(1))
|
||||
var $target2 = $('<a class="collapsed" data-toggle="collapse" role="button" href="#body2" data-parent="#accordion"/>').appendTo($groups.eq(1))
|
||||
|
||||
$('<div id="body2"/>').appendTo($groups.eq(1))
|
||||
|
||||
var $target3 = $('<a class="collapsed" data-toggle="collapse" href="#body3" data-parent="#accordion"/>').appendTo($groups.eq(2))
|
||||
var $target3 = $('<a class="collapsed" data-toggle="collapse" role="button" href="#body3" data-parent="#accordion"/>').appendTo($groups.eq(2))
|
||||
|
||||
$('<div id="body3"/>')
|
||||
.appendTo($groups.eq(2))
|
||||
@ -198,10 +235,11 @@ $(function () {
|
||||
done()
|
||||
})
|
||||
|
||||
$target3.click()
|
||||
$target3.trigger('click')
|
||||
})
|
||||
|
||||
QUnit.test('should allow dots in data-parent', function (assert) {
|
||||
assert.expect(3)
|
||||
var done = assert.async()
|
||||
|
||||
var accordionHTML = '<div class="panel-group accordion">'
|
||||
@ -211,15 +249,15 @@ $(function () {
|
||||
+ '</div>'
|
||||
var $groups = $(accordionHTML).appendTo('#qunit-fixture').find('.panel')
|
||||
|
||||
var $target1 = $('<a data-toggle="collapse" href="#body1" data-parent=".accordion"/>').appendTo($groups.eq(0))
|
||||
var $target1 = $('<a role="button" data-toggle="collapse" href="#body1" data-parent=".accordion"/>').appendTo($groups.eq(0))
|
||||
|
||||
$('<div id="body1" class="in"/>').appendTo($groups.eq(0))
|
||||
|
||||
var $target2 = $('<a class="collapsed" data-toggle="collapse" href="#body2" data-parent=".accordion"/>').appendTo($groups.eq(1))
|
||||
var $target2 = $('<a class="collapsed" data-toggle="collapse" role="button" href="#body2" data-parent=".accordion"/>').appendTo($groups.eq(1))
|
||||
|
||||
$('<div id="body2"/>').appendTo($groups.eq(1))
|
||||
|
||||
var $target3 = $('<a class="collapsed" data-toggle="collapse" href="#body3" data-parent=".accordion"/>').appendTo($groups.eq(2))
|
||||
var $target3 = $('<a class="collapsed" data-toggle="collapse" role="button" href="#body3" data-parent=".accordion"/>').appendTo($groups.eq(2))
|
||||
|
||||
$('<div id="body3"/>')
|
||||
.appendTo($groups.eq(2))
|
||||
@ -231,13 +269,14 @@ $(function () {
|
||||
done()
|
||||
})
|
||||
|
||||
$target3.click()
|
||||
$target3.trigger('click')
|
||||
})
|
||||
|
||||
QUnit.test('should set aria-expanded="true" on target when collapse is shown', function (assert) {
|
||||
assert.expect(1)
|
||||
var done = assert.async()
|
||||
|
||||
var $target = $('<a data-toggle="collapse" class="collapsed" href="#test1" aria-expanded="false"/>').appendTo('#qunit-fixture')
|
||||
var $target = $('<a role="button" data-toggle="collapse" class="collapsed" href="#test1" aria-expanded="false"/>').appendTo('#qunit-fixture')
|
||||
|
||||
$('<div id="test1"/>')
|
||||
.appendTo('#qunit-fixture')
|
||||
@ -246,13 +285,14 @@ $(function () {
|
||||
done()
|
||||
})
|
||||
|
||||
$target.click()
|
||||
$target.trigger('click')
|
||||
})
|
||||
|
||||
QUnit.test('should set aria-expanded="false" on target when collapse is hidden', function (assert) {
|
||||
assert.expect(1)
|
||||
var done = assert.async()
|
||||
|
||||
var $target = $('<a data-toggle="collapse" href="#test1" aria-expanded="true"/>').appendTo('#qunit-fixture')
|
||||
var $target = $('<a role="button" data-toggle="collapse" href="#test1" aria-expanded="true"/>').appendTo('#qunit-fixture')
|
||||
|
||||
$('<div id="test1" class="in"/>')
|
||||
.appendTo('#qunit-fixture')
|
||||
@ -261,14 +301,15 @@ $(function () {
|
||||
done()
|
||||
})
|
||||
|
||||
$target.click()
|
||||
$target.trigger('click')
|
||||
})
|
||||
|
||||
QUnit.test('should set aria-expanded="true" on all triggers targeting the collapse when the collapse is shown', function (assert) {
|
||||
assert.expect(2)
|
||||
var done = assert.async()
|
||||
|
||||
var $target = $('<a data-toggle="collapse" class="collapsed" href="#test1" aria-expanded="false"/>').appendTo('#qunit-fixture')
|
||||
var $alt = $('<a data-toggle="collapse" class="collapsed" href="#test1" aria-expanded="false"/>').appendTo('#qunit-fixture')
|
||||
var $target = $('<a role="button" data-toggle="collapse" class="collapsed" href="#test1" aria-expanded="false"/>').appendTo('#qunit-fixture')
|
||||
var $alt = $('<a role="button" data-toggle="collapse" class="collapsed" href="#test1" aria-expanded="false"/>').appendTo('#qunit-fixture')
|
||||
|
||||
$('<div id="test1"/>')
|
||||
.appendTo('#qunit-fixture')
|
||||
@ -278,14 +319,15 @@ $(function () {
|
||||
done()
|
||||
})
|
||||
|
||||
$target.click()
|
||||
$target.trigger('click')
|
||||
})
|
||||
|
||||
QUnit.test('should set aria-expanded="false" on all triggers targeting the collapse when the collapse is hidden', function (assert) {
|
||||
assert.expect(2)
|
||||
var done = assert.async()
|
||||
|
||||
var $target = $('<a data-toggle="collapse" href="#test1" aria-expanded="true"/>').appendTo('#qunit-fixture')
|
||||
var $alt = $('<a data-toggle="collapse" href="#test1" aria-expanded="true"/>').appendTo('#qunit-fixture')
|
||||
var $target = $('<a role="button" data-toggle="collapse" href="#test1" aria-expanded="true"/>').appendTo('#qunit-fixture')
|
||||
var $alt = $('<a role="button" data-toggle="collapse" href="#test1" aria-expanded="true"/>').appendTo('#qunit-fixture')
|
||||
|
||||
$('<div id="test1" class="in"/>')
|
||||
.appendTo('#qunit-fixture')
|
||||
@ -295,10 +337,11 @@ $(function () {
|
||||
done()
|
||||
})
|
||||
|
||||
$target.click()
|
||||
$target.trigger('click')
|
||||
})
|
||||
|
||||
QUnit.test('should change aria-expanded from active accordion target to "false" and set the newly active one to "true"', function (assert) {
|
||||
assert.expect(3)
|
||||
var done = assert.async()
|
||||
|
||||
var accordionHTML = '<div class="panel-group" id="accordion">'
|
||||
@ -308,15 +351,15 @@ $(function () {
|
||||
+ '</div>'
|
||||
var $groups = $(accordionHTML).appendTo('#qunit-fixture').find('.panel')
|
||||
|
||||
var $target1 = $('<a data-toggle="collapse" href="#body1" data-parent="#accordion"/>').appendTo($groups.eq(0))
|
||||
var $target1 = $('<a role="button" data-toggle="collapse" href="#body1" data-parent="#accordion"/>').appendTo($groups.eq(0))
|
||||
|
||||
$('<div id="body1" aria-expanded="true" class="in"/>').appendTo($groups.eq(0))
|
||||
|
||||
var $target2 = $('<a class="collapsed" data-toggle="collapse" href="#body2" data-parent="#accordion"/>').appendTo($groups.eq(1))
|
||||
var $target2 = $('<a class="collapsed" data-toggle="collapse" role="button" href="#body2" data-parent="#accordion"/>').appendTo($groups.eq(1))
|
||||
|
||||
$('<div id="body2" aria-expanded="false"/>').appendTo($groups.eq(1))
|
||||
|
||||
var $target3 = $('<a class="collapsed" data-toggle="collapse" href="#body3" data-parent="#accordion"/>').appendTo($groups.eq(2))
|
||||
var $target3 = $('<a class="collapsed" data-toggle="collapse" role="button" href="#body3" data-parent="#accordion"/>').appendTo($groups.eq(2))
|
||||
|
||||
$('<div id="body3" aria-expanded="false"/>')
|
||||
.appendTo($groups.eq(2))
|
||||
@ -328,10 +371,11 @@ $(function () {
|
||||
done()
|
||||
})
|
||||
|
||||
$target3.click()
|
||||
$target3.trigger('click')
|
||||
})
|
||||
|
||||
QUnit.test('should not fire show event if show is prevented because other element is still transitioning', function (assert) {
|
||||
assert.expect(1)
|
||||
var done = assert.async()
|
||||
|
||||
var accordionHTML = '<div id="accordion">'
|
||||
@ -341,7 +385,7 @@ $(function () {
|
||||
var showFired = false
|
||||
var $groups = $(accordionHTML).appendTo('#qunit-fixture').find('.panel')
|
||||
|
||||
var $target1 = $('<a data-toggle="collapse" href="#body1" data-parent="#accordion"/>').appendTo($groups.eq(0))
|
||||
var $target1 = $('<a role="button" data-toggle="collapse" href="#body1" data-parent="#accordion"/>').appendTo($groups.eq(0))
|
||||
|
||||
$('<div id="body1" class="collapse"/>')
|
||||
.appendTo($groups.eq(0))
|
||||
@ -349,16 +393,16 @@ $(function () {
|
||||
showFired = true
|
||||
})
|
||||
|
||||
var $target2 = $('<a data-toggle="collapse" href="#body2" data-parent="#accordion"/>').appendTo($groups.eq(1))
|
||||
var $target2 = $('<a role="button" data-toggle="collapse" href="#body2" data-parent="#accordion"/>').appendTo($groups.eq(1))
|
||||
var $body2 = $('<div id="body2" class="collapse"/>').appendTo($groups.eq(1))
|
||||
|
||||
$target2.click()
|
||||
$target2.trigger('click')
|
||||
|
||||
$body2
|
||||
.toggleClass('in collapsing')
|
||||
.data('bs.collapse').setTransitioning(true)
|
||||
|
||||
$target1.click()
|
||||
$target1.trigger('click')
|
||||
|
||||
setTimeout(function () {
|
||||
assert.ok(!showFired, 'show event did not fire')
|
||||
@ -367,9 +411,10 @@ $(function () {
|
||||
})
|
||||
|
||||
QUnit.test('should add "collapsed" class to target when collapse is hidden via manual invocation', function (assert) {
|
||||
assert.expect(1)
|
||||
var done = assert.async()
|
||||
|
||||
var $target = $('<a data-toggle="collapse" href="#test1"/>').appendTo('#qunit-fixture')
|
||||
var $target = $('<a role="button" data-toggle="collapse" href="#test1"/>').appendTo('#qunit-fixture')
|
||||
|
||||
$('<div id="test1" class="in"/>')
|
||||
.appendTo('#qunit-fixture')
|
||||
@ -381,9 +426,10 @@ $(function () {
|
||||
})
|
||||
|
||||
QUnit.test('should remove "collapsed" class from target when collapse is shown via manual invocation', function (assert) {
|
||||
assert.expect(1)
|
||||
var done = assert.async()
|
||||
|
||||
var $target = $('<a data-toggle="collapse" class="collapsed" href="#test1"/>').appendTo('#qunit-fixture')
|
||||
var $target = $('<a role="button" data-toggle="collapse" class="collapsed" href="#test1"/>').appendTo('#qunit-fixture')
|
||||
|
||||
$('<div id="test1"/>')
|
||||
.appendTo('#qunit-fixture')
|
||||
|
@ -4,6 +4,7 @@ $(function () {
|
||||
QUnit.module('dropdowns plugin')
|
||||
|
||||
QUnit.test('should be defined on jquery object', function (assert) {
|
||||
assert.expect(1)
|
||||
assert.ok($(document.body).dropdown, 'dropdown method is defined')
|
||||
})
|
||||
|
||||
@ -19,10 +20,12 @@ $(function () {
|
||||
})
|
||||
|
||||
QUnit.test('should provide no conflict', function (assert) {
|
||||
assert.expect(1)
|
||||
assert.strictEqual($.fn.dropdown, undefined, 'dropdown was set back to undefined (org value)')
|
||||
})
|
||||
|
||||
QUnit.test('should return jquery collection containing the element', function (assert) {
|
||||
assert.expect(2)
|
||||
var $el = $('<div/>')
|
||||
var $dropdown = $el.bootstrapDropdown()
|
||||
assert.ok($dropdown instanceof $, 'returns jquery collection')
|
||||
@ -30,6 +33,7 @@ $(function () {
|
||||
})
|
||||
|
||||
QUnit.test('should not open dropdown if target is disabled via attribute', function (assert) {
|
||||
assert.expect(1)
|
||||
var dropdownHTML = '<ul class="tabs">'
|
||||
+ '<li class="dropdown">'
|
||||
+ '<button disabled href="#" class="btn dropdown-toggle" data-toggle="dropdown">Dropdown</button>'
|
||||
@ -41,12 +45,13 @@ $(function () {
|
||||
+ '</ul>'
|
||||
+ '</li>'
|
||||
+ '</ul>'
|
||||
var $dropdown = $(dropdownHTML).find('[data-toggle="dropdown"]').bootstrapDropdown().click()
|
||||
var $dropdown = $(dropdownHTML).find('[data-toggle="dropdown"]').bootstrapDropdown().trigger('click')
|
||||
|
||||
assert.ok(!$dropdown.parent('.dropdown').hasClass('open'), '"open" class added on click')
|
||||
})
|
||||
|
||||
QUnit.test('should set aria-expanded="true" on target when dropdown menu is shown', function (assert) {
|
||||
assert.expect(1)
|
||||
var dropdownHTML = '<ul class="tabs">'
|
||||
+ '<li class="dropdown">'
|
||||
+ '<a href="#" class="dropdown-toggle" data-toggle="dropdown" aria-expanded="false">Dropdown</a>'
|
||||
@ -61,12 +66,13 @@ $(function () {
|
||||
var $dropdown = $(dropdownHTML)
|
||||
.find('[data-toggle="dropdown"]')
|
||||
.bootstrapDropdown()
|
||||
.click()
|
||||
.trigger('click')
|
||||
|
||||
assert.strictEqual($dropdown.attr('aria-expanded'), 'true', 'aria-expanded is set to string "true" on click')
|
||||
})
|
||||
|
||||
QUnit.test('should set aria-expanded="false" on target when dropdown menu is hidden', function (assert) {
|
||||
assert.expect(1)
|
||||
var done = assert.async()
|
||||
var dropdownHTML = '<ul class="tabs">'
|
||||
+ '<li class="dropdown">'
|
||||
@ -91,11 +97,12 @@ $(function () {
|
||||
done()
|
||||
})
|
||||
|
||||
$dropdown.click()
|
||||
$(document.body).click()
|
||||
$dropdown.trigger('click')
|
||||
$(document.body).trigger('click')
|
||||
})
|
||||
|
||||
QUnit.test('should not open dropdown if target is disabled via class', function (assert) {
|
||||
assert.expect(1)
|
||||
var dropdownHTML = '<ul class="tabs">'
|
||||
+ '<li class="dropdown">'
|
||||
+ '<button href="#" class="btn dropdown-toggle disabled" data-toggle="dropdown">Dropdown</button>'
|
||||
@ -107,12 +114,13 @@ $(function () {
|
||||
+ '</ul>'
|
||||
+ '</li>'
|
||||
+ '</ul>'
|
||||
var $dropdown = $(dropdownHTML).find('[data-toggle="dropdown"]').bootstrapDropdown().click()
|
||||
var $dropdown = $(dropdownHTML).find('[data-toggle="dropdown"]').bootstrapDropdown().trigger('click')
|
||||
|
||||
assert.ok(!$dropdown.parent('.dropdown').hasClass('open'), '"open" class added on click')
|
||||
})
|
||||
|
||||
QUnit.test('should add class open to menu if clicked', function (assert) {
|
||||
assert.expect(1)
|
||||
var dropdownHTML = '<ul class="tabs">'
|
||||
+ '<li class="dropdown">'
|
||||
+ '<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown</a>'
|
||||
@ -124,12 +132,13 @@ $(function () {
|
||||
+ '</ul>'
|
||||
+ '</li>'
|
||||
+ '</ul>'
|
||||
var $dropdown = $(dropdownHTML).find('[data-toggle="dropdown"]').bootstrapDropdown().click()
|
||||
var $dropdown = $(dropdownHTML).find('[data-toggle="dropdown"]').bootstrapDropdown().trigger('click')
|
||||
|
||||
assert.ok($dropdown.parent('.dropdown').hasClass('open'), '"open" class added on click')
|
||||
})
|
||||
|
||||
QUnit.test('should test if element has a # before assuming it\'s a selector', function (assert) {
|
||||
assert.expect(1)
|
||||
var dropdownHTML = '<ul class="tabs">'
|
||||
+ '<li class="dropdown">'
|
||||
+ '<a href="/foo/" class="dropdown-toggle" data-toggle="dropdown">Dropdown</a>'
|
||||
@ -141,13 +150,14 @@ $(function () {
|
||||
+ '</ul>'
|
||||
+ '</li>'
|
||||
+ '</ul>'
|
||||
var $dropdown = $(dropdownHTML).find('[data-toggle="dropdown"]').bootstrapDropdown().click()
|
||||
var $dropdown = $(dropdownHTML).find('[data-toggle="dropdown"]').bootstrapDropdown().trigger('click')
|
||||
|
||||
assert.ok($dropdown.parent('.dropdown').hasClass('open'), '"open" class added on click')
|
||||
})
|
||||
|
||||
|
||||
QUnit.test('should remove "open" class if body is clicked', function (assert) {
|
||||
assert.expect(2)
|
||||
var dropdownHTML = '<ul class="tabs">'
|
||||
+ '<li class="dropdown">'
|
||||
+ '<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown</a>'
|
||||
@ -163,14 +173,15 @@ $(function () {
|
||||
.appendTo('#qunit-fixture')
|
||||
.find('[data-toggle="dropdown"]')
|
||||
.bootstrapDropdown()
|
||||
.click()
|
||||
.trigger('click')
|
||||
|
||||
assert.ok($dropdown.parent('.dropdown').hasClass('open'), '"open" class added on click')
|
||||
$(document.body).click()
|
||||
$(document.body).trigger('click')
|
||||
assert.ok(!$dropdown.parent('.dropdown').hasClass('open'), '"open" class removed')
|
||||
})
|
||||
|
||||
QUnit.test('should remove "open" class if body is clicked, with multiple dropdowns', function (assert) {
|
||||
assert.expect(7)
|
||||
var dropdownHTML = '<ul class="nav">'
|
||||
+ '<li><a href="#menu1">Menu 1</a></li>'
|
||||
+ '<li class="dropdown" id="testmenu">'
|
||||
@ -193,20 +204,21 @@ $(function () {
|
||||
|
||||
assert.strictEqual($dropdowns.length, 2, 'two dropdowns')
|
||||
|
||||
$first.click()
|
||||
$first.trigger('click')
|
||||
assert.strictEqual($first.parents('.open').length, 1, '"open" class added on click')
|
||||
assert.strictEqual($('#qunit-fixture .open').length, 1, 'only one dropdown is open')
|
||||
$(document.body).click()
|
||||
$(document.body).trigger('click')
|
||||
assert.strictEqual($('#qunit-fixture .open').length, 0, '"open" class removed')
|
||||
|
||||
$last.click()
|
||||
$last.trigger('click')
|
||||
assert.strictEqual($last.parent('.open').length, 1, '"open" class added on click')
|
||||
assert.strictEqual($('#qunit-fixture .open').length, 1, 'only one dropdown is open')
|
||||
$(document.body).click()
|
||||
$(document.body).trigger('click')
|
||||
assert.strictEqual($('#qunit-fixture .open').length, 0, '"open" class removed')
|
||||
})
|
||||
|
||||
QUnit.test('should fire show and hide event', function (assert) {
|
||||
assert.expect(2)
|
||||
var dropdownHTML = '<ul class="tabs">'
|
||||
+ '<li class="dropdown">'
|
||||
+ '<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown</a>'
|
||||
@ -235,12 +247,13 @@ $(function () {
|
||||
done()
|
||||
})
|
||||
|
||||
$dropdown.click()
|
||||
$(document.body).click()
|
||||
$dropdown.trigger('click')
|
||||
$(document.body).trigger('click')
|
||||
})
|
||||
|
||||
|
||||
QUnit.test('should fire shown and hidden event', function (assert) {
|
||||
assert.expect(2)
|
||||
var dropdownHTML = '<ul class="tabs">'
|
||||
+ '<li class="dropdown">'
|
||||
+ '<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown</a>'
|
||||
@ -269,11 +282,12 @@ $(function () {
|
||||
done()
|
||||
})
|
||||
|
||||
$dropdown.click()
|
||||
$(document.body).click()
|
||||
$dropdown.trigger('click')
|
||||
$(document.body).trigger('click')
|
||||
})
|
||||
|
||||
QUnit.test('should ignore keyboard events within <input>s and <textarea>s', function (assert) {
|
||||
assert.expect(3)
|
||||
var done = assert.async()
|
||||
|
||||
var dropdownHTML = '<ul class="tabs">'
|
||||
@ -302,19 +316,20 @@ $(function () {
|
||||
.on('shown.bs.dropdown', function () {
|
||||
assert.ok(true, 'shown was fired')
|
||||
|
||||
$input.focus().trigger($.Event('keydown', { which: 38 }))
|
||||
$input.trigger('focus').trigger($.Event('keydown', { which: 38 }))
|
||||
assert.ok($(document.activeElement).is($input), 'input still focused')
|
||||
|
||||
$textarea.focus().trigger($.Event('keydown', { which: 38 }))
|
||||
$textarea.trigger('focus').trigger($.Event('keydown', { which: 38 }))
|
||||
assert.ok($(document.activeElement).is($textarea), 'textarea still focused')
|
||||
|
||||
done()
|
||||
})
|
||||
|
||||
$dropdown.click()
|
||||
$dropdown.trigger('click')
|
||||
})
|
||||
|
||||
QUnit.test('should skip disabled element when using keyboard navigation', function (assert) {
|
||||
assert.expect(1)
|
||||
var dropdownHTML = '<ul class="tabs">'
|
||||
+ '<li class="dropdown">'
|
||||
+ '<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown</a>'
|
||||
@ -328,11 +343,49 @@ $(function () {
|
||||
.appendTo('#qunit-fixture')
|
||||
.find('[data-toggle="dropdown"]')
|
||||
.bootstrapDropdown()
|
||||
.click()
|
||||
.trigger('click')
|
||||
|
||||
$dropdown.trigger($.Event('keydown', { which: 40 }))
|
||||
$dropdown.trigger($.Event('keydown', { which: 40 }))
|
||||
|
||||
assert.ok(!$(document.activeElement).parent().is('.disabled'), '.disabled is not focused')
|
||||
})
|
||||
|
||||
QUnit.test('should not close the dropdown if the user clicks on a text field', function (assert) {
|
||||
assert.expect(1)
|
||||
var dropdownHTML = '<div class="btn-group">'
|
||||
+ '<button type="button" data-toggle="dropdown">Dropdown</button>'
|
||||
+ '<ul class="dropdown-menu" role="menu">'
|
||||
+ '<li><input id="textField" type="text" /></li>'
|
||||
+ '</ul>'
|
||||
+ '</div>'
|
||||
var $dropdown = $(dropdownHTML)
|
||||
.appendTo('#qunit-fixture')
|
||||
.find('[data-toggle="dropdown"]')
|
||||
.bootstrapDropdown()
|
||||
.trigger('click')
|
||||
|
||||
$('#textField').trigger('click')
|
||||
|
||||
assert.ok($dropdown.parent('.btn-group').hasClass('open'), 'dropdown menu is open')
|
||||
})
|
||||
|
||||
QUnit.test('should not close the dropdown if the user clicks on a textarea', function (assert) {
|
||||
assert.expect(1)
|
||||
var dropdownHTML = '<div class="btn-group">'
|
||||
+ '<button type="button" data-toggle="dropdown">Dropdown</button>'
|
||||
+ '<ul class="dropdown-menu" role="menu">'
|
||||
+ '<li><textarea id="textArea"></textarea></li>'
|
||||
+ '</ul>'
|
||||
+ '</div>'
|
||||
var $dropdown = $(dropdownHTML)
|
||||
.appendTo('#qunit-fixture')
|
||||
.find('[data-toggle="dropdown"]')
|
||||
.bootstrapDropdown()
|
||||
.trigger('click')
|
||||
|
||||
$('#textArea').trigger('click')
|
||||
|
||||
assert.ok($dropdown.parent('.btn-group').hasClass('open'), 'dropdown menu is open')
|
||||
})
|
||||
})
|
||||
|
@ -4,6 +4,7 @@ $(function () {
|
||||
QUnit.module('popover plugin')
|
||||
|
||||
QUnit.test('should be defined on jquery object', function (assert) {
|
||||
assert.expect(1)
|
||||
assert.ok($(document.body).popover, 'popover method is defined')
|
||||
})
|
||||
|
||||
@ -19,10 +20,12 @@ $(function () {
|
||||
})
|
||||
|
||||
QUnit.test('should provide no conflict', function (assert) {
|
||||
assert.expect(1)
|
||||
assert.strictEqual($.fn.popover, undefined, 'popover was set back to undefined (org value)')
|
||||
})
|
||||
|
||||
QUnit.test('should return jquery collection containing the element', function (assert) {
|
||||
assert.expect(2)
|
||||
var $el = $('<div/>')
|
||||
var $popover = $el.bootstrapPopover()
|
||||
assert.ok($popover instanceof $, 'returns jquery collection')
|
||||
@ -30,6 +33,7 @@ $(function () {
|
||||
})
|
||||
|
||||
QUnit.test('should render popover element', function (assert) {
|
||||
assert.expect(2)
|
||||
var $popover = $('<a href="#" title="mdo" data-content="https://twitter.com/mdo">@mdo</a>')
|
||||
.appendTo('#qunit-fixture')
|
||||
.bootstrapPopover('show')
|
||||
@ -40,12 +44,14 @@ $(function () {
|
||||
})
|
||||
|
||||
QUnit.test('should store popover instance in popover data object', function (assert) {
|
||||
assert.expect(1)
|
||||
var $popover = $('<a href="#" title="mdo" data-content="https://twitter.com/mdo">@mdo</a>').bootstrapPopover()
|
||||
|
||||
assert.ok($popover.data('bs.popover'), 'popover instance exists')
|
||||
})
|
||||
|
||||
QUnit.test('should store popover trigger in popover instance data object', function (assert) {
|
||||
assert.expect(1)
|
||||
var $popover = $('<a href="#" title="ResentedHook">@ResentedHook</a>')
|
||||
.appendTo('#qunit-fixture')
|
||||
.bootstrapPopover()
|
||||
@ -56,6 +62,7 @@ $(function () {
|
||||
})
|
||||
|
||||
QUnit.test('should get title and content from options', function (assert) {
|
||||
assert.expect(4)
|
||||
var $popover = $('<a href="#">@fat</a>')
|
||||
.appendTo('#qunit-fixture')
|
||||
.bootstrapPopover({
|
||||
@ -78,6 +85,7 @@ $(function () {
|
||||
})
|
||||
|
||||
QUnit.test('should not duplicate HTML object', function (assert) {
|
||||
assert.expect(6)
|
||||
var $div = $('<div/>').html('loves writing tests (╯°□°)╯︵ ┻━┻')
|
||||
|
||||
var $popover = $('<a href="#">@fat</a>')
|
||||
@ -104,6 +112,7 @@ $(function () {
|
||||
})
|
||||
|
||||
QUnit.test('should get title and content from attributes', function (assert) {
|
||||
assert.expect(4)
|
||||
var $popover = $('<a href="#" title="@mdo" data-content="loves data attributes (づ。◕‿‿◕。)づ ︵ ┻━┻" >@mdo</a>')
|
||||
.appendTo('#qunit-fixture')
|
||||
.bootstrapPopover()
|
||||
@ -119,6 +128,7 @@ $(function () {
|
||||
|
||||
|
||||
QUnit.test('should get title and content from attributes ignoring options passed via js', function (assert) {
|
||||
assert.expect(4)
|
||||
var $popover = $('<a href="#" title="@mdo" data-content="loves data attributes (づ。◕‿‿◕。)づ ︵ ┻━┻" >@mdo</a>')
|
||||
.appendTo('#qunit-fixture')
|
||||
.bootstrapPopover({
|
||||
@ -136,6 +146,7 @@ $(function () {
|
||||
})
|
||||
|
||||
QUnit.test('should respect custom template', function (assert) {
|
||||
assert.expect(3)
|
||||
var $popover = $('<a href="#">@fat</a>')
|
||||
.appendTo('#qunit-fixture')
|
||||
.bootstrapPopover({
|
||||
@ -154,6 +165,7 @@ $(function () {
|
||||
})
|
||||
|
||||
QUnit.test('should destroy popover', function (assert) {
|
||||
assert.expect(7)
|
||||
var $popover = $('<div/>')
|
||||
.bootstrapPopover({
|
||||
trigger: 'hover'
|
||||
@ -174,6 +186,7 @@ $(function () {
|
||||
})
|
||||
|
||||
QUnit.test('should render popover element using delegated selector', function (assert) {
|
||||
assert.expect(2)
|
||||
var $div = $('<div><a href="#" title="mdo" data-content="http://twitter.com/mdo">@mdo</a></div>')
|
||||
.appendTo('#qunit-fixture')
|
||||
.bootstrapPopover({
|
||||
@ -181,18 +194,19 @@ $(function () {
|
||||
trigger: 'click'
|
||||
})
|
||||
|
||||
$div.find('a').click()
|
||||
$div.find('a').trigger('click')
|
||||
assert.notEqual($('.popover').length, 0, 'popover was inserted')
|
||||
|
||||
$div.find('a').click()
|
||||
$div.find('a').trigger('click')
|
||||
assert.strictEqual($('.popover').length, 0, 'popover was removed')
|
||||
})
|
||||
|
||||
QUnit.test('should detach popover content rather than removing it so that event handlers are left intact', function (assert) {
|
||||
assert.expect(1)
|
||||
var $content = $('<div class="content-with-handler"><a class="btn btn-warning">Button with event handler</a></div>').appendTo('#qunit-fixture')
|
||||
|
||||
var handlerCalled = false
|
||||
$('.content-with-handler .btn').click(function () {
|
||||
$('.content-with-handler .btn').on('click', function () {
|
||||
handlerCalled = true
|
||||
})
|
||||
|
||||
@ -214,7 +228,7 @@ $(function () {
|
||||
.one('hidden.bs.popover', function () {
|
||||
$div
|
||||
.one('shown.bs.popover', function () {
|
||||
$('.content-with-handler .btn').click()
|
||||
$('.content-with-handler .btn').trigger('click')
|
||||
$div.bootstrapPopover('destroy')
|
||||
assert.ok(handlerCalled, 'content\'s event handler still present')
|
||||
done()
|
||||
@ -227,9 +241,22 @@ $(function () {
|
||||
})
|
||||
|
||||
QUnit.test('should throw an error when initializing popover on the document object without specifying a delegation selector', function (assert) {
|
||||
assert.expect(1)
|
||||
assert.throws(function () {
|
||||
$(document).bootstrapPopover({ title: 'What am I on?', content: 'My selector is missing' })
|
||||
}, new Error('`selector` option must be specified when initializing popover on the window.document object!'))
|
||||
})
|
||||
|
||||
QUnit.test('should do nothing when an attempt is made to hide an uninitialized popover', function (assert) {
|
||||
assert.expect(1)
|
||||
|
||||
var $popover = $('<span data-toggle="popover" data-title="some title" data-content="some content">some text</span>')
|
||||
.appendTo('#qunit-fixture')
|
||||
.on('hidden.bs.popover shown.bs.popover', function () {
|
||||
assert.ok(false, 'should not fire any popover events')
|
||||
})
|
||||
.bootstrapPopover('hide')
|
||||
assert.strictEqual($popover.data('bs.popover'), undefined, 'should not initialize the popover')
|
||||
})
|
||||
|
||||
})
|
||||
|
@ -4,6 +4,7 @@ $(function () {
|
||||
QUnit.module('scrollspy plugin')
|
||||
|
||||
QUnit.test('should be defined on jquery object', function (assert) {
|
||||
assert.expect(1)
|
||||
assert.ok($(document.body).scrollspy, 'scrollspy method is defined')
|
||||
})
|
||||
|
||||
@ -19,10 +20,12 @@ $(function () {
|
||||
})
|
||||
|
||||
QUnit.test('should provide no conflict', function (assert) {
|
||||
assert.expect(1)
|
||||
assert.strictEqual($.fn.scrollspy, undefined, 'scrollspy was set back to undefined (org value)')
|
||||
})
|
||||
|
||||
QUnit.test('should return jquery collection containing the element', function (assert) {
|
||||
assert.expect(2)
|
||||
var $el = $('<div/>')
|
||||
var $scrollspy = $el.bootstrapScrollspy()
|
||||
assert.ok($scrollspy instanceof $, 'returns jquery collection')
|
||||
@ -30,6 +33,7 @@ $(function () {
|
||||
})
|
||||
|
||||
QUnit.test('should only switch "active" class on current target', function (assert) {
|
||||
assert.expect(1)
|
||||
var done = assert.async()
|
||||
|
||||
var sectionHTML = '<div id="root" class="active">'
|
||||
@ -74,6 +78,7 @@ $(function () {
|
||||
})
|
||||
|
||||
QUnit.test('should correctly select middle navigation option when large offset is used', function (assert) {
|
||||
assert.expect(3)
|
||||
var done = assert.async()
|
||||
|
||||
var sectionHTML = '<div id="header" style="height: 500px;"></div>'
|
||||
@ -107,6 +112,7 @@ $(function () {
|
||||
})
|
||||
|
||||
QUnit.test('should add the active class to the correct element', function (assert) {
|
||||
assert.expect(2)
|
||||
var navbarHtml =
|
||||
'<nav class="navbar">'
|
||||
+ '<ul class="nav">'
|
||||
@ -142,7 +148,47 @@ $(function () {
|
||||
.then(function () { return testElementIsActiveAfterScroll('#li-2', '#div-2') })
|
||||
})
|
||||
|
||||
QUnit.test('should add the active class correctly when there are nested elements at 0 scroll offset', function (assert) {
|
||||
assert.expect(6)
|
||||
var times = 0
|
||||
var done = assert.async()
|
||||
var navbarHtml = '<nav id="navigation" class="navbar">'
|
||||
+ '<ul class="nav">'
|
||||
+ '<li id="li-1"><a href="#div-1">div 1</a>'
|
||||
+ '<ul>'
|
||||
+ '<li id="li-2"><a href="#div-2">div 2</a></li>'
|
||||
+ '</ul>'
|
||||
+ '</li>'
|
||||
+ '</ul>'
|
||||
+ '</nav>'
|
||||
|
||||
var contentHtml = '<div class="content" style="position: absolute; top: 0px; overflow: auto; height: 50px">'
|
||||
+ '<div id="div-1" style="padding: 0; margin: 0">'
|
||||
+ '<div id="div-2" style="height: 200px; padding: 0; margin: 0">div 2</div>'
|
||||
+ '</div>'
|
||||
+ '</div>'
|
||||
|
||||
$(navbarHtml).appendTo('#qunit-fixture')
|
||||
|
||||
var $content = $(contentHtml)
|
||||
.appendTo('#qunit-fixture')
|
||||
.bootstrapScrollspy({ offset: 0, target: '#navigation' })
|
||||
|
||||
!function testActiveElements() {
|
||||
if (++times > 3) return done()
|
||||
|
||||
$content.one('scroll', function () {
|
||||
assert.ok($('#li-1').hasClass('active'), 'nav item for outer element has "active" class')
|
||||
assert.ok($('#li-2').hasClass('active'), 'nav item for inner element has "active" class')
|
||||
testActiveElements()
|
||||
})
|
||||
|
||||
$content.scrollTop($content.scrollTop() + 10)
|
||||
}()
|
||||
})
|
||||
|
||||
QUnit.test('should clear selection if above the first section', function (assert) {
|
||||
assert.expect(3)
|
||||
var done = assert.async()
|
||||
|
||||
var sectionHTML = '<div id="header" style="height: 500px;"></div>'
|
||||
@ -183,4 +229,50 @@ $(function () {
|
||||
.scrollTop(201)
|
||||
})
|
||||
|
||||
QUnit.test('should correctly select navigation element on backward scrolling when each target section height is 100%', function (assert) {
|
||||
assert.expect(5)
|
||||
var navbarHtml =
|
||||
'<nav class="navbar">'
|
||||
+ '<ul class="nav">'
|
||||
+ '<li id="li-100-1"><a href="#div-100-1">div 1</a></li>'
|
||||
+ '<li id="li-100-2"><a href="#div-100-2">div 2</a></li>'
|
||||
+ '<li id="li-100-3"><a href="#div-100-3">div 3</a></li>'
|
||||
+ '<li id="li-100-4"><a href="#div-100-4">div 4</a></li>'
|
||||
+ '<li id="li-100-5"><a href="#div-100-5">div 5</a></li>'
|
||||
+ '</ul>'
|
||||
+ '</nav>'
|
||||
var contentHtml =
|
||||
'<div class="content" style="position: relative; overflow: auto; height: 100px">'
|
||||
+ '<div id="div-100-1" style="position: relative; height: 100%; padding: 0; margin: 0">div 1</div>'
|
||||
+ '<div id="div-100-2" style="position: relative; height: 100%; padding: 0; margin: 0">div 2</div>'
|
||||
+ '<div id="div-100-3" style="position: relative; height: 100%; padding: 0; margin: 0">div 3</div>'
|
||||
+ '<div id="div-100-4" style="position: relative; height: 100%; padding: 0; margin: 0">div 4</div>'
|
||||
+ '<div id="div-100-5" style="position: relative; height: 100%; padding: 0; margin: 0">div 5</div>'
|
||||
+ '</div>'
|
||||
|
||||
$(navbarHtml).appendTo('#qunit-fixture')
|
||||
var $content = $(contentHtml)
|
||||
.appendTo('#qunit-fixture')
|
||||
.bootstrapScrollspy({ offset: 0, target: '.navbar' })
|
||||
|
||||
var testElementIsActiveAfterScroll = function (element, target) {
|
||||
var deferred = $.Deferred()
|
||||
var scrollHeight = Math.ceil($content.scrollTop() + $(target).position().top)
|
||||
var done = assert.async()
|
||||
$content.one('scroll', function () {
|
||||
assert.ok($(element).hasClass('active'), 'target:' + target + ', element: ' + element)
|
||||
done()
|
||||
deferred.resolve()
|
||||
})
|
||||
$content.scrollTop(scrollHeight)
|
||||
return deferred.promise()
|
||||
}
|
||||
|
||||
$.when(testElementIsActiveAfterScroll('#li-100-5', '#div-100-5'))
|
||||
.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-2', '#div-100-2') })
|
||||
.then(function () { return testElementIsActiveAfterScroll('#li-100-1', '#div-100-1') })
|
||||
})
|
||||
|
||||
})
|
||||
|
@ -4,6 +4,7 @@ $(function () {
|
||||
QUnit.module('tabs plugin')
|
||||
|
||||
QUnit.test('should be defined on jquery object', function (assert) {
|
||||
assert.expect(1)
|
||||
assert.ok($(document.body).tab, 'tabs method is defined')
|
||||
})
|
||||
|
||||
@ -19,10 +20,12 @@ $(function () {
|
||||
})
|
||||
|
||||
QUnit.test('should provide no conflict', function (assert) {
|
||||
assert.expect(1)
|
||||
assert.strictEqual($.fn.tab, undefined, 'tab was set back to undefined (org value)')
|
||||
})
|
||||
|
||||
QUnit.test('should return jquery collection containing the element', function (assert) {
|
||||
assert.expect(2)
|
||||
var $el = $('<div/>')
|
||||
var $tab = $el.bootstrapTab()
|
||||
assert.ok($tab instanceof $, 'returns jquery collection')
|
||||
@ -30,6 +33,7 @@ $(function () {
|
||||
})
|
||||
|
||||
QUnit.test('should activate element by tab id', function (assert) {
|
||||
assert.expect(2)
|
||||
var tabsHTML = '<ul class="tabs">'
|
||||
+ '<li><a href="#home">Home</a></li>'
|
||||
+ '<li><a href="#profile">Profile</a></li>'
|
||||
@ -45,6 +49,7 @@ $(function () {
|
||||
})
|
||||
|
||||
QUnit.test('should activate element by tab id', function (assert) {
|
||||
assert.expect(2)
|
||||
var pillsHTML = '<ul class="pills">'
|
||||
+ '<li><a href="#home">Home</a></li>'
|
||||
+ '<li><a href="#profile">Profile</a></li>'
|
||||
@ -60,6 +65,7 @@ $(function () {
|
||||
})
|
||||
|
||||
QUnit.test('should not fire shown when show is prevented', function (assert) {
|
||||
assert.expect(1)
|
||||
var done = assert.async()
|
||||
|
||||
$('<div class="tab"/>')
|
||||
@ -75,6 +81,7 @@ $(function () {
|
||||
})
|
||||
|
||||
QUnit.test('show and shown events should reference correct relatedTarget', function (assert) {
|
||||
assert.expect(2)
|
||||
var done = assert.async()
|
||||
|
||||
var dropHTML = '<ul class="drop">'
|
||||
@ -102,6 +109,7 @@ $(function () {
|
||||
})
|
||||
|
||||
QUnit.test('should fire hide and hidden events', function (assert) {
|
||||
assert.expect(2)
|
||||
var done = assert.async()
|
||||
|
||||
var tabsHTML = '<ul class="tabs">'
|
||||
@ -132,6 +140,7 @@ $(function () {
|
||||
})
|
||||
|
||||
QUnit.test('should not fire hidden when hide is prevented', function (assert) {
|
||||
assert.expect(1)
|
||||
var done = assert.async()
|
||||
|
||||
var tabsHTML = '<ul class="tabs">'
|
||||
@ -156,6 +165,7 @@ $(function () {
|
||||
})
|
||||
|
||||
QUnit.test('hide and hidden events contain correct relatedTarget', function (assert) {
|
||||
assert.expect(2)
|
||||
var done = assert.async()
|
||||
|
||||
var tabsHTML = '<ul class="tabs">'
|
||||
@ -179,6 +189,7 @@ $(function () {
|
||||
})
|
||||
|
||||
QUnit.test('selected tab should have aria-expanded', function (assert) {
|
||||
assert.expect(8)
|
||||
var tabsHTML = '<ul class="nav nav-tabs">'
|
||||
+ '<li class="active"><a href="#home" toggle="tab" aria-expanded="true">Home</a></li>'
|
||||
+ '<li><a href="#profile" toggle="tab" aria-expanded="false">Profile</a></li>'
|
||||
@ -189,7 +200,7 @@ $(function () {
|
||||
assert.strictEqual($tabs.find('.active a').attr('aria-expanded'), 'true', 'shown tab has aria-expanded = true')
|
||||
assert.strictEqual($tabs.find('li:not(.active) a').attr('aria-expanded'), 'false', 'hidden tab has aria-expanded = false')
|
||||
|
||||
$tabs.find('li:last a').click()
|
||||
$tabs.find('li:last a').trigger('click')
|
||||
assert.strictEqual($tabs.find('.active a').attr('aria-expanded'), 'true', 'after click, shown tab has aria-expanded = true')
|
||||
assert.strictEqual($tabs.find('li:not(.active) a').attr('aria-expanded'), 'false', 'after click, hidden tab has aria-expanded = false')
|
||||
|
||||
@ -197,7 +208,7 @@ $(function () {
|
||||
assert.strictEqual($tabs.find('.active a').attr('aria-expanded'), 'true', 'shown tab has aria-expanded = true')
|
||||
assert.strictEqual($tabs.find('li:not(.active) a').attr('aria-expanded'), 'false', 'hidden tab has aria-expanded = false')
|
||||
|
||||
$tabs.find('li:first a').click()
|
||||
$tabs.find('li:first a').trigger('click')
|
||||
assert.strictEqual($tabs.find('.active a').attr('aria-expanded'), 'true', 'after second show event, shown tab still has aria-expanded = true')
|
||||
assert.strictEqual($tabs.find('li:not(.active) a').attr('aria-expanded'), 'false', 'after second show event, hidden tab has aria-expanded = false')
|
||||
})
|
||||
|
@ -19,7 +19,7 @@
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h4 class="panel-title">
|
||||
<a data-toggle="collapse" data-parent="#accordion" href="#collapseOne">
|
||||
<a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseOne">
|
||||
Collapsible Group Item #1
|
||||
</a>
|
||||
</h4>
|
||||
@ -33,7 +33,7 @@
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h4 class="panel-title">
|
||||
<a data-toggle="collapse" data-parent="#accordion" href="#collapseTwo">
|
||||
<a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseTwo">
|
||||
Collapsible Group Item #2
|
||||
</a>
|
||||
</h4>
|
||||
@ -47,7 +47,7 @@
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h4 class="panel-title">
|
||||
<a data-toggle="collapse" data-parent="#accordion" href="#collapseThree">
|
||||
<a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseThree">
|
||||
Collapsible Group Item #3
|
||||
</a>
|
||||
</h4>
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* ========================================================================
|
||||
* Bootstrap: transition.js v3.3.2
|
||||
* Bootstrap: transition.js v3.3.4
|
||||
* http://getbootstrap.com/javascript/#transitions
|
||||
* ========================================================================
|
||||
* Copyright 2011-2015 Twitter, Inc.
|
||||
|
9
less/mixins/background-variant.less
Normal file
9
less/mixins/background-variant.less
Normal file
@ -0,0 +1,9 @@
|
||||
// Contextual backgrounds
|
||||
|
||||
.bg-variant(@color) {
|
||||
background-color: @color;
|
||||
a&:hover,
|
||||
a&:focus {
|
||||
background-color: darken(@color, 10%);
|
||||
}
|
||||
}
|
@ -3,7 +3,7 @@
|
||||
Package.describe({
|
||||
name: 'twbs:bootstrap', // http://atmospherejs.com/twbs/bootstrap
|
||||
summary: 'The most popular front-end framework for developing responsive, mobile first projects on the web.',
|
||||
version: '3.3.2',
|
||||
version: '3.3.4',
|
||||
git: 'https://github.com/twbs/bootstrap.git'
|
||||
});
|
||||
|
||||
|
16
package.json
16
package.json
@ -32,7 +32,7 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"btoa": "~1.1.2",
|
||||
"glob": "~4.4.0",
|
||||
"glob": "~5.0.3",
|
||||
"grunt": "~0.4.5",
|
||||
"grunt-autoprefixer": "~2.2.0",
|
||||
"grunt-banner": "~0.3.1",
|
||||
@ -52,7 +52,7 @@
|
||||
"grunt-contrib-watch": "~0.6.1",
|
||||
"grunt-csscomb": "~3.0.0",
|
||||
"grunt-exec": "~0.4.6",
|
||||
"grunt-html": "^3.0.0",
|
||||
"grunt-html": "~4.0.1",
|
||||
"grunt-jekyll": "~0.4.2",
|
||||
"grunt-jscs": "~1.5.0",
|
||||
"grunt-postcss": "^0.3.0",
|
||||
@ -61,7 +61,7 @@
|
||||
"grunt-scss-lint": "^0.3.4",
|
||||
"grunt-sed": "~0.1.1",
|
||||
"load-grunt-tasks": "~3.1.0",
|
||||
"markdown-it": "^3.0.7",
|
||||
"markdown-it": "^4.0.1",
|
||||
"mq4-hover-shim": "^0.1.0",
|
||||
"npm-shrinkwrap": "^200.1.0",
|
||||
"superstartup-closure-compiler": "^0.1.6",
|
||||
@ -81,18 +81,12 @@
|
||||
],
|
||||
"jspm": {
|
||||
"main": "js/bootstrap",
|
||||
"directories": {
|
||||
"example": "examples",
|
||||
"lib": "dist"
|
||||
},
|
||||
"shim": {
|
||||
"js/bootstrap": {
|
||||
"imports": "jquery",
|
||||
"deps": "jquery",
|
||||
"exports": "$"
|
||||
}
|
||||
},
|
||||
"buildConfig": {
|
||||
"uglify": true
|
||||
}
|
||||
"files": ["css", "fonts", "js"]
|
||||
}
|
||||
}
|
||||
|
@ -46,11 +46,17 @@
|
||||
&.disabled,
|
||||
&:disabled,
|
||||
fieldset[disabled] & {
|
||||
pointer-events: none; // Future-proof disabling of clicks
|
||||
cursor: $cursor-disabled;
|
||||
opacity: .65;
|
||||
@include box-shadow(none);
|
||||
}
|
||||
|
||||
a& {
|
||||
&.disabled,
|
||||
fieldset[disabled] & {
|
||||
pointer-events: none; // Future-proof disabling of clicks on `<a>` elements
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -377,12 +377,14 @@ input[type="checkbox"] {
|
||||
text-align: center;
|
||||
pointer-events: none;
|
||||
}
|
||||
.input-lg + .form-control-feedback {
|
||||
.input-lg + .form-control-feedback,
|
||||
.input-group-lg + .form-control-feedback {
|
||||
width: $input-height-lg;
|
||||
height: $input-height-lg;
|
||||
line-height: $input-height-lg;
|
||||
}
|
||||
.input-sm + .form-control-feedback {
|
||||
.input-sm + .form-control-feedback,
|
||||
.input-group-sm + .form-control-feedback {
|
||||
width: $input-height-sm;
|
||||
height: $input-height-sm;
|
||||
line-height: $input-height-sm;
|
||||
|
@ -25,7 +25,7 @@
|
||||
}
|
||||
|
||||
.jumbotron-heading {
|
||||
font-size: ($font-size-base * 4.5);
|
||||
font-size: $jumbotron-heading-font-size;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -59,11 +59,14 @@
|
||||
|
||||
// Modal background
|
||||
.modal-backdrop {
|
||||
position: absolute;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
background-color: $modal-backdrop-bg;
|
||||
z-index: $zindex-modal-bg;
|
||||
|
||||
// Fade for backdrop
|
||||
&.fade { opacity: 0; }
|
||||
&.in { opacity: $modal-backdrop-opacity; }
|
||||
|
@ -137,11 +137,9 @@
|
||||
.tab-content {
|
||||
> .tab-pane {
|
||||
display: none;
|
||||
visibility: hidden;
|
||||
}
|
||||
> .active {
|
||||
display: block;
|
||||
visibility: visible;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -158,3 +158,14 @@ hr {
|
||||
clip: auto;
|
||||
}
|
||||
}
|
||||
|
||||
// iOS "clickable elements" fix for role="button"
|
||||
//
|
||||
// Fixes "clickability" issue (and more generally, the firing of events such as focus as well)
|
||||
// for traditionally non-focusable elements with role="button"
|
||||
// see https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
|
||||
// Upstream patch for normalize.css submitted: https://github.com/necolas/normalize.css/pull/379 - remove this fix once that is merged
|
||||
|
||||
[role="button"] {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
@ -13,7 +13,6 @@
|
||||
font-size: $font-size-sm;
|
||||
font-weight: normal;
|
||||
line-height: 1.4;
|
||||
visibility: visible;
|
||||
opacity: 0;
|
||||
|
||||
&.in { opacity: $tooltip-opacity; }
|
||||
|
@ -225,7 +225,8 @@ $zindex-dropdown: 1000 !default;
|
||||
$zindex-popover: 1060 !default;
|
||||
$zindex-tooltip: 1070 !default;
|
||||
$zindex-navbar-fixed: 1030 !default;
|
||||
$zindex-modal: 1040 !default;
|
||||
$zindex-modal-bg: 1040 !default;
|
||||
$zindex-modal: 1050 !default;
|
||||
|
||||
|
||||
// Media queries breakpoints
|
||||
@ -385,6 +386,7 @@ $jumbotron-padding: 2rem !default;
|
||||
$jumbotron-color: inherit !default;
|
||||
$jumbotron-bg: $gray-lighter !default;
|
||||
$jumbotron-heading-color: inherit !default;
|
||||
$jumbotron-heading-font-size: ($font-size-base * 4.5) !default;
|
||||
// $jumbotron-font-size: ceil(($font-size-base * 1.5)) !default;
|
||||
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
||||
background-color: $color;
|
||||
}
|
||||
a#{$parent} {
|
||||
@include hover {
|
||||
@include hover-focus {
|
||||
background-color: darken($color, 10%);
|
||||
}
|
||||
}
|
||||
|
@ -7,7 +7,7 @@
|
||||
#{$parent} {
|
||||
display: block !important;
|
||||
}
|
||||
table#{$parent} { display: table; }
|
||||
table#{$parent} { display: table !important; }
|
||||
tr#{$parent} { display: table-row !important; }
|
||||
th#{$parent},
|
||||
td#{$parent} { display: table-cell !important; }
|
||||
|
@ -5,7 +5,7 @@
|
||||
color: $color;
|
||||
}
|
||||
a#{$parent} {
|
||||
@include hover {
|
||||
@include hover-focus {
|
||||
color: darken($color, 10%);
|
||||
}
|
||||
}
|
||||
|
708
test-infra/npm-shrinkwrap.json
generated
708
test-infra/npm-shrinkwrap.json
generated
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "bootstrap",
|
||||
"version": "3.3.2",
|
||||
"version": "3.3.4",
|
||||
"npm-shrinkwrap-version": "200.1.0",
|
||||
"node-version": "v0.12.0",
|
||||
"dependencies": {
|
||||
@ -9,8 +9,8 @@
|
||||
"resolved": "https://registry.npmjs.org/btoa/-/btoa-1.1.2.tgz"
|
||||
},
|
||||
"glob": {
|
||||
"version": "4.4.0",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-4.4.0.tgz",
|
||||
"version": "5.0.3",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-5.0.3.tgz",
|
||||
"dependencies": {
|
||||
"inflight": {
|
||||
"version": "1.0.4",
|
||||
@ -27,8 +27,8 @@
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
|
||||
},
|
||||
"minimatch": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.1.tgz",
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.4.tgz",
|
||||
"dependencies": {
|
||||
"brace-expansion": {
|
||||
"version": "1.1.0",
|
||||
@ -243,8 +243,8 @@
|
||||
"resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz"
|
||||
},
|
||||
"which": {
|
||||
"version": "1.0.8",
|
||||
"resolved": "https://registry.npmjs.org/which/-/which-1.0.8.tgz"
|
||||
"version": "1.0.9",
|
||||
"resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -261,16 +261,16 @@
|
||||
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-0.2.0.tgz"
|
||||
},
|
||||
"caniuse-db": {
|
||||
"version": "1.0.30000079",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000079.tgz"
|
||||
"version": "1.0.30000092",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000092.tgz"
|
||||
},
|
||||
"num2fraction": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.0.1.tgz"
|
||||
},
|
||||
"postcss": {
|
||||
"version": "4.0.4",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-4.0.4.tgz",
|
||||
"version": "4.0.6",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-4.0.6.tgz",
|
||||
"dependencies": {
|
||||
"js-base64": {
|
||||
"version": "2.1.7",
|
||||
@ -383,8 +383,8 @@
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
|
||||
},
|
||||
"minimatch": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.1.tgz",
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.4.tgz",
|
||||
"dependencies": {
|
||||
"brace-expansion": {
|
||||
"version": "1.1.0",
|
||||
@ -643,20 +643,20 @@
|
||||
"resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz"
|
||||
},
|
||||
"compression": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/compression/-/compression-1.4.1.tgz",
|
||||
"version": "1.4.3",
|
||||
"resolved": "https://registry.npmjs.org/compression/-/compression-1.4.3.tgz",
|
||||
"dependencies": {
|
||||
"accepts": {
|
||||
"version": "1.2.4",
|
||||
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.2.4.tgz",
|
||||
"version": "1.2.5",
|
||||
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.2.5.tgz",
|
||||
"dependencies": {
|
||||
"mime-types": {
|
||||
"version": "2.0.9",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.9.tgz",
|
||||
"version": "2.0.10",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.10.tgz",
|
||||
"dependencies": {
|
||||
"mime-db": {
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.7.0.tgz"
|
||||
"version": "1.8.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.8.0.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -671,8 +671,8 @@
|
||||
"resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.2.tgz",
|
||||
"dependencies": {
|
||||
"mime-db": {
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.7.0.tgz"
|
||||
"version": "1.8.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.8.0.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -683,8 +683,8 @@
|
||||
}
|
||||
},
|
||||
"connect-timeout": {
|
||||
"version": "1.6.0",
|
||||
"resolved": "https://registry.npmjs.org/connect-timeout/-/connect-timeout-1.6.0.tgz",
|
||||
"version": "1.6.1",
|
||||
"resolved": "https://registry.npmjs.org/connect-timeout/-/connect-timeout-1.6.1.tgz",
|
||||
"dependencies": {
|
||||
"ms": {
|
||||
"version": "0.7.0",
|
||||
@ -702,13 +702,7 @@
|
||||
},
|
||||
"cookie-parser": {
|
||||
"version": "1.3.4",
|
||||
"resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.3.4.tgz",
|
||||
"dependencies": {
|
||||
"cookie-signature": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz"
|
||||
}
|
||||
}
|
||||
"resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.3.4.tgz"
|
||||
},
|
||||
"cookie-signature": {
|
||||
"version": "1.0.6",
|
||||
@ -749,12 +743,12 @@
|
||||
}
|
||||
},
|
||||
"debug": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.1.1.tgz",
|
||||
"version": "2.1.3",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.1.3.tgz",
|
||||
"dependencies": {
|
||||
"ms": {
|
||||
"version": "0.6.2",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-0.6.2.tgz"
|
||||
"version": "0.7.0",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-0.7.0.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -763,20 +757,20 @@
|
||||
"resolved": "https://registry.npmjs.org/depd/-/depd-1.0.0.tgz"
|
||||
},
|
||||
"errorhandler": {
|
||||
"version": "1.3.4",
|
||||
"resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.3.4.tgz",
|
||||
"version": "1.3.5",
|
||||
"resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.3.5.tgz",
|
||||
"dependencies": {
|
||||
"accepts": {
|
||||
"version": "1.2.4",
|
||||
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.2.4.tgz",
|
||||
"version": "1.2.5",
|
||||
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.2.5.tgz",
|
||||
"dependencies": {
|
||||
"mime-types": {
|
||||
"version": "2.0.9",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.9.tgz",
|
||||
"version": "2.0.10",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.10.tgz",
|
||||
"dependencies": {
|
||||
"mime-db": {
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.7.0.tgz"
|
||||
"version": "1.8.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.8.0.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -796,10 +790,6 @@
|
||||
"version": "1.10.3",
|
||||
"resolved": "https://registry.npmjs.org/express-session/-/express-session-1.10.3.tgz",
|
||||
"dependencies": {
|
||||
"cookie-signature": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz"
|
||||
},
|
||||
"crc": {
|
||||
"version": "3.2.1",
|
||||
"resolved": "https://registry.npmjs.org/crc/-/crc-3.2.1.tgz"
|
||||
@ -858,13 +848,9 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"media-typer": {
|
||||
"version": "0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz"
|
||||
},
|
||||
"method-override": {
|
||||
"version": "2.3.1",
|
||||
"resolved": "https://registry.npmjs.org/method-override/-/method-override-2.3.1.tgz",
|
||||
"version": "2.3.2",
|
||||
"resolved": "https://registry.npmjs.org/method-override/-/method-override-2.3.2.tgz",
|
||||
"dependencies": {
|
||||
"methods": {
|
||||
"version": "1.1.1",
|
||||
@ -969,12 +955,12 @@
|
||||
}
|
||||
},
|
||||
"serve-index": {
|
||||
"version": "1.6.2",
|
||||
"resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.6.2.tgz",
|
||||
"version": "1.6.3",
|
||||
"resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.6.3.tgz",
|
||||
"dependencies": {
|
||||
"accepts": {
|
||||
"version": "1.2.4",
|
||||
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.2.4.tgz",
|
||||
"version": "1.2.5",
|
||||
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.2.5.tgz",
|
||||
"dependencies": {
|
||||
"negotiator": {
|
||||
"version": "0.5.1",
|
||||
@ -986,43 +972,33 @@
|
||||
"version": "0.5.2",
|
||||
"resolved": "https://registry.npmjs.org/batch/-/batch-0.5.2.tgz"
|
||||
},
|
||||
"http-errors": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz",
|
||||
"dependencies": {
|
||||
"inherits": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
|
||||
},
|
||||
"statuses": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz"
|
||||
}
|
||||
}
|
||||
"escape-html": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.1.tgz"
|
||||
},
|
||||
"mime-types": {
|
||||
"version": "2.0.9",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.9.tgz",
|
||||
"version": "2.0.10",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.10.tgz",
|
||||
"dependencies": {
|
||||
"mime-db": {
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.7.0.tgz"
|
||||
"version": "1.8.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.8.0.tgz"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"serve-static": {
|
||||
"version": "1.9.1",
|
||||
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.9.1.tgz",
|
||||
"version": "1.9.2",
|
||||
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.9.2.tgz",
|
||||
"dependencies": {
|
||||
"escape-html": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.1.tgz"
|
||||
},
|
||||
"send": {
|
||||
"version": "0.12.1",
|
||||
"resolved": "https://registry.npmjs.org/send/-/send-0.12.1.tgz",
|
||||
"version": "0.12.2",
|
||||
"resolved": "https://registry.npmjs.org/send/-/send-0.12.2.tgz",
|
||||
"dependencies": {
|
||||
"destroy": {
|
||||
"version": "1.0.3",
|
||||
@ -1065,20 +1041,20 @@
|
||||
}
|
||||
},
|
||||
"type-is": {
|
||||
"version": "1.6.0",
|
||||
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.0.tgz",
|
||||
"version": "1.6.1",
|
||||
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.1.tgz",
|
||||
"dependencies": {
|
||||
"media-typer": {
|
||||
"version": "0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz"
|
||||
},
|
||||
"mime-types": {
|
||||
"version": "2.0.9",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.9.tgz",
|
||||
"version": "2.0.10",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.10.tgz",
|
||||
"dependencies": {
|
||||
"mime-db": {
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.7.0.tgz"
|
||||
"version": "1.8.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.8.0.tgz"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1267,12 +1243,12 @@
|
||||
}
|
||||
},
|
||||
"clean-css": {
|
||||
"version": "3.0.10",
|
||||
"resolved": "https://registry.npmjs.org/clean-css/-/clean-css-3.0.10.tgz",
|
||||
"version": "3.1.6",
|
||||
"resolved": "https://registry.npmjs.org/clean-css/-/clean-css-3.1.6.tgz",
|
||||
"dependencies": {
|
||||
"commander": {
|
||||
"version": "2.5.1",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-2.5.1.tgz"
|
||||
"version": "2.6.0",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-2.6.0.tgz"
|
||||
},
|
||||
"source-map": {
|
||||
"version": "0.1.43",
|
||||
@ -1287,9 +1263,51 @@
|
||||
}
|
||||
},
|
||||
"maxmin": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/maxmin/-/maxmin-1.0.0.tgz",
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/maxmin/-/maxmin-1.0.1.tgz",
|
||||
"dependencies": {
|
||||
"chalk": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.0.0.tgz",
|
||||
"dependencies": {
|
||||
"ansi-styles": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.0.1.tgz"
|
||||
},
|
||||
"escape-string-regexp": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz"
|
||||
},
|
||||
"has-ansi": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-1.0.3.tgz",
|
||||
"dependencies": {
|
||||
"ansi-regex": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-1.1.1.tgz"
|
||||
},
|
||||
"get-stdin": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
"strip-ansi": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-2.0.1.tgz",
|
||||
"dependencies": {
|
||||
"ansi-regex": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-1.1.1.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
"supports-color": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-1.3.0.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
"figures": {
|
||||
"version": "1.3.5",
|
||||
"resolved": "https://registry.npmjs.org/figures/-/figures-1.3.5.tgz"
|
||||
@ -1506,7 +1524,13 @@
|
||||
},
|
||||
"acorn-globals": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.2.tgz"
|
||||
"resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.2.tgz",
|
||||
"dependencies": {
|
||||
"acorn": {
|
||||
"version": "0.11.0",
|
||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-0.11.0.tgz"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1523,8 +1547,8 @@
|
||||
"resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz"
|
||||
},
|
||||
"jshint": {
|
||||
"version": "2.6.0",
|
||||
"resolved": "https://registry.npmjs.org/jshint/-/jshint-2.6.0.tgz",
|
||||
"version": "2.6.3",
|
||||
"resolved": "https://registry.npmjs.org/jshint/-/jshint-2.6.3.tgz",
|
||||
"dependencies": {
|
||||
"cli": {
|
||||
"version": "0.6.5",
|
||||
@ -1575,8 +1599,8 @@
|
||||
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.2.tgz",
|
||||
"dependencies": {
|
||||
"domelementtype": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz"
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz"
|
||||
},
|
||||
"domhandler": {
|
||||
"version": "2.3.0",
|
||||
@ -1590,6 +1614,10 @@
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
|
||||
"dependencies": {
|
||||
"domelementtype": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz"
|
||||
},
|
||||
"entities": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz"
|
||||
@ -1717,8 +1745,8 @@
|
||||
}
|
||||
},
|
||||
"graceful-fs": {
|
||||
"version": "3.0.5",
|
||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.5.tgz"
|
||||
"version": "3.0.6",
|
||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.6.tgz"
|
||||
},
|
||||
"image-size": {
|
||||
"version": "0.3.5",
|
||||
@ -1819,8 +1847,8 @@
|
||||
"resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.4.tgz"
|
||||
},
|
||||
"hoek": {
|
||||
"version": "2.11.0",
|
||||
"resolved": "https://registry.npmjs.org/hoek/-/hoek-2.11.0.tgz"
|
||||
"version": "2.11.1",
|
||||
"resolved": "https://registry.npmjs.org/hoek/-/hoek-2.11.1.tgz"
|
||||
},
|
||||
"sntp": {
|
||||
"version": "1.0.9",
|
||||
@ -1847,26 +1875,26 @@
|
||||
}
|
||||
},
|
||||
"isstream": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.1.tgz"
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz"
|
||||
},
|
||||
"json-stringify-safe": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.0.tgz"
|
||||
},
|
||||
"mime-types": {
|
||||
"version": "2.0.9",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.9.tgz",
|
||||
"version": "2.0.10",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.10.tgz",
|
||||
"dependencies": {
|
||||
"mime-db": {
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.7.0.tgz"
|
||||
"version": "1.8.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.8.0.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
"node-uuid": {
|
||||
"version": "1.4.2",
|
||||
"resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.2.tgz"
|
||||
"version": "1.4.3",
|
||||
"resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.3.tgz"
|
||||
},
|
||||
"oauth-sign": {
|
||||
"version": "0.6.0",
|
||||
@ -1927,28 +1955,80 @@
|
||||
"resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz"
|
||||
},
|
||||
"phantomjs": {
|
||||
"version": "1.9.15",
|
||||
"resolved": "https://registry.npmjs.org/phantomjs/-/phantomjs-1.9.15.tgz",
|
||||
"version": "1.9.16",
|
||||
"resolved": "https://registry.npmjs.org/phantomjs/-/phantomjs-1.9.16.tgz",
|
||||
"dependencies": {
|
||||
"adm-zip": {
|
||||
"version": "0.4.4",
|
||||
"resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.4.tgz"
|
||||
},
|
||||
"fs-extra": {
|
||||
"version": "0.16.3",
|
||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.16.3.tgz",
|
||||
"version": "0.16.5",
|
||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.16.5.tgz",
|
||||
"dependencies": {
|
||||
"graceful-fs": {
|
||||
"version": "3.0.5",
|
||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.5.tgz"
|
||||
"version": "3.0.6",
|
||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.6.tgz"
|
||||
},
|
||||
"jsonfile": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.0.0.tgz"
|
||||
},
|
||||
"rimraf": {
|
||||
"version": "2.2.8",
|
||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz"
|
||||
"version": "2.3.2",
|
||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.3.2.tgz",
|
||||
"dependencies": {
|
||||
"glob": {
|
||||
"version": "4.5.3",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz",
|
||||
"dependencies": {
|
||||
"inflight": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz",
|
||||
"dependencies": {
|
||||
"wrappy": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
"inherits": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
|
||||
},
|
||||
"minimatch": {
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.4.tgz",
|
||||
"dependencies": {
|
||||
"brace-expansion": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.0.tgz",
|
||||
"dependencies": {
|
||||
"balanced-match": {
|
||||
"version": "0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.0.tgz"
|
||||
},
|
||||
"concat-map": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"once": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/once/-/once-1.3.1.tgz",
|
||||
"dependencies": {
|
||||
"wrappy": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -1957,8 +2037,8 @@
|
||||
"resolved": "https://registry.npmjs.org/kew/-/kew-0.4.0.tgz"
|
||||
},
|
||||
"npmconf": {
|
||||
"version": "2.0.9",
|
||||
"resolved": "https://registry.npmjs.org/npmconf/-/npmconf-2.0.9.tgz",
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/npmconf/-/npmconf-2.1.1.tgz",
|
||||
"dependencies": {
|
||||
"config-chain": {
|
||||
"version": "1.1.8",
|
||||
@ -2013,8 +2093,8 @@
|
||||
"resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.0.tgz"
|
||||
},
|
||||
"semver": {
|
||||
"version": "4.3.0",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-4.3.0.tgz"
|
||||
"version": "4.3.1",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-4.3.1.tgz"
|
||||
},
|
||||
"uid-number": {
|
||||
"version": "0.0.5",
|
||||
@ -2143,8 +2223,8 @@
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz"
|
||||
},
|
||||
"node-uuid": {
|
||||
"version": "1.4.2",
|
||||
"resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.2.tgz"
|
||||
"version": "1.4.3",
|
||||
"resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.3.tgz"
|
||||
},
|
||||
"oauth-sign": {
|
||||
"version": "0.4.0",
|
||||
@ -2185,8 +2265,8 @@
|
||||
}
|
||||
},
|
||||
"which": {
|
||||
"version": "1.0.8",
|
||||
"resolved": "https://registry.npmjs.org/which/-/which-1.0.8.tgz"
|
||||
"version": "1.0.9",
|
||||
"resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -2251,13 +2331,55 @@
|
||||
}
|
||||
},
|
||||
"lodash": {
|
||||
"version": "3.3.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-3.3.0.tgz"
|
||||
"version": "3.5.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-3.5.0.tgz"
|
||||
},
|
||||
"maxmin": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/maxmin/-/maxmin-1.0.0.tgz",
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/maxmin/-/maxmin-1.0.1.tgz",
|
||||
"dependencies": {
|
||||
"chalk": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.0.0.tgz",
|
||||
"dependencies": {
|
||||
"ansi-styles": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.0.1.tgz"
|
||||
},
|
||||
"escape-string-regexp": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz"
|
||||
},
|
||||
"has-ansi": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-1.0.3.tgz",
|
||||
"dependencies": {
|
||||
"ansi-regex": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-1.1.1.tgz"
|
||||
},
|
||||
"get-stdin": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
"strip-ansi": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-2.0.1.tgz",
|
||||
"dependencies": {
|
||||
"ansi-regex": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-1.1.1.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
"supports-color": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-1.3.0.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
"figures": {
|
||||
"version": "1.3.5",
|
||||
"resolved": "https://registry.npmjs.org/figures/-/figures-1.3.5.tgz"
|
||||
@ -2323,23 +2445,13 @@
|
||||
}
|
||||
},
|
||||
"uglify-js": {
|
||||
"version": "2.4.16",
|
||||
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.4.16.tgz",
|
||||
"version": "2.4.17",
|
||||
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.4.17.tgz",
|
||||
"dependencies": {
|
||||
"async": {
|
||||
"version": "0.2.10",
|
||||
"resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz"
|
||||
},
|
||||
"optimist": {
|
||||
"version": "0.3.7",
|
||||
"resolved": "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz",
|
||||
"dependencies": {
|
||||
"wordwrap": {
|
||||
"version": "0.0.2",
|
||||
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
"source-map": {
|
||||
"version": "0.1.34",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.34.tgz",
|
||||
@ -2353,6 +2465,10 @@
|
||||
"uglify-to-browserify": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz"
|
||||
},
|
||||
"yargs": {
|
||||
"version": "1.3.3",
|
||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-1.3.3.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -2527,28 +2643,52 @@
|
||||
"resolved": "https://registry.npmjs.org/grunt-exec/-/grunt-exec-0.4.6.tgz"
|
||||
},
|
||||
"grunt-html": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/grunt-html/-/grunt-html-3.0.0.tgz",
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/grunt-html/-/grunt-html-4.0.1.tgz",
|
||||
"dependencies": {
|
||||
"async": {
|
||||
"version": "0.2.10",
|
||||
"resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz"
|
||||
"version": "0.9.0",
|
||||
"resolved": "https://registry.npmjs.org/async/-/async-0.9.0.tgz"
|
||||
},
|
||||
"chalk": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz",
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.0.0.tgz",
|
||||
"dependencies": {
|
||||
"ansi-styles": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz"
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.0.1.tgz"
|
||||
},
|
||||
"has-color": {
|
||||
"version": "0.1.7",
|
||||
"resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz"
|
||||
"escape-string-regexp": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz"
|
||||
},
|
||||
"has-ansi": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-1.0.3.tgz",
|
||||
"dependencies": {
|
||||
"ansi-regex": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-1.1.1.tgz"
|
||||
},
|
||||
"get-stdin": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
"strip-ansi": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz"
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-2.0.1.tgz",
|
||||
"dependencies": {
|
||||
"ansi-regex": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-1.1.1.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
"supports-color": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-1.3.0.tgz"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2559,8 +2699,8 @@
|
||||
"resolved": "https://registry.npmjs.org/grunt-jekyll/-/grunt-jekyll-0.4.2.tgz",
|
||||
"dependencies": {
|
||||
"tmp": {
|
||||
"version": "0.0.24",
|
||||
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.24.tgz"
|
||||
"version": "0.0.25",
|
||||
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.25.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -2589,16 +2729,16 @@
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-2.6.0.tgz"
|
||||
},
|
||||
"esprima": {
|
||||
"version": "1.2.4",
|
||||
"resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.4.tgz"
|
||||
"version": "1.2.5",
|
||||
"resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.5.tgz"
|
||||
},
|
||||
"esprima-harmony-jscs": {
|
||||
"version": "1.1.0-tolerate-import",
|
||||
"resolved": "https://registry.npmjs.org/esprima-harmony-jscs/-/esprima-harmony-jscs-1.1.0-tolerate-import.tgz"
|
||||
},
|
||||
"estraverse": {
|
||||
"version": "1.9.1",
|
||||
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.1.tgz"
|
||||
"version": "1.9.3",
|
||||
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz"
|
||||
},
|
||||
"exit": {
|
||||
"version": "0.1.2",
|
||||
@ -2639,16 +2779,16 @@
|
||||
"resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-3.0.0.tgz",
|
||||
"dependencies": {
|
||||
"lodash._baseassign": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.0.1.tgz",
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.0.2.tgz",
|
||||
"dependencies": {
|
||||
"lodash._basecopy": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.0.tgz"
|
||||
},
|
||||
"lodash.keys": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.0.3.tgz",
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.0.4.tgz",
|
||||
"dependencies": {
|
||||
"lodash.isarguments": {
|
||||
"version": "3.0.0",
|
||||
@ -2667,24 +2807,24 @@
|
||||
}
|
||||
},
|
||||
"lodash._createassigner": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash._createassigner/-/lodash._createassigner-3.0.0.tgz",
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/lodash._createassigner/-/lodash._createassigner-3.0.1.tgz",
|
||||
"dependencies": {
|
||||
"lodash._bindcallback": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.0.tgz"
|
||||
},
|
||||
"lodash._isiterateecall": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.2.tgz"
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.4.tgz"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"minimatch": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.1.tgz",
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.4.tgz",
|
||||
"dependencies": {
|
||||
"brace-expansion": {
|
||||
"version": "1.1.0",
|
||||
@ -2755,8 +2895,60 @@
|
||||
"resolved": "https://registry.npmjs.org/ncp/-/ncp-0.4.2.tgz"
|
||||
},
|
||||
"rimraf": {
|
||||
"version": "2.2.8",
|
||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz"
|
||||
"version": "2.3.2",
|
||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.3.2.tgz",
|
||||
"dependencies": {
|
||||
"glob": {
|
||||
"version": "4.5.3",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz",
|
||||
"dependencies": {
|
||||
"inflight": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz",
|
||||
"dependencies": {
|
||||
"wrappy": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
"inherits": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
|
||||
},
|
||||
"minimatch": {
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.4.tgz",
|
||||
"dependencies": {
|
||||
"brace-expansion": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.0.tgz",
|
||||
"dependencies": {
|
||||
"balanced-match": {
|
||||
"version": "0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.0.tgz"
|
||||
},
|
||||
"concat-map": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"once": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/once/-/once-1.3.1.tgz",
|
||||
"dependencies": {
|
||||
"wrappy": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -2781,8 +2973,8 @@
|
||||
"resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz"
|
||||
},
|
||||
"isstream": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.1.tgz"
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz"
|
||||
},
|
||||
"stack-trace": {
|
||||
"version": "0.0.9",
|
||||
@ -2805,8 +2997,8 @@
|
||||
"resolved": "https://registry.npmjs.org/vow-fs/-/vow-fs-0.3.4.tgz",
|
||||
"dependencies": {
|
||||
"glob": {
|
||||
"version": "4.4.0",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-4.4.0.tgz",
|
||||
"version": "4.5.3",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz",
|
||||
"dependencies": {
|
||||
"inflight": {
|
||||
"version": "1.0.4",
|
||||
@ -2823,8 +3015,8 @@
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
|
||||
},
|
||||
"minimatch": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.1.tgz",
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.4.tgz",
|
||||
"dependencies": {
|
||||
"brace-expansion": {
|
||||
"version": "1.1.0",
|
||||
@ -2855,8 +3047,8 @@
|
||||
}
|
||||
},
|
||||
"node-uuid": {
|
||||
"version": "1.4.2",
|
||||
"resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.2.tgz"
|
||||
"version": "1.4.3",
|
||||
"resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.3.tgz"
|
||||
},
|
||||
"vow-queue": {
|
||||
"version": "0.4.1",
|
||||
@ -2895,8 +3087,8 @@
|
||||
"resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz"
|
||||
},
|
||||
"lodash": {
|
||||
"version": "3.3.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-3.3.0.tgz"
|
||||
"version": "3.3.1",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-3.3.1.tgz"
|
||||
},
|
||||
"q": {
|
||||
"version": "1.1.2",
|
||||
@ -2983,12 +3175,12 @@
|
||||
"resolved": "https://registry.npmjs.org/async/-/async-0.9.0.tgz"
|
||||
},
|
||||
"mime-types": {
|
||||
"version": "2.0.9",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.9.tgz",
|
||||
"version": "2.0.10",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.10.tgz",
|
||||
"dependencies": {
|
||||
"mime-db": {
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.7.0.tgz"
|
||||
"version": "1.8.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.8.0.tgz"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -3043,8 +3235,8 @@
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz"
|
||||
},
|
||||
"node-uuid": {
|
||||
"version": "1.4.2",
|
||||
"resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.2.tgz"
|
||||
"version": "1.4.3",
|
||||
"resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.3.tgz"
|
||||
},
|
||||
"oauth-sign": {
|
||||
"version": "0.5.0",
|
||||
@ -3195,8 +3387,8 @@
|
||||
"resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz"
|
||||
},
|
||||
"node-uuid": {
|
||||
"version": "1.4.2",
|
||||
"resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.2.tgz"
|
||||
"version": "1.4.3",
|
||||
"resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.3.tgz"
|
||||
},
|
||||
"oauth-sign": {
|
||||
"version": "0.3.0",
|
||||
@ -3297,8 +3489,8 @@
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
|
||||
},
|
||||
"minimatch": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.1.tgz",
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.4.tgz",
|
||||
"dependencies": {
|
||||
"brace-expansion": {
|
||||
"version": "1.1.0",
|
||||
@ -3349,8 +3541,8 @@
|
||||
}
|
||||
},
|
||||
"minimatch": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.1.tgz",
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.4.tgz",
|
||||
"dependencies": {
|
||||
"brace-expansion": {
|
||||
"version": "1.1.0",
|
||||
@ -3373,8 +3565,8 @@
|
||||
}
|
||||
},
|
||||
"markdown-it": {
|
||||
"version": "3.0.7",
|
||||
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-3.0.7.tgz",
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-4.0.1.tgz",
|
||||
"dependencies": {
|
||||
"argparse": {
|
||||
"version": "1.0.1",
|
||||
@ -3390,13 +3582,21 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"autolinker": {
|
||||
"version": "0.15.2",
|
||||
"resolved": "https://registry.npmjs.org/autolinker/-/autolinker-0.15.2.tgz"
|
||||
"entities": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz"
|
||||
},
|
||||
"linkify-it": {
|
||||
"version": "0.1.5",
|
||||
"resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-0.1.5.tgz"
|
||||
},
|
||||
"mdurl": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.0.tgz"
|
||||
},
|
||||
"uc.micro": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-0.1.0.tgz"
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.0.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -3459,8 +3659,8 @@
|
||||
}
|
||||
},
|
||||
"minimist": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.1.0.tgz"
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.1.1.tgz"
|
||||
},
|
||||
"msee": {
|
||||
"version": "0.1.1",
|
||||
@ -3531,8 +3731,8 @@
|
||||
}
|
||||
},
|
||||
"npm": {
|
||||
"version": "2.6.0",
|
||||
"resolved": "https://registry.npmjs.org/npm/-/npm-2.6.0.tgz",
|
||||
"version": "2.7.1",
|
||||
"resolved": "https://registry.npmjs.org/npm/-/npm-2.7.1.tgz",
|
||||
"dependencies": {
|
||||
"abbrev": {
|
||||
"version": "1.0.5",
|
||||
@ -3669,8 +3869,8 @@
|
||||
"resolved": "https://registry.npmjs.org/github-url-from-username-repo/-/github-url-from-username-repo-1.0.2.tgz"
|
||||
},
|
||||
"glob": {
|
||||
"version": "4.3.5",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-4.3.5.tgz"
|
||||
"version": "4.4.2",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-4.4.2.tgz"
|
||||
},
|
||||
"graceful-fs": {
|
||||
"version": "3.0.5",
|
||||
@ -3689,8 +3889,8 @@
|
||||
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.3.tgz"
|
||||
},
|
||||
"init-package-json": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-1.2.0.tgz",
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-1.3.0.tgz",
|
||||
"dependencies": {
|
||||
"promzard": {
|
||||
"version": "0.2.2",
|
||||
@ -3873,8 +4073,20 @@
|
||||
}
|
||||
},
|
||||
"read-package-json": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-1.3.1.tgz"
|
||||
"version": "1.3.2",
|
||||
"resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-1.3.2.tgz",
|
||||
"dependencies": {
|
||||
"json-parse-helpfulerror": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz",
|
||||
"dependencies": {
|
||||
"jju": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/jju/-/jju-1.2.0.tgz"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"readable-stream": {
|
||||
"version": "1.0.33",
|
||||
@ -4033,12 +4245,12 @@
|
||||
"resolved": "https://registry.npmjs.org/retry/-/retry-0.6.1.tgz"
|
||||
},
|
||||
"rimraf": {
|
||||
"version": "2.2.8",
|
||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz"
|
||||
"version": "2.3.1",
|
||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.3.1.tgz"
|
||||
},
|
||||
"semver": {
|
||||
"version": "4.3.0",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-4.3.0.tgz"
|
||||
"version": "4.3.1",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-4.3.1.tgz"
|
||||
},
|
||||
"sha": {
|
||||
"version": "1.3.0",
|
||||
@ -4089,8 +4301,8 @@
|
||||
"resolved": "https://registry.npmjs.org/umask/-/umask-1.1.0.tgz"
|
||||
},
|
||||
"which": {
|
||||
"version": "1.0.8",
|
||||
"resolved": "https://registry.npmjs.org/which/-/which-1.0.8.tgz"
|
||||
"version": "1.0.9",
|
||||
"resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz"
|
||||
},
|
||||
"wrappy": {
|
||||
"version": "1.0.1",
|
||||
@ -4107,8 +4319,60 @@
|
||||
"resolved": "https://registry.npmjs.org/read-json/-/read-json-0.1.0.tgz"
|
||||
},
|
||||
"rimraf": {
|
||||
"version": "2.2.8",
|
||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz"
|
||||
"version": "2.3.2",
|
||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.3.2.tgz",
|
||||
"dependencies": {
|
||||
"glob": {
|
||||
"version": "4.5.3",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz",
|
||||
"dependencies": {
|
||||
"inflight": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz",
|
||||
"dependencies": {
|
||||
"wrappy": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
"inherits": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
|
||||
},
|
||||
"minimatch": {
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.4.tgz",
|
||||
"dependencies": {
|
||||
"brace-expansion": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.0.tgz",
|
||||
"dependencies": {
|
||||
"balanced-match": {
|
||||
"version": "0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.0.tgz"
|
||||
},
|
||||
"concat-map": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"once": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/once/-/once-1.3.1.tgz",
|
||||
"dependencies": {
|
||||
"wrappy": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"run-parallel": {
|
||||
"version": "1.0.0",
|
||||
@ -4123,8 +4387,8 @@
|
||||
"resolved": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-2.0.0.tgz"
|
||||
},
|
||||
"semver": {
|
||||
"version": "4.3.0",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-4.3.0.tgz"
|
||||
"version": "4.3.1",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-4.3.1.tgz"
|
||||
},
|
||||
"sorted-object": {
|
||||
"version": "1.0.0",
|
||||
@ -4201,8 +4465,8 @@
|
||||
"resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz"
|
||||
},
|
||||
"pretty-ms": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-1.0.1.tgz",
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-1.1.0.tgz",
|
||||
"dependencies": {
|
||||
"get-stdin": {
|
||||
"version": "4.0.1",
|
||||
|
Loading…
x
Reference in New Issue
Block a user