modal.js 26.9 KB
Newer Older
XhmikosR's avatar
Dist    
XhmikosR committed
1
/*!
XhmikosR's avatar
XhmikosR committed
2
  * Bootstrap modal.js v5.0.0-alpha3 (https://getbootstrap.com/)
XhmikosR's avatar
XhmikosR committed
3
  * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
XhmikosR's avatar
XhmikosR committed
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
XhmikosR's avatar
Dist    
XhmikosR committed
5
  */
Mark Otto's avatar
dist    
Mark Otto committed
6
(function (global, factory) {
XhmikosR's avatar
XhmikosR committed
7
8
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js')) :
  typeof define === 'function' && define.amd ? define(['./dom/data.js', './dom/event-handler.js', './dom/manipulator.js', './dom/selector-engine.js'], factory) :
XhmikosR's avatar
XhmikosR committed
9
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Modal = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine));
XhmikosR's avatar
XhmikosR committed
10
}(this, (function (Data, EventHandler, Manipulator, SelectorEngine) { 'use strict';
Mark Otto's avatar
dist    
Mark Otto committed
11

XhmikosR's avatar
XhmikosR committed
12
13
14
15
16
17
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }

  var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
  var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
  var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
  var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
Mark Otto's avatar
dist    
Mark Otto committed
18

XhmikosR's avatar
XhmikosR committed
19
20
  /**
   * --------------------------------------------------------------------------
XhmikosR's avatar
XhmikosR committed
21
   * Bootstrap (v5.0.0-alpha3): util/index.js
XhmikosR's avatar
XhmikosR committed
22
   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
XhmikosR's avatar
XhmikosR committed
23
24
25
   * --------------------------------------------------------------------------
   */
  var MILLISECONDS_MULTIPLIER = 1000;
XhmikosR's avatar
XhmikosR committed
26
  var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
XhmikosR's avatar
XhmikosR committed
27
28

  var toType = function toType(obj) {
XhmikosR's avatar
XhmikosR committed
29
30
31
32
    if (obj === null || obj === undefined) {
      return "" + obj;
    }

XhmikosR's avatar
XhmikosR committed
33
34
35
    return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
  };

XhmikosR's avatar
XhmikosR committed
36
  var getSelector = function getSelector(element) {
XhmikosR's avatar
XhmikosR committed
37
    var selector = element.getAttribute('data-bs-target');
XhmikosR's avatar
XhmikosR committed
38
39
40

    if (!selector || selector === '#') {
      var hrefAttr = element.getAttribute('href');
XhmikosR's avatar
XhmikosR committed
41
      selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;
XhmikosR's avatar
XhmikosR committed
42
43
    }

XhmikosR's avatar
XhmikosR committed
44
45
46
47
48
49
    return selector;
  };

  var getElementFromSelector = function getElementFromSelector(element) {
    var selector = getSelector(element);
    return selector ? document.querySelector(selector) : null;
XhmikosR's avatar
XhmikosR committed
50
51
52
53
54
55
56
57
58
59
60
61
  };

  var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {
    if (!element) {
      return 0;
    } // Get transition-duration of the element


    var _window$getComputedSt = window.getComputedStyle(element),
        transitionDuration = _window$getComputedSt.transitionDuration,
        transitionDelay = _window$getComputedSt.transitionDelay;

XhmikosR's avatar
XhmikosR committed
62
63
    var floatTransitionDuration = Number.parseFloat(transitionDuration);
    var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
XhmikosR's avatar
XhmikosR committed
64
65
66
67
68
69
70
71

    if (!floatTransitionDuration && !floatTransitionDelay) {
      return 0;
    } // If multiple durations are defined, take the first


    transitionDuration = transitionDuration.split(',')[0];
    transitionDelay = transitionDelay.split(',')[0];
XhmikosR's avatar
XhmikosR committed
72
    return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
XhmikosR's avatar
XhmikosR committed
73
74
75
  };

  var triggerTransitionEnd = function triggerTransitionEnd(element) {
XhmikosR's avatar
XhmikosR committed
76
    element.dispatchEvent(new Event(TRANSITION_END));
XhmikosR's avatar
XhmikosR committed
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
  };

  var isElement = function isElement(obj) {
    return (obj[0] || obj).nodeType;
  };

  var emulateTransitionEnd = function emulateTransitionEnd(element, duration) {
    var called = false;
    var durationPadding = 5;
    var emulatedDuration = duration + durationPadding;

    function listener() {
      called = true;
      element.removeEventListener(TRANSITION_END, listener);
    }

    element.addEventListener(TRANSITION_END, listener);
    setTimeout(function () {
      if (!called) {
        triggerTransitionEnd(element);
      }
    }, emulatedDuration);
  };

  var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {
    Object.keys(configTypes).forEach(function (property) {
      var expectedTypes = configTypes[property];
      var value = config[property];
      var valueType = value && isElement(value) ? 'element' : toType(value);

      if (!new RegExp(expectedTypes).test(valueType)) {
        throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
      }
    });
  };

  var isVisible = function isVisible(element) {
    if (!element) {
      return false;
    }

    if (element.style && element.parentNode && element.parentNode.style) {
XhmikosR's avatar
XhmikosR committed
119
120
121
      var elementStyle = getComputedStyle(element);
      var parentNodeStyle = getComputedStyle(element.parentNode);
      return elementStyle.display !== 'none' && parentNodeStyle.display !== 'none' && elementStyle.visibility !== 'hidden';
XhmikosR's avatar
XhmikosR committed
122
123
124
125
126
127
128
129
130
    }

    return false;
  };

  var reflow = function reflow(element) {
    return element.offsetHeight;
  };

XhmikosR's avatar
XhmikosR committed
131
132
133
134
  var getjQuery = function getjQuery() {
    var _window = window,
        jQuery = _window.jQuery;

XhmikosR's avatar
XhmikosR committed
135
    if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
XhmikosR's avatar
XhmikosR committed
136
137
138
139
140
141
      return jQuery;
    }

    return null;
  };

XhmikosR's avatar
XhmikosR committed
142
143
144
145
146
147
148
149
  var onDOMContentLoaded = function onDOMContentLoaded(callback) {
    if (document.readyState === 'loading') {
      document.addEventListener('DOMContentLoaded', callback);
    } else {
      callback();
    }
  };

XhmikosR's avatar
XhmikosR committed
150
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
Mark Otto's avatar
Mark Otto committed
151
152
153
154

  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
XhmikosR's avatar
Dist    
XhmikosR committed
155
156
157
158
159
160
161
  /**
   * ------------------------------------------------------------------------
   * Constants
   * ------------------------------------------------------------------------
   */

  var NAME = 'modal';
XhmikosR's avatar
XhmikosR committed
162
  var VERSION = '5.0.0-alpha3';
XhmikosR's avatar
Dist    
XhmikosR committed
163
164
165
  var DATA_KEY = 'bs.modal';
  var EVENT_KEY = "." + DATA_KEY;
  var DATA_API_KEY = '.data-api';
XhmikosR's avatar
XhmikosR committed
166
  var ESCAPE_KEY = 'Escape';
XhmikosR's avatar
Dist    
XhmikosR committed
167
168
169
170
171
172
173
174
175
176
177
178
  var Default = {
    backdrop: true,
    keyboard: true,
    focus: true,
    show: true
  };
  var DefaultType = {
    backdrop: '(boolean|string)',
    keyboard: 'boolean',
    focus: 'boolean',
    show: 'boolean'
  };
XhmikosR's avatar
XhmikosR committed
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
  var EVENT_HIDE = "hide" + EVENT_KEY;
  var EVENT_HIDE_PREVENTED = "hidePrevented" + EVENT_KEY;
  var EVENT_HIDDEN = "hidden" + EVENT_KEY;
  var EVENT_SHOW = "show" + EVENT_KEY;
  var EVENT_SHOWN = "shown" + EVENT_KEY;
  var EVENT_FOCUSIN = "focusin" + EVENT_KEY;
  var EVENT_RESIZE = "resize" + EVENT_KEY;
  var EVENT_CLICK_DISMISS = "click.dismiss" + EVENT_KEY;
  var EVENT_KEYDOWN_DISMISS = "keydown.dismiss" + EVENT_KEY;
  var EVENT_MOUSEUP_DISMISS = "mouseup.dismiss" + EVENT_KEY;
  var EVENT_MOUSEDOWN_DISMISS = "mousedown.dismiss" + EVENT_KEY;
  var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
  var CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure';
  var CLASS_NAME_BACKDROP = 'modal-backdrop';
  var CLASS_NAME_OPEN = 'modal-open';
  var CLASS_NAME_FADE = 'fade';
  var CLASS_NAME_SHOW = 'show';
  var CLASS_NAME_STATIC = 'modal-static';
  var SELECTOR_DIALOG = '.modal-dialog';
  var SELECTOR_MODAL_BODY = '.modal-body';
XhmikosR's avatar
XhmikosR committed
199
200
  var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="modal"]';
  var SELECTOR_DATA_DISMISS = '[data-bs-dismiss="modal"]';
XhmikosR's avatar
XhmikosR committed
201
202
  var SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';
  var SELECTOR_STICKY_CONTENT = '.sticky-top';
XhmikosR's avatar
XhmikosR committed
203
204
205
206
207
  /**
   * ------------------------------------------------------------------------
   * Class Definition
   * ------------------------------------------------------------------------
   */
XhmikosR's avatar
Dist    
XhmikosR committed
208

XhmikosR's avatar
XhmikosR committed
209
  var Modal = /*#__PURE__*/function () {
XhmikosR's avatar
Dist    
XhmikosR committed
210
211
212
    function Modal(element, config) {
      this._config = this._getConfig(config);
      this._element = element;
XhmikosR's avatar
XhmikosR committed
213
      this._dialog = SelectorEngine__default['default'].findOne(SELECTOR_DIALOG, element);
XhmikosR's avatar
Dist    
XhmikosR committed
214
215
216
217
218
219
      this._backdrop = null;
      this._isShown = false;
      this._isBodyOverflowing = false;
      this._ignoreBackdropClick = false;
      this._isTransitioning = false;
      this._scrollbarWidth = 0;
XhmikosR's avatar
XhmikosR committed
220
      Data__default['default'].setData(element, DATA_KEY, this);
XhmikosR's avatar
Dist    
XhmikosR committed
221
222
223
224
225
226
227
228
    } // Getters


    var _proto = Modal.prototype;

    // Public
    _proto.toggle = function toggle(relatedTarget) {
      return this._isShown ? this.hide() : this.show(relatedTarget);
Mark Otto's avatar
dist    
Mark Otto committed
229
    };
230

XhmikosR's avatar
Dist    
XhmikosR committed
231
232
    _proto.show = function show(relatedTarget) {
      var _this = this;
Jacob Thornton's avatar
Jacob Thornton committed
233

XhmikosR's avatar
Dist    
XhmikosR committed
234
235
236
      if (this._isShown || this._isTransitioning) {
        return;
      }
237

XhmikosR's avatar
XhmikosR committed
238
      if (this._element.classList.contains(CLASS_NAME_FADE)) {
XhmikosR's avatar
Dist    
XhmikosR committed
239
240
        this._isTransitioning = true;
      }
241

XhmikosR's avatar
XhmikosR committed
242
      var showEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW, {
XhmikosR's avatar
Dist    
XhmikosR committed
243
244
        relatedTarget: relatedTarget
      });
Mark Otto's avatar
grunt    
Mark Otto committed
245

XhmikosR's avatar
XhmikosR committed
246
      if (this._isShown || showEvent.defaultPrevented) {
XhmikosR's avatar
Dist    
XhmikosR committed
247
248
        return;
      }
249

XhmikosR's avatar
Dist    
XhmikosR committed
250
      this._isShown = true;
Mark Otto's avatar
grunt    
Mark Otto committed
251

XhmikosR's avatar
Dist    
XhmikosR committed
252
      this._checkScrollbar();
253

XhmikosR's avatar
Dist    
XhmikosR committed
254
      this._setScrollbar();
Mark Otto's avatar
grunt    
Mark Otto committed
255

XhmikosR's avatar
Dist    
XhmikosR committed
256
      this._adjustDialog();
Mark Otto's avatar
grunt    
Mark Otto committed
257

XhmikosR's avatar
Dist    
XhmikosR committed
258
      this._setEscapeEvent();
259

XhmikosR's avatar
Dist    
XhmikosR committed
260
      this._setResizeEvent();
Mark Otto's avatar
grunt    
Mark Otto committed
261

XhmikosR's avatar
XhmikosR committed
262
      EventHandler__default['default'].on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function (event) {
XhmikosR's avatar
Dist    
XhmikosR committed
263
264
        return _this.hide(event);
      });
XhmikosR's avatar
XhmikosR committed
265
266
      EventHandler__default['default'].on(this._dialog, EVENT_MOUSEDOWN_DISMISS, function () {
        EventHandler__default['default'].one(_this._element, EVENT_MOUSEUP_DISMISS, function (event) {
XhmikosR's avatar
XhmikosR committed
267
          if (event.target === _this._element) {
XhmikosR's avatar
Dist    
XhmikosR committed
268
269
            _this._ignoreBackdropClick = true;
          }
Mark Otto's avatar
dist    
Mark Otto committed
270
        });
XhmikosR's avatar
Dist    
XhmikosR committed
271
      });
272

XhmikosR's avatar
Dist    
XhmikosR committed
273
274
275
276
      this._showBackdrop(function () {
        return _this._showElement(relatedTarget);
      });
    };
Mark Otto's avatar
dist    
Mark Otto committed
277

XhmikosR's avatar
Dist    
XhmikosR committed
278
279
    _proto.hide = function hide(event) {
      var _this2 = this;
280

XhmikosR's avatar
Dist    
XhmikosR committed
281
282
283
      if (event) {
        event.preventDefault();
      }
284

XhmikosR's avatar
Dist    
XhmikosR committed
285
286
287
      if (!this._isShown || this._isTransitioning) {
        return;
      }
288

XhmikosR's avatar
XhmikosR committed
289
      var hideEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE);
290

291
      if (hideEvent.defaultPrevented) {
XhmikosR's avatar
Dist    
XhmikosR committed
292
293
        return;
      }
Mark Otto's avatar
dist    
Mark Otto committed
294

XhmikosR's avatar
Dist    
XhmikosR committed
295
      this._isShown = false;
XhmikosR's avatar
XhmikosR committed
296

XhmikosR's avatar
XhmikosR committed
297
      var transition = this._element.classList.contains(CLASS_NAME_FADE);
Mark Otto's avatar
grunt    
Mark Otto committed
298

XhmikosR's avatar
Dist    
XhmikosR committed
299
300
301
      if (transition) {
        this._isTransitioning = true;
      }
302

XhmikosR's avatar
Dist    
XhmikosR committed
303
      this._setEscapeEvent();
304

XhmikosR's avatar
Dist    
XhmikosR committed
305
      this._setResizeEvent();
Mark Otto's avatar
grunt    
Mark Otto committed
306

XhmikosR's avatar
XhmikosR committed
307
      EventHandler__default['default'].off(document, EVENT_FOCUSIN);
XhmikosR's avatar
XhmikosR committed
308

XhmikosR's avatar
XhmikosR committed
309
      this._element.classList.remove(CLASS_NAME_SHOW);
XhmikosR's avatar
XhmikosR committed
310

XhmikosR's avatar
XhmikosR committed
311
312
      EventHandler__default['default'].off(this._element, EVENT_CLICK_DISMISS);
      EventHandler__default['default'].off(this._dialog, EVENT_MOUSEDOWN_DISMISS);
Mark Otto's avatar
dist    
Mark Otto committed
313

XhmikosR's avatar
Dist    
XhmikosR committed
314
      if (transition) {
XhmikosR's avatar
XhmikosR committed
315
        var transitionDuration = getTransitionDurationFromElement(this._element);
XhmikosR's avatar
XhmikosR committed
316
        EventHandler__default['default'].one(this._element, TRANSITION_END, function (event) {
XhmikosR's avatar
Dist    
XhmikosR committed
317
          return _this2._hideModal(event);
XhmikosR's avatar
XhmikosR committed
318
319
        });
        emulateTransitionEnd(this._element, transitionDuration);
XhmikosR's avatar
Dist    
XhmikosR committed
320
321
322
323
      } else {
        this._hideModal();
      }
    };
Mark Otto's avatar
grunt    
Mark Otto committed
324

XhmikosR's avatar
Dist    
XhmikosR committed
325
326
    _proto.dispose = function dispose() {
      [window, this._element, this._dialog].forEach(function (htmlElement) {
XhmikosR's avatar
XhmikosR committed
327
        return EventHandler__default['default'].off(htmlElement, EVENT_KEY);
XhmikosR's avatar
Dist    
XhmikosR committed
328
329
      });
      /**
XhmikosR's avatar
XhmikosR committed
330
       * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`
XhmikosR's avatar
Dist    
XhmikosR committed
331
       * Do not move `document` in `htmlElements` array
XhmikosR's avatar
XhmikosR committed
332
       * It will remove `EVENT_CLICK_DATA_API` event that should remain
XhmikosR's avatar
Dist    
XhmikosR committed
333
       */
Mark Otto's avatar
grunt    
Mark Otto committed
334

XhmikosR's avatar
XhmikosR committed
335
336
      EventHandler__default['default'].off(document, EVENT_FOCUSIN);
      Data__default['default'].removeData(this._element, DATA_KEY);
XhmikosR's avatar
Dist    
XhmikosR committed
337
338
339
340
341
342
343
344
345
346
      this._config = null;
      this._element = null;
      this._dialog = null;
      this._backdrop = null;
      this._isShown = null;
      this._isBodyOverflowing = null;
      this._ignoreBackdropClick = null;
      this._isTransitioning = null;
      this._scrollbarWidth = null;
    };
Mark Otto's avatar
grunt    
Mark Otto committed
347

XhmikosR's avatar
Dist    
XhmikosR committed
348
349
    _proto.handleUpdate = function handleUpdate() {
      this._adjustDialog();
Mark Otto's avatar
Mark Otto committed
350
351
    } // Private
    ;
Mark Otto's avatar
grunt    
Mark Otto committed
352

XhmikosR's avatar
Dist    
XhmikosR committed
353
    _proto._getConfig = function _getConfig(config) {
XhmikosR's avatar
XhmikosR committed
354
      config = _extends({}, Default, config);
XhmikosR's avatar
XhmikosR committed
355
      typeCheckConfig(NAME, config, DefaultType);
XhmikosR's avatar
Dist    
XhmikosR committed
356
357
      return config;
    };
Mark Otto's avatar
grunt    
Mark Otto committed
358

XhmikosR's avatar
Dist    
XhmikosR committed
359
360
    _proto._showElement = function _showElement(relatedTarget) {
      var _this3 = this;
Mark Otto's avatar
dist    
Mark Otto committed
361

XhmikosR's avatar
XhmikosR committed
362
      var transition = this._element.classList.contains(CLASS_NAME_FADE);
Mark Otto's avatar
dist    
Mark Otto committed
363

XhmikosR's avatar
XhmikosR committed
364
      var modalBody = SelectorEngine__default['default'].findOne(SELECTOR_MODAL_BODY, this._dialog);
XhmikosR's avatar
XhmikosR committed
365

XhmikosR's avatar
Dist    
XhmikosR committed
366
367
368
369
      if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
        // Don't move modal's DOM position
        document.body.appendChild(this._element);
      }
Mark Otto's avatar
dist    
Mark Otto committed
370

XhmikosR's avatar
Dist    
XhmikosR committed
371
      this._element.style.display = 'block';
Mark Otto's avatar
dist    
Mark Otto committed
372

XhmikosR's avatar
Dist    
XhmikosR committed
373
      this._element.removeAttribute('aria-hidden');
374

Mark Otto's avatar
dist    
Mark Otto committed
375
376
      this._element.setAttribute('aria-modal', true);

Mark Otto's avatar
Mark Otto committed
377
378
      this._element.setAttribute('role', 'dialog');

XhmikosR's avatar
XhmikosR committed
379
380
381
      this._element.scrollTop = 0;

      if (modalBody) {
XhmikosR's avatar
XhmikosR committed
382
        modalBody.scrollTop = 0;
Mark Otto's avatar
Mark Otto committed
383
      }
384

XhmikosR's avatar
Dist    
XhmikosR committed
385
      if (transition) {
XhmikosR's avatar
XhmikosR committed
386
        reflow(this._element);
XhmikosR's avatar
Dist    
XhmikosR committed
387
      }
388

XhmikosR's avatar
XhmikosR committed
389
      this._element.classList.add(CLASS_NAME_SHOW);
Mark Otto's avatar
dist    
Mark Otto committed
390

XhmikosR's avatar
Dist    
XhmikosR committed
391
392
393
      if (this._config.focus) {
        this._enforceFocus();
      }
394

XhmikosR's avatar
Dist    
XhmikosR committed
395
396
397
      var transitionComplete = function transitionComplete() {
        if (_this3._config.focus) {
          _this3._element.focus();
Mark Otto's avatar
dist    
Mark Otto committed
398
        }
399

XhmikosR's avatar
Dist    
XhmikosR committed
400
        _this3._isTransitioning = false;
XhmikosR's avatar
XhmikosR committed
401
        EventHandler__default['default'].trigger(_this3._element, EVENT_SHOWN, {
XhmikosR's avatar
XhmikosR committed
402
403
          relatedTarget: relatedTarget
        });
Mark Otto's avatar
dist    
Mark Otto committed
404
      };
405

XhmikosR's avatar
Dist    
XhmikosR committed
406
      if (transition) {
XhmikosR's avatar
XhmikosR committed
407
        var transitionDuration = getTransitionDurationFromElement(this._dialog);
XhmikosR's avatar
XhmikosR committed
408
        EventHandler__default['default'].one(this._dialog, TRANSITION_END, transitionComplete);
XhmikosR's avatar
XhmikosR committed
409
        emulateTransitionEnd(this._dialog, transitionDuration);
XhmikosR's avatar
Dist    
XhmikosR committed
410
411
412
413
      } else {
        transitionComplete();
      }
    };
414

XhmikosR's avatar
Dist    
XhmikosR committed
415
416
    _proto._enforceFocus = function _enforceFocus() {
      var _this4 = this;
417

XhmikosR's avatar
XhmikosR committed
418
      EventHandler__default['default'].off(document, EVENT_FOCUSIN); // guard against infinite focus loop
XhmikosR's avatar
XhmikosR committed
419

XhmikosR's avatar
XhmikosR committed
420
      EventHandler__default['default'].on(document, EVENT_FOCUSIN, function (event) {
XhmikosR's avatar
XhmikosR committed
421
        if (document !== event.target && _this4._element !== event.target && !_this4._element.contains(event.target)) {
XhmikosR's avatar
Dist    
XhmikosR committed
422
          _this4._element.focus();
423
        }
XhmikosR's avatar
Dist    
XhmikosR committed
424
425
      });
    };
Mark Otto's avatar
dist    
Mark Otto committed
426

XhmikosR's avatar
Dist    
XhmikosR committed
427
428
    _proto._setEscapeEvent = function _setEscapeEvent() {
      var _this5 = this;
Mark Otto's avatar
grunt    
Mark Otto committed
429

XhmikosR's avatar
XhmikosR committed
430
      if (this._isShown) {
XhmikosR's avatar
XhmikosR committed
431
        EventHandler__default['default'].on(this._element, EVENT_KEYDOWN_DISMISS, function (event) {
XhmikosR's avatar
XhmikosR committed
432
          if (_this5._config.keyboard && event.key === ESCAPE_KEY) {
XhmikosR's avatar
XhmikosR committed
433
434
435
            event.preventDefault();

            _this5.hide();
XhmikosR's avatar
XhmikosR committed
436
          } else if (!_this5._config.keyboard && event.key === ESCAPE_KEY) {
XhmikosR's avatar
XhmikosR committed
437
            _this5._triggerBackdropTransition();
XhmikosR's avatar
Dist    
XhmikosR committed
438
439
          }
        });
440
      } else {
XhmikosR's avatar
XhmikosR committed
441
        EventHandler__default['default'].off(this._element, EVENT_KEYDOWN_DISMISS);
XhmikosR's avatar
Dist    
XhmikosR committed
442
443
      }
    };
Mark Otto's avatar
dist    
Mark Otto committed
444

XhmikosR's avatar
Dist    
XhmikosR committed
445
446
    _proto._setResizeEvent = function _setResizeEvent() {
      var _this6 = this;
447

XhmikosR's avatar
Dist    
XhmikosR committed
448
      if (this._isShown) {
XhmikosR's avatar
XhmikosR committed
449
        EventHandler__default['default'].on(window, EVENT_RESIZE, function () {
450
          return _this6._adjustDialog();
XhmikosR's avatar
Dist    
XhmikosR committed
451
452
        });
      } else {
XhmikosR's avatar
XhmikosR committed
453
        EventHandler__default['default'].off(window, EVENT_RESIZE);
XhmikosR's avatar
Dist    
XhmikosR committed
454
455
      }
    };
456

XhmikosR's avatar
Dist    
XhmikosR committed
457
458
    _proto._hideModal = function _hideModal() {
      var _this7 = this;
459

XhmikosR's avatar
Dist    
XhmikosR committed
460
      this._element.style.display = 'none';
461

XhmikosR's avatar
Dist    
XhmikosR committed
462
      this._element.setAttribute('aria-hidden', true);
463

Mark Otto's avatar
dist    
Mark Otto committed
464
465
      this._element.removeAttribute('aria-modal');

Mark Otto's avatar
Mark Otto committed
466
467
      this._element.removeAttribute('role');

XhmikosR's avatar
Dist    
XhmikosR committed
468
      this._isTransitioning = false;
Mark Otto's avatar
dist    
Mark Otto committed
469

XhmikosR's avatar
Dist    
XhmikosR committed
470
      this._showBackdrop(function () {
XhmikosR's avatar
XhmikosR committed
471
        document.body.classList.remove(CLASS_NAME_OPEN);
472

XhmikosR's avatar
Dist    
XhmikosR committed
473
        _this7._resetAdjustments();
Mark Otto's avatar
dist    
Mark Otto committed
474

XhmikosR's avatar
Dist    
XhmikosR committed
475
        _this7._resetScrollbar();
Mark Otto's avatar
dist    
Mark Otto committed
476

XhmikosR's avatar
XhmikosR committed
477
        EventHandler__default['default'].trigger(_this7._element, EVENT_HIDDEN);
XhmikosR's avatar
Dist    
XhmikosR committed
478
479
      });
    };
Mark Otto's avatar
dist    
Mark Otto committed
480

XhmikosR's avatar
Dist    
XhmikosR committed
481
    _proto._removeBackdrop = function _removeBackdrop() {
482
      this._backdrop.parentNode.removeChild(this._backdrop);
XhmikosR's avatar
XhmikosR committed
483

484
      this._backdrop = null;
XhmikosR's avatar
Dist    
XhmikosR committed
485
    };
Mark Otto's avatar
dist    
Mark Otto committed
486

XhmikosR's avatar
Dist    
XhmikosR committed
487
488
    _proto._showBackdrop = function _showBackdrop(callback) {
      var _this8 = this;
Mark Otto's avatar
dist    
Mark Otto committed
489

XhmikosR's avatar
XhmikosR committed
490
      var animate = this._element.classList.contains(CLASS_NAME_FADE) ? CLASS_NAME_FADE : '';
XhmikosR's avatar
Dist    
XhmikosR committed
491
492
493

      if (this._isShown && this._config.backdrop) {
        this._backdrop = document.createElement('div');
XhmikosR's avatar
XhmikosR committed
494
        this._backdrop.className = CLASS_NAME_BACKDROP;
Mark Otto's avatar
dist    
Mark Otto committed
495

XhmikosR's avatar
Dist    
XhmikosR committed
496
497
498
        if (animate) {
          this._backdrop.classList.add(animate);
        }
499

XhmikosR's avatar
XhmikosR committed
500
        document.body.appendChild(this._backdrop);
XhmikosR's avatar
XhmikosR committed
501
        EventHandler__default['default'].on(this._element, EVENT_CLICK_DISMISS, function (event) {
XhmikosR's avatar
Dist    
XhmikosR committed
502
503
          if (_this8._ignoreBackdropClick) {
            _this8._ignoreBackdropClick = false;
504
505
            return;
          }
Mark Otto's avatar
dist    
Mark Otto committed
506

XhmikosR's avatar
Dist    
XhmikosR committed
507
          if (event.target !== event.currentTarget) {
508
509
510
            return;
          }

XhmikosR's avatar
XhmikosR committed
511
512
513
514
515
          if (_this8._config.backdrop === 'static') {
            _this8._triggerBackdropTransition();
          } else {
            _this8.hide();
          }
XhmikosR's avatar
Dist    
XhmikosR committed
516
        });
Mark Otto's avatar
dist    
Mark Otto committed
517

XhmikosR's avatar
Dist    
XhmikosR committed
518
        if (animate) {
XhmikosR's avatar
XhmikosR committed
519
          reflow(this._backdrop);
XhmikosR's avatar
Dist    
XhmikosR committed
520
        }
521

XhmikosR's avatar
XhmikosR committed
522
        this._backdrop.classList.add(CLASS_NAME_SHOW);
523

XhmikosR's avatar
Dist    
XhmikosR committed
524
        if (!animate) {
Mark Otto's avatar
dist    
Mark Otto committed
525
          callback();
XhmikosR's avatar
Dist    
XhmikosR committed
526
          return;
527
        }
Mark Otto's avatar
grunt    
Mark Otto committed
528

XhmikosR's avatar
XhmikosR committed
529
        var backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop);
XhmikosR's avatar
XhmikosR committed
530
        EventHandler__default['default'].one(this._backdrop, TRANSITION_END, callback);
XhmikosR's avatar
XhmikosR committed
531
        emulateTransitionEnd(this._backdrop, backdropTransitionDuration);
XhmikosR's avatar
Dist    
XhmikosR committed
532
      } else if (!this._isShown && this._backdrop) {
XhmikosR's avatar
XhmikosR committed
533
        this._backdrop.classList.remove(CLASS_NAME_SHOW);
Mark Otto's avatar
dist    
Mark Otto committed
534

XhmikosR's avatar
Dist    
XhmikosR committed
535
536
        var callbackRemove = function callbackRemove() {
          _this8._removeBackdrop();
Mark Otto's avatar
dist    
Mark Otto committed
537

538
          callback();
XhmikosR's avatar
Dist    
XhmikosR committed
539
        };
Mark Otto's avatar
dist    
Mark Otto committed
540

XhmikosR's avatar
XhmikosR committed
541
        if (this._element.classList.contains(CLASS_NAME_FADE)) {
XhmikosR's avatar
XhmikosR committed
542
          var _backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop);
XhmikosR's avatar
Dist    
XhmikosR committed
543

XhmikosR's avatar
XhmikosR committed
544
          EventHandler__default['default'].one(this._backdrop, TRANSITION_END, callbackRemove);
XhmikosR's avatar
XhmikosR committed
545
          emulateTransitionEnd(this._backdrop, _backdropTransitionDuration);
XhmikosR's avatar
Dist    
XhmikosR committed
546
547
        } else {
          callbackRemove();
Mark Otto's avatar
dist    
Mark Otto committed
548
        }
549
      } else {
XhmikosR's avatar
Dist    
XhmikosR committed
550
551
        callback();
      }
XhmikosR's avatar
XhmikosR committed
552
553
554
555
556
    };

    _proto._triggerBackdropTransition = function _triggerBackdropTransition() {
      var _this9 = this;

XhmikosR's avatar
XhmikosR committed
557
      var hideEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE_PREVENTED);
XhmikosR's avatar
XhmikosR committed
558

XhmikosR's avatar
XhmikosR committed
559
560
561
      if (hideEvent.defaultPrevented) {
        return;
      }
XhmikosR's avatar
XhmikosR committed
562

XhmikosR's avatar
XhmikosR committed
563
      var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
XhmikosR's avatar
XhmikosR committed
564

XhmikosR's avatar
XhmikosR committed
565
566
567
      if (!isModalOverflowing) {
        this._element.style.overflowY = 'hidden';
      }
XhmikosR's avatar
XhmikosR committed
568

XhmikosR's avatar
XhmikosR committed
569
      this._element.classList.add(CLASS_NAME_STATIC);
XhmikosR's avatar
XhmikosR committed
570

XhmikosR's avatar
XhmikosR committed
571
572
573
574
      var modalTransitionDuration = getTransitionDurationFromElement(this._dialog);
      EventHandler__default['default'].off(this._element, TRANSITION_END);
      EventHandler__default['default'].one(this._element, TRANSITION_END, function () {
        _this9._element.classList.remove(CLASS_NAME_STATIC);
XhmikosR's avatar
XhmikosR committed
575

XhmikosR's avatar
XhmikosR committed
576
577
578
579
580
581
582
583
        if (!isModalOverflowing) {
          EventHandler__default['default'].one(_this9._element, TRANSITION_END, function () {
            _this9._element.style.overflowY = '';
          });
          emulateTransitionEnd(_this9._element, modalTransitionDuration);
        }
      });
      emulateTransitionEnd(this._element, modalTransitionDuration);
XhmikosR's avatar
XhmikosR committed
584

XhmikosR's avatar
XhmikosR committed
585
      this._element.focus();
Mark Otto's avatar
Mark Otto committed
586
    } // ----------------------------------------------------------------------
XhmikosR's avatar
Dist    
XhmikosR committed
587
588
    // the following methods are used to handle overflowing modals
    // ----------------------------------------------------------------------
Mark Otto's avatar
Mark Otto committed
589
    ;
Mark Otto's avatar
dist    
Mark Otto committed
590

XhmikosR's avatar
Dist    
XhmikosR committed
591
592
    _proto._adjustDialog = function _adjustDialog() {
      var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
Mark Otto's avatar
dist    
Mark Otto committed
593

XhmikosR's avatar
Dist    
XhmikosR committed
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
      if (!this._isBodyOverflowing && isModalOverflowing) {
        this._element.style.paddingLeft = this._scrollbarWidth + "px";
      }

      if (this._isBodyOverflowing && !isModalOverflowing) {
        this._element.style.paddingRight = this._scrollbarWidth + "px";
      }
    };

    _proto._resetAdjustments = function _resetAdjustments() {
      this._element.style.paddingLeft = '';
      this._element.style.paddingRight = '';
    };

    _proto._checkScrollbar = function _checkScrollbar() {
      var rect = document.body.getBoundingClientRect();
XhmikosR's avatar
XhmikosR committed
610
      this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth;
XhmikosR's avatar
Dist    
XhmikosR committed
611
612
613
614
      this._scrollbarWidth = this._getScrollbarWidth();
    };

    _proto._setScrollbar = function _setScrollbar() {
XhmikosR's avatar
XhmikosR committed
615
      var _this10 = this;
Mark Otto's avatar
dist    
Mark Otto committed
616

XhmikosR's avatar
Dist    
XhmikosR committed
617
618
619
      if (this._isBodyOverflowing) {
        // Note: DOMNode.style.paddingRight returns the actual value or '' if not set
        //   while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
XhmikosR's avatar
XhmikosR committed
620
        // Adjust fixed content padding
XhmikosR's avatar
XhmikosR committed
621
        SelectorEngine__default['default'].find(SELECTOR_FIXED_CONTENT).forEach(function (element) {
XhmikosR's avatar
Dist    
XhmikosR committed
622
          var actualPadding = element.style.paddingRight;
XhmikosR's avatar
XhmikosR committed
623
          var calculatedPadding = window.getComputedStyle(element)['padding-right'];
XhmikosR's avatar
XhmikosR committed
624
          Manipulator__default['default'].setDataAttribute(element, 'padding-right', actualPadding);
XhmikosR's avatar
XhmikosR committed
625
          element.style.paddingRight = Number.parseFloat(calculatedPadding) + _this10._scrollbarWidth + "px";
XhmikosR's avatar
Dist    
XhmikosR committed
626
627
        }); // Adjust sticky content margin

XhmikosR's avatar
XhmikosR committed
628
        SelectorEngine__default['default'].find(SELECTOR_STICKY_CONTENT).forEach(function (element) {
XhmikosR's avatar
Dist    
XhmikosR committed
629
          var actualMargin = element.style.marginRight;
XhmikosR's avatar
XhmikosR committed
630
          var calculatedMargin = window.getComputedStyle(element)['margin-right'];
XhmikosR's avatar
XhmikosR committed
631
          Manipulator__default['default'].setDataAttribute(element, 'margin-right', actualMargin);
XhmikosR's avatar
XhmikosR committed
632
          element.style.marginRight = Number.parseFloat(calculatedMargin) - _this10._scrollbarWidth + "px";
XhmikosR's avatar
Dist    
XhmikosR committed
633
634
635
        }); // Adjust body padding

        var actualPadding = document.body.style.paddingRight;
XhmikosR's avatar
XhmikosR committed
636
        var calculatedPadding = window.getComputedStyle(document.body)['padding-right'];
XhmikosR's avatar
XhmikosR committed
637
        Manipulator__default['default'].setDataAttribute(document.body, 'padding-right', actualPadding);
XhmikosR's avatar
XhmikosR committed
638
        document.body.style.paddingRight = Number.parseFloat(calculatedPadding) + this._scrollbarWidth + "px";
XhmikosR's avatar
Dist    
XhmikosR committed
639
      }
XhmikosR's avatar
Dist    
XhmikosR committed
640

XhmikosR's avatar
XhmikosR committed
641
      document.body.classList.add(CLASS_NAME_OPEN);
XhmikosR's avatar
Dist    
XhmikosR committed
642
    };
Mark Otto's avatar
grunt    
Mark Otto committed
643

XhmikosR's avatar
Dist    
XhmikosR committed
644
645
    _proto._resetScrollbar = function _resetScrollbar() {
      // Restore fixed content padding
XhmikosR's avatar
XhmikosR committed
646
647
      SelectorEngine__default['default'].find(SELECTOR_FIXED_CONTENT).forEach(function (element) {
        var padding = Manipulator__default['default'].getDataAttribute(element, 'padding-right');
XhmikosR's avatar
Dist    
XhmikosR committed
648

XhmikosR's avatar
XhmikosR committed
649
        if (typeof padding !== 'undefined') {
XhmikosR's avatar
XhmikosR committed
650
          Manipulator__default['default'].removeDataAttribute(element, 'padding-right');
XhmikosR's avatar
XhmikosR committed
651
652
653
654
          element.style.paddingRight = padding;
        }
      }); // Restore sticky content and navbar-toggler margin

XhmikosR's avatar
XhmikosR committed
655
656
      SelectorEngine__default['default'].find("" + SELECTOR_STICKY_CONTENT).forEach(function (element) {
        var margin = Manipulator__default['default'].getDataAttribute(element, 'margin-right');
XhmikosR's avatar
Dist    
XhmikosR committed
657
658

        if (typeof margin !== 'undefined') {
XhmikosR's avatar
XhmikosR committed
659
          Manipulator__default['default'].removeDataAttribute(element, 'margin-right');
XhmikosR's avatar
XhmikosR committed
660
          element.style.marginRight = margin;
XhmikosR's avatar
Dist    
XhmikosR committed
661
662
        }
      }); // Restore body padding
Mark Otto's avatar
dist    
Mark Otto committed
663

XhmikosR's avatar
XhmikosR committed
664
      var padding = Manipulator__default['default'].getDataAttribute(document.body, 'padding-right');
XhmikosR's avatar
XhmikosR committed
665

XhmikosR's avatar
Dist.    
XhmikosR committed
666
667
668
      if (typeof padding === 'undefined') {
        document.body.style.paddingRight = '';
      } else {
XhmikosR's avatar
XhmikosR committed
669
        Manipulator__default['default'].removeDataAttribute(document.body, 'padding-right');
XhmikosR's avatar
XhmikosR committed
670
671
        document.body.style.paddingRight = padding;
      }
XhmikosR's avatar
Dist    
XhmikosR committed
672
    };
Mark Otto's avatar
grunt    
Mark Otto committed
673

XhmikosR's avatar
Dist    
XhmikosR committed
674
675
676
    _proto._getScrollbarWidth = function _getScrollbarWidth() {
      // thx d.walsh
      var scrollDiv = document.createElement('div');
XhmikosR's avatar
XhmikosR committed
677
      scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER;
XhmikosR's avatar
Dist    
XhmikosR committed
678
679
680
681
      document.body.appendChild(scrollDiv);
      var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
      document.body.removeChild(scrollDiv);
      return scrollbarWidth;
Mark Otto's avatar
Mark Otto committed
682
683
    } // Static
    ;
Mark Otto's avatar
grunt    
Mark Otto committed
684

XhmikosR's avatar
XhmikosR committed
685
    Modal.jQueryInterface = function jQueryInterface(config, relatedTarget) {
XhmikosR's avatar
Dist    
XhmikosR committed
686
      return this.each(function () {
XhmikosR's avatar
XhmikosR committed
687
        var data = Data__default['default'].getData(this, DATA_KEY);
Mark Otto's avatar
grunt    
Mark Otto committed
688

XhmikosR's avatar
XhmikosR committed
689
        var _config = _extends({}, Default, Manipulator__default['default'].getDataAttributes(this), typeof config === 'object' && config ? config : {});
Mark Otto's avatar
dist    
Mark Otto committed
690

XhmikosR's avatar
Dist    
XhmikosR committed
691
692
693
        if (!data) {
          data = new Modal(this, _config);
        }
Mark Otto's avatar
dist    
Mark Otto committed
694

XhmikosR's avatar
Dist    
XhmikosR committed
695
696
697
        if (typeof config === 'string') {
          if (typeof data[config] === 'undefined') {
            throw new TypeError("No method named \"" + config + "\"");
Mark Otto's avatar
dist    
Mark Otto committed
698
          }
Mark Otto's avatar
dist    
Mark Otto committed
699

XhmikosR's avatar
Dist    
XhmikosR committed
700
701
702
          data[config](relatedTarget);
        } else if (_config.show) {
          data.show(relatedTarget);
Mark Otto's avatar
dist    
Mark Otto committed
703
        }
XhmikosR's avatar
Dist    
XhmikosR committed
704
705
      });
    };
706

XhmikosR's avatar
XhmikosR committed
707
    Modal.getInstance = function getInstance(element) {
XhmikosR's avatar
XhmikosR committed
708
      return Data__default['default'].getData(element, DATA_KEY);
XhmikosR's avatar
XhmikosR committed
709
710
    };

XhmikosR's avatar
Dist    
XhmikosR committed
711
712
713
714
715
716
717
718
719
720
721
    _createClass(Modal, null, [{
      key: "VERSION",
      get: function get() {
        return VERSION;
      }
    }, {
      key: "Default",
      get: function get() {
        return Default;
      }
    }]);
Mark Otto's avatar
dist    
Mark Otto committed
722

XhmikosR's avatar
Dist    
XhmikosR committed
723
724
725
726
727
728
729
    return Modal;
  }();
  /**
   * ------------------------------------------------------------------------
   * Data Api implementation
   * ------------------------------------------------------------------------
   */
730
731


XhmikosR's avatar
XhmikosR committed
732
  EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
XhmikosR's avatar
XhmikosR committed
733
    var _this11 = this;
734

XhmikosR's avatar
XhmikosR committed
735
    var target = getElementFromSelector(this);
XhmikosR's avatar
Dist    
XhmikosR committed
736
737
738
739
740

    if (this.tagName === 'A' || this.tagName === 'AREA') {
      event.preventDefault();
    }

XhmikosR's avatar
XhmikosR committed
741
    EventHandler__default['default'].one(target, EVENT_SHOW, function (showEvent) {
XhmikosR's avatar
XhmikosR committed
742
743
      if (showEvent.defaultPrevented) {
        // only register focus restorer if modal will actually get shown
XhmikosR's avatar
Dist    
XhmikosR committed
744
        return;
745
746
      }

XhmikosR's avatar
XhmikosR committed
747
      EventHandler__default['default'].one(target, EVENT_HIDDEN, function () {
XhmikosR's avatar
XhmikosR committed
748
749
        if (isVisible(_this11)) {
          _this11.focus();
750
751
752
        }
      });
    });
XhmikosR's avatar
XhmikosR committed
753
    var data = Data__default['default'].getData(target, DATA_KEY);
XhmikosR's avatar
XhmikosR committed
754
755

    if (!data) {
XhmikosR's avatar
XhmikosR committed
756
      var config = _extends({}, Manipulator__default['default'].getDataAttributes(target), Manipulator__default['default'].getDataAttributes(this));
757

XhmikosR's avatar
XhmikosR committed
758
759
      data = new Modal(target, config);
    }
760

XhmikosR's avatar
XhmikosR committed
761
    data.show(this);
XhmikosR's avatar
Dist    
XhmikosR committed
762
763
764
765
766
  });
  /**
   * ------------------------------------------------------------------------
   * jQuery
   * ------------------------------------------------------------------------
XhmikosR's avatar
XhmikosR committed
767
   * add .Modal to jQuery only if jQuery is present
XhmikosR's avatar
Dist    
XhmikosR committed
768
   */
769

XhmikosR's avatar
XhmikosR committed
770
771
772
  onDOMContentLoaded(function () {
    var $ = getjQuery();
    /* istanbul ignore if */
773

XhmikosR's avatar
XhmikosR committed
774
775
776
777
    if ($) {
      var JQUERY_NO_CONFLICT = $.fn[NAME];
      $.fn[NAME] = Modal.jQueryInterface;
      $.fn[NAME].Constructor = Modal;
Mark Otto's avatar
dist    
Mark Otto committed
778

XhmikosR's avatar
XhmikosR committed
779
780
781
782
783
784
      $.fn[NAME].noConflict = function () {
        $.fn[NAME] = JQUERY_NO_CONFLICT;
        return Modal.jQueryInterface;
      };
    }
  });
785
786

  return Modal;
Mark Otto's avatar
dist    
Mark Otto committed
787

XhmikosR's avatar
XhmikosR committed
788
})));
Mark Otto's avatar
dist    
Mark Otto committed
789
//# sourceMappingURL=modal.js.map