Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/twbs/bootstrap.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/js/dist
diff options
context:
space:
mode:
authorMark Otto <markdotto@gmail.com>2017-04-08 23:22:53 +0300
committerMark Otto <markdotto@gmail.com>2017-04-08 23:22:53 +0300
commit364e01885fadeb341e1000d6f50291e5a5ada199 (patch)
tree160bdf7e792e19ac451690e0e63a1e3a673ec45c /js/dist
parentf7881336e508f6f4fcfb279eb8a8f26509a05b67 (diff)
grunt
Diffstat (limited to 'js/dist')
-rw-r--r--js/dist/modal.js58
-rw-r--r--js/dist/modal.js.map2
-rw-r--r--js/dist/scrollspy.js17
-rw-r--r--js/dist/scrollspy.js.map2
-rw-r--r--js/dist/tab.js20
-rw-r--r--js/dist/tab.js.map2
6 files changed, 64 insertions, 37 deletions
diff --git a/js/dist/modal.js b/js/dist/modal.js
index 9185ae7f2c..9c661e7e2c 100644
--- a/js/dist/modal.js
+++ b/js/dist/modal.js
@@ -69,7 +69,8 @@ var Modal = function ($) {
DIALOG: '.modal-dialog',
DATA_TOGGLE: '[data-toggle="modal"]',
DATA_DISMISS: '[data-dismiss="modal"]',
- FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'
+ FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
+ NAVBAR_TOGGLER: '.navbar-toggler'
};
/**
@@ -208,7 +209,6 @@ var Modal = function ($) {
this._isShown = null;
this._isBodyOverflowing = null;
this._ignoreBackdropClick = null;
- this._originalBodyPadding = null;
this._scrollbarWidth = null;
};
@@ -421,17 +421,55 @@ var Modal = function ($) {
};
Modal.prototype._setScrollbar = function _setScrollbar() {
- var bodyPadding = parseInt($(Selector.FIXED_CONTENT).css('padding-right') || 0, 10);
-
- this._originalBodyPadding = document.body.style.paddingRight || '';
+ var _this9 = this;
if (this._isBodyOverflowing) {
- document.body.style.paddingRight = bodyPadding + this._scrollbarWidth + 'px';
+ // Note: DOMNode.style.paddingRight returns the actual value or '' if not set
+ // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
+
+ // Adjust fixed content padding
+ $(Selector.FIXED_CONTENT).each(function (index, element) {
+ var actualPadding = $(element)[0].style.paddingRight;
+ var calculatedPadding = $(element).css('padding-right');
+ $(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this9._scrollbarWidth + 'px');
+ });
+
+ // Adjust navbar-toggler margin
+ $(Selector.NAVBAR_TOGGLER).each(function (index, element) {
+ var actualMargin = $(element)[0].style.marginRight;
+ var calculatedMargin = $(element).css('margin-right');
+ $(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) + _this9._scrollbarWidth + 'px');
+ });
+
+ // Adjust body padding
+ var actualPadding = document.body.style.paddingRight;
+ var calculatedPadding = $('body').css('padding-right');
+ $('body').data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + 'px');
}
};
Modal.prototype._resetScrollbar = function _resetScrollbar() {
- document.body.style.paddingRight = this._originalBodyPadding;
+ // Restore fixed content padding
+ $(Selector.FIXED_CONTENT).each(function (index, element) {
+ var padding = $(element).data('padding-right');
+ if (typeof padding !== 'undefined') {
+ $(element).css('padding-right', padding).removeData('padding-right');
+ }
+ });
+
+ // Restore navbar-toggler margin
+ $(Selector.NAVBAR_TOGGLER).each(function (index, element) {
+ var margin = $(element).data('margin-right');
+ if (typeof margin !== 'undefined') {
+ $(element).css('margin-right', margin).removeData('margin-right');
+ }
+ });
+
+ // Restore body padding
+ var padding = $('body').data('padding-right');
+ if (typeof padding !== 'undefined') {
+ $('body').css('padding-right', padding).removeData('padding-right');
+ }
};
Modal.prototype._getScrollbarWidth = function _getScrollbarWidth() {
@@ -489,7 +527,7 @@ var Modal = function ($) {
*/
$(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
- var _this9 = this;
+ var _this10 = this;
var target = void 0;
var selector = Util.getSelectorFromElement(this);
@@ -511,8 +549,8 @@ var Modal = function ($) {
}
$target.one(Event.HIDDEN, function () {
- if ($(_this9).is(':visible')) {
- _this9.focus();
+ if ($(_this10).is(':visible')) {
+ _this10.focus();
}
});
});
diff --git a/js/dist/modal.js.map b/js/dist/modal.js.map
index 502fc31a72..054b33c224 100644
--- a/js/dist/modal.js.map
+++ b/js/dist/modal.js.map
@@ -1 +1 @@
-{"version":3,"sources":["../src/modal.js"],"names":["Modal","$","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","fn","TRANSITION_DURATION","BACKDROP_TRANSITION_DURATION","ESCAPE_KEYCODE","Default","backdrop","keyboard","focus","show","DefaultType","Event","HIDE","HIDDEN","SHOW","SHOWN","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","CLICK_DATA_API","ClassName","SCROLLBAR_MEASURER","BACKDROP","OPEN","FADE","Selector","DIALOG","DATA_TOGGLE","DATA_DISMISS","FIXED_CONTENT","element","config","_config","_getConfig","_element","_dialog","find","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_originalBodyPadding","_scrollbarWidth","toggle","relatedTarget","hide","_isTransitioning","Util","supportsTransitionEnd","hasClass","showEvent","trigger","isDefaultPrevented","_checkScrollbar","_setScrollbar","document","body","addClass","_setEscapeEvent","_setResizeEvent","on","event","one","target","is","_showBackdrop","_showElement","preventDefault","transition","hideEvent","off","removeClass","TRANSITION_END","_hideModal","emulateTransitionEnd","dispose","removeData","window","handleUpdate","_adjustDialog","extend","typeCheckConfig","parentNode","nodeType","Node","ELEMENT_NODE","appendChild","style","display","removeAttribute","scrollTop","reflow","_enforceFocus","shownEvent","transitionComplete","has","length","which","setAttribute","_resetAdjustments","_resetScrollbar","_removeBackdrop","remove","callback","animate","doAnimate","createElement","className","appendTo","currentTarget","callbackRemove","isModalOverflowing","scrollHeight","documentElement","clientHeight","paddingLeft","paddingRight","clientWidth","innerWidth","_getScrollbarWidth","bodyPadding","parseInt","css","scrollDiv","scrollbarWidth","getBoundingClientRect","width","removeChild","_jQueryInterface","each","data","undefined","Error","selector","getSelectorFromElement","tagName","$target","call","Constructor","noConflict","jQuery"],"mappings":"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","file":"modal.js","sourcesContent":["import Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.6): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Modal = (($) => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'modal'\n const VERSION = '4.0.0-alpha.6'\n const DATA_KEY = 'bs.modal'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 300\n const BACKDROP_TRANSITION_DURATION = 150\n const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\n const Default = {\n backdrop : true,\n keyboard : true,\n focus : true,\n show : true\n }\n\n const DefaultType = {\n backdrop : '(boolean|string)',\n keyboard : 'boolean',\n focus : 'boolean',\n show : 'boolean'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n RESIZE : `resize${EVENT_KEY}`,\n CLICK_DISMISS : `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS : `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS : `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n SCROLLBAR_MEASURER : 'modal-scrollbar-measure',\n BACKDROP : 'modal-backdrop',\n OPEN : 'modal-open',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n DIALOG : '.modal-dialog',\n DATA_TOGGLE : '[data-toggle=\"modal\"]',\n DATA_DISMISS : '[data-dismiss=\"modal\"]',\n FIXED_CONTENT : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Modal {\n\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = $(element).find(Selector.DIALOG)[0]\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._originalBodyPadding = 0\n this._scrollbarWidth = 0\n }\n\n\n // getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n\n // public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isTransitioning) {\n return\n }\n\n if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n $(document.body).addClass(ClassName.OPEN)\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(this._element).on(\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n (event) => this.hide(event)\n )\n\n $(this._dialog).on(Event.MOUSEDOWN_DISMISS, () => {\n $(this._element).one(Event.MOUSEUP_DISMISS, (event) => {\n if ($(event.target).is(this._element)) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (this._isTransitioning || !this._isShown) {\n return\n }\n\n const transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n const hideEvent = $.Event(Event.HIDE)\n\n $(this._element).trigger(hideEvent)\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = false\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(document).off(Event.FOCUSIN)\n\n $(this._element).removeClass(ClassName.SHOW)\n\n $(this._element).off(Event.CLICK_DISMISS)\n $(this._dialog).off(Event.MOUSEDOWN_DISMISS)\n\n if (transition) {\n\n $(this._element)\n .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n .emulateTransitionEnd(TRANSITION_DURATION)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n $(window, document, this._element, this._backdrop).off(EVENT_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._originalBodyPadding = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // private\n\n _getConfig(config) {\n config = $.extend({}, Default, config)\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = Util.supportsTransitionEnd() &&\n $(this._element).hasClass(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // don't move modals dom position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.scrollTop = 0\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget\n })\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n this._isTransitioning = false\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(Event.FOCUSIN) // guard against infinite focus loop\n .on(Event.FOCUSIN, (event) => {\n if (document !== event.target &&\n this._element !== event.target &&\n !$(this._element).has(event.target).length) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n if (event.which === ESCAPE_KEYCODE) {\n this.hide()\n }\n })\n\n } else if (!this._isShown) {\n $(this._element).off(Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(Event.RESIZE, (event) => this.handleUpdate(event))\n } else {\n $(window).off(Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._isTransitioning = false\n this._showBackdrop(() => {\n $(document.body).removeClass(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n $(this._element).trigger(Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove()\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(ClassName.FADE) ?\n ClassName.FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n const doAnimate = Util.supportsTransitionEnd() && animate\n\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n $(this._backdrop).addClass(animate)\n }\n\n $(this._backdrop).appendTo(document.body)\n\n $(this._element).on(Event.CLICK_DISMISS, (event) => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n if (event.target !== event.currentTarget) {\n return\n }\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (doAnimate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!doAnimate) {\n callback()\n return\n }\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)\n\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if (Util.supportsTransitionEnd() &&\n $(this._element).hasClass(ClassName.FADE)) {\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)\n } else {\n callbackRemove()\n }\n\n } else if (callback) {\n callback()\n }\n }\n\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n this._isBodyOverflowing = document.body.clientWidth < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n const bodyPadding = parseInt(\n $(Selector.FIXED_CONTENT).css('padding-right') || 0,\n 10\n )\n\n this._originalBodyPadding = document.body.style.paddingRight || ''\n\n if (this._isBodyOverflowing) {\n document.body.style.paddingRight =\n `${bodyPadding + this._scrollbarWidth}px`\n }\n }\n\n _resetScrollbar() {\n document.body.style.paddingRight = this._originalBodyPadding\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n\n // static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = $.extend(\n {},\n Modal.Default,\n $(this).data(),\n typeof config === 'object' && config\n )\n\n if (!data) {\n data = new Modal(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (data[config] === undefined) {\n throw new Error(`No method named \"${config}\"`)\n }\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = Util.getSelectorFromElement(this)\n\n if (selector) {\n target = $(selector)[0]\n }\n\n const config = $(target).data(DATA_KEY) ?\n 'toggle' : $.extend({}, $(target).data(), $(this).data())\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n const $target = $(target).one(Event.SHOW, (showEvent) => {\n if (showEvent.isDefaultPrevented()) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n $target.one(Event.HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus()\n }\n })\n })\n\n Modal._jQueryInterface.call($(target), config, this)\n })\n\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n\n return Modal\n\n})(jQuery)\n\nexport default Modal\n"]} \ No newline at end of file
+{"version":3,"sources":["../src/modal.js"],"names":["Modal","$","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","fn","TRANSITION_DURATION","BACKDROP_TRANSITION_DURATION","ESCAPE_KEYCODE","Default","backdrop","keyboard","focus","show","DefaultType","Event","HIDE","HIDDEN","SHOW","SHOWN","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","CLICK_DATA_API","ClassName","SCROLLBAR_MEASURER","BACKDROP","OPEN","FADE","Selector","DIALOG","DATA_TOGGLE","DATA_DISMISS","FIXED_CONTENT","NAVBAR_TOGGLER","element","config","_config","_getConfig","_element","_dialog","find","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_originalBodyPadding","_scrollbarWidth","toggle","relatedTarget","hide","_isTransitioning","Util","supportsTransitionEnd","hasClass","showEvent","trigger","isDefaultPrevented","_checkScrollbar","_setScrollbar","document","body","addClass","_setEscapeEvent","_setResizeEvent","on","event","one","target","is","_showBackdrop","_showElement","preventDefault","transition","hideEvent","off","removeClass","TRANSITION_END","_hideModal","emulateTransitionEnd","dispose","removeData","window","handleUpdate","_adjustDialog","extend","typeCheckConfig","parentNode","nodeType","Node","ELEMENT_NODE","appendChild","style","display","removeAttribute","scrollTop","reflow","_enforceFocus","shownEvent","transitionComplete","has","length","which","setAttribute","_resetAdjustments","_resetScrollbar","_removeBackdrop","remove","callback","animate","doAnimate","createElement","className","appendTo","currentTarget","callbackRemove","isModalOverflowing","scrollHeight","documentElement","clientHeight","paddingLeft","paddingRight","clientWidth","innerWidth","_getScrollbarWidth","each","index","actualPadding","calculatedPadding","css","data","parseFloat","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","getBoundingClientRect","width","removeChild","_jQueryInterface","undefined","Error","selector","getSelectorFromElement","tagName","$target","call","Constructor","noConflict","jQuery"],"mappings":"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","file":"modal.js","sourcesContent":["import Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.6): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Modal = (($) => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'modal'\n const VERSION = '4.0.0-alpha.6'\n const DATA_KEY = 'bs.modal'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 300\n const BACKDROP_TRANSITION_DURATION = 150\n const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\n const Default = {\n backdrop : true,\n keyboard : true,\n focus : true,\n show : true\n }\n\n const DefaultType = {\n backdrop : '(boolean|string)',\n keyboard : 'boolean',\n focus : 'boolean',\n show : 'boolean'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n RESIZE : `resize${EVENT_KEY}`,\n CLICK_DISMISS : `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS : `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS : `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n SCROLLBAR_MEASURER : 'modal-scrollbar-measure',\n BACKDROP : 'modal-backdrop',\n OPEN : 'modal-open',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n DIALOG : '.modal-dialog',\n DATA_TOGGLE : '[data-toggle=\"modal\"]',\n DATA_DISMISS : '[data-dismiss=\"modal\"]',\n FIXED_CONTENT : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n NAVBAR_TOGGLER : '.navbar-toggler'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Modal {\n\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = $(element).find(Selector.DIALOG)[0]\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._originalBodyPadding = 0\n this._scrollbarWidth = 0\n }\n\n\n // getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n\n // public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isTransitioning) {\n return\n }\n\n if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n $(document.body).addClass(ClassName.OPEN)\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(this._element).on(\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n (event) => this.hide(event)\n )\n\n $(this._dialog).on(Event.MOUSEDOWN_DISMISS, () => {\n $(this._element).one(Event.MOUSEUP_DISMISS, (event) => {\n if ($(event.target).is(this._element)) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (this._isTransitioning || !this._isShown) {\n return\n }\n\n const transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n const hideEvent = $.Event(Event.HIDE)\n\n $(this._element).trigger(hideEvent)\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = false\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(document).off(Event.FOCUSIN)\n\n $(this._element).removeClass(ClassName.SHOW)\n\n $(this._element).off(Event.CLICK_DISMISS)\n $(this._dialog).off(Event.MOUSEDOWN_DISMISS)\n\n if (transition) {\n\n $(this._element)\n .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n .emulateTransitionEnd(TRANSITION_DURATION)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n $(window, document, this._element, this._backdrop).off(EVENT_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // private\n\n _getConfig(config) {\n config = $.extend({}, Default, config)\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = Util.supportsTransitionEnd() &&\n $(this._element).hasClass(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // don't move modals dom position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.scrollTop = 0\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget\n })\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n this._isTransitioning = false\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(Event.FOCUSIN) // guard against infinite focus loop\n .on(Event.FOCUSIN, (event) => {\n if (document !== event.target &&\n this._element !== event.target &&\n !$(this._element).has(event.target).length) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n if (event.which === ESCAPE_KEYCODE) {\n this.hide()\n }\n })\n\n } else if (!this._isShown) {\n $(this._element).off(Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(Event.RESIZE, (event) => this.handleUpdate(event))\n } else {\n $(window).off(Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._isTransitioning = false\n this._showBackdrop(() => {\n $(document.body).removeClass(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n $(this._element).trigger(Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove()\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(ClassName.FADE) ?\n ClassName.FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n const doAnimate = Util.supportsTransitionEnd() && animate\n\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n $(this._backdrop).addClass(animate)\n }\n\n $(this._backdrop).appendTo(document.body)\n\n $(this._element).on(Event.CLICK_DISMISS, (event) => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n if (event.target !== event.currentTarget) {\n return\n }\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (doAnimate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!doAnimate) {\n callback()\n return\n }\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)\n\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if (Util.supportsTransitionEnd() &&\n $(this._element).hasClass(ClassName.FADE)) {\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)\n } else {\n callbackRemove()\n }\n\n } else if (callback) {\n callback()\n }\n }\n\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n this._isBodyOverflowing = document.body.clientWidth < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n $(Selector.FIXED_CONTENT).each((index, element) => {\n const actualPadding = $(element)[0].style.paddingRight\n const calculatedPadding = $(element).css('padding-right')\n $(element).data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n })\n\n // Adjust navbar-toggler margin\n $(Selector.NAVBAR_TOGGLER).each((index, element) => {\n const actualMargin = $(element)[0].style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) + this._scrollbarWidth}px`)\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = $('body').css('padding-right')\n $('body').data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n }\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n $(Selector.FIXED_CONTENT).each((index, element) => {\n const padding = $(element).data('padding-right')\n if (typeof padding !== 'undefined') {\n $(element).css('padding-right', padding).removeData('padding-right')\n }\n })\n\n // Restore navbar-toggler margin\n $(Selector.NAVBAR_TOGGLER).each((index, element) => {\n const margin = $(element).data('margin-right')\n if (typeof margin !== 'undefined') {\n $(element).css('margin-right', margin).removeData('margin-right')\n }\n })\n\n // Restore body padding\n const padding = $('body').data('padding-right')\n if (typeof padding !== 'undefined') {\n $('body').css('padding-right', padding).removeData('padding-right')\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n\n // static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = $.extend(\n {},\n Modal.Default,\n $(this).data(),\n typeof config === 'object' && config\n )\n\n if (!data) {\n data = new Modal(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (data[config] === undefined) {\n throw new Error(`No method named \"${config}\"`)\n }\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = Util.getSelectorFromElement(this)\n\n if (selector) {\n target = $(selector)[0]\n }\n\n const config = $(target).data(DATA_KEY) ?\n 'toggle' : $.extend({}, $(target).data(), $(this).data())\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n const $target = $(target).one(Event.SHOW, (showEvent) => {\n if (showEvent.isDefaultPrevented()) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n $target.one(Event.HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus()\n }\n })\n })\n\n Modal._jQueryInterface.call($(target), config, this)\n })\n\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n\n return Modal\n\n})(jQuery)\n\nexport default Modal\n"]} \ No newline at end of file
diff --git a/js/dist/scrollspy.js b/js/dist/scrollspy.js
index 10fc3c394a..e8be562ec3 100644
--- a/js/dist/scrollspy.js
+++ b/js/dist/scrollspy.js
@@ -47,18 +47,15 @@ var ScrollSpy = function ($) {
var ClassName = {
DROPDOWN_ITEM: 'dropdown-item',
DROPDOWN_MENU: 'dropdown-menu',
- NAV_LINK: 'nav-link',
- NAV: 'nav',
ACTIVE: 'active'
};
var Selector = {
DATA_SPY: '[data-spy="scroll"]',
ACTIVE: '.active',
- LIST_ITEM: '.list-item',
- LI: 'li',
- LI_DROPDOWN: 'li.dropdown',
+ NAV_LIST_GROUP: '.nav, .list-group',
NAV_LINKS: '.nav-link',
+ LIST_ITEMS: '.list-group-item',
DROPDOWN: '.dropdown',
DROPDOWN_ITEMS: '.dropdown-item',
DROPDOWN_TOGGLE: '.dropdown-toggle'
@@ -84,7 +81,7 @@ var ScrollSpy = function ($) {
this._element = element;
this._scrollElement = element.tagName === 'BODY' ? window : element;
this._config = this._getConfig(config);
- this._selector = this._config.target + ' ' + Selector.NAV_LINKS + ',' + (this._config.target + ' ' + Selector.DROPDOWN_ITEMS);
+ this._selector = this._config.target + ' ' + Selector.NAV_LINKS + ',' + (this._config.target + ' ' + Selector.LIST_ITEMS + ',') + (this._config.target + ' ' + Selector.DROPDOWN_ITEMS);
this._offsets = [];
this._targets = [];
this._activeTarget = null;
@@ -238,9 +235,11 @@ var ScrollSpy = function ($) {
$link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
$link.addClass(ClassName.ACTIVE);
} else {
- // todo (fat) this is kinda sus...
- // recursively add actives to tested nav-links
- $link.parents(Selector.LI).find('> ' + Selector.NAV_LINKS).addClass(ClassName.ACTIVE);
+ // Set triggered link as active
+ $link.addClass(ClassName.ACTIVE);
+ // Set triggered links parents as active
+ // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
+ $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_LINKS + ', ' + Selector.LIST_ITEMS).addClass(ClassName.ACTIVE);
}
$(this._scrollElement).trigger(Event.ACTIVATE, {
diff --git a/js/dist/scrollspy.js.map b/js/dist/scrollspy.js.map
index 132a267187..425344d441 100644
--- a/js/dist/scrollspy.js.map
+++ b/js/dist/scrollspy.js.map
@@ -1 +1 @@
-{"version":3,"sources":["../src/scrollspy.js"],"names":["ScrollSpy","$","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","fn","Default","offset","method","target","DefaultType","Event","ACTIVATE","SCROLL","LOAD_DATA_API","ClassName","DROPDOWN_ITEM","DROPDOWN_MENU","NAV_LINK","NAV","ACTIVE","Selector","DATA_SPY","LIST_ITEM","LI","LI_DROPDOWN","NAV_LINKS","DROPDOWN","DROPDOWN_ITEMS","DROPDOWN_TOGGLE","OffsetMethod","OFFSET","POSITION","element","config","_element","_scrollElement","tagName","window","_config","_getConfig","_selector","_offsets","_targets","_activeTarget","_scrollHeight","on","event","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","makeArray","map","targetSelector","Util","getSelectorFromElement","targetBCR","getBoundingClientRect","width","height","top","filter","item","sort","a","b","forEach","push","dispose","removeData","off","extend","id","attr","getUID","typeCheckConfig","pageYOffset","scrollTop","scrollHeight","Math","max","document","body","documentElement","_getOffsetHeight","innerHeight","maxScroll","length","_activate","_clear","i","isActiveTarget","undefined","queries","split","selector","$link","join","hasClass","closest","find","addClass","parents","trigger","relatedTarget","removeClass","_jQueryInterface","each","data","Error","scrollSpys","$spy","call","Constructor","noConflict","jQuery"],"mappings":"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","file":"scrollspy.js","sourcesContent":["import Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.6): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst ScrollSpy = (($) => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'scrollspy'\n const VERSION = '4.0.0-alpha.6'\n const DATA_KEY = 'bs.scrollspy'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Default = {\n offset : 10,\n method : 'auto',\n target : ''\n }\n\n const DefaultType = {\n offset : 'number',\n method : 'string',\n target : '(string|element)'\n }\n\n const Event = {\n ACTIVATE : `activate${EVENT_KEY}`,\n SCROLL : `scroll${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DROPDOWN_ITEM : 'dropdown-item',\n DROPDOWN_MENU : 'dropdown-menu',\n NAV_LINK : 'nav-link',\n NAV : 'nav',\n ACTIVE : 'active'\n }\n\n const Selector = {\n DATA_SPY : '[data-spy=\"scroll\"]',\n ACTIVE : '.active',\n LIST_ITEM : '.list-item',\n LI : 'li',\n LI_DROPDOWN : 'li.dropdown',\n NAV_LINKS : '.nav-link',\n DROPDOWN : '.dropdown',\n DROPDOWN_ITEMS : '.dropdown-item',\n DROPDOWN_TOGGLE : '.dropdown-toggle'\n }\n\n const OffsetMethod = {\n OFFSET : 'offset',\n POSITION : 'position'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class ScrollSpy {\n\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},`\n + `${this._config.target} ${Selector.DROPDOWN_ITEMS}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n $(this._scrollElement).on(Event.SCROLL, (event) => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n\n // getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n\n // public\n\n refresh() {\n const autoMethod = this._scrollElement !== this._scrollElement.window ?\n OffsetMethod.POSITION : OffsetMethod.OFFSET\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod : this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n this._getScrollTop() : 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = $.makeArray($(this._selector))\n\n targets\n .map((element) => {\n let target\n const targetSelector = Util.getSelectorFromElement(element)\n\n if (targetSelector) {\n target = $(targetSelector)[0]\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n // todo (fat): remove sketch reliance on jQuery position/offset\n return [\n $(target)[offsetMethod]().top + offsetBase,\n targetSelector\n ]\n }\n }\n return null\n })\n .filter((item) => item)\n .sort((a, b) => a[0] - b[0])\n .forEach((item) => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._scrollElement).off(EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n\n // private\n\n _getConfig(config) {\n config = $.extend({}, Default, config)\n\n if (typeof config.target !== 'string') {\n let id = $(config.target).attr('id')\n if (!id) {\n id = Util.getUID(NAME)\n $(config.target).attr('id', id)\n }\n config.target = `#${id}`\n }\n\n Util.typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight : this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset\n + scrollHeight\n - this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i]\n && scrollTop >= this._offsets[i]\n && (this._offsets[i + 1] === undefined ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n let queries = this._selector.split(',')\n queries = queries.map((selector) => {\n return `${selector}[data-target=\"${target}\"],` +\n `${selector}[href=\"${target}\"]`\n })\n\n const $link = $(queries.join(','))\n\n if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {\n $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n $link.addClass(ClassName.ACTIVE)\n } else {\n // todo (fat) this is kinda sus...\n // recursively add actives to tested nav-links\n $link.parents(Selector.LI).find(`> ${Selector.NAV_LINKS}`).addClass(ClassName.ACTIVE)\n }\n\n $(this._scrollElement).trigger(Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE)\n }\n\n\n // static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (data[config] === undefined) {\n throw new Error(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(window).on(Event.LOAD_DATA_API, () => {\n const scrollSpys = $.makeArray($(Selector.DATA_SPY))\n\n for (let i = scrollSpys.length; i--;) {\n const $spy = $(scrollSpys[i])\n ScrollSpy._jQueryInterface.call($spy, $spy.data())\n }\n })\n\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n\n return ScrollSpy\n\n})(jQuery)\n\nexport default ScrollSpy\n"]} \ No newline at end of file
+{"version":3,"sources":["../src/scrollspy.js"],"names":["ScrollSpy","$","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","fn","Default","offset","method","target","DefaultType","Event","ACTIVATE","SCROLL","LOAD_DATA_API","ClassName","DROPDOWN_ITEM","DROPDOWN_MENU","ACTIVE","Selector","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","LIST_ITEMS","DROPDOWN","DROPDOWN_ITEMS","DROPDOWN_TOGGLE","OffsetMethod","OFFSET","POSITION","element","config","_element","_scrollElement","tagName","window","_config","_getConfig","_selector","_offsets","_targets","_activeTarget","_scrollHeight","on","event","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","makeArray","map","targetSelector","Util","getSelectorFromElement","targetBCR","getBoundingClientRect","width","height","top","filter","item","sort","a","b","forEach","push","dispose","removeData","off","extend","id","attr","getUID","typeCheckConfig","pageYOffset","scrollTop","scrollHeight","Math","max","document","body","documentElement","_getOffsetHeight","innerHeight","maxScroll","length","_activate","_clear","i","isActiveTarget","undefined","queries","split","selector","$link","join","hasClass","closest","find","addClass","parents","prev","trigger","relatedTarget","removeClass","_jQueryInterface","each","data","Error","scrollSpys","$spy","call","Constructor","noConflict","jQuery"],"mappings":"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","file":"scrollspy.js","sourcesContent":["import Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.6): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst ScrollSpy = (($) => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'scrollspy'\n const VERSION = '4.0.0-alpha.6'\n const DATA_KEY = 'bs.scrollspy'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Default = {\n offset : 10,\n method : 'auto',\n target : ''\n }\n\n const DefaultType = {\n offset : 'number',\n method : 'string',\n target : '(string|element)'\n }\n\n const Event = {\n ACTIVATE : `activate${EVENT_KEY}`,\n SCROLL : `scroll${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DROPDOWN_ITEM : 'dropdown-item',\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active'\n }\n\n const Selector = {\n DATA_SPY : '[data-spy=\"scroll\"]',\n ACTIVE : '.active',\n NAV_LIST_GROUP : '.nav, .list-group',\n NAV_LINKS : '.nav-link',\n LIST_ITEMS : '.list-group-item',\n DROPDOWN : '.dropdown',\n DROPDOWN_ITEMS : '.dropdown-item',\n DROPDOWN_TOGGLE : '.dropdown-toggle'\n }\n\n const OffsetMethod = {\n OFFSET : 'offset',\n POSITION : 'position'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class ScrollSpy {\n\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},`\n + `${this._config.target} ${Selector.LIST_ITEMS},`\n + `${this._config.target} ${Selector.DROPDOWN_ITEMS}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n $(this._scrollElement).on(Event.SCROLL, (event) => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n\n // getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n\n // public\n\n refresh() {\n const autoMethod = this._scrollElement !== this._scrollElement.window ?\n OffsetMethod.POSITION : OffsetMethod.OFFSET\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod : this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n this._getScrollTop() : 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = $.makeArray($(this._selector))\n\n targets\n .map((element) => {\n let target\n const targetSelector = Util.getSelectorFromElement(element)\n\n if (targetSelector) {\n target = $(targetSelector)[0]\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n // todo (fat): remove sketch reliance on jQuery position/offset\n return [\n $(target)[offsetMethod]().top + offsetBase,\n targetSelector\n ]\n }\n }\n return null\n })\n .filter((item) => item)\n .sort((a, b) => a[0] - b[0])\n .forEach((item) => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._scrollElement).off(EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n\n // private\n\n _getConfig(config) {\n config = $.extend({}, Default, config)\n\n if (typeof config.target !== 'string') {\n let id = $(config.target).attr('id')\n if (!id) {\n id = Util.getUID(NAME)\n $(config.target).attr('id', id)\n }\n config.target = `#${id}`\n }\n\n Util.typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight : this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset\n + scrollHeight\n - this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i]\n && scrollTop >= this._offsets[i]\n && (this._offsets[i + 1] === undefined ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n let queries = this._selector.split(',')\n queries = queries.map((selector) => {\n return `${selector}[data-target=\"${target}\"],` +\n `${selector}[href=\"${target}\"]`\n })\n\n const $link = $(queries.join(','))\n\n if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {\n $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n $link.addClass(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n $link.addClass(ClassName.ACTIVE)\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n $link.parents(Selector.NAV_LIST_GROUP).prev(`${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`).addClass(ClassName.ACTIVE)\n }\n\n $(this._scrollElement).trigger(Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE)\n }\n\n\n // static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (data[config] === undefined) {\n throw new Error(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(window).on(Event.LOAD_DATA_API, () => {\n const scrollSpys = $.makeArray($(Selector.DATA_SPY))\n\n for (let i = scrollSpys.length; i--;) {\n const $spy = $(scrollSpys[i])\n ScrollSpy._jQueryInterface.call($spy, $spy.data())\n }\n })\n\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n\n return ScrollSpy\n\n})(jQuery)\n\nexport default ScrollSpy\n"]} \ No newline at end of file
diff --git a/js/dist/tab.js b/js/dist/tab.js
index 26117b3866..3e141fadda 100644
--- a/js/dist/tab.js
+++ b/js/dist/tab.js
@@ -42,14 +42,10 @@ var Tab = function ($) {
};
var Selector = {
- A: 'a',
- LI: 'li',
DROPDOWN: '.dropdown',
- LIST: 'ul:not(.dropdown-menu), ol:not(.dropdown-menu), nav:not(.dropdown-menu), .list-group:not(.dropdown-menu)',
- FADE_CHILD: '> .nav-item .fade, > .list-group-item .fade, > .fade',
+ NAV_LIST_GROUP: '.nav, .list-group',
ACTIVE: '.active',
- ACTIVE_CHILD: '> .nav-item > .active, > .list-group-item > .active, > .active',
- DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"]',
+ DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
DROPDOWN_TOGGLE: '.dropdown-toggle',
DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active'
};
@@ -80,7 +76,7 @@ var Tab = function ($) {
var target = void 0;
var previous = void 0;
- var listElement = $(this._element).closest(Selector.LIST)[0];
+ var listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0];
var selector = Util.getSelectorFromElement(this._element);
if (listElement) {
@@ -142,8 +138,8 @@ var Tab = function ($) {
Tab.prototype._activate = function _activate(element, container, callback) {
var _this2 = this;
- var active = $(container).find(Selector.ACTIVE_CHILD)[0];
- var isTransitioning = callback && Util.supportsTransitionEnd() && (active && $(active).hasClass(ClassName.FADE) || Boolean($(container).find(Selector.FADE_CHILD)[0]));
+ var active = $(container).find(Selector.ACTIVE)[0];
+ var isTransitioning = callback && Util.supportsTransitionEnd() && active && $(active).hasClass(ClassName.FADE);
var complete = function complete() {
return _this2._transitionComplete(element, active, isTransitioning, callback);
@@ -163,9 +159,6 @@ var Tab = function ($) {
Tab.prototype._transitionComplete = function _transitionComplete(element, active, isTransitioning, callback) {
if (active) {
$(active).removeClass(ClassName.ACTIVE);
- if ($(active).hasClass('list-group-item')) {
- $(active).find('a.nav-link').removeClass(ClassName.ACTIVE);
- }
var dropdownChild = $(active.parentNode).find(Selector.DROPDOWN_ACTIVE_CHILD)[0];
@@ -177,9 +170,6 @@ var Tab = function ($) {
}
$(element).addClass(ClassName.ACTIVE);
- if ($(element.parentNode).hasClass('list-group-item')) {
- $(element.parentNode).addClass(ClassName.ACTIVE);
- }
element.setAttribute('aria-expanded', true);
if (isTransitioning) {
diff --git a/js/dist/tab.js.map b/js/dist/tab.js.map
index a2a76e98c4..80117e0267 100644
--- a/js/dist/tab.js.map
+++ b/js/dist/tab.js.map
@@ -1 +1 @@
-{"version":3,"sources":["../src/tab.js"],"names":["Tab","$","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","fn","TRANSITION_DURATION","Event","HIDE","HIDDEN","SHOW","SHOWN","CLICK_DATA_API","ClassName","DROPDOWN_MENU","ACTIVE","DISABLED","FADE","Selector","A","LI","DROPDOWN","LIST","FADE_CHILD","ACTIVE_CHILD","DATA_TOGGLE","DROPDOWN_TOGGLE","DROPDOWN_ACTIVE_CHILD","element","_element","show","parentNode","nodeType","Node","ELEMENT_NODE","hasClass","target","previous","listElement","closest","selector","Util","getSelectorFromElement","makeArray","find","length","hideEvent","relatedTarget","showEvent","trigger","isDefaultPrevented","_activate","complete","hiddenEvent","shownEvent","dispose","removeClass","container","callback","active","isTransitioning","supportsTransitionEnd","Boolean","_transitionComplete","one","TRANSITION_END","emulateTransitionEnd","dropdownChild","setAttribute","addClass","reflow","dropdownElement","_jQueryInterface","config","each","$this","data","undefined","Error","document","on","event","preventDefault","call","Constructor","noConflict","jQuery"],"mappings":"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","file":"tab.js","sourcesContent":["import Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.6): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tab = (($) => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'tab'\n const VERSION = '4.0.0-alpha.6'\n const DATA_KEY = 'bs.tab'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 150\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active',\n DISABLED : 'disabled',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n A : 'a',\n LI : 'li',\n DROPDOWN : '.dropdown',\n LIST : 'ul:not(.dropdown-menu), ol:not(.dropdown-menu), nav:not(.dropdown-menu), .list-group:not(.dropdown-menu)',\n FADE_CHILD : '> .nav-item .fade, > .list-group-item .fade, > .fade',\n ACTIVE : '.active',\n ACTIVE_CHILD : '> .nav-item > .active, > .list-group-item > .active, > .active',\n DATA_TOGGLE : '[data-toggle=\"tab\"], [data-toggle=\"pill\"]',\n DROPDOWN_TOGGLE : '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu .active'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Tab {\n\n constructor(element) {\n this._element = element\n }\n\n\n // getters\n\n static get VERSION() {\n return VERSION\n }\n\n\n // public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n $(this._element).hasClass(ClassName.ACTIVE) ||\n $(this._element).hasClass(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = $(this._element).closest(Selector.LIST)[0]\n const selector = Util.getSelectorFromElement(this._element)\n\n if (listElement) {\n previous = $.makeArray($(listElement).find(Selector.ACTIVE))\n previous = previous[previous.length - 1]\n }\n\n const hideEvent = $.Event(Event.HIDE, {\n relatedTarget: this._element\n })\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget: previous\n })\n\n if (previous) {\n $(previous).trigger(hideEvent)\n }\n\n $(this._element).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() ||\n hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (selector) {\n target = $(selector)[0]\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n const hiddenEvent = $.Event(Event.HIDDEN, {\n relatedTarget: this._element\n })\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget: previous\n })\n\n $(previous).trigger(hiddenEvent)\n $(this._element).trigger(shownEvent)\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n $.removeClass(this._element, DATA_KEY)\n this._element = null\n }\n\n\n // private\n\n _activate(element, container, callback) {\n const active = $(container).find(Selector.ACTIVE_CHILD)[0]\n const isTransitioning = callback\n && Util.supportsTransitionEnd()\n && (active && $(active).hasClass(ClassName.FADE)\n || Boolean($(container).find(Selector.FADE_CHILD)[0]))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n isTransitioning,\n callback\n )\n\n if (active && isTransitioning) {\n $(active)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n\n } else {\n complete()\n }\n\n if (active) {\n $(active).removeClass(ClassName.SHOW)\n }\n }\n\n _transitionComplete(element, active, isTransitioning, callback) {\n if (active) {\n $(active).removeClass(ClassName.ACTIVE)\n if ($(active).hasClass('list-group-item')) {\n $(active).find('a.nav-link').removeClass(ClassName.ACTIVE)\n }\n\n const dropdownChild = $(active.parentNode).find(\n Selector.DROPDOWN_ACTIVE_CHILD\n )[0]\n\n if (dropdownChild) {\n $(dropdownChild).removeClass(ClassName.ACTIVE)\n }\n\n active.setAttribute('aria-expanded', false)\n }\n\n $(element).addClass(ClassName.ACTIVE)\n if ($(element.parentNode).hasClass('list-group-item')) {\n $(element.parentNode).addClass(ClassName.ACTIVE)\n }\n element.setAttribute('aria-expanded', true)\n\n if (isTransitioning) {\n Util.reflow(element)\n $(element).addClass(ClassName.SHOW)\n } else {\n $(element).removeClass(ClassName.FADE)\n }\n\n if (element.parentNode &&\n $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {\n\n const dropdownElement = $(element).closest(Selector.DROPDOWN)[0]\n if (dropdownElement) {\n $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n\n // static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n\n if (!data) {\n data = new Tab(this)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (data[config] === undefined) {\n throw new Error(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n Tab._jQueryInterface.call($(this), 'show')\n })\n\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n\n return Tab\n\n})(jQuery)\n\nexport default Tab\n"]} \ No newline at end of file
+{"version":3,"sources":["../src/tab.js"],"names":["Tab","$","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","fn","TRANSITION_DURATION","Event","HIDE","HIDDEN","SHOW","SHOWN","CLICK_DATA_API","ClassName","DROPDOWN_MENU","ACTIVE","DISABLED","FADE","Selector","DROPDOWN","NAV_LIST_GROUP","DATA_TOGGLE","DROPDOWN_TOGGLE","DROPDOWN_ACTIVE_CHILD","element","_element","show","parentNode","nodeType","Node","ELEMENT_NODE","hasClass","target","previous","listElement","closest","selector","Util","getSelectorFromElement","makeArray","find","length","hideEvent","relatedTarget","showEvent","trigger","isDefaultPrevented","_activate","complete","hiddenEvent","shownEvent","dispose","removeClass","container","callback","active","isTransitioning","supportsTransitionEnd","_transitionComplete","one","TRANSITION_END","emulateTransitionEnd","dropdownChild","setAttribute","addClass","reflow","dropdownElement","_jQueryInterface","config","each","$this","data","undefined","Error","document","on","event","preventDefault","call","Constructor","noConflict","jQuery"],"mappings":"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","file":"tab.js","sourcesContent":["import Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.6): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tab = (($) => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'tab'\n const VERSION = '4.0.0-alpha.6'\n const DATA_KEY = 'bs.tab'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 150\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active',\n DISABLED : 'disabled',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n DROPDOWN : '.dropdown',\n NAV_LIST_GROUP : '.nav, .list-group',\n ACTIVE : '.active',\n DATA_TOGGLE : '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE : '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu .active'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Tab {\n\n constructor(element) {\n this._element = element\n }\n\n\n // getters\n\n static get VERSION() {\n return VERSION\n }\n\n\n // public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n $(this._element).hasClass(ClassName.ACTIVE) ||\n $(this._element).hasClass(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0]\n const selector = Util.getSelectorFromElement(this._element)\n\n if (listElement) {\n previous = $.makeArray($(listElement).find(Selector.ACTIVE))\n previous = previous[previous.length - 1]\n }\n\n const hideEvent = $.Event(Event.HIDE, {\n relatedTarget: this._element\n })\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget: previous\n })\n\n if (previous) {\n $(previous).trigger(hideEvent)\n }\n\n $(this._element).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() ||\n hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (selector) {\n target = $(selector)[0]\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n const hiddenEvent = $.Event(Event.HIDDEN, {\n relatedTarget: this._element\n })\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget: previous\n })\n\n $(previous).trigger(hiddenEvent)\n $(this._element).trigger(shownEvent)\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n $.removeClass(this._element, DATA_KEY)\n this._element = null\n }\n\n\n // private\n\n _activate(element, container, callback) {\n const active = $(container).find(Selector.ACTIVE)[0]\n const isTransitioning = callback\n && Util.supportsTransitionEnd()\n && (active && $(active).hasClass(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n isTransitioning,\n callback\n )\n\n if (active && isTransitioning) {\n $(active)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n\n } else {\n complete()\n }\n\n if (active) {\n $(active).removeClass(ClassName.SHOW)\n }\n }\n\n _transitionComplete(element, active, isTransitioning, callback) {\n if (active) {\n $(active).removeClass(ClassName.ACTIVE)\n\n const dropdownChild = $(active.parentNode).find(\n Selector.DROPDOWN_ACTIVE_CHILD\n )[0]\n\n if (dropdownChild) {\n $(dropdownChild).removeClass(ClassName.ACTIVE)\n }\n\n active.setAttribute('aria-expanded', false)\n }\n\n $(element).addClass(ClassName.ACTIVE)\n element.setAttribute('aria-expanded', true)\n\n if (isTransitioning) {\n Util.reflow(element)\n $(element).addClass(ClassName.SHOW)\n } else {\n $(element).removeClass(ClassName.FADE)\n }\n\n if (element.parentNode &&\n $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {\n\n const dropdownElement = $(element).closest(Selector.DROPDOWN)[0]\n if (dropdownElement) {\n $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n\n // static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n\n if (!data) {\n data = new Tab(this)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (data[config] === undefined) {\n throw new Error(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n Tab._jQueryInterface.call($(this), 'show')\n })\n\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n\n return Tab\n\n})(jQuery)\n\nexport default Tab\n"]} \ No newline at end of file