Skip to content

Commit 94b544c

Browse files
committed
grunt
1 parent 36e3d07 commit 94b544c

File tree

6 files changed

+104
-38
lines changed

6 files changed

+104
-38
lines changed

dist/js/bootstrap.js

Lines changed: 49 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -541,9 +541,15 @@ if (typeof jQuery === 'undefined') {
541541
var Collapse = function (element, options) {
542542
this.$element = $(element)
543543
this.options = $.extend({}, Collapse.DEFAULTS, options)
544+
this.$trigger = $(this.options.trigger).filter('[href="#' + element.id + '"], [data-target="#' + element.id + '"]')
544545
this.transitioning = null
545546

546-
if (this.options.parent) this.$parent = $(this.options.parent)
547+
if (this.options.parent) {
548+
this.$parent = this.getParent()
549+
} else {
550+
this.addAriaAndCollapsedClass(this.$element, this.$trigger)
551+
}
552+
547553
if (this.options.toggle) this.toggle()
548554
}
549555

@@ -552,7 +558,8 @@ if (typeof jQuery === 'undefined') {
552558
Collapse.TRANSITION_DURATION = 350
553559

554560
Collapse.DEFAULTS = {
555-
toggle: true
561+
toggle: true,
562+
trigger: '[data-toggle="collapse"]'
556563
}
557564

558565
Collapse.prototype.dimension = function () {
@@ -587,6 +594,10 @@ if (typeof jQuery === 'undefined') {
587594
.addClass('collapsing')[dimension](0)
588595
.attr('aria-expanded', true)
589596

597+
this.$trigger
598+
.removeClass('collapsed')
599+
.attr('aria-expanded', true)
600+
590601
this.transitioning = 1
591602

592603
var complete = function () {
@@ -623,6 +634,10 @@ if (typeof jQuery === 'undefined') {
623634
.removeClass('collapse in')
624635
.attr('aria-expanded', false)
625636

637+
this.$trigger
638+
.addClass('collapsed')
639+
.attr('aria-expanded', false)
640+
626641
this.transitioning = 1
627642

628643
var complete = function () {
@@ -645,6 +660,33 @@ if (typeof jQuery === 'undefined') {
645660
this[this.$element.hasClass('in') ? 'hide' : 'show']()
646661
}
647662

663+
Collapse.prototype.getParent = function () {
664+
return $(this.options.parent)
665+
.find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]')
666+
.each($.proxy(function (i, element) {
667+
var $element = $(element)
668+
this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)
669+
}, this))
670+
.end()
671+
}
672+
673+
Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {
674+
var isOpen = $element.hasClass('in')
675+
676+
$element.attr('aria-expanded', isOpen)
677+
$trigger
678+
.toggleClass('collapsed', !isOpen)
679+
.attr('aria-expanded', isOpen)
680+
}
681+
682+
function getTargetFromTrigger($trigger) {
683+
var href
684+
var target = $trigger.attr('data-target')
685+
|| (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
686+
687+
return $(target)
688+
}
689+
648690

649691
// COLLAPSE PLUGIN DEFINITION
650692
// ==========================
@@ -680,22 +722,13 @@ if (typeof jQuery === 'undefined') {
680722
// =================
681723

682724
$(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) {
683-
var href
684725
var $this = $(this)
685-
var target = $this.attr('data-target')
686-
|| e.preventDefault()
687-
|| (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
688-
var $target = $(target)
726+
727+
if (!$this.attr('data-target')) e.preventDefault()
728+
729+
var $target = getTargetFromTrigger($this)
689730
var data = $target.data('bs.collapse')
690-
var option = data ? 'toggle' : $this.data()
691-
var parent = $this.attr('data-parent')
692-
var $parent = parent && $(parent)
693-
694-
if (!data || !data.transitioning) {
695-
if ($parent) $parent.find('[data-toggle="collapse"][data-parent="' + parent + '"]').not($this).addClass('collapsed').attr('aria-expanded', false)
696-
var isCollapsed = $target.hasClass('in')
697-
$this.toggleClass('collapsed', isCollapsed).attr('aria-expanded', !isCollapsed)
698-
}
731+
var option = data ? 'toggle' : $.extend({}, $this.data(), { trigger: this })
699732

700733
Plugin.call($target, option)
701734
})

dist/js/bootstrap.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/assets/js/customize.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/assets/js/raw-files.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/dist/js/bootstrap.js

Lines changed: 49 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -541,9 +541,15 @@ if (typeof jQuery === 'undefined') {
541541
var Collapse = function (element, options) {
542542
this.$element = $(element)
543543
this.options = $.extend({}, Collapse.DEFAULTS, options)
544+
this.$trigger = $(this.options.trigger).filter('[href="#' + element.id + '"], [data-target="#' + element.id + '"]')
544545
this.transitioning = null
545546

546-
if (this.options.parent) this.$parent = $(this.options.parent)
547+
if (this.options.parent) {
548+
this.$parent = this.getParent()
549+
} else {
550+
this.addAriaAndCollapsedClass(this.$element, this.$trigger)
551+
}
552+
547553
if (this.options.toggle) this.toggle()
548554
}
549555

@@ -552,7 +558,8 @@ if (typeof jQuery === 'undefined') {
552558
Collapse.TRANSITION_DURATION = 350
553559

554560
Collapse.DEFAULTS = {
555-
toggle: true
561+
toggle: true,
562+
trigger: '[data-toggle="collapse"]'
556563
}
557564

558565
Collapse.prototype.dimension = function () {
@@ -587,6 +594,10 @@ if (typeof jQuery === 'undefined') {
587594
.addClass('collapsing')[dimension](0)
588595
.attr('aria-expanded', true)
589596

597+
this.$trigger
598+
.removeClass('collapsed')
599+
.attr('aria-expanded', true)
600+
590601
this.transitioning = 1
591602

592603
var complete = function () {
@@ -623,6 +634,10 @@ if (typeof jQuery === 'undefined') {
623634
.removeClass('collapse in')
624635
.attr('aria-expanded', false)
625636

637+
this.$trigger
638+
.addClass('collapsed')
639+
.attr('aria-expanded', false)
640+
626641
this.transitioning = 1
627642

628643
var complete = function () {
@@ -645,6 +660,33 @@ if (typeof jQuery === 'undefined') {
645660
this[this.$element.hasClass('in') ? 'hide' : 'show']()
646661
}
647662

663+
Collapse.prototype.getParent = function () {
664+
return $(this.options.parent)
665+
.find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]')
666+
.each($.proxy(function (i, element) {
667+
var $element = $(element)
668+
this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)
669+
}, this))
670+
.end()
671+
}
672+
673+
Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {
674+
var isOpen = $element.hasClass('in')
675+
676+
$element.attr('aria-expanded', isOpen)
677+
$trigger
678+
.toggleClass('collapsed', !isOpen)
679+
.attr('aria-expanded', isOpen)
680+
}
681+
682+
function getTargetFromTrigger($trigger) {
683+
var href
684+
var target = $trigger.attr('data-target')
685+
|| (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
686+
687+
return $(target)
688+
}
689+
648690

649691
// COLLAPSE PLUGIN DEFINITION
650692
// ==========================
@@ -680,22 +722,13 @@ if (typeof jQuery === 'undefined') {
680722
// =================
681723

682724
$(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) {
683-
var href
684725
var $this = $(this)
685-
var target = $this.attr('data-target')
686-
|| e.preventDefault()
687-
|| (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
688-
var $target = $(target)
726+
727+
if (!$this.attr('data-target')) e.preventDefault()
728+
729+
var $target = getTargetFromTrigger($this)
689730
var data = $target.data('bs.collapse')
690-
var option = data ? 'toggle' : $this.data()
691-
var parent = $this.attr('data-parent')
692-
var $parent = parent && $(parent)
693-
694-
if (!data || !data.transitioning) {
695-
if ($parent) $parent.find('[data-toggle="collapse"][data-parent="' + parent + '"]').not($this).addClass('collapsed').attr('aria-expanded', false)
696-
var isCollapsed = $target.hasClass('in')
697-
$this.toggleClass('collapsed', isCollapsed).attr('aria-expanded', !isCollapsed)
698-
}
731+
var option = data ? 'toggle' : $.extend({}, $this.data(), { trigger: this })
699732

700733
Plugin.call($target, option)
701734
})

docs/dist/js/bootstrap.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)