Built files from Bizgaze WebServer
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

bootstrap.js 112KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894
  1. /*!
  2. * Bootstrap v4.0.0 (https://getbootstrap.com)
  3. * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
  4. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  5. */
  6. (function (global, factory) {
  7. typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery'), require('popper.js')) :
  8. typeof define === 'function' && define.amd ? define(['exports', 'jquery', 'popper.js'], factory) :
  9. (factory((global.bootstrap = {}),global.jQuery,global.Popper));
  10. }(this, (function (exports,$,Popper) { 'use strict';
  11. $ = $ && $.hasOwnProperty('default') ? $['default'] : $;
  12. Popper = Popper && Popper.hasOwnProperty('default') ? Popper['default'] : Popper;
  13. function _defineProperties(target, props) {
  14. for (var i = 0; i < props.length; i++) {
  15. var descriptor = props[i];
  16. descriptor.enumerable = descriptor.enumerable || false;
  17. descriptor.configurable = true;
  18. if ("value" in descriptor) descriptor.writable = true;
  19. Object.defineProperty(target, descriptor.key, descriptor);
  20. }
  21. }
  22. function _createClass(Constructor, protoProps, staticProps) {
  23. if (protoProps) _defineProperties(Constructor.prototype, protoProps);
  24. if (staticProps) _defineProperties(Constructor, staticProps);
  25. return Constructor;
  26. }
  27. function _extends() {
  28. _extends = Object.assign || function (target) {
  29. for (var i = 1; i < arguments.length; i++) {
  30. var source = arguments[i];
  31. for (var key in source) {
  32. if (Object.prototype.hasOwnProperty.call(source, key)) {
  33. target[key] = source[key];
  34. }
  35. }
  36. }
  37. return target;
  38. };
  39. return _extends.apply(this, arguments);
  40. }
  41. function _inheritsLoose(subClass, superClass) {
  42. subClass.prototype = Object.create(superClass.prototype);
  43. subClass.prototype.constructor = subClass;
  44. subClass.__proto__ = superClass;
  45. }
  46. /**
  47. * --------------------------------------------------------------------------
  48. * Bootstrap (v4.0.0): util.js
  49. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  50. * --------------------------------------------------------------------------
  51. */
  52. var Util = function ($$$1) {
  53. /**
  54. * ------------------------------------------------------------------------
  55. * Private TransitionEnd Helpers
  56. * ------------------------------------------------------------------------
  57. */
  58. var transition = false;
  59. var MAX_UID = 1000000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
  60. function toType(obj) {
  61. return {}.toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
  62. }
  63. function getSpecialTransitionEndEvent() {
  64. return {
  65. bindType: transition.end,
  66. delegateType: transition.end,
  67. handle: function handle(event) {
  68. if ($$$1(event.target).is(this)) {
  69. return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
  70. }
  71. return undefined; // eslint-disable-line no-undefined
  72. }
  73. };
  74. }
  75. function transitionEndTest() {
  76. if (typeof window !== 'undefined' && window.QUnit) {
  77. return false;
  78. }
  79. return {
  80. end: 'transitionend'
  81. };
  82. }
  83. function transitionEndEmulator(duration) {
  84. var _this = this;
  85. var called = false;
  86. $$$1(this).one(Util.TRANSITION_END, function () {
  87. called = true;
  88. });
  89. setTimeout(function () {
  90. if (!called) {
  91. Util.triggerTransitionEnd(_this);
  92. }
  93. }, duration);
  94. return this;
  95. }
  96. function setTransitionEndSupport() {
  97. transition = transitionEndTest();
  98. $$$1.fn.emulateTransitionEnd = transitionEndEmulator;
  99. if (Util.supportsTransitionEnd()) {
  100. $$$1.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
  101. }
  102. }
  103. function escapeId(selector) {
  104. // We escape IDs in case of special selectors (selector = '#myId:something')
  105. // $.escapeSelector does not exist in jQuery < 3
  106. selector = typeof $$$1.escapeSelector === 'function' ? $$$1.escapeSelector(selector).substr(1) : selector.replace(/(:|\.|\[|\]|,|=|@)/g, '\\$1');
  107. return selector;
  108. }
  109. /**
  110. * --------------------------------------------------------------------------
  111. * Public Util Api
  112. * --------------------------------------------------------------------------
  113. */
  114. var Util = {
  115. TRANSITION_END: 'bsTransitionEnd',
  116. getUID: function getUID(prefix) {
  117. do {
  118. // eslint-disable-next-line no-bitwise
  119. prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
  120. } while (document.getElementById(prefix));
  121. return prefix;
  122. },
  123. getSelectorFromElement: function getSelectorFromElement(element) {
  124. var selector = element.getAttribute('data-target');
  125. if (!selector || selector === '#') {
  126. selector = element.getAttribute('href') || '';
  127. } // If it's an ID
  128. if (selector.charAt(0) === '#') {
  129. selector = escapeId(selector);
  130. }
  131. try {
  132. var $selector = $$$1(document).find(selector);
  133. return $selector.length > 0 ? selector : null;
  134. } catch (err) {
  135. return null;
  136. }
  137. },
  138. reflow: function reflow(element) {
  139. return element.offsetHeight;
  140. },
  141. triggerTransitionEnd: function triggerTransitionEnd(element) {
  142. $$$1(element).trigger(transition.end);
  143. },
  144. supportsTransitionEnd: function supportsTransitionEnd() {
  145. return Boolean(transition);
  146. },
  147. isElement: function isElement(obj) {
  148. return (obj[0] || obj).nodeType;
  149. },
  150. typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {
  151. for (var property in configTypes) {
  152. if (Object.prototype.hasOwnProperty.call(configTypes, property)) {
  153. var expectedTypes = configTypes[property];
  154. var value = config[property];
  155. var valueType = value && Util.isElement(value) ? 'element' : toType(value);
  156. if (!new RegExp(expectedTypes).test(valueType)) {
  157. throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
  158. }
  159. }
  160. }
  161. }
  162. };
  163. setTransitionEndSupport();
  164. return Util;
  165. }($);
  166. /**
  167. * --------------------------------------------------------------------------
  168. * Bootstrap (v4.0.0): alert.js
  169. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  170. * --------------------------------------------------------------------------
  171. */
  172. var Alert = function ($$$1) {
  173. /**
  174. * ------------------------------------------------------------------------
  175. * Constants
  176. * ------------------------------------------------------------------------
  177. */
  178. var NAME = 'alert';
  179. var VERSION = '4.0.0';
  180. var DATA_KEY = 'bs.alert';
  181. var EVENT_KEY = "." + DATA_KEY;
  182. var DATA_API_KEY = '.data-api';
  183. var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
  184. var TRANSITION_DURATION = 150;
  185. var Selector = {
  186. DISMISS: '[data-dismiss="alert"]'
  187. };
  188. var Event = {
  189. CLOSE: "close" + EVENT_KEY,
  190. CLOSED: "closed" + EVENT_KEY,
  191. CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
  192. };
  193. var ClassName = {
  194. ALERT: 'alert',
  195. FADE: 'fade',
  196. SHOW: 'show'
  197. /**
  198. * ------------------------------------------------------------------------
  199. * Class Definition
  200. * ------------------------------------------------------------------------
  201. */
  202. };
  203. var Alert =
  204. /*#__PURE__*/
  205. function () {
  206. function Alert(element) {
  207. this._element = element;
  208. } // Getters
  209. var _proto = Alert.prototype;
  210. // Public
  211. _proto.close = function close(element) {
  212. element = element || this._element;
  213. var rootElement = this._getRootElement(element);
  214. var customEvent = this._triggerCloseEvent(rootElement);
  215. if (customEvent.isDefaultPrevented()) {
  216. return;
  217. }
  218. this._removeElement(rootElement);
  219. };
  220. _proto.dispose = function dispose() {
  221. $$$1.removeData(this._element, DATA_KEY);
  222. this._element = null;
  223. }; // Private
  224. _proto._getRootElement = function _getRootElement(element) {
  225. var selector = Util.getSelectorFromElement(element);
  226. var parent = false;
  227. if (selector) {
  228. parent = $$$1(selector)[0];
  229. }
  230. if (!parent) {
  231. parent = $$$1(element).closest("." + ClassName.ALERT)[0];
  232. }
  233. return parent;
  234. };
  235. _proto._triggerCloseEvent = function _triggerCloseEvent(element) {
  236. var closeEvent = $$$1.Event(Event.CLOSE);
  237. $$$1(element).trigger(closeEvent);
  238. return closeEvent;
  239. };
  240. _proto._removeElement = function _removeElement(element) {
  241. var _this = this;
  242. $$$1(element).removeClass(ClassName.SHOW);
  243. if (!Util.supportsTransitionEnd() || !$$$1(element).hasClass(ClassName.FADE)) {
  244. this._destroyElement(element);
  245. return;
  246. }
  247. $$$1(element).one(Util.TRANSITION_END, function (event) {
  248. return _this._destroyElement(element, event);
  249. }).emulateTransitionEnd(TRANSITION_DURATION);
  250. };
  251. _proto._destroyElement = function _destroyElement(element) {
  252. $$$1(element).detach().trigger(Event.CLOSED).remove();
  253. }; // Static
  254. Alert._jQueryInterface = function _jQueryInterface(config) {
  255. return this.each(function () {
  256. var $element = $$$1(this);
  257. var data = $element.data(DATA_KEY);
  258. if (!data) {
  259. data = new Alert(this);
  260. $element.data(DATA_KEY, data);
  261. }
  262. if (config === 'close') {
  263. data[config](this);
  264. }
  265. });
  266. };
  267. Alert._handleDismiss = function _handleDismiss(alertInstance) {
  268. return function (event) {
  269. if (event) {
  270. event.preventDefault();
  271. }
  272. alertInstance.close(this);
  273. };
  274. };
  275. _createClass(Alert, null, [{
  276. key: "VERSION",
  277. get: function get() {
  278. return VERSION;
  279. }
  280. }]);
  281. return Alert;
  282. }();
  283. /**
  284. * ------------------------------------------------------------------------
  285. * Data Api implementation
  286. * ------------------------------------------------------------------------
  287. */
  288. $$$1(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()));
  289. /**
  290. * ------------------------------------------------------------------------
  291. * jQuery
  292. * ------------------------------------------------------------------------
  293. */
  294. $$$1.fn[NAME] = Alert._jQueryInterface;
  295. $$$1.fn[NAME].Constructor = Alert;
  296. $$$1.fn[NAME].noConflict = function () {
  297. $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
  298. return Alert._jQueryInterface;
  299. };
  300. return Alert;
  301. }($);
  302. /**
  303. * --------------------------------------------------------------------------
  304. * Bootstrap (v4.0.0): button.js
  305. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  306. * --------------------------------------------------------------------------
  307. */
  308. var Button = function ($$$1) {
  309. /**
  310. * ------------------------------------------------------------------------
  311. * Constants
  312. * ------------------------------------------------------------------------
  313. */
  314. var NAME = 'button';
  315. var VERSION = '4.0.0';
  316. var DATA_KEY = 'bs.button';
  317. var EVENT_KEY = "." + DATA_KEY;
  318. var DATA_API_KEY = '.data-api';
  319. var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
  320. var ClassName = {
  321. ACTIVE: 'active',
  322. BUTTON: 'btn',
  323. FOCUS: 'focus'
  324. };
  325. var Selector = {
  326. DATA_TOGGLE_CARROT: '[data-toggle^="button"]',
  327. DATA_TOGGLE: '[data-toggle="buttons"]',
  328. INPUT: 'input',
  329. ACTIVE: '.active',
  330. BUTTON: '.btn'
  331. };
  332. var Event = {
  333. CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
  334. FOCUS_BLUR_DATA_API: "focus" + EVENT_KEY + DATA_API_KEY + " " + ("blur" + EVENT_KEY + DATA_API_KEY)
  335. /**
  336. * ------------------------------------------------------------------------
  337. * Class Definition
  338. * ------------------------------------------------------------------------
  339. */
  340. };
  341. var Button =
  342. /*#__PURE__*/
  343. function () {
  344. function Button(element) {
  345. this._element = element;
  346. } // Getters
  347. var _proto = Button.prototype;
  348. // Public
  349. _proto.toggle = function toggle() {
  350. var triggerChangeEvent = true;
  351. var addAriaPressed = true;
  352. var rootElement = $$$1(this._element).closest(Selector.DATA_TOGGLE)[0];
  353. if (rootElement) {
  354. var input = $$$1(this._element).find(Selector.INPUT)[0];
  355. if (input) {
  356. if (input.type === 'radio') {
  357. if (input.checked && $$$1(this._element).hasClass(ClassName.ACTIVE)) {
  358. triggerChangeEvent = false;
  359. } else {
  360. var activeElement = $$$1(rootElement).find(Selector.ACTIVE)[0];
  361. if (activeElement) {
  362. $$$1(activeElement).removeClass(ClassName.ACTIVE);
  363. }
  364. }
  365. }
  366. if (triggerChangeEvent) {
  367. if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains('disabled') || rootElement.classList.contains('disabled')) {
  368. return;
  369. }
  370. input.checked = !$$$1(this._element).hasClass(ClassName.ACTIVE);
  371. $$$1(input).trigger('change');
  372. }
  373. input.focus();
  374. addAriaPressed = false;
  375. }
  376. }
  377. if (addAriaPressed) {
  378. this._element.setAttribute('aria-pressed', !$$$1(this._element).hasClass(ClassName.ACTIVE));
  379. }
  380. if (triggerChangeEvent) {
  381. $$$1(this._element).toggleClass(ClassName.ACTIVE);
  382. }
  383. };
  384. _proto.dispose = function dispose() {
  385. $$$1.removeData(this._element, DATA_KEY);
  386. this._element = null;
  387. }; // Static
  388. Button._jQueryInterface = function _jQueryInterface(config) {
  389. return this.each(function () {
  390. var data = $$$1(this).data(DATA_KEY);
  391. if (!data) {
  392. data = new Button(this);
  393. $$$1(this).data(DATA_KEY, data);
  394. }
  395. if (config === 'toggle') {
  396. data[config]();
  397. }
  398. });
  399. };
  400. _createClass(Button, null, [{
  401. key: "VERSION",
  402. get: function get() {
  403. return VERSION;
  404. }
  405. }]);
  406. return Button;
  407. }();
  408. /**
  409. * ------------------------------------------------------------------------
  410. * Data Api implementation
  411. * ------------------------------------------------------------------------
  412. */
  413. $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
  414. event.preventDefault();
  415. var button = event.target;
  416. if (!$$$1(button).hasClass(ClassName.BUTTON)) {
  417. button = $$$1(button).closest(Selector.BUTTON);
  418. }
  419. Button._jQueryInterface.call($$$1(button), 'toggle');
  420. }).on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
  421. var button = $$$1(event.target).closest(Selector.BUTTON)[0];
  422. $$$1(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type));
  423. });
  424. /**
  425. * ------------------------------------------------------------------------
  426. * jQuery
  427. * ------------------------------------------------------------------------
  428. */
  429. $$$1.fn[NAME] = Button._jQueryInterface;
  430. $$$1.fn[NAME].Constructor = Button;
  431. $$$1.fn[NAME].noConflict = function () {
  432. $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
  433. return Button._jQueryInterface;
  434. };
  435. return Button;
  436. }($);
  437. /**
  438. * --------------------------------------------------------------------------
  439. * Bootstrap (v4.0.0): carousel.js
  440. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  441. * --------------------------------------------------------------------------
  442. */
  443. var Carousel = function ($$$1) {
  444. /**
  445. * ------------------------------------------------------------------------
  446. * Constants
  447. * ------------------------------------------------------------------------
  448. */
  449. var NAME = 'carousel';
  450. var VERSION = '4.0.0';
  451. var DATA_KEY = 'bs.carousel';
  452. var EVENT_KEY = "." + DATA_KEY;
  453. var DATA_API_KEY = '.data-api';
  454. var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
  455. var TRANSITION_DURATION = 600;
  456. var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key
  457. var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key
  458. var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
  459. var Default = {
  460. interval: 5000,
  461. keyboard: true,
  462. slide: false,
  463. pause: 'hover',
  464. wrap: true
  465. };
  466. var DefaultType = {
  467. interval: '(number|boolean)',
  468. keyboard: 'boolean',
  469. slide: '(boolean|string)',
  470. pause: '(string|boolean)',
  471. wrap: 'boolean'
  472. };
  473. var Direction = {
  474. NEXT: 'next',
  475. PREV: 'prev',
  476. LEFT: 'left',
  477. RIGHT: 'right'
  478. };
  479. var Event = {
  480. SLIDE: "slide" + EVENT_KEY,
  481. SLID: "slid" + EVENT_KEY,
  482. KEYDOWN: "keydown" + EVENT_KEY,
  483. MOUSEENTER: "mouseenter" + EVENT_KEY,
  484. MOUSELEAVE: "mouseleave" + EVENT_KEY,
  485. TOUCHEND: "touchend" + EVENT_KEY,
  486. LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY,
  487. CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
  488. };
  489. var ClassName = {
  490. CAROUSEL: 'carousel',
  491. ACTIVE: 'active',
  492. SLIDE: 'slide',
  493. RIGHT: 'carousel-item-right',
  494. LEFT: 'carousel-item-left',
  495. NEXT: 'carousel-item-next',
  496. PREV: 'carousel-item-prev',
  497. ITEM: 'carousel-item'
  498. };
  499. var Selector = {
  500. ACTIVE: '.active',
  501. ACTIVE_ITEM: '.active.carousel-item',
  502. ITEM: '.carousel-item',
  503. NEXT_PREV: '.carousel-item-next, .carousel-item-prev',
  504. INDICATORS: '.carousel-indicators',
  505. DATA_SLIDE: '[data-slide], [data-slide-to]',
  506. DATA_RIDE: '[data-ride="carousel"]'
  507. /**
  508. * ------------------------------------------------------------------------
  509. * Class Definition
  510. * ------------------------------------------------------------------------
  511. */
  512. };
  513. var Carousel =
  514. /*#__PURE__*/
  515. function () {
  516. function Carousel(element, config) {
  517. this._items = null;
  518. this._interval = null;
  519. this._activeElement = null;
  520. this._isPaused = false;
  521. this._isSliding = false;
  522. this.touchTimeout = null;
  523. this._config = this._getConfig(config);
  524. this._element = $$$1(element)[0];
  525. this._indicatorsElement = $$$1(this._element).find(Selector.INDICATORS)[0];
  526. this._addEventListeners();
  527. } // Getters
  528. var _proto = Carousel.prototype;
  529. // Public
  530. _proto.next = function next() {
  531. if (!this._isSliding) {
  532. this._slide(Direction.NEXT);
  533. }
  534. };
  535. _proto.nextWhenVisible = function nextWhenVisible() {
  536. // Don't call next when the page isn't visible
  537. // or the carousel or its parent isn't visible
  538. if (!document.hidden && $$$1(this._element).is(':visible') && $$$1(this._element).css('visibility') !== 'hidden') {
  539. this.next();
  540. }
  541. };
  542. _proto.prev = function prev() {
  543. if (!this._isSliding) {
  544. this._slide(Direction.PREV);
  545. }
  546. };
  547. _proto.pause = function pause(event) {
  548. if (!event) {
  549. this._isPaused = true;
  550. }
  551. if ($$$1(this._element).find(Selector.NEXT_PREV)[0] && Util.supportsTransitionEnd()) {
  552. Util.triggerTransitionEnd(this._element);
  553. this.cycle(true);
  554. }
  555. clearInterval(this._interval);
  556. this._interval = null;
  557. };
  558. _proto.cycle = function cycle(event) {
  559. if (!event) {
  560. this._isPaused = false;
  561. }
  562. if (this._interval) {
  563. clearInterval(this._interval);
  564. this._interval = null;
  565. }
  566. if (this._config.interval && !this._isPaused) {
  567. this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);
  568. }
  569. };
  570. _proto.to = function to(index) {
  571. var _this = this;
  572. this._activeElement = $$$1(this._element).find(Selector.ACTIVE_ITEM)[0];
  573. var activeIndex = this._getItemIndex(this._activeElement);
  574. if (index > this._items.length - 1 || index < 0) {
  575. return;
  576. }
  577. if (this._isSliding) {
  578. $$$1(this._element).one(Event.SLID, function () {
  579. return _this.to(index);
  580. });
  581. return;
  582. }
  583. if (activeIndex === index) {
  584. this.pause();
  585. this.cycle();
  586. return;
  587. }
  588. var direction = index > activeIndex ? Direction.NEXT : Direction.PREV;
  589. this._slide(direction, this._items[index]);
  590. };
  591. _proto.dispose = function dispose() {
  592. $$$1(this._element).off(EVENT_KEY);
  593. $$$1.removeData(this._element, DATA_KEY);
  594. this._items = null;
  595. this._config = null;
  596. this._element = null;
  597. this._interval = null;
  598. this._isPaused = null;
  599. this._isSliding = null;
  600. this._activeElement = null;
  601. this._indicatorsElement = null;
  602. }; // Private
  603. _proto._getConfig = function _getConfig(config) {
  604. config = _extends({}, Default, config);
  605. Util.typeCheckConfig(NAME, config, DefaultType);
  606. return config;
  607. };
  608. _proto._addEventListeners = function _addEventListeners() {
  609. var _this2 = this;
  610. if (this._config.keyboard) {
  611. $$$1(this._element).on(Event.KEYDOWN, function (event) {
  612. return _this2._keydown(event);
  613. });
  614. }
  615. if (this._config.pause === 'hover') {
  616. $$$1(this._element).on(Event.MOUSEENTER, function (event) {
  617. return _this2.pause(event);
  618. }).on(Event.MOUSELEAVE, function (event) {
  619. return _this2.cycle(event);
  620. });
  621. if ('ontouchstart' in document.documentElement) {
  622. // If it's a touch-enabled device, mouseenter/leave are fired as
  623. // part of the mouse compatibility events on first tap - the carousel
  624. // would stop cycling until user tapped out of it;
  625. // here, we listen for touchend, explicitly pause the carousel
  626. // (as if it's the second time we tap on it, mouseenter compat event
  627. // is NOT fired) and after a timeout (to allow for mouse compatibility
  628. // events to fire) we explicitly restart cycling
  629. $$$1(this._element).on(Event.TOUCHEND, function () {
  630. _this2.pause();
  631. if (_this2.touchTimeout) {
  632. clearTimeout(_this2.touchTimeout);
  633. }
  634. _this2.touchTimeout = setTimeout(function (event) {
  635. return _this2.cycle(event);
  636. }, TOUCHEVENT_COMPAT_WAIT + _this2._config.interval);
  637. });
  638. }
  639. }
  640. };
  641. _proto._keydown = function _keydown(event) {
  642. if (/input|textarea/i.test(event.target.tagName)) {
  643. return;
  644. }
  645. switch (event.which) {
  646. case ARROW_LEFT_KEYCODE:
  647. event.preventDefault();
  648. this.prev();
  649. break;
  650. case ARROW_RIGHT_KEYCODE:
  651. event.preventDefault();
  652. this.next();
  653. break;
  654. default:
  655. }
  656. };
  657. _proto._getItemIndex = function _getItemIndex(element) {
  658. this._items = $$$1.makeArray($$$1(element).parent().find(Selector.ITEM));
  659. return this._items.indexOf(element);
  660. };
  661. _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {
  662. var isNextDirection = direction === Direction.NEXT;
  663. var isPrevDirection = direction === Direction.PREV;
  664. var activeIndex = this._getItemIndex(activeElement);
  665. var lastItemIndex = this._items.length - 1;
  666. var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;
  667. if (isGoingToWrap && !this._config.wrap) {
  668. return activeElement;
  669. }
  670. var delta = direction === Direction.PREV ? -1 : 1;
  671. var itemIndex = (activeIndex + delta) % this._items.length;
  672. return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];
  673. };
  674. _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {
  675. var targetIndex = this._getItemIndex(relatedTarget);
  676. var fromIndex = this._getItemIndex($$$1(this._element).find(Selector.ACTIVE_ITEM)[0]);
  677. var slideEvent = $$$1.Event(Event.SLIDE, {
  678. relatedTarget: relatedTarget,
  679. direction: eventDirectionName,
  680. from: fromIndex,
  681. to: targetIndex
  682. });
  683. $$$1(this._element).trigger(slideEvent);
  684. return slideEvent;
  685. };
  686. _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {
  687. if (this._indicatorsElement) {
  688. $$$1(this._indicatorsElement).find(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
  689. var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];
  690. if (nextIndicator) {
  691. $$$1(nextIndicator).addClass(ClassName.ACTIVE);
  692. }
  693. }
  694. };
  695. _proto._slide = function _slide(direction, element) {
  696. var _this3 = this;
  697. var activeElement = $$$1(this._element).find(Selector.ACTIVE_ITEM)[0];
  698. var activeElementIndex = this._getItemIndex(activeElement);
  699. var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);
  700. var nextElementIndex = this._getItemIndex(nextElement);
  701. var isCycling = Boolean(this._interval);
  702. var directionalClassName;
  703. var orderClassName;
  704. var eventDirectionName;
  705. if (direction === Direction.NEXT) {
  706. directionalClassName = ClassName.LEFT;
  707. orderClassName = ClassName.NEXT;
  708. eventDirectionName = Direction.LEFT;
  709. } else {
  710. directionalClassName = ClassName.RIGHT;
  711. orderClassName = ClassName.PREV;
  712. eventDirectionName = Direction.RIGHT;
  713. }
  714. if (nextElement && $$$1(nextElement).hasClass(ClassName.ACTIVE)) {
  715. this._isSliding = false;
  716. return;
  717. }
  718. var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);
  719. if (slideEvent.isDefaultPrevented()) {
  720. return;
  721. }
  722. if (!activeElement || !nextElement) {
  723. // Some weirdness is happening, so we bail
  724. return;
  725. }
  726. this._isSliding = true;
  727. if (isCycling) {
  728. this.pause();
  729. }
  730. this._setActiveIndicatorElement(nextElement);
  731. var slidEvent = $$$1.Event(Event.SLID, {
  732. relatedTarget: nextElement,
  733. direction: eventDirectionName,
  734. from: activeElementIndex,
  735. to: nextElementIndex
  736. });
  737. if (Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.SLIDE)) {
  738. $$$1(nextElement).addClass(orderClassName);
  739. Util.reflow(nextElement);
  740. $$$1(activeElement).addClass(directionalClassName);
  741. $$$1(nextElement).addClass(directionalClassName);
  742. $$$1(activeElement).one(Util.TRANSITION_END, function () {
  743. $$$1(nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(ClassName.ACTIVE);
  744. $$$1(activeElement).removeClass(ClassName.ACTIVE + " " + orderClassName + " " + directionalClassName);
  745. _this3._isSliding = false;
  746. setTimeout(function () {
  747. return $$$1(_this3._element).trigger(slidEvent);
  748. }, 0);
  749. }).emulateTransitionEnd(TRANSITION_DURATION);
  750. } else {
  751. $$$1(activeElement).removeClass(ClassName.ACTIVE);
  752. $$$1(nextElement).addClass(ClassName.ACTIVE);
  753. this._isSliding = false;
  754. $$$1(this._element).trigger(slidEvent);
  755. }
  756. if (isCycling) {
  757. this.cycle();
  758. }
  759. }; // Static
  760. Carousel._jQueryInterface = function _jQueryInterface(config) {
  761. return this.each(function () {
  762. var data = $$$1(this).data(DATA_KEY);
  763. var _config = _extends({}, Default, $$$1(this).data());
  764. if (typeof config === 'object') {
  765. _config = _extends({}, _config, config);
  766. }
  767. var action = typeof config === 'string' ? config : _config.slide;
  768. if (!data) {
  769. data = new Carousel(this, _config);
  770. $$$1(this).data(DATA_KEY, data);
  771. }
  772. if (typeof config === 'number') {
  773. data.to(config);
  774. } else if (typeof action === 'string') {
  775. if (typeof data[action] === 'undefined') {
  776. throw new TypeError("No method named \"" + action + "\"");
  777. }
  778. data[action]();
  779. } else if (_config.interval) {
  780. data.pause();
  781. data.cycle();
  782. }
  783. });
  784. };
  785. Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {
  786. var selector = Util.getSelectorFromElement(this);
  787. if (!selector) {
  788. return;
  789. }
  790. var target = $$$1(selector)[0];
  791. if (!target || !$$$1(target).hasClass(ClassName.CAROUSEL)) {
  792. return;
  793. }
  794. var config = _extends({}, $$$1(target).data(), $$$1(this).data());
  795. var slideIndex = this.getAttribute('data-slide-to');
  796. if (slideIndex) {
  797. config.interval = false;
  798. }
  799. Carousel._jQueryInterface.call($$$1(target), config);
  800. if (slideIndex) {
  801. $$$1(target).data(DATA_KEY).to(slideIndex);
  802. }
  803. event.preventDefault();
  804. };
  805. _createClass(Carousel, null, [{
  806. key: "VERSION",
  807. get: function get() {
  808. return VERSION;
  809. }
  810. }, {
  811. key: "Default",
  812. get: function get() {
  813. return Default;
  814. }
  815. }]);
  816. return Carousel;
  817. }();
  818. /**
  819. * ------------------------------------------------------------------------
  820. * Data Api implementation
  821. * ------------------------------------------------------------------------
  822. */
  823. $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler);
  824. $$$1(window).on(Event.LOAD_DATA_API, function () {
  825. $$$1(Selector.DATA_RIDE).each(function () {
  826. var $carousel = $$$1(this);
  827. Carousel._jQueryInterface.call($carousel, $carousel.data());
  828. });
  829. });
  830. /**
  831. * ------------------------------------------------------------------------
  832. * jQuery
  833. * ------------------------------------------------------------------------
  834. */
  835. $$$1.fn[NAME] = Carousel._jQueryInterface;
  836. $$$1.fn[NAME].Constructor = Carousel;
  837. $$$1.fn[NAME].noConflict = function () {
  838. $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
  839. return Carousel._jQueryInterface;
  840. };
  841. return Carousel;
  842. }($);
  843. /**
  844. * --------------------------------------------------------------------------
  845. * Bootstrap (v4.0.0): collapse.js
  846. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  847. * --------------------------------------------------------------------------
  848. */
  849. var Collapse = function ($$$1) {
  850. /**
  851. * ------------------------------------------------------------------------
  852. * Constants
  853. * ------------------------------------------------------------------------
  854. */
  855. var NAME = 'collapse';
  856. var VERSION = '4.0.0';
  857. var DATA_KEY = 'bs.collapse';
  858. var EVENT_KEY = "." + DATA_KEY;
  859. var DATA_API_KEY = '.data-api';
  860. var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
  861. var TRANSITION_DURATION = 600;
  862. var Default = {
  863. toggle: true,
  864. parent: ''
  865. };
  866. var DefaultType = {
  867. toggle: 'boolean',
  868. parent: '(string|element)'
  869. };
  870. var Event = {
  871. SHOW: "show" + EVENT_KEY,
  872. SHOWN: "shown" + EVENT_KEY,
  873. HIDE: "hide" + EVENT_KEY,
  874. HIDDEN: "hidden" + EVENT_KEY,
  875. CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
  876. };
  877. var ClassName = {
  878. SHOW: 'show',
  879. COLLAPSE: 'collapse',
  880. COLLAPSING: 'collapsing',
  881. COLLAPSED: 'collapsed'
  882. };
  883. var Dimension = {
  884. WIDTH: 'width',
  885. HEIGHT: 'height'
  886. };
  887. var Selector = {
  888. ACTIVES: '.show, .collapsing',
  889. DATA_TOGGLE: '[data-toggle="collapse"]'
  890. /**
  891. * ------------------------------------------------------------------------
  892. * Class Definition
  893. * ------------------------------------------------------------------------
  894. */
  895. };
  896. var Collapse =
  897. /*#__PURE__*/
  898. function () {
  899. function Collapse(element, config) {
  900. this._isTransitioning = false;
  901. this._element = element;
  902. this._config = this._getConfig(config);
  903. this._triggerArray = $$$1.makeArray($$$1("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]")));
  904. var tabToggles = $$$1(Selector.DATA_TOGGLE);
  905. for (var i = 0; i < tabToggles.length; i++) {
  906. var elem = tabToggles[i];
  907. var selector = Util.getSelectorFromElement(elem);
  908. if (selector !== null && $$$1(selector).filter(element).length > 0) {
  909. this._selector = selector;
  910. this._triggerArray.push(elem);
  911. }
  912. }
  913. this._parent = this._config.parent ? this._getParent() : null;
  914. if (!this._config.parent) {
  915. this._addAriaAndCollapsedClass(this._element, this._triggerArray);
  916. }
  917. if (this._config.toggle) {
  918. this.toggle();
  919. }
  920. } // Getters
  921. var _proto = Collapse.prototype;
  922. // Public
  923. _proto.toggle = function toggle() {
  924. if ($$$1(this._element).hasClass(ClassName.SHOW)) {
  925. this.hide();
  926. } else {
  927. this.show();
  928. }
  929. };
  930. _proto.show = function show() {
  931. var _this = this;
  932. if (this._isTransitioning || $$$1(this._element).hasClass(ClassName.SHOW)) {
  933. return;
  934. }
  935. var actives;
  936. var activesData;
  937. if (this._parent) {
  938. actives = $$$1.makeArray($$$1(this._parent).find(Selector.ACTIVES).filter("[data-parent=\"" + this._config.parent + "\"]"));
  939. if (actives.length === 0) {
  940. actives = null;
  941. }
  942. }
  943. if (actives) {
  944. activesData = $$$1(actives).not(this._selector).data(DATA_KEY);
  945. if (activesData && activesData._isTransitioning) {
  946. return;
  947. }
  948. }
  949. var startEvent = $$$1.Event(Event.SHOW);
  950. $$$1(this._element).trigger(startEvent);
  951. if (startEvent.isDefaultPrevented()) {
  952. return;
  953. }
  954. if (actives) {
  955. Collapse._jQueryInterface.call($$$1(actives).not(this._selector), 'hide');
  956. if (!activesData) {
  957. $$$1(actives).data(DATA_KEY, null);
  958. }
  959. }
  960. var dimension = this._getDimension();
  961. $$$1(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);
  962. this._element.style[dimension] = 0;
  963. if (this._triggerArray.length > 0) {
  964. $$$1(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);
  965. }
  966. this.setTransitioning(true);
  967. var complete = function complete() {
  968. $$$1(_this._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.SHOW);
  969. _this._element.style[dimension] = '';
  970. _this.setTransitioning(false);
  971. $$$1(_this._element).trigger(Event.SHOWN);
  972. };
  973. if (!Util.supportsTransitionEnd()) {
  974. complete();
  975. return;
  976. }
  977. var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
  978. var scrollSize = "scroll" + capitalizedDimension;
  979. $$$1(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
  980. this._element.style[dimension] = this._element[scrollSize] + "px";
  981. };
  982. _proto.hide = function hide() {
  983. var _this2 = this;
  984. if (this._isTransitioning || !$$$1(this._element).hasClass(ClassName.SHOW)) {
  985. return;
  986. }
  987. var startEvent = $$$1.Event(Event.HIDE);
  988. $$$1(this._element).trigger(startEvent);
  989. if (startEvent.isDefaultPrevented()) {
  990. return;
  991. }
  992. var dimension = this._getDimension();
  993. this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
  994. Util.reflow(this._element);
  995. $$$1(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);
  996. if (this._triggerArray.length > 0) {
  997. for (var i = 0; i < this._triggerArray.length; i++) {
  998. var trigger = this._triggerArray[i];
  999. var selector = Util.getSelectorFromElement(trigger);
  1000. if (selector !== null) {
  1001. var $elem = $$$1(selector);
  1002. if (!$elem.hasClass(ClassName.SHOW)) {
  1003. $$$1(trigger).addClass(ClassName.COLLAPSED).attr('aria-expanded', false);
  1004. }
  1005. }
  1006. }
  1007. }
  1008. this.setTransitioning(true);
  1009. var complete = function complete() {
  1010. _this2.setTransitioning(false);
  1011. $$$1(_this2._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN);
  1012. };
  1013. this._element.style[dimension] = '';
  1014. if (!Util.supportsTransitionEnd()) {
  1015. complete();
  1016. return;
  1017. }
  1018. $$$1(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
  1019. };
  1020. _proto.setTransitioning = function setTransitioning(isTransitioning) {
  1021. this._isTransitioning = isTransitioning;
  1022. };
  1023. _proto.dispose = function dispose() {
  1024. $$$1.removeData(this._element, DATA_KEY);
  1025. this._config = null;
  1026. this._parent = null;
  1027. this._element = null;
  1028. this._triggerArray = null;
  1029. this._isTransitioning = null;
  1030. }; // Private
  1031. _proto._getConfig = function _getConfig(config) {
  1032. config = _extends({}, Default, config);
  1033. config.toggle = Boolean(config.toggle); // Coerce string values
  1034. Util.typeCheckConfig(NAME, config, DefaultType);
  1035. return config;
  1036. };
  1037. _proto._getDimension = function _getDimension() {
  1038. var hasWidth = $$$1(this._element).hasClass(Dimension.WIDTH);
  1039. return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;
  1040. };
  1041. _proto._getParent = function _getParent() {
  1042. var _this3 = this;
  1043. var parent = null;
  1044. if (Util.isElement(this._config.parent)) {
  1045. parent = this._config.parent; // It's a jQuery object
  1046. if (typeof this._config.parent.jquery !== 'undefined') {
  1047. parent = this._config.parent[0];
  1048. }
  1049. } else {
  1050. parent = $$$1(this._config.parent)[0];
  1051. }
  1052. var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]";
  1053. $$$1(parent).find(selector).each(function (i, element) {
  1054. _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);
  1055. });
  1056. return parent;
  1057. };
  1058. _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
  1059. if (element) {
  1060. var isOpen = $$$1(element).hasClass(ClassName.SHOW);
  1061. if (triggerArray.length > 0) {
  1062. $$$1(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
  1063. }
  1064. }
  1065. }; // Static
  1066. Collapse._getTargetFromElement = function _getTargetFromElement(element) {
  1067. var selector = Util.getSelectorFromElement(element);
  1068. return selector ? $$$1(selector)[0] : null;
  1069. };
  1070. Collapse._jQueryInterface = function _jQueryInterface(config) {
  1071. return this.each(function () {
  1072. var $this = $$$1(this);
  1073. var data = $this.data(DATA_KEY);
  1074. var _config = _extends({}, Default, $this.data(), typeof config === 'object' && config);
  1075. if (!data && _config.toggle && /show|hide/.test(config)) {
  1076. _config.toggle = false;
  1077. }
  1078. if (!data) {
  1079. data = new Collapse(this, _config);
  1080. $this.data(DATA_KEY, data);
  1081. }
  1082. if (typeof config === 'string') {
  1083. if (typeof data[config] === 'undefined') {
  1084. throw new TypeError("No method named \"" + config + "\"");
  1085. }
  1086. data[config]();
  1087. }
  1088. });
  1089. };
  1090. _createClass(Collapse, null, [{
  1091. key: "VERSION",
  1092. get: function get() {
  1093. return VERSION;
  1094. }
  1095. }, {
  1096. key: "Default",
  1097. get: function get() {
  1098. return Default;
  1099. }
  1100. }]);
  1101. return Collapse;
  1102. }();
  1103. /**
  1104. * ------------------------------------------------------------------------
  1105. * Data Api implementation
  1106. * ------------------------------------------------------------------------
  1107. */
  1108. $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
  1109. // preventDefault only for <a> elements (which change the URL) not inside the collapsible element
  1110. if (event.currentTarget.tagName === 'A') {
  1111. event.preventDefault();
  1112. }
  1113. var $trigger = $$$1(this);
  1114. var selector = Util.getSelectorFromElement(this);
  1115. $$$1(selector).each(function () {
  1116. var $target = $$$1(this);
  1117. var data = $target.data(DATA_KEY);
  1118. var config = data ? 'toggle' : $trigger.data();
  1119. Collapse._jQueryInterface.call($target, config);
  1120. });
  1121. });
  1122. /**
  1123. * ------------------------------------------------------------------------
  1124. * jQuery
  1125. * ------------------------------------------------------------------------
  1126. */
  1127. $$$1.fn[NAME] = Collapse._jQueryInterface;
  1128. $$$1.fn[NAME].Constructor = Collapse;
  1129. $$$1.fn[NAME].noConflict = function () {
  1130. $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
  1131. return Collapse._jQueryInterface;
  1132. };
  1133. return Collapse;
  1134. }($);
  1135. /**
  1136. * --------------------------------------------------------------------------
  1137. * Bootstrap (v4.0.0): dropdown.js
  1138. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  1139. * --------------------------------------------------------------------------
  1140. */
  1141. var Dropdown = function ($$$1) {
  1142. /**
  1143. * ------------------------------------------------------------------------
  1144. * Constants
  1145. * ------------------------------------------------------------------------
  1146. */
  1147. var NAME = 'dropdown';
  1148. var VERSION = '4.0.0';
  1149. var DATA_KEY = 'bs.dropdown';
  1150. var EVENT_KEY = "." + DATA_KEY;
  1151. var DATA_API_KEY = '.data-api';
  1152. var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
  1153. var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
  1154. var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key
  1155. var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key
  1156. var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
  1157. var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
  1158. var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
  1159. var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE);
  1160. var Event = {
  1161. HIDE: "hide" + EVENT_KEY,
  1162. HIDDEN: "hidden" + EVENT_KEY,
  1163. SHOW: "show" + EVENT_KEY,
  1164. SHOWN: "shown" + EVENT_KEY,
  1165. CLICK: "click" + EVENT_KEY,
  1166. CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
  1167. KEYDOWN_DATA_API: "keydown" + EVENT_KEY + DATA_API_KEY,
  1168. KEYUP_DATA_API: "keyup" + EVENT_KEY + DATA_API_KEY
  1169. };
  1170. var ClassName = {
  1171. DISABLED: 'disabled',
  1172. SHOW: 'show',
  1173. DROPUP: 'dropup',
  1174. DROPRIGHT: 'dropright',
  1175. DROPLEFT: 'dropleft',
  1176. MENURIGHT: 'dropdown-menu-right',
  1177. MENULEFT: 'dropdown-menu-left',
  1178. POSITION_STATIC: 'position-static'
  1179. };
  1180. var Selector = {
  1181. DATA_TOGGLE: '[data-toggle="dropdown"]',
  1182. FORM_CHILD: '.dropdown form',
  1183. MENU: '.dropdown-menu',
  1184. NAVBAR_NAV: '.navbar-nav',
  1185. VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled)'
  1186. };
  1187. var AttachmentMap = {
  1188. TOP: 'top-start',
  1189. TOPEND: 'top-end',
  1190. BOTTOM: 'bottom-start',
  1191. BOTTOMEND: 'bottom-end',
  1192. RIGHT: 'right-start',
  1193. RIGHTEND: 'right-end',
  1194. LEFT: 'left-start',
  1195. LEFTEND: 'left-end'
  1196. };
  1197. var Default = {
  1198. offset: 0,
  1199. flip: true,
  1200. boundary: 'scrollParent'
  1201. };
  1202. var DefaultType = {
  1203. offset: '(number|string|function)',
  1204. flip: 'boolean',
  1205. boundary: '(string|element)'
  1206. /**
  1207. * ------------------------------------------------------------------------
  1208. * Class Definition
  1209. * ------------------------------------------------------------------------
  1210. */
  1211. };
  1212. var Dropdown =
  1213. /*#__PURE__*/
  1214. function () {
  1215. function Dropdown(element, config) {
  1216. this._element = element;
  1217. this._popper = null;
  1218. this._config = this._getConfig(config);
  1219. this._menu = this._getMenuElement();
  1220. this._inNavbar = this._detectNavbar();
  1221. this._addEventListeners();
  1222. } // Getters
  1223. var _proto = Dropdown.prototype;
  1224. // Public
  1225. _proto.toggle = function toggle() {
  1226. if (this._element.disabled || $$$1(this._element).hasClass(ClassName.DISABLED)) {
  1227. return;
  1228. }
  1229. var parent = Dropdown._getParentFromElement(this._element);
  1230. var isActive = $$$1(this._menu).hasClass(ClassName.SHOW);
  1231. Dropdown._clearMenus();
  1232. if (isActive) {
  1233. return;
  1234. }
  1235. var relatedTarget = {
  1236. relatedTarget: this._element
  1237. };
  1238. var showEvent = $$$1.Event(Event.SHOW, relatedTarget);
  1239. $$$1(parent).trigger(showEvent);
  1240. if (showEvent.isDefaultPrevented()) {
  1241. return;
  1242. } // Disable totally Popper.js for Dropdown in Navbar
  1243. if (!this._inNavbar) {
  1244. /**
  1245. * Check for Popper dependency
  1246. * Popper - https://popper.js.org
  1247. */
  1248. if (typeof Popper === 'undefined') {
  1249. throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)');
  1250. }
  1251. var element = this._element; // For dropup with alignment we use the parent as popper container
  1252. if ($$$1(parent).hasClass(ClassName.DROPUP)) {
  1253. if ($$$1(this._menu).hasClass(ClassName.MENULEFT) || $$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
  1254. element = parent;
  1255. }
  1256. } // If boundary is not `scrollParent`, then set position to `static`
  1257. // to allow the menu to "escape" the scroll parent's boundaries
  1258. // https://github.com/twbs/bootstrap/issues/24251
  1259. if (this._config.boundary !== 'scrollParent') {
  1260. $$$1(parent).addClass(ClassName.POSITION_STATIC);
  1261. }
  1262. this._popper = new Popper(element, this._menu, this._getPopperConfig());
  1263. } // If this is a touch-enabled device we add extra
  1264. // empty mouseover listeners to the body's immediate children;
  1265. // only needed because of broken event delegation on iOS
  1266. // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
  1267. if ('ontouchstart' in document.documentElement && $$$1(parent).closest(Selector.NAVBAR_NAV).length === 0) {
  1268. $$$1('body').children().on('mouseover', null, $$$1.noop);
  1269. }
  1270. this._element.focus();
  1271. this._element.setAttribute('aria-expanded', true);
  1272. $$$1(this._menu).toggleClass(ClassName.SHOW);
  1273. $$$1(parent).toggleClass(ClassName.SHOW).trigger($$$1.Event(Event.SHOWN, relatedTarget));
  1274. };
  1275. _proto.dispose = function dispose() {
  1276. $$$1.removeData(this._element, DATA_KEY);
  1277. $$$1(this._element).off(EVENT_KEY);
  1278. this._element = null;
  1279. this._menu = null;
  1280. if (this._popper !== null) {
  1281. this._popper.destroy();
  1282. this._popper = null;
  1283. }
  1284. };
  1285. _proto.update = function update() {
  1286. this._inNavbar = this._detectNavbar();
  1287. if (this._popper !== null) {
  1288. this._popper.scheduleUpdate();
  1289. }
  1290. }; // Private
  1291. _proto._addEventListeners = function _addEventListeners() {
  1292. var _this = this;
  1293. $$$1(this._element).on(Event.CLICK, function (event) {
  1294. event.preventDefault();
  1295. event.stopPropagation();
  1296. _this.toggle();
  1297. });
  1298. };
  1299. _proto._getConfig = function _getConfig(config) {
  1300. config = _extends({}, this.constructor.Default, $$$1(this._element).data(), config);
  1301. Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
  1302. return config;
  1303. };
  1304. _proto._getMenuElement = function _getMenuElement() {
  1305. if (!this._menu) {
  1306. var parent = Dropdown._getParentFromElement(this._element);
  1307. this._menu = $$$1(parent).find(Selector.MENU)[0];
  1308. }
  1309. return this._menu;
  1310. };
  1311. _proto._getPlacement = function _getPlacement() {
  1312. var $parentDropdown = $$$1(this._element).parent();
  1313. var placement = AttachmentMap.BOTTOM; // Handle dropup
  1314. if ($parentDropdown.hasClass(ClassName.DROPUP)) {
  1315. placement = AttachmentMap.TOP;
  1316. if ($$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
  1317. placement = AttachmentMap.TOPEND;
  1318. }
  1319. } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {
  1320. placement = AttachmentMap.RIGHT;
  1321. } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {
  1322. placement = AttachmentMap.LEFT;
  1323. } else if ($$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
  1324. placement = AttachmentMap.BOTTOMEND;
  1325. }
  1326. return placement;
  1327. };
  1328. _proto._detectNavbar = function _detectNavbar() {
  1329. return $$$1(this._element).closest('.navbar').length > 0;
  1330. };
  1331. _proto._getPopperConfig = function _getPopperConfig() {
  1332. var _this2 = this;
  1333. var offsetConf = {};
  1334. if (typeof this._config.offset === 'function') {
  1335. offsetConf.fn = function (data) {
  1336. data.offsets = _extends({}, data.offsets, _this2._config.offset(data.offsets) || {});
  1337. return data;
  1338. };
  1339. } else {
  1340. offsetConf.offset = this._config.offset;
  1341. }
  1342. var popperConfig = {
  1343. placement: this._getPlacement(),
  1344. modifiers: {
  1345. offset: offsetConf,
  1346. flip: {
  1347. enabled: this._config.flip
  1348. },
  1349. preventOverflow: {
  1350. boundariesElement: this._config.boundary
  1351. }
  1352. }
  1353. };
  1354. return popperConfig;
  1355. }; // Static
  1356. Dropdown._jQueryInterface = function _jQueryInterface(config) {
  1357. return this.each(function () {
  1358. var data = $$$1(this).data(DATA_KEY);
  1359. var _config = typeof config === 'object' ? config : null;
  1360. if (!data) {
  1361. data = new Dropdown(this, _config);
  1362. $$$1(this).data(DATA_KEY, data);
  1363. }
  1364. if (typeof config === 'string') {
  1365. if (typeof data[config] === 'undefined') {
  1366. throw new TypeError("No method named \"" + config + "\"");
  1367. }
  1368. data[config]();
  1369. }
  1370. });
  1371. };
  1372. Dropdown._clearMenus = function _clearMenus(event) {
  1373. if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {
  1374. return;
  1375. }
  1376. var toggles = $$$1.makeArray($$$1(Selector.DATA_TOGGLE));
  1377. for (var i = 0; i < toggles.length; i++) {
  1378. var parent = Dropdown._getParentFromElement(toggles[i]);
  1379. var context = $$$1(toggles[i]).data(DATA_KEY);
  1380. var relatedTarget = {
  1381. relatedTarget: toggles[i]
  1382. };
  1383. if (!context) {
  1384. continue;
  1385. }
  1386. var dropdownMenu = context._menu;
  1387. if (!$$$1(parent).hasClass(ClassName.SHOW)) {
  1388. continue;
  1389. }
  1390. if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $$$1.contains(parent, event.target)) {
  1391. continue;
  1392. }
  1393. var hideEvent = $$$1.Event(Event.HIDE, relatedTarget);
  1394. $$$1(parent).trigger(hideEvent);
  1395. if (hideEvent.isDefaultPrevented()) {
  1396. continue;
  1397. } // If this is a touch-enabled device we remove the extra
  1398. // empty mouseover listeners we added for iOS support
  1399. if ('ontouchstart' in document.documentElement) {
  1400. $$$1('body').children().off('mouseover', null, $$$1.noop);
  1401. }
  1402. toggles[i].setAttribute('aria-expanded', 'false');
  1403. $$$1(dropdownMenu).removeClass(ClassName.SHOW);
  1404. $$$1(parent).removeClass(ClassName.SHOW).trigger($$$1.Event(Event.HIDDEN, relatedTarget));
  1405. }
  1406. };
  1407. Dropdown._getParentFromElement = function _getParentFromElement(element) {
  1408. var parent;
  1409. var selector = Util.getSelectorFromElement(element);
  1410. if (selector) {
  1411. parent = $$$1(selector)[0];
  1412. }
  1413. return parent || element.parentNode;
  1414. }; // eslint-disable-next-line complexity
  1415. Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
  1416. // If not input/textarea:
  1417. // - And not a key in REGEXP_KEYDOWN => not a dropdown command
  1418. // If input/textarea:
  1419. // - If space key => not a dropdown command
  1420. // - If key is other than escape
  1421. // - If key is not up or down => not a dropdown command
  1422. // - If trigger inside the menu => not a dropdown command
  1423. if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $$$1(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {
  1424. return;
  1425. }
  1426. event.preventDefault();
  1427. event.stopPropagation();
  1428. if (this.disabled || $$$1(this).hasClass(ClassName.DISABLED)) {
  1429. return;
  1430. }
  1431. var parent = Dropdown._getParentFromElement(this);
  1432. var isActive = $$$1(parent).hasClass(ClassName.SHOW);
  1433. if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
  1434. if (event.which === ESCAPE_KEYCODE) {
  1435. var toggle = $$$1(parent).find(Selector.DATA_TOGGLE)[0];
  1436. $$$1(toggle).trigger('focus');
  1437. }
  1438. $$$1(this).trigger('click');
  1439. return;
  1440. }
  1441. var items = $$$1(parent).find(Selector.VISIBLE_ITEMS).get();
  1442. if (items.length === 0) {
  1443. return;
  1444. }
  1445. var index = items.indexOf(event.target);
  1446. if (event.which === ARROW_UP_KEYCODE && index > 0) {
  1447. // Up
  1448. index--;
  1449. }
  1450. if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
  1451. // Down
  1452. index++;
  1453. }
  1454. if (index < 0) {
  1455. index = 0;
  1456. }
  1457. items[index].focus();
  1458. };
  1459. _createClass(Dropdown, null, [{
  1460. key: "VERSION",
  1461. get: function get() {
  1462. return VERSION;
  1463. }
  1464. }, {
  1465. key: "Default",
  1466. get: function get() {
  1467. return Default;
  1468. }
  1469. }, {
  1470. key: "DefaultType",
  1471. get: function get() {
  1472. return DefaultType;
  1473. }
  1474. }]);
  1475. return Dropdown;
  1476. }();
  1477. /**
  1478. * ------------------------------------------------------------------------
  1479. * Data Api implementation
  1480. * ------------------------------------------------------------------------
  1481. */
  1482. $$$1(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + " " + Event.KEYUP_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
  1483. event.preventDefault();
  1484. event.stopPropagation();
  1485. Dropdown._jQueryInterface.call($$$1(this), 'toggle');
  1486. }).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {
  1487. e.stopPropagation();
  1488. });
  1489. /**
  1490. * ------------------------------------------------------------------------
  1491. * jQuery
  1492. * ------------------------------------------------------------------------
  1493. */
  1494. $$$1.fn[NAME] = Dropdown._jQueryInterface;
  1495. $$$1.fn[NAME].Constructor = Dropdown;
  1496. $$$1.fn[NAME].noConflict = function () {
  1497. $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
  1498. return Dropdown._jQueryInterface;
  1499. };
  1500. return Dropdown;
  1501. }($, Popper);
  1502. /**
  1503. * --------------------------------------------------------------------------
  1504. * Bootstrap (v4.0.0): modal.js
  1505. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  1506. * --------------------------------------------------------------------------
  1507. */
  1508. var Modal = function ($$$1) {
  1509. /**
  1510. * ------------------------------------------------------------------------
  1511. * Constants
  1512. * ------------------------------------------------------------------------
  1513. */
  1514. var NAME = 'modal';
  1515. var VERSION = '4.0.0';
  1516. var DATA_KEY = 'bs.modal';
  1517. var EVENT_KEY = "." + DATA_KEY;
  1518. var DATA_API_KEY = '.data-api';
  1519. var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
  1520. var TRANSITION_DURATION = 300;
  1521. var BACKDROP_TRANSITION_DURATION = 150;
  1522. var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
  1523. var Default = {
  1524. backdrop: true,
  1525. keyboard: true,
  1526. focus: true,
  1527. show: true
  1528. };
  1529. var DefaultType = {
  1530. backdrop: '(boolean|string)',
  1531. keyboard: 'boolean',
  1532. focus: 'boolean',
  1533. show: 'boolean'
  1534. };
  1535. var Event = {
  1536. HIDE: "hide" + EVENT_KEY,
  1537. HIDDEN: "hidden" + EVENT_KEY,
  1538. SHOW: "show" + EVENT_KEY,
  1539. SHOWN: "shown" + EVENT_KEY,
  1540. FOCUSIN: "focusin" + EVENT_KEY,
  1541. RESIZE: "resize" + EVENT_KEY,
  1542. CLICK_DISMISS: "click.dismiss" + EVENT_KEY,
  1543. KEYDOWN_DISMISS: "keydown.dismiss" + EVENT_KEY,
  1544. MOUSEUP_DISMISS: "mouseup.dismiss" + EVENT_KEY,
  1545. MOUSEDOWN_DISMISS: "mousedown.dismiss" + EVENT_KEY,
  1546. CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
  1547. };
  1548. var ClassName = {
  1549. SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
  1550. BACKDROP: 'modal-backdrop',
  1551. OPEN: 'modal-open',
  1552. FADE: 'fade',
  1553. SHOW: 'show'
  1554. };
  1555. var Selector = {
  1556. DIALOG: '.modal-dialog',
  1557. DATA_TOGGLE: '[data-toggle="modal"]',
  1558. DATA_DISMISS: '[data-dismiss="modal"]',
  1559. FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
  1560. STICKY_CONTENT: '.sticky-top',
  1561. NAVBAR_TOGGLER: '.navbar-toggler'
  1562. /**
  1563. * ------------------------------------------------------------------------
  1564. * Class Definition
  1565. * ------------------------------------------------------------------------
  1566. */
  1567. };
  1568. var Modal =
  1569. /*#__PURE__*/
  1570. function () {
  1571. function Modal(element, config) {
  1572. this._config = this._getConfig(config);
  1573. this._element = element;
  1574. this._dialog = $$$1(element).find(Selector.DIALOG)[0];
  1575. this._backdrop = null;
  1576. this._isShown = false;
  1577. this._isBodyOverflowing = false;
  1578. this._ignoreBackdropClick = false;
  1579. this._originalBodyPadding = 0;
  1580. this._scrollbarWidth = 0;
  1581. } // Getters
  1582. var _proto = Modal.prototype;
  1583. // Public
  1584. _proto.toggle = function toggle(relatedTarget) {
  1585. return this._isShown ? this.hide() : this.show(relatedTarget);
  1586. };
  1587. _proto.show = function show(relatedTarget) {
  1588. var _this = this;
  1589. if (this._isTransitioning || this._isShown) {
  1590. return;
  1591. }
  1592. if (Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE)) {
  1593. this._isTransitioning = true;
  1594. }
  1595. var showEvent = $$$1.Event(Event.SHOW, {
  1596. relatedTarget: relatedTarget
  1597. });
  1598. $$$1(this._element).trigger(showEvent);
  1599. if (this._isShown || showEvent.isDefaultPrevented()) {
  1600. return;
  1601. }
  1602. this._isShown = true;
  1603. this._checkScrollbar();
  1604. this._setScrollbar();
  1605. this._adjustDialog();
  1606. $$$1(document.body).addClass(ClassName.OPEN);
  1607. this._setEscapeEvent();
  1608. this._setResizeEvent();
  1609. $$$1(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function (event) {
  1610. return _this.hide(event);
  1611. });
  1612. $$$1(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () {
  1613. $$$1(_this._element).one(Event.MOUSEUP_DISMISS, function (event) {
  1614. if ($$$1(event.target).is(_this._element)) {
  1615. _this._ignoreBackdropClick = true;
  1616. }
  1617. });
  1618. });
  1619. this._showBackdrop(function () {
  1620. return _this._showElement(relatedTarget);
  1621. });
  1622. };
  1623. _proto.hide = function hide(event) {
  1624. var _this2 = this;
  1625. if (event) {
  1626. event.preventDefault();
  1627. }
  1628. if (this._isTransitioning || !this._isShown) {
  1629. return;
  1630. }
  1631. var hideEvent = $$$1.Event(Event.HIDE);
  1632. $$$1(this._element).trigger(hideEvent);
  1633. if (!this._isShown || hideEvent.isDefaultPrevented()) {
  1634. return;
  1635. }
  1636. this._isShown = false;
  1637. var transition = Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE);
  1638. if (transition) {
  1639. this._isTransitioning = true;
  1640. }
  1641. this._setEscapeEvent();
  1642. this._setResizeEvent();
  1643. $$$1(document).off(Event.FOCUSIN);
  1644. $$$1(this._element).removeClass(ClassName.SHOW);
  1645. $$$1(this._element).off(Event.CLICK_DISMISS);
  1646. $$$1(this._dialog).off(Event.MOUSEDOWN_DISMISS);
  1647. if (transition) {
  1648. $$$1(this._element).one(Util.TRANSITION_END, function (event) {
  1649. return _this2._hideModal(event);
  1650. }).emulateTransitionEnd(TRANSITION_DURATION);
  1651. } else {
  1652. this._hideModal();
  1653. }
  1654. };
  1655. _proto.dispose = function dispose() {
  1656. $$$1.removeData(this._element, DATA_KEY);
  1657. $$$1(window, document, this._element, this._backdrop).off(EVENT_KEY);
  1658. this._config = null;
  1659. this._element = null;
  1660. this._dialog = null;
  1661. this._backdrop = null;
  1662. this._isShown = null;
  1663. this._isBodyOverflowing = null;
  1664. this._ignoreBackdropClick = null;
  1665. this._scrollbarWidth = null;
  1666. };
  1667. _proto.handleUpdate = function handleUpdate() {
  1668. this._adjustDialog();
  1669. }; // Private
  1670. _proto._getConfig = function _getConfig(config) {
  1671. config = _extends({}, Default, config);
  1672. Util.typeCheckConfig(NAME, config, DefaultType);
  1673. return config;
  1674. };
  1675. _proto._showElement = function _showElement(relatedTarget) {
  1676. var _this3 = this;
  1677. var transition = Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE);
  1678. if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
  1679. // Don't move modal's DOM position
  1680. document.body.appendChild(this._element);
  1681. }
  1682. this._element.style.display = 'block';
  1683. this._element.removeAttribute('aria-hidden');
  1684. this._element.scrollTop = 0;
  1685. if (transition) {
  1686. Util.reflow(this._element);
  1687. }
  1688. $$$1(this._element).addClass(ClassName.SHOW);
  1689. if (this._config.focus) {
  1690. this._enforceFocus();
  1691. }
  1692. var shownEvent = $$$1.Event(Event.SHOWN, {
  1693. relatedTarget: relatedTarget
  1694. });
  1695. var transitionComplete = function transitionComplete() {
  1696. if (_this3._config.focus) {
  1697. _this3._element.focus();
  1698. }
  1699. _this3._isTransitioning = false;
  1700. $$$1(_this3._element).trigger(shownEvent);
  1701. };
  1702. if (transition) {
  1703. $$$1(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(TRANSITION_DURATION);
  1704. } else {
  1705. transitionComplete();
  1706. }
  1707. };
  1708. _proto._enforceFocus = function _enforceFocus() {
  1709. var _this4 = this;
  1710. $$$1(document).off(Event.FOCUSIN) // Guard against infinite focus loop
  1711. .on(Event.FOCUSIN, function (event) {
  1712. if (document !== event.target && _this4._element !== event.target && $$$1(_this4._element).has(event.target).length === 0) {
  1713. _this4._element.focus();
  1714. }
  1715. });
  1716. };
  1717. _proto._setEscapeEvent = function _setEscapeEvent() {
  1718. var _this5 = this;
  1719. if (this._isShown && this._config.keyboard) {
  1720. $$$1(this._element).on(Event.KEYDOWN_DISMISS, function (event) {
  1721. if (event.which === ESCAPE_KEYCODE) {
  1722. event.preventDefault();
  1723. _this5.hide();
  1724. }
  1725. });
  1726. } else if (!this._isShown) {
  1727. $$$1(this._element).off(Event.KEYDOWN_DISMISS);
  1728. }
  1729. };
  1730. _proto._setResizeEvent = function _setResizeEvent() {
  1731. var _this6 = this;
  1732. if (this._isShown) {
  1733. $$$1(window).on(Event.RESIZE, function (event) {
  1734. return _this6.handleUpdate(event);
  1735. });
  1736. } else {
  1737. $$$1(window).off(Event.RESIZE);
  1738. }
  1739. };
  1740. _proto._hideModal = function _hideModal() {
  1741. var _this7 = this;
  1742. this._element.style.display = 'none';
  1743. this._element.setAttribute('aria-hidden', true);
  1744. this._isTransitioning = false;
  1745. this._showBackdrop(function () {
  1746. $$$1(document.body).removeClass(ClassName.OPEN);
  1747. _this7._resetAdjustments();
  1748. _this7._resetScrollbar();
  1749. $$$1(_this7._element).trigger(Event.HIDDEN);
  1750. });
  1751. };
  1752. _proto._removeBackdrop = function _removeBackdrop() {
  1753. if (this._backdrop) {
  1754. $$$1(this._backdrop).remove();
  1755. this._backdrop = null;
  1756. }
  1757. };
  1758. _proto._showBackdrop = function _showBackdrop(callback) {
  1759. var _this8 = this;
  1760. var animate = $$$1(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';
  1761. if (this._isShown && this._config.backdrop) {
  1762. var doAnimate = Util.supportsTransitionEnd() && animate;
  1763. this._backdrop = document.createElement('div');
  1764. this._backdrop.className = ClassName.BACKDROP;
  1765. if (animate) {
  1766. $$$1(this._backdrop).addClass(animate);
  1767. }
  1768. $$$1(this._backdrop).appendTo(document.body);
  1769. $$$1(this._element).on(Event.CLICK_DISMISS, function (event) {
  1770. if (_this8._ignoreBackdropClick) {
  1771. _this8._ignoreBackdropClick = false;
  1772. return;
  1773. }
  1774. if (event.target !== event.currentTarget) {
  1775. return;
  1776. }
  1777. if (_this8._config.backdrop === 'static') {
  1778. _this8._element.focus();
  1779. } else {
  1780. _this8.hide();
  1781. }
  1782. });
  1783. if (doAnimate) {
  1784. Util.reflow(this._backdrop);
  1785. }
  1786. $$$1(this._backdrop).addClass(ClassName.SHOW);
  1787. if (!callback) {
  1788. return;
  1789. }
  1790. if (!doAnimate) {
  1791. callback();
  1792. return;
  1793. }
  1794. $$$1(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);
  1795. } else if (!this._isShown && this._backdrop) {
  1796. $$$1(this._backdrop).removeClass(ClassName.SHOW);
  1797. var callbackRemove = function callbackRemove() {
  1798. _this8._removeBackdrop();
  1799. if (callback) {
  1800. callback();
  1801. }
  1802. };
  1803. if (Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE)) {
  1804. $$$1(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);
  1805. } else {
  1806. callbackRemove();
  1807. }
  1808. } else if (callback) {
  1809. callback();
  1810. }
  1811. }; // ----------------------------------------------------------------------
  1812. // the following methods are used to handle overflowing modals
  1813. // todo (fat): these should probably be refactored out of modal.js
  1814. // ----------------------------------------------------------------------
  1815. _proto._adjustDialog = function _adjustDialog() {
  1816. var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
  1817. if (!this._isBodyOverflowing && isModalOverflowing) {
  1818. this._element.style.paddingLeft = this._scrollbarWidth + "px";
  1819. }
  1820. if (this._isBodyOverflowing && !isModalOverflowing) {
  1821. this._element.style.paddingRight = this._scrollbarWidth + "px";
  1822. }
  1823. };
  1824. _proto._resetAdjustments = function _resetAdjustments() {
  1825. this._element.style.paddingLeft = '';
  1826. this._element.style.paddingRight = '';
  1827. };
  1828. _proto._checkScrollbar = function _checkScrollbar() {
  1829. var rect = document.body.getBoundingClientRect();
  1830. this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;
  1831. this._scrollbarWidth = this._getScrollbarWidth();
  1832. };
  1833. _proto._setScrollbar = function _setScrollbar() {
  1834. var _this9 = this;
  1835. if (this._isBodyOverflowing) {
  1836. // Note: DOMNode.style.paddingRight returns the actual value or '' if not set
  1837. // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
  1838. // Adjust fixed content padding
  1839. $$$1(Selector.FIXED_CONTENT).each(function (index, element) {
  1840. var actualPadding = $$$1(element)[0].style.paddingRight;
  1841. var calculatedPadding = $$$1(element).css('padding-right');
  1842. $$$1(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this9._scrollbarWidth + "px");
  1843. }); // Adjust sticky content margin
  1844. $$$1(Selector.STICKY_CONTENT).each(function (index, element) {
  1845. var actualMargin = $$$1(element)[0].style.marginRight;
  1846. var calculatedMargin = $$$1(element).css('margin-right');
  1847. $$$1(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this9._scrollbarWidth + "px");
  1848. }); // Adjust navbar-toggler margin
  1849. $$$1(Selector.NAVBAR_TOGGLER).each(function (index, element) {
  1850. var actualMargin = $$$1(element)[0].style.marginRight;
  1851. var calculatedMargin = $$$1(element).css('margin-right');
  1852. $$$1(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) + _this9._scrollbarWidth + "px");
  1853. }); // Adjust body padding
  1854. var actualPadding = document.body.style.paddingRight;
  1855. var calculatedPadding = $$$1('body').css('padding-right');
  1856. $$$1('body').data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px");
  1857. }
  1858. };
  1859. _proto._resetScrollbar = function _resetScrollbar() {
  1860. // Restore fixed content padding
  1861. $$$1(Selector.FIXED_CONTENT).each(function (index, element) {
  1862. var padding = $$$1(element).data('padding-right');
  1863. if (typeof padding !== 'undefined') {
  1864. $$$1(element).css('padding-right', padding).removeData('padding-right');
  1865. }
  1866. }); // Restore sticky content and navbar-toggler margin
  1867. $$$1(Selector.STICKY_CONTENT + ", " + Selector.NAVBAR_TOGGLER).each(function (index, element) {
  1868. var margin = $$$1(element).data('margin-right');
  1869. if (typeof margin !== 'undefined') {
  1870. $$$1(element).css('margin-right', margin).removeData('margin-right');
  1871. }
  1872. }); // Restore body padding
  1873. var padding = $$$1('body').data('padding-right');
  1874. if (typeof padding !== 'undefined') {
  1875. $$$1('body').css('padding-right', padding).removeData('padding-right');
  1876. }
  1877. };
  1878. _proto._getScrollbarWidth = function _getScrollbarWidth() {
  1879. // thx d.walsh
  1880. var scrollDiv = document.createElement('div');
  1881. scrollDiv.className = ClassName.SCROLLBAR_MEASURER;
  1882. document.body.appendChild(scrollDiv);
  1883. var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
  1884. document.body.removeChild(scrollDiv);
  1885. return scrollbarWidth;
  1886. }; // Static
  1887. Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
  1888. return this.each(function () {
  1889. var data = $$$1(this).data(DATA_KEY);
  1890. var _config = _extends({}, Modal.Default, $$$1(this).data(), typeof config === 'object' && config);
  1891. if (!data) {
  1892. data = new Modal(this, _config);
  1893. $$$1(this).data(DATA_KEY, data);
  1894. }
  1895. if (typeof config === 'string') {
  1896. if (typeof data[config] === 'undefined') {
  1897. throw new TypeError("No method named \"" + config + "\"");
  1898. }
  1899. data[config](relatedTarget);
  1900. } else if (_config.show) {
  1901. data.show(relatedTarget);
  1902. }
  1903. });
  1904. };
  1905. _createClass(Modal, null, [{
  1906. key: "VERSION",
  1907. get: function get() {
  1908. return VERSION;
  1909. }
  1910. }, {
  1911. key: "Default",
  1912. get: function get() {
  1913. return Default;
  1914. }
  1915. }]);
  1916. return Modal;
  1917. }();
  1918. /**
  1919. * ------------------------------------------------------------------------
  1920. * Data Api implementation
  1921. * ------------------------------------------------------------------------
  1922. */
  1923. $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
  1924. var _this10 = this;
  1925. var target;
  1926. var selector = Util.getSelectorFromElement(this);
  1927. if (selector) {
  1928. target = $$$1(selector)[0];
  1929. }
  1930. var config = $$$1(target).data(DATA_KEY) ? 'toggle' : _extends({}, $$$1(target).data(), $$$1(this).data());
  1931. if (this.tagName === 'A' || this.tagName === 'AREA') {
  1932. event.preventDefault();
  1933. }
  1934. var $target = $$$1(target).one(Event.SHOW, function (showEvent) {
  1935. if (showEvent.isDefaultPrevented()) {
  1936. // Only register focus restorer if modal will actually get shown
  1937. return;
  1938. }
  1939. $target.one(Event.HIDDEN, function () {
  1940. if ($$$1(_this10).is(':visible')) {
  1941. _this10.focus();
  1942. }
  1943. });
  1944. });
  1945. Modal._jQueryInterface.call($$$1(target), config, this);
  1946. });
  1947. /**
  1948. * ------------------------------------------------------------------------
  1949. * jQuery
  1950. * ------------------------------------------------------------------------
  1951. */
  1952. $$$1.fn[NAME] = Modal._jQueryInterface;
  1953. $$$1.fn[NAME].Constructor = Modal;
  1954. $$$1.fn[NAME].noConflict = function () {
  1955. $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
  1956. return Modal._jQueryInterface;
  1957. };
  1958. return Modal;
  1959. }($);
  1960. /**
  1961. * --------------------------------------------------------------------------
  1962. * Bootstrap (v4.0.0): tooltip.js
  1963. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  1964. * --------------------------------------------------------------------------
  1965. */
  1966. var Tooltip = function ($$$1) {
  1967. /**
  1968. * ------------------------------------------------------------------------
  1969. * Constants
  1970. * ------------------------------------------------------------------------
  1971. */
  1972. var NAME = 'tooltip';
  1973. var VERSION = '4.0.0';
  1974. var DATA_KEY = 'bs.tooltip';
  1975. var EVENT_KEY = "." + DATA_KEY;
  1976. var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
  1977. var TRANSITION_DURATION = 150;
  1978. var CLASS_PREFIX = 'bs-tooltip';
  1979. var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
  1980. var DefaultType = {
  1981. animation: 'boolean',
  1982. template: 'string',
  1983. title: '(string|element|function)',
  1984. trigger: 'string',
  1985. delay: '(number|object)',
  1986. html: 'boolean',
  1987. selector: '(string|boolean)',
  1988. placement: '(string|function)',
  1989. offset: '(number|string)',
  1990. container: '(string|element|boolean)',
  1991. fallbackPlacement: '(string|array)',
  1992. boundary: '(string|element)'
  1993. };
  1994. var AttachmentMap = {
  1995. AUTO: 'auto',
  1996. TOP: 'top',
  1997. RIGHT: 'right',
  1998. BOTTOM: 'bottom',
  1999. LEFT: 'left'
  2000. };
  2001. var Default = {
  2002. animation: true,
  2003. template: '<div class="tooltip" role="tooltip">' + '<div class="arrow"></div>' + '<div class="tooltip-inner"></div></div>',
  2004. trigger: 'hover focus',
  2005. title: '',
  2006. delay: 0,
  2007. html: false,
  2008. selector: false,
  2009. placement: 'top',
  2010. offset: 0,
  2011. container: false,
  2012. fallbackPlacement: 'flip',
  2013. boundary: 'scrollParent'
  2014. };
  2015. var HoverState = {
  2016. SHOW: 'show',
  2017. OUT: 'out'
  2018. };
  2019. var Event = {
  2020. HIDE: "hide" + EVENT_KEY,
  2021. HIDDEN: "hidden" + EVENT_KEY,
  2022. SHOW: "show" + EVENT_KEY,
  2023. SHOWN: "shown" + EVENT_KEY,
  2024. INSERTED: "inserted" + EVENT_KEY,
  2025. CLICK: "click" + EVENT_KEY,
  2026. FOCUSIN: "focusin" + EVENT_KEY,
  2027. FOCUSOUT: "focusout" + EVENT_KEY,
  2028. MOUSEENTER: "mouseenter" + EVENT_KEY,
  2029. MOUSELEAVE: "mouseleave" + EVENT_KEY
  2030. };
  2031. var ClassName = {
  2032. FADE: 'fade',
  2033. SHOW: 'show'
  2034. };
  2035. var Selector = {
  2036. TOOLTIP: '.tooltip',
  2037. TOOLTIP_INNER: '.tooltip-inner',
  2038. ARROW: '.arrow'
  2039. };
  2040. var Trigger = {
  2041. HOVER: 'hover',
  2042. FOCUS: 'focus',
  2043. CLICK: 'click',
  2044. MANUAL: 'manual'
  2045. /**
  2046. * ------------------------------------------------------------------------
  2047. * Class Definition
  2048. * ------------------------------------------------------------------------
  2049. */
  2050. };
  2051. var Tooltip =
  2052. /*#__PURE__*/
  2053. function () {
  2054. function Tooltip(element, config) {
  2055. /**
  2056. * Check for Popper dependency
  2057. * Popper - https://popper.js.org
  2058. */
  2059. if (typeof Popper === 'undefined') {
  2060. throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)');
  2061. } // private
  2062. this._isEnabled = true;
  2063. this._timeout = 0;
  2064. this._hoverState = '';
  2065. this._activeTrigger = {};
  2066. this._popper = null; // Protected
  2067. this.element = element;
  2068. this.config = this._getConfig(config);
  2069. this.tip = null;
  2070. this._setListeners();
  2071. } // Getters
  2072. var _proto = Tooltip.prototype;
  2073. // Public
  2074. _proto.enable = function enable() {
  2075. this._isEnabled = true;
  2076. };
  2077. _proto.disable = function disable() {
  2078. this._isEnabled = false;
  2079. };
  2080. _proto.toggleEnabled = function toggleEnabled() {
  2081. this._isEnabled = !this._isEnabled;
  2082. };
  2083. _proto.toggle = function toggle(event) {
  2084. if (!this._isEnabled) {
  2085. return;
  2086. }
  2087. if (event) {
  2088. var dataKey = this.constructor.DATA_KEY;
  2089. var context = $$$1(event.currentTarget).data(dataKey);
  2090. if (!context) {
  2091. context = new this.constructor(event.currentTarget, this._getDelegateConfig());
  2092. $$$1(event.currentTarget).data(dataKey, context);
  2093. }
  2094. context._activeTrigger.click = !context._activeTrigger.click;
  2095. if (context._isWithActiveTrigger()) {
  2096. context._enter(null, context);
  2097. } else {
  2098. context._leave(null, context);
  2099. }
  2100. } else {
  2101. if ($$$1(this.getTipElement()).hasClass(ClassName.SHOW)) {
  2102. this._leave(null, this);
  2103. return;
  2104. }
  2105. this._enter(null, this);
  2106. }
  2107. };
  2108. _proto.dispose = function dispose() {
  2109. clearTimeout(this._timeout);
  2110. $$$1.removeData(this.element, this.constructor.DATA_KEY);
  2111. $$$1(this.element).off(this.constructor.EVENT_KEY);
  2112. $$$1(this.element).closest('.modal').off('hide.bs.modal');
  2113. if (this.tip) {
  2114. $$$1(this.tip).remove();
  2115. }
  2116. this._isEnabled = null;
  2117. this._timeout = null;
  2118. this._hoverState = null;
  2119. this._activeTrigger = null;
  2120. if (this._popper !== null) {
  2121. this._popper.destroy();
  2122. }
  2123. this._popper = null;
  2124. this.element = null;
  2125. this.config = null;
  2126. this.tip = null;
  2127. };
  2128. _proto.show = function show() {
  2129. var _this = this;
  2130. if ($$$1(this.element).css('display') === 'none') {
  2131. throw new Error('Please use show on visible elements');
  2132. }
  2133. var showEvent = $$$1.Event(this.constructor.Event.SHOW);
  2134. if (this.isWithContent() && this._isEnabled) {
  2135. $$$1(this.element).trigger(showEvent);
  2136. var isInTheDom = $$$1.contains(this.element.ownerDocument.documentElement, this.element);
  2137. if (showEvent.isDefaultPrevented() || !isInTheDom) {
  2138. return;
  2139. }
  2140. var tip = this.getTipElement();
  2141. var tipId = Util.getUID(this.constructor.NAME);
  2142. tip.setAttribute('id', tipId);
  2143. this.element.setAttribute('aria-describedby', tipId);
  2144. this.setContent();
  2145. if (this.config.animation) {
  2146. $$$1(tip).addClass(ClassName.FADE);
  2147. }
  2148. var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
  2149. var attachment = this._getAttachment(placement);
  2150. this.addAttachmentClass(attachment);
  2151. var container = this.config.container === false ? document.body : $$$1(this.config.container);
  2152. $$$1(tip).data(this.constructor.DATA_KEY, this);
  2153. if (!$$$1.contains(this.element.ownerDocument.documentElement, this.tip)) {
  2154. $$$1(tip).appendTo(container);
  2155. }
  2156. $$$1(this.element).trigger(this.constructor.Event.INSERTED);
  2157. this._popper = new Popper(this.element, tip, {
  2158. placement: attachment,
  2159. modifiers: {
  2160. offset: {
  2161. offset: this.config.offset
  2162. },
  2163. flip: {
  2164. behavior: this.config.fallbackPlacement
  2165. },
  2166. arrow: {
  2167. element: Selector.ARROW
  2168. },
  2169. preventOverflow: {
  2170. boundariesElement: this.config.boundary
  2171. }
  2172. },
  2173. onCreate: function onCreate(data) {
  2174. if (data.originalPlacement !== data.placement) {
  2175. _this._handlePopperPlacementChange(data);
  2176. }
  2177. },
  2178. onUpdate: function onUpdate(data) {
  2179. _this._handlePopperPlacementChange(data);
  2180. }
  2181. });
  2182. $$$1(tip).addClass(ClassName.SHOW); // If this is a touch-enabled device we add extra
  2183. // empty mouseover listeners to the body's immediate children;
  2184. // only needed because of broken event delegation on iOS
  2185. // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
  2186. if ('ontouchstart' in document.documentElement) {
  2187. $$$1('body').children().on('mouseover', null, $$$1.noop);
  2188. }
  2189. var complete = function complete() {
  2190. if (_this.config.animation) {
  2191. _this._fixTransition();
  2192. }
  2193. var prevHoverState = _this._hoverState;
  2194. _this._hoverState = null;
  2195. $$$1(_this.element).trigger(_this.constructor.Event.SHOWN);
  2196. if (prevHoverState === HoverState.OUT) {
  2197. _this._leave(null, _this);
  2198. }
  2199. };
  2200. if (Util.supportsTransitionEnd() && $$$1(this.tip).hasClass(ClassName.FADE)) {
  2201. $$$1(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(Tooltip._TRANSITION_DURATION);
  2202. } else {
  2203. complete();
  2204. }
  2205. }
  2206. };
  2207. _proto.hide = function hide(callback) {
  2208. var _this2 = this;
  2209. var tip = this.getTipElement();
  2210. var hideEvent = $$$1.Event(this.constructor.Event.HIDE);
  2211. var complete = function complete() {
  2212. if (_this2._hoverState !== HoverState.SHOW && tip.parentNode) {
  2213. tip.parentNode.removeChild(tip);
  2214. }
  2215. _this2._cleanTipClass();
  2216. _this2.element.removeAttribute('aria-describedby');
  2217. $$$1(_this2.element).trigger(_this2.constructor.Event.HIDDEN);
  2218. if (_this2._popper !== null) {
  2219. _this2._popper.destroy();
  2220. }
  2221. if (callback) {
  2222. callback();
  2223. }
  2224. };
  2225. $$$1(this.element).trigger(hideEvent);
  2226. if (hideEvent.isDefaultPrevented()) {
  2227. return;
  2228. }
  2229. $$$1(tip).removeClass(ClassName.SHOW); // If this is a touch-enabled device we remove the extra
  2230. // empty mouseover listeners we added for iOS support
  2231. if ('ontouchstart' in document.documentElement) {
  2232. $$$1('body').children().off('mouseover', null, $$$1.noop);
  2233. }
  2234. this._activeTrigger[Trigger.CLICK] = false;
  2235. this._activeTrigger[Trigger.FOCUS] = false;
  2236. this._activeTrigger[Trigger.HOVER] = false;
  2237. if (Util.supportsTransitionEnd() && $$$1(this.tip).hasClass(ClassName.FADE)) {
  2238. $$$1(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
  2239. } else {
  2240. complete();
  2241. }
  2242. this._hoverState = '';
  2243. };
  2244. _proto.update = function update() {
  2245. if (this._popper !== null) {
  2246. this._popper.scheduleUpdate();
  2247. }
  2248. }; // Protected
  2249. _proto.isWithContent = function isWithContent() {
  2250. return Boolean(this.getTitle());
  2251. };
  2252. _proto.addAttachmentClass = function addAttachmentClass(attachment) {
  2253. $$$1(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
  2254. };
  2255. _proto.getTipElement = function getTipElement() {
  2256. this.tip = this.tip || $$$1(this.config.template)[0];
  2257. return this.tip;
  2258. };
  2259. _proto.setContent = function setContent() {
  2260. var $tip = $$$1(this.getTipElement());
  2261. this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle());
  2262. $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
  2263. };
  2264. _proto.setElementContent = function setElementContent($element, content) {
  2265. var html = this.config.html;
  2266. if (typeof content === 'object' && (content.nodeType || content.jquery)) {
  2267. // Content is a DOM node or a jQuery
  2268. if (html) {
  2269. if (!$$$1(content).parent().is($element)) {
  2270. $element.empty().append(content);
  2271. }
  2272. } else {
  2273. $element.text($$$1(content).text());
  2274. }
  2275. } else {
  2276. $element[html ? 'html' : 'text'](content);
  2277. }
  2278. };
  2279. _proto.getTitle = function getTitle() {
  2280. var title = this.element.getAttribute('data-original-title');
  2281. if (!title) {
  2282. title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;
  2283. }
  2284. return title;
  2285. }; // Private
  2286. _proto._getAttachment = function _getAttachment(placement) {
  2287. return AttachmentMap[placement.toUpperCase()];
  2288. };
  2289. _proto._setListeners = function _setListeners() {
  2290. var _this3 = this;
  2291. var triggers = this.config.trigger.split(' ');
  2292. triggers.forEach(function (trigger) {
  2293. if (trigger === 'click') {
  2294. $$$1(_this3.element).on(_this3.constructor.Event.CLICK, _this3.config.selector, function (event) {
  2295. return _this3.toggle(event);
  2296. });
  2297. } else if (trigger !== Trigger.MANUAL) {
  2298. var eventIn = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSEENTER : _this3.constructor.Event.FOCUSIN;
  2299. var eventOut = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSELEAVE : _this3.constructor.Event.FOCUSOUT;
  2300. $$$1(_this3.element).on(eventIn, _this3.config.selector, function (event) {
  2301. return _this3._enter(event);
  2302. }).on(eventOut, _this3.config.selector, function (event) {
  2303. return _this3._leave(event);
  2304. });
  2305. }
  2306. $$$1(_this3.element).closest('.modal').on('hide.bs.modal', function () {
  2307. return _this3.hide();
  2308. });
  2309. });
  2310. if (this.config.selector) {
  2311. this.config = _extends({}, this.config, {
  2312. trigger: 'manual',
  2313. selector: ''
  2314. });
  2315. } else {
  2316. this._fixTitle();
  2317. }
  2318. };
  2319. _proto._fixTitle = function _fixTitle() {
  2320. var titleType = typeof this.element.getAttribute('data-original-title');
  2321. if (this.element.getAttribute('title') || titleType !== 'string') {
  2322. this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');
  2323. this.element.setAttribute('title', '');
  2324. }
  2325. };
  2326. _proto._enter = function _enter(event, context) {
  2327. var dataKey = this.constructor.DATA_KEY;
  2328. context = context || $$$1(event.currentTarget).data(dataKey);
  2329. if (!context) {
  2330. context = new this.constructor(event.currentTarget, this._getDelegateConfig());
  2331. $$$1(event.currentTarget).data(dataKey, context);
  2332. }
  2333. if (event) {
  2334. context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true;
  2335. }
  2336. if ($$$1(context.getTipElement()).hasClass(ClassName.SHOW) || context._hoverState === HoverState.SHOW) {
  2337. context._hoverState = HoverState.SHOW;
  2338. return;
  2339. }
  2340. clearTimeout(context._timeout);
  2341. context._hoverState = HoverState.SHOW;
  2342. if (!context.config.delay || !context.config.delay.show) {
  2343. context.show();
  2344. return;
  2345. }
  2346. context._timeout = setTimeout(function () {
  2347. if (context._hoverState === HoverState.SHOW) {
  2348. context.show();
  2349. }
  2350. }, context.config.delay.show);
  2351. };
  2352. _proto._leave = function _leave(event, context) {
  2353. var dataKey = this.constructor.DATA_KEY;
  2354. context = context || $$$1(event.currentTarget).data(dataKey);
  2355. if (!context) {
  2356. context = new this.constructor(event.currentTarget, this._getDelegateConfig());
  2357. $$$1(event.currentTarget).data(dataKey, context);
  2358. }
  2359. if (event) {
  2360. context._activeTrigger[event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false;
  2361. }
  2362. if (context._isWithActiveTrigger()) {
  2363. return;
  2364. }
  2365. clearTimeout(context._timeout);
  2366. context._hoverState = HoverState.OUT;
  2367. if (!context.config.delay || !context.config.delay.hide) {
  2368. context.hide();
  2369. return;
  2370. }
  2371. context._timeout = setTimeout(function () {
  2372. if (context._hoverState === HoverState.OUT) {
  2373. context.hide();
  2374. }
  2375. }, context.config.delay.hide);
  2376. };
  2377. _proto._isWithActiveTrigger = function _isWithActiveTrigger() {
  2378. for (var trigger in this._activeTrigger) {
  2379. if (this._activeTrigger[trigger]) {
  2380. return true;
  2381. }
  2382. }
  2383. return false;
  2384. };
  2385. _proto._getConfig = function _getConfig(config) {
  2386. config = _extends({}, this.constructor.Default, $$$1(this.element).data(), config);
  2387. if (typeof config.delay === 'number') {
  2388. config.delay = {
  2389. show: config.delay,
  2390. hide: config.delay
  2391. };
  2392. }
  2393. if (typeof config.title === 'number') {
  2394. config.title = config.title.toString();
  2395. }
  2396. if (typeof config.content === 'number') {
  2397. config.content = config.content.toString();
  2398. }
  2399. Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
  2400. return config;
  2401. };
  2402. _proto._getDelegateConfig = function _getDelegateConfig() {
  2403. var config = {};
  2404. if (this.config) {
  2405. for (var key in this.config) {
  2406. if (this.constructor.Default[key] !== this.config[key]) {
  2407. config[key] = this.config[key];
  2408. }
  2409. }
  2410. }
  2411. return config;
  2412. };
  2413. _proto._cleanTipClass = function _cleanTipClass() {
  2414. var $tip = $$$1(this.getTipElement());
  2415. var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
  2416. if (tabClass !== null && tabClass.length > 0) {
  2417. $tip.removeClass(tabClass.join(''));
  2418. }
  2419. };
  2420. _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(data) {
  2421. this._cleanTipClass();
  2422. this.addAttachmentClass(this._getAttachment(data.placement));
  2423. };
  2424. _proto._fixTransition = function _fixTransition() {
  2425. var tip = this.getTipElement();
  2426. var initConfigAnimation = this.config.animation;
  2427. if (tip.getAttribute('x-placement') !== null) {
  2428. return;
  2429. }
  2430. $$$1(tip).removeClass(ClassName.FADE);
  2431. this.config.animation = false;
  2432. this.hide();
  2433. this.show();
  2434. this.config.animation = initConfigAnimation;
  2435. }; // Static
  2436. Tooltip._jQueryInterface = function _jQueryInterface(config) {
  2437. return this.each(function () {
  2438. var data = $$$1(this).data(DATA_KEY);
  2439. var _config = typeof config === 'object' && config;
  2440. if (!data && /dispose|hide/.test(config)) {
  2441. return;
  2442. }
  2443. if (!data) {
  2444. data = new Tooltip(this, _config);
  2445. $$$1(this).data(DATA_KEY, data);
  2446. }
  2447. if (typeof config === 'string') {
  2448. if (typeof data[config] === 'undefined') {
  2449. throw new TypeError("No method named \"" + config + "\"");
  2450. }
  2451. data[config]();
  2452. }
  2453. });
  2454. };
  2455. _createClass(Tooltip, null, [{
  2456. key: "VERSION",
  2457. get: function get() {
  2458. return VERSION;
  2459. }
  2460. }, {
  2461. key: "Default",
  2462. get: function get() {
  2463. return Default;
  2464. }
  2465. }, {
  2466. key: "NAME",
  2467. get: function get() {
  2468. return NAME;
  2469. }
  2470. }, {
  2471. key: "DATA_KEY",
  2472. get: function get() {
  2473. return DATA_KEY;
  2474. }
  2475. }, {
  2476. key: "Event",
  2477. get: function get() {
  2478. return Event;
  2479. }
  2480. }, {
  2481. key: "EVENT_KEY",
  2482. get: function get() {
  2483. return EVENT_KEY;
  2484. }
  2485. }, {
  2486. key: "DefaultType",
  2487. get: function get() {
  2488. return DefaultType;
  2489. }
  2490. }]);
  2491. return Tooltip;
  2492. }();
  2493. /**
  2494. * ------------------------------------------------------------------------
  2495. * jQuery
  2496. * ------------------------------------------------------------------------
  2497. */
  2498. $$$1.fn[NAME] = Tooltip._jQueryInterface;
  2499. $$$1.fn[NAME].Constructor = Tooltip;
  2500. $$$1.fn[NAME].noConflict = function () {
  2501. $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
  2502. return Tooltip._jQueryInterface;
  2503. };
  2504. return Tooltip;
  2505. }($, Popper);
  2506. /**
  2507. * --------------------------------------------------------------------------
  2508. * Bootstrap (v4.0.0): popover.js
  2509. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  2510. * --------------------------------------------------------------------------
  2511. */
  2512. var Popover = function ($$$1) {
  2513. /**
  2514. * ------------------------------------------------------------------------
  2515. * Constants
  2516. * ------------------------------------------------------------------------
  2517. */
  2518. var NAME = 'popover';
  2519. var VERSION = '4.0.0';
  2520. var DATA_KEY = 'bs.popover';
  2521. var EVENT_KEY = "." + DATA_KEY;
  2522. var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
  2523. var CLASS_PREFIX = 'bs-popover';
  2524. var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
  2525. var Default = _extends({}, Tooltip.Default, {
  2526. placement: 'right',
  2527. trigger: 'click',
  2528. content: '',
  2529. template: '<div class="popover" role="tooltip">' + '<div class="arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>'
  2530. });
  2531. var DefaultType = _extends({}, Tooltip.DefaultType, {
  2532. content: '(string|element|function)'
  2533. });
  2534. var ClassName = {
  2535. FADE: 'fade',
  2536. SHOW: 'show'
  2537. };
  2538. var Selector = {
  2539. TITLE: '.popover-header',
  2540. CONTENT: '.popover-body'
  2541. };
  2542. var Event = {
  2543. HIDE: "hide" + EVENT_KEY,
  2544. HIDDEN: "hidden" + EVENT_KEY,
  2545. SHOW: "show" + EVENT_KEY,
  2546. SHOWN: "shown" + EVENT_KEY,
  2547. INSERTED: "inserted" + EVENT_KEY,
  2548. CLICK: "click" + EVENT_KEY,
  2549. FOCUSIN: "focusin" + EVENT_KEY,
  2550. FOCUSOUT: "focusout" + EVENT_KEY,
  2551. MOUSEENTER: "mouseenter" + EVENT_KEY,
  2552. MOUSELEAVE: "mouseleave" + EVENT_KEY
  2553. /**
  2554. * ------------------------------------------------------------------------
  2555. * Class Definition
  2556. * ------------------------------------------------------------------------
  2557. */
  2558. };
  2559. var Popover =
  2560. /*#__PURE__*/
  2561. function (_Tooltip) {
  2562. _inheritsLoose(Popover, _Tooltip);
  2563. function Popover() {
  2564. return _Tooltip.apply(this, arguments) || this;
  2565. }
  2566. var _proto = Popover.prototype;
  2567. // Overrides
  2568. _proto.isWithContent = function isWithContent() {
  2569. return this.getTitle() || this._getContent();
  2570. };
  2571. _proto.addAttachmentClass = function addAttachmentClass(attachment) {
  2572. $$$1(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
  2573. };
  2574. _proto.getTipElement = function getTipElement() {
  2575. this.tip = this.tip || $$$1(this.config.template)[0];
  2576. return this.tip;
  2577. };
  2578. _proto.setContent = function setContent() {
  2579. var $tip = $$$1(this.getTipElement()); // We use append for html objects to maintain js events
  2580. this.setElementContent($tip.find(Selector.TITLE), this.getTitle());
  2581. var content = this._getContent();
  2582. if (typeof content === 'function') {
  2583. content = content.call(this.element);
  2584. }
  2585. this.setElementContent($tip.find(Selector.CONTENT), content);
  2586. $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
  2587. }; // Private
  2588. _proto._getContent = function _getContent() {
  2589. return this.element.getAttribute('data-content') || this.config.content;
  2590. };
  2591. _proto._cleanTipClass = function _cleanTipClass() {
  2592. var $tip = $$$1(this.getTipElement());
  2593. var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
  2594. if (tabClass !== null && tabClass.length > 0) {
  2595. $tip.removeClass(tabClass.join(''));
  2596. }
  2597. }; // Static
  2598. Popover._jQueryInterface = function _jQueryInterface(config) {
  2599. return this.each(function () {
  2600. var data = $$$1(this).data(DATA_KEY);
  2601. var _config = typeof config === 'object' ? config : null;
  2602. if (!data && /destroy|hide/.test(config)) {
  2603. return;
  2604. }
  2605. if (!data) {
  2606. data = new Popover(this, _config);
  2607. $$$1(this).data(DATA_KEY, data);
  2608. }
  2609. if (typeof config === 'string') {
  2610. if (typeof data[config] === 'undefined') {
  2611. throw new TypeError("No method named \"" + config + "\"");
  2612. }
  2613. data[config]();
  2614. }
  2615. });
  2616. };
  2617. _createClass(Popover, null, [{
  2618. key: "VERSION",
  2619. // Getters
  2620. get: function get() {
  2621. return VERSION;
  2622. }
  2623. }, {
  2624. key: "Default",
  2625. get: function get() {
  2626. return Default;
  2627. }
  2628. }, {
  2629. key: "NAME",
  2630. get: function get() {
  2631. return NAME;
  2632. }
  2633. }, {
  2634. key: "DATA_KEY",
  2635. get: function get() {
  2636. return DATA_KEY;
  2637. }
  2638. }, {
  2639. key: "Event",
  2640. get: function get() {
  2641. return Event;
  2642. }
  2643. }, {
  2644. key: "EVENT_KEY",
  2645. get: function get() {
  2646. return EVENT_KEY;
  2647. }
  2648. }, {
  2649. key: "DefaultType",
  2650. get: function get() {
  2651. return DefaultType;
  2652. }
  2653. }]);
  2654. return Popover;
  2655. }(Tooltip);
  2656. /**
  2657. * ------------------------------------------------------------------------
  2658. * jQuery
  2659. * ------------------------------------------------------------------------
  2660. */
  2661. $$$1.fn[NAME] = Popover._jQueryInterface;
  2662. $$$1.fn[NAME].Constructor = Popover;
  2663. $$$1.fn[NAME].noConflict = function () {
  2664. $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
  2665. return Popover._jQueryInterface;
  2666. };
  2667. return Popover;
  2668. }($);
  2669. /**
  2670. * --------------------------------------------------------------------------
  2671. * Bootstrap (v4.0.0): scrollspy.js
  2672. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  2673. * --------------------------------------------------------------------------
  2674. */
  2675. var ScrollSpy = function ($$$1) {
  2676. /**
  2677. * ------------------------------------------------------------------------
  2678. * Constants
  2679. * ------------------------------------------------------------------------
  2680. */
  2681. var NAME = 'scrollspy';
  2682. var VERSION = '4.0.0';
  2683. var DATA_KEY = 'bs.scrollspy';
  2684. var EVENT_KEY = "." + DATA_KEY;
  2685. var DATA_API_KEY = '.data-api';
  2686. var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
  2687. var Default = {
  2688. offset: 10,
  2689. method: 'auto',
  2690. target: ''
  2691. };
  2692. var DefaultType = {
  2693. offset: 'number',
  2694. method: 'string',
  2695. target: '(string|element)'
  2696. };
  2697. var Event = {
  2698. ACTIVATE: "activate" + EVENT_KEY,
  2699. SCROLL: "scroll" + EVENT_KEY,
  2700. LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY
  2701. };
  2702. var ClassName = {
  2703. DROPDOWN_ITEM: 'dropdown-item',
  2704. DROPDOWN_MENU: 'dropdown-menu',
  2705. ACTIVE: 'active'
  2706. };
  2707. var Selector = {
  2708. DATA_SPY: '[data-spy="scroll"]',
  2709. ACTIVE: '.active',
  2710. NAV_LIST_GROUP: '.nav, .list-group',
  2711. NAV_LINKS: '.nav-link',
  2712. NAV_ITEMS: '.nav-item',
  2713. LIST_ITEMS: '.list-group-item',
  2714. DROPDOWN: '.dropdown',
  2715. DROPDOWN_ITEMS: '.dropdown-item',
  2716. DROPDOWN_TOGGLE: '.dropdown-toggle'
  2717. };
  2718. var OffsetMethod = {
  2719. OFFSET: 'offset',
  2720. POSITION: 'position'
  2721. /**
  2722. * ------------------------------------------------------------------------
  2723. * Class Definition
  2724. * ------------------------------------------------------------------------
  2725. */
  2726. };
  2727. var ScrollSpy =
  2728. /*#__PURE__*/
  2729. function () {
  2730. function ScrollSpy(element, config) {
  2731. var _this = this;
  2732. this._element = element;
  2733. this._scrollElement = element.tagName === 'BODY' ? window : element;
  2734. this._config = this._getConfig(config);
  2735. this._selector = this._config.target + " " + Selector.NAV_LINKS + "," + (this._config.target + " " + Selector.LIST_ITEMS + ",") + (this._config.target + " " + Selector.DROPDOWN_ITEMS);
  2736. this._offsets = [];
  2737. this._targets = [];
  2738. this._activeTarget = null;
  2739. this._scrollHeight = 0;
  2740. $$$1(this._scrollElement).on(Event.SCROLL, function (event) {
  2741. return _this._process(event);
  2742. });
  2743. this.refresh();
  2744. this._process();
  2745. } // Getters
  2746. var _proto = ScrollSpy.prototype;
  2747. // Public
  2748. _proto.refresh = function refresh() {
  2749. var _this2 = this;
  2750. var autoMethod = this._scrollElement === this._scrollElement.window ? OffsetMethod.OFFSET : OffsetMethod.POSITION;
  2751. var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
  2752. var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;
  2753. this._offsets = [];
  2754. this._targets = [];
  2755. this._scrollHeight = this._getScrollHeight();
  2756. var targets = $$$1.makeArray($$$1(this._selector));
  2757. targets.map(function (element) {
  2758. var target;
  2759. var targetSelector = Util.getSelectorFromElement(element);
  2760. if (targetSelector) {
  2761. target = $$$1(targetSelector)[0];
  2762. }
  2763. if (target) {
  2764. var targetBCR = target.getBoundingClientRect();
  2765. if (targetBCR.width || targetBCR.height) {
  2766. // TODO (fat): remove sketch reliance on jQuery position/offset
  2767. return [$$$1(target)[offsetMethod]().top + offsetBase, targetSelector];
  2768. }
  2769. }
  2770. return null;
  2771. }).filter(function (item) {
  2772. return item;
  2773. }).sort(function (a, b) {
  2774. return a[0] - b[0];
  2775. }).forEach(function (item) {
  2776. _this2._offsets.push(item[0]);
  2777. _this2._targets.push(item[1]);
  2778. });
  2779. };
  2780. _proto.dispose = function dispose() {
  2781. $$$1.removeData(this._element, DATA_KEY);
  2782. $$$1(this._scrollElement).off(EVENT_KEY);
  2783. this._element = null;
  2784. this._scrollElement = null;
  2785. this._config = null;
  2786. this._selector = null;
  2787. this._offsets = null;
  2788. this._targets = null;
  2789. this._activeTarget = null;
  2790. this._scrollHeight = null;
  2791. }; // Private
  2792. _proto._getConfig = function _getConfig(config) {
  2793. config = _extends({}, Default, config);
  2794. if (typeof config.target !== 'string') {
  2795. var id = $$$1(config.target).attr('id');
  2796. if (!id) {
  2797. id = Util.getUID(NAME);
  2798. $$$1(config.target).attr('id', id);
  2799. }
  2800. config.target = "#" + id;
  2801. }
  2802. Util.typeCheckConfig(NAME, config, DefaultType);
  2803. return config;
  2804. };
  2805. _proto._getScrollTop = function _getScrollTop() {
  2806. return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;
  2807. };
  2808. _proto._getScrollHeight = function _getScrollHeight() {
  2809. return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
  2810. };
  2811. _proto._getOffsetHeight = function _getOffsetHeight() {
  2812. return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;
  2813. };
  2814. _proto._process = function _process() {
  2815. var scrollTop = this._getScrollTop() + this._config.offset;
  2816. var scrollHeight = this._getScrollHeight();
  2817. var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();
  2818. if (this._scrollHeight !== scrollHeight) {
  2819. this.refresh();
  2820. }
  2821. if (scrollTop >= maxScroll) {
  2822. var target = this._targets[this._targets.length - 1];
  2823. if (this._activeTarget !== target) {
  2824. this._activate(target);
  2825. }
  2826. return;
  2827. }
  2828. if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {
  2829. this._activeTarget = null;
  2830. this._clear();
  2831. return;
  2832. }
  2833. for (var i = this._offsets.length; i--;) {
  2834. var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);
  2835. if (isActiveTarget) {
  2836. this._activate(this._targets[i]);
  2837. }
  2838. }
  2839. };
  2840. _proto._activate = function _activate(target) {
  2841. this._activeTarget = target;
  2842. this._clear();
  2843. var queries = this._selector.split(','); // eslint-disable-next-line arrow-body-style
  2844. queries = queries.map(function (selector) {
  2845. return selector + "[data-target=\"" + target + "\"]," + (selector + "[href=\"" + target + "\"]");
  2846. });
  2847. var $link = $$$1(queries.join(','));
  2848. if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {
  2849. $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
  2850. $link.addClass(ClassName.ACTIVE);
  2851. } else {
  2852. // Set triggered link as active
  2853. $link.addClass(ClassName.ACTIVE); // Set triggered links parents as active
  2854. // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
  2855. $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_LINKS + ", " + Selector.LIST_ITEMS).addClass(ClassName.ACTIVE); // Handle special case when .nav-link is inside .nav-item
  2856. $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE);
  2857. }
  2858. $$$1(this._scrollElement).trigger(Event.ACTIVATE, {
  2859. relatedTarget: target
  2860. });
  2861. };
  2862. _proto._clear = function _clear() {
  2863. $$$1(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
  2864. }; // Static
  2865. ScrollSpy._jQueryInterface = function _jQueryInterface(config) {
  2866. return this.each(function () {
  2867. var data = $$$1(this).data(DATA_KEY);
  2868. var _config = typeof config === 'object' && config;
  2869. if (!data) {
  2870. data = new ScrollSpy(this, _config);
  2871. $$$1(this).data(DATA_KEY, data);
  2872. }
  2873. if (typeof config === 'string') {
  2874. if (typeof data[config] === 'undefined') {
  2875. throw new TypeError("No method named \"" + config + "\"");
  2876. }
  2877. data[config]();
  2878. }
  2879. });
  2880. };
  2881. _createClass(ScrollSpy, null, [{
  2882. key: "VERSION",
  2883. get: function get() {
  2884. return VERSION;
  2885. }
  2886. }, {
  2887. key: "Default",
  2888. get: function get() {
  2889. return Default;
  2890. }
  2891. }]);
  2892. return ScrollSpy;
  2893. }();
  2894. /**
  2895. * ------------------------------------------------------------------------
  2896. * Data Api implementation
  2897. * ------------------------------------------------------------------------
  2898. */
  2899. $$$1(window).on(Event.LOAD_DATA_API, function () {
  2900. var scrollSpys = $$$1.makeArray($$$1(Selector.DATA_SPY));
  2901. for (var i = scrollSpys.length; i--;) {
  2902. var $spy = $$$1(scrollSpys[i]);
  2903. ScrollSpy._jQueryInterface.call($spy, $spy.data());
  2904. }
  2905. });
  2906. /**
  2907. * ------------------------------------------------------------------------
  2908. * jQuery
  2909. * ------------------------------------------------------------------------
  2910. */
  2911. $$$1.fn[NAME] = ScrollSpy._jQueryInterface;
  2912. $$$1.fn[NAME].Constructor = ScrollSpy;
  2913. $$$1.fn[NAME].noConflict = function () {
  2914. $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
  2915. return ScrollSpy._jQueryInterface;
  2916. };
  2917. return ScrollSpy;
  2918. }($);
  2919. /**
  2920. * --------------------------------------------------------------------------
  2921. * Bootstrap (v4.0.0): tab.js
  2922. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  2923. * --------------------------------------------------------------------------
  2924. */
  2925. var Tab = function ($$$1) {
  2926. /**
  2927. * ------------------------------------------------------------------------
  2928. * Constants
  2929. * ------------------------------------------------------------------------
  2930. */
  2931. var NAME = 'tab';
  2932. var VERSION = '4.0.0';
  2933. var DATA_KEY = 'bs.tab';
  2934. var EVENT_KEY = "." + DATA_KEY;
  2935. var DATA_API_KEY = '.data-api';
  2936. var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
  2937. var TRANSITION_DURATION = 150;
  2938. var Event = {
  2939. HIDE: "hide" + EVENT_KEY,
  2940. HIDDEN: "hidden" + EVENT_KEY,
  2941. SHOW: "show" + EVENT_KEY,
  2942. SHOWN: "shown" + EVENT_KEY,
  2943. CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
  2944. };
  2945. var ClassName = {
  2946. DROPDOWN_MENU: 'dropdown-menu',
  2947. ACTIVE: 'active',
  2948. DISABLED: 'disabled',
  2949. FADE: 'fade',
  2950. SHOW: 'show'
  2951. };
  2952. var Selector = {
  2953. DROPDOWN: '.dropdown',
  2954. NAV_LIST_GROUP: '.nav, .list-group',
  2955. ACTIVE: '.active',
  2956. ACTIVE_UL: '> li > .active',
  2957. DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
  2958. DROPDOWN_TOGGLE: '.dropdown-toggle',
  2959. DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active'
  2960. /**
  2961. * ------------------------------------------------------------------------
  2962. * Class Definition
  2963. * ------------------------------------------------------------------------
  2964. */
  2965. };
  2966. var Tab =
  2967. /*#__PURE__*/
  2968. function () {
  2969. function Tab(element) {
  2970. this._element = element;
  2971. } // Getters
  2972. var _proto = Tab.prototype;
  2973. // Public
  2974. _proto.show = function show() {
  2975. var _this = this;
  2976. if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $$$1(this._element).hasClass(ClassName.ACTIVE) || $$$1(this._element).hasClass(ClassName.DISABLED)) {
  2977. return;
  2978. }
  2979. var target;
  2980. var previous;
  2981. var listElement = $$$1(this._element).closest(Selector.NAV_LIST_GROUP)[0];
  2982. var selector = Util.getSelectorFromElement(this._element);
  2983. if (listElement) {
  2984. var itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE;
  2985. previous = $$$1.makeArray($$$1(listElement).find(itemSelector));
  2986. previous = previous[previous.length - 1];
  2987. }
  2988. var hideEvent = $$$1.Event(Event.HIDE, {
  2989. relatedTarget: this._element
  2990. });
  2991. var showEvent = $$$1.Event(Event.SHOW, {
  2992. relatedTarget: previous
  2993. });
  2994. if (previous) {
  2995. $$$1(previous).trigger(hideEvent);
  2996. }
  2997. $$$1(this._element).trigger(showEvent);
  2998. if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {
  2999. return;
  3000. }
  3001. if (selector) {
  3002. target = $$$1(selector)[0];
  3003. }
  3004. this._activate(this._element, listElement);
  3005. var complete = function complete() {
  3006. var hiddenEvent = $$$1.Event(Event.HIDDEN, {
  3007. relatedTarget: _this._element
  3008. });
  3009. var shownEvent = $$$1.Event(Event.SHOWN, {
  3010. relatedTarget: previous
  3011. });
  3012. $$$1(previous).trigger(hiddenEvent);
  3013. $$$1(_this._element).trigger(shownEvent);
  3014. };
  3015. if (target) {
  3016. this._activate(target, target.parentNode, complete);
  3017. } else {
  3018. complete();
  3019. }
  3020. };
  3021. _proto.dispose = function dispose() {
  3022. $$$1.removeData(this._element, DATA_KEY);
  3023. this._element = null;
  3024. }; // Private
  3025. _proto._activate = function _activate(element, container, callback) {
  3026. var _this2 = this;
  3027. var activeElements;
  3028. if (container.nodeName === 'UL') {
  3029. activeElements = $$$1(container).find(Selector.ACTIVE_UL);
  3030. } else {
  3031. activeElements = $$$1(container).children(Selector.ACTIVE);
  3032. }
  3033. var active = activeElements[0];
  3034. var isTransitioning = callback && Util.supportsTransitionEnd() && active && $$$1(active).hasClass(ClassName.FADE);
  3035. var complete = function complete() {
  3036. return _this2._transitionComplete(element, active, callback);
  3037. };
  3038. if (active && isTransitioning) {
  3039. $$$1(active).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
  3040. } else {
  3041. complete();
  3042. }
  3043. };
  3044. _proto._transitionComplete = function _transitionComplete(element, active, callback) {
  3045. if (active) {
  3046. $$$1(active).removeClass(ClassName.SHOW + " " + ClassName.ACTIVE);
  3047. var dropdownChild = $$$1(active.parentNode).find(Selector.DROPDOWN_ACTIVE_CHILD)[0];
  3048. if (dropdownChild) {
  3049. $$$1(dropdownChild).removeClass(ClassName.ACTIVE);
  3050. }
  3051. if (active.getAttribute('role') === 'tab') {
  3052. active.setAttribute('aria-selected', false);
  3053. }
  3054. }
  3055. $$$1(element).addClass(ClassName.ACTIVE);
  3056. if (element.getAttribute('role') === 'tab') {
  3057. element.setAttribute('aria-selected', true);
  3058. }
  3059. Util.reflow(element);
  3060. $$$1(element).addClass(ClassName.SHOW);
  3061. if (element.parentNode && $$$1(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {
  3062. var dropdownElement = $$$1(element).closest(Selector.DROPDOWN)[0];
  3063. if (dropdownElement) {
  3064. $$$1(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
  3065. }
  3066. element.setAttribute('aria-expanded', true);
  3067. }
  3068. if (callback) {
  3069. callback();
  3070. }
  3071. }; // Static
  3072. Tab._jQueryInterface = function _jQueryInterface(config) {
  3073. return this.each(function () {
  3074. var $this = $$$1(this);
  3075. var data = $this.data(DATA_KEY);
  3076. if (!data) {
  3077. data = new Tab(this);
  3078. $this.data(DATA_KEY, data);
  3079. }
  3080. if (typeof config === 'string') {
  3081. if (typeof data[config] === 'undefined') {
  3082. throw new TypeError("No method named \"" + config + "\"");
  3083. }
  3084. data[config]();
  3085. }
  3086. });
  3087. };
  3088. _createClass(Tab, null, [{
  3089. key: "VERSION",
  3090. get: function get() {
  3091. return VERSION;
  3092. }
  3093. }]);
  3094. return Tab;
  3095. }();
  3096. /**
  3097. * ------------------------------------------------------------------------
  3098. * Data Api implementation
  3099. * ------------------------------------------------------------------------
  3100. */
  3101. $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
  3102. event.preventDefault();
  3103. Tab._jQueryInterface.call($$$1(this), 'show');
  3104. });
  3105. /**
  3106. * ------------------------------------------------------------------------
  3107. * jQuery
  3108. * ------------------------------------------------------------------------
  3109. */
  3110. $$$1.fn[NAME] = Tab._jQueryInterface;
  3111. $$$1.fn[NAME].Constructor = Tab;
  3112. $$$1.fn[NAME].noConflict = function () {
  3113. $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
  3114. return Tab._jQueryInterface;
  3115. };
  3116. return Tab;
  3117. }($);
  3118. /**
  3119. * --------------------------------------------------------------------------
  3120. * Bootstrap (v4.0.0-alpha.6): index.js
  3121. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  3122. * --------------------------------------------------------------------------
  3123. */
  3124. (function ($$$1) {
  3125. if (typeof $$$1 === 'undefined') {
  3126. throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.');
  3127. }
  3128. var version = $$$1.fn.jquery.split(' ')[0].split('.');
  3129. var minMajor = 1;
  3130. var ltMajor = 2;
  3131. var minMinor = 9;
  3132. var minPatch = 1;
  3133. var maxMajor = 4;
  3134. if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {
  3135. throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');
  3136. }
  3137. })($);
  3138. exports.Util = Util;
  3139. exports.Alert = Alert;
  3140. exports.Button = Button;
  3141. exports.Carousel = Carousel;
  3142. exports.Collapse = Collapse;
  3143. exports.Dropdown = Dropdown;
  3144. exports.Modal = Modal;
  3145. exports.Popover = Popover;
  3146. exports.Scrollspy = ScrollSpy;
  3147. exports.Tab = Tab;
  3148. exports.Tooltip = Tooltip;
  3149. Object.defineProperty(exports, '__esModule', { value: true });
  3150. })));