1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535 |
- /*!
- * Bootstrap v4.0.0-alpha.6 (https://getbootstrap.com)
- * Copyright 2011-2017 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */
- if (typeof jQuery === 'undefined') {
- throw new Error('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.')
- }
- +function ($) {
- var version = $.fn.jquery.split(' ')[0].split('.')
- if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] >= 4)) {
- throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')
- }
- }(jQuery);
- +function () {
- var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
- var _createClass = function () { 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- /**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-alpha.6): util.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
- var Util = function ($) {
- /**
- * ------------------------------------------------------------------------
- * Private TransitionEnd Helpers
- * ------------------------------------------------------------------------
- */
- var transition = false;
- var MAX_UID = 1000000;
- var TransitionEndEvent = {
- WebkitTransition: 'webkitTransitionEnd',
- MozTransition: 'transitionend',
- OTransition: 'oTransitionEnd otransitionend',
- transition: 'transitionend'
- };
- // shoutout AngusCroll (https://goo.gl/pxwQGp)
- function toType(obj) {
- return {}.toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
- }
- function isElement(obj) {
- return (obj[0] || obj).nodeType;
- }
- function getSpecialTransitionEndEvent() {
- return {
- bindType: transition.end,
- delegateType: transition.end,
- handle: function handle(event) {
- if ($(event.target).is(this)) {
- return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
- }
- return undefined;
- }
- };
- }
- function transitionEndTest() {
- if (window.QUnit) {
- return false;
- }
- var el = document.createElement('bootstrap');
- for (var name in TransitionEndEvent) {
- if (el.style[name] !== undefined) {
- return {
- end: TransitionEndEvent[name]
- };
- }
- }
- return false;
- }
- function transitionEndEmulator(duration) {
- var _this = this;
- var called = false;
- $(this).one(Util.TRANSITION_END, function () {
- called = true;
- });
- setTimeout(function () {
- if (!called) {
- Util.triggerTransitionEnd(_this);
- }
- }, duration);
- return this;
- }
- function setTransitionEndSupport() {
- transition = transitionEndTest();
- $.fn.emulateTransitionEnd = transitionEndEmulator;
- if (Util.supportsTransitionEnd()) {
- $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
- }
- }
- /**
- * --------------------------------------------------------------------------
- * Public Util Api
- * --------------------------------------------------------------------------
- */
- var Util = {
- TRANSITION_END: 'bsTransitionEnd',
- getUID: function getUID(prefix) {
- do {
- // eslint-disable-next-line no-bitwise
- prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
- } while (document.getElementById(prefix));
- return prefix;
- },
- getSelectorFromElement: function getSelectorFromElement(element) {
- var selector = element.getAttribute('data-target');
- if (!selector) {
- selector = element.getAttribute('href') || '';
- selector = /^#[a-z]/i.test(selector) ? selector : null;
- }
- return selector;
- },
- reflow: function reflow(element) {
- return element.offsetHeight;
- },
- triggerTransitionEnd: function triggerTransitionEnd(element) {
- $(element).trigger(transition.end);
- },
- supportsTransitionEnd: function supportsTransitionEnd() {
- return Boolean(transition);
- },
- typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {
- for (var property in configTypes) {
- if (configTypes.hasOwnProperty(property)) {
- var expectedTypes = configTypes[property];
- var value = config[property];
- var valueType = value && isElement(value) ? 'element' : toType(value);
- if (!new RegExp(expectedTypes).test(valueType)) {
- throw new Error(componentName.toUpperCase() + ': ' + ('Option "' + property + '" provided type "' + valueType + '" ') + ('but expected type "' + expectedTypes + '".'));
- }
- }
- }
- }
- };
- setTransitionEndSupport();
- return Util;
- }(jQuery);
- /**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-alpha.6): alert.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
- var Alert = function ($) {
- /**
- * ------------------------------------------------------------------------
- * Constants
- * ------------------------------------------------------------------------
- */
- var NAME = 'alert';
- var VERSION = '4.0.0-alpha.6';
- var DATA_KEY = 'bs.alert';
- 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"]'
- };
- var Event = {
- CLOSE: 'close' + EVENT_KEY,
- CLOSED: 'closed' + EVENT_KEY,
- CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY
- };
- var ClassName = {
- ALERT: 'alert',
- FADE: 'fade',
- SHOW: 'show'
- };
- /**
- * ------------------------------------------------------------------------
- * Class Definition
- * ------------------------------------------------------------------------
- */
- var Alert = function () {
- function Alert(element) {
- _classCallCheck(this, Alert);
- this._element = element;
- }
- // getters
- // public
- Alert.prototype.close = function close(element) {
- element = element || this._element;
- var rootElement = this._getRootElement(element);
- var customEvent = this._triggerCloseEvent(rootElement);
- if (customEvent.isDefaultPrevented()) {
- return;
- }
- this._removeElement(rootElement);
- };
- Alert.prototype.dispose = function dispose() {
- $.removeData(this._element, DATA_KEY);
- this._element = null;
- };
- // private
- Alert.prototype._getRootElement = function _getRootElement(element) {
- var selector = Util.getSelectorFromElement(element);
- var parent = false;
- if (selector) {
- parent = $(selector)[0];
- }
- if (!parent) {
- parent = $(element).closest('.' + ClassName.ALERT)[0];
- }
- return parent;
- };
- Alert.prototype._triggerCloseEvent = function _triggerCloseEvent(element) {
- var closeEvent = $.Event(Event.CLOSE);
- $(element).trigger(closeEvent);
- return closeEvent;
- };
- Alert.prototype._removeElement = function _removeElement(element) {
- var _this2 = this;
- $(element).removeClass(ClassName.SHOW);
- if (!Util.supportsTransitionEnd() || !$(element).hasClass(ClassName.FADE)) {
- this._destroyElement(element);
- return;
- }
- $(element).one(Util.TRANSITION_END, function (event) {
- return _this2._destroyElement(element, event);
- }).emulateTransitionEnd(TRANSITION_DURATION);
- };
- Alert.prototype._destroyElement = function _destroyElement(element) {
- $(element).detach().trigger(Event.CLOSED).remove();
- };
- // static
- Alert._jQueryInterface = function _jQueryInterface(config) {
- return this.each(function () {
- var $element = $(this);
- var data = $element.data(DATA_KEY);
- if (!data) {
- data = new Alert(this);
- $element.data(DATA_KEY, data);
- }
- if (config === 'close') {
- data[config](this);
- }
- });
- };
- Alert._handleDismiss = function _handleDismiss(alertInstance) {
- return function (event) {
- if (event) {
- event.preventDefault();
- }
- alertInstance.close(this);
- };
- };
- _createClass(Alert, null, [{
- key: 'VERSION',
- get: function get() {
- return VERSION;
- }
- }]);
- return Alert;
- }();
- /**
- * ------------------------------------------------------------------------
- * Data Api implementation
- * ------------------------------------------------------------------------
- */
- $(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()));
- /**
- * ------------------------------------------------------------------------
- * jQuery
- * ------------------------------------------------------------------------
- */
- $.fn[NAME] = Alert._jQueryInterface;
- $.fn[NAME].Constructor = Alert;
- $.fn[NAME].noConflict = function () {
- $.fn[NAME] = JQUERY_NO_CONFLICT;
- return Alert._jQueryInterface;
- };
- return Alert;
- }(jQuery);
- /**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-alpha.6): button.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
- var Button = function ($) {
- /**
- * ------------------------------------------------------------------------
- * Constants
- * ------------------------------------------------------------------------
- */
- var NAME = 'button';
- var VERSION = '4.0.0-alpha.6';
- var DATA_KEY = 'bs.button';
- var EVENT_KEY = '.' + DATA_KEY;
- var DATA_API_KEY = '.data-api';
- var JQUERY_NO_CONFLICT = $.fn[NAME];
- var ClassName = {
- ACTIVE: 'active',
- BUTTON: 'btn',
- FOCUS: 'focus'
- };
- var Selector = {
- DATA_TOGGLE_CARROT: '[data-toggle^="button"]',
- DATA_TOGGLE: '[data-toggle="buttons"]',
- INPUT: 'input',
- ACTIVE: '.active',
- BUTTON: '.btn'
- };
- var Event = {
- CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY,
- FOCUS_BLUR_DATA_API: 'focus' + EVENT_KEY + DATA_API_KEY + ' ' + ('blur' + EVENT_KEY + DATA_API_KEY)
- };
- /**
- * ------------------------------------------------------------------------
- * Class Definition
- * ------------------------------------------------------------------------
- */
- var Button = function () {
- function Button(element) {
- _classCallCheck(this, Button);
- this._element = element;
- }
- // getters
- // public
- Button.prototype.toggle = function toggle() {
- var triggerChangeEvent = true;
- var rootElement = $(this._element).closest(Selector.DATA_TOGGLE)[0];
- if (rootElement) {
- var input = $(this._element).find(Selector.INPUT)[0];
- if (input) {
- if (input.type === 'radio') {
- if (input.checked && $(this._element).hasClass(ClassName.ACTIVE)) {
- triggerChangeEvent = false;
- } else {
- var activeElement = $(rootElement).find(Selector.ACTIVE)[0];
- if (activeElement) {
- $(activeElement).removeClass(ClassName.ACTIVE);
- }
- }
- }
- if (triggerChangeEvent) {
- input.checked = !$(this._element).hasClass(ClassName.ACTIVE);
- $(input).trigger('change');
- }
- input.focus();
- }
- }
- this._element.setAttribute('aria-pressed', !$(this._element).hasClass(ClassName.ACTIVE));
- if (triggerChangeEvent) {
- $(this._element).toggleClass(ClassName.ACTIVE);
- }
- };
- Button.prototype.dispose = function dispose() {
- $.removeData(this._element, DATA_KEY);
- this._element = null;
- };
- // static
- Button._jQueryInterface = function _jQueryInterface(config) {
- return this.each(function () {
- var data = $(this).data(DATA_KEY);
- if (!data) {
- data = new Button(this);
- $(this).data(DATA_KEY, data);
- }
- if (config === 'toggle') {
- data[config]();
- }
- });
- };
- _createClass(Button, null, [{
- key: 'VERSION',
- get: function get() {
- return VERSION;
- }
- }]);
- return Button;
- }();
- /**
- * ------------------------------------------------------------------------
- * Data Api implementation
- * ------------------------------------------------------------------------
- */
- $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
- event.preventDefault();
- var button = event.target;
- if (!$(button).hasClass(ClassName.BUTTON)) {
- button = $(button).closest(Selector.BUTTON);
- }
- Button._jQueryInterface.call($(button), 'toggle');
- }).on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
- var button = $(event.target).closest(Selector.BUTTON)[0];
- $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type));
- });
- /**
- * ------------------------------------------------------------------------
- * jQuery
- * ------------------------------------------------------------------------
- */
- $.fn[NAME] = Button._jQueryInterface;
- $.fn[NAME].Constructor = Button;
- $.fn[NAME].noConflict = function () {
- $.fn[NAME] = JQUERY_NO_CONFLICT;
- return Button._jQueryInterface;
- };
- return Button;
- }(jQuery);
- /**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-alpha.6): carousel.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
- var Carousel = function ($) {
- /**
- * ------------------------------------------------------------------------
- * Constants
- * ------------------------------------------------------------------------
- */
- var NAME = 'carousel';
- var VERSION = '4.0.0-alpha.6';
- var DATA_KEY = 'bs.carousel';
- var EVENT_KEY = '.' + DATA_KEY;
- var DATA_API_KEY = '.data-api';
- var JQUERY_NO_CONFLICT = $.fn[NAME];
- var TRANSITION_DURATION = 600;
- var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key
- var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key
- var Default = {
- interval: 5000,
- keyboard: true,
- slide: false,
- pause: 'hover',
- wrap: true
- };
- var DefaultType = {
- interval: '(number|boolean)',
- keyboard: 'boolean',
- slide: '(boolean|string)',
- pause: '(string|boolean)',
- wrap: 'boolean'
- };
- var Direction = {
- NEXT: 'next',
- PREV: 'prev',
- LEFT: 'left',
- RIGHT: 'right'
- };
- var Event = {
- SLIDE: 'slide' + EVENT_KEY,
- SLID: 'slid' + EVENT_KEY,
- KEYDOWN: 'keydown' + EVENT_KEY,
- MOUSEENTER: 'mouseenter' + EVENT_KEY,
- MOUSELEAVE: 'mouseleave' + EVENT_KEY,
- LOAD_DATA_API: 'load' + EVENT_KEY + DATA_API_KEY,
- CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY
- };
- var ClassName = {
- CAROUSEL: 'carousel',
- ACTIVE: 'active',
- SLIDE: 'slide',
- RIGHT: 'carousel-item-right',
- LEFT: 'carousel-item-left',
- NEXT: 'carousel-item-next',
- PREV: 'carousel-item-prev',
- ITEM: 'carousel-item'
- };
- var Selector = {
- ACTIVE: '.active',
- ACTIVE_ITEM: '.active.carousel-item',
- ITEM: '.carousel-item',
- NEXT_PREV: '.carousel-item-next, .carousel-item-prev',
- INDICATORS: '.carousel-indicators',
- DATA_SLIDE: '[data-slide], [data-slide-to]',
- DATA_RIDE: '[data-ride="carousel"]'
- };
- /**
- * ------------------------------------------------------------------------
- * Class Definition
- * ------------------------------------------------------------------------
- */
- var Carousel = function () {
- function Carousel(element, config) {
- _classCallCheck(this, Carousel);
- this._items = null;
- this._interval = null;
- this._activeElement = null;
- this._isPaused = false;
- this._isSliding = false;
- this._config = this._getConfig(config);
- this._element = $(element)[0];
- this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0];
- this._addEventListeners();
- }
- // getters
- // public
- Carousel.prototype.next = function next() {
- if (this._isSliding) {
- throw new Error('Carousel is sliding');
- }
- this._slide(Direction.NEXT);
- };
- Carousel.prototype.nextWhenVisible = function nextWhenVisible() {
- // Don't call next when the page isn't visible
- if (!document.hidden) {
- this.next();
- }
- };
- Carousel.prototype.prev = function prev() {
- if (this._isSliding) {
- throw new Error('Carousel is sliding');
- }
- this._slide(Direction.PREVIOUS);
- };
- Carousel.prototype.pause = function pause(event) {
- if (!event) {
- this._isPaused = true;
- }
- if ($(this._element).find(Selector.NEXT_PREV)[0] && Util.supportsTransitionEnd()) {
- Util.triggerTransitionEnd(this._element);
- this.cycle(true);
- }
- clearInterval(this._interval);
- this._interval = null;
- };
- Carousel.prototype.cycle = function cycle(event) {
- if (!event) {
- this._isPaused = false;
- }
- if (this._interval) {
- clearInterval(this._interval);
- this._interval = null;
- }
- if (this._config.interval && !this._isPaused) {
- this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);
- }
- };
- Carousel.prototype.to = function to(index) {
- var _this3 = this;
- this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0];
- var activeIndex = this._getItemIndex(this._activeElement);
- if (index > this._items.length - 1 || index < 0) {
- return;
- }
- if (this._isSliding) {
- $(this._element).one(Event.SLID, function () {
- return _this3.to(index);
- });
- return;
- }
- if (activeIndex === index) {
- this.pause();
- this.cycle();
- return;
- }
- var direction = index > activeIndex ? Direction.NEXT : Direction.PREVIOUS;
- this._slide(direction, this._items[index]);
- };
- Carousel.prototype.dispose = function dispose() {
- $(this._element).off(EVENT_KEY);
- $.removeData(this._element, DATA_KEY);
- this._items = null;
- this._config = null;
- this._element = null;
- this._interval = null;
- this._isPaused = null;
- this._isSliding = null;
- this._activeElement = null;
- this._indicatorsElement = null;
- };
- // private
- Carousel.prototype._getConfig = function _getConfig(config) {
- config = $.extend({}, Default, config);
- Util.typeCheckConfig(NAME, config, DefaultType);
- return config;
- };
- Carousel.prototype._addEventListeners = function _addEventListeners() {
- var _this4 = this;
- if (this._config.keyboard) {
- $(this._element).on(Event.KEYDOWN, function (event) {
- return _this4._keydown(event);
- });
- }
- if (this._config.pause === 'hover' && !('ontouchstart' in document.documentElement)) {
- $(this._element).on(Event.MOUSEENTER, function (event) {
- return _this4.pause(event);
- }).on(Event.MOUSELEAVE, function (event) {
- return _this4.cycle(event);
- });
- }
- };
- Carousel.prototype._keydown = function _keydown(event) {
- if (/input|textarea/i.test(event.target.tagName)) {
- return;
- }
- switch (event.which) {
- case ARROW_LEFT_KEYCODE:
- event.preventDefault();
- this.prev();
- break;
- case ARROW_RIGHT_KEYCODE:
- event.preventDefault();
- this.next();
- break;
- default:
- return;
- }
- };
- Carousel.prototype._getItemIndex = function _getItemIndex(element) {
- this._items = $.makeArray($(element).parent().find(Selector.ITEM));
- return this._items.indexOf(element);
- };
- Carousel.prototype._getItemByDirection = function _getItemByDirection(direction, activeElement) {
- var isNextDirection = direction === Direction.NEXT;
- var isPrevDirection = direction === Direction.PREVIOUS;
- var activeIndex = this._getItemIndex(activeElement);
- var lastItemIndex = this._items.length - 1;
- var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;
- if (isGoingToWrap && !this._config.wrap) {
- return activeElement;
- }
- var delta = direction === Direction.PREVIOUS ? -1 : 1;
- var itemIndex = (activeIndex + delta) % this._items.length;
- return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];
- };
- Carousel.prototype._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {
- var slideEvent = $.Event(Event.SLIDE, {
- relatedTarget: relatedTarget,
- direction: eventDirectionName
- });
- $(this._element).trigger(slideEvent);
- return slideEvent;
- };
- Carousel.prototype._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {
- if (this._indicatorsElement) {
- $(this._indicatorsElement).find(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
- var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];
- if (nextIndicator) {
- $(nextIndicator).addClass(ClassName.ACTIVE);
- }
- }
- };
- Carousel.prototype._slide = function _slide(direction, element) {
- var _this5 = this;
- var activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0];
- var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);
- var isCycling = Boolean(this._interval);
- var directionalClassName = void 0;
- var orderClassName = void 0;
- var eventDirectionName = void 0;
- if (direction === Direction.NEXT) {
- directionalClassName = ClassName.LEFT;
- orderClassName = ClassName.NEXT;
- eventDirectionName = Direction.LEFT;
- } else {
- directionalClassName = ClassName.RIGHT;
- orderClassName = ClassName.PREV;
- eventDirectionName = Direction.RIGHT;
- }
- if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {
- this._isSliding = false;
- return;
- }
- var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);
- if (slideEvent.isDefaultPrevented()) {
- return;
- }
- if (!activeElement || !nextElement) {
- // some weirdness is happening, so we bail
- return;
- }
- this._isSliding = true;
- if (isCycling) {
- this.pause();
- }
- this._setActiveIndicatorElement(nextElement);
- var slidEvent = $.Event(Event.SLID, {
- relatedTarget: nextElement,
- direction: eventDirectionName
- });
- if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.SLIDE)) {
- $(nextElement).addClass(orderClassName);
- Util.reflow(nextElement);
- $(activeElement).addClass(directionalClassName);
- $(nextElement).addClass(directionalClassName);
- $(activeElement).one(Util.TRANSITION_END, function () {
- $(nextElement).removeClass(directionalClassName + ' ' + orderClassName).addClass(ClassName.ACTIVE);
- $(activeElement).removeClass(ClassName.ACTIVE + ' ' + orderClassName + ' ' + directionalClassName);
- _this5._isSliding = false;
- setTimeout(function () {
- return $(_this5._element).trigger(slidEvent);
- }, 0);
- }).emulateTransitionEnd(TRANSITION_DURATION);
- } else {
- $(activeElement).removeClass(ClassName.ACTIVE);
- $(nextElement).addClass(ClassName.ACTIVE);
- this._isSliding = false;
- $(this._element).trigger(slidEvent);
- }
- if (isCycling) {
- this.cycle();
- }
- };
- // static
- Carousel._jQueryInterface = function _jQueryInterface(config) {
- return this.each(function () {
- var data = $(this).data(DATA_KEY);
- var _config = $.extend({}, Default, $(this).data());
- if ((typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object') {
- $.extend(_config, config);
- }
- var action = typeof config === 'string' ? config : _config.slide;
- if (!data) {
- data = new Carousel(this, _config);
- $(this).data(DATA_KEY, data);
- }
- if (typeof config === 'number') {
- data.to(config);
- } else if (typeof action === 'string') {
- if (data[action] === undefined) {
- throw new Error('No method named "' + action + '"');
- }
- data[action]();
- } else if (_config.interval) {
- data.pause();
- data.cycle();
- }
- });
- };
- Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {
- var selector = Util.getSelectorFromElement(this);
- if (!selector) {
- return;
- }
- var target = $(selector)[0];
- if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {
- return;
- }
- var config = $.extend({}, $(target).data(), $(this).data());
- var slideIndex = this.getAttribute('data-slide-to');
- if (slideIndex) {
- config.interval = false;
- }
- Carousel._jQueryInterface.call($(target), config);
- if (slideIndex) {
- $(target).data(DATA_KEY).to(slideIndex);
- }
- event.preventDefault();
- };
- _createClass(Carousel, null, [{
- key: 'VERSION',
- get: function get() {
- return VERSION;
- }
- }, {
- key: 'Default',
- get: function get() {
- return Default;
- }
- }]);
- return Carousel;
- }();
- /**
- * ------------------------------------------------------------------------
- * Data Api implementation
- * ------------------------------------------------------------------------
- */
- $(document).on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler);
- $(window).on(Event.LOAD_DATA_API, function () {
- $(Selector.DATA_RIDE).each(function () {
- var $carousel = $(this);
- Carousel._jQueryInterface.call($carousel, $carousel.data());
- });
- });
- /**
- * ------------------------------------------------------------------------
- * jQuery
- * ------------------------------------------------------------------------
- */
- $.fn[NAME] = Carousel._jQueryInterface;
- $.fn[NAME].Constructor = Carousel;
- $.fn[NAME].noConflict = function () {
- $.fn[NAME] = JQUERY_NO_CONFLICT;
- return Carousel._jQueryInterface;
- };
- return Carousel;
- }(jQuery);
- /**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-alpha.6): collapse.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
- var Collapse = function ($) {
- /**
- * ------------------------------------------------------------------------
- * Constants
- * ------------------------------------------------------------------------
- */
- var NAME = 'collapse';
- var VERSION = '4.0.0-alpha.6';
- var DATA_KEY = 'bs.collapse';
- 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: ''
- };
- var DefaultType = {
- toggle: 'boolean',
- parent: 'string'
- };
- var Event = {
- SHOW: 'show' + EVENT_KEY,
- SHOWN: 'shown' + EVENT_KEY,
- HIDE: 'hide' + EVENT_KEY,
- HIDDEN: 'hidden' + EVENT_KEY,
- CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY
- };
- var ClassName = {
- SHOW: 'show',
- COLLAPSE: 'collapse',
- COLLAPSING: 'collapsing',
- COLLAPSED: 'collapsed'
- };
- var Dimension = {
- WIDTH: 'width',
- HEIGHT: 'height'
- };
- var Selector = {
- ACTIVES: '.card > .show, .card > .collapsing',
- DATA_TOGGLE: '[data-toggle="collapse"]'
- };
- /**
- * ------------------------------------------------------------------------
- * Class Definition
- * ------------------------------------------------------------------------
- */
- var Collapse = function () {
- function Collapse(element, config) {
- _classCallCheck(this, Collapse);
- this._isTransitioning = false;
- this._element = element;
- this._config = this._getConfig(config);
- this._triggerArray = $.makeArray($('[data-toggle="collapse"][href="#' + element.id + '"],' + ('[data-toggle="collapse"][data-target="#' + element.id + '"]')));
- this._parent = this._config.parent ? this._getParent() : null;
- if (!this._config.parent) {
- this._addAriaAndCollapsedClass(this._element, this._triggerArray);
- }
- if (this._config.toggle) {
- this.toggle();
- }
- }
- // getters
- // public
- Collapse.prototype.toggle = function toggle() {
- if ($(this._element).hasClass(ClassName.SHOW)) {
- this.hide();
- } else {
- this.show();
- }
- };
- Collapse.prototype.show = function show() {
- var _this6 = this;
- if (this._isTransitioning) {
- throw new Error('Collapse is transitioning');
- }
- if ($(this._element).hasClass(ClassName.SHOW)) {
- return;
- }
- var actives = void 0;
- var activesData = void 0;
- if (this._parent) {
- actives = $.makeArray($(this._parent).find(Selector.ACTIVES));
- if (!actives.length) {
- actives = null;
- }
- }
- if (actives) {
- activesData = $(actives).data(DATA_KEY);
- if (activesData && activesData._isTransitioning) {
- return;
- }
- }
- var startEvent = $.Event(Event.SHOW);
- $(this._element).trigger(startEvent);
- if (startEvent.isDefaultPrevented()) {
- return;
- }
- if (actives) {
- Collapse._jQueryInterface.call($(actives), 'hide');
- if (!activesData) {
- $(actives).data(DATA_KEY, null);
- }
- }
- var dimension = this._getDimension();
- $(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);
- this._element.style[dimension] = 0;
- this._element.setAttribute('aria-expanded', true);
- if (this._triggerArray.length) {
- $(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);
- }
- this.setTransitioning(true);
- var complete = function complete() {
- $(_this6._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.SHOW);
- _this6._element.style[dimension] = '';
- _this6.setTransitioning(false);
- $(_this6._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);
- this._element.style[dimension] = this._element[scrollSize] + 'px';
- };
- Collapse.prototype.hide = function hide() {
- var _this7 = this;
- if (this._isTransitioning) {
- throw new Error('Collapse is transitioning');
- }
- if (!$(this._element).hasClass(ClassName.SHOW)) {
- return;
- }
- var startEvent = $.Event(Event.HIDE);
- $(this._element).trigger(startEvent);
- if (startEvent.isDefaultPrevented()) {
- return;
- }
- var dimension = this._getDimension();
- var offsetDimension = dimension === Dimension.WIDTH ? 'offsetWidth' : 'offsetHeight';
- this._element.style[dimension] = this._element[offsetDimension] + 'px';
- Util.reflow(this._element);
- $(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);
- this._element.setAttribute('aria-expanded', false);
- if (this._triggerArray.length) {
- $(this._triggerArray).addClass(ClassName.COLLAPSED).attr('aria-expanded', false);
- }
- this.setTransitioning(true);
- var complete = function complete() {
- _this7.setTransitioning(false);
- $(_this7._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN);
- };
- this._element.style[dimension] = '';
- if (!Util.supportsTransitionEnd()) {
- complete();
- return;
- }
- $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
- };
- Collapse.prototype.setTransitioning = function setTransitioning(isTransitioning) {
- this._isTransitioning = isTransitioning;
- };
- Collapse.prototype.dispose = function dispose() {
- $.removeData(this._element, DATA_KEY);
- this._config = null;
- this._parent = null;
- this._element = null;
- this._triggerArray = null;
- this._isTransitioning = null;
- };
- // private
- Collapse.prototype._getConfig = function _getConfig(config) {
- config = $.extend({}, Default, config);
- config.toggle = Boolean(config.toggle); // coerce string values
- Util.typeCheckConfig(NAME, config, DefaultType);
- return config;
- };
- Collapse.prototype._getDimension = function _getDimension() {
- var hasWidth = $(this._element).hasClass(Dimension.WIDTH);
- return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;
- };
- Collapse.prototype._getParent = function _getParent() {
- var _this8 = this;
- var parent = $(this._config.parent)[0];
- var selector = '[data-toggle="collapse"][data-parent="' + this._config.parent + '"]';
- $(parent).find(selector).each(function (i, element) {
- _this8._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);
- });
- return parent;
- };
- Collapse.prototype._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
- if (element) {
- var isOpen = $(element).hasClass(ClassName.SHOW);
- element.setAttribute('aria-expanded', isOpen);
- if (triggerArray.length) {
- $(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
- }
- }
- };
- // static
- Collapse._getTargetFromElement = function _getTargetFromElement(element) {
- var selector = Util.getSelectorFromElement(element);
- return selector ? $(selector)[0] : null;
- };
- Collapse._jQueryInterface = function _jQueryInterface(config) {
- return this.each(function () {
- var $this = $(this);
- var data = $this.data(DATA_KEY);
- var _config = $.extend({}, Default, $this.data(), (typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object' && config);
- if (!data && _config.toggle && /show|hide/.test(config)) {
- _config.toggle = false;
- }
- if (!data) {
- data = new Collapse(this, _config);
- $this.data(DATA_KEY, data);
- }
- if (typeof config === 'string') {
- if (data[config] === undefined) {
- throw new Error('No method named "' + config + '"');
- }
- data[config]();
- }
- });
- };
- _createClass(Collapse, null, [{
- key: 'VERSION',
- get: function get() {
- return VERSION;
- }
- }, {
- key: 'Default',
- get: function get() {
- return Default;
- }
- }]);
- return Collapse;
- }();
- /**
- * ------------------------------------------------------------------------
- * Data Api implementation
- * ------------------------------------------------------------------------
- */
- $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
- event.preventDefault();
- var target = Collapse._getTargetFromElement(this);
- var data = $(target).data(DATA_KEY);
- var config = data ? 'toggle' : $(this).data();
- Collapse._jQueryInterface.call($(target), config);
- });
- /**
- * ------------------------------------------------------------------------
- * jQuery
- * ------------------------------------------------------------------------
- */
- $.fn[NAME] = Collapse._jQueryInterface;
- $.fn[NAME].Constructor = Collapse;
- $.fn[NAME].noConflict = function () {
- $.fn[NAME] = JQUERY_NO_CONFLICT;
- return Collapse._jQueryInterface;
- };
- return Collapse;
- }(jQuery);
- /**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-alpha.6): dropdown.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
- var Dropdown = function ($) {
- /**
- * ------------------------------------------------------------------------
- * Constants
- * ------------------------------------------------------------------------
- */
- var NAME = 'dropdown';
- var VERSION = '4.0.0-alpha.6';
- var DATA_KEY = 'bs.dropdown';
- var EVENT_KEY = '.' + DATA_KEY;
- var DATA_API_KEY = '.data-api';
- var JQUERY_NO_CONFLICT = $.fn[NAME];
- var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
- var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
- var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
- var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
- var Event = {
- HIDE: 'hide' + EVENT_KEY,
- HIDDEN: 'hidden' + EVENT_KEY,
- SHOW: 'show' + EVENT_KEY,
- SHOWN: 'shown' + EVENT_KEY,
- CLICK: 'click' + EVENT_KEY,
- CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY,
- FOCUSIN_DATA_API: 'focusin' + EVENT_KEY + DATA_API_KEY,
- KEYDOWN_DATA_API: 'keydown' + EVENT_KEY + DATA_API_KEY
- };
- var ClassName = {
- BACKDROP: 'dropdown-backdrop',
- DISABLED: 'disabled',
- SHOW: 'show'
- };
- var Selector = {
- BACKDROP: '.dropdown-backdrop',
- DATA_TOGGLE: '[data-toggle="dropdown"]',
- FORM_CHILD: '.dropdown form',
- ROLE_MENU: '[role="menu"]',
- ROLE_LISTBOX: '[role="listbox"]',
- NAVBAR_NAV: '.navbar-nav',
- VISIBLE_ITEMS: '[role="menu"] li:not(.disabled) a, ' + '[role="listbox"] li:not(.disabled) a'
- };
- /**
- * ------------------------------------------------------------------------
- * Class Definition
- * ------------------------------------------------------------------------
- */
- var Dropdown = function () {
- function Dropdown(element) {
- _classCallCheck(this, Dropdown);
- this._element = element;
- this._addEventListeners();
- }
- // getters
- // public
- Dropdown.prototype.toggle = function toggle() {
- if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {
- return false;
- }
- var parent = Dropdown._getParentFromElement(this);
- var isActive = $(parent).hasClass(ClassName.SHOW);
- Dropdown._clearMenus();
- if (isActive) {
- return false;
- }
- if ('ontouchstart' in document.documentElement && !$(parent).closest(Selector.NAVBAR_NAV).length) {
- // if mobile we use a backdrop because click events don't delegate
- var dropdown = document.createElement('div');
- dropdown.className = ClassName.BACKDROP;
- $(dropdown).insertBefore(this);
- $(dropdown).on('click', Dropdown._clearMenus);
- }
- var relatedTarget = {
- relatedTarget: this
- };
- var showEvent = $.Event(Event.SHOW, relatedTarget);
- $(parent).trigger(showEvent);
- if (showEvent.isDefaultPrevented()) {
- return false;
- }
- this.focus();
- this.setAttribute('aria-expanded', true);
- $(parent).toggleClass(ClassName.SHOW);
- $(parent).trigger($.Event(Event.SHOWN, relatedTarget));
- return false;
- };
- Dropdown.prototype.dispose = function dispose() {
- $.removeData(this._element, DATA_KEY);
- $(this._element).off(EVENT_KEY);
- this._element = null;
- };
- // private
- Dropdown.prototype._addEventListeners = function _addEventListeners() {
- $(this._element).on(Event.CLICK, this.toggle);
- };
- // static
- Dropdown._jQueryInterface = function _jQueryInterface(config) {
- return this.each(function () {
- var data = $(this).data(DATA_KEY);
- if (!data) {
- data = new Dropdown(this);
- $(this).data(DATA_KEY, data);
- }
- if (typeof config === 'string') {
- if (data[config] === undefined) {
- throw new Error('No method named "' + config + '"');
- }
- data[config].call(this);
- }
- });
- };
- Dropdown._clearMenus = function _clearMenus(event) {
- if (event && event.which === RIGHT_MOUSE_BUTTON_WHICH) {
- return;
- }
- var backdrop = $(Selector.BACKDROP)[0];
- if (backdrop) {
- backdrop.parentNode.removeChild(backdrop);
- }
- var toggles = $.makeArray($(Selector.DATA_TOGGLE));
- for (var i = 0; i < toggles.length; i++) {
- var parent = Dropdown._getParentFromElement(toggles[i]);
- var relatedTarget = {
- relatedTarget: toggles[i]
- };
- if (!$(parent).hasClass(ClassName.SHOW)) {
- continue;
- }
- if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'focusin') && $.contains(parent, event.target)) {
- continue;
- }
- var hideEvent = $.Event(Event.HIDE, relatedTarget);
- $(parent).trigger(hideEvent);
- if (hideEvent.isDefaultPrevented()) {
- continue;
- }
- toggles[i].setAttribute('aria-expanded', 'false');
- $(parent).removeClass(ClassName.SHOW).trigger($.Event(Event.HIDDEN, relatedTarget));
- }
- };
- Dropdown._getParentFromElement = function _getParentFromElement(element) {
- var parent = void 0;
- var selector = Util.getSelectorFromElement(element);
- if (selector) {
- parent = $(selector)[0];
- }
- return parent || element.parentNode;
- };
- Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
- if (!/(38|40|27|32)/.test(event.which) || /input|textarea/i.test(event.target.tagName)) {
- return;
- }
- event.preventDefault();
- event.stopPropagation();
- if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {
- return;
- }
- var parent = Dropdown._getParentFromElement(this);
- var isActive = $(parent).hasClass(ClassName.SHOW);
- if (!isActive && event.which !== ESCAPE_KEYCODE || isActive && event.which === ESCAPE_KEYCODE) {
- if (event.which === ESCAPE_KEYCODE) {
- var toggle = $(parent).find(Selector.DATA_TOGGLE)[0];
- $(toggle).trigger('focus');
- }
- $(this).trigger('click');
- return;
- }
- var items = $(parent).find(Selector.VISIBLE_ITEMS).get();
- if (!items.length) {
- return;
- }
- var index = items.indexOf(event.target);
- if (event.which === ARROW_UP_KEYCODE && index > 0) {
- // up
- index--;
- }
- if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
- // down
- index++;
- }
- if (index < 0) {
- index = 0;
- }
- items[index].focus();
- };
- _createClass(Dropdown, null, [{
- key: 'VERSION',
- get: function get() {
- return VERSION;
- }
- }]);
- return Dropdown;
- }();
- /**
- * ------------------------------------------------------------------------
- * Data Api implementation
- * ------------------------------------------------------------------------
- */
- $(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.ROLE_MENU, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.ROLE_LISTBOX, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + ' ' + Event.FOCUSIN_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, Dropdown.prototype.toggle).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {
- e.stopPropagation();
- });
- /**
- * ------------------------------------------------------------------------
- * jQuery
- * ------------------------------------------------------------------------
- */
- $.fn[NAME] = Dropdown._jQueryInterface;
- $.fn[NAME].Constructor = Dropdown;
- $.fn[NAME].noConflict = function () {
- $.fn[NAME] = JQUERY_NO_CONFLICT;
- return Dropdown._jQueryInterface;
- };
- return Dropdown;
- }(jQuery);
- /**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-alpha.6): modal.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
- var Modal = function ($) {
- /**
- * ------------------------------------------------------------------------
- * Constants
- * ------------------------------------------------------------------------
- */
- var NAME = 'modal';
- var VERSION = '4.0.0-alpha.6';
- var DATA_KEY = 'bs.modal';
- 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 = {
- backdrop: true,
- keyboard: true,
- focus: true,
- show: true
- };
- var DefaultType = {
- backdrop: '(boolean|string)',
- keyboard: 'boolean',
- focus: 'boolean',
- show: 'boolean'
- };
- var Event = {
- HIDE: 'hide' + EVENT_KEY,
- HIDDEN: 'hidden' + EVENT_KEY,
- SHOW: 'show' + EVENT_KEY,
- SHOWN: 'shown' + EVENT_KEY,
- FOCUSIN: 'focusin' + EVENT_KEY,
- RESIZE: 'resize' + EVENT_KEY,
- CLICK_DISMISS: 'click.dismiss' + EVENT_KEY,
- KEYDOWN_DISMISS: 'keydown.dismiss' + EVENT_KEY,
- MOUSEUP_DISMISS: 'mouseup.dismiss' + EVENT_KEY,
- MOUSEDOWN_DISMISS: 'mousedown.dismiss' + EVENT_KEY,
- CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY
- };
- var ClassName = {
- SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
- BACKDROP: 'modal-backdrop',
- OPEN: 'modal-open',
- FADE: 'fade',
- SHOW: 'show'
- };
- var Selector = {
- DIALOG: '.modal-dialog',
- DATA_TOGGLE: '[data-toggle="modal"]',
- DATA_DISMISS: '[data-dismiss="modal"]',
- FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'
- };
- /**
- * ------------------------------------------------------------------------
- * Class Definition
- * ------------------------------------------------------------------------
- */
- var Modal = function () {
- function Modal(element, config) {
- _classCallCheck(this, Modal);
- this._config = this._getConfig(config);
- this._element = element;
- this._dialog = $(element).find(Selector.DIALOG)[0];
- this._backdrop = null;
- this._isShown = false;
- this._isBodyOverflowing = false;
- this._ignoreBackdropClick = false;
- this._isTransitioning = false;
- this._originalBodyPadding = 0;
- this._scrollbarWidth = 0;
- }
- // getters
- // public
- Modal.prototype.toggle = function toggle(relatedTarget) {
- return this._isShown ? this.hide() : this.show(relatedTarget);
- };
- Modal.prototype.show = function show(relatedTarget) {
- var _this9 = this;
- if (this._isTransitioning) {
- throw new Error('Modal is transitioning');
- }
- if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {
- this._isTransitioning = true;
- }
- var showEvent = $.Event(Event.SHOW, {
- relatedTarget: relatedTarget
- });
- $(this._element).trigger(showEvent);
- if (this._isShown || showEvent.isDefaultPrevented()) {
- return;
- }
- this._isShown = true;
- this._checkScrollbar();
- this._setScrollbar();
- $(document.body).addClass(ClassName.OPEN);
- this._setEscapeEvent();
- this._setResizeEvent();
- $(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function (event) {
- return _this9.hide(event);
- });
- $(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () {
- $(_this9._element).one(Event.MOUSEUP_DISMISS, function (event) {
- if ($(event.target).is(_this9._element)) {
- _this9._ignoreBackdropClick = true;
- }
- });
- });
- this._showBackdrop(function () {
- return _this9._showElement(relatedTarget);
- });
- };
- Modal.prototype.hide = function hide(event) {
- var _this10 = this;
- if (event) {
- event.preventDefault();
- }
- if (this._isTransitioning) {
- throw new Error('Modal is transitioning');
- }
- var transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE);
- if (transition) {
- this._isTransitioning = true;
- }
- var hideEvent = $.Event(Event.HIDE);
- $(this._element).trigger(hideEvent);
- if (!this._isShown || hideEvent.isDefaultPrevented()) {
- return;
- }
- this._isShown = false;
- this._setEscapeEvent();
- this._setResizeEvent();
- $(document).off(Event.FOCUSIN);
- $(this._element).removeClass(ClassName.SHOW);
- $(this._element).off(Event.CLICK_DISMISS);
- $(this._dialog).off(Event.MOUSEDOWN_DISMISS);
- if (transition) {
- $(this._element).one(Util.TRANSITION_END, function (event) {
- return _this10._hideModal(event);
- }).emulateTransitionEnd(TRANSITION_DURATION);
- } else {
- this._hideModal();
- }
- };
- Modal.prototype.dispose = function dispose() {
- $.removeData(this._element, DATA_KEY);
- $(window, document, this._element, this._backdrop).off(EVENT_KEY);
- this._config = null;
- this._element = null;
- this._dialog = null;
- this._backdrop = null;
- this._isShown = null;
- this._isBodyOverflowing = null;
- this._ignoreBackdropClick = null;
- this._originalBodyPadding = null;
- this._scrollbarWidth = null;
- };
- // private
- Modal.prototype._getConfig = function _getConfig(config) {
- config = $.extend({}, Default, config);
- Util.typeCheckConfig(NAME, config, DefaultType);
- return config;
- };
- Modal.prototype._showElement = function _showElement(relatedTarget) {
- var _this11 = this;
- var transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE);
- if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
- // don't move modals dom position
- document.body.appendChild(this._element);
- }
- this._element.style.display = 'block';
- this._element.removeAttribute('aria-hidden');
- this._element.scrollTop = 0;
- if (transition) {
- Util.reflow(this._element);
- }
- $(this._element).addClass(ClassName.SHOW);
- if (this._config.focus) {
- this._enforceFocus();
- }
- var shownEvent = $.Event(Event.SHOWN, {
- relatedTarget: relatedTarget
- });
- var transitionComplete = function transitionComplete() {
- if (_this11._config.focus) {
- _this11._element.focus();
- }
- _this11._isTransitioning = false;
- $(_this11._element).trigger(shownEvent);
- };
- if (transition) {
- $(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(TRANSITION_DURATION);
- } else {
- transitionComplete();
- }
- };
- Modal.prototype._enforceFocus = function _enforceFocus() {
- var _this12 = this;
- $(document).off(Event.FOCUSIN) // guard against infinite focus loop
- .on(Event.FOCUSIN, function (event) {
- if (document !== event.target && _this12._element !== event.target && !$(_this12._element).has(event.target).length) {
- _this12._element.focus();
- }
- });
- };
- Modal.prototype._setEscapeEvent = function _setEscapeEvent() {
- var _this13 = this;
- if (this._isShown && this._config.keyboard) {
- $(this._element).on(Event.KEYDOWN_DISMISS, function (event) {
- if (event.which === ESCAPE_KEYCODE) {
- _this13.hide();
- }
- });
- } else if (!this._isShown) {
- $(this._element).off(Event.KEYDOWN_DISMISS);
- }
- };
- Modal.prototype._setResizeEvent = function _setResizeEvent() {
- var _this14 = this;
- if (this._isShown) {
- $(window).on(Event.RESIZE, function (event) {
- return _this14._handleUpdate(event);
- });
- } else {
- $(window).off(Event.RESIZE);
- }
- };
- Modal.prototype._hideModal = function _hideModal() {
- var _this15 = this;
- this._element.style.display = 'none';
- this._element.setAttribute('aria-hidden', 'true');
- this._isTransitioning = false;
- this._showBackdrop(function () {
- $(document.body).removeClass(ClassName.OPEN);
- _this15._resetAdjustments();
- _this15._resetScrollbar();
- $(_this15._element).trigger(Event.HIDDEN);
- });
- };
- Modal.prototype._removeBackdrop = function _removeBackdrop() {
- if (this._backdrop) {
- $(this._backdrop).remove();
- this._backdrop = null;
- }
- };
- Modal.prototype._showBackdrop = function _showBackdrop(callback) {
- var _this16 = this;
- 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;
- if (animate) {
- $(this._backdrop).addClass(animate);
- }
- $(this._backdrop).appendTo(document.body);
- $(this._element).on(Event.CLICK_DISMISS, function (event) {
- if (_this16._ignoreBackdropClick) {
- _this16._ignoreBackdropClick = false;
- return;
- }
- if (event.target !== event.currentTarget) {
- return;
- }
- if (_this16._config.backdrop === 'static') {
- _this16._element.focus();
- } else {
- _this16.hide();
- }
- });
- if (doAnimate) {
- Util.reflow(this._backdrop);
- }
- $(this._backdrop).addClass(ClassName.SHOW);
- if (!callback) {
- return;
- }
- if (!doAnimate) {
- callback();
- return;
- }
- $(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);
- } else if (!this._isShown && this._backdrop) {
- $(this._backdrop).removeClass(ClassName.SHOW);
- var callbackRemove = function callbackRemove() {
- _this16._removeBackdrop();
- if (callback) {
- callback();
- }
- };
- if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {
- $(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);
- } else {
- callbackRemove();
- }
- } else if (callback) {
- callback();
- }
- };
- // ----------------------------------------------------------------------
- // the following methods are used to handle overflowing modals
- // todo (fat): these should probably be refactored out of modal.js
- // ----------------------------------------------------------------------
- Modal.prototype._handleUpdate = function _handleUpdate() {
- this._adjustDialog();
- };
- Modal.prototype._adjustDialog = function _adjustDialog() {
- var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
- if (!this._isBodyOverflowing && isModalOverflowing) {
- this._element.style.paddingLeft = this._scrollbarWidth + 'px';
- }
- if (this._isBodyOverflowing && !isModalOverflowing) {
- this._element.style.paddingRight = this._scrollbarWidth + 'px';
- }
- };
- Modal.prototype._resetAdjustments = function _resetAdjustments() {
- this._element.style.paddingLeft = '';
- this._element.style.paddingRight = '';
- };
- Modal.prototype._checkScrollbar = function _checkScrollbar() {
- this._isBodyOverflowing = document.body.clientWidth < window.innerWidth;
- this._scrollbarWidth = this._getScrollbarWidth();
- };
- Modal.prototype._setScrollbar = function _setScrollbar() {
- var bodyPadding = parseInt($(Selector.FIXED_CONTENT).css('padding-right') || 0, 10);
- this._originalBodyPadding = document.body.style.paddingRight || '';
- if (this._isBodyOverflowing) {
- document.body.style.paddingRight = bodyPadding + this._scrollbarWidth + 'px';
- }
- };
- Modal.prototype._resetScrollbar = function _resetScrollbar() {
- document.body.style.paddingRight = this._originalBodyPadding;
- };
- Modal.prototype._getScrollbarWidth = function _getScrollbarWidth() {
- // thx d.walsh
- var scrollDiv = document.createElement('div');
- scrollDiv.className = ClassName.SCROLLBAR_MEASURER;
- document.body.appendChild(scrollDiv);
- var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;
- document.body.removeChild(scrollDiv);
- return scrollbarWidth;
- };
- // static
- Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
- return this.each(function () {
- var data = $(this).data(DATA_KEY);
- var _config = $.extend({}, Modal.Default, $(this).data(), (typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object' && config);
- if (!data) {
- data = new Modal(this, _config);
- $(this).data(DATA_KEY, data);
- }
- if (typeof config === 'string') {
- if (data[config] === undefined) {
- throw new Error('No method named "' + config + '"');
- }
- data[config](relatedTarget);
- } else if (_config.show) {
- data.show(relatedTarget);
- }
- });
- };
- _createClass(Modal, null, [{
- key: 'VERSION',
- get: function get() {
- return VERSION;
- }
- }, {
- key: 'Default',
- get: function get() {
- return Default;
- }
- }]);
- return Modal;
- }();
- /**
- * ------------------------------------------------------------------------
- * Data Api implementation
- * ------------------------------------------------------------------------
- */
- $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
- var _this17 = this;
- var target = void 0;
- var selector = Util.getSelectorFromElement(this);
- if (selector) {
- target = $(selector)[0];
- }
- var config = $(target).data(DATA_KEY) ? 'toggle' : $.extend({}, $(target).data(), $(this).data());
- if (this.tagName === 'A' || this.tagName === 'AREA') {
- event.preventDefault();
- }
- var $target = $(target).one(Event.SHOW, function (showEvent) {
- if (showEvent.isDefaultPrevented()) {
- // only register focus restorer if modal will actually get shown
- return;
- }
- $target.one(Event.HIDDEN, function () {
- if ($(_this17).is(':visible')) {
- _this17.focus();
- }
- });
- });
- Modal._jQueryInterface.call($(target), config, this);
- });
- /**
- * ------------------------------------------------------------------------
- * jQuery
- * ------------------------------------------------------------------------
- */
- $.fn[NAME] = Modal._jQueryInterface;
- $.fn[NAME].Constructor = Modal;
- $.fn[NAME].noConflict = function () {
- $.fn[NAME] = JQUERY_NO_CONFLICT;
- return Modal._jQueryInterface;
- };
- return Modal;
- }(jQuery);
- /**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-alpha.6): scrollspy.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
- var ScrollSpy = function ($) {
- /**
- * ------------------------------------------------------------------------
- * Constants
- * ------------------------------------------------------------------------
- */
- var NAME = 'scrollspy';
- var VERSION = '4.0.0-alpha.6';
- var DATA_KEY = 'bs.scrollspy';
- var EVENT_KEY = '.' + DATA_KEY;
- var DATA_API_KEY = '.data-api';
- var JQUERY_NO_CONFLICT = $.fn[NAME];
- var Default = {
- offset: 10,
- method: 'auto',
- target: ''
- };
- var DefaultType = {
- offset: 'number',
- method: 'string',
- target: '(string|element)'
- };
- var Event = {
- ACTIVATE: 'activate' + EVENT_KEY,
- SCROLL: 'scroll' + EVENT_KEY,
- LOAD_DATA_API: 'load' + EVENT_KEY + DATA_API_KEY
- };
- var ClassName = {
- DROPDOWN_ITEM: 'dropdown-item',
- DROPDOWN_MENU: 'dropdown-menu',
- NAV_LINK: 'nav-link',
- NAV: 'nav',
- ACTIVE: 'active'
- };
- var Selector = {
- DATA_SPY: '[data-spy="scroll"]',
- ACTIVE: '.active',
- LIST_ITEM: '.list-item',
- LI: 'li',
- LI_DROPDOWN: 'li.dropdown',
- NAV_LINKS: '.nav-link',
- DROPDOWN: '.dropdown',
- DROPDOWN_ITEMS: '.dropdown-item',
- DROPDOWN_TOGGLE: '.dropdown-toggle'
- };
- var OffsetMethod = {
- OFFSET: 'offset',
- POSITION: 'position'
- };
- /**
- * ------------------------------------------------------------------------
- * Class Definition
- * ------------------------------------------------------------------------
- */
- var ScrollSpy = function () {
- function ScrollSpy(element, config) {
- var _this18 = this;
- _classCallCheck(this, ScrollSpy);
- this._element = element;
- this._scrollElement = element.tagName === 'BODY' ? window : element;
- this._config = this._getConfig(config);
- this._selector = this._config.target + ' ' + Selector.NAV_LINKS + ',' + (this._config.target + ' ' + Selector.DROPDOWN_ITEMS);
- this._offsets = [];
- this._targets = [];
- this._activeTarget = null;
- this._scrollHeight = 0;
- $(this._scrollElement).on(Event.SCROLL, function (event) {
- return _this18._process(event);
- });
- this.refresh();
- this._process();
- }
- // getters
- // public
- ScrollSpy.prototype.refresh = function refresh() {
- var _this19 = this;
- var autoMethod = this._scrollElement !== this._scrollElement.window ? OffsetMethod.POSITION : OffsetMethod.OFFSET;
- var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
- var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;
- this._offsets = [];
- this._targets = [];
- this._scrollHeight = this._getScrollHeight();
- var targets = $.makeArray($(this._selector));
- targets.map(function (element) {
- var target = void 0;
- var targetSelector = Util.getSelectorFromElement(element);
- if (targetSelector) {
- target = $(targetSelector)[0];
- }
- if (target && (target.offsetWidth || target.offsetHeight)) {
- // todo (fat): remove sketch reliance on jQuery position/offset
- return [$(target)[offsetMethod]().top + offsetBase, targetSelector];
- }
- return null;
- }).filter(function (item) {
- return item;
- }).sort(function (a, b) {
- return a[0] - b[0];
- }).forEach(function (item) {
- _this19._offsets.push(item[0]);
- _this19._targets.push(item[1]);
- });
- };
- ScrollSpy.prototype.dispose = function dispose() {
- $.removeData(this._element, DATA_KEY);
- $(this._scrollElement).off(EVENT_KEY);
- this._element = null;
- this._scrollElement = null;
- this._config = null;
- this._selector = null;
- this._offsets = null;
- this._targets = null;
- this._activeTarget = null;
- this._scrollHeight = null;
- };
- // private
- ScrollSpy.prototype._getConfig = function _getConfig(config) {
- config = $.extend({}, Default, config);
- if (typeof config.target !== 'string') {
- var id = $(config.target).attr('id');
- if (!id) {
- id = Util.getUID(NAME);
- $(config.target).attr('id', id);
- }
- config.target = '#' + id;
- }
- Util.typeCheckConfig(NAME, config, DefaultType);
- return config;
- };
- ScrollSpy.prototype._getScrollTop = function _getScrollTop() {
- return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;
- };
- ScrollSpy.prototype._getScrollHeight = function _getScrollHeight() {
- return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
- };
- ScrollSpy.prototype._getOffsetHeight = function _getOffsetHeight() {
- return this._scrollElement === window ? window.innerHeight : this._scrollElement.offsetHeight;
- };
- ScrollSpy.prototype._process = function _process() {
- var scrollTop = this._getScrollTop() + this._config.offset;
- var scrollHeight = this._getScrollHeight();
- var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();
- if (this._scrollHeight !== scrollHeight) {
- this.refresh();
- }
- if (scrollTop >= maxScroll) {
- var target = this._targets[this._targets.length - 1];
- if (this._activeTarget !== target) {
- this._activate(target);
- }
- return;
- }
- if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {
- this._activeTarget = null;
- this._clear();
- return;
- }
- for (var i = this._offsets.length; i--;) {
- var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (this._offsets[i + 1] === undefined || scrollTop < this._offsets[i + 1]);
- if (isActiveTarget) {
- this._activate(this._targets[i]);
- }
- }
- };
- ScrollSpy.prototype._activate = function _activate(target) {
- this._activeTarget = target;
- this._clear();
- var queries = this._selector.split(',');
- queries = queries.map(function (selector) {
- return selector + '[data-target="' + target + '"],' + (selector + '[href="' + target + '"]');
- });
- var $link = $(queries.join(','));
- if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {
- $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
- $link.addClass(ClassName.ACTIVE);
- } else {
- // todo (fat) this is kinda sus...
- // recursively add actives to tested nav-links
- $link.parents(Selector.LI).find('> ' + Selector.NAV_LINKS).addClass(ClassName.ACTIVE);
- }
- $(this._scrollElement).trigger(Event.ACTIVATE, {
- relatedTarget: target
- });
- };
- ScrollSpy.prototype._clear = function _clear() {
- $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
- };
- // static
- ScrollSpy._jQueryInterface = function _jQueryInterface(config) {
- return this.each(function () {
- var data = $(this).data(DATA_KEY);
- var _config = (typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object' && config;
- if (!data) {
- data = new ScrollSpy(this, _config);
- $(this).data(DATA_KEY, data);
- }
- if (typeof config === 'string') {
- if (data[config] === undefined) {
- throw new Error('No method named "' + config + '"');
- }
- data[config]();
- }
- });
- };
- _createClass(ScrollSpy, null, [{
- key: 'VERSION',
- get: function get() {
- return VERSION;
- }
- }, {
- key: 'Default',
- get: function get() {
- return Default;
- }
- }]);
- return ScrollSpy;
- }();
- /**
- * ------------------------------------------------------------------------
- * Data Api implementation
- * ------------------------------------------------------------------------
- */
- $(window).on(Event.LOAD_DATA_API, function () {
- var scrollSpys = $.makeArray($(Selector.DATA_SPY));
- for (var i = scrollSpys.length; i--;) {
- var $spy = $(scrollSpys[i]);
- ScrollSpy._jQueryInterface.call($spy, $spy.data());
- }
- });
- /**
- * ------------------------------------------------------------------------
- * jQuery
- * ------------------------------------------------------------------------
- */
- $.fn[NAME] = ScrollSpy._jQueryInterface;
- $.fn[NAME].Constructor = ScrollSpy;
- $.fn[NAME].noConflict = function () {
- $.fn[NAME] = JQUERY_NO_CONFLICT;
- return ScrollSpy._jQueryInterface;
- };
- return ScrollSpy;
- }(jQuery);
- /**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-alpha.6): tab.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
- var Tab = function ($) {
- /**
- * ------------------------------------------------------------------------
- * Constants
- * ------------------------------------------------------------------------
- */
- var NAME = 'tab';
- var VERSION = '4.0.0-alpha.6';
- var DATA_KEY = 'bs.tab';
- var EVENT_KEY = '.' + DATA_KEY;
- var DATA_API_KEY = '.data-api';
- var JQUERY_NO_CONFLICT = $.fn[NAME];
- var TRANSITION_DURATION = 150;
- var Event = {
- HIDE: 'hide' + EVENT_KEY,
- HIDDEN: 'hidden' + EVENT_KEY,
- SHOW: 'show' + EVENT_KEY,
- SHOWN: 'shown' + EVENT_KEY,
- CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY
- };
- var ClassName = {
- DROPDOWN_MENU: 'dropdown-menu',
- ACTIVE: 'active',
- DISABLED: 'disabled',
- FADE: 'fade',
- SHOW: 'show'
- };
- var Selector = {
- A: 'a',
- LI: 'li',
- DROPDOWN: '.dropdown',
- LIST: 'ul:not(.dropdown-menu), ol:not(.dropdown-menu), nav:not(.dropdown-menu)',
- FADE_CHILD: '> .nav-item .fade, > .fade',
- ACTIVE: '.active',
- ACTIVE_CHILD: '> .nav-item > .active, > .active',
- DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"]',
- DROPDOWN_TOGGLE: '.dropdown-toggle',
- DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active'
- };
- /**
- * ------------------------------------------------------------------------
- * Class Definition
- * ------------------------------------------------------------------------
- */
- var Tab = function () {
- function Tab(element) {
- _classCallCheck(this, Tab);
- this._element = element;
- }
- // getters
- // public
- Tab.prototype.show = function show() {
- var _this20 = this;
- if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $(this._element).hasClass(ClassName.ACTIVE) || $(this._element).hasClass(ClassName.DISABLED)) {
- return;
- }
- var target = void 0;
- var previous = void 0;
- var listElement = $(this._element).closest(Selector.LIST)[0];
- var selector = Util.getSelectorFromElement(this._element);
- if (listElement) {
- previous = $.makeArray($(listElement).find(Selector.ACTIVE));
- previous = previous[previous.length - 1];
- }
- var hideEvent = $.Event(Event.HIDE, {
- relatedTarget: this._element
- });
- var showEvent = $.Event(Event.SHOW, {
- relatedTarget: previous
- });
- if (previous) {
- $(previous).trigger(hideEvent);
- }
- $(this._element).trigger(showEvent);
- if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {
- return;
- }
- if (selector) {
- target = $(selector)[0];
- }
- this._activate(this._element, listElement);
- var complete = function complete() {
- var hiddenEvent = $.Event(Event.HIDDEN, {
- relatedTarget: _this20._element
- });
- var shownEvent = $.Event(Event.SHOWN, {
- relatedTarget: previous
- });
- $(previous).trigger(hiddenEvent);
- $(_this20._element).trigger(shownEvent);
- };
- if (target) {
- this._activate(target, target.parentNode, complete);
- } else {
- complete();
- }
- };
- Tab.prototype.dispose = function dispose() {
- $.removeClass(this._element, DATA_KEY);
- this._element = null;
- };
- // private
- Tab.prototype._activate = function _activate(element, container, callback) {
- var _this21 = this;
- var active = $(container).find(Selector.ACTIVE_CHILD)[0];
- var isTransitioning = callback && Util.supportsTransitionEnd() && (active && $(active).hasClass(ClassName.FADE) || Boolean($(container).find(Selector.FADE_CHILD)[0]));
- var complete = function complete() {
- return _this21._transitionComplete(element, active, isTransitioning, callback);
- };
- if (active && isTransitioning) {
- $(active).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
- } else {
- complete();
- }
- if (active) {
- $(active).removeClass(ClassName.SHOW);
- }
- };
- Tab.prototype._transitionComplete = function _transitionComplete(element, active, isTransitioning, callback) {
- if (active) {
- $(active).removeClass(ClassName.ACTIVE);
- var dropdownChild = $(active.parentNode).find(Selector.DROPDOWN_ACTIVE_CHILD)[0];
- if (dropdownChild) {
- $(dropdownChild).removeClass(ClassName.ACTIVE);
- }
- active.setAttribute('aria-expanded', false);
- }
- $(element).addClass(ClassName.ACTIVE);
- element.setAttribute('aria-expanded', true);
- if (isTransitioning) {
- Util.reflow(element);
- $(element).addClass(ClassName.SHOW);
- } else {
- $(element).removeClass(ClassName.FADE);
- }
- if (element.parentNode && $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {
- var dropdownElement = $(element).closest(Selector.DROPDOWN)[0];
- if (dropdownElement) {
- $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
- }
- element.setAttribute('aria-expanded', true);
- }
- if (callback) {
- callback();
- }
- };
- // static
- Tab._jQueryInterface = function _jQueryInterface(config) {
- return this.each(function () {
- var $this = $(this);
- var data = $this.data(DATA_KEY);
- if (!data) {
- data = new Tab(this);
- $this.data(DATA_KEY, data);
- }
- if (typeof config === 'string') {
- if (data[config] === undefined) {
- throw new Error('No method named "' + config + '"');
- }
- data[config]();
- }
- });
- };
- _createClass(Tab, null, [{
- key: 'VERSION',
- get: function get() {
- return VERSION;
- }
- }]);
- return Tab;
- }();
- /**
- * ------------------------------------------------------------------------
- * Data Api implementation
- * ------------------------------------------------------------------------
- */
- $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
- event.preventDefault();
- Tab._jQueryInterface.call($(this), 'show');
- });
- /**
- * ------------------------------------------------------------------------
- * jQuery
- * ------------------------------------------------------------------------
- */
- $.fn[NAME] = Tab._jQueryInterface;
- $.fn[NAME].Constructor = Tab;
- $.fn[NAME].noConflict = function () {
- $.fn[NAME] = JQUERY_NO_CONFLICT;
- return Tab._jQueryInterface;
- };
- return Tab;
- }(jQuery);
- /* global Tether */
- /**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-alpha.6): tooltip.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
- var Tooltip = function ($) {
- /**
- * Check for Tether dependency
- * Tether - http://tether.io/
- */
- if (typeof Tether === 'undefined') {
- throw new Error('Bootstrap tooltips require Tether (http://tether.io/)');
- }
- /**
- * ------------------------------------------------------------------------
- * Constants
- * ------------------------------------------------------------------------
- */
- var NAME = 'tooltip';
- var VERSION = '4.0.0-alpha.6';
- var DATA_KEY = 'bs.tooltip';
- var EVENT_KEY = '.' + DATA_KEY;
- var JQUERY_NO_CONFLICT = $.fn[NAME];
- var TRANSITION_DURATION = 150;
- var CLASS_PREFIX = 'bs-tether';
- var Default = {
- animation: true,
- template: '<div class="tooltip" role="tooltip">' + '<div class="tooltip-inner"></div></div>',
- trigger: 'hover focus',
- title: '',
- delay: 0,
- html: false,
- selector: false,
- placement: 'top',
- offset: '0 0',
- constraints: [],
- container: false
- };
- var DefaultType = {
- animation: 'boolean',
- template: 'string',
- title: '(string|element|function)',
- trigger: 'string',
- delay: '(number|object)',
- html: 'boolean',
- selector: '(string|boolean)',
- placement: '(string|function)',
- offset: 'string',
- constraints: 'array',
- container: '(string|element|boolean)'
- };
- var AttachmentMap = {
- TOP: 'bottom center',
- RIGHT: 'middle left',
- BOTTOM: 'top center',
- LEFT: 'middle right'
- };
- var HoverState = {
- SHOW: 'show',
- OUT: 'out'
- };
- var Event = {
- HIDE: 'hide' + EVENT_KEY,
- HIDDEN: 'hidden' + EVENT_KEY,
- SHOW: 'show' + EVENT_KEY,
- SHOWN: 'shown' + EVENT_KEY,
- INSERTED: 'inserted' + EVENT_KEY,
- CLICK: 'click' + EVENT_KEY,
- FOCUSIN: 'focusin' + EVENT_KEY,
- FOCUSOUT: 'focusout' + EVENT_KEY,
- MOUSEENTER: 'mouseenter' + EVENT_KEY,
- MOUSELEAVE: 'mouseleave' + EVENT_KEY
- };
- var ClassName = {
- FADE: 'fade',
- SHOW: 'show'
- };
- var Selector = {
- TOOLTIP: '.tooltip',
- TOOLTIP_INNER: '.tooltip-inner'
- };
- var TetherClass = {
- element: false,
- enabled: false
- };
- var Trigger = {
- HOVER: 'hover',
- FOCUS: 'focus',
- CLICK: 'click',
- MANUAL: 'manual'
- };
- /**
- * ------------------------------------------------------------------------
- * Class Definition
- * ------------------------------------------------------------------------
- */
- var Tooltip = function () {
- function Tooltip(element, config) {
- _classCallCheck(this, Tooltip);
- // private
- this._isEnabled = true;
- this._timeout = 0;
- this._hoverState = '';
- this._activeTrigger = {};
- this._isTransitioning = false;
- this._tether = null;
- // protected
- this.element = element;
- this.config = this._getConfig(config);
- this.tip = null;
- this._setListeners();
- }
- // getters
- // public
- Tooltip.prototype.enable = function enable() {
- this._isEnabled = true;
- };
- Tooltip.prototype.disable = function disable() {
- this._isEnabled = false;
- };
- Tooltip.prototype.toggleEnabled = function toggleEnabled() {
- this._isEnabled = !this._isEnabled;
- };
- Tooltip.prototype.toggle = function toggle(event) {
- if (event) {
- var dataKey = this.constructor.DATA_KEY;
- var context = $(event.currentTarget).data(dataKey);
- if (!context) {
- context = new this.constructor(event.currentTarget, this._getDelegateConfig());
- $(event.currentTarget).data(dataKey, context);
- }
- context._activeTrigger.click = !context._activeTrigger.click;
- if (context._isWithActiveTrigger()) {
- context._enter(null, context);
- } else {
- context._leave(null, context);
- }
- } else {
- if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {
- this._leave(null, this);
- return;
- }
- this._enter(null, this);
- }
- };
- Tooltip.prototype.dispose = function dispose() {
- clearTimeout(this._timeout);
- this.cleanupTether();
- $.removeData(this.element, this.constructor.DATA_KEY);
- $(this.element).off(this.constructor.EVENT_KEY);
- $(this.element).closest('.modal').off('hide.bs.modal');
- if (this.tip) {
- $(this.tip).remove();
- }
- this._isEnabled = null;
- this._timeout = null;
- this._hoverState = null;
- this._activeTrigger = null;
- this._tether = null;
- this.element = null;
- this.config = null;
- this.tip = null;
- };
- Tooltip.prototype.show = function show() {
- var _this22 = this;
- if ($(this.element).css('display') === 'none') {
- throw new Error('Please use show on visible elements');
- }
- var showEvent = $.Event(this.constructor.Event.SHOW);
- if (this.isWithContent() && this._isEnabled) {
- if (this._isTransitioning) {
- throw new Error('Tooltip is transitioning');
- }
- $(this.element).trigger(showEvent);
- var isInTheDom = $.contains(this.element.ownerDocument.documentElement, this.element);
- if (showEvent.isDefaultPrevented() || !isInTheDom) {
- return;
- }
- var tip = this.getTipElement();
- var tipId = Util.getUID(this.constructor.NAME);
- tip.setAttribute('id', tipId);
- this.element.setAttribute('aria-describedby', tipId);
- this.setContent();
- if (this.config.animation) {
- $(tip).addClass(ClassName.FADE);
- }
- var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
- var attachment = this._getAttachment(placement);
- var container = this.config.container === false ? document.body : $(this.config.container);
- $(tip).data(this.constructor.DATA_KEY, this).appendTo(container);
- $(this.element).trigger(this.constructor.Event.INSERTED);
- this._tether = new Tether({
- attachment: attachment,
- element: tip,
- target: this.element,
- classes: TetherClass,
- classPrefix: CLASS_PREFIX,
- offset: this.config.offset,
- constraints: this.config.constraints,
- addTargetClasses: false
- });
- Util.reflow(tip);
- this._tether.position();
- $(tip).addClass(ClassName.SHOW);
- var complete = function complete() {
- var prevHoverState = _this22._hoverState;
- _this22._hoverState = null;
- _this22._isTransitioning = false;
- $(_this22.element).trigger(_this22.constructor.Event.SHOWN);
- if (prevHoverState === HoverState.OUT) {
- _this22._leave(null, _this22);
- }
- };
- if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {
- this._isTransitioning = true;
- $(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(Tooltip._TRANSITION_DURATION);
- return;
- }
- complete();
- }
- };
- Tooltip.prototype.hide = function hide(callback) {
- var _this23 = this;
- var tip = this.getTipElement();
- var hideEvent = $.Event(this.constructor.Event.HIDE);
- if (this._isTransitioning) {
- throw new Error('Tooltip is transitioning');
- }
- var complete = function complete() {
- if (_this23._hoverState !== HoverState.SHOW && tip.parentNode) {
- tip.parentNode.removeChild(tip);
- }
- _this23.element.removeAttribute('aria-describedby');
- $(_this23.element).trigger(_this23.constructor.Event.HIDDEN);
- _this23._isTransitioning = false;
- _this23.cleanupTether();
- if (callback) {
- callback();
- }
- };
- $(this.element).trigger(hideEvent);
- if (hideEvent.isDefaultPrevented()) {
- return;
- }
- $(tip).removeClass(ClassName.SHOW);
- this._activeTrigger[Trigger.CLICK] = false;
- this._activeTrigger[Trigger.FOCUS] = false;
- this._activeTrigger[Trigger.HOVER] = false;
- if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {
- this._isTransitioning = true;
- $(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
- } else {
- complete();
- }
- this._hoverState = '';
- };
- // protected
- Tooltip.prototype.isWithContent = function isWithContent() {
- return Boolean(this.getTitle());
- };
- Tooltip.prototype.getTipElement = function getTipElement() {
- return this.tip = this.tip || $(this.config.template)[0];
- };
- Tooltip.prototype.setContent = function setContent() {
- var $tip = $(this.getTipElement());
- this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle());
- $tip.removeClass(ClassName.FADE + ' ' + ClassName.SHOW);
- this.cleanupTether();
- };
- Tooltip.prototype.setElementContent = function setElementContent($element, content) {
- var html = this.config.html;
- if ((typeof content === 'undefined' ? 'undefined' : _typeof(content)) === 'object' && (content.nodeType || content.jquery)) {
- // content is a DOM node or a jQuery
- if (html) {
- if (!$(content).parent().is($element)) {
- $element.empty().append(content);
- }
- } else {
- $element.text($(content).text());
- }
- } else {
- $element[html ? 'html' : 'text'](content);
- }
- };
- Tooltip.prototype.getTitle = function getTitle() {
- var title = this.element.getAttribute('data-original-title');
- if (!title) {
- title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;
- }
- return title;
- };
- Tooltip.prototype.cleanupTether = function cleanupTether() {
- if (this._tether) {
- this._tether.destroy();
- }
- };
- // private
- Tooltip.prototype._getAttachment = function _getAttachment(placement) {
- return AttachmentMap[placement.toUpperCase()];
- };
- Tooltip.prototype._setListeners = function _setListeners() {
- var _this24 = this;
- var triggers = this.config.trigger.split(' ');
- triggers.forEach(function (trigger) {
- if (trigger === 'click') {
- $(_this24.element).on(_this24.constructor.Event.CLICK, _this24.config.selector, function (event) {
- return _this24.toggle(event);
- });
- } else if (trigger !== Trigger.MANUAL) {
- var eventIn = trigger === Trigger.HOVER ? _this24.constructor.Event.MOUSEENTER : _this24.constructor.Event.FOCUSIN;
- var eventOut = trigger === Trigger.HOVER ? _this24.constructor.Event.MOUSELEAVE : _this24.constructor.Event.FOCUSOUT;
- $(_this24.element).on(eventIn, _this24.config.selector, function (event) {
- return _this24._enter(event);
- }).on(eventOut, _this24.config.selector, function (event) {
- return _this24._leave(event);
- });
- }
- $(_this24.element).closest('.modal').on('hide.bs.modal', function () {
- return _this24.hide();
- });
- });
- if (this.config.selector) {
- this.config = $.extend({}, this.config, {
- trigger: 'manual',
- selector: ''
- });
- } else {
- this._fixTitle();
- }
- };
- Tooltip.prototype._fixTitle = function _fixTitle() {
- var titleType = _typeof(this.element.getAttribute('data-original-title'));
- if (this.element.getAttribute('title') || titleType !== 'string') {
- this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');
- this.element.setAttribute('title', '');
- }
- };
- Tooltip.prototype._enter = function _enter(event, context) {
- var dataKey = this.constructor.DATA_KEY;
- context = context || $(event.currentTarget).data(dataKey);
- if (!context) {
- context = new this.constructor(event.currentTarget, this._getDelegateConfig());
- $(event.currentTarget).data(dataKey, context);
- }
- if (event) {
- context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true;
- }
- if ($(context.getTipElement()).hasClass(ClassName.SHOW) || context._hoverState === HoverState.SHOW) {
- context._hoverState = HoverState.SHOW;
- return;
- }
- clearTimeout(context._timeout);
- context._hoverState = HoverState.SHOW;
- if (!context.config.delay || !context.config.delay.show) {
- context.show();
- return;
- }
- context._timeout = setTimeout(function () {
- if (context._hoverState === HoverState.SHOW) {
- context.show();
- }
- }, context.config.delay.show);
- };
- Tooltip.prototype._leave = function _leave(event, context) {
- var dataKey = this.constructor.DATA_KEY;
- context = context || $(event.currentTarget).data(dataKey);
- if (!context) {
- context = new this.constructor(event.currentTarget, this._getDelegateConfig());
- $(event.currentTarget).data(dataKey, context);
- }
- if (event) {
- context._activeTrigger[event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false;
- }
- if (context._isWithActiveTrigger()) {
- return;
- }
- clearTimeout(context._timeout);
- context._hoverState = HoverState.OUT;
- if (!context.config.delay || !context.config.delay.hide) {
- context.hide();
- return;
- }
- context._timeout = setTimeout(function () {
- if (context._hoverState === HoverState.OUT) {
- context.hide();
- }
- }, context.config.delay.hide);
- };
- Tooltip.prototype._isWithActiveTrigger = function _isWithActiveTrigger() {
- for (var trigger in this._activeTrigger) {
- if (this._activeTrigger[trigger]) {
- return true;
- }
- }
- return false;
- };
- Tooltip.prototype._getConfig = function _getConfig(config) {
- config = $.extend({}, this.constructor.Default, $(this.element).data(), config);
- if (config.delay && typeof config.delay === 'number') {
- config.delay = {
- show: config.delay,
- hide: config.delay
- };
- }
- Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
- return config;
- };
- Tooltip.prototype._getDelegateConfig = function _getDelegateConfig() {
- var config = {};
- if (this.config) {
- for (var key in this.config) {
- if (this.constructor.Default[key] !== this.config[key]) {
- config[key] = this.config[key];
- }
- }
- }
- return config;
- };
- // static
- Tooltip._jQueryInterface = function _jQueryInterface(config) {
- return this.each(function () {
- var data = $(this).data(DATA_KEY);
- var _config = (typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object' && config;
- if (!data && /dispose|hide/.test(config)) {
- return;
- }
- if (!data) {
- data = new Tooltip(this, _config);
- $(this).data(DATA_KEY, data);
- }
- if (typeof config === 'string') {
- if (data[config] === undefined) {
- throw new Error('No method named "' + config + '"');
- }
- data[config]();
- }
- });
- };
- _createClass(Tooltip, null, [{
- key: 'VERSION',
- get: function get() {
- return VERSION;
- }
- }, {
- key: 'Default',
- get: function get() {
- return Default;
- }
- }, {
- key: 'NAME',
- get: function get() {
- return NAME;
- }
- }, {
- key: 'DATA_KEY',
- get: function get() {
- return DATA_KEY;
- }
- }, {
- key: 'Event',
- get: function get() {
- return Event;
- }
- }, {
- key: 'EVENT_KEY',
- get: function get() {
- return EVENT_KEY;
- }
- }, {
- key: 'DefaultType',
- get: function get() {
- return DefaultType;
- }
- }]);
- return Tooltip;
- }();
- /**
- * ------------------------------------------------------------------------
- * jQuery
- * ------------------------------------------------------------------------
- */
- $.fn[NAME] = Tooltip._jQueryInterface;
- $.fn[NAME].Constructor = Tooltip;
- $.fn[NAME].noConflict = function () {
- $.fn[NAME] = JQUERY_NO_CONFLICT;
- return Tooltip._jQueryInterface;
- };
- return Tooltip;
- }(jQuery);
- /**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-alpha.6): popover.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
- var Popover = function ($) {
- /**
- * ------------------------------------------------------------------------
- * Constants
- * ------------------------------------------------------------------------
- */
- var NAME = 'popover';
- var VERSION = '4.0.0-alpha.6';
- var DATA_KEY = 'bs.popover';
- var EVENT_KEY = '.' + DATA_KEY;
- var JQUERY_NO_CONFLICT = $.fn[NAME];
- var Default = $.extend({}, Tooltip.Default, {
- placement: 'right',
- trigger: 'click',
- content: '',
- template: '<div class="popover" role="tooltip">' + '<h3 class="popover-title"></h3>' + '<div class="popover-content"></div></div>'
- });
- var DefaultType = $.extend({}, Tooltip.DefaultType, {
- content: '(string|element|function)'
- });
- var ClassName = {
- FADE: 'fade',
- SHOW: 'show'
- };
- var Selector = {
- TITLE: '.popover-title',
- CONTENT: '.popover-content'
- };
- var Event = {
- HIDE: 'hide' + EVENT_KEY,
- HIDDEN: 'hidden' + EVENT_KEY,
- SHOW: 'show' + EVENT_KEY,
- SHOWN: 'shown' + EVENT_KEY,
- INSERTED: 'inserted' + EVENT_KEY,
- CLICK: 'click' + EVENT_KEY,
- FOCUSIN: 'focusin' + EVENT_KEY,
- FOCUSOUT: 'focusout' + EVENT_KEY,
- MOUSEENTER: 'mouseenter' + EVENT_KEY,
- MOUSELEAVE: 'mouseleave' + EVENT_KEY
- };
- /**
- * ------------------------------------------------------------------------
- * Class Definition
- * ------------------------------------------------------------------------
- */
- var Popover = function (_Tooltip) {
- _inherits(Popover, _Tooltip);
- function Popover() {
- _classCallCheck(this, Popover);
- return _possibleConstructorReturn(this, _Tooltip.apply(this, arguments));
- }
- // overrides
- Popover.prototype.isWithContent = function isWithContent() {
- return this.getTitle() || this._getContent();
- };
- Popover.prototype.getTipElement = function getTipElement() {
- return this.tip = this.tip || $(this.config.template)[0];
- };
- Popover.prototype.setContent = function setContent() {
- var $tip = $(this.getTipElement());
- // we use append for html objects to maintain js events
- this.setElementContent($tip.find(Selector.TITLE), this.getTitle());
- this.setElementContent($tip.find(Selector.CONTENT), this._getContent());
- $tip.removeClass(ClassName.FADE + ' ' + ClassName.SHOW);
- this.cleanupTether();
- };
- // private
- Popover.prototype._getContent = function _getContent() {
- return this.element.getAttribute('data-content') || (typeof this.config.content === 'function' ? this.config.content.call(this.element) : this.config.content);
- };
- // static
- Popover._jQueryInterface = function _jQueryInterface(config) {
- return this.each(function () {
- var data = $(this).data(DATA_KEY);
- var _config = (typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object' ? config : null;
- if (!data && /destroy|hide/.test(config)) {
- return;
- }
- if (!data) {
- data = new Popover(this, _config);
- $(this).data(DATA_KEY, data);
- }
- if (typeof config === 'string') {
- if (data[config] === undefined) {
- throw new Error('No method named "' + config + '"');
- }
- data[config]();
- }
- });
- };
- _createClass(Popover, null, [{
- key: 'VERSION',
- // getters
- get: function get() {
- return VERSION;
- }
- }, {
- key: 'Default',
- get: function get() {
- return Default;
- }
- }, {
- key: 'NAME',
- get: function get() {
- return NAME;
- }
- }, {
- key: 'DATA_KEY',
- get: function get() {
- return DATA_KEY;
- }
- }, {
- key: 'Event',
- get: function get() {
- return Event;
- }
- }, {
- key: 'EVENT_KEY',
- get: function get() {
- return EVENT_KEY;
- }
- }, {
- key: 'DefaultType',
- get: function get() {
- return DefaultType;
- }
- }]);
- return Popover;
- }(Tooltip);
- /**
- * ------------------------------------------------------------------------
- * jQuery
- * ------------------------------------------------------------------------
- */
- $.fn[NAME] = Popover._jQueryInterface;
- $.fn[NAME].Constructor = Popover;
- $.fn[NAME].noConflict = function () {
- $.fn[NAME] = JQUERY_NO_CONFLICT;
- return Popover._jQueryInterface;
- };
- return Popover;
- }(jQuery);
- }();
|