From b744ba2c084dd382d5bad8266827bf1a49a864de Mon Sep 17 00:00:00 2001 From: Mark Otto Date: Sat, 31 Mar 2018 13:59:37 -0700 Subject: dist --- js/dist/alert.js | 6 +++--- js/dist/alert.js.map | 2 +- js/dist/button.js.map | 2 +- js/dist/carousel.js | 35 +++++++++++------------------------ js/dist/carousel.js.map | 2 +- js/dist/collapse.js | 26 +++++++++----------------- js/dist/collapse.js.map | 2 +- js/dist/dropdown.js | 10 ++++++---- js/dist/dropdown.js.map | 2 +- js/dist/index.js.map | 2 +- js/dist/modal.js | 38 +++++++++++++++++++++----------------- js/dist/modal.js.map | 2 +- js/dist/popover.js | 8 +++++--- js/dist/popover.js.map | 2 +- js/dist/scrollspy.js | 6 ++++-- js/dist/scrollspy.js.map | 2 +- js/dist/tab.js | 6 +++--- js/dist/tab.js.map | 2 +- js/dist/tooltip.js | 19 +++++++++++-------- js/dist/tooltip.js.map | 2 +- js/dist/util.js | 47 ++++++++++++++++++++++++++--------------------- js/dist/util.js.map | 2 +- 22 files changed, 111 insertions(+), 114 deletions(-) (limited to 'js/dist') diff --git a/js/dist/alert.js b/js/dist/alert.js index dd7c6932ec..6d5cde5dba 100644 --- a/js/dist/alert.js +++ b/js/dist/alert.js @@ -20,7 +20,6 @@ var Alert = function ($) { var EVENT_KEY = "." + DATA_KEY; var DATA_API_KEY = '.data-api'; var JQUERY_NO_CONFLICT = $.fn[NAME]; - var TRANSITION_DURATION = 150; var Selector = { DISMISS: '[data-dismiss="alert"]' }; @@ -98,15 +97,16 @@ var Alert = function ($) { $(element).removeClass(ClassName.SHOW); - if (!Util.supportsTransitionEnd() || !$(element).hasClass(ClassName.FADE)) { + if (!$(element).hasClass(ClassName.FADE)) { this._destroyElement(element); return; } + var transitionDuration = Util.getTransitionDurationFromElement(element); $(element).one(Util.TRANSITION_END, function (event) { return _this._destroyElement(element, event); - }).emulateTransitionEnd(TRANSITION_DURATION); + }).emulateTransitionEnd(transitionDuration); }; _proto._destroyElement = function _destroyElement(element) { diff --git a/js/dist/alert.js.map b/js/dist/alert.js.map index 5a7309c106..e12656ef74 100644 --- a/js/dist/alert.js.map +++ b/js/dist/alert.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/alert.js"],"names":["Alert","$","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","fn","TRANSITION_DURATION","Selector","DISMISS","Event","CLOSE","CLOSED","CLICK_DATA_API","ClassName","ALERT","FADE","SHOW","element","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","selector","Util","getSelectorFromElement","parent","closest","closeEvent","trigger","removeClass","supportsTransitionEnd","hasClass","_destroyElement","one","TRANSITION_END","event","emulateTransitionEnd","detach","remove","_jQueryInterface","config","each","$element","data","_handleDismiss","alertInstance","preventDefault","document","on","Constructor","noConflict"],"mappings":";;;;AAGA;;;;;;AAOA,IAAMA,QAAS,UAACC,CAAD,EAAO;AACpB;;;;;AAMA,MAAMC,OAAsB,OAA5B;AACA,MAAMC,UAAsB,OAA5B;AACA,MAAMC,WAAsB,UAA5B;AACA,MAAMC,kBAA0BD,QAAhC;AACA,MAAME,eAAsB,WAA5B;AACA,MAAMC,qBAAsBN,EAAEO,EAAF,CAAKN,IAAL,CAA5B;AACA,MAAMO,sBAAsB,GAA5B;AAEA,MAAMC,WAAW;AACfC,aAAU;AADK,GAAjB;AAIA,MAAMC,QAAQ;AACZC,qBAAyBR,SADb;AAEZS,uBAA0BT,SAFd;AAGZU,8BAAyBV,SAAzB,GAAqCC;AAHzB,GAAd;AAMA,MAAMU,YAAY;AAChBC,WAAQ,OADQ;AAEhBC,UAAQ,MAFQ;AAGhBC,UAAQ;AAGV;;;;;;AANkB,GAAlB;;AAzBoB,MAqCdnB,KArCc;AAAA;AAAA;AAsClB,mBAAYoB,OAAZ,EAAqB;AACnB,WAAKC,QAAL,GAAgBD,OAAhB;AACD,KAxCiB,CA0ClB;;;AA1CkB;;AAgDlB;AAhDkB,WAkDlBE,KAlDkB,kBAkDZF,OAlDY,EAkDH;AACbA,gBAAUA,WAAW,KAAKC,QAA1B;;AAEA,UAAME,cAAc,KAAKC,eAAL,CAAqBJ,OAArB,CAApB;;AACA,UAAMK,cAAc,KAAKC,kBAAL,CAAwBH,WAAxB,CAApB;;AAEA,UAAIE,YAAYE,kBAAZ,EAAJ,EAAsC;AACpC;AACD;;AAED,WAAKC,cAAL,CAAoBL,WAApB;AACD,KA7DiB;;AAAA,WA+DlBM,OA/DkB,sBA+DR;AACR5B,QAAE6B,UAAF,CAAa,KAAKT,QAAlB,EAA4BjB,QAA5B;AACA,WAAKiB,QAAL,GAAgB,IAAhB;AACD,KAlEiB,EAoElB;;;AApEkB,WAsElBG,eAtEkB,4BAsEFJ,OAtEE,EAsEO;AACvB,UAAMW,WAAWC,KAAKC,sBAAL,CAA4Bb,OAA5B,CAAjB;AACA,UAAIc,SAAa,KAAjB;;AAEA,UAAIH,QAAJ,EAAc;AACZG,iBAASjC,EAAE8B,QAAF,EAAY,CAAZ,CAAT;AACD;;AAED,UAAI,CAACG,MAAL,EAAa;AACXA,iBAASjC,EAAEmB,OAAF,EAAWe,OAAX,OAAuBnB,UAAUC,KAAjC,EAA0C,CAA1C,CAAT;AACD;;AAED,aAAOiB,MAAP;AACD,KAnFiB;;AAAA,WAqFlBR,kBArFkB,+BAqFCN,OArFD,EAqFU;AAC1B,UAAMgB,aAAanC,EAAEW,KAAF,CAAQA,MAAMC,KAAd,CAAnB;AAEAZ,QAAEmB,OAAF,EAAWiB,OAAX,CAAmBD,UAAnB;AACA,aAAOA,UAAP;AACD,KA1FiB;;AAAA,WA4FlBR,cA5FkB,2BA4FHR,OA5FG,EA4FM;AAAA;;AACtBnB,QAAEmB,OAAF,EAAWkB,WAAX,CAAuBtB,UAAUG,IAAjC;;AAEA,UAAI,CAACa,KAAKO,qBAAL,EAAD,IACA,CAACtC,EAAEmB,OAAF,EAAWoB,QAAX,CAAoBxB,UAAUE,IAA9B,CADL,EAC0C;AACxC,aAAKuB,eAAL,CAAqBrB,OAArB;;AACA;AACD;;AAEDnB,QAAEmB,OAAF,EACGsB,GADH,CACOV,KAAKW,cADZ,EAC4B,UAACC,KAAD;AAAA,eAAW,MAAKH,eAAL,CAAqBrB,OAArB,EAA8BwB,KAA9B,CAAX;AAAA,OAD5B,EAEGC,oBAFH,CAEwBpC,mBAFxB;AAGD,KAxGiB;;AAAA,WA0GlBgC,eA1GkB,4BA0GFrB,OA1GE,EA0GO;AACvBnB,QAAEmB,OAAF,EACG0B,MADH,GAEGT,OAFH,CAEWzB,MAAME,MAFjB,EAGGiC,MAHH;AAID,KA/GiB,EAiHlB;;;AAjHkB,UAmHXC,gBAnHW,6BAmHMC,MAnHN,EAmHc;AAC9B,aAAO,KAAKC,IAAL,CAAU,YAAY;AAC3B,YAAMC,WAAWlD,EAAE,IAAF,CAAjB;AACA,YAAImD,OAAaD,SAASC,IAAT,CAAchD,QAAd,CAAjB;;AAEA,YAAI,CAACgD,IAAL,EAAW;AACTA,iBAAO,IAAIpD,KAAJ,CAAU,IAAV,CAAP;AACAmD,mBAASC,IAAT,CAAchD,QAAd,EAAwBgD,IAAxB;AACD;;AAED,YAAIH,WAAW,OAAf,EAAwB;AACtBG,eAAKH,MAAL,EAAa,IAAb;AACD;AACF,OAZM,CAAP;AAaD,KAjIiB;;AAAA,UAmIXI,cAnIW,2BAmIIC,aAnIJ,EAmImB;AACnC,aAAO,UAAUV,KAAV,EAAiB;AACtB,YAAIA,KAAJ,EAAW;AACTA,gBAAMW,cAAN;AACD;;AAEDD,sBAAchC,KAAd,CAAoB,IAApB;AACD,OAND;AAOD,KA3IiB;;AAAA;AAAA;AAAA,0BA4CG;AACnB,eAAOnB,OAAP;AACD;AA9CiB;;AAAA;AAAA;AA8IpB;;;;;;;AAMAF,IAAEuD,QAAF,EAAYC,EAAZ,CACE7C,MAAMG,cADR,EAEEL,SAASC,OAFX,EAGEX,MAAMqD,cAAN,CAAqB,IAAIrD,KAAJ,EAArB,CAHF;AAMA;;;;;;AAMAC,IAAEO,EAAF,CAAKN,IAAL,IAAyBF,MAAMgD,gBAA/B;AACA/C,IAAEO,EAAF,CAAKN,IAAL,EAAWwD,WAAX,GAAyB1D,KAAzB;;AACAC,IAAEO,EAAF,CAAKN,IAAL,EAAWyD,UAAX,GAAyB,YAAY;AACnC1D,MAAEO,EAAF,CAAKN,IAAL,IAAaK,kBAAb;AACA,WAAOP,MAAMgD,gBAAb;AACD,GAHD;;AAKA,SAAOhD,KAAP;AACD,CAxKa,CAwKXC,CAxKW,CAAd","file":"alert.js","sourcesContent":["import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Alert = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'alert'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.alert'\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 Selector = {\n DISMISS : '[data-dismiss=\"alert\"]'\n }\n\n const Event = {\n CLOSE : `close${EVENT_KEY}`,\n CLOSED : `closed${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n ALERT : 'alert',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Alert {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n element = element || this._element\n\n const rootElement = this._getRootElement(element)\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent.isDefaultPrevented()) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = Util.getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = $(selector)[0]\n }\n\n if (!parent) {\n parent = $(element).closest(`.${ClassName.ALERT}`)[0]\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n const closeEvent = $.Event(Event.CLOSE)\n\n $(element).trigger(closeEvent)\n return closeEvent\n }\n\n _removeElement(element) {\n $(element).removeClass(ClassName.SHOW)\n\n if (!Util.supportsTransitionEnd() ||\n !$(element).hasClass(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n $(element)\n .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event))\n .emulateTransitionEnd(TRANSITION_DURATION)\n }\n\n _destroyElement(element) {\n $(element)\n .detach()\n .trigger(Event.CLOSED)\n .remove()\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n $element.data(DATA_KEY, data)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(\n Event.CLICK_DATA_API,\n Selector.DISMISS,\n Alert._handleDismiss(new Alert())\n )\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n\n return Alert\n})($)\n\nexport default Alert\n"]} \ No newline at end of file +{"version":3,"sources":["../src/alert.js"],"names":["Alert","$","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","fn","Selector","DISMISS","Event","CLOSE","CLOSED","CLICK_DATA_API","ClassName","ALERT","FADE","SHOW","element","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","selector","Util","getSelectorFromElement","parent","closest","closeEvent","trigger","removeClass","hasClass","_destroyElement","transitionDuration","getTransitionDurationFromElement","one","TRANSITION_END","event","emulateTransitionEnd","detach","remove","_jQueryInterface","config","each","$element","data","_handleDismiss","alertInstance","preventDefault","document","on","Constructor","noConflict"],"mappings":"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","sourcesContent":["import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Alert = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'alert'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.alert'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Selector = {\n DISMISS : '[data-dismiss=\"alert\"]'\n }\n\n const Event = {\n CLOSE : `close${EVENT_KEY}`,\n CLOSED : `closed${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n ALERT : 'alert',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Alert {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n element = element || this._element\n\n const rootElement = this._getRootElement(element)\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent.isDefaultPrevented()) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = Util.getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = $(selector)[0]\n }\n\n if (!parent) {\n parent = $(element).closest(`.${ClassName.ALERT}`)[0]\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n const closeEvent = $.Event(Event.CLOSE)\n\n $(element).trigger(closeEvent)\n return closeEvent\n }\n\n _removeElement(element) {\n $(element).removeClass(ClassName.SHOW)\n\n if (!$(element).hasClass(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(element)\n\n $(element)\n .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event))\n .emulateTransitionEnd(transitionDuration)\n }\n\n _destroyElement(element) {\n $(element)\n .detach()\n .trigger(Event.CLOSED)\n .remove()\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n $element.data(DATA_KEY, data)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(\n Event.CLICK_DATA_API,\n Selector.DISMISS,\n Alert._handleDismiss(new Alert())\n )\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n\n return Alert\n})($)\n\nexport default Alert\n"],"file":"alert.js"} \ No newline at end of file diff --git a/js/dist/button.js.map b/js/dist/button.js.map index c4a68a90b2..74012b8714 100644 --- a/js/dist/button.js.map +++ b/js/dist/button.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/button.js"],"names":["Button","$","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","fn","ClassName","ACTIVE","BUTTON","FOCUS","Selector","DATA_TOGGLE_CARROT","DATA_TOGGLE","INPUT","Event","CLICK_DATA_API","FOCUS_BLUR_DATA_API","element","_element","toggle","triggerChangeEvent","addAriaPressed","rootElement","closest","input","find","type","checked","hasClass","activeElement","removeClass","hasAttribute","classList","contains","trigger","focus","setAttribute","toggleClass","dispose","removeData","_jQueryInterface","config","each","data","document","on","event","preventDefault","button","target","call","test","Constructor","noConflict"],"mappings":"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","file":"button.js","sourcesContent":["import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Button = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'button'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.button'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const ClassName = {\n ACTIVE : 'active',\n BUTTON : 'btn',\n FOCUS : 'focus'\n }\n\n const Selector = {\n DATA_TOGGLE_CARROT : '[data-toggle^=\"button\"]',\n DATA_TOGGLE : '[data-toggle=\"buttons\"]',\n INPUT : 'input',\n ACTIVE : '.active',\n BUTTON : '.btn'\n }\n\n const Event = {\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_BLUR_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY} ` +\n `blur${EVENT_KEY}${DATA_API_KEY}`\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Button {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n const rootElement = $(this._element).closest(\n Selector.DATA_TOGGLE\n )[0]\n\n if (rootElement) {\n const input = $(this._element).find(Selector.INPUT)[0]\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n $(this._element).hasClass(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = $(rootElement).find(Selector.ACTIVE)[0]\n\n if (activeElement) {\n $(activeElement).removeClass(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n input.checked = !$(this._element).hasClass(ClassName.ACTIVE)\n $(input).trigger('change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !$(this._element).hasClass(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n $(this._element).toggleClass(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n $(this).data(DATA_KEY, data)\n }\n\n if (config === 'toggle') {\n data[config]()\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_CARROT, (event) => {\n event.preventDefault()\n\n let button = event.target\n\n if (!$(button).hasClass(ClassName.BUTTON)) {\n button = $(button).closest(Selector.BUTTON)\n }\n\n Button._jQueryInterface.call($(button), 'toggle')\n })\n .on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n const button = $(event.target).closest(Selector.BUTTON)[0]\n $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type))\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n\n return Button\n})($)\n\nexport default Button\n"]} \ No newline at end of file +{"version":3,"sources":["../src/button.js"],"names":["Button","$","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","fn","ClassName","ACTIVE","BUTTON","FOCUS","Selector","DATA_TOGGLE_CARROT","DATA_TOGGLE","INPUT","Event","CLICK_DATA_API","FOCUS_BLUR_DATA_API","element","_element","toggle","triggerChangeEvent","addAriaPressed","rootElement","closest","input","find","type","checked","hasClass","activeElement","removeClass","hasAttribute","classList","contains","trigger","focus","setAttribute","toggleClass","dispose","removeData","_jQueryInterface","config","each","data","document","on","event","preventDefault","button","target","call","test","Constructor","noConflict"],"mappings":"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","sourcesContent":["import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Button = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'button'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.button'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const ClassName = {\n ACTIVE : 'active',\n BUTTON : 'btn',\n FOCUS : 'focus'\n }\n\n const Selector = {\n DATA_TOGGLE_CARROT : '[data-toggle^=\"button\"]',\n DATA_TOGGLE : '[data-toggle=\"buttons\"]',\n INPUT : 'input',\n ACTIVE : '.active',\n BUTTON : '.btn'\n }\n\n const Event = {\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_BLUR_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY} ` +\n `blur${EVENT_KEY}${DATA_API_KEY}`\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Button {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n const rootElement = $(this._element).closest(\n Selector.DATA_TOGGLE\n )[0]\n\n if (rootElement) {\n const input = $(this._element).find(Selector.INPUT)[0]\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n $(this._element).hasClass(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = $(rootElement).find(Selector.ACTIVE)[0]\n\n if (activeElement) {\n $(activeElement).removeClass(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n input.checked = !$(this._element).hasClass(ClassName.ACTIVE)\n $(input).trigger('change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !$(this._element).hasClass(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n $(this._element).toggleClass(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n $(this).data(DATA_KEY, data)\n }\n\n if (config === 'toggle') {\n data[config]()\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_CARROT, (event) => {\n event.preventDefault()\n\n let button = event.target\n\n if (!$(button).hasClass(ClassName.BUTTON)) {\n button = $(button).closest(Selector.BUTTON)\n }\n\n Button._jQueryInterface.call($(button), 'toggle')\n })\n .on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n const button = $(event.target).closest(Selector.BUTTON)[0]\n $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type))\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n\n return Button\n})($)\n\nexport default Button\n"],"file":"button.js"} \ No newline at end of file diff --git a/js/dist/carousel.js b/js/dist/carousel.js index 93fa3f19d9..40edaa6c5a 100644 --- a/js/dist/carousel.js +++ b/js/dist/carousel.js @@ -1,4 +1,6 @@ -function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } @@ -28,7 +30,6 @@ var Carousel = function ($) { var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch - var MILLISECONDS_MULTIPLIER = 1000; var Default = { interval: 5000, keyboard: true, @@ -98,7 +99,6 @@ var Carousel = function ($) { this._config = this._getConfig(config); this._element = $(element)[0]; this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0]; - this._transitionDuration = this._getTransitionDuration(); this._addEventListeners(); } // Getters @@ -132,7 +132,7 @@ var Carousel = function ($) { this._isPaused = true; } - if ($(this._element).find(Selector.NEXT_PREV)[0] && Util.supportsTransitionEnd()) { + if ($(this._element).find(Selector.NEXT_PREV)[0]) { Util.triggerTransitionEnd(this._element); this.cycle(true); } @@ -200,25 +200,11 @@ var Carousel = function ($) { _proto._getConfig = function _getConfig(config) { - config = _extends({}, Default, config); + config = _objectSpread({}, Default, config); Util.typeCheckConfig(NAME, config, DefaultType); return config; }; - _proto._getTransitionDuration = function _getTransitionDuration() { - // Get transition-duration of first element in the carousel - var transitionDuration = $(this._element).find(Selector.ITEM).css('transition-duration'); // Return 0 carousel item is not found - - if (!transitionDuration) { - return 0; - } // If multiple durations are defined, take the first - - - transitionDuration = transitionDuration.split(',')[0]; // Multiply by 1000 if transition-duration is defined in seconds - - return transitionDuration.indexOf('ms') > -1 ? parseFloat(transitionDuration) : parseFloat(transitionDuration) * MILLISECONDS_MULTIPLIER; - }; - _proto._addEventListeners = function _addEventListeners() { var _this2 = this; @@ -385,11 +371,12 @@ var Carousel = function ($) { to: nextElementIndex }); - if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.SLIDE)) { + if ($(this._element).hasClass(ClassName.SLIDE)) { $(nextElement).addClass(orderClassName); Util.reflow(nextElement); $(activeElement).addClass(directionalClassName); $(nextElement).addClass(directionalClassName); + var transitionDuration = Util.getTransitionDurationFromElement(activeElement); $(activeElement).one(Util.TRANSITION_END, function () { $(nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(ClassName.ACTIVE); $(activeElement).removeClass(ClassName.ACTIVE + " " + orderClassName + " " + directionalClassName); @@ -397,7 +384,7 @@ var Carousel = function ($) { setTimeout(function () { return $(_this3._element).trigger(slidEvent); }, 0); - }).emulateTransitionEnd(this._transitionDuration); + }).emulateTransitionEnd(transitionDuration); } else { $(activeElement).removeClass(ClassName.ACTIVE); $(nextElement).addClass(ClassName.ACTIVE); @@ -415,10 +402,10 @@ var Carousel = function ($) { return this.each(function () { var data = $(this).data(DATA_KEY); - var _config = _extends({}, Default, $(this).data()); + var _config = _objectSpread({}, Default, $(this).data()); if (typeof config === 'object') { - _config = _extends({}, _config, config); + _config = _objectSpread({}, _config, config); } var action = typeof config === 'string' ? config : _config.slide; @@ -456,7 +443,7 @@ var Carousel = function ($) { return; } - var config = _extends({}, $(target).data(), $(this).data()); + var config = _objectSpread({}, $(target).data(), $(this).data()); var slideIndex = this.getAttribute('data-slide-to'); diff --git a/js/dist/carousel.js.map b/js/dist/carousel.js.map index 71bb1b9872..97b621196d 100644 --- a/js/dist/carousel.js.map +++ b/js/dist/carousel.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/carousel.js"],"names":["Carousel","$","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","fn","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","MILLISECONDS_MULTIPLIER","Default","interval","keyboard","slide","pause","wrap","DefaultType","Direction","NEXT","PREV","LEFT","RIGHT","Event","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHEND","LOAD_DATA_API","CLICK_DATA_API","ClassName","CAROUSEL","ACTIVE","ITEM","Selector","ACTIVE_ITEM","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","element","config","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","_config","_getConfig","_element","_indicatorsElement","find","_transitionDuration","_getTransitionDuration","_addEventListeners","next","_slide","nextWhenVisible","document","hidden","is","css","prev","event","Util","supportsTransitionEnd","triggerTransitionEnd","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","length","one","direction","dispose","off","removeData","typeCheckConfig","transitionDuration","split","indexOf","parseFloat","on","_keydown","documentElement","clearTimeout","setTimeout","test","target","tagName","which","preventDefault","makeArray","parent","_getItemByDirection","activeElement","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","from","trigger","_setActiveIndicatorElement","removeClass","nextIndicator","children","addClass","activeElementIndex","nextElement","nextElementIndex","isCycling","Boolean","directionalClassName","orderClassName","hasClass","isDefaultPrevented","slidEvent","reflow","TRANSITION_END","emulateTransitionEnd","_jQueryInterface","each","data","action","TypeError","_dataApiClickHandler","selector","getSelectorFromElement","slideIndex","getAttribute","call","window","$carousel","Constructor","noConflict"],"mappings":"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","file":"carousel.js","sourcesContent":["import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Carousel = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'carousel'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.carousel'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\n const ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\n const TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\n const MILLISECONDS_MULTIPLIER = 1000\n\n const Default = {\n interval : 5000,\n keyboard : true,\n slide : false,\n pause : 'hover',\n wrap : true\n }\n\n const DefaultType = {\n interval : '(number|boolean)',\n keyboard : 'boolean',\n slide : '(boolean|string)',\n pause : '(string|boolean)',\n wrap : 'boolean'\n }\n\n const Direction = {\n NEXT : 'next',\n PREV : 'prev',\n LEFT : 'left',\n RIGHT : 'right'\n }\n\n const Event = {\n SLIDE : `slide${EVENT_KEY}`,\n SLID : `slid${EVENT_KEY}`,\n KEYDOWN : `keydown${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`,\n TOUCHEND : `touchend${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n CAROUSEL : 'carousel',\n ACTIVE : 'active',\n SLIDE : 'slide',\n RIGHT : 'carousel-item-right',\n LEFT : 'carousel-item-left',\n NEXT : 'carousel-item-next',\n PREV : 'carousel-item-prev',\n ITEM : 'carousel-item'\n }\n\n const Selector = {\n ACTIVE : '.active',\n ACTIVE_ITEM : '.active.carousel-item',\n ITEM : '.carousel-item',\n NEXT_PREV : '.carousel-item-next, .carousel-item-prev',\n INDICATORS : '.carousel-indicators',\n DATA_SLIDE : '[data-slide], [data-slide-to]',\n DATA_RIDE : '[data-ride=\"carousel\"]'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n\n this._isPaused = false\n this._isSliding = false\n\n this.touchTimeout = null\n\n this._config = this._getConfig(config)\n this._element = $(element)[0]\n this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0]\n\n this._transitionDuration = this._getTransitionDuration()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden &&\n ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if ($(this._element).find(Selector.NEXT_PREV)[0] &&\n Util.supportsTransitionEnd()) {\n Util.triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n $(this._element).one(Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex\n ? Direction.NEXT\n : Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n $(this._element).off(EVENT_KEY)\n $.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getTransitionDuration() {\n // Get transition-duration of first element in the carousel\n let transitionDuration = $(this._element).find(Selector.ITEM).css('transition-duration')\n\n // Return 0 carousel item is not found\n if (!transitionDuration) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n\n // Multiply by 1000 if transition-duration is defined in seconds\n return transitionDuration.indexOf('ms') > -1\n ? parseFloat(transitionDuration)\n : parseFloat(transitionDuration) * MILLISECONDS_MULTIPLIER\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element)\n .on(Event.KEYDOWN, (event) => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n $(this._element)\n .on(Event.MOUSEENTER, (event) => this.pause(event))\n .on(Event.MOUSELEAVE, (event) => this.cycle(event))\n if ('ontouchstart' in document.documentElement) {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n $(this._element).on(Event.TOUCHEND, () => {\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n })\n }\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = $.makeArray($(element).parent().find(Selector.ITEM))\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1\n ? this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex($(this._element).find(Selector.ACTIVE_ITEM)[0])\n const slideEvent = $.Event(Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n\n $(this._element).trigger(slideEvent)\n\n return slideEvent\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n $(this._indicatorsElement)\n .find(Selector.ACTIVE)\n .removeClass(ClassName.ACTIVE)\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.isDefaultPrevented()) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n const slidEvent = $.Event(Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n\n if (Util.supportsTransitionEnd() &&\n $(this._element).hasClass(ClassName.SLIDE)) {\n $(nextElement).addClass(orderClassName)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\n\n $(activeElement)\n .one(Util.TRANSITION_END, () => {\n $(nextElement)\n .removeClass(`${directionalClassName} ${orderClassName}`)\n .addClass(ClassName.ACTIVE)\n\n $(activeElement).removeClass(`${ClassName.ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n this._isSliding = false\n\n setTimeout(() => $(this._element).trigger(slidEvent), 0)\n })\n .emulateTransitionEnd(this._transitionDuration)\n } else {\n $(activeElement).removeClass(ClassName.ACTIVE)\n $(nextElement).addClass(ClassName.ACTIVE)\n\n this._isSliding = false\n $(this._element).trigger(slidEvent)\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = {\n ...Default,\n ...$(this).data()\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n data[action]()\n } else if (_config.interval) {\n data.pause()\n data.cycle()\n }\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = $(selector)[0]\n\n if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...$(target).data(),\n ...$(this).data()\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._jQueryInterface.call($(target), config)\n\n if (slideIndex) {\n $(target).data(DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\n $(window).on(Event.LOAD_DATA_API, () => {\n $(Selector.DATA_RIDE).each(function () {\n const $carousel = $(this)\n Carousel._jQueryInterface.call($carousel, $carousel.data())\n })\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n\n return Carousel\n})($)\n\nexport default Carousel\n"]} \ No newline at end of file +{"version":3,"sources":["../src/carousel.js"],"names":["Carousel","$","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","fn","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","Default","interval","keyboard","slide","pause","wrap","DefaultType","Direction","NEXT","PREV","LEFT","RIGHT","Event","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHEND","LOAD_DATA_API","CLICK_DATA_API","ClassName","CAROUSEL","ACTIVE","ITEM","Selector","ACTIVE_ITEM","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","element","config","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","_config","_getConfig","_element","_indicatorsElement","find","_addEventListeners","next","_slide","nextWhenVisible","document","hidden","is","css","prev","event","Util","triggerTransitionEnd","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","length","one","direction","dispose","off","removeData","typeCheckConfig","on","_keydown","documentElement","clearTimeout","setTimeout","test","target","tagName","which","preventDefault","makeArray","parent","indexOf","_getItemByDirection","activeElement","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","from","trigger","_setActiveIndicatorElement","removeClass","nextIndicator","children","addClass","activeElementIndex","nextElement","nextElementIndex","isCycling","Boolean","directionalClassName","orderClassName","hasClass","isDefaultPrevented","slidEvent","reflow","transitionDuration","getTransitionDurationFromElement","TRANSITION_END","emulateTransitionEnd","_jQueryInterface","each","data","action","TypeError","_dataApiClickHandler","selector","getSelectorFromElement","slideIndex","getAttribute","call","window","$carousel","Constructor","noConflict"],"mappings":"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","sourcesContent":["import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Carousel = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'carousel'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.carousel'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\n const ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\n const TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\n\n const Default = {\n interval : 5000,\n keyboard : true,\n slide : false,\n pause : 'hover',\n wrap : true\n }\n\n const DefaultType = {\n interval : '(number|boolean)',\n keyboard : 'boolean',\n slide : '(boolean|string)',\n pause : '(string|boolean)',\n wrap : 'boolean'\n }\n\n const Direction = {\n NEXT : 'next',\n PREV : 'prev',\n LEFT : 'left',\n RIGHT : 'right'\n }\n\n const Event = {\n SLIDE : `slide${EVENT_KEY}`,\n SLID : `slid${EVENT_KEY}`,\n KEYDOWN : `keydown${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`,\n TOUCHEND : `touchend${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n CAROUSEL : 'carousel',\n ACTIVE : 'active',\n SLIDE : 'slide',\n RIGHT : 'carousel-item-right',\n LEFT : 'carousel-item-left',\n NEXT : 'carousel-item-next',\n PREV : 'carousel-item-prev',\n ITEM : 'carousel-item'\n }\n\n const Selector = {\n ACTIVE : '.active',\n ACTIVE_ITEM : '.active.carousel-item',\n ITEM : '.carousel-item',\n NEXT_PREV : '.carousel-item-next, .carousel-item-prev',\n INDICATORS : '.carousel-indicators',\n DATA_SLIDE : '[data-slide], [data-slide-to]',\n DATA_RIDE : '[data-ride=\"carousel\"]'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n\n this._isPaused = false\n this._isSliding = false\n\n this.touchTimeout = null\n\n this._config = this._getConfig(config)\n this._element = $(element)[0]\n this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0]\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden &&\n ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if ($(this._element).find(Selector.NEXT_PREV)[0]) {\n Util.triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n $(this._element).one(Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex\n ? Direction.NEXT\n : Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n $(this._element).off(EVENT_KEY)\n $.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element)\n .on(Event.KEYDOWN, (event) => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n $(this._element)\n .on(Event.MOUSEENTER, (event) => this.pause(event))\n .on(Event.MOUSELEAVE, (event) => this.cycle(event))\n if ('ontouchstart' in document.documentElement) {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n $(this._element).on(Event.TOUCHEND, () => {\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n })\n }\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = $.makeArray($(element).parent().find(Selector.ITEM))\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1\n ? this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex($(this._element).find(Selector.ACTIVE_ITEM)[0])\n const slideEvent = $.Event(Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n\n $(this._element).trigger(slideEvent)\n\n return slideEvent\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n $(this._indicatorsElement)\n .find(Selector.ACTIVE)\n .removeClass(ClassName.ACTIVE)\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.isDefaultPrevented()) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n const slidEvent = $.Event(Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n\n if ($(this._element).hasClass(ClassName.SLIDE)) {\n $(nextElement).addClass(orderClassName)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\n\n const transitionDuration = Util.getTransitionDurationFromElement(activeElement)\n\n $(activeElement)\n .one(Util.TRANSITION_END, () => {\n $(nextElement)\n .removeClass(`${directionalClassName} ${orderClassName}`)\n .addClass(ClassName.ACTIVE)\n\n $(activeElement).removeClass(`${ClassName.ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n this._isSliding = false\n\n setTimeout(() => $(this._element).trigger(slidEvent), 0)\n })\n .emulateTransitionEnd(transitionDuration)\n } else {\n $(activeElement).removeClass(ClassName.ACTIVE)\n $(nextElement).addClass(ClassName.ACTIVE)\n\n this._isSliding = false\n $(this._element).trigger(slidEvent)\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = {\n ...Default,\n ...$(this).data()\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n data[action]()\n } else if (_config.interval) {\n data.pause()\n data.cycle()\n }\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = $(selector)[0]\n\n if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...$(target).data(),\n ...$(this).data()\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._jQueryInterface.call($(target), config)\n\n if (slideIndex) {\n $(target).data(DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\n $(window).on(Event.LOAD_DATA_API, () => {\n $(Selector.DATA_RIDE).each(function () {\n const $carousel = $(this)\n Carousel._jQueryInterface.call($carousel, $carousel.data())\n })\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n\n return Carousel\n})($)\n\nexport default Carousel\n"],"file":"carousel.js"} \ No newline at end of file diff --git a/js/dist/collapse.js b/js/dist/collapse.js index ff79e93466..40a97d121b 100644 --- a/js/dist/collapse.js +++ b/js/dist/collapse.js @@ -1,4 +1,6 @@ -function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } @@ -22,7 +24,6 @@ var Collapse = function ($) { var EVENT_KEY = "." + DATA_KEY; var DATA_API_KEY = '.data-api'; var JQUERY_NO_CONFLICT = $.fn[NAME]; - var TRANSITION_DURATION = 600; var Default = { toggle: true, parent: '' @@ -164,14 +165,10 @@ var Collapse = function ($) { $(_this._element).trigger(Event.SHOWN); }; - if (!Util.supportsTransitionEnd()) { - complete(); - return; - } - var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1); var scrollSize = "scroll" + capitalizedDimension; - $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION); + var transitionDuration = Util.getTransitionDurationFromElement(this._element); + $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); this._element.style[dimension] = this._element[scrollSize] + "px"; }; @@ -219,13 +216,8 @@ var Collapse = function ($) { }; this._element.style[dimension] = ''; - - if (!Util.supportsTransitionEnd()) { - complete(); - return; - } - - $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION); + var transitionDuration = Util.getTransitionDurationFromElement(this._element); + $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); }; _proto.setTransitioning = function setTransitioning(isTransitioning) { @@ -243,7 +235,7 @@ var Collapse = function ($) { _proto._getConfig = function _getConfig(config) { - config = _extends({}, Default, config); + config = _objectSpread({}, Default, config); config.toggle = Boolean(config.toggle); // Coerce string values Util.typeCheckConfig(NAME, config, DefaultType); @@ -298,7 +290,7 @@ var Collapse = function ($) { var $this = $(this); var data = $this.data(DATA_KEY); - var _config = _extends({}, Default, $this.data(), typeof config === 'object' && config); + var _config = _objectSpread({}, Default, $this.data(), typeof config === 'object' && config); if (!data && _config.toggle && /show|hide/.test(config)) { _config.toggle = false; diff --git a/js/dist/collapse.js.map b/js/dist/collapse.js.map index 5457137dbd..f65adcc1e2 100644 --- a/js/dist/collapse.js.map +++ b/js/dist/collapse.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/collapse.js"],"names":["Collapse","$","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","fn","TRANSITION_DURATION","Default","toggle","parent","DefaultType","Event","SHOW","SHOWN","HIDE","HIDDEN","CLICK_DATA_API","ClassName","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","Selector","ACTIVES","DATA_TOGGLE","element","config","_isTransitioning","_element","_config","_getConfig","_triggerArray","makeArray","id","tabToggles","i","length","elem","selector","Util","getSelectorFromElement","filter","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","hasClass","hide","show","actives","activesData","find","not","data","startEvent","trigger","isDefaultPrevented","_jQueryInterface","call","dimension","_getDimension","removeClass","addClass","style","attr","setTransitioning","complete","supportsTransitionEnd","capitalizedDimension","toUpperCase","slice","scrollSize","one","TRANSITION_END","emulateTransitionEnd","getBoundingClientRect","reflow","$elem","isTransitioning","dispose","removeData","Boolean","typeCheckConfig","hasWidth","isElement","jquery","each","_getTargetFromElement","triggerArray","isOpen","toggleClass","$this","test","TypeError","document","on","event","currentTarget","tagName","preventDefault","$trigger","$target","Constructor","noConflict"],"mappings":"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","file":"collapse.js","sourcesContent":["import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Collapse = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'collapse'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.collapse'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 600\n\n const Default = {\n toggle : true,\n parent : ''\n }\n\n const DefaultType = {\n toggle : 'boolean',\n parent : '(string|element)'\n }\n\n const Event = {\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n SHOW : 'show',\n COLLAPSE : 'collapse',\n COLLAPSING : 'collapsing',\n COLLAPSED : 'collapsed'\n }\n\n const Dimension = {\n WIDTH : 'width',\n HEIGHT : 'height'\n }\n\n const Selector = {\n ACTIVES : '.show, .collapsing',\n DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = $.makeArray($(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n const tabToggles = $(Selector.DATA_TOGGLE)\n for (let i = 0; i < tabToggles.length; i++) {\n const elem = tabToggles[i]\n const selector = Util.getSelectorFromElement(elem)\n if (selector !== null && $(selector).filter(element).length > 0) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\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 // Public\n\n toggle() {\n if ($(this._element).hasClass(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n $(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = $.makeArray(\n $(this._parent)\n .find(Selector.ACTIVES)\n .filter(`[data-parent=\"${this._config.parent}\"]`)\n )\n if (actives.length === 0) {\n actives = null\n }\n }\n\n if (actives) {\n activesData = $(actives).not(this._selector).data(DATA_KEY)\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = $.Event(Event.SHOW)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide')\n if (!activesData) {\n $(actives).data(DATA_KEY, null)\n }\n }\n\n const dimension = this._getDimension()\n\n $(this._element)\n .removeClass(ClassName.COLLAPSE)\n .addClass(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length > 0) {\n $(this._triggerArray)\n .removeClass(ClassName.COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .addClass(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n $(this._element).trigger(Event.SHOWN)\n }\n\n if (!Util.supportsTransitionEnd()) {\n complete()\n return\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !$(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n const startEvent = $.Event(Event.HIDE)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n Util.reflow(this._element)\n\n $(this._element)\n .addClass(ClassName.COLLAPSING)\n .removeClass(ClassName.COLLAPSE)\n .removeClass(ClassName.SHOW)\n\n if (this._triggerArray.length > 0) {\n for (let i = 0; i < this._triggerArray.length; i++) {\n const trigger = this._triggerArray[i]\n const selector = Util.getSelectorFromElement(trigger)\n if (selector !== null) {\n const $elem = $(selector)\n if (!$elem.hasClass(ClassName.SHOW)) {\n $(trigger).addClass(ClassName.COLLAPSED)\n .attr('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .trigger(Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n\n if (!Util.supportsTransitionEnd()) {\n complete()\n return\n }\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = $(this._element).hasClass(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let parent = null\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent\n\n // It's a jQuery object\n if (typeof this._config.parent.jquery !== 'undefined') {\n parent = this._config.parent[0]\n }\n } else {\n parent = $(this._config.parent)[0]\n }\n\n const selector =\n `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n $(parent).find(selector).each((i, element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = $(element).hasClass(ClassName.SHOW)\n\n if (triggerArray.length > 0) {\n $(triggerArray)\n .toggleClass(ClassName.COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = Util.getSelectorFromElement(element)\n return selector ? $(selector)[0] : null\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n const _config = {\n ...Default,\n ...$this.data(),\n ...typeof config === 'object' && config\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(this, _config)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\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 // preventDefault only for elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault()\n }\n\n const $trigger = $(this)\n const selector = Util.getSelectorFromElement(this)\n $(selector).each(function () {\n const $target = $(this)\n const data = $target.data(DATA_KEY)\n const config = data ? 'toggle' : $trigger.data()\n Collapse._jQueryInterface.call($target, config)\n })\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n\n return Collapse\n})($)\n\nexport default Collapse\n"]} \ No newline at end of file +{"version":3,"sources":["../src/collapse.js"],"names":["Collapse","$","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","fn","Default","toggle","parent","DefaultType","Event","SHOW","SHOWN","HIDE","HIDDEN","CLICK_DATA_API","ClassName","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","Selector","ACTIVES","DATA_TOGGLE","element","config","_isTransitioning","_element","_config","_getConfig","_triggerArray","makeArray","id","tabToggles","i","length","elem","selector","Util","getSelectorFromElement","filter","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","hasClass","hide","show","actives","activesData","find","not","data","startEvent","trigger","isDefaultPrevented","_jQueryInterface","call","dimension","_getDimension","removeClass","addClass","style","attr","setTransitioning","complete","capitalizedDimension","toUpperCase","slice","scrollSize","transitionDuration","getTransitionDurationFromElement","one","TRANSITION_END","emulateTransitionEnd","getBoundingClientRect","reflow","$elem","isTransitioning","dispose","removeData","Boolean","typeCheckConfig","hasWidth","isElement","jquery","each","_getTargetFromElement","triggerArray","isOpen","toggleClass","$this","test","TypeError","document","on","event","currentTarget","tagName","preventDefault","$trigger","$target","Constructor","noConflict"],"mappings":";;;;;;;;AAGA;;;;;;AAOA,IAAMA,WAAY,UAACC,CAAD,EAAO;AACvB;;;;;AAMA,MAAMC,OAAsB,UAA5B;AACA,MAAMC,UAAsB,OAA5B;AACA,MAAMC,WAAsB,aAA5B;AACA,MAAMC,kBAA0BD,QAAhC;AACA,MAAME,eAAsB,WAA5B;AACA,MAAMC,qBAAsBN,EAAEO,EAAF,CAAKN,IAAL,CAA5B;AAEA,MAAMO,UAAU;AACdC,YAAS,IADK;AAEdC,YAAS;AAFK,GAAhB;AAKA,MAAMC,cAAc;AAClBF,YAAS,SADS;AAElBC,YAAS;AAFS,GAApB;AAKA,MAAME,QAAQ;AACZC,mBAAwBT,SADZ;AAEZU,qBAAyBV,SAFb;AAGZW,mBAAwBX,SAHZ;AAIZY,uBAA0BZ,SAJd;AAKZa,8BAAyBb,SAAzB,GAAqCC;AALzB,GAAd;AAQA,MAAMa,YAAY;AAChBL,UAAa,MADG;AAEhBM,cAAa,UAFG;AAGhBC,gBAAa,YAHG;AAIhBC,eAAa;AAJG,GAAlB;AAOA,MAAMC,YAAY;AAChBC,WAAS,OADO;AAEhBC,YAAS;AAFO,GAAlB;AAKA,MAAMC,WAAW;AACfC,aAAc,oBADC;AAEfC,iBAAc;AAGhB;;;;;;AALiB,GAAjB;;AA5CuB,MAuDjB5B,QAvDiB;AAAA;AAAA;AAwDrB,sBAAY6B,OAAZ,EAAqBC,MAArB,EAA6B;AAC3B,WAAKC,gBAAL,GAAwB,KAAxB;AACA,WAAKC,QAAL,GAAwBH,OAAxB;AACA,WAAKI,OAAL,GAAwB,KAAKC,UAAL,CAAgBJ,MAAhB,CAAxB;AACA,WAAKK,aAAL,GAAwBlC,EAAEmC,SAAF,CAAYnC,EAClC,wCAAmC4B,QAAQQ,EAA3C,4DAC0CR,QAAQQ,EADlD,SADkC,CAAZ,CAAxB;AAIA,UAAMC,aAAarC,EAAEyB,SAASE,WAAX,CAAnB;;AACA,WAAK,IAAIW,IAAI,CAAb,EAAgBA,IAAID,WAAWE,MAA/B,EAAuCD,GAAvC,EAA4C;AAC1C,YAAME,OAAOH,WAAWC,CAAX,CAAb;AACA,YAAMG,WAAWC,KAAKC,sBAAL,CAA4BH,IAA5B,CAAjB;;AACA,YAAIC,aAAa,IAAb,IAAqBzC,EAAEyC,QAAF,EAAYG,MAAZ,CAAmBhB,OAAnB,EAA4BW,MAA5B,GAAqC,CAA9D,EAAiE;AAC/D,eAAKM,SAAL,GAAiBJ,QAAjB;;AACA,eAAKP,aAAL,CAAmBY,IAAnB,CAAwBN,IAAxB;AACD;AACF;;AAED,WAAKO,OAAL,GAAe,KAAKf,OAAL,CAAatB,MAAb,GAAsB,KAAKsC,UAAL,EAAtB,GAA0C,IAAzD;;AAEA,UAAI,CAAC,KAAKhB,OAAL,CAAatB,MAAlB,EAA0B;AACxB,aAAKuC,yBAAL,CAA+B,KAAKlB,QAApC,EAA8C,KAAKG,aAAnD;AACD;;AAED,UAAI,KAAKF,OAAL,CAAavB,MAAjB,EAAyB;AACvB,aAAKA,MAAL;AACD;AACF,KAnFoB,CAqFrB;;;AArFqB;;AA+FrB;AA/FqB,WAiGrBA,MAjGqB,qBAiGZ;AACP,UAAIT,EAAE,KAAK+B,QAAP,EAAiBmB,QAAjB,CAA0BhC,UAAUL,IAApC,CAAJ,EAA+C;AAC7C,aAAKsC,IAAL;AACD,OAFD,MAEO;AACL,aAAKC,IAAL;AACD;AACF,KAvGoB;;AAAA,WAyGrBA,IAzGqB,mBAyGd;AAAA;;AACL,UAAI,KAAKtB,gBAAL,IACF9B,EAAE,KAAK+B,QAAP,EAAiBmB,QAAjB,CAA0BhC,UAAUL,IAApC,CADF,EAC6C;AAC3C;AACD;;AAED,UAAIwC,OAAJ;AACA,UAAIC,WAAJ;;AAEA,UAAI,KAAKP,OAAT,EAAkB;AAChBM,kBAAUrD,EAAEmC,SAAF,CACRnC,EAAE,KAAK+C,OAAP,EACGQ,IADH,CACQ9B,SAASC,OADjB,EAEGkB,MAFH,qBAE2B,KAAKZ,OAAL,CAAatB,MAFxC,SADQ,CAAV;;AAKA,YAAI2C,QAAQd,MAAR,KAAmB,CAAvB,EAA0B;AACxBc,oBAAU,IAAV;AACD;AACF;;AAED,UAAIA,OAAJ,EAAa;AACXC,sBAActD,EAAEqD,OAAF,EAAWG,GAAX,CAAe,KAAKX,SAApB,EAA+BY,IAA/B,CAAoCtD,QAApC,CAAd;;AACA,YAAImD,eAAeA,YAAYxB,gBAA/B,EAAiD;AAC/C;AACD;AACF;;AAED,UAAM4B,aAAa1D,EAAEY,KAAF,CAAQA,MAAMC,IAAd,CAAnB;AACAb,QAAE,KAAK+B,QAAP,EAAiB4B,OAAjB,CAAyBD,UAAzB;;AACA,UAAIA,WAAWE,kBAAX,EAAJ,EAAqC;AACnC;AACD;;AAED,UAAIP,OAAJ,EAAa;AACXtD,iBAAS8D,gBAAT,CAA0BC,IAA1B,CAA+B9D,EAAEqD,OAAF,EAAWG,GAAX,CAAe,KAAKX,SAApB,CAA/B,EAA+D,MAA/D;;AACA,YAAI,CAACS,WAAL,EAAkB;AAChBtD,YAAEqD,OAAF,EAAWI,IAAX,CAAgBtD,QAAhB,EAA0B,IAA1B;AACD;AACF;;AAED,UAAM4D,YAAY,KAAKC,aAAL,EAAlB;;AAEAhE,QAAE,KAAK+B,QAAP,EACGkC,WADH,CACe/C,UAAUC,QADzB,EAEG+C,QAFH,CAEYhD,UAAUE,UAFtB;AAIA,WAAKW,QAAL,CAAcoC,KAAd,CAAoBJ,SAApB,IAAiC,CAAjC;;AAEA,UAAI,KAAK7B,aAAL,CAAmBK,MAAnB,GAA4B,CAAhC,EAAmC;AACjCvC,UAAE,KAAKkC,aAAP,EACG+B,WADH,CACe/C,UAAUG,SADzB,EAEG+C,IAFH,CAEQ,eAFR,EAEyB,IAFzB;AAGD;;AAED,WAAKC,gBAAL,CAAsB,IAAtB;;AAEA,UAAMC,WAAW,SAAXA,QAAW,GAAM;AACrBtE,UAAE,MAAK+B,QAAP,EACGkC,WADH,CACe/C,UAAUE,UADzB,EAEG8C,QAFH,CAEYhD,UAAUC,QAFtB,EAGG+C,QAHH,CAGYhD,UAAUL,IAHtB;AAKA,cAAKkB,QAAL,CAAcoC,KAAd,CAAoBJ,SAApB,IAAiC,EAAjC;;AAEA,cAAKM,gBAAL,CAAsB,KAAtB;;AAEArE,UAAE,MAAK+B,QAAP,EAAiB4B,OAAjB,CAAyB/C,MAAME,KAA/B;AACD,OAXD;;AAaA,UAAMyD,uBAAuBR,UAAU,CAAV,EAAaS,WAAb,KAA6BT,UAAUU,KAAV,CAAgB,CAAhB,CAA1D;AACA,UAAMC,wBAAsBH,oBAA5B;AACA,UAAMI,qBAAqBjC,KAAKkC,gCAAL,CAAsC,KAAK7C,QAA3C,CAA3B;AAEA/B,QAAE,KAAK+B,QAAP,EACG8C,GADH,CACOnC,KAAKoC,cADZ,EAC4BR,QAD5B,EAEGS,oBAFH,CAEwBJ,kBAFxB;AAIA,WAAK5C,QAAL,CAAcoC,KAAd,CAAoBJ,SAApB,IAAoC,KAAKhC,QAAL,CAAc2C,UAAd,CAApC;AACD,KAvLoB;;AAAA,WAyLrBvB,IAzLqB,mBAyLd;AAAA;;AACL,UAAI,KAAKrB,gBAAL,IACF,CAAC9B,EAAE,KAAK+B,QAAP,EAAiBmB,QAAjB,CAA0BhC,UAAUL,IAApC,CADH,EAC8C;AAC5C;AACD;;AAED,UAAM6C,aAAa1D,EAAEY,KAAF,CAAQA,MAAMG,IAAd,CAAnB;AACAf,QAAE,KAAK+B,QAAP,EAAiB4B,OAAjB,CAAyBD,UAAzB;;AACA,UAAIA,WAAWE,kBAAX,EAAJ,EAAqC;AACnC;AACD;;AAED,UAAMG,YAAY,KAAKC,aAAL,EAAlB;;AAEA,WAAKjC,QAAL,CAAcoC,KAAd,CAAoBJ,SAApB,IAAoC,KAAKhC,QAAL,CAAciD,qBAAd,GAAsCjB,SAAtC,CAApC;AAEArB,WAAKuC,MAAL,CAAY,KAAKlD,QAAjB;AAEA/B,QAAE,KAAK+B,QAAP,EACGmC,QADH,CACYhD,UAAUE,UADtB,EAEG6C,WAFH,CAEe/C,UAAUC,QAFzB,EAGG8C,WAHH,CAGe/C,UAAUL,IAHzB;;AAKA,UAAI,KAAKqB,aAAL,CAAmBK,MAAnB,GAA4B,CAAhC,EAAmC;AACjC,aAAK,IAAID,IAAI,CAAb,EAAgBA,IAAI,KAAKJ,aAAL,CAAmBK,MAAvC,EAA+CD,GAA/C,EAAoD;AAClD,cAAMqB,UAAU,KAAKzB,aAAL,CAAmBI,CAAnB,CAAhB;AACA,cAAMG,WAAWC,KAAKC,sBAAL,CAA4BgB,OAA5B,CAAjB;;AACA,cAAIlB,aAAa,IAAjB,EAAuB;AACrB,gBAAMyC,QAAQlF,EAAEyC,QAAF,CAAd;;AACA,gBAAI,CAACyC,MAAMhC,QAAN,CAAehC,UAAUL,IAAzB,CAAL,EAAqC;AACnCb,gBAAE2D,OAAF,EAAWO,QAAX,CAAoBhD,UAAUG,SAA9B,EACG+C,IADH,CACQ,eADR,EACyB,KADzB;AAED;AACF;AACF;AACF;;AAED,WAAKC,gBAAL,CAAsB,IAAtB;;AAEA,UAAMC,WAAW,SAAXA,QAAW,GAAM;AACrB,eAAKD,gBAAL,CAAsB,KAAtB;;AACArE,UAAE,OAAK+B,QAAP,EACGkC,WADH,CACe/C,UAAUE,UADzB,EAEG8C,QAFH,CAEYhD,UAAUC,QAFtB,EAGGwC,OAHH,CAGW/C,MAAMI,MAHjB;AAID,OAND;;AAQA,WAAKe,QAAL,CAAcoC,KAAd,CAAoBJ,SAApB,IAAiC,EAAjC;AACA,UAAMY,qBAAqBjC,KAAKkC,gCAAL,CAAsC,KAAK7C,QAA3C,CAA3B;AAEA/B,QAAE,KAAK+B,QAAP,EACG8C,GADH,CACOnC,KAAKoC,cADZ,EAC4BR,QAD5B,EAEGS,oBAFH,CAEwBJ,kBAFxB;AAGD,KA9OoB;;AAAA,WAgPrBN,gBAhPqB,6BAgPJc,eAhPI,EAgPa;AAChC,WAAKrD,gBAAL,GAAwBqD,eAAxB;AACD,KAlPoB;;AAAA,WAoPrBC,OApPqB,sBAoPX;AACRpF,QAAEqF,UAAF,CAAa,KAAKtD,QAAlB,EAA4B5B,QAA5B;AAEA,WAAK6B,OAAL,GAAwB,IAAxB;AACA,WAAKe,OAAL,GAAwB,IAAxB;AACA,WAAKhB,QAAL,GAAwB,IAAxB;AACA,WAAKG,aAAL,GAAwB,IAAxB;AACA,WAAKJ,gBAAL,GAAwB,IAAxB;AACD,KA5PoB,EA8PrB;;;AA9PqB,WAgQrBG,UAhQqB,uBAgQVJ,MAhQU,EAgQF;AACjBA,iCACKrB,OADL,EAEKqB,MAFL;AAIAA,aAAOpB,MAAP,GAAgB6E,QAAQzD,OAAOpB,MAAf,CAAhB,CALiB,CAKsB;;AACvCiC,WAAK6C,eAAL,CAAqBtF,IAArB,EAA2B4B,MAA3B,EAAmClB,WAAnC;AACA,aAAOkB,MAAP;AACD,KAxQoB;;AAAA,WA0QrBmC,aA1QqB,4BA0QL;AACd,UAAMwB,WAAWxF,EAAE,KAAK+B,QAAP,EAAiBmB,QAAjB,CAA0B5B,UAAUC,KAApC,CAAjB;AACA,aAAOiE,WAAWlE,UAAUC,KAArB,GAA6BD,UAAUE,MAA9C;AACD,KA7QoB;;AAAA,WA+QrBwB,UA/QqB,yBA+QR;AAAA;;AACX,UAAItC,SAAS,IAAb;;AACA,UAAIgC,KAAK+C,SAAL,CAAe,KAAKzD,OAAL,CAAatB,MAA5B,CAAJ,EAAyC;AACvCA,iBAAS,KAAKsB,OAAL,CAAatB,MAAtB,CADuC,CAGvC;;AACA,YAAI,OAAO,KAAKsB,OAAL,CAAatB,MAAb,CAAoBgF,MAA3B,KAAsC,WAA1C,EAAuD;AACrDhF,mBAAS,KAAKsB,OAAL,CAAatB,MAAb,CAAoB,CAApB,CAAT;AACD;AACF,OAPD,MAOO;AACLA,iBAASV,EAAE,KAAKgC,OAAL,CAAatB,MAAf,EAAuB,CAAvB,CAAT;AACD;;AAED,UAAM+B,yDACqC,KAAKT,OAAL,CAAatB,MADlD,QAAN;AAGAV,QAAEU,MAAF,EAAU6C,IAAV,CAAed,QAAf,EAAyBkD,IAAzB,CAA8B,UAACrD,CAAD,EAAIV,OAAJ,EAAgB;AAC5C,eAAKqB,yBAAL,CACElD,SAAS6F,qBAAT,CAA+BhE,OAA/B,CADF,EAEE,CAACA,OAAD,CAFF;AAID,OALD;AAOA,aAAOlB,MAAP;AACD,KAvSoB;;AAAA,WAySrBuC,yBAzSqB,sCAySKrB,OAzSL,EAySciE,YAzSd,EAyS4B;AAC/C,UAAIjE,OAAJ,EAAa;AACX,YAAMkE,SAAS9F,EAAE4B,OAAF,EAAWsB,QAAX,CAAoBhC,UAAUL,IAA9B,CAAf;;AAEA,YAAIgF,aAAatD,MAAb,GAAsB,CAA1B,EAA6B;AAC3BvC,YAAE6F,YAAF,EACGE,WADH,CACe7E,UAAUG,SADzB,EACoC,CAACyE,MADrC,EAEG1B,IAFH,CAEQ,eAFR,EAEyB0B,MAFzB;AAGD;AACF;AACF,KAnToB,EAqTrB;;;AArTqB,aAuTdF,qBAvTc,kCAuTQhE,OAvTR,EAuTiB;AACpC,UAAMa,WAAWC,KAAKC,sBAAL,CAA4Bf,OAA5B,CAAjB;AACA,aAAOa,WAAWzC,EAAEyC,QAAF,EAAY,CAAZ,CAAX,GAA4B,IAAnC;AACD,KA1ToB;;AAAA,aA4TdoB,gBA5Tc,6BA4TGhC,MA5TH,EA4TW;AAC9B,aAAO,KAAK8D,IAAL,CAAU,YAAY;AAC3B,YAAMK,QAAUhG,EAAE,IAAF,CAAhB;AACA,YAAIyD,OAAYuC,MAAMvC,IAAN,CAAWtD,QAAX,CAAhB;;AACA,YAAM6B,4BACDxB,OADC,EAEDwF,MAAMvC,IAAN,EAFC,EAGD,OAAO5B,MAAP,KAAkB,QAAlB,IAA8BA,MAH7B,CAAN;;AAMA,YAAI,CAAC4B,IAAD,IAASzB,QAAQvB,MAAjB,IAA2B,YAAYwF,IAAZ,CAAiBpE,MAAjB,CAA/B,EAAyD;AACvDG,kBAAQvB,MAAR,GAAiB,KAAjB;AACD;;AAED,YAAI,CAACgD,IAAL,EAAW;AACTA,iBAAO,IAAI1D,QAAJ,CAAa,IAAb,EAAmBiC,OAAnB,CAAP;AACAgE,gBAAMvC,IAAN,CAAWtD,QAAX,EAAqBsD,IAArB;AACD;;AAED,YAAI,OAAO5B,MAAP,KAAkB,QAAtB,EAAgC;AAC9B,cAAI,OAAO4B,KAAK5B,MAAL,CAAP,KAAwB,WAA5B,EAAyC;AACvC,kBAAM,IAAIqE,SAAJ,wBAAkCrE,MAAlC,QAAN;AACD;;AACD4B,eAAK5B,MAAL;AACD;AACF,OAxBM,CAAP;AAyBD,KAtVoB;;AAAA;AAAA;AAAA,0BAuFA;AACnB,eAAO3B,OAAP;AACD;AAzFoB;AAAA;AAAA,0BA2FA;AACnB,eAAOM,OAAP;AACD;AA7FoB;;AAAA;AAAA;AAyVvB;;;;;;;AAMAR,IAAEmG,QAAF,EAAYC,EAAZ,CAAexF,MAAMK,cAArB,EAAqCQ,SAASE,WAA9C,EAA2D,UAAU0E,KAAV,EAAiB;AAC1E;AACA,QAAIA,MAAMC,aAAN,CAAoBC,OAApB,KAAgC,GAApC,EAAyC;AACvCF,YAAMG,cAAN;AACD;;AAED,QAAMC,WAAWzG,EAAE,IAAF,CAAjB;AACA,QAAMyC,WAAWC,KAAKC,sBAAL,CAA4B,IAA5B,CAAjB;AACA3C,MAAEyC,QAAF,EAAYkD,IAAZ,CAAiB,YAAY;AAC3B,UAAMe,UAAU1G,EAAE,IAAF,CAAhB;AACA,UAAMyD,OAAUiD,QAAQjD,IAAR,CAAatD,QAAb,CAAhB;AACA,UAAM0B,SAAU4B,OAAO,QAAP,GAAkBgD,SAAShD,IAAT,EAAlC;;AACA1D,eAAS8D,gBAAT,CAA0BC,IAA1B,CAA+B4C,OAA/B,EAAwC7E,MAAxC;AACD,KALD;AAMD,GAdD;AAgBA;;;;;;AAMA7B,IAAEO,EAAF,CAAKN,IAAL,IAAaF,SAAS8D,gBAAtB;AACA7D,IAAEO,EAAF,CAAKN,IAAL,EAAW0G,WAAX,GAAyB5G,QAAzB;;AACAC,IAAEO,EAAF,CAAKN,IAAL,EAAW2G,UAAX,GAAwB,YAAY;AAClC5G,MAAEO,EAAF,CAAKN,IAAL,IAAaK,kBAAb;AACA,WAAOP,SAAS8D,gBAAhB;AACD,GAHD;;AAKA,SAAO9D,QAAP;AACD,CA7XgB,CA6XdC,CA7Xc,CAAjB","sourcesContent":["import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Collapse = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'collapse'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.collapse'\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 toggle : true,\n parent : ''\n }\n\n const DefaultType = {\n toggle : 'boolean',\n parent : '(string|element)'\n }\n\n const Event = {\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n SHOW : 'show',\n COLLAPSE : 'collapse',\n COLLAPSING : 'collapsing',\n COLLAPSED : 'collapsed'\n }\n\n const Dimension = {\n WIDTH : 'width',\n HEIGHT : 'height'\n }\n\n const Selector = {\n ACTIVES : '.show, .collapsing',\n DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = $.makeArray($(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n const tabToggles = $(Selector.DATA_TOGGLE)\n for (let i = 0; i < tabToggles.length; i++) {\n const elem = tabToggles[i]\n const selector = Util.getSelectorFromElement(elem)\n if (selector !== null && $(selector).filter(element).length > 0) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\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 // Public\n\n toggle() {\n if ($(this._element).hasClass(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n $(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = $.makeArray(\n $(this._parent)\n .find(Selector.ACTIVES)\n .filter(`[data-parent=\"${this._config.parent}\"]`)\n )\n if (actives.length === 0) {\n actives = null\n }\n }\n\n if (actives) {\n activesData = $(actives).not(this._selector).data(DATA_KEY)\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = $.Event(Event.SHOW)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide')\n if (!activesData) {\n $(actives).data(DATA_KEY, null)\n }\n }\n\n const dimension = this._getDimension()\n\n $(this._element)\n .removeClass(ClassName.COLLAPSE)\n .addClass(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length > 0) {\n $(this._triggerArray)\n .removeClass(ClassName.COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .addClass(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n $(this._element).trigger(Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !$(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n const startEvent = $.Event(Event.HIDE)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n Util.reflow(this._element)\n\n $(this._element)\n .addClass(ClassName.COLLAPSING)\n .removeClass(ClassName.COLLAPSE)\n .removeClass(ClassName.SHOW)\n\n if (this._triggerArray.length > 0) {\n for (let i = 0; i < this._triggerArray.length; i++) {\n const trigger = this._triggerArray[i]\n const selector = Util.getSelectorFromElement(trigger)\n if (selector !== null) {\n const $elem = $(selector)\n if (!$elem.hasClass(ClassName.SHOW)) {\n $(trigger).addClass(ClassName.COLLAPSED)\n .attr('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .trigger(Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = $(this._element).hasClass(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let parent = null\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent\n\n // It's a jQuery object\n if (typeof this._config.parent.jquery !== 'undefined') {\n parent = this._config.parent[0]\n }\n } else {\n parent = $(this._config.parent)[0]\n }\n\n const selector =\n `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n $(parent).find(selector).each((i, element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = $(element).hasClass(ClassName.SHOW)\n\n if (triggerArray.length > 0) {\n $(triggerArray)\n .toggleClass(ClassName.COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = Util.getSelectorFromElement(element)\n return selector ? $(selector)[0] : null\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n const _config = {\n ...Default,\n ...$this.data(),\n ...typeof config === 'object' && config\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(this, _config)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\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 // preventDefault only for elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault()\n }\n\n const $trigger = $(this)\n const selector = Util.getSelectorFromElement(this)\n $(selector).each(function () {\n const $target = $(this)\n const data = $target.data(DATA_KEY)\n const config = data ? 'toggle' : $trigger.data()\n Collapse._jQueryInterface.call($target, config)\n })\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n\n return Collapse\n})($)\n\nexport default Collapse\n"],"file":"collapse.js"} \ No newline at end of file diff --git a/js/dist/dropdown.js b/js/dist/dropdown.js index 90e7aba29a..ddd893ebe6 100644 --- a/js/dist/dropdown.js +++ b/js/dist/dropdown.js @@ -1,4 +1,6 @@ -function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } @@ -60,7 +62,7 @@ var Dropdown = function ($) { FORM_CHILD: '.dropdown form', MENU: '.dropdown-menu', NAVBAR_NAV: '.navbar-nav', - VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled)' + VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)' }; var AttachmentMap = { TOP: 'top-start', @@ -217,7 +219,7 @@ var Dropdown = function ($) { }; _proto._getConfig = function _getConfig(config) { - config = _extends({}, this.constructor.Default, $(this._element).data(), config); + config = _objectSpread({}, this.constructor.Default, $(this._element).data(), config); Util.typeCheckConfig(NAME, config, this.constructor.DefaultType); return config; }; @@ -264,7 +266,7 @@ var Dropdown = function ($) { if (typeof this._config.offset === 'function') { offsetConf.fn = function (data) { - data.offsets = _extends({}, data.offsets, _this2._config.offset(data.offsets) || {}); + data.offsets = _objectSpread({}, data.offsets, _this2._config.offset(data.offsets) || {}); return data; }; } else { diff --git a/js/dist/dropdown.js.map b/js/dist/dropdown.js.map index 86b03035a7..8a3c39bebb 100644 --- a/js/dist/dropdown.js.map +++ b/js/dist/dropdown.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/dropdown.js"],"names":["Dropdown","$","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","fn","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","RegExp","Event","HIDE","HIDDEN","SHOW","SHOWN","CLICK","CLICK_DATA_API","KEYDOWN_DATA_API","KEYUP_DATA_API","ClassName","DISABLED","DROPUP","DROPRIGHT","DROPLEFT","MENURIGHT","MENULEFT","POSITION_STATIC","Selector","DATA_TOGGLE","FORM_CHILD","MENU","NAVBAR_NAV","VISIBLE_ITEMS","AttachmentMap","TOP","TOPEND","BOTTOM","BOTTOMEND","RIGHT","RIGHTEND","LEFT","LEFTEND","Default","offset","flip","boundary","reference","display","DefaultType","element","config","_element","_popper","_config","_getConfig","_menu","_getMenuElement","_inNavbar","_detectNavbar","_addEventListeners","toggle","disabled","hasClass","parent","_getParentFromElement","isActive","_clearMenus","relatedTarget","showEvent","trigger","isDefaultPrevented","Popper","TypeError","referenceElement","Util","isElement","jquery","addClass","_getPopperConfig","document","documentElement","closest","length","body","children","on","noop","focus","setAttribute","toggleClass","dispose","removeData","off","destroy","update","scheduleUpdate","event","preventDefault","stopPropagation","constructor","data","typeCheckConfig","find","_getPlacement","$parentDropdown","placement","offsetConf","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","_jQueryInterface","each","which","type","toggles","makeArray","i","context","dropdownMenu","test","target","tagName","contains","hideEvent","removeClass","selector","getSelectorFromElement","parentNode","_dataApiKeydownHandler","items","get","index","indexOf","call","e","Constructor","noConflict"],"mappings":"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","file":"dropdown.js","sourcesContent":["import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Dropdown = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'dropdown'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.dropdown'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n const SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\n const TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\n const ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\n const ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\n const RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\n const REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\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 : `click${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API : `keyup${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DISABLED : 'disabled',\n SHOW : 'show',\n DROPUP : 'dropup',\n DROPRIGHT : 'dropright',\n DROPLEFT : 'dropleft',\n MENURIGHT : 'dropdown-menu-right',\n MENULEFT : 'dropdown-menu-left',\n POSITION_STATIC : 'position-static'\n }\n\n const Selector = {\n DATA_TOGGLE : '[data-toggle=\"dropdown\"]',\n FORM_CHILD : '.dropdown form',\n MENU : '.dropdown-menu',\n NAVBAR_NAV : '.navbar-nav',\n VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled)'\n }\n\n const AttachmentMap = {\n TOP : 'top-start',\n TOPEND : 'top-end',\n BOTTOM : 'bottom-start',\n BOTTOMEND : 'bottom-end',\n RIGHT : 'right-start',\n RIGHTEND : 'right-end',\n LEFT : 'left-start',\n LEFTEND : 'left-end'\n }\n\n const Default = {\n offset : 0,\n flip : true,\n boundary : 'scrollParent',\n reference : 'toggle',\n display : 'dynamic'\n }\n\n const DefaultType = {\n offset : '(number|string|function)',\n flip : 'boolean',\n boundary : '(string|element)',\n reference : '(string|element)',\n display : 'string'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = $(this._menu).hasClass(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = $.Event(Event.SHOW, relatedTarget)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (Util.isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n $(parent).addClass(ClassName.POSITION_STATIC)\n }\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n $(parent).closest(Selector.NAVBAR_NAV).length === 0) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n $(this._menu).toggleClass(ClassName.SHOW)\n $(parent)\n .toggleClass(ClassName.SHOW)\n .trigger($.Event(Event.SHOWN, relatedTarget))\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._element).off(EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n $(this._element).on(Event.CLICK, (event) => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this._element).data(),\n ...config\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n this._menu = $(parent).find(Selector.MENU)[0]\n }\n return this._menu\n }\n\n _getPlacement() {\n const $parentDropdown = $(this._element).parent()\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if ($parentDropdown.hasClass(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n return placement\n }\n\n _detectNavbar() {\n return $(this._element).closest('.navbar').length > 0\n }\n\n _getPopperConfig() {\n const offsetConf = {}\n if (typeof this._config.offset === 'function') {\n offsetConf.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets) || {}\n }\n return data\n }\n } else {\n offsetConf.offset = this._config.offset\n }\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: offsetConf,\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n return popperConfig\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 : null\n\n if (!data) {\n data = new Dropdown(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = $.makeArray($(Selector.DATA_TOGGLE))\n for (let i = 0; i < toggles.length; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = $(toggles[i]).data(DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!$(parent).hasClass(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n $.contains(parent, event.target)) {\n continue\n }\n\n const hideEvent = $.Event(Event.HIDE, relatedTarget)\n $(parent).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n $(dropdownMenu).removeClass(ClassName.SHOW)\n $(parent)\n .removeClass(ClassName.SHOW)\n .trigger($.Event(Event.HIDDEN, relatedTarget))\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = Util.getSelectorFromElement(element)\n\n if (selector) {\n parent = $(selector)[0]\n }\n\n return parent || element.parentNode\n }\n\n // eslint-disable-next-line complexity\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName)\n ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n $(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(ClassName.SHOW)\n\n if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) ||\n isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n const toggle = $(parent).find(Selector.DATA_TOGGLE)[0]\n $(toggle).trigger('focus')\n }\n\n $(this).trigger('click')\n return\n }\n\n const items = $(parent).find(Selector.VISIBLE_ITEMS).get()\n\n if (items.length === 0) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n .on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\n .on(`${Event.CLICK_DATA_API} ${Event.KEYUP_DATA_API}`, Dropdown._clearMenus)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._jQueryInterface.call($(this), 'toggle')\n })\n .on(Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => {\n e.stopPropagation()\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n\n return Dropdown\n})($, Popper)\n\nexport default Dropdown\n"]} \ No newline at end of file +{"version":3,"sources":["../src/dropdown.js"],"names":["Dropdown","$","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","fn","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","RegExp","Event","HIDE","HIDDEN","SHOW","SHOWN","CLICK","CLICK_DATA_API","KEYDOWN_DATA_API","KEYUP_DATA_API","ClassName","DISABLED","DROPUP","DROPRIGHT","DROPLEFT","MENURIGHT","MENULEFT","POSITION_STATIC","Selector","DATA_TOGGLE","FORM_CHILD","MENU","NAVBAR_NAV","VISIBLE_ITEMS","AttachmentMap","TOP","TOPEND","BOTTOM","BOTTOMEND","RIGHT","RIGHTEND","LEFT","LEFTEND","Default","offset","flip","boundary","reference","display","DefaultType","element","config","_element","_popper","_config","_getConfig","_menu","_getMenuElement","_inNavbar","_detectNavbar","_addEventListeners","toggle","disabled","hasClass","parent","_getParentFromElement","isActive","_clearMenus","relatedTarget","showEvent","trigger","isDefaultPrevented","Popper","TypeError","referenceElement","Util","isElement","jquery","addClass","_getPopperConfig","document","documentElement","closest","length","body","children","on","noop","focus","setAttribute","toggleClass","dispose","removeData","off","destroy","update","scheduleUpdate","event","preventDefault","stopPropagation","constructor","data","typeCheckConfig","find","_getPlacement","$parentDropdown","placement","offsetConf","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","_jQueryInterface","each","which","type","toggles","makeArray","i","context","dropdownMenu","test","target","tagName","contains","hideEvent","removeClass","selector","getSelectorFromElement","parentNode","_dataApiKeydownHandler","items","get","index","indexOf","call","e","Constructor","noConflict"],"mappings":"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","sourcesContent":["import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Dropdown = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'dropdown'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.dropdown'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n const SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\n const TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\n const ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\n const ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\n const RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\n const REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\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 : `click${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API : `keyup${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DISABLED : 'disabled',\n SHOW : 'show',\n DROPUP : 'dropup',\n DROPRIGHT : 'dropright',\n DROPLEFT : 'dropleft',\n MENURIGHT : 'dropdown-menu-right',\n MENULEFT : 'dropdown-menu-left',\n POSITION_STATIC : 'position-static'\n }\n\n const Selector = {\n DATA_TOGGLE : '[data-toggle=\"dropdown\"]',\n FORM_CHILD : '.dropdown form',\n MENU : '.dropdown-menu',\n NAVBAR_NAV : '.navbar-nav',\n VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n }\n\n const AttachmentMap = {\n TOP : 'top-start',\n TOPEND : 'top-end',\n BOTTOM : 'bottom-start',\n BOTTOMEND : 'bottom-end',\n RIGHT : 'right-start',\n RIGHTEND : 'right-end',\n LEFT : 'left-start',\n LEFTEND : 'left-end'\n }\n\n const Default = {\n offset : 0,\n flip : true,\n boundary : 'scrollParent',\n reference : 'toggle',\n display : 'dynamic'\n }\n\n const DefaultType = {\n offset : '(number|string|function)',\n flip : 'boolean',\n boundary : '(string|element)',\n reference : '(string|element)',\n display : 'string'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = $(this._menu).hasClass(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = $.Event(Event.SHOW, relatedTarget)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (Util.isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n $(parent).addClass(ClassName.POSITION_STATIC)\n }\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n $(parent).closest(Selector.NAVBAR_NAV).length === 0) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n $(this._menu).toggleClass(ClassName.SHOW)\n $(parent)\n .toggleClass(ClassName.SHOW)\n .trigger($.Event(Event.SHOWN, relatedTarget))\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._element).off(EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n $(this._element).on(Event.CLICK, (event) => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this._element).data(),\n ...config\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n this._menu = $(parent).find(Selector.MENU)[0]\n }\n return this._menu\n }\n\n _getPlacement() {\n const $parentDropdown = $(this._element).parent()\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if ($parentDropdown.hasClass(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n return placement\n }\n\n _detectNavbar() {\n return $(this._element).closest('.navbar').length > 0\n }\n\n _getPopperConfig() {\n const offsetConf = {}\n if (typeof this._config.offset === 'function') {\n offsetConf.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets) || {}\n }\n return data\n }\n } else {\n offsetConf.offset = this._config.offset\n }\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: offsetConf,\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n return popperConfig\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 : null\n\n if (!data) {\n data = new Dropdown(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = $.makeArray($(Selector.DATA_TOGGLE))\n for (let i = 0; i < toggles.length; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = $(toggles[i]).data(DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!$(parent).hasClass(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n $.contains(parent, event.target)) {\n continue\n }\n\n const hideEvent = $.Event(Event.HIDE, relatedTarget)\n $(parent).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n $(dropdownMenu).removeClass(ClassName.SHOW)\n $(parent)\n .removeClass(ClassName.SHOW)\n .trigger($.Event(Event.HIDDEN, relatedTarget))\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = Util.getSelectorFromElement(element)\n\n if (selector) {\n parent = $(selector)[0]\n }\n\n return parent || element.parentNode\n }\n\n // eslint-disable-next-line complexity\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName)\n ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n $(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(ClassName.SHOW)\n\n if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) ||\n isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n const toggle = $(parent).find(Selector.DATA_TOGGLE)[0]\n $(toggle).trigger('focus')\n }\n\n $(this).trigger('click')\n return\n }\n\n const items = $(parent).find(Selector.VISIBLE_ITEMS).get()\n\n if (items.length === 0) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n .on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\n .on(`${Event.CLICK_DATA_API} ${Event.KEYUP_DATA_API}`, Dropdown._clearMenus)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._jQueryInterface.call($(this), 'toggle')\n })\n .on(Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => {\n e.stopPropagation()\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n\n return Dropdown\n})($, Popper)\n\nexport default Dropdown\n"],"file":"dropdown.js"} \ No newline at end of file diff --git a/js/dist/index.js.map b/js/dist/index.js.map index 734aa4a570..8cf8266958 100644 --- a/js/dist/index.js.map +++ b/js/dist/index.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/index.js"],"names":["$","TypeError","version","fn","jquery","split","minMajor","ltMajor","minMinor","minPatch","maxMajor","Error"],"mappings":"AAaA;;;;;;AAOA,CAAC,UAACA,CAAD,EAAO;AACN,MAAI,OAAOA,CAAP,KAAa,WAAjB,EAA8B;AAC5B,UAAM,IAAIC,SAAJ,CAAc,kGAAd,CAAN;AACD;;AAED,MAAMC,UAAUF,EAAEG,EAAF,CAAKC,MAAL,CAAYC,KAAZ,CAAkB,GAAlB,EAAuB,CAAvB,EAA0BA,KAA1B,CAAgC,GAAhC,CAAhB;AACA,MAAMC,WAAW,CAAjB;AACA,MAAMC,UAAU,CAAhB;AACA,MAAMC,WAAW,CAAjB;AACA,MAAMC,WAAW,CAAjB;AACA,MAAMC,WAAW,CAAjB;;AAEA,MAAIR,QAAQ,CAAR,IAAaK,OAAb,IAAwBL,QAAQ,CAAR,IAAaM,QAArC,IAAiDN,QAAQ,CAAR,MAAeI,QAAf,IAA2BJ,QAAQ,CAAR,MAAeM,QAA1C,IAAsDN,QAAQ,CAAR,IAAaO,QAApH,IAAgIP,QAAQ,CAAR,KAAcQ,QAAlJ,EAA4J;AAC1J,UAAM,IAAIC,KAAJ,CAAU,8EAAV,CAAN;AACD;AACF,CAfD,EAeGX,CAfH","file":"index.js","sourcesContent":["import $ from 'jquery'\nimport Alert from './alert'\nimport Button from './button'\nimport Carousel from './carousel'\nimport Collapse from './collapse'\nimport Dropdown from './dropdown'\nimport Modal from './modal'\nimport Popover from './popover'\nimport Scrollspy from './scrollspy'\nimport Tab from './tab'\nimport Tooltip from './tooltip'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n(($) => {\n if (typeof $ === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const minMajor = 1\n const ltMajor = 2\n const minMinor = 9\n const minPatch = 1\n const maxMajor = 4\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n }\n})($)\n\nexport {\n Util,\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n Scrollspy,\n Tab,\n Tooltip\n}\n"]} \ No newline at end of file +{"version":3,"sources":["../src/index.js"],"names":["$","TypeError","version","fn","jquery","split","minMajor","ltMajor","minMinor","minPatch","maxMajor","Error"],"mappings":"AAaA;;;;;;AAOA,CAAC,UAACA,CAAD,EAAO;AACN,MAAI,OAAOA,CAAP,KAAa,WAAjB,EAA8B;AAC5B,UAAM,IAAIC,SAAJ,CAAc,kGAAd,CAAN;AACD;;AAED,MAAMC,UAAUF,EAAEG,EAAF,CAAKC,MAAL,CAAYC,KAAZ,CAAkB,GAAlB,EAAuB,CAAvB,EAA0BA,KAA1B,CAAgC,GAAhC,CAAhB;AACA,MAAMC,WAAW,CAAjB;AACA,MAAMC,UAAU,CAAhB;AACA,MAAMC,WAAW,CAAjB;AACA,MAAMC,WAAW,CAAjB;AACA,MAAMC,WAAW,CAAjB;;AAEA,MAAIR,QAAQ,CAAR,IAAaK,OAAb,IAAwBL,QAAQ,CAAR,IAAaM,QAArC,IAAiDN,QAAQ,CAAR,MAAeI,QAAf,IAA2BJ,QAAQ,CAAR,MAAeM,QAA1C,IAAsDN,QAAQ,CAAR,IAAaO,QAApH,IAAgIP,QAAQ,CAAR,KAAcQ,QAAlJ,EAA4J;AAC1J,UAAM,IAAIC,KAAJ,CAAU,8EAAV,CAAN;AACD;AACF,CAfD,EAeGX,CAfH","sourcesContent":["import $ from 'jquery'\nimport Alert from './alert'\nimport Button from './button'\nimport Carousel from './carousel'\nimport Collapse from './collapse'\nimport Dropdown from './dropdown'\nimport Modal from './modal'\nimport Popover from './popover'\nimport Scrollspy from './scrollspy'\nimport Tab from './tab'\nimport Tooltip from './tooltip'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n(($) => {\n if (typeof $ === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const minMajor = 1\n const ltMajor = 2\n const minMinor = 9\n const minPatch = 1\n const maxMajor = 4\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n }\n})($)\n\nexport {\n Util,\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n Scrollspy,\n Tab,\n Tooltip\n}\n"],"file":"index.js"} \ No newline at end of file diff --git a/js/dist/modal.js b/js/dist/modal.js index dd47e104a7..63a53597f8 100644 --- a/js/dist/modal.js +++ b/js/dist/modal.js @@ -1,4 +1,6 @@ -function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } @@ -22,8 +24,6 @@ var Modal = function ($) { var EVENT_KEY = "." + DATA_KEY; var DATA_API_KEY = '.data-api'; var JQUERY_NO_CONFLICT = $.fn[NAME]; - var TRANSITION_DURATION = 300; - var BACKDROP_TRANSITION_DURATION = 150; var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key var Default = { @@ -102,7 +102,7 @@ var Modal = function ($) { return; } - if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) { + if ($(this._element).hasClass(ClassName.FADE)) { this._isTransitioning = true; } @@ -164,7 +164,7 @@ var Modal = function ($) { } this._isShown = false; - var transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE); + var transition = $(this._element).hasClass(ClassName.FADE); if (transition) { this._isTransitioning = true; @@ -180,9 +180,10 @@ var Modal = function ($) { $(this._dialog).off(Event.MOUSEDOWN_DISMISS); if (transition) { + var transitionDuration = Util.getTransitionDurationFromElement(this._element); $(this._element).one(Util.TRANSITION_END, function (event) { return _this2._hideModal(event); - }).emulateTransitionEnd(TRANSITION_DURATION); + }).emulateTransitionEnd(transitionDuration); } else { this._hideModal(); } @@ -207,7 +208,7 @@ var Modal = function ($) { _proto._getConfig = function _getConfig(config) { - config = _extends({}, Default, config); + config = _objectSpread({}, Default, config); Util.typeCheckConfig(NAME, config, DefaultType); return config; }; @@ -215,7 +216,7 @@ var Modal = function ($) { _proto._showElement = function _showElement(relatedTarget) { var _this3 = this; - var transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE); + var transition = $(this._element).hasClass(ClassName.FADE); if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) { // Don't move modal's DOM position @@ -252,7 +253,8 @@ var Modal = function ($) { }; if (transition) { - $(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(TRANSITION_DURATION); + var transitionDuration = Util.getTransitionDurationFromElement(this._element); + $(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration); } else { transitionComplete(); } @@ -330,7 +332,6 @@ var Modal = function ($) { var animate = $(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : ''; if (this._isShown && this._config.backdrop) { - var doAnimate = Util.supportsTransitionEnd() && animate; this._backdrop = document.createElement('div'); this._backdrop.className = ClassName.BACKDROP; @@ -356,7 +357,7 @@ var Modal = function ($) { } }); - if (doAnimate) { + if (animate) { Util.reflow(this._backdrop); } @@ -366,12 +367,13 @@ var Modal = function ($) { return; } - if (!doAnimate) { + if (!animate) { callback(); return; } - $(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION); + var backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop); + $(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration); } else if (!this._isShown && this._backdrop) { $(this._backdrop).removeClass(ClassName.SHOW); @@ -383,8 +385,10 @@ var Modal = function ($) { } }; - if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) { - $(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION); + if ($(this._element).hasClass(ClassName.FADE)) { + var _backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop); + + $(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration); } else { callbackRemove(); } @@ -491,7 +495,7 @@ var Modal = function ($) { return this.each(function () { var data = $(this).data(DATA_KEY); - var _config = _extends({}, Modal.Default, $(this).data(), typeof config === 'object' && config); + var _config = _objectSpread({}, Modal.Default, $(this).data(), typeof config === 'object' && config); if (!data) { data = new Modal(this, _config); @@ -541,7 +545,7 @@ var Modal = function ($) { target = $(selector)[0]; } - var config = $(target).data(DATA_KEY) ? 'toggle' : _extends({}, $(target).data(), $(this).data()); + var config = $(target).data(DATA_KEY) ? 'toggle' : _objectSpread({}, $(target).data(), $(this).data()); if (this.tagName === 'A' || this.tagName === 'AREA') { event.preventDefault(); diff --git a/js/dist/modal.js.map b/js/dist/modal.js.map index 28b654d248..e9f8105bf6 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","STICKY_CONTENT","NAVBAR_TOGGLER","element","config","_config","_getConfig","_element","_dialog","find","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","toggle","relatedTarget","hide","_isTransitioning","Util","supportsTransitionEnd","hasClass","showEvent","trigger","isDefaultPrevented","_checkScrollbar","_setScrollbar","_adjustDialog","document","body","addClass","_setEscapeEvent","_setResizeEvent","on","event","one","target","is","_showBackdrop","_showElement","preventDefault","hideEvent","transition","off","removeClass","TRANSITION_END","_hideModal","emulateTransitionEnd","dispose","removeData","window","handleUpdate","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","rect","getBoundingClientRect","left","right","innerWidth","_getScrollbarWidth","each","index","actualPadding","calculatedPadding","css","data","parseFloat","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","removeChild","_jQueryInterface","TypeError","selector","getSelectorFromElement","tagName","$target","call","Constructor","noConflict"],"mappings":"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","file":"modal.js","sourcesContent":["import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Modal = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'modal'\n const VERSION = '4.0.0'\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 STICKY_CONTENT : '.sticky-top',\n NAVBAR_TOGGLER : '.navbar-toggler'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Modal {\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._scrollbarWidth = 0\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\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 || this._isShown) {\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 this._adjustDialog()\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 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 const transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\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 $(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 = {\n ...Default,\n ...config\n }\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 modal's 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 === 0) {\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 event.preventDefault()\n this.hide()\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 } 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 } else if (callback) {\n callback()\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 const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < 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 sticky content margin\n $(Selector.STICKY_CONTENT).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 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 = $(document.body).css('padding-right')\n $(document.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 sticky content and navbar-toggler margin\n $(`${Selector.STICKY_CONTENT}, ${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 = $(document.body).data('padding-right')\n if (typeof padding !== 'undefined') {\n $(document.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 // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = {\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 (typeof data[config] === 'undefined') {\n throw new TypeError(`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 * 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' : {\n ...$(target).data(),\n ...$(this).data()\n }\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 * 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\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","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","STICKY_CONTENT","NAVBAR_TOGGLER","element","config","_config","_getConfig","_element","_dialog","find","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","toggle","relatedTarget","hide","_isTransitioning","hasClass","showEvent","trigger","isDefaultPrevented","_checkScrollbar","_setScrollbar","_adjustDialog","document","body","addClass","_setEscapeEvent","_setResizeEvent","on","event","one","target","is","_showBackdrop","_showElement","preventDefault","hideEvent","transition","off","removeClass","transitionDuration","Util","getTransitionDurationFromElement","TRANSITION_END","_hideModal","emulateTransitionEnd","dispose","removeData","window","handleUpdate","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","createElement","className","appendTo","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","documentElement","clientHeight","paddingLeft","paddingRight","rect","getBoundingClientRect","left","right","innerWidth","_getScrollbarWidth","each","index","actualPadding","calculatedPadding","css","data","parseFloat","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","removeChild","_jQueryInterface","TypeError","selector","getSelectorFromElement","tagName","$target","call","Constructor","noConflict"],"mappings":"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","sourcesContent":["import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Modal = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'modal'\n const VERSION = '4.0.0'\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 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 STICKY_CONTENT : '.sticky-top',\n NAVBAR_TOGGLER : '.navbar-toggler'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Modal {\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._scrollbarWidth = 0\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\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 || this._isShown) {\n return\n }\n\n if ($(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 this._adjustDialog()\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 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 const transition = $(this._element).hasClass(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\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\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n .emulateTransitionEnd(transitionDuration)\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 = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = $(this._element).hasClass(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's 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 const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(transitionDuration)\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 === 0) {\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 event.preventDefault()\n this.hide()\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 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 (animate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(backdropTransitionDuration)\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 ($(this._element).hasClass(ClassName.FADE)) {\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\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 const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < 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 sticky content margin\n $(Selector.STICKY_CONTENT).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 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 = $(document.body).css('padding-right')\n $(document.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 sticky content and navbar-toggler margin\n $(`${Selector.STICKY_CONTENT}, ${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 = $(document.body).data('padding-right')\n if (typeof padding !== 'undefined') {\n $(document.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 // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = {\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 (typeof data[config] === 'undefined') {\n throw new TypeError(`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 * 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' : {\n ...$(target).data(),\n ...$(this).data()\n }\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 * 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\nexport default Modal\n"],"file":"modal.js"} \ No newline at end of file diff --git a/js/dist/popover.js b/js/dist/popover.js index 264c436480..8f5f05bbc8 100644 --- a/js/dist/popover.js +++ b/js/dist/popover.js @@ -4,7 +4,9 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; } -function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } /** * -------------------------------------------------------------------------- @@ -26,14 +28,14 @@ var Popover = function ($) { var CLASS_PREFIX = 'bs-popover'; var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g'); - var Default = _extends({}, Tooltip.Default, { + var Default = _objectSpread({}, Tooltip.Default, { placement: 'right', trigger: 'click', content: '', template: '' }); - var DefaultType = _extends({}, Tooltip.DefaultType, { + var DefaultType = _objectSpread({}, Tooltip.DefaultType, { content: '(string|element|function)' }); diff --git a/js/dist/popover.js.map b/js/dist/popover.js.map index dc32092452..ce25f6b2ae 100644 --- a/js/dist/popover.js.map +++ b/js/dist/popover.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/popover.js"],"names":["Popover","$","NAME","VERSION","DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","fn","CLASS_PREFIX","BSCLS_PREFIX_REGEX","RegExp","Default","Tooltip","placement","trigger","content","template","DefaultType","ClassName","FADE","SHOW","Selector","TITLE","CONTENT","Event","HIDE","HIDDEN","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","isWithContent","getTitle","_getContent","addAttachmentClass","attachment","getTipElement","addClass","tip","config","setContent","$tip","setElementContent","find","call","element","removeClass","getAttribute","_cleanTipClass","tabClass","attr","match","length","join","_jQueryInterface","each","data","_config","test","TypeError","Constructor","noConflict"],"mappings":"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","file":"popover.js","sourcesContent":["import $ from 'jquery'\nimport Tooltip from './tooltip'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Popover = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'popover'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.popover'\n const EVENT_KEY = `.${DATA_KEY}`\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const CLASS_PREFIX = 'bs-popover'\n const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n const Default = {\n ...Tooltip.Default,\n placement : 'right',\n trigger : 'click',\n content : '',\n template : '
' +\n '
' +\n '

' +\n '
'\n }\n\n const DefaultType = {\n ...Tooltip.DefaultType,\n content : '(string|element|function)'\n }\n\n const ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n TITLE : '.popover-header',\n CONTENT : '.popover-body'\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 INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n\n // We use append for html objects to maintain js events\n this.setElementContent($tip.find(Selector.TITLE), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n this.setElementContent($tip.find(Selector.CONTENT), content)\n\n $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\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 : null\n\n if (!data && /destroy|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n\n return Popover\n})($)\n\nexport default Popover\n"]} \ No newline at end of file +{"version":3,"sources":["../src/popover.js"],"names":["Popover","$","NAME","VERSION","DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","fn","CLASS_PREFIX","BSCLS_PREFIX_REGEX","RegExp","Default","Tooltip","placement","trigger","content","template","DefaultType","ClassName","FADE","SHOW","Selector","TITLE","CONTENT","Event","HIDE","HIDDEN","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","isWithContent","getTitle","_getContent","addAttachmentClass","attachment","getTipElement","addClass","tip","config","setContent","$tip","setElementContent","find","call","element","removeClass","getAttribute","_cleanTipClass","tabClass","attr","match","length","join","_jQueryInterface","each","data","_config","test","TypeError","Constructor","noConflict"],"mappings":"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","sourcesContent":["import $ from 'jquery'\nimport Tooltip from './tooltip'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Popover = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'popover'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.popover'\n const EVENT_KEY = `.${DATA_KEY}`\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const CLASS_PREFIX = 'bs-popover'\n const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n const Default = {\n ...Tooltip.Default,\n placement : 'right',\n trigger : 'click',\n content : '',\n template : '
' +\n '
' +\n '

' +\n '
'\n }\n\n const DefaultType = {\n ...Tooltip.DefaultType,\n content : '(string|element|function)'\n }\n\n const ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n TITLE : '.popover-header',\n CONTENT : '.popover-body'\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 INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n\n // We use append for html objects to maintain js events\n this.setElementContent($tip.find(Selector.TITLE), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n this.setElementContent($tip.find(Selector.CONTENT), content)\n\n $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\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 : null\n\n if (!data && /destroy|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n\n return Popover\n})($)\n\nexport default Popover\n"],"file":"popover.js"} \ No newline at end of file diff --git a/js/dist/scrollspy.js b/js/dist/scrollspy.js index b04b60deb8..71362a7548 100644 --- a/js/dist/scrollspy.js +++ b/js/dist/scrollspy.js @@ -1,4 +1,6 @@ -function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } @@ -144,7 +146,7 @@ var ScrollSpy = function ($) { _proto._getConfig = function _getConfig(config) { - config = _extends({}, Default, config); + config = _objectSpread({}, Default, config); if (typeof config.target !== 'string') { var id = $(config.target).attr('id'); diff --git a/js/dist/scrollspy.js.map b/js/dist/scrollspy.js.map index 7be80c5d03..102cf2d8d1 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","ACTIVE","Selector","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","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","id","attr","getUID","typeCheckConfig","pageYOffset","scrollTop","scrollHeight","Math","max","document","body","documentElement","_getOffsetHeight","innerHeight","maxScroll","length","_activate","_clear","i","isActiveTarget","queries","split","selector","$link","join","hasClass","closest","find","addClass","parents","prev","children","trigger","relatedTarget","removeClass","_jQueryInterface","each","data","TypeError","scrollSpys","$spy","call","Constructor","noConflict"],"mappings":"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","file":"scrollspy.js","sourcesContent":["import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst ScrollSpy = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'scrollspy'\n const VERSION = '4.0.0'\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 NAV_ITEMS : '.nav-item',\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 * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class ScrollSpy {\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 // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window\n ? OffsetMethod.OFFSET : OffsetMethod.POSITION\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 // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\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 (typeof 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 // eslint-disable-next-line arrow-body-style\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