From e506e59c45d53d9d811d16d49e53c26e49180c67 Mon Sep 17 00:00:00 2001 From: Mark Otto Date: Sun, 19 Mar 2017 19:03:32 -0700 Subject: grunt --- js/dist/collapse.js | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'js/dist/collapse.js') diff --git a/js/dist/collapse.js b/js/dist/collapse.js index dcf368128..670f9ad28 100644 --- a/js/dist/collapse.js +++ b/js/dist/collapse.js @@ -59,7 +59,8 @@ var Collapse = function ($) { var Selector = { ACTIVES: '.card > .show, .card > .collapsing', - DATA_TOGGLE: '[data-toggle="collapse"]' + DATA_TOGGLE: '[data-toggle="collapse"]', + DATA_CHILDREN: 'data-children' }; /** @@ -76,13 +77,20 @@ var Collapse = function ($) { this._element = element; this._config = this._getConfig(config); this._triggerArray = $.makeArray($('[data-toggle="collapse"][href="#' + element.id + '"],' + ('[data-toggle="collapse"][data-target="#' + element.id + '"]'))); - this._parent = this._config.parent ? this._getParent() : null; if (!this._config.parent) { this._addAriaAndCollapsedClass(this._element, this._triggerArray); } + this._selectorActives = Selector.ACTIVES; + if (this._parent) { + var childrenSelector = this._parent.hasAttribute(Selector.DATA_CHILDREN) ? this._parent.getAttribute(Selector.DATA_CHILDREN) : null; + if (childrenSelector !== null) { + this._selectorActives = childrenSelector + ' > .show, ' + childrenSelector + ' > .collapsing'; + } + } + if (this._config.toggle) { this.toggle(); } @@ -115,7 +123,7 @@ var Collapse = function ($) { var activesData = void 0; if (this._parent) { - actives = $.makeArray($(this._parent).find(Selector.ACTIVES)); + actives = $.makeArray($(this._parent).find(this._selectorActives)); if (!actives.length) { actives = null; } @@ -195,9 +203,8 @@ var Collapse = function ($) { } var dimension = this._getDimension(); - var offsetDimension = dimension === Dimension.WIDTH ? 'offsetWidth' : 'offsetHeight'; - this._element.style[dimension] = this._element[offsetDimension] + 'px'; + this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + 'px'; Util.reflow(this._element); -- cgit v1.2.3 From 7742ba6dc9ed7c630b9786667df0a90eb9ae3948 Mon Sep 17 00:00:00 2001 From: Mark Otto Date: Mon, 27 Mar 2017 22:56:14 -0700 Subject: grunt --- js/dist/collapse.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'js/dist/collapse.js') diff --git a/js/dist/collapse.js b/js/dist/collapse.js index 670f9ad28..9826e2d52 100644 --- a/js/dist/collapse.js +++ b/js/dist/collapse.js @@ -338,7 +338,9 @@ var Collapse = function ($) { */ $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { - event.preventDefault(); + if (/input|textarea/i.test(event.target.tagName)) { + event.preventDefault(); + } var target = Collapse._getTargetFromElement(this); var data = $(target).data(DATA_KEY); -- cgit v1.2.3 From 49b6cf845d3d3bf49197a529548489f9a1a76709 Mon Sep 17 00:00:00 2001 From: Mark Otto Date: Sat, 1 Apr 2017 19:18:29 -0700 Subject: grunt --- js/dist/collapse.js | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) (limited to 'js/dist/collapse.js') diff --git a/js/dist/collapse.js b/js/dist/collapse.js index 9826e2d52..6e570b890 100644 --- a/js/dist/collapse.js +++ b/js/dist/collapse.js @@ -111,11 +111,7 @@ var Collapse = function ($) { Collapse.prototype.show = function show() { var _this = this; - if (this._isTransitioning) { - throw new Error('Collapse is transitioning'); - } - - if ($(this._element).hasClass(ClassName.SHOW)) { + if (this._isTransitioning || $(this._element).hasClass(ClassName.SHOW)) { return; } @@ -188,11 +184,7 @@ var Collapse = function ($) { Collapse.prototype.hide = function hide() { var _this2 = this; - if (this._isTransitioning) { - throw new Error('Collapse is transitioning'); - } - - if (!$(this._element).hasClass(ClassName.SHOW)) { + if (this._isTransitioning || !$(this._element).hasClass(ClassName.SHOW)) { return; } @@ -338,7 +330,7 @@ var Collapse = function ($) { */ $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { - if (/input|textarea/i.test(event.target.tagName)) { + if (!/input|textarea/i.test(event.target.tagName)) { event.preventDefault(); } -- cgit v1.2.3