From 9bc7de93950444eee1e4cae8b5a029bcb4907640 Mon Sep 17 00:00:00 2001 From: Johann-S Date: Mon, 11 Jan 2016 20:42:35 +0100 Subject: Fix bug multiple accordions collapse --- js/src/collapse.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'js/src/collapse.js') diff --git a/js/src/collapse.js b/js/src/collapse.js index 560ab2cbd..b784b82b6 100644 --- a/js/src/collapse.js +++ b/js/src/collapse.js @@ -121,7 +121,7 @@ const Collapse = (($) => { let activesData if (this._parent) { - actives = $.makeArray($(Selector.ACTIVES)) + actives = $.makeArray($(this._parent).find(Selector.ACTIVES)) if (!actives.length) { actives = null } -- cgit v1.2.3 From 8ff7edaab4f55b6612df3fe670aa9b9ac0984eae Mon Sep 17 00:00:00 2001 From: Mark Otto Date: Wed, 19 Oct 2016 08:27:41 -0700 Subject: version bump to alpha 5 --- js/src/collapse.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'js/src/collapse.js') diff --git a/js/src/collapse.js b/js/src/collapse.js index 560ab2cbd..1e2d4a63e 100644 --- a/js/src/collapse.js +++ b/js/src/collapse.js @@ -3,7 +3,7 @@ import Util from './util' /** * -------------------------------------------------------------------------- - * Bootstrap (v4.0.0-alpha.4): collapse.js + * Bootstrap (v4.0.0-alpha.5): collapse.js * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * -------------------------------------------------------------------------- */ @@ -18,7 +18,7 @@ const Collapse = (($) => { */ const NAME = 'collapse' - const VERSION = '4.0.0-alpha.4' + const VERSION = '4.0.0-alpha.5' const DATA_KEY = 'bs.collapse' const EVENT_KEY = `.${DATA_KEY}` const DATA_API_KEY = '.data-api' -- cgit v1.2.3 From 9d129a43d6c24d9e60cc8fc7cfbddaaa4c586fdf Mon Sep 17 00:00:00 2001 From: Johann-S Date: Mon, 24 Oct 2016 10:57:32 +0200 Subject: Use a single class name for opened/expanded/shown state of widgets --- js/src/collapse.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'js/src/collapse.js') diff --git a/js/src/collapse.js b/js/src/collapse.js index 782d82a2f..f700979e0 100644 --- a/js/src/collapse.js +++ b/js/src/collapse.js @@ -44,7 +44,7 @@ const Collapse = (($) => { } const ClassName = { - IN : 'in', + ACTIVE : 'active', COLLAPSE : 'collapse', COLLAPSING : 'collapsing', COLLAPSED : 'collapsed' @@ -56,7 +56,7 @@ const Collapse = (($) => { } const Selector = { - ACTIVES : '.card > .in, .card > .collapsing', + ACTIVES : '.card > .active, .card > .collapsing', DATA_TOGGLE : '[data-toggle="collapse"]' } @@ -104,7 +104,7 @@ const Collapse = (($) => { // public toggle() { - if ($(this._element).hasClass(ClassName.IN)) { + if ($(this._element).hasClass(ClassName.ACTIVE)) { this.hide() } else { this.show() @@ -113,7 +113,7 @@ const Collapse = (($) => { show() { if (this._isTransitioning || - $(this._element).hasClass(ClassName.IN)) { + $(this._element).hasClass(ClassName.ACTIVE)) { return } @@ -168,7 +168,7 @@ const Collapse = (($) => { $(this._element) .removeClass(ClassName.COLLAPSING) .addClass(ClassName.COLLAPSE) - .addClass(ClassName.IN) + .addClass(ClassName.ACTIVE) this._element.style[dimension] = '' @@ -194,7 +194,7 @@ const Collapse = (($) => { hide() { if (this._isTransitioning || - !$(this._element).hasClass(ClassName.IN)) { + !$(this._element).hasClass(ClassName.ACTIVE)) { return } @@ -215,7 +215,7 @@ const Collapse = (($) => { $(this._element) .addClass(ClassName.COLLAPSING) .removeClass(ClassName.COLLAPSE) - .removeClass(ClassName.IN) + .removeClass(ClassName.ACTIVE) this._element.setAttribute('aria-expanded', false) @@ -293,7 +293,7 @@ const Collapse = (($) => { _addAriaAndCollapsedClass(element, triggerArray) { if (element) { - let isOpen = $(element).hasClass(ClassName.IN) + let isOpen = $(element).hasClass(ClassName.ACTIVE) element.setAttribute('aria-expanded', isOpen) if (triggerArray.length) { -- cgit v1.2.3 From c2616fb74e6bdc0cd46a5678a2c5cffcbe422106 Mon Sep 17 00:00:00 2001 From: Bardi Harborow Date: Tue, 22 Nov 2016 01:36:00 +1100 Subject: Make JS compliant with the new ESLint rules. --- js/src/collapse.js | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) (limited to 'js/src/collapse.js') diff --git a/js/src/collapse.js b/js/src/collapse.js index f700979e0..ebc3e24cf 100644 --- a/js/src/collapse.js +++ b/js/src/collapse.js @@ -134,7 +134,7 @@ const Collapse = (($) => { } } - let startEvent = $.Event(Event.SHOW) + const startEvent = $.Event(Event.SHOW) $(this._element).trigger(startEvent) if (startEvent.isDefaultPrevented()) { return @@ -147,7 +147,7 @@ const Collapse = (($) => { } } - let dimension = this._getDimension() + const dimension = this._getDimension() $(this._element) .removeClass(ClassName.COLLAPSE) @@ -164,7 +164,7 @@ const Collapse = (($) => { this.setTransitioning(true) - let complete = () => { + const complete = () => { $(this._element) .removeClass(ClassName.COLLAPSING) .addClass(ClassName.COLLAPSE) @@ -182,8 +182,8 @@ const Collapse = (($) => { return } - let capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1) - let scrollSize = `scroll${capitalizedDimension}` + const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1) + const scrollSize = `scroll${capitalizedDimension}` $(this._element) .one(Util.TRANSITION_END, complete) @@ -198,14 +198,14 @@ const Collapse = (($) => { return } - let startEvent = $.Event(Event.HIDE) + const startEvent = $.Event(Event.HIDE) $(this._element).trigger(startEvent) if (startEvent.isDefaultPrevented()) { return } - let dimension = this._getDimension() - let offsetDimension = dimension === Dimension.WIDTH ? + const dimension = this._getDimension() + const offsetDimension = dimension === Dimension.WIDTH ? 'offsetWidth' : 'offsetHeight' this._element.style[dimension] = `${this._element[offsetDimension]}px` @@ -227,7 +227,7 @@ const Collapse = (($) => { this.setTransitioning(true) - let complete = () => { + const complete = () => { this.setTransitioning(false) $(this._element) .removeClass(ClassName.COLLAPSING) @@ -272,13 +272,13 @@ const Collapse = (($) => { } _getDimension() { - let hasWidth = $(this._element).hasClass(Dimension.WIDTH) + const hasWidth = $(this._element).hasClass(Dimension.WIDTH) return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT } _getParent() { - let parent = $(this._config.parent)[0] - let selector = + const parent = $(this._config.parent)[0] + const selector = `[data-toggle="collapse"][data-parent="${this._config.parent}"]` $(parent).find(selector).each((i, element) => { @@ -293,7 +293,7 @@ const Collapse = (($) => { _addAriaAndCollapsedClass(element, triggerArray) { if (element) { - let isOpen = $(element).hasClass(ClassName.ACTIVE) + const isOpen = $(element).hasClass(ClassName.ACTIVE) element.setAttribute('aria-expanded', isOpen) if (triggerArray.length) { @@ -308,15 +308,15 @@ const Collapse = (($) => { // static static _getTargetFromElement(element) { - let selector = Util.getSelectorFromElement(element) + const selector = Util.getSelectorFromElement(element) return selector ? $(selector)[0] : null } static _jQueryInterface(config) { return this.each(function () { - let $this = $(this) - let data = $this.data(DATA_KEY) - let _config = $.extend( + const $this = $(this) + let data = $this.data(DATA_KEY) + const _config = $.extend( {}, Default, $this.data(), @@ -353,9 +353,9 @@ const Collapse = (($) => { $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { event.preventDefault() - let target = Collapse._getTargetFromElement(this) - let data = $(target).data(DATA_KEY) - let config = data ? 'toggle' : $(this).data() + const target = Collapse._getTargetFromElement(this) + const data = $(target).data(DATA_KEY) + const config = data ? 'toggle' : $(this).data() Collapse._jQueryInterface.call($(target), config) }) -- cgit v1.2.3 From 297c47c3fdbb58e3d9824afdee83ef3c4b9d141a Mon Sep 17 00:00:00 2001 From: Johann Date: Fri, 2 Dec 2016 18:52:19 +0100 Subject: [V4] Throw error when a plugin is in transition (#17823) * Throw error when a plugin is in transition * Add unit tests about plugins in transition --- js/src/collapse.js | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'js/src/collapse.js') diff --git a/js/src/collapse.js b/js/src/collapse.js index ebc3e24cf..1e4730ff7 100644 --- a/js/src/collapse.js +++ b/js/src/collapse.js @@ -112,8 +112,11 @@ const Collapse = (($) => { } show() { - if (this._isTransitioning || - $(this._element).hasClass(ClassName.ACTIVE)) { + if (this._isTransitioning) { + throw new Error('Collapse is transitioning') + } + + if ($(this._element).hasClass(ClassName.ACTIVE)) { return } @@ -193,8 +196,11 @@ const Collapse = (($) => { } hide() { - if (this._isTransitioning || - !$(this._element).hasClass(ClassName.ACTIVE)) { + if (this._isTransitioning) { + throw new Error('Collapse is transitioning') + } + + if (!$(this._element).hasClass(ClassName.ACTIVE)) { return } -- cgit v1.2.3 From bf39bb3ac3d2aef4687b3cd4762015d5f218e2bc Mon Sep 17 00:00:00 2001 From: Starsam80 Date: Thu, 27 Oct 2016 16:13:17 -0600 Subject: Rename `.active` to `.show` --- js/src/collapse.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'js/src/collapse.js') diff --git a/js/src/collapse.js b/js/src/collapse.js index 1e4730ff7..ad8815993 100644 --- a/js/src/collapse.js +++ b/js/src/collapse.js @@ -44,7 +44,7 @@ const Collapse = (($) => { } const ClassName = { - ACTIVE : 'active', + SHOW : 'show', COLLAPSE : 'collapse', COLLAPSING : 'collapsing', COLLAPSED : 'collapsed' @@ -56,7 +56,7 @@ const Collapse = (($) => { } const Selector = { - ACTIVES : '.card > .active, .card > .collapsing', + ACTIVES : '.card > .show, .card > .collapsing', DATA_TOGGLE : '[data-toggle="collapse"]' } @@ -104,7 +104,7 @@ const Collapse = (($) => { // public toggle() { - if ($(this._element).hasClass(ClassName.ACTIVE)) { + if ($(this._element).hasClass(ClassName.SHOW)) { this.hide() } else { this.show() @@ -116,7 +116,7 @@ const Collapse = (($) => { throw new Error('Collapse is transitioning') } - if ($(this._element).hasClass(ClassName.ACTIVE)) { + if ($(this._element).hasClass(ClassName.SHOW)) { return } @@ -171,7 +171,7 @@ const Collapse = (($) => { $(this._element) .removeClass(ClassName.COLLAPSING) .addClass(ClassName.COLLAPSE) - .addClass(ClassName.ACTIVE) + .addClass(ClassName.SHOW) this._element.style[dimension] = '' @@ -200,7 +200,7 @@ const Collapse = (($) => { throw new Error('Collapse is transitioning') } - if (!$(this._element).hasClass(ClassName.ACTIVE)) { + if (!$(this._element).hasClass(ClassName.SHOW)) { return } @@ -221,7 +221,7 @@ const Collapse = (($) => { $(this._element) .addClass(ClassName.COLLAPSING) .removeClass(ClassName.COLLAPSE) - .removeClass(ClassName.ACTIVE) + .removeClass(ClassName.SHOW) this._element.setAttribute('aria-expanded', false) @@ -299,7 +299,7 @@ const Collapse = (($) => { _addAriaAndCollapsedClass(element, triggerArray) { if (element) { - const isOpen = $(element).hasClass(ClassName.ACTIVE) + const isOpen = $(element).hasClass(ClassName.SHOW) element.setAttribute('aria-expanded', isOpen) if (triggerArray.length) { -- cgit v1.2.3