mirror of
https://github.com/twbs/bootstrap.git
synced 2022-11-09 12:25:43 -05:00
Merge branch 'master' into cursor_var
This commit is contained in:
commit
c4b053a013
29 changed files with 470 additions and 302 deletions
|
@ -10,7 +10,6 @@ source: docs
|
|||
destination: _gh_pages
|
||||
host: 0.0.0.0
|
||||
port: 9001
|
||||
baseurl: /
|
||||
url: http://getbootstrap.com
|
||||
encoding: UTF-8
|
||||
|
||||
|
|
89
dist/js/bootstrap.js
vendored
89
dist/js/bootstrap.js
vendored
|
@ -207,10 +207,10 @@ if (typeof jQuery === 'undefined') {
|
|||
|
||||
if (data.resetText == null) $el.data('resetText', $el[val]())
|
||||
|
||||
$el[val](data[state] == null ? this.options[state] : data[state])
|
||||
|
||||
// push to event loop to allow forms to submit
|
||||
setTimeout($.proxy(function () {
|
||||
$el[val](data[state] == null ? this.options[state] : data[state])
|
||||
|
||||
if (state == 'loadingText') {
|
||||
this.isLoading = true
|
||||
$el.addClass(d).attr(d, d)
|
||||
|
@ -496,7 +496,7 @@ if (typeof jQuery === 'undefined') {
|
|||
// CAROUSEL DATA-API
|
||||
// =================
|
||||
|
||||
$(document).on('click.bs.carousel.data-api', '[data-slide], [data-slide-to]', function (e) {
|
||||
var clickHandler = function (e) {
|
||||
var href
|
||||
var $this = $(this)
|
||||
var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7
|
||||
|
@ -512,7 +512,11 @@ if (typeof jQuery === 'undefined') {
|
|||
}
|
||||
|
||||
e.preventDefault()
|
||||
})
|
||||
}
|
||||
|
||||
$(document)
|
||||
.on('click.bs.carousel.data-api', '[data-slide]', clickHandler)
|
||||
.on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)
|
||||
|
||||
$(window).on('load', function () {
|
||||
$('[data-ride="carousel"]').each(function () {
|
||||
|
@ -541,9 +545,15 @@ if (typeof jQuery === 'undefined') {
|
|||
var Collapse = function (element, options) {
|
||||
this.$element = $(element)
|
||||
this.options = $.extend({}, Collapse.DEFAULTS, options)
|
||||
this.$trigger = $(this.options.trigger).filter('[href="#' + element.id + '"], [data-target="#' + element.id + '"]')
|
||||
this.transitioning = null
|
||||
|
||||
if (this.options.parent) this.$parent = $(this.options.parent)
|
||||
if (this.options.parent) {
|
||||
this.$parent = this.getParent()
|
||||
} else {
|
||||
this.addAriaAndCollapsedClass(this.$element, this.$trigger)
|
||||
}
|
||||
|
||||
if (this.options.toggle) this.toggle()
|
||||
}
|
||||
|
||||
|
@ -552,7 +562,8 @@ if (typeof jQuery === 'undefined') {
|
|||
Collapse.TRANSITION_DURATION = 350
|
||||
|
||||
Collapse.DEFAULTS = {
|
||||
toggle: true
|
||||
toggle: true,
|
||||
trigger: '[data-toggle="collapse"]'
|
||||
}
|
||||
|
||||
Collapse.prototype.dimension = function () {
|
||||
|
@ -587,6 +598,10 @@ if (typeof jQuery === 'undefined') {
|
|||
.addClass('collapsing')[dimension](0)
|
||||
.attr('aria-expanded', true)
|
||||
|
||||
this.$trigger
|
||||
.removeClass('collapsed')
|
||||
.attr('aria-expanded', true)
|
||||
|
||||
this.transitioning = 1
|
||||
|
||||
var complete = function () {
|
||||
|
@ -623,6 +638,10 @@ if (typeof jQuery === 'undefined') {
|
|||
.removeClass('collapse in')
|
||||
.attr('aria-expanded', false)
|
||||
|
||||
this.$trigger
|
||||
.addClass('collapsed')
|
||||
.attr('aria-expanded', false)
|
||||
|
||||
this.transitioning = 1
|
||||
|
||||
var complete = function () {
|
||||
|
@ -645,6 +664,33 @@ if (typeof jQuery === 'undefined') {
|
|||
this[this.$element.hasClass('in') ? 'hide' : 'show']()
|
||||
}
|
||||
|
||||
Collapse.prototype.getParent = function () {
|
||||
return $(this.options.parent)
|
||||
.find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]')
|
||||
.each($.proxy(function (i, element) {
|
||||
var $element = $(element)
|
||||
this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)
|
||||
}, this))
|
||||
.end()
|
||||
}
|
||||
|
||||
Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {
|
||||
var isOpen = $element.hasClass('in')
|
||||
|
||||
$element.attr('aria-expanded', isOpen)
|
||||
$trigger
|
||||
.toggleClass('collapsed', !isOpen)
|
||||
.attr('aria-expanded', isOpen)
|
||||
}
|
||||
|
||||
function getTargetFromTrigger($trigger) {
|
||||
var href
|
||||
var target = $trigger.attr('data-target')
|
||||
|| (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
|
||||
|
||||
return $(target)
|
||||
}
|
||||
|
||||
|
||||
// COLLAPSE PLUGIN DEFINITION
|
||||
// ==========================
|
||||
|
@ -680,22 +726,13 @@ if (typeof jQuery === 'undefined') {
|
|||
// =================
|
||||
|
||||
$(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) {
|
||||
var href
|
||||
var $this = $(this)
|
||||
var target = $this.attr('data-target')
|
||||
|| e.preventDefault()
|
||||
|| (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
|
||||
var $target = $(target)
|
||||
var data = $target.data('bs.collapse')
|
||||
var option = data ? 'toggle' : $this.data()
|
||||
var parent = $this.attr('data-parent')
|
||||
var $parent = parent && $(parent)
|
||||
|
||||
if (!data || !data.transitioning) {
|
||||
if ($parent) $parent.find('[data-toggle="collapse"][data-parent="' + parent + '"]').not($this).addClass('collapsed').attr('aria-expanded', false)
|
||||
var isCollapsed = $target.hasClass('in')
|
||||
$this.toggleClass('collapsed', isCollapsed).attr('aria-expanded', !isCollapsed)
|
||||
}
|
||||
if (!$this.attr('data-target')) e.preventDefault()
|
||||
|
||||
var $target = getTargetFromTrigger($this)
|
||||
var data = $target.data('bs.collapse')
|
||||
var option = data ? 'toggle' : $.extend({}, $this.data(), { trigger: this })
|
||||
|
||||
Plugin.call($target, option)
|
||||
})
|
||||
|
@ -858,7 +895,9 @@ if (typeof jQuery === 'undefined') {
|
|||
.on('click.bs.dropdown.data-api', clearMenus)
|
||||
.on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
|
||||
.on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)
|
||||
.on('keydown.bs.dropdown.data-api', toggle + ', [role="menu"], [role="listbox"]', Dropdown.prototype.keydown)
|
||||
.on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)
|
||||
.on('keydown.bs.dropdown.data-api', '[role="menu"]', Dropdown.prototype.keydown)
|
||||
.on('keydown.bs.dropdown.data-api', '[role="listbox"]', Dropdown.prototype.keydown)
|
||||
|
||||
}(jQuery);
|
||||
|
||||
|
@ -2062,10 +2101,14 @@ if (typeof jQuery === 'undefined') {
|
|||
// TAB DATA-API
|
||||
// ============
|
||||
|
||||
$(document).on('click.bs.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
|
||||
var clickHandler = function (e) {
|
||||
e.preventDefault()
|
||||
Plugin.call($(this), 'show')
|
||||
})
|
||||
}
|
||||
|
||||
$(document)
|
||||
.on('click.bs.tab.data-api', '[data-toggle="tab"]', clickHandler)
|
||||
.on('click.bs.tab.data-api', '[data-toggle="pill"]', clickHandler)
|
||||
|
||||
}(jQuery);
|
||||
|
||||
|
|
4
dist/js/bootstrap.min.js
vendored
4
dist/js/bootstrap.min.js
vendored
File diff suppressed because one or more lines are too long
|
@ -202,16 +202,16 @@
|
|||
<p>Just wrap a series of <code>.btn</code>s in <code>.btn-group.btn-group-justified</code>.</p>
|
||||
<div class="bs-example">
|
||||
<div class="btn-group btn-group-justified">
|
||||
<a class="btn btn-default" role="button">Left</a>
|
||||
<a class="btn btn-default" role="button">Middle</a>
|
||||
<a class="btn btn-default" role="button">Right</a>
|
||||
<a href="#" class="btn btn-default" role="button">Left</a>
|
||||
<a href="#" class="btn btn-default" role="button">Middle</a>
|
||||
<a href="#" class="btn btn-default" role="button">Right</a>
|
||||
</div>
|
||||
<br>
|
||||
<div class="btn-group btn-group-justified">
|
||||
<a class="btn btn-default" role="button">Left</a>
|
||||
<a class="btn btn-default" role="button">Middle</a>
|
||||
<a href="#" class="btn btn-default" role="button">Left</a>
|
||||
<a href="#" class="btn btn-default" role="button">Middle</a>
|
||||
<div class="btn-group">
|
||||
<a class="btn btn-default dropdown-toggle" data-toggle="dropdown">
|
||||
<a href="#" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
|
||||
Dropdown <span class="caret"></span>
|
||||
</a>
|
||||
<ul class="dropdown-menu" role="menu">
|
||||
|
|
|
@ -6,14 +6,14 @@
|
|||
<div class="jumbotron">
|
||||
<h1>Hello, world!</h1>
|
||||
<p>This is a simple hero unit, a simple jumbotron-style component for calling extra attention to featured content or information.</p>
|
||||
<p><a class="btn btn-primary btn-lg" role="button">Learn more</a></p>
|
||||
<p><a class="btn btn-primary btn-lg" href="#" role="button">Learn more</a></p>
|
||||
</div>
|
||||
</div>
|
||||
{% highlight html %}
|
||||
<div class="jumbotron">
|
||||
<h1>Hello, world!</h1>
|
||||
<p>...</p>
|
||||
<p><a class="btn btn-primary btn-lg" role="button">Learn more</a></p>
|
||||
<p><a class="btn btn-primary btn-lg" href="#" role="button">Learn more</a></p>
|
||||
</div>
|
||||
{% endhighlight %}
|
||||
<p>To make the jumbotron full width, and without rounded corners, place it outside all <code>.container</code>s and instead add a <code>.container</code> within.</p>
|
||||
|
|
|
@ -60,7 +60,7 @@
|
|||
<p><strong class="text-danger">Justified navbar nav links are currently not supported.</strong></p>
|
||||
<div class="bs-callout bs-callout-warning">
|
||||
<h4>Safari and responsive justified navs</h4>
|
||||
<p>As of v7.1, Safari exhibits a bug in which resizing your browser horizontally causes rendering errors in the justified nav that are cleared upon refreshing. This bug is also shown in the <a href="../examples/justified-nav/">justified nav example</a>.</p>
|
||||
<p>As of v8.0, Safari exhibits a bug in which resizing your browser horizontally causes rendering errors in the justified nav that are cleared upon refreshing. This bug is also shown in the <a href="../examples/justified-nav/">justified nav example</a>.</p>
|
||||
</div>
|
||||
<div class="bs-example">
|
||||
<ul class="nav nav-tabs nav-justified" role="tablist">
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -2,5 +2,5 @@
|
|||
<h1 id="tools" class="page-header">Tools</h1>
|
||||
|
||||
<h2 id="tools-bootlint">Bootlint</h2>
|
||||
<p><strong><a href="https://github.com/twbs/bootlint">Bootlint</a></strong> is an official Bootstrap HTML <a href="http://en.wikipedia.org/wiki/Lint_(software)">linter</a> tool. It automatically checks for several common HTML mistakes in webpages that are using Bootstrap in a fairly "vanilla" way. Vanilla Bootstrap's components/widgets require their parts of the DOM to conform to certain structures. Bootlint checks that instances of Bootstrap components have correctly-structured HTML. Consider adding Bootlint to your Bootstrap web development toolchain so that none of the common mistakes slow down your project's development.</p>
|
||||
<p><strong><a href="https://github.com/twbs/bootlint">Bootlint</a></strong> is the official Bootstrap HTML <a href="http://en.wikipedia.org/wiki/Lint_(software)">linter</a> tool. It automatically checks for several common HTML mistakes in webpages that are using Bootstrap in a fairly "vanilla" way. Vanilla Bootstrap's components/widgets require their parts of the DOM to conform to certain structures. Bootlint checks that instances of Bootstrap components have correctly-structured HTML. Consider adding Bootlint to your Bootstrap web development toolchain so that none of the common mistakes slow down your project's development.</p>
|
||||
</div>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<meta name="author" content="Mark Otto, Jacob Thornton, and Bootstrap contributors">
|
||||
|
||||
<title>
|
||||
{% if page.url == site.baseurl %}
|
||||
{% if page.layout == "home" %}
|
||||
{{ page.title }}
|
||||
{% else %}
|
||||
{{ page.title }} · Bootstrap
|
||||
|
|
2
docs/assets/css/docs.min.css
vendored
2
docs/assets/css/docs.min.css
vendored
File diff suppressed because one or more lines are too long
|
@ -638,8 +638,6 @@ body {
|
|||
.bs-docs-sidebar.affix {
|
||||
position: fixed; /* Undo the static from mobile first approach */
|
||||
top: 20px;
|
||||
bottom: 20px;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.bs-docs-sidebar.affix-bottom {
|
||||
position: absolute; /* Undo the static from mobile first approach */
|
||||
|
|
4
docs/assets/js/customize.min.js
vendored
4
docs/assets/js/customize.min.js
vendored
File diff suppressed because one or more lines are too long
2
docs/assets/js/raw-files.min.js
vendored
2
docs/assets/js/raw-files.min.js
vendored
File diff suppressed because one or more lines are too long
|
@ -466,7 +466,7 @@ window.onload = function () { // wait for load in a dumb way because B-0
|
|||
|
||||
generateZip(generateCSS(preamble), generateJS(preamble), generateFonts(), configJson, function (blob) {
|
||||
$compileBtn.removeAttr('disabled')
|
||||
saveAs(blob, 'bootstrap.zip')
|
||||
setTimeout(function () { saveAs(blob, 'bootstrap.zip') }, 0)
|
||||
})
|
||||
})
|
||||
});
|
||||
|
|
|
@ -113,6 +113,12 @@ lead: "A list of the browser bugs that Bootstrap is currently grappling with."
|
|||
<td>(No public bug tracker)</td>
|
||||
<td><a href="https://github.com/twbs/bootstrap/issues/9774">#9774</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Safari</td>
|
||||
<td><code>transform: translate3d(0, 0, 0);</code> iOS bug</td>
|
||||
<td><a href="https://bugs.webkit.org/show_bug.cgi?id=138162">WebKit bug #138162</a>, <a href="http://openradar.appspot.com/18804973">Apple Safari Radar #18804973</a></td>
|
||||
<td><a href="https://github.com/twbs/bootstrap/pull/14603">#14603</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
|
89
docs/dist/js/bootstrap.js
vendored
89
docs/dist/js/bootstrap.js
vendored
|
@ -207,10 +207,10 @@ if (typeof jQuery === 'undefined') {
|
|||
|
||||
if (data.resetText == null) $el.data('resetText', $el[val]())
|
||||
|
||||
$el[val](data[state] == null ? this.options[state] : data[state])
|
||||
|
||||
// push to event loop to allow forms to submit
|
||||
setTimeout($.proxy(function () {
|
||||
$el[val](data[state] == null ? this.options[state] : data[state])
|
||||
|
||||
if (state == 'loadingText') {
|
||||
this.isLoading = true
|
||||
$el.addClass(d).attr(d, d)
|
||||
|
@ -496,7 +496,7 @@ if (typeof jQuery === 'undefined') {
|
|||
// CAROUSEL DATA-API
|
||||
// =================
|
||||
|
||||
$(document).on('click.bs.carousel.data-api', '[data-slide], [data-slide-to]', function (e) {
|
||||
var clickHandler = function (e) {
|
||||
var href
|
||||
var $this = $(this)
|
||||
var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7
|
||||
|
@ -512,7 +512,11 @@ if (typeof jQuery === 'undefined') {
|
|||
}
|
||||
|
||||
e.preventDefault()
|
||||
})
|
||||
}
|
||||
|
||||
$(document)
|
||||
.on('click.bs.carousel.data-api', '[data-slide]', clickHandler)
|
||||
.on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)
|
||||
|
||||
$(window).on('load', function () {
|
||||
$('[data-ride="carousel"]').each(function () {
|
||||
|
@ -541,9 +545,15 @@ if (typeof jQuery === 'undefined') {
|
|||
var Collapse = function (element, options) {
|
||||
this.$element = $(element)
|
||||
this.options = $.extend({}, Collapse.DEFAULTS, options)
|
||||
this.$trigger = $(this.options.trigger).filter('[href="#' + element.id + '"], [data-target="#' + element.id + '"]')
|
||||
this.transitioning = null
|
||||
|
||||
if (this.options.parent) this.$parent = $(this.options.parent)
|
||||
if (this.options.parent) {
|
||||
this.$parent = this.getParent()
|
||||
} else {
|
||||
this.addAriaAndCollapsedClass(this.$element, this.$trigger)
|
||||
}
|
||||
|
||||
if (this.options.toggle) this.toggle()
|
||||
}
|
||||
|
||||
|
@ -552,7 +562,8 @@ if (typeof jQuery === 'undefined') {
|
|||
Collapse.TRANSITION_DURATION = 350
|
||||
|
||||
Collapse.DEFAULTS = {
|
||||
toggle: true
|
||||
toggle: true,
|
||||
trigger: '[data-toggle="collapse"]'
|
||||
}
|
||||
|
||||
Collapse.prototype.dimension = function () {
|
||||
|
@ -587,6 +598,10 @@ if (typeof jQuery === 'undefined') {
|
|||
.addClass('collapsing')[dimension](0)
|
||||
.attr('aria-expanded', true)
|
||||
|
||||
this.$trigger
|
||||
.removeClass('collapsed')
|
||||
.attr('aria-expanded', true)
|
||||
|
||||
this.transitioning = 1
|
||||
|
||||
var complete = function () {
|
||||
|
@ -623,6 +638,10 @@ if (typeof jQuery === 'undefined') {
|
|||
.removeClass('collapse in')
|
||||
.attr('aria-expanded', false)
|
||||
|
||||
this.$trigger
|
||||
.addClass('collapsed')
|
||||
.attr('aria-expanded', false)
|
||||
|
||||
this.transitioning = 1
|
||||
|
||||
var complete = function () {
|
||||
|
@ -645,6 +664,33 @@ if (typeof jQuery === 'undefined') {
|
|||
this[this.$element.hasClass('in') ? 'hide' : 'show']()
|
||||
}
|
||||
|
||||
Collapse.prototype.getParent = function () {
|
||||
return $(this.options.parent)
|
||||
.find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]')
|
||||
.each($.proxy(function (i, element) {
|
||||
var $element = $(element)
|
||||
this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)
|
||||
}, this))
|
||||
.end()
|
||||
}
|
||||
|
||||
Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {
|
||||
var isOpen = $element.hasClass('in')
|
||||
|
||||
$element.attr('aria-expanded', isOpen)
|
||||
$trigger
|
||||
.toggleClass('collapsed', !isOpen)
|
||||
.attr('aria-expanded', isOpen)
|
||||
}
|
||||
|
||||
function getTargetFromTrigger($trigger) {
|
||||
var href
|
||||
var target = $trigger.attr('data-target')
|
||||
|| (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
|
||||
|
||||
return $(target)
|
||||
}
|
||||
|
||||
|
||||
// COLLAPSE PLUGIN DEFINITION
|
||||
// ==========================
|
||||
|
@ -680,22 +726,13 @@ if (typeof jQuery === 'undefined') {
|
|||
// =================
|
||||
|
||||
$(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) {
|
||||
var href
|
||||
var $this = $(this)
|
||||
var target = $this.attr('data-target')
|
||||
|| e.preventDefault()
|
||||
|| (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
|
||||
var $target = $(target)
|
||||
var data = $target.data('bs.collapse')
|
||||
var option = data ? 'toggle' : $this.data()
|
||||
var parent = $this.attr('data-parent')
|
||||
var $parent = parent && $(parent)
|
||||
|
||||
if (!data || !data.transitioning) {
|
||||
if ($parent) $parent.find('[data-toggle="collapse"][data-parent="' + parent + '"]').not($this).addClass('collapsed').attr('aria-expanded', false)
|
||||
var isCollapsed = $target.hasClass('in')
|
||||
$this.toggleClass('collapsed', isCollapsed).attr('aria-expanded', !isCollapsed)
|
||||
}
|
||||
if (!$this.attr('data-target')) e.preventDefault()
|
||||
|
||||
var $target = getTargetFromTrigger($this)
|
||||
var data = $target.data('bs.collapse')
|
||||
var option = data ? 'toggle' : $.extend({}, $this.data(), { trigger: this })
|
||||
|
||||
Plugin.call($target, option)
|
||||
})
|
||||
|
@ -858,7 +895,9 @@ if (typeof jQuery === 'undefined') {
|
|||
.on('click.bs.dropdown.data-api', clearMenus)
|
||||
.on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
|
||||
.on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)
|
||||
.on('keydown.bs.dropdown.data-api', toggle + ', [role="menu"], [role="listbox"]', Dropdown.prototype.keydown)
|
||||
.on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)
|
||||
.on('keydown.bs.dropdown.data-api', '[role="menu"]', Dropdown.prototype.keydown)
|
||||
.on('keydown.bs.dropdown.data-api', '[role="listbox"]', Dropdown.prototype.keydown)
|
||||
|
||||
}(jQuery);
|
||||
|
||||
|
@ -2062,10 +2101,14 @@ if (typeof jQuery === 'undefined') {
|
|||
// TAB DATA-API
|
||||
// ============
|
||||
|
||||
$(document).on('click.bs.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
|
||||
var clickHandler = function (e) {
|
||||
e.preventDefault()
|
||||
Plugin.call($(this), 'show')
|
||||
})
|
||||
}
|
||||
|
||||
$(document)
|
||||
.on('click.bs.tab.data-api', '[data-toggle="tab"]', clickHandler)
|
||||
.on('click.bs.tab.data-api', '[data-toggle="pill"]', clickHandler)
|
||||
|
||||
}(jQuery);
|
||||
|
||||
|
|
4
docs/dist/js/bootstrap.min.js
vendored
4
docs/dist/js/bootstrap.min.js
vendored
File diff suppressed because one or more lines are too long
|
@ -59,7 +59,7 @@
|
|||
<div class="container">
|
||||
<h1>Hello, world!</h1>
|
||||
<p>This is a template for a simple marketing or informational website. It includes a large callout called a jumbotron and three supporting pieces of content. Use it as a starting point to create something more unique.</p>
|
||||
<p><a class="btn btn-primary btn-lg" role="button">Learn more »</a></p>
|
||||
<p><a class="btn btn-primary btn-lg" href="#" role="button">Learn more »</a></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -54,7 +54,7 @@
|
|||
<div class="row">
|
||||
<div class="col-lg-4">
|
||||
<h2>Safari bug warning!</h2>
|
||||
<p class="text-danger">As of v7.1, Safari exhibits a bug in which resizing your browser horizontally causes rendering errors in the justified nav that are cleared upon refreshing.</p>
|
||||
<p class="text-danger">As of v8.0, Safari exhibits a bug in which resizing your browser horizontally causes rendering errors in the justified nav that are cleared upon refreshing.</p>
|
||||
<p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p>
|
||||
<p><a class="btn btn-primary" href="#" role="button">View details »</a></p>
|
||||
</div>
|
||||
|
|
|
@ -6,11 +6,13 @@
|
|||
*/
|
||||
'use strict';
|
||||
|
||||
var markdown = require('markdown').markdown;
|
||||
var Remarkable = require('remarkable');
|
||||
|
||||
function markdown2html(markdownString) {
|
||||
var md = new Remarkable();
|
||||
|
||||
// the slice removes the <p>...</p> wrapper output by Markdown processor
|
||||
return markdown.toHTML(markdownString.trim()).slice(3, -4);
|
||||
return md.render(markdownString.trim()).slice(3, -5);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -35,10 +35,10 @@
|
|||
|
||||
if (data.resetText == null) $el.data('resetText', $el[val]())
|
||||
|
||||
$el[val](data[state] == null ? this.options[state] : data[state])
|
||||
|
||||
// push to event loop to allow forms to submit
|
||||
setTimeout($.proxy(function () {
|
||||
$el[val](data[state] == null ? this.options[state] : data[state])
|
||||
|
||||
if (state == 'loadingText') {
|
||||
this.isLoading = true
|
||||
$el.addClass(d).attr(d, d)
|
||||
|
|
|
@ -207,7 +207,7 @@
|
|||
// CAROUSEL DATA-API
|
||||
// =================
|
||||
|
||||
$(document).on('click.bs.carousel.data-api', '[data-slide], [data-slide-to]', function (e) {
|
||||
var clickHandler = function (e) {
|
||||
var href
|
||||
var $this = $(this)
|
||||
var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7
|
||||
|
@ -223,7 +223,11 @@
|
|||
}
|
||||
|
||||
e.preventDefault()
|
||||
})
|
||||
}
|
||||
|
||||
$(document)
|
||||
.on('click.bs.carousel.data-api', '[data-slide]', clickHandler)
|
||||
.on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)
|
||||
|
||||
$(window).on('load', function () {
|
||||
$('[data-ride="carousel"]').each(function () {
|
||||
|
|
|
@ -16,9 +16,15 @@
|
|||
var Collapse = function (element, options) {
|
||||
this.$element = $(element)
|
||||
this.options = $.extend({}, Collapse.DEFAULTS, options)
|
||||
this.$trigger = $(this.options.trigger).filter('[href="#' + element.id + '"], [data-target="#' + element.id + '"]')
|
||||
this.transitioning = null
|
||||
|
||||
if (this.options.parent) this.$parent = $(this.options.parent)
|
||||
if (this.options.parent) {
|
||||
this.$parent = this.getParent()
|
||||
} else {
|
||||
this.addAriaAndCollapsedClass(this.$element, this.$trigger)
|
||||
}
|
||||
|
||||
if (this.options.toggle) this.toggle()
|
||||
}
|
||||
|
||||
|
@ -27,7 +33,8 @@
|
|||
Collapse.TRANSITION_DURATION = 350
|
||||
|
||||
Collapse.DEFAULTS = {
|
||||
toggle: true
|
||||
toggle: true,
|
||||
trigger: '[data-toggle="collapse"]'
|
||||
}
|
||||
|
||||
Collapse.prototype.dimension = function () {
|
||||
|
@ -62,6 +69,10 @@
|
|||
.addClass('collapsing')[dimension](0)
|
||||
.attr('aria-expanded', true)
|
||||
|
||||
this.$trigger
|
||||
.removeClass('collapsed')
|
||||
.attr('aria-expanded', true)
|
||||
|
||||
this.transitioning = 1
|
||||
|
||||
var complete = function () {
|
||||
|
@ -98,6 +109,10 @@
|
|||
.removeClass('collapse in')
|
||||
.attr('aria-expanded', false)
|
||||
|
||||
this.$trigger
|
||||
.addClass('collapsed')
|
||||
.attr('aria-expanded', false)
|
||||
|
||||
this.transitioning = 1
|
||||
|
||||
var complete = function () {
|
||||
|
@ -120,6 +135,33 @@
|
|||
this[this.$element.hasClass('in') ? 'hide' : 'show']()
|
||||
}
|
||||
|
||||
Collapse.prototype.getParent = function () {
|
||||
return $(this.options.parent)
|
||||
.find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]')
|
||||
.each($.proxy(function (i, element) {
|
||||
var $element = $(element)
|
||||
this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)
|
||||
}, this))
|
||||
.end()
|
||||
}
|
||||
|
||||
Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {
|
||||
var isOpen = $element.hasClass('in')
|
||||
|
||||
$element.attr('aria-expanded', isOpen)
|
||||
$trigger
|
||||
.toggleClass('collapsed', !isOpen)
|
||||
.attr('aria-expanded', isOpen)
|
||||
}
|
||||
|
||||
function getTargetFromTrigger($trigger) {
|
||||
var href
|
||||
var target = $trigger.attr('data-target')
|
||||
|| (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
|
||||
|
||||
return $(target)
|
||||
}
|
||||
|
||||
|
||||
// COLLAPSE PLUGIN DEFINITION
|
||||
// ==========================
|
||||
|
@ -155,22 +197,13 @@
|
|||
// =================
|
||||
|
||||
$(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) {
|
||||
var href
|
||||
var $this = $(this)
|
||||
var target = $this.attr('data-target')
|
||||
|| e.preventDefault()
|
||||
|| (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
|
||||
var $target = $(target)
|
||||
var data = $target.data('bs.collapse')
|
||||
var option = data ? 'toggle' : $this.data()
|
||||
var parent = $this.attr('data-parent')
|
||||
var $parent = parent && $(parent)
|
||||
|
||||
if (!data || !data.transitioning) {
|
||||
if ($parent) $parent.find('[data-toggle="collapse"][data-parent="' + parent + '"]').not($this).addClass('collapsed').attr('aria-expanded', false)
|
||||
var isCollapsed = $target.hasClass('in')
|
||||
$this.toggleClass('collapsed', isCollapsed).attr('aria-expanded', !isCollapsed)
|
||||
}
|
||||
if (!$this.attr('data-target')) e.preventDefault()
|
||||
|
||||
var $target = getTargetFromTrigger($this)
|
||||
var data = $target.data('bs.collapse')
|
||||
var option = data ? 'toggle' : $.extend({}, $this.data(), { trigger: this })
|
||||
|
||||
Plugin.call($target, option)
|
||||
})
|
||||
|
|
|
@ -154,6 +154,8 @@
|
|||
.on('click.bs.dropdown.data-api', clearMenus)
|
||||
.on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
|
||||
.on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)
|
||||
.on('keydown.bs.dropdown.data-api', toggle + ', [role="menu"], [role="listbox"]', Dropdown.prototype.keydown)
|
||||
.on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)
|
||||
.on('keydown.bs.dropdown.data-api', '[role="menu"]', Dropdown.prototype.keydown)
|
||||
.on('keydown.bs.dropdown.data-api', '[role="listbox"]', Dropdown.prototype.keydown)
|
||||
|
||||
}(jQuery);
|
||||
|
|
|
@ -141,9 +141,13 @@
|
|||
// TAB DATA-API
|
||||
// ============
|
||||
|
||||
$(document).on('click.bs.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
|
||||
var clickHandler = function (e) {
|
||||
e.preventDefault()
|
||||
Plugin.call($(this), 'show')
|
||||
})
|
||||
}
|
||||
|
||||
$(document)
|
||||
.on('click.bs.tab.data-api', '[data-toggle="tab"]', clickHandler)
|
||||
.on('click.bs.tab.data-api', '[data-toggle="pill"]', clickHandler)
|
||||
|
||||
}(jQuery);
|
||||
|
|
|
@ -33,9 +33,9 @@ $(function () {
|
|||
var $btn = $('<button class="btn" data-loading-text="fat">mdo</button>')
|
||||
equal($btn.html(), 'mdo', 'btn text equals mdo')
|
||||
$btn.bootstrapButton('loading')
|
||||
equal($btn.html(), 'fat', 'btn text equals fat')
|
||||
stop()
|
||||
setTimeout(function () {
|
||||
equal($btn.html(), 'fat', 'btn text equals fat')
|
||||
ok($btn[0].hasAttribute('disabled'), 'btn is disabled')
|
||||
ok($btn.hasClass('disabled'), 'btn has disabled class')
|
||||
start()
|
||||
|
@ -46,16 +46,16 @@ $(function () {
|
|||
var $btn = $('<button class="btn" data-loading-text="fat">mdo</button>')
|
||||
equal($btn.html(), 'mdo', 'btn text equals mdo')
|
||||
$btn.bootstrapButton('loading')
|
||||
equal($btn.html(), 'fat', 'btn text equals fat')
|
||||
stop()
|
||||
setTimeout(function () {
|
||||
equal($btn.html(), 'fat', 'btn text equals fat')
|
||||
ok($btn[0].hasAttribute('disabled'), 'btn is disabled')
|
||||
ok($btn.hasClass('disabled'), 'btn has disabled class')
|
||||
start()
|
||||
stop()
|
||||
$btn.bootstrapButton('reset')
|
||||
equal($btn.html(), 'mdo', 'btn text equals mdo')
|
||||
setTimeout(function () {
|
||||
equal($btn.html(), 'mdo', 'btn text equals mdo')
|
||||
ok(!$btn[0].hasAttribute('disabled'), 'btn is not disabled')
|
||||
ok(!$btn.hasClass('disabled'), 'btn does not have disabled class')
|
||||
start()
|
||||
|
@ -67,16 +67,16 @@ $(function () {
|
|||
var $btn = $('<button class="btn" data-loading-text="fat"/>')
|
||||
equal($btn.html(), '', 'btn text equals ""')
|
||||
$btn.bootstrapButton('loading')
|
||||
equal($btn.html(), 'fat', 'btn text equals fat')
|
||||
stop()
|
||||
setTimeout(function () {
|
||||
equal($btn.html(), 'fat', 'btn text equals fat')
|
||||
ok($btn[0].hasAttribute('disabled'), 'btn is disabled')
|
||||
ok($btn.hasClass('disabled'), 'btn has disabled class')
|
||||
start()
|
||||
stop()
|
||||
$btn.bootstrapButton('reset')
|
||||
equal($btn.html(), '', 'btn text equals ""')
|
||||
setTimeout(function () {
|
||||
equal($btn.html(), '', 'btn text equals ""')
|
||||
ok(!$btn[0].hasAttribute('disabled'), 'btn is not disabled')
|
||||
ok(!$btn.hasClass('disabled'), 'btn does not have disabled class')
|
||||
start()
|
||||
|
|
|
@ -79,7 +79,7 @@ $(function () {
|
|||
|
||||
$('<div id="test1"/>')
|
||||
.appendTo('#qunit-fixture')
|
||||
.on('show.bs.collapse', function () {
|
||||
.on('shown.bs.collapse', function () {
|
||||
ok(!$target.hasClass('collapsed'))
|
||||
start()
|
||||
})
|
||||
|
@ -94,7 +94,7 @@ $(function () {
|
|||
|
||||
$('<div id="test1" class="in"/>')
|
||||
.appendTo('#qunit-fixture')
|
||||
.on('hide.bs.collapse', function () {
|
||||
.on('hidden.bs.collapse', function () {
|
||||
ok($target.hasClass('collapsed'))
|
||||
start()
|
||||
})
|
||||
|
@ -137,12 +137,12 @@ $(function () {
|
|||
test('should remove "collapsed" class from active accordion target', function () {
|
||||
stop()
|
||||
|
||||
var accordionHTML = '<div id="accordion">'
|
||||
+ '<div class="accordion-group"/>'
|
||||
+ '<div class="accordion-group"/>'
|
||||
+ '<div class="accordion-group"/>'
|
||||
var accordionHTML = '<div class="panel-group" id="accordion">'
|
||||
+ '<div class="panel"/>'
|
||||
+ '<div class="panel"/>'
|
||||
+ '<div class="panel"/>'
|
||||
+ '</div>'
|
||||
var $groups = $(accordionHTML).appendTo('#qunit-fixture').find('.accordion-group')
|
||||
var $groups = $(accordionHTML).appendTo('#qunit-fixture').find('.panel')
|
||||
|
||||
var $target1 = $('<a data-toggle="collapse" href="#body1" data-parent="#accordion"/>').appendTo($groups.eq(0))
|
||||
|
||||
|
@ -156,7 +156,7 @@ $(function () {
|
|||
|
||||
$('<div id="body3"/>')
|
||||
.appendTo($groups.eq(2))
|
||||
.on('show.bs.collapse', function () {
|
||||
.on('shown.bs.collapse', function () {
|
||||
ok($target1.hasClass('collapsed'), 'inactive target 1 does have class "collapsed"')
|
||||
ok($target2.hasClass('collapsed'), 'inactive target 2 does have class "collapsed"')
|
||||
ok(!$target3.hasClass('collapsed'), 'active target 3 does not have class "collapsed"')
|
||||
|
@ -170,12 +170,12 @@ $(function () {
|
|||
test('should allow dots in data-parent', function () {
|
||||
stop()
|
||||
|
||||
var accordionHTML = '<div class="accordion">'
|
||||
+ '<div class="accordion-group"/>'
|
||||
+ '<div class="accordion-group"/>'
|
||||
+ '<div class="accordion-group"/>'
|
||||
var accordionHTML = '<div class="panel-group accordion">'
|
||||
+ '<div class="panel"/>'
|
||||
+ '<div class="panel"/>'
|
||||
+ '<div class="panel"/>'
|
||||
+ '</div>'
|
||||
var $groups = $(accordionHTML).appendTo('#qunit-fixture').find('.accordion-group')
|
||||
var $groups = $(accordionHTML).appendTo('#qunit-fixture').find('.panel')
|
||||
|
||||
var $target1 = $('<a data-toggle="collapse" href="#body1" data-parent=".accordion"/>').appendTo($groups.eq(0))
|
||||
|
||||
|
@ -189,7 +189,7 @@ $(function () {
|
|||
|
||||
$('<div id="body3"/>')
|
||||
.appendTo($groups.eq(2))
|
||||
.on('show.bs.collapse', function () {
|
||||
.on('shown.bs.collapse', function () {
|
||||
ok($target1.hasClass('collapsed'), 'inactive target 1 does have class "collapsed"')
|
||||
ok($target2.hasClass('collapsed'), 'inactive target 2 does have class "collapsed"')
|
||||
ok(!$target3.hasClass('collapsed'), 'active target 3 does not have class "collapsed"')
|
||||
|
@ -207,7 +207,7 @@ $(function () {
|
|||
|
||||
$('<div id="test1"/>')
|
||||
.appendTo('#qunit-fixture')
|
||||
.on('show.bs.collapse', function () {
|
||||
.on('shown.bs.collapse', function () {
|
||||
equal($target.attr('aria-expanded'), 'true', 'aria-expanded on target is "true"')
|
||||
start()
|
||||
})
|
||||
|
@ -222,7 +222,7 @@ $(function () {
|
|||
|
||||
$('<div id="test1" class="in"/>')
|
||||
.appendTo('#qunit-fixture')
|
||||
.on('hide.bs.collapse', function () {
|
||||
.on('hidden.bs.collapse', function () {
|
||||
equal($target.attr('aria-expanded'), 'false', 'aria-expanded on target is "false"')
|
||||
start()
|
||||
})
|
||||
|
@ -233,12 +233,12 @@ $(function () {
|
|||
test('should change aria-expanded from active accordion target to "false" and set the newly active one to "true"', function () {
|
||||
stop()
|
||||
|
||||
var accordionHTML = '<div id="accordion">'
|
||||
+ '<div class="accordion-group"/>'
|
||||
+ '<div class="accordion-group"/>'
|
||||
+ '<div class="accordion-group"/>'
|
||||
var accordionHTML = '<div class="panel-group" id="accordion">'
|
||||
+ '<div class="panel"/>'
|
||||
+ '<div class="panel"/>'
|
||||
+ '<div class="panel"/>'
|
||||
+ '</div>'
|
||||
var $groups = $(accordionHTML).appendTo('#qunit-fixture').find('.accordion-group')
|
||||
var $groups = $(accordionHTML).appendTo('#qunit-fixture').find('.panel')
|
||||
|
||||
var $target1 = $('<a data-toggle="collapse" href="#body1" data-parent="#accordion"/>').appendTo($groups.eq(0))
|
||||
|
||||
|
@ -252,7 +252,7 @@ $(function () {
|
|||
|
||||
$('<div id="body3" aria-expanded="false"/>')
|
||||
.appendTo($groups.eq(2))
|
||||
.on('show.bs.collapse', function () {
|
||||
.on('shown.bs.collapse', function () {
|
||||
equal($target1.attr('aria-expanded'), 'false', 'inactive target 1 has aria-expanded="false"')
|
||||
equal($target2.attr('aria-expanded'), 'false', 'inactive target 2 has aria-expanded="false"')
|
||||
equal($target3.attr('aria-expanded'), 'true', 'active target 3 has aria-expanded="false"')
|
||||
|
@ -298,4 +298,32 @@ $(function () {
|
|||
}, 1)
|
||||
})
|
||||
|
||||
test('should add "collapsed" class to target when collapse is hidden via manual invocation', function () {
|
||||
stop()
|
||||
|
||||
var $target = $('<a data-toggle="collapse" href="#test1"/>').appendTo('#qunit-fixture')
|
||||
|
||||
$('<div id="test1" class="in"/>')
|
||||
.appendTo('#qunit-fixture')
|
||||
.on('hidden.bs.collapse', function () {
|
||||
ok($target.hasClass('collapsed'))
|
||||
start()
|
||||
})
|
||||
.bootstrapCollapse('hide')
|
||||
})
|
||||
|
||||
test('should remove "collapsed" class from target when collapse is shown via manual invocation', function () {
|
||||
stop()
|
||||
|
||||
var $target = $('<a data-toggle="collapse" class="collapsed" href="#test1"/>').appendTo('#qunit-fixture')
|
||||
|
||||
$('<div id="test1"/>')
|
||||
.appendTo('#qunit-fixture')
|
||||
.on('shown.bs.collapse', function () {
|
||||
ok(!$target.hasClass('collapsed'))
|
||||
start()
|
||||
})
|
||||
.bootstrapCollapse('show')
|
||||
})
|
||||
|
||||
})
|
||||
|
|
|
@ -56,8 +56,8 @@
|
|||
"grunt-saucelabs": "~8.3.2",
|
||||
"grunt-sed": "~0.1.1",
|
||||
"load-grunt-tasks": "~1.0.0",
|
||||
"markdown": "~0.5.0",
|
||||
"npm-shrinkwrap": "~4.0.0",
|
||||
"remarkable": "^1.2.0",
|
||||
"time-grunt": "~1.0.0"
|
||||
},
|
||||
"engines": {
|
||||
|
|
56
test-infra/npm-shrinkwrap.json
generated
56
test-infra/npm-shrinkwrap.json
generated
|
@ -1702,8 +1702,8 @@
|
|||
"resolved": "https://registry.npmjs.org/bl/-/bl-0.9.3.tgz",
|
||||
"dependencies": {
|
||||
"readable-stream": {
|
||||
"version": "1.0.33",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz",
|
||||
"version": "1.0.32",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.32.tgz",
|
||||
"dependencies": {
|
||||
"core-util-is": {
|
||||
"version": "1.0.1",
|
||||
|
@ -2173,6 +2173,10 @@
|
|||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.0.tgz"
|
||||
},
|
||||
"vow": {
|
||||
"version": "0.4.4",
|
||||
"resolved": "https://registry.npmjs.org/vow/-/vow-0.4.4.tgz"
|
||||
},
|
||||
"vow-queue": {
|
||||
"version": "0.3.1",
|
||||
"resolved": "https://registry.npmjs.org/vow-queue/-/vow-queue-0.3.1.tgz"
|
||||
|
@ -2559,13 +2563,7 @@
|
|||
},
|
||||
"vow-queue": {
|
||||
"version": "0.4.1",
|
||||
"resolved": "https://registry.npmjs.org/vow-queue/-/vow-queue-0.4.1.tgz",
|
||||
"dependencies": {
|
||||
"vow": {
|
||||
"version": "0.4.6",
|
||||
"resolved": "https://registry.npmjs.org/vow/-/vow-0.4.6.tgz"
|
||||
}
|
||||
}
|
||||
"resolved": "https://registry.npmjs.org/vow-queue/-/vow-queue-0.4.1.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -3181,22 +3179,6 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"markdown": {
|
||||
"version": "0.5.0",
|
||||
"resolved": "https://registry.npmjs.org/markdown/-/markdown-0.5.0.tgz",
|
||||
"dependencies": {
|
||||
"nopt": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/nopt/-/nopt-2.1.2.tgz",
|
||||
"dependencies": {
|
||||
"abbrev": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.5.tgz"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"npm-shrinkwrap": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/npm-shrinkwrap/-/npm-shrinkwrap-4.0.0.tgz",
|
||||
|
@ -3863,6 +3845,30 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"remarkable": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/remarkable/-/remarkable-1.2.1.tgz",
|
||||
"dependencies": {
|
||||
"argparse": {
|
||||
"version": "0.1.15",
|
||||
"resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.15.tgz",
|
||||
"dependencies": {
|
||||
"underscore": {
|
||||
"version": "1.4.4",
|
||||
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz"
|
||||
},
|
||||
"underscore.string": {
|
||||
"version": "2.3.3",
|
||||
"resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
"autolinker": {
|
||||
"version": "0.12.3",
|
||||
"resolved": "https://registry.npmjs.org/autolinker/-/autolinker-0.12.3.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
"time-grunt": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/time-grunt/-/time-grunt-1.0.0.tgz",
|
||||
|
|
Loading…
Add table
Reference in a new issue