bootstrap.bundle.js 243 KB
Newer Older
XhmikosR's avatar
XhmikosR committed
6001
6002
6003
6004
6005
6006
6007
6008
6009
6010
6011
6012
6013
6014
6015
6016
6017
6018
6019
6020
6021
    if (allowedAttributeList.indexOf(attrName) !== -1) {
      if (uriAttrs.indexOf(attrName) !== -1) {
        return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN));
      }

      return true;
    }

    var regExp = allowedAttributeList.filter(function (attrRegex) {
      return attrRegex instanceof RegExp;
    }); // Check if a regular expression validates the attribute.

    for (var i = 0, l = regExp.length; i < l; i++) {
      if (attrName.match(regExp[i])) {
        return true;
      }
    }

    return false;
  };

XhmikosR's avatar
XhmikosR committed
6022
6023
6024
6025
6026
6027
6028
6029
6030
6031
6032
6033
6034
6035
6036
6037
6038
6039
6040
6041
6042
6043
6044
6045
6046
6047
6048
6049
6050
6051
6052
6053
6054
6055
  var DefaultWhitelist = {
    // Global attributes allowed on any supplied element below.
    '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],
    a: ['target', 'href', 'title', 'rel'],
    area: [],
    b: [],
    br: [],
    col: [],
    code: [],
    div: [],
    em: [],
    hr: [],
    h1: [],
    h2: [],
    h3: [],
    h4: [],
    h5: [],
    h6: [],
    i: [],
    img: ['src', 'alt', 'title', 'width', 'height'],
    li: [],
    ol: [],
    p: [],
    pre: [],
    s: [],
    small: [],
    span: [],
    sub: [],
    sup: [],
    strong: [],
    u: [],
    ul: []
  };
  function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {
XhmikosR's avatar
XhmikosR committed
6056
    if (!unsafeHtml.length) {
XhmikosR's avatar
XhmikosR committed
6057
6058
6059
6060
6061
6062
6063
6064
6065
6066
      return unsafeHtml;
    }

    if (sanitizeFn && typeof sanitizeFn === 'function') {
      return sanitizeFn(unsafeHtml);
    }

    var domParser = new window.DOMParser();
    var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');
    var whitelistKeys = Object.keys(whiteList);
XhmikosR's avatar
XhmikosR committed
6067
    var elements = makeArray(createdDocument.body.querySelectorAll('*'));
XhmikosR's avatar
XhmikosR committed
6068
6069
6070
6071
6072

    var _loop = function _loop(i, len) {
      var el = elements[i];
      var elName = el.nodeName.toLowerCase();

XhmikosR's avatar
XhmikosR committed
6073
      if (whitelistKeys.indexOf(elName) === -1) {
XhmikosR's avatar
XhmikosR committed
6074
6075
6076
6077
        el.parentNode.removeChild(el);
        return "continue";
      }

XhmikosR's avatar
XhmikosR committed
6078
      var attributeList = makeArray(el.attributes);
XhmikosR's avatar
XhmikosR committed
6079
6080
6081
6082
6083
6084
6085
6086
6087
6088
6089
6090
6091
6092
6093
6094
6095
      var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []);
      attributeList.forEach(function (attr) {
        if (!allowedAttribute(attr, whitelistedAttributes)) {
          el.removeAttribute(attr.nodeName);
        }
      });
    };

    for (var i = 0, len = elements.length; i < len; i++) {
      var _ret = _loop(i, len);

      if (_ret === "continue") continue;
    }

    return createdDocument.body.innerHTML;
  }

XhmikosR's avatar
Dist    
XhmikosR committed
6096
6097
6098
6099
6100
6101
6102
  /**
   * ------------------------------------------------------------------------
   * Constants
   * ------------------------------------------------------------------------
   */

  var NAME$6 = 'tooltip';
XhmikosR's avatar
XhmikosR committed
6103
  var VERSION$6 = '4.3.1';
XhmikosR's avatar
Dist    
XhmikosR committed
6104
6105
6106
6107
  var DATA_KEY$6 = 'bs.tooltip';
  var EVENT_KEY$6 = "." + DATA_KEY$6;
  var CLASS_PREFIX = 'bs-tooltip';
  var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
XhmikosR's avatar
XhmikosR committed
6108
  var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn'];
XhmikosR's avatar
Dist    
XhmikosR committed
6109
6110
6111
6112
6113
6114
6115
6116
6117
  var DefaultType$4 = {
    animation: 'boolean',
    template: 'string',
    title: '(string|element|function)',
    trigger: 'string',
    delay: '(number|object)',
    html: 'boolean',
    selector: '(string|boolean)',
    placement: '(string|function)',
Mark Otto's avatar
Mark Otto committed
6118
    offset: '(number|string|function)',
XhmikosR's avatar
Dist    
XhmikosR committed
6119
6120
    container: '(string|element|boolean)',
    fallbackPlacement: '(string|array)',
XhmikosR's avatar
XhmikosR committed
6121
6122
6123
6124
    boundary: '(string|element)',
    sanitize: 'boolean',
    sanitizeFn: '(null|function)',
    whiteList: 'object'
XhmikosR's avatar
Dist    
XhmikosR committed
6125
6126
6127
6128
6129
6130
6131
6132
6133
6134
  };
  var AttachmentMap$1 = {
    AUTO: 'auto',
    TOP: 'top',
    RIGHT: 'right',
    BOTTOM: 'bottom',
    LEFT: 'left'
  };
  var Default$4 = {
    animation: true,
XhmikosR's avatar
XhmikosR committed
6135
    template: '<div class="tooltip" role="tooltip">' + '<div class="tooltip-arrow"></div>' + '<div class="tooltip-inner"></div></div>',
XhmikosR's avatar
Dist    
XhmikosR committed
6136
6137
6138
6139
6140
6141
6142
6143
6144
    trigger: 'hover focus',
    title: '',
    delay: 0,
    html: false,
    selector: false,
    placement: 'top',
    offset: 0,
    container: false,
    fallbackPlacement: 'flip',
XhmikosR's avatar
XhmikosR committed
6145
6146
6147
6148
    boundary: 'scrollParent',
    sanitize: true,
    sanitizeFn: null,
    whiteList: DefaultWhitelist
XhmikosR's avatar
Dist    
XhmikosR committed
6149
6150
6151
6152
6153
  };
  var HoverState = {
    SHOW: 'show',
    OUT: 'out'
  };
XhmikosR's avatar
XhmikosR committed
6154
  var Event$7 = {
XhmikosR's avatar
Dist    
XhmikosR committed
6155
6156
6157
6158
6159
6160
6161
6162
6163
6164
6165
6166
6167
6168
6169
6170
6171
6172
    HIDE: "hide" + EVENT_KEY$6,
    HIDDEN: "hidden" + EVENT_KEY$6,
    SHOW: "show" + EVENT_KEY$6,
    SHOWN: "shown" + EVENT_KEY$6,
    INSERTED: "inserted" + EVENT_KEY$6,
    CLICK: "click" + EVENT_KEY$6,
    FOCUSIN: "focusin" + EVENT_KEY$6,
    FOCUSOUT: "focusout" + EVENT_KEY$6,
    MOUSEENTER: "mouseenter" + EVENT_KEY$6,
    MOUSELEAVE: "mouseleave" + EVENT_KEY$6
  };
  var ClassName$6 = {
    FADE: 'fade',
    SHOW: 'show'
  };
  var Selector$6 = {
    TOOLTIP: '.tooltip',
    TOOLTIP_INNER: '.tooltip-inner',
XhmikosR's avatar
XhmikosR committed
6173
    TOOLTIP_ARROW: '.tooltip-arrow'
XhmikosR's avatar
Dist    
XhmikosR committed
6174
6175
6176
6177
6178
6179
  };
  var Trigger = {
    HOVER: 'hover',
    FOCUS: 'focus',
    CLICK: 'click',
    MANUAL: 'manual'
Mark Otto's avatar
dist    
Mark Otto committed
6180
6181
    /**
     * ------------------------------------------------------------------------
XhmikosR's avatar
Dist    
XhmikosR committed
6182
     * Class Definition
Mark Otto's avatar
dist    
Mark Otto committed
6183
6184
     * ------------------------------------------------------------------------
     */
XhmikosR's avatar
Dist    
XhmikosR committed
6185
6186
6187
6188
6189
6190
6191

  };

  var Tooltip =
  /*#__PURE__*/
  function () {
    function Tooltip(element, config) {
Mark Otto's avatar
dist    
Mark Otto committed
6192
      /**
XhmikosR's avatar
Dist    
XhmikosR committed
6193
6194
       * Check for Popper dependency
       * Popper - https://popper.js.org
Mark Otto's avatar
dist    
Mark Otto committed
6195
       */
XhmikosR's avatar
Dist    
XhmikosR committed
6196
      if (typeof Popper === 'undefined') {
XhmikosR's avatar
XhmikosR committed
6197
        throw new TypeError('Bootstrap\'s tooltips require Popper.js (https://popper.js.org)');
XhmikosR's avatar
Dist    
XhmikosR committed
6198
      } // private
Mark Otto's avatar
dist    
Mark Otto committed
6199
6200


XhmikosR's avatar
Dist    
XhmikosR committed
6201
6202
6203
6204
6205
      this._isEnabled = true;
      this._timeout = 0;
      this._hoverState = '';
      this._activeTrigger = {};
      this._popper = null; // Protected
Mark Otto's avatar
dist  
Mark Otto committed
6206

XhmikosR's avatar
Dist    
XhmikosR committed
6207
6208
6209
      this.element = element;
      this.config = this._getConfig(config);
      this.tip = null;
Mark Otto's avatar
dist  
Mark Otto committed
6210

XhmikosR's avatar
Dist    
XhmikosR committed
6211
      this._setListeners();
XhmikosR's avatar
XhmikosR committed
6212
6213

      Data.setData(element, this.constructor.DATA_KEY, this);
XhmikosR's avatar
Dist    
XhmikosR committed
6214
    } // Getters
Mark Otto's avatar
dist  
Mark Otto committed
6215
6216


XhmikosR's avatar
Dist    
XhmikosR committed
6217
    var _proto = Tooltip.prototype;
Mark Otto's avatar
dist  
Mark Otto committed
6218

XhmikosR's avatar
Dist    
XhmikosR committed
6219
6220
6221
6222
    // Public
    _proto.enable = function enable() {
      this._isEnabled = true;
    };
Mark Otto's avatar
dist  
Mark Otto committed
6223

XhmikosR's avatar
Dist    
XhmikosR committed
6224
6225
6226
    _proto.disable = function disable() {
      this._isEnabled = false;
    };
Mark Otto's avatar
dist  
Mark Otto committed
6227

XhmikosR's avatar
Dist    
XhmikosR committed
6228
6229
6230
    _proto.toggleEnabled = function toggleEnabled() {
      this._isEnabled = !this._isEnabled;
    };
Mark Otto's avatar
dist  
Mark Otto committed
6231

XhmikosR's avatar
Dist    
XhmikosR committed
6232
6233
6234
6235
    _proto.toggle = function toggle(event) {
      if (!this._isEnabled) {
        return;
      }
Mark Otto's avatar
dist  
Mark Otto committed
6236

XhmikosR's avatar
Dist    
XhmikosR committed
6237
6238
      if (event) {
        var dataKey = this.constructor.DATA_KEY;
XhmikosR's avatar
XhmikosR committed
6239
        var context = Data.getData(event.delegateTarget, dataKey);
Mark Otto's avatar
dist  
Mark Otto committed
6240

XhmikosR's avatar
Dist    
XhmikosR committed
6241
        if (!context) {
XhmikosR's avatar
XhmikosR committed
6242
6243
          context = new this.constructor(event.delegateTarget, this._getDelegateConfig());
          Data.setData(event.delegateTarget, dataKey, context);
Mark Otto's avatar
dist  
Mark Otto committed
6244
6245
        }

XhmikosR's avatar
Dist    
XhmikosR committed
6246
        context._activeTrigger.click = !context._activeTrigger.click;
Mark Otto's avatar
dist    
Mark Otto committed
6247

XhmikosR's avatar
Dist    
XhmikosR committed
6248
6249
        if (context._isWithActiveTrigger()) {
          context._enter(null, context);
Mark Otto's avatar
dist  
Mark Otto committed
6250
        } else {
XhmikosR's avatar
Dist    
XhmikosR committed
6251
6252
6253
          context._leave(null, context);
        }
      } else {
XhmikosR's avatar
XhmikosR committed
6254
        if (this.getTipElement().classList.contains(ClassName$6.SHOW)) {
XhmikosR's avatar
Dist    
XhmikosR committed
6255
          this._leave(null, this);
Mark Otto's avatar
dist  
Mark Otto committed
6256

XhmikosR's avatar
Dist    
XhmikosR committed
6257
          return;
Mark Otto's avatar
dist    
Mark Otto committed
6258
        }
Mark Otto's avatar
dist  
Mark Otto committed
6259

XhmikosR's avatar
Dist    
XhmikosR committed
6260
6261
6262
        this._enter(null, this);
      }
    };
Mark Otto's avatar
dist  
Mark Otto committed
6263

XhmikosR's avatar
Dist    
XhmikosR committed
6264
6265
    _proto.dispose = function dispose() {
      clearTimeout(this._timeout);
XhmikosR's avatar
XhmikosR committed
6266
6267
6268
      Data.removeData(this.element, this.constructor.DATA_KEY);
      EventHandler.off(this.element, this.constructor.EVENT_KEY);
      EventHandler.off(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal');
Mark Otto's avatar
dist  
Mark Otto committed
6269

XhmikosR's avatar
Dist    
XhmikosR committed
6270
      if (this.tip) {
XhmikosR's avatar
XhmikosR committed
6271
        this.tip.parentNode.removeChild(this.tip);
XhmikosR's avatar
Dist    
XhmikosR committed
6272
      }
Mark Otto's avatar
dist    
Mark Otto committed
6273

XhmikosR's avatar
Dist    
XhmikosR committed
6274
6275
6276
6277
      this._isEnabled = null;
      this._timeout = null;
      this._hoverState = null;
      this._activeTrigger = null;
Mark Otto's avatar
dist  
Mark Otto committed
6278

XhmikosR's avatar
Dist    
XhmikosR committed
6279
6280
6281
      if (this._popper !== null) {
        this._popper.destroy();
      }
Mark Otto's avatar
dist  
Mark Otto committed
6282

XhmikosR's avatar
Dist    
XhmikosR committed
6283
6284
6285
6286
6287
      this._popper = null;
      this.element = null;
      this.config = null;
      this.tip = null;
    };
Mark Otto's avatar
dist  
Mark Otto committed
6288

XhmikosR's avatar
Dist    
XhmikosR committed
6289
6290
    _proto.show = function show() {
      var _this = this;
Mark Otto's avatar
dist  
Mark Otto committed
6291

XhmikosR's avatar
XhmikosR committed
6292
      if (this.element.style.display === 'none') {
XhmikosR's avatar
Dist    
XhmikosR committed
6293
6294
        throw new Error('Please use show on visible elements');
      }
Mark Otto's avatar
dist    
Mark Otto committed
6295

XhmikosR's avatar
Dist    
XhmikosR committed
6296
      if (this.isWithContent() && this._isEnabled) {
XhmikosR's avatar
XhmikosR committed
6297
6298
6299
        var showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW);
        var shadowRoot = findShadowRoot(this.element);
        var isInTheDom = shadowRoot !== null ? shadowRoot.contains(this.element) : this.element.ownerDocument.documentElement.contains(this.element);
Mark Otto's avatar
dist  
Mark Otto committed
6300

XhmikosR's avatar
XhmikosR committed
6301
        if (showEvent.defaultPrevented || !isInTheDom) {
XhmikosR's avatar
Dist    
XhmikosR committed
6302
6303
          return;
        }
Mark Otto's avatar
dist  
Mark Otto committed
6304

XhmikosR's avatar
Dist    
XhmikosR committed
6305
        var tip = this.getTipElement();
XhmikosR's avatar
XhmikosR committed
6306
        var tipId = getUID(this.constructor.NAME);
XhmikosR's avatar
Dist    
XhmikosR committed
6307
6308
6309
        tip.setAttribute('id', tipId);
        this.element.setAttribute('aria-describedby', tipId);
        this.setContent();
Mark Otto's avatar
dist  
Mark Otto committed
6310

XhmikosR's avatar
Dist    
XhmikosR committed
6311
        if (this.config.animation) {
XhmikosR's avatar
XhmikosR committed
6312
          tip.classList.add(ClassName$6.FADE);
XhmikosR's avatar
Dist    
XhmikosR committed
6313
        }
Mark Otto's avatar
dist  
Mark Otto committed
6314

XhmikosR's avatar
Dist    
XhmikosR committed
6315
        var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
Mark Otto's avatar
dist  
Mark Otto committed
6316

XhmikosR's avatar
Dist    
XhmikosR committed
6317
        var attachment = this._getAttachment(placement);
Mark Otto's avatar
dist  
Mark Otto committed
6318

XhmikosR's avatar
Dist    
XhmikosR committed
6319
        this.addAttachmentClass(attachment);
Mark Otto's avatar
dist    
Mark Otto committed
6320
6321
6322

        var container = this._getContainer();

XhmikosR's avatar
XhmikosR committed
6323
        Data.setData(tip, this.constructor.DATA_KEY, this);
Mark Otto's avatar
dist  
Mark Otto committed
6324

XhmikosR's avatar
XhmikosR committed
6325
6326
        if (!this.element.ownerDocument.documentElement.contains(this.tip)) {
          container.appendChild(tip);
XhmikosR's avatar
Dist    
XhmikosR committed
6327
6328
        }

XhmikosR's avatar
XhmikosR committed
6329
        EventHandler.trigger(this.element, this.constructor.Event.INSERTED);
XhmikosR's avatar
Dist    
XhmikosR committed
6330
6331
6332
        this._popper = new Popper(this.element, tip, {
          placement: attachment,
          modifiers: {
Mark Otto's avatar
Mark Otto committed
6333
            offset: this._getOffset(),
XhmikosR's avatar
Dist    
XhmikosR committed
6334
6335
6336
6337
            flip: {
              behavior: this.config.fallbackPlacement
            },
            arrow: {
XhmikosR's avatar
XhmikosR committed
6338
              element: Selector$6.TOOLTIP_ARROW
Mark Otto's avatar
dist    
Mark Otto committed
6339
            },
XhmikosR's avatar
Dist    
XhmikosR committed
6340
6341
6342
6343
6344
6345
            preventOverflow: {
              boundariesElement: this.config.boundary
            }
          },
          onCreate: function onCreate(data) {
            if (data.originalPlacement !== data.placement) {
Mark Otto's avatar
dist  
Mark Otto committed
6346
6347
              _this._handlePopperPlacementChange(data);
            }
XhmikosR's avatar
Dist    
XhmikosR committed
6348
6349
          },
          onUpdate: function onUpdate(data) {
XhmikosR's avatar
Dist    
XhmikosR committed
6350
            return _this._handlePopperPlacementChange(data);
Mark Otto's avatar
dist  
Mark Otto committed
6351
          }
XhmikosR's avatar
Dist    
XhmikosR committed
6352
        });
XhmikosR's avatar
XhmikosR committed
6353
        tip.classList.add(ClassName$6.SHOW); // If this is a touch-enabled device we add extra
XhmikosR's avatar
Dist    
XhmikosR committed
6354
6355
6356
        // empty mouseover listeners to the body's immediate children;
        // only needed because of broken event delegation on iOS
        // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
Mark Otto's avatar
dist    
Mark Otto committed
6357

XhmikosR's avatar
Dist    
XhmikosR committed
6358
        if ('ontouchstart' in document.documentElement) {
XhmikosR's avatar
XhmikosR committed
6359
6360
6361
          makeArray(document.body.children).forEach(function (element) {
            EventHandler.on(element, 'mouseover', noop());
          });
XhmikosR's avatar
Dist    
XhmikosR committed
6362
        }
Mark Otto's avatar
dist  
Mark Otto committed
6363

XhmikosR's avatar
Dist    
XhmikosR committed
6364
6365
6366
6367
        var complete = function complete() {
          if (_this.config.animation) {
            _this._fixTransition();
          }
Mark Otto's avatar
dist    
Mark Otto committed
6368

XhmikosR's avatar
Dist    
XhmikosR committed
6369
6370
          var prevHoverState = _this._hoverState;
          _this._hoverState = null;
XhmikosR's avatar
XhmikosR committed
6371
          EventHandler.trigger(_this.element, _this.constructor.Event.SHOWN);
Mark Otto's avatar
dist  
Mark Otto committed
6372

XhmikosR's avatar
Dist    
XhmikosR committed
6373
6374
          if (prevHoverState === HoverState.OUT) {
            _this._leave(null, _this);
Mark Otto's avatar
dist  
Mark Otto committed
6375
          }
XhmikosR's avatar
Dist    
XhmikosR committed
6376
6377
        };

XhmikosR's avatar
XhmikosR committed
6378
6379
6380
6381
        if (this.tip.classList.contains(ClassName$6.FADE)) {
          var transitionDuration = getTransitionDurationFromElement(this.tip);
          EventHandler.one(this.tip, TRANSITION_END, complete);
          emulateTransitionEnd(this.tip, transitionDuration);
XhmikosR's avatar
Dist    
XhmikosR committed
6382
6383
        } else {
          complete();
Mark Otto's avatar
dist  
Mark Otto committed
6384
        }
XhmikosR's avatar
Dist    
XhmikosR committed
6385
6386
      }
    };
Mark Otto's avatar
dist  
Mark Otto committed
6387

XhmikosR's avatar
Dist    
XhmikosR committed
6388
6389
    _proto.hide = function hide(callback) {
      var _this2 = this;
Mark Otto's avatar
dist  
Mark Otto committed
6390

XhmikosR's avatar
Dist    
XhmikosR committed
6391
      var tip = this.getTipElement();
Mark Otto's avatar
dist    
Mark Otto committed
6392

XhmikosR's avatar
Dist    
XhmikosR committed
6393
6394
6395
6396
      var complete = function complete() {
        if (_this2._hoverState !== HoverState.SHOW && tip.parentNode) {
          tip.parentNode.removeChild(tip);
        }
Mark Otto's avatar
dist  
Mark Otto committed
6397

XhmikosR's avatar
Dist    
XhmikosR committed
6398
        _this2._cleanTipClass();
Mark Otto's avatar
dist    
Mark Otto committed
6399

XhmikosR's avatar
Dist    
XhmikosR committed
6400
        _this2.element.removeAttribute('aria-describedby');
Mark Otto's avatar
dist    
Mark Otto committed
6401

XhmikosR's avatar
XhmikosR committed
6402
        EventHandler.trigger(_this2.element, _this2.constructor.Event.HIDDEN);
Mark Otto's avatar
dist    
Mark Otto committed
6403

XhmikosR's avatar
Dist    
XhmikosR committed
6404
6405
6406
        if (_this2._popper !== null) {
          _this2._popper.destroy();
        }
Mark Otto's avatar
dist  
Mark Otto committed
6407

XhmikosR's avatar
Dist    
XhmikosR committed
6408
6409
6410
6411
        if (callback) {
          callback();
        }
      };
Mark Otto's avatar
dist  
Mark Otto committed
6412

XhmikosR's avatar
XhmikosR committed
6413
      var hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE);
Mark Otto's avatar
dist  
Mark Otto committed
6414

XhmikosR's avatar
XhmikosR committed
6415
      if (hideEvent.defaultPrevented) {
XhmikosR's avatar
Dist    
XhmikosR committed
6416
6417
        return;
      }
Mark Otto's avatar
dist  
Mark Otto committed
6418

XhmikosR's avatar
XhmikosR committed
6419
      tip.classList.remove(ClassName$6.SHOW); // If this is a touch-enabled device we remove the extra
XhmikosR's avatar
Dist    
XhmikosR committed
6420
      // empty mouseover listeners we added for iOS support
Mark Otto's avatar
dist    
Mark Otto committed
6421

XhmikosR's avatar
Dist    
XhmikosR committed
6422
      if ('ontouchstart' in document.documentElement) {
XhmikosR's avatar
XhmikosR committed
6423
6424
6425
        makeArray(document.body.children).forEach(function (element) {
          return EventHandler.off(element, 'mouseover', noop);
        });
XhmikosR's avatar
Dist    
XhmikosR committed
6426
      }
Mark Otto's avatar
dist  
Mark Otto committed
6427

XhmikosR's avatar
Dist    
XhmikosR committed
6428
6429
6430
      this._activeTrigger[Trigger.CLICK] = false;
      this._activeTrigger[Trigger.FOCUS] = false;
      this._activeTrigger[Trigger.HOVER] = false;
Mark Otto's avatar
dist  
Mark Otto committed
6431

XhmikosR's avatar
XhmikosR committed
6432
6433
6434
6435
      if (this.tip.classList.contains(ClassName$6.FADE)) {
        var transitionDuration = getTransitionDurationFromElement(tip);
        EventHandler.one(tip, TRANSITION_END, complete);
        emulateTransitionEnd(tip, transitionDuration);
XhmikosR's avatar
Dist    
XhmikosR committed
6436
6437
6438
      } else {
        complete();
      }
Mark Otto's avatar
dist  
Mark Otto committed
6439

XhmikosR's avatar
Dist    
XhmikosR committed
6440
6441
      this._hoverState = '';
    };
Mark Otto's avatar
dist  
Mark Otto committed
6442

XhmikosR's avatar
Dist    
XhmikosR committed
6443
6444
6445
6446
    _proto.update = function update() {
      if (this._popper !== null) {
        this._popper.scheduleUpdate();
      }
Mark Otto's avatar
Mark Otto committed
6447
6448
    } // Protected
    ;
Mark Otto's avatar
dist  
Mark Otto committed
6449

XhmikosR's avatar
Dist    
XhmikosR committed
6450
6451
6452
    _proto.isWithContent = function isWithContent() {
      return Boolean(this.getTitle());
    };
Mark Otto's avatar
dist  
Mark Otto committed
6453

XhmikosR's avatar
Dist    
XhmikosR committed
6454
    _proto.addAttachmentClass = function addAttachmentClass(attachment) {
XhmikosR's avatar
XhmikosR committed
6455
      this.getTipElement().classList.add(CLASS_PREFIX + "-" + attachment);
XhmikosR's avatar
Dist    
XhmikosR committed
6456
    };
Mark Otto's avatar
dist  
Mark Otto committed
6457

XhmikosR's avatar
Dist    
XhmikosR committed
6458
    _proto.getTipElement = function getTipElement() {
XhmikosR's avatar
XhmikosR committed
6459
6460
6461
6462
6463
6464
6465
      if (this.tip) {
        return this.tip;
      }

      var element = document.createElement('div');
      element.innerHTML = this.config.template;
      this.tip = element.children[0];
XhmikosR's avatar
Dist    
XhmikosR committed
6466
6467
      return this.tip;
    };
Mark Otto's avatar
dist  
Mark Otto committed
6468

XhmikosR's avatar
Dist    
XhmikosR committed
6469
6470
    _proto.setContent = function setContent() {
      var tip = this.getTipElement();
XhmikosR's avatar
XhmikosR committed
6471
6472
6473
      this.setElementContent(SelectorEngine.findOne(Selector$6.TOOLTIP_INNER, tip), this.getTitle());
      tip.classList.remove(ClassName$6.FADE);
      tip.classList.remove(ClassName$6.SHOW);
XhmikosR's avatar
Dist    
XhmikosR committed
6474
    };
Mark Otto's avatar
dist  
Mark Otto committed
6475

XhmikosR's avatar
XhmikosR committed
6476
6477
6478
6479
6480
    _proto.setElementContent = function setElementContent(element, content) {
      if (element === null) {
        return;
      }

XhmikosR's avatar
Dist    
XhmikosR committed
6481
      if (typeof content === 'object' && (content.nodeType || content.jquery)) {
XhmikosR's avatar
XhmikosR committed
6482
6483
6484
6485
6486
        if (content.jquery) {
          content = content[0];
        } // content is a DOM node or a jQuery


XhmikosR's avatar
XhmikosR committed
6487
        if (this.config.html) {
XhmikosR's avatar
XhmikosR committed
6488
6489
6490
          if (content.parentNode !== element) {
            element.innerHTML = '';
            element.appendChild(content);
Mark Otto's avatar
dist  
Mark Otto committed
6491
6492
          }
        } else {
XhmikosR's avatar
XhmikosR committed
6493
          element.innerText = content.textContent;
Mark Otto's avatar
dist  
Mark Otto committed
6494
        }
XhmikosR's avatar
XhmikosR committed
6495
6496
6497
6498
6499
6500
6501
6502
6503

        return;
      }

      if (this.config.html) {
        if (this.config.sanitize) {
          content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn);
        }

XhmikosR's avatar
XhmikosR committed
6504
        element.innerHTML = content;
XhmikosR's avatar
Dist    
XhmikosR committed
6505
      } else {
XhmikosR's avatar
XhmikosR committed
6506
        element.innerText = content;
XhmikosR's avatar
Dist    
XhmikosR committed
6507
6508
      }
    };
Mark Otto's avatar
dist  
Mark Otto committed
6509

XhmikosR's avatar
Dist    
XhmikosR committed
6510
6511
    _proto.getTitle = function getTitle() {
      var title = this.element.getAttribute('data-original-title');
Mark Otto's avatar
dist  
Mark Otto committed
6512

XhmikosR's avatar
Dist    
XhmikosR committed
6513
6514
6515
      if (!title) {
        title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;
      }
Mark Otto's avatar
dist  
Mark Otto committed
6516

XhmikosR's avatar
Dist    
XhmikosR committed
6517
      return title;
Mark Otto's avatar
Mark Otto committed
6518
6519
    } // Private
    ;
Mark Otto's avatar
dist  
Mark Otto committed
6520

Mark Otto's avatar
Mark Otto committed
6521
6522
6523
6524
6525
6526
6527
6528
6529
6530
6531
6532
6533
6534
6535
6536
6537
    _proto._getOffset = function _getOffset() {
      var _this3 = this;

      var offset = {};

      if (typeof this.config.offset === 'function') {
        offset.fn = function (data) {
          data.offsets = _objectSpread({}, data.offsets, _this3.config.offset(data.offsets, _this3.element) || {});
          return data;
        };
      } else {
        offset.offset = this.config.offset;
      }

      return offset;
    };

Mark Otto's avatar
dist    
Mark Otto committed
6538
6539
6540
6541
6542
    _proto._getContainer = function _getContainer() {
      if (this.config.container === false) {
        return document.body;
      }

XhmikosR's avatar
XhmikosR committed
6543
6544
      if (isElement(this.config.container)) {
        return this.config.container;
Mark Otto's avatar
dist    
Mark Otto committed
6545
6546
      }

XhmikosR's avatar
XhmikosR committed
6547
      return SelectorEngine.findOne(this.config.container);
Mark Otto's avatar
dist    
Mark Otto committed
6548
6549
    };

XhmikosR's avatar
Dist    
XhmikosR committed
6550
6551
6552
    _proto._getAttachment = function _getAttachment(placement) {
      return AttachmentMap$1[placement.toUpperCase()];
    };
Mark Otto's avatar
dist    
Mark Otto committed
6553

XhmikosR's avatar
Dist    
XhmikosR committed
6554
    _proto._setListeners = function _setListeners() {
Mark Otto's avatar
Mark Otto committed
6555
      var _this4 = this;
Mark Otto's avatar
dist  
Mark Otto committed
6556

XhmikosR's avatar
Dist    
XhmikosR committed
6557
6558
6559
      var triggers = this.config.trigger.split(' ');
      triggers.forEach(function (trigger) {
        if (trigger === 'click') {
XhmikosR's avatar
XhmikosR committed
6560
          EventHandler.on(_this4.element, _this4.constructor.Event.CLICK, _this4.config.selector, function (event) {
Mark Otto's avatar
Mark Otto committed
6561
            return _this4.toggle(event);
Mark Otto's avatar
dist  
Mark Otto committed
6562
          });
XhmikosR's avatar
Dist    
XhmikosR committed
6563
        } else if (trigger !== Trigger.MANUAL) {
Mark Otto's avatar
Mark Otto committed
6564
6565
          var eventIn = trigger === Trigger.HOVER ? _this4.constructor.Event.MOUSEENTER : _this4.constructor.Event.FOCUSIN;
          var eventOut = trigger === Trigger.HOVER ? _this4.constructor.Event.MOUSELEAVE : _this4.constructor.Event.FOCUSOUT;
XhmikosR's avatar
XhmikosR committed
6566
          EventHandler.on(_this4.element, eventIn, _this4.config.selector, function (event) {
Mark Otto's avatar
Mark Otto committed
6567
            return _this4._enter(event);
XhmikosR's avatar
XhmikosR committed
6568
6569
          });
          EventHandler.on(_this4.element, eventOut, _this4.config.selector, function (event) {
Mark Otto's avatar
Mark Otto committed
6570
            return _this4._leave(event);
Mark Otto's avatar
dist  
Mark Otto committed
6571
6572
          });
        }
XhmikosR's avatar
Dist    
XhmikosR committed
6573
      });
XhmikosR's avatar
XhmikosR committed
6574
      EventHandler.on(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal', function () {
Mark Otto's avatar
Mark Otto committed
6575
6576
        if (_this4.element) {
          _this4.hide();
XhmikosR's avatar
Dist    
XhmikosR committed
6577
6578
        }
      });
Mark Otto's avatar
dist  
Mark Otto committed
6579

XhmikosR's avatar
Dist    
XhmikosR committed
6580
6581
6582
6583
6584
6585
6586
6587
6588
      if (this.config.selector) {
        this.config = _objectSpread({}, this.config, {
          trigger: 'manual',
          selector: ''
        });
      } else {
        this._fixTitle();
      }
    };
Mark Otto's avatar
dist  
Mark Otto committed
6589

XhmikosR's avatar
Dist    
XhmikosR committed
6590
6591
    _proto._fixTitle = function _fixTitle() {
      var titleType = typeof this.element.getAttribute('data-original-title');
Mark Otto's avatar
dist    
Mark Otto committed
6592

XhmikosR's avatar
Dist    
XhmikosR committed
6593
6594
6595
6596
6597
      if (this.element.getAttribute('title') || titleType !== 'string') {
        this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');
        this.element.setAttribute('title', '');
      }
    };
Mark Otto's avatar
dist  
Mark Otto committed
6598

XhmikosR's avatar
Dist    
XhmikosR committed
6599
6600
    _proto._enter = function _enter(event, context) {
      var dataKey = this.constructor.DATA_KEY;
XhmikosR's avatar
XhmikosR committed
6601
      context = context || Data.getData(event.delegateTarget, dataKey);
Mark Otto's avatar
dist  
Mark Otto committed
6602

XhmikosR's avatar
Dist    
XhmikosR committed
6603
      if (!context) {
XhmikosR's avatar
XhmikosR committed
6604
6605
        context = new this.constructor(event.delegateTarget, this._getDelegateConfig());
        Data.setData(event.delegateTarget, dataKey, context);
XhmikosR's avatar
Dist    
XhmikosR committed
6606
      }
Mark Otto's avatar
dist  
Mark Otto committed
6607

XhmikosR's avatar
Dist    
XhmikosR committed
6608
6609
6610
      if (event) {
        context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true;
      }
Mark Otto's avatar
dist  
Mark Otto committed
6611

XhmikosR's avatar
XhmikosR committed
6612
      if (context.getTipElement().classList.contains(ClassName$6.SHOW) || context._hoverState === HoverState.SHOW) {
Mark Otto's avatar
dist  
Mark Otto committed
6613
        context._hoverState = HoverState.SHOW;
XhmikosR's avatar
Dist    
XhmikosR committed
6614
6615
        return;
      }
Mark Otto's avatar
dist  
Mark Otto committed
6616

XhmikosR's avatar
Dist    
XhmikosR committed
6617
6618
6619
6620
6621
6622
6623
6624
6625
6626
      clearTimeout(context._timeout);
      context._hoverState = HoverState.SHOW;

      if (!context.config.delay || !context.config.delay.show) {
        context.show();
        return;
      }

      context._timeout = setTimeout(function () {
        if (context._hoverState === HoverState.SHOW) {
Mark Otto's avatar
dist  
Mark Otto committed
6627
6628
          context.show();
        }
XhmikosR's avatar
Dist    
XhmikosR committed
6629
6630
      }, context.config.delay.show);
    };
Mark Otto's avatar
dist  
Mark Otto committed
6631

XhmikosR's avatar
Dist    
XhmikosR committed
6632
6633
    _proto._leave = function _leave(event, context) {
      var dataKey = this.constructor.DATA_KEY;
XhmikosR's avatar
XhmikosR committed
6634
      context = context || Data.getData(event.delegateTarget, dataKey);
Mark Otto's avatar
dist  
Mark Otto committed
6635

XhmikosR's avatar
Dist    
XhmikosR committed
6636
      if (!context) {
XhmikosR's avatar
XhmikosR committed
6637
6638
        context = new this.constructor(event.delegateTarget, this._getDelegateConfig());
        Data.setData(event.delegateTarget, dataKey, context);
XhmikosR's avatar
Dist    
XhmikosR committed
6639
      }
Mark Otto's avatar
dist  
Mark Otto committed
6640

XhmikosR's avatar
Dist    
XhmikosR committed
6641
6642
6643
      if (event) {
        context._activeTrigger[event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false;
      }
Mark Otto's avatar
dist  
Mark Otto committed
6644

XhmikosR's avatar
Dist    
XhmikosR committed
6645
6646
6647
      if (context._isWithActiveTrigger()) {
        return;
      }
Mark Otto's avatar
dist  
Mark Otto committed
6648

XhmikosR's avatar
Dist    
XhmikosR committed
6649
6650
      clearTimeout(context._timeout);
      context._hoverState = HoverState.OUT;
Mark Otto's avatar
dist  
Mark Otto committed
6651

XhmikosR's avatar
Dist    
XhmikosR committed
6652
6653
6654
6655
      if (!context.config.delay || !context.config.delay.hide) {
        context.hide();
        return;
      }
Mark Otto's avatar
dist  
Mark Otto committed
6656

XhmikosR's avatar
Dist    
XhmikosR committed
6657
6658
      context._timeout = setTimeout(function () {
        if (context._hoverState === HoverState.OUT) {
Mark Otto's avatar
dist  
Mark Otto committed
6659
6660
          context.hide();
        }
XhmikosR's avatar
Dist    
XhmikosR committed
6661
6662
      }, context.config.delay.hide);
    };
Mark Otto's avatar
dist  
Mark Otto committed
6663

XhmikosR's avatar
Dist    
XhmikosR committed
6664
6665
6666
6667
    _proto._isWithActiveTrigger = function _isWithActiveTrigger() {
      for (var trigger in this._activeTrigger) {
        if (this._activeTrigger[trigger]) {
          return true;
Mark Otto's avatar
dist  
Mark Otto committed
6668
        }
XhmikosR's avatar
Dist    
XhmikosR committed
6669
      }
Mark Otto's avatar
dist  
Mark Otto committed
6670

XhmikosR's avatar
Dist    
XhmikosR committed
6671
6672
      return false;
    };
Mark Otto's avatar
dist  
Mark Otto committed
6673

XhmikosR's avatar
Dist    
XhmikosR committed
6674
    _proto._getConfig = function _getConfig(config) {
XhmikosR's avatar
XhmikosR committed
6675
      var dataAttributes = Manipulator.getDataAttributes(this.element);
XhmikosR's avatar
XhmikosR committed
6676
6677
6678
6679
6680
      Object.keys(dataAttributes).forEach(function (dataAttr) {
        if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {
          delete dataAttributes[dataAttr];
        }
      });
XhmikosR's avatar
XhmikosR committed
6681
6682
6683
6684
6685

      if (config && typeof config.container === 'object' && config.container.jquery) {
        config.container = config.container[0];
      }

XhmikosR's avatar
XhmikosR committed
6686
      config = _objectSpread({}, this.constructor.Default, dataAttributes, typeof config === 'object' && config ? config : {});
Mark Otto's avatar
dist  
Mark Otto committed
6687

XhmikosR's avatar
Dist    
XhmikosR committed
6688
6689
6690
6691
6692
6693
      if (typeof config.delay === 'number') {
        config.delay = {
          show: config.delay,
          hide: config.delay
        };
      }
Mark Otto's avatar
dist  
Mark Otto committed
6694

XhmikosR's avatar
Dist    
XhmikosR committed
6695
6696
6697
      if (typeof config.title === 'number') {
        config.title = config.title.toString();
      }
Mark Otto's avatar
dist  
Mark Otto committed
6698

XhmikosR's avatar
Dist    
XhmikosR committed
6699
6700
6701
      if (typeof config.content === 'number') {
        config.content = config.content.toString();
      }
Mark Otto's avatar
dist  
Mark Otto committed
6702

XhmikosR's avatar
XhmikosR committed
6703
      typeCheckConfig(NAME$6, config, this.constructor.DefaultType);
XhmikosR's avatar
XhmikosR committed
6704
6705
6706
6707
6708

      if (config.sanitize) {
        config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn);
      }

XhmikosR's avatar
Dist    
XhmikosR committed
6709
6710
      return config;
    };
Mark Otto's avatar
dist  
Mark Otto committed
6711

XhmikosR's avatar
Dist    
XhmikosR committed
6712
6713
    _proto._getDelegateConfig = function _getDelegateConfig() {
      var config = {};
Mark Otto's avatar
dist  
Mark Otto committed
6714

XhmikosR's avatar
Dist    
XhmikosR committed
6715
6716
6717
6718
      if (this.config) {
        for (var key in this.config) {
          if (this.constructor.Default[key] !== this.config[key]) {
            config[key] = this.config[key];
Mark Otto's avatar
dist  
Mark Otto committed
6719
6720
          }
        }
XhmikosR's avatar
Dist    
XhmikosR committed
6721
      }
Mark Otto's avatar
dist  
Mark Otto committed
6722

XhmikosR's avatar
Dist    
XhmikosR committed
6723
6724
      return config;
    };
Mark Otto's avatar
dist    
Mark Otto committed
6725

XhmikosR's avatar
Dist    
XhmikosR committed
6726
    _proto._cleanTipClass = function _cleanTipClass() {
XhmikosR's avatar
XhmikosR committed
6727
6728
      var tip = this.getTipElement();
      var tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX);
Mark Otto's avatar
dist  
Mark Otto committed
6729

XhmikosR's avatar
Dist    
XhmikosR committed
6730
      if (tabClass !== null && tabClass.length) {
XhmikosR's avatar
XhmikosR committed
6731
6732
6733
6734
6735
        tabClass.map(function (token) {
          return token.trim();
        }).forEach(function (tClass) {
          return tip.classList.remove(tClass);
        });
XhmikosR's avatar
Dist    
XhmikosR committed
6736
6737
      }
    };
Mark Otto's avatar
dist    
Mark Otto committed
6738

XhmikosR's avatar
Dist    
XhmikosR committed
6739
6740
6741
    _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) {
      var popperInstance = popperData.instance;
      this.tip = popperInstance.popper;
Mark Otto's avatar
dist    
Mark Otto committed
6742

XhmikosR's avatar
Dist    
XhmikosR committed
6743
      this._cleanTipClass();
Mark Otto's avatar
dist  
Mark Otto committed
6744

XhmikosR's avatar
Dist    
XhmikosR committed
6745
6746
      this.addAttachmentClass(this._getAttachment(popperData.placement));
    };
Mark Otto's avatar
dist    
Mark Otto committed
6747

XhmikosR's avatar
Dist    
XhmikosR committed
6748
6749
6750
    _proto._fixTransition = function _fixTransition() {
      var tip = this.getTipElement();
      var initConfigAnimation = this.config.animation;
Mark Otto's avatar
dist    
Mark Otto committed
6751

XhmikosR's avatar
Dist    
XhmikosR committed
6752
6753
6754
      if (tip.getAttribute('x-placement') !== null) {
        return;
      }
Mark Otto's avatar
dist    
Mark Otto committed
6755

XhmikosR's avatar
XhmikosR committed
6756
      tip.classList.remove(ClassName$6.FADE);
XhmikosR's avatar
Dist    
XhmikosR committed
6757
6758
6759
6760
      this.config.animation = false;
      this.hide();
      this.show();
      this.config.animation = initConfigAnimation;
Mark Otto's avatar
Mark Otto committed
6761
6762
    } // Static
    ;
Mark Otto's avatar
dist  
Mark Otto committed
6763

XhmikosR's avatar
Dist    
XhmikosR committed
6764
6765
    Tooltip._jQueryInterface = function _jQueryInterface(config) {
      return this.each(function () {
XhmikosR's avatar
XhmikosR committed
6766
        var data = Data.getData(this, DATA_KEY$6);
Mark Otto's avatar
dist    
Mark Otto committed
6767

XhmikosR's avatar
Dist    
XhmikosR committed
6768
        var _config = typeof config === 'object' && config;
Mark Otto's avatar
dist  
Mark Otto committed
6769

XhmikosR's avatar
Dist    
XhmikosR committed
6770
6771
6772
        if (!data && /dispose|hide/.test(config)) {
          return;
        }
Mark Otto's avatar
dist  
Mark Otto committed
6773

XhmikosR's avatar
Dist    
XhmikosR committed
6774
6775
6776
        if (!data) {
          data = new Tooltip(this, _config);
        }
Mark Otto's avatar
dist  
Mark Otto committed
6777

XhmikosR's avatar
Dist    
XhmikosR committed
6778
6779
6780
        if (typeof config === 'string') {
          if (typeof data[config] === 'undefined') {
            throw new TypeError("No method named \"" + config + "\"");
Mark Otto's avatar
dist  
Mark Otto committed
6781
          }
Mark Otto's avatar
dist    
Mark Otto committed
6782

XhmikosR's avatar
Dist    
XhmikosR committed
6783
          data[config]();
Mark Otto's avatar
dist    
Mark Otto committed
6784
        }
XhmikosR's avatar
Dist    
XhmikosR committed
6785
6786
      });
    };
Mark Otto's avatar
dist  
Mark Otto committed
6787

XhmikosR's avatar
XhmikosR committed
6788
6789
6790
6791
    Tooltip._getInstance = function _getInstance(element) {
      return Data.getData(element, DATA_KEY$6);
    };

XhmikosR's avatar
Dist    
XhmikosR committed
6792
6793
6794
6795
6796
6797
6798
6799
6800
6801
6802
6803
6804
6805
6806
6807
6808
6809
6810
6811
6812
6813
6814
    _createClass(Tooltip, null, [{
      key: "VERSION",
      get: function get() {
        return VERSION$6;
      }
    }, {
      key: "Default",
      get: function get() {
        return Default$4;
      }
    }, {
      key: "NAME",
      get: function get() {
        return NAME$6;
      }
    }, {
      key: "DATA_KEY",
      get: function get() {
        return DATA_KEY$6;
      }
    }, {
      key: "Event",
      get: function get() {
XhmikosR's avatar
XhmikosR committed
6815
        return Event$7;
XhmikosR's avatar
Dist    
XhmikosR committed
6816
6817
6818
6819
6820
6821
6822
6823
6824
6825
6826
6827
      }
    }, {
      key: "EVENT_KEY",
      get: function get() {
        return EVENT_KEY$6;
      }
    }, {
      key: "DefaultType",
      get: function get() {
        return DefaultType$4;
      }
    }]);
Mark Otto's avatar
dist    
Mark Otto committed
6828

XhmikosR's avatar
Dist    
XhmikosR committed
6829
6830
6831
6832
6833
6834
    return Tooltip;
  }();
  /**
   * ------------------------------------------------------------------------
   * jQuery
   * ------------------------------------------------------------------------
XhmikosR's avatar
XhmikosR committed
6835
   * add .tooltip to jQuery only if jQuery is present
XhmikosR's avatar
Dist    
XhmikosR committed
6836
   */
Mark Otto's avatar
dist    
Mark Otto committed
6837

Mark Otto's avatar
dist  
Mark Otto committed
6838

XhmikosR's avatar
XhmikosR committed
6839
6840
6841
6842
  if (typeof jQuery !== 'undefined') {
    var JQUERY_NO_CONFLICT$6 = jQuery.fn[NAME$6];
    jQuery.fn[NAME$6] = Tooltip._jQueryInterface;
    jQuery.fn[NAME$6].Constructor = Tooltip;
Mark Otto's avatar
dist  
Mark Otto committed
6843

XhmikosR's avatar
XhmikosR committed
6844
6845
6846
6847
6848
    jQuery.fn[NAME$6].noConflict = function () {
      jQuery.fn[NAME$6] = JQUERY_NO_CONFLICT$6;
      return Tooltip._jQueryInterface;
    };
  }
Mark Otto's avatar
dist  
Mark Otto committed
6849

XhmikosR's avatar
Dist    
XhmikosR committed
6850
6851
6852
6853
6854
6855
6856
  /**
   * ------------------------------------------------------------------------
   * Constants
   * ------------------------------------------------------------------------
   */

  var NAME$7 = 'popover';
XhmikosR's avatar
XhmikosR committed
6857
  var VERSION$7 = '4.3.1';
XhmikosR's avatar
Dist    
XhmikosR committed
6858
6859
6860
6861
6862
6863
6864
6865
6866
  var DATA_KEY$7 = 'bs.popover';
  var EVENT_KEY$7 = "." + DATA_KEY$7;
  var CLASS_PREFIX$1 = 'bs-popover';
  var BSCLS_PREFIX_REGEX$1 = new RegExp("(^|\\s)" + CLASS_PREFIX$1 + "\\S+", 'g');

  var Default$5 = _objectSpread({}, Tooltip.Default, {
    placement: 'right',
    trigger: 'click',
    content: '',
XhmikosR's avatar
XhmikosR committed
6867
    template: '<div class="popover" role="tooltip">' + '<div class="popover-arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>'
XhmikosR's avatar
Dist    
XhmikosR committed
6868
6869
6870
6871
6872
6873
6874
6875
6876
6877
6878
6879
6880
6881
  });

  var DefaultType$5 = _objectSpread({}, Tooltip.DefaultType, {
    content: '(string|element|function)'
  });

  var ClassName$7 = {
    FADE: 'fade',
    SHOW: 'show'
  };
  var Selector$7 = {
    TITLE: '.popover-header',
    CONTENT: '.popover-body'
  };
XhmikosR's avatar
XhmikosR committed
6882
  var Event$8 = {
XhmikosR's avatar
Dist    
XhmikosR committed
6883
6884
6885
6886
6887
6888
6889
6890
6891
6892
    HIDE: "hide" + EVENT_KEY$7,
    HIDDEN: "hidden" + EVENT_KEY$7,
    SHOW: "show" + EVENT_KEY$7,
    SHOWN: "shown" + EVENT_KEY$7,
    INSERTED: "inserted" + EVENT_KEY$7,
    CLICK: "click" + EVENT_KEY$7,
    FOCUSIN: "focusin" + EVENT_KEY$7,
    FOCUSOUT: "focusout" + EVENT_KEY$7,
    MOUSEENTER: "mouseenter" + EVENT_KEY$7,
    MOUSELEAVE: "mouseleave" + EVENT_KEY$7
Mark Otto's avatar
dist    
Mark Otto committed
6893
6894
    /**
     * ------------------------------------------------------------------------
XhmikosR's avatar
Dist    
XhmikosR committed
6895
     * Class Definition
Mark Otto's avatar
dist    
Mark Otto committed
6896
6897
     * ------------------------------------------------------------------------
     */
Mark Otto's avatar
dist  
Mark Otto committed
6898

XhmikosR's avatar
Dist    
XhmikosR committed
6899
  };
Mark Otto's avatar
dist  
Mark Otto committed
6900

XhmikosR's avatar
Dist    
XhmikosR committed
6901
6902
6903
6904
  var Popover =
  /*#__PURE__*/
  function (_Tooltip) {
    _inheritsLoose(Popover, _Tooltip);
Mark Otto's avatar
dist  
Mark Otto committed
6905

XhmikosR's avatar
Dist    
XhmikosR committed
6906
6907
6908
    function Popover() {
      return _Tooltip.apply(this, arguments) || this;
    }
Mark Otto's avatar
Mark Otto committed
6909

XhmikosR's avatar
Dist    
XhmikosR committed
6910
    var _proto = Popover.prototype;
Mark Otto's avatar
Mark Otto committed
6911

XhmikosR's avatar
Dist    
XhmikosR committed
6912
6913
6914
6915
    // Overrides
    _proto.isWithContent = function isWithContent() {
      return this.getTitle() || this._getContent();
    };
Mark Otto's avatar
dist    
Mark Otto committed
6916

XhmikosR's avatar
Dist    
XhmikosR committed
6917
    _proto.addAttachmentClass = function addAttachmentClass(attachment) {
XhmikosR's avatar
XhmikosR committed
6918
      this.getTipElement().classList.add(CLASS_PREFIX$1 + "-" + attachment);
XhmikosR's avatar
Dist    
XhmikosR committed
6919
    };
Mark Otto's avatar
dist  
Mark Otto committed
6920

XhmikosR's avatar
Dist    
XhmikosR committed
6921
    _proto.setContent = function setContent() {
XhmikosR's avatar
XhmikosR committed
6922
      var tip = this.getTipElement(); // we use append for html objects to maintain js events
Mark Otto's avatar
dist  
Mark Otto committed
6923

XhmikosR's avatar
XhmikosR committed
6924
      this.setElementContent(SelectorEngine.findOne(Selector$7.TITLE, tip), this.getTitle());
Mark Otto's avatar
dist  
Mark Otto committed
6925

XhmikosR's avatar
Dist    
XhmikosR committed
6926
      var content = this._getContent();
Mark Otto's avatar
dist    
Mark Otto committed
6927

XhmikosR's avatar
Dist    
XhmikosR committed
6928
6929
6930
      if (typeof content === 'function') {
        content = content.call(this.element);
      }
Mark Otto's avatar
dist    
Mark Otto committed
6931

XhmikosR's avatar
XhmikosR committed
6932
6933
6934
      this.setElementContent(SelectorEngine.findOne(Selector$7.CONTENT, tip), content);
      tip.classList.remove(ClassName$7.FADE);
      tip.classList.remove(ClassName$7.SHOW);
Mark Otto's avatar
Mark Otto committed
6935
6936
    } // Private
    ;
Mark Otto's avatar
dist  
Mark Otto committed
6937

XhmikosR's avatar
Dist    
XhmikosR committed
6938
6939
6940
    _proto._getContent = function _getContent() {
      return this.element.getAttribute('data-content') || this.config.content;
    };
Mark Otto's avatar
dist    
Mark Otto committed
6941

XhmikosR's avatar
Dist    
XhmikosR committed
6942
    _proto._cleanTipClass = function _cleanTipClass() {
XhmikosR's avatar
XhmikosR committed
6943
6944
      var tip = this.getTipElement();
      var tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX$1);
Mark Otto's avatar
dist  
Mark Otto committed
6945

XhmikosR's avatar
Dist    
XhmikosR committed
6946
      if (tabClass !== null && tabClass.length > 0) {
XhmikosR's avatar
XhmikosR committed
6947
6948
6949
6950
6951
        tabClass.map(function (token) {
          return token.trim();
        }).forEach(function (tClass) {
          return tip.classList.remove(tClass);
        });
XhmikosR's avatar
Dist    
XhmikosR committed
6952
      }
Mark Otto's avatar
Mark Otto committed
6953
6954
    } // Static
    ;
Mark Otto's avatar
dist    
Mark Otto committed
6955

XhmikosR's avatar
Dist    
XhmikosR committed
6956
6957
    Popover._jQueryInterface = function _jQueryInterface(config) {
      return this.each(function () {
XhmikosR's avatar
XhmikosR committed
6958
        var data = Data.getData(this, DATA_KEY$7);
Mark Otto's avatar
dist    
Mark Otto committed
6959

XhmikosR's avatar
Dist    
XhmikosR committed
6960
        var _config = typeof config === 'object' ? config : null;
Mark Otto's avatar
dist    
Mark Otto committed
6961

XhmikosR's avatar
Dist    
XhmikosR committed
6962
6963
6964
        if (!data && /dispose|hide/.test(config)) {
          return;
        }
Mark Otto's avatar
dist  
Mark Otto committed
6965

XhmikosR's avatar
Dist    
XhmikosR committed
6966
6967
        if (!data) {
          data = new Popover(this, _config);
XhmikosR's avatar
XhmikosR committed
6968
          Data.setData(this, DATA_KEY$7, data);
XhmikosR's avatar
Dist    
XhmikosR committed
6969
        }
Mark Otto's avatar
dist  
Mark Otto committed
6970

XhmikosR's avatar
Dist    
XhmikosR committed
6971
6972
6973
        if (typeof config === 'string') {
          if (typeof data[config] === 'undefined') {
            throw new TypeError("No method named \"" + config + "\"");
Mark Otto's avatar
dist  
Mark Otto committed
6974
          }
Mark Otto's avatar
dist    
Mark Otto committed
6975

XhmikosR's avatar
Dist    
XhmikosR committed
6976
          data[config]();
Mark Otto's avatar
dist    
Mark Otto committed
6977
        }
XhmikosR's avatar
Dist    
XhmikosR committed
6978
6979
      });
    };
Mark Otto's avatar
dist  
Mark Otto committed
6980

XhmikosR's avatar
XhmikosR committed
6981
6982
6983
6984
    Popover._getInstance = function _getInstance(element) {
      return Data.getData(element, DATA_KEY$7);
    };

XhmikosR's avatar
Dist    
XhmikosR committed
6985
6986
6987
6988
6989
6990
6991
6992
6993
6994
6995
6996
6997
6998
6999
7000
    _createClass(Popover, null, [{
      key: "VERSION",
      // Getters
      get: function get() {
        return VERSION$7;
      }
    }, {
      key: "Default",
      get: function get() {
        return Default$5;
      }
    }, {
      key: "NAME",
      get: function get() {
        return NAME$7;
      }
For faster browsing, not all history is shown. View entire blame