bootstrap.esm.js 142 KB
Newer Older
XhmikosR's avatar
Dist.  
XhmikosR committed
3001
    }
XhmikosR's avatar
XhmikosR committed
3002
3003
3004
3005
3006
3007
  };

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

    if (this._config.backdrop === 'static') {
XhmikosR's avatar
XhmikosR committed
3008
      var hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);
XhmikosR's avatar
XhmikosR committed
3009
3010
3011
3012
3013

      if (hideEvent.defaultPrevented) {
        return;
      }

XhmikosR's avatar
XhmikosR committed
3014
      this._element.classList.add(CLASS_NAME_STATIC);
XhmikosR's avatar
XhmikosR committed
3015
3016
3017

      var modalTransitionDuration = getTransitionDurationFromElement(this._element);
      EventHandler.one(this._element, TRANSITION_END, function () {
XhmikosR's avatar
XhmikosR committed
3018
        _this9._element.classList.remove(CLASS_NAME_STATIC);
XhmikosR's avatar
XhmikosR committed
3019
3020
3021
3022
3023
3024
3025
      });
      emulateTransitionEnd(this._element, modalTransitionDuration);

      this._element.focus();
    } else {
      this.hide();
    }
XhmikosR's avatar
Dist.  
XhmikosR committed
3026
3027
3028
  } // ----------------------------------------------------------------------
  // the following methods are used to handle overflowing modals
  // ----------------------------------------------------------------------
XhmikosR's avatar
XhmikosR committed
3029
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
3030

XhmikosR's avatar
XhmikosR committed
3031
3032
  _proto._adjustDialog = function _adjustDialog() {
    var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
XhmikosR's avatar
Dist.  
XhmikosR committed
3033
3034

    if (!this._isBodyOverflowing && isModalOverflowing) {
XhmikosR's avatar
XhmikosR committed
3035
      this._element.style.paddingLeft = this._scrollbarWidth + "px";
XhmikosR's avatar
Dist.  
XhmikosR committed
3036
3037
3038
    }

    if (this._isBodyOverflowing && !isModalOverflowing) {
XhmikosR's avatar
XhmikosR committed
3039
      this._element.style.paddingRight = this._scrollbarWidth + "px";
XhmikosR's avatar
Dist.  
XhmikosR committed
3040
    }
XhmikosR's avatar
XhmikosR committed
3041
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3042

XhmikosR's avatar
XhmikosR committed
3043
  _proto._resetAdjustments = function _resetAdjustments() {
XhmikosR's avatar
Dist.  
XhmikosR committed
3044
3045
    this._element.style.paddingLeft = '';
    this._element.style.paddingRight = '';
XhmikosR's avatar
XhmikosR committed
3046
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3047

XhmikosR's avatar
XhmikosR committed
3048
3049
  _proto._checkScrollbar = function _checkScrollbar() {
    var rect = document.body.getBoundingClientRect();
XhmikosR's avatar
XhmikosR committed
3050
    this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth;
XhmikosR's avatar
Dist.  
XhmikosR committed
3051
    this._scrollbarWidth = this._getScrollbarWidth();
XhmikosR's avatar
XhmikosR committed
3052
3053
3054
  };

  _proto._setScrollbar = function _setScrollbar() {
XhmikosR's avatar
XhmikosR committed
3055
    var _this10 = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
3056
3057
3058
3059
3060

    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
      // Adjust fixed content padding
XhmikosR's avatar
XhmikosR committed
3061
      SelectorEngine.find(SELECTOR_FIXED_CONTENT).forEach(function (element) {
XhmikosR's avatar
XhmikosR committed
3062
3063
        var actualPadding = element.style.paddingRight;
        var calculatedPadding = window.getComputedStyle(element)['padding-right'];
XhmikosR's avatar
Dist.  
XhmikosR committed
3064
        Manipulator.setDataAttribute(element, 'padding-right', actualPadding);
XhmikosR's avatar
XhmikosR committed
3065
        element.style.paddingRight = parseFloat(calculatedPadding) + _this10._scrollbarWidth + "px";
XhmikosR's avatar
Dist.  
XhmikosR committed
3066
3067
      }); // Adjust sticky content margin

XhmikosR's avatar
XhmikosR committed
3068
      SelectorEngine.find(SELECTOR_STICKY_CONTENT).forEach(function (element) {
XhmikosR's avatar
XhmikosR committed
3069
3070
        var actualMargin = element.style.marginRight;
        var calculatedMargin = window.getComputedStyle(element)['margin-right'];
XhmikosR's avatar
Dist.  
XhmikosR committed
3071
        Manipulator.setDataAttribute(element, 'margin-right', actualMargin);
XhmikosR's avatar
XhmikosR committed
3072
        element.style.marginRight = parseFloat(calculatedMargin) - _this10._scrollbarWidth + "px";
XhmikosR's avatar
Dist.  
XhmikosR committed
3073
3074
      }); // Adjust body padding

XhmikosR's avatar
XhmikosR committed
3075
3076
      var actualPadding = document.body.style.paddingRight;
      var calculatedPadding = window.getComputedStyle(document.body)['padding-right'];
XhmikosR's avatar
Dist.  
XhmikosR committed
3077
      Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding);
XhmikosR's avatar
XhmikosR committed
3078
      document.body.style.paddingRight = parseFloat(calculatedPadding) + this._scrollbarWidth + "px";
XhmikosR's avatar
Dist.  
XhmikosR committed
3079
3080
    }

XhmikosR's avatar
XhmikosR committed
3081
    document.body.classList.add(CLASS_NAME_OPEN);
XhmikosR's avatar
XhmikosR committed
3082
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3083

XhmikosR's avatar
XhmikosR committed
3084
  _proto._resetScrollbar = function _resetScrollbar() {
XhmikosR's avatar
Dist.  
XhmikosR committed
3085
    // Restore fixed content padding
XhmikosR's avatar
XhmikosR committed
3086
    SelectorEngine.find(SELECTOR_FIXED_CONTENT).forEach(function (element) {
XhmikosR's avatar
XhmikosR committed
3087
      var padding = Manipulator.getDataAttribute(element, 'padding-right');
XhmikosR's avatar
Dist.  
XhmikosR committed
3088
3089
3090
3091
3092
3093
3094

      if (typeof padding !== 'undefined') {
        Manipulator.removeDataAttribute(element, 'padding-right');
        element.style.paddingRight = padding;
      }
    }); // Restore sticky content and navbar-toggler margin

XhmikosR's avatar
XhmikosR committed
3095
    SelectorEngine.find("" + SELECTOR_STICKY_CONTENT).forEach(function (element) {
XhmikosR's avatar
XhmikosR committed
3096
      var margin = Manipulator.getDataAttribute(element, 'margin-right');
XhmikosR's avatar
Dist.  
XhmikosR committed
3097
3098
3099
3100
3101
3102
3103

      if (typeof margin !== 'undefined') {
        Manipulator.removeDataAttribute(element, 'margin-right');
        element.style.marginRight = margin;
      }
    }); // Restore body padding

XhmikosR's avatar
XhmikosR committed
3104
    var padding = Manipulator.getDataAttribute(document.body, 'padding-right');
XhmikosR's avatar
Dist.  
XhmikosR committed
3105
3106
3107
3108
3109
3110
3111

    if (typeof padding === 'undefined') {
      document.body.style.paddingRight = '';
    } else {
      Manipulator.removeDataAttribute(document.body, 'padding-right');
      document.body.style.paddingRight = padding;
    }
XhmikosR's avatar
XhmikosR committed
3112
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3113

XhmikosR's avatar
XhmikosR committed
3114
  _proto._getScrollbarWidth = function _getScrollbarWidth() {
XhmikosR's avatar
Dist.  
XhmikosR committed
3115
    // thx d.walsh
XhmikosR's avatar
XhmikosR committed
3116
    var scrollDiv = document.createElement('div');
XhmikosR's avatar
XhmikosR committed
3117
    scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER;
XhmikosR's avatar
Dist.  
XhmikosR committed
3118
    document.body.appendChild(scrollDiv);
XhmikosR's avatar
XhmikosR committed
3119
    var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
XhmikosR's avatar
Dist.  
XhmikosR committed
3120
3121
3122
    document.body.removeChild(scrollDiv);
    return scrollbarWidth;
  } // Static
XhmikosR's avatar
XhmikosR committed
3123
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
3124

XhmikosR's avatar
XhmikosR committed
3125
  Modal.jQueryInterface = function jQueryInterface(config, relatedTarget) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3126
    return this.each(function () {
XhmikosR's avatar
XhmikosR committed
3127
      var data = Data.getData(this, DATA_KEY$5);
XhmikosR's avatar
Dist.  
XhmikosR committed
3128

XhmikosR's avatar
XhmikosR committed
3129
      var _config = _objectSpread2(_objectSpread2(_objectSpread2({}, Default$3), Manipulator.getDataAttributes(this)), typeof config === 'object' && config ? config : {});
XhmikosR's avatar
Dist.  
XhmikosR committed
3130
3131
3132
3133
3134
3135
3136

      if (!data) {
        data = new Modal(this, _config);
      }

      if (typeof config === 'string') {
        if (typeof data[config] === 'undefined') {
XhmikosR's avatar
XhmikosR committed
3137
          throw new TypeError("No method named \"" + config + "\"");
XhmikosR's avatar
Dist.  
XhmikosR committed
3138
3139
3140
3141
3142
3143
3144
        }

        data[config](relatedTarget);
      } else if (_config.show) {
        data.show(relatedTarget);
      }
    });
XhmikosR's avatar
XhmikosR committed
3145
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3146

XhmikosR's avatar
XhmikosR committed
3147
  Modal.getInstance = function getInstance(element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3148
    return Data.getData(element, DATA_KEY$5);
XhmikosR's avatar
XhmikosR committed
3149
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3150

XhmikosR's avatar
XhmikosR committed
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
  _createClass(Modal, null, [{
    key: "VERSION",
    get: function get() {
      return VERSION$5;
    }
  }, {
    key: "Default",
    get: function get() {
      return Default$3;
    }
  }]);

  return Modal;
}();
XhmikosR's avatar
Dist.  
XhmikosR committed
3165
3166
3167
3168
3169
3170
3171
/**
 * ------------------------------------------------------------------------
 * Data Api implementation
 * ------------------------------------------------------------------------
 */


XhmikosR's avatar
XhmikosR committed
3172
EventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_TOGGLE$3, function (event) {
XhmikosR's avatar
XhmikosR committed
3173
  var _this11 = this;
XhmikosR's avatar
XhmikosR committed
3174

XhmikosR's avatar
XhmikosR committed
3175
  var target = getElementFromSelector(this);
XhmikosR's avatar
Dist.  
XhmikosR committed
3176
3177
3178
3179
3180

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

XhmikosR's avatar
XhmikosR committed
3181
  EventHandler.one(target, EVENT_SHOW$2, function (showEvent) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3182
3183
3184
3185
3186
    if (showEvent.defaultPrevented) {
      // only register focus restorer if modal will actually get shown
      return;
    }

XhmikosR's avatar
XhmikosR committed
3187
    EventHandler.one(target, EVENT_HIDDEN$2, function () {
XhmikosR's avatar
XhmikosR committed
3188
3189
      if (isVisible(_this11)) {
        _this11.focus();
XhmikosR's avatar
Dist.  
XhmikosR committed
3190
3191
3192
      }
    });
  });
XhmikosR's avatar
XhmikosR committed
3193
  var data = Data.getData(target, DATA_KEY$5);
XhmikosR's avatar
Dist.  
XhmikosR committed
3194
3195

  if (!data) {
XhmikosR's avatar
XhmikosR committed
3196
    var config = _objectSpread2(_objectSpread2({}, Manipulator.getDataAttributes(target)), Manipulator.getDataAttributes(this));
3197

XhmikosR's avatar
Dist.  
XhmikosR committed
3198
3199
3200
3201
3202
    data = new Modal(target, config);
  }

  data.show(this);
});
XhmikosR's avatar
XhmikosR committed
3203
var $$6 = getjQuery();
XhmikosR's avatar
Dist.  
XhmikosR committed
3204
3205
3206
3207
/**
 * ------------------------------------------------------------------------
 * jQuery
 * ------------------------------------------------------------------------
3208
 * add .modal to jQuery only if jQuery is present
XhmikosR's avatar
Dist.  
XhmikosR committed
3209
3210
 */

3211
3212
/* istanbul ignore if */

XhmikosR's avatar
XhmikosR committed
3213
3214
3215
3216
if ($$6) {
  var JQUERY_NO_CONFLICT$5 = $$6.fn[NAME$5];
  $$6.fn[NAME$5] = Modal.jQueryInterface;
  $$6.fn[NAME$5].Constructor = Modal;
XhmikosR's avatar
Dist.  
XhmikosR committed
3217

XhmikosR's avatar
XhmikosR committed
3218
3219
3220
  $$6.fn[NAME$5].noConflict = function () {
    $$6.fn[NAME$5] = JQUERY_NO_CONFLICT$5;
    return Modal.jQueryInterface;
XhmikosR's avatar
Dist.  
XhmikosR committed
3221
3222
3223
3224
3225
  };
}

/**
 * --------------------------------------------------------------------------
3226
 * Bootstrap (v5.0.0-alpha1): util/sanitizer.js
XhmikosR's avatar
XhmikosR committed
3227
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
XhmikosR's avatar
Dist.  
XhmikosR committed
3228
3229
 * --------------------------------------------------------------------------
 */
XhmikosR's avatar
XhmikosR committed
3230
3231
var uriAttrs = ['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href'];
var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;
XhmikosR's avatar
Dist.  
XhmikosR committed
3232
3233
3234
3235
3236
3237
/**
 * A pattern that recognizes a commonly useful subset of URLs that are safe.
 *
 * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
 */

XhmikosR's avatar
XhmikosR committed
3238
var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi;
XhmikosR's avatar
Dist.  
XhmikosR committed
3239
3240
3241
3242
3243
3244
/**
 * A pattern that matches safe data URLs. Only matches image, video and audio types.
 *
 * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
 */

XhmikosR's avatar
XhmikosR committed
3245
var DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i;
XhmikosR's avatar
Dist.  
XhmikosR committed
3246

XhmikosR's avatar
XhmikosR committed
3247
3248
var allowedAttribute = function allowedAttribute(attr, allowedAttributeList) {
  var attrName = attr.nodeName.toLowerCase();
XhmikosR's avatar
Dist.  
XhmikosR committed
3249
3250
3251

  if (allowedAttributeList.indexOf(attrName) !== -1) {
    if (uriAttrs.indexOf(attrName) !== -1) {
Mark Otto's avatar
Mark Otto committed
3252
      return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN));
XhmikosR's avatar
Dist.  
XhmikosR committed
3253
3254
3255
3256
3257
    }

    return true;
  }

XhmikosR's avatar
XhmikosR committed
3258
3259
3260
  var regExp = allowedAttributeList.filter(function (attrRegex) {
    return attrRegex instanceof RegExp;
  }); // Check if a regular expression validates the attribute.
XhmikosR's avatar
Dist.  
XhmikosR committed
3261

XhmikosR's avatar
XhmikosR committed
3262
  for (var i = 0, len = regExp.length; i < len; i++) {
Mark Otto's avatar
Mark Otto committed
3263
    if (attrName.match(regExp[i])) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3264
3265
3266
3267
3268
3269
3270
      return true;
    }
  }

  return false;
};

XhmikosR's avatar
XhmikosR committed
3271
var DefaultWhitelist = {
XhmikosR's avatar
Dist.  
XhmikosR committed
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
  // 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: [],
XhmikosR's avatar
XhmikosR committed
3290
  img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],
XhmikosR's avatar
Dist.  
XhmikosR committed
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
  li: [],
  ol: [],
  p: [],
  pre: [],
  s: [],
  small: [],
  span: [],
  sub: [],
  sup: [],
  strong: [],
  u: [],
  ul: []
};
function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {
XhmikosR's avatar
XhmikosR committed
3305
3306
  var _ref;

XhmikosR's avatar
Dist.  
XhmikosR committed
3307
3308
3309
3310
3311
3312
3313
3314
  if (!unsafeHtml.length) {
    return unsafeHtml;
  }

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

XhmikosR's avatar
XhmikosR committed
3315
3316
3317
  var domParser = new window.DOMParser();
  var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');
  var whitelistKeys = Object.keys(whiteList);
XhmikosR's avatar
XhmikosR committed
3318
3319

  var elements = (_ref = []).concat.apply(_ref, createdDocument.body.querySelectorAll('*'));
XhmikosR's avatar
Dist.  
XhmikosR committed
3320

XhmikosR's avatar
XhmikosR committed
3321
  var _loop = function _loop(i, len) {
XhmikosR's avatar
XhmikosR committed
3322
3323
    var _ref2;

XhmikosR's avatar
XhmikosR committed
3324
3325
    var el = elements[i];
    var elName = el.nodeName.toLowerCase();
XhmikosR's avatar
Dist.  
XhmikosR committed
3326
3327
3328

    if (whitelistKeys.indexOf(elName) === -1) {
      el.parentNode.removeChild(el);
XhmikosR's avatar
XhmikosR committed
3329
      return "continue";
XhmikosR's avatar
Dist.  
XhmikosR committed
3330
3331
    }

XhmikosR's avatar
XhmikosR committed
3332
3333
    var attributeList = (_ref2 = []).concat.apply(_ref2, el.attributes);

XhmikosR's avatar
XhmikosR committed
3334
3335
    var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []);
    attributeList.forEach(function (attr) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3336
3337
3338
3339
      if (!allowedAttribute(attr, whitelistedAttributes)) {
        el.removeAttribute(attr.nodeName);
      }
    });
XhmikosR's avatar
XhmikosR committed
3340
3341
3342
  };

  for (var i = 0, len = elements.length; i < len; i++) {
3343
    var _ret = _loop(i);
XhmikosR's avatar
XhmikosR committed
3344
3345

    if (_ret === "continue") continue;
XhmikosR's avatar
Dist.  
XhmikosR committed
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
  }

  return createdDocument.body.innerHTML;
}

/**
 * ------------------------------------------------------------------------
 * Constants
 * ------------------------------------------------------------------------
 */

XhmikosR's avatar
XhmikosR committed
3357
var NAME$6 = 'tooltip';
3358
var VERSION$6 = '5.0.0-alpha1';
XhmikosR's avatar
XhmikosR committed
3359
3360
3361
3362
3363
3364
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');
var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn'];
var DefaultType$4 = {
XhmikosR's avatar
Dist.  
XhmikosR committed
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
  animation: 'boolean',
  template: 'string',
  title: '(string|element|function)',
  trigger: 'string',
  delay: '(number|object)',
  html: 'boolean',
  selector: '(string|boolean)',
  placement: '(string|function)',
  offset: '(number|string|function)',
  container: '(string|element|boolean)',
  fallbackPlacement: '(string|array)',
  boundary: '(string|element)',
  sanitize: 'boolean',
  sanitizeFn: '(null|function)',
XhmikosR's avatar
XhmikosR committed
3379
3380
  whiteList: 'object',
  popperConfig: '(null|object)'
XhmikosR's avatar
Dist.  
XhmikosR committed
3381
};
XhmikosR's avatar
XhmikosR committed
3382
var AttachmentMap = {
XhmikosR's avatar
Dist.  
XhmikosR committed
3383
3384
3385
3386
3387
3388
  AUTO: 'auto',
  TOP: 'top',
  RIGHT: 'right',
  BOTTOM: 'bottom',
  LEFT: 'left'
};
XhmikosR's avatar
XhmikosR committed
3389
var Default$4 = {
XhmikosR's avatar
Dist.  
XhmikosR committed
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
  animation: true,
  template: '<div class="tooltip" role="tooltip">' + '<div class="tooltip-arrow"></div>' + '<div class="tooltip-inner"></div></div>',
  trigger: 'hover focus',
  title: '',
  delay: 0,
  html: false,
  selector: false,
  placement: 'top',
  offset: 0,
  container: false,
  fallbackPlacement: 'flip',
  boundary: 'scrollParent',
  sanitize: true,
  sanitizeFn: null,
XhmikosR's avatar
XhmikosR committed
3404
3405
  whiteList: DefaultWhitelist,
  popperConfig: null
XhmikosR's avatar
Dist.  
XhmikosR committed
3406
};
XhmikosR's avatar
XhmikosR committed
3407
var Event$1 = {
XhmikosR's avatar
XhmikosR committed
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
  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
XhmikosR's avatar
Dist.  
XhmikosR committed
3418
};
XhmikosR's avatar
XhmikosR committed
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
var CLASS_NAME_FADE$1 = 'fade';
var CLASS_NAME_MODAL = 'modal';
var CLASS_NAME_SHOW$3 = 'show';
var HOVER_STATE_SHOW = 'show';
var HOVER_STATE_OUT = 'out';
var SELECTOR_TOOLTIP_INNER = '.tooltip-inner';
var TRIGGER_HOVER = 'hover';
var TRIGGER_FOCUS = 'focus';
var TRIGGER_CLICK = 'click';
var TRIGGER_MANUAL = 'manual';
XhmikosR's avatar
XhmikosR committed
3429
3430
3431
3432
3433
/**
 * ------------------------------------------------------------------------
 * Class Definition
 * ------------------------------------------------------------------------
 */
XhmikosR's avatar
Dist.  
XhmikosR committed
3434

XhmikosR's avatar
XhmikosR committed
3435
var Tooltip = /*#__PURE__*/function () {
XhmikosR's avatar
XhmikosR committed
3436
  function Tooltip(element, config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
    if (typeof Popper === 'undefined') {
      throw new TypeError('Bootstrap\'s tooltips require Popper.js (https://popper.js.org)');
    } // private


    this._isEnabled = true;
    this._timeout = 0;
    this._hoverState = '';
    this._activeTrigger = {};
    this._popper = null; // Protected

    this.element = element;
    this.config = this._getConfig(config);
    this.tip = null;

    this._setListeners();

    Data.setData(element, this.constructor.DATA_KEY, this);
  } // Getters


XhmikosR's avatar
XhmikosR committed
3458
  var _proto = Tooltip.prototype;
XhmikosR's avatar
Dist.  
XhmikosR committed
3459

XhmikosR's avatar
XhmikosR committed
3460
3461
  // Public
  _proto.enable = function enable() {
XhmikosR's avatar
Dist.  
XhmikosR committed
3462
    this._isEnabled = true;
XhmikosR's avatar
XhmikosR committed
3463
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3464

XhmikosR's avatar
XhmikosR committed
3465
  _proto.disable = function disable() {
XhmikosR's avatar
Dist.  
XhmikosR committed
3466
    this._isEnabled = false;
XhmikosR's avatar
XhmikosR committed
3467
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3468

XhmikosR's avatar
XhmikosR committed
3469
  _proto.toggleEnabled = function toggleEnabled() {
XhmikosR's avatar
Dist.  
XhmikosR committed
3470
    this._isEnabled = !this._isEnabled;
XhmikosR's avatar
XhmikosR committed
3471
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3472

XhmikosR's avatar
XhmikosR committed
3473
  _proto.toggle = function toggle(event) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3474
3475
3476
3477
3478
    if (!this._isEnabled) {
      return;
    }

    if (event) {
XhmikosR's avatar
XhmikosR committed
3479
      var dataKey = this.constructor.DATA_KEY;
XhmikosR's avatar
XhmikosR committed
3480
      var context = Data.getData(event.target, dataKey);
XhmikosR's avatar
Dist.  
XhmikosR committed
3481
3482

      if (!context) {
XhmikosR's avatar
XhmikosR committed
3483
3484
        context = new this.constructor(event.target, this._getDelegateConfig());
        Data.setData(event.target, dataKey, context);
XhmikosR's avatar
Dist.  
XhmikosR committed
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
      }

      context._activeTrigger.click = !context._activeTrigger.click;

      if (context._isWithActiveTrigger()) {
        context._enter(null, context);
      } else {
        context._leave(null, context);
      }
    } else {
XhmikosR's avatar
XhmikosR committed
3495
      if (this.getTipElement().classList.contains(CLASS_NAME_SHOW$3)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3496
3497
3498
3499
3500
3501
3502
        this._leave(null, this);

        return;
      }

      this._enter(null, this);
    }
XhmikosR's avatar
XhmikosR committed
3503
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3504

XhmikosR's avatar
XhmikosR committed
3505
  _proto.dispose = function dispose() {
XhmikosR's avatar
Dist.  
XhmikosR committed
3506
3507
3508
    clearTimeout(this._timeout);
    Data.removeData(this.element, this.constructor.DATA_KEY);
    EventHandler.off(this.element, this.constructor.EVENT_KEY);
XhmikosR's avatar
XhmikosR committed
3509
    EventHandler.off(this.element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
XhmikosR's avatar
Dist.  
XhmikosR committed
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519

    if (this.tip) {
      this.tip.parentNode.removeChild(this.tip);
    }

    this._isEnabled = null;
    this._timeout = null;
    this._hoverState = null;
    this._activeTrigger = null;

XhmikosR's avatar
XhmikosR committed
3520
    if (this._popper) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3521
3522
3523
3524
3525
3526
3527
      this._popper.destroy();
    }

    this._popper = null;
    this.element = null;
    this.config = null;
    this.tip = null;
XhmikosR's avatar
XhmikosR committed
3528
3529
3530
3531
  };

  _proto.show = function show() {
    var _this = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
3532
3533
3534
3535
3536
3537

    if (this.element.style.display === 'none') {
      throw new Error('Please use show on visible elements');
    }

    if (this.isWithContent() && this._isEnabled) {
XhmikosR's avatar
XhmikosR committed
3538
3539
3540
      var showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW);
      var shadowRoot = findShadowRoot(this.element);
      var isInTheDom = shadowRoot === null ? this.element.ownerDocument.documentElement.contains(this.element) : shadowRoot.contains(this.element);
XhmikosR's avatar
Dist.  
XhmikosR committed
3541
3542
3543
3544
3545

      if (showEvent.defaultPrevented || !isInTheDom) {
        return;
      }

XhmikosR's avatar
XhmikosR committed
3546
3547
      var tip = this.getTipElement();
      var tipId = getUID(this.constructor.NAME);
XhmikosR's avatar
Dist.  
XhmikosR committed
3548
3549
3550
3551
3552
      tip.setAttribute('id', tipId);
      this.element.setAttribute('aria-describedby', tipId);
      this.setContent();

      if (this.config.animation) {
XhmikosR's avatar
XhmikosR committed
3553
        tip.classList.add(CLASS_NAME_FADE$1);
XhmikosR's avatar
Dist.  
XhmikosR committed
3554
3555
      }

XhmikosR's avatar
XhmikosR committed
3556
      var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
XhmikosR's avatar
Dist.  
XhmikosR committed
3557

XhmikosR's avatar
XhmikosR committed
3558
      var attachment = this._getAttachment(placement);
XhmikosR's avatar
Dist.  
XhmikosR committed
3559

3560
      this._addAttachmentClass(attachment);
XhmikosR's avatar
Dist.  
XhmikosR committed
3561

XhmikosR's avatar
XhmikosR committed
3562
      var container = this._getContainer();
XhmikosR's avatar
Dist.  
XhmikosR committed
3563
3564
3565
3566
3567
3568
3569
3570

      Data.setData(tip, this.constructor.DATA_KEY, this);

      if (!this.element.ownerDocument.documentElement.contains(this.tip)) {
        container.appendChild(tip);
      }

      EventHandler.trigger(this.element, this.constructor.Event.INSERTED);
XhmikosR's avatar
XhmikosR committed
3571
      this._popper = new Popper(this.element, tip, this._getPopperConfig(attachment));
XhmikosR's avatar
XhmikosR committed
3572
      tip.classList.add(CLASS_NAME_SHOW$3); // If this is a touch-enabled device we add extra
XhmikosR's avatar
Dist.  
XhmikosR committed
3573
3574
3575
3576
3577
      // 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

      if ('ontouchstart' in document.documentElement) {
XhmikosR's avatar
XhmikosR committed
3578
3579
3580
        var _ref;

        (_ref = []).concat.apply(_ref, document.body.children).forEach(function (element) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3581
3582
3583
3584
          EventHandler.on(element, 'mouseover', noop());
        });
      }

XhmikosR's avatar
XhmikosR committed
3585
3586
3587
      var complete = function complete() {
        if (_this.config.animation) {
          _this._fixTransition();
XhmikosR's avatar
Dist.  
XhmikosR committed
3588
3589
        }

XhmikosR's avatar
XhmikosR committed
3590
3591
3592
        var prevHoverState = _this._hoverState;
        _this._hoverState = null;
        EventHandler.trigger(_this.element, _this.constructor.Event.SHOWN);
XhmikosR's avatar
Dist.  
XhmikosR committed
3593

XhmikosR's avatar
XhmikosR committed
3594
        if (prevHoverState === HOVER_STATE_OUT) {
XhmikosR's avatar
XhmikosR committed
3595
          _this._leave(null, _this);
XhmikosR's avatar
Dist.  
XhmikosR committed
3596
3597
3598
        }
      };

XhmikosR's avatar
XhmikosR committed
3599
      if (this.tip.classList.contains(CLASS_NAME_FADE$1)) {
XhmikosR's avatar
XhmikosR committed
3600
        var transitionDuration = getTransitionDurationFromElement(this.tip);
XhmikosR's avatar
Dist.  
XhmikosR committed
3601
3602
3603
3604
3605
3606
        EventHandler.one(this.tip, TRANSITION_END, complete);
        emulateTransitionEnd(this.tip, transitionDuration);
      } else {
        complete();
      }
    }
XhmikosR's avatar
XhmikosR committed
3607
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3608

3609
  _proto.hide = function hide() {
XhmikosR's avatar
XhmikosR committed
3610
    var _this2 = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
3611

XhmikosR's avatar
XhmikosR committed
3612
3613
3614
    var tip = this.getTipElement();

    var complete = function complete() {
XhmikosR's avatar
XhmikosR committed
3615
      if (_this2._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3616
3617
3618
        tip.parentNode.removeChild(tip);
      }

XhmikosR's avatar
XhmikosR committed
3619
3620
3621
      _this2._cleanTipClass();

      _this2.element.removeAttribute('aria-describedby');
XhmikosR's avatar
Dist.  
XhmikosR committed
3622

XhmikosR's avatar
XhmikosR committed
3623
      EventHandler.trigger(_this2.element, _this2.constructor.Event.HIDDEN);
XhmikosR's avatar
Dist.  
XhmikosR committed
3624

3625
      _this2._popper.destroy();
XhmikosR's avatar
Dist.  
XhmikosR committed
3626
3627
    };

XhmikosR's avatar
XhmikosR committed
3628
    var hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE);
XhmikosR's avatar
Dist.  
XhmikosR committed
3629
3630
3631
3632
3633

    if (hideEvent.defaultPrevented) {
      return;
    }

XhmikosR's avatar
XhmikosR committed
3634
    tip.classList.remove(CLASS_NAME_SHOW$3); // If this is a touch-enabled device we remove the extra
XhmikosR's avatar
Dist.  
XhmikosR committed
3635
3636
3637
    // empty mouseover listeners we added for iOS support

    if ('ontouchstart' in document.documentElement) {
XhmikosR's avatar
XhmikosR committed
3638
3639
3640
      var _ref2;

      (_ref2 = []).concat.apply(_ref2, document.body.children).forEach(function (element) {
XhmikosR's avatar
XhmikosR committed
3641
3642
        return EventHandler.off(element, 'mouseover', noop);
      });
XhmikosR's avatar
Dist.  
XhmikosR committed
3643
3644
    }

XhmikosR's avatar
XhmikosR committed
3645
3646
3647
    this._activeTrigger[TRIGGER_CLICK] = false;
    this._activeTrigger[TRIGGER_FOCUS] = false;
    this._activeTrigger[TRIGGER_HOVER] = false;
XhmikosR's avatar
Dist.  
XhmikosR committed
3648

XhmikosR's avatar
XhmikosR committed
3649
    if (this.tip.classList.contains(CLASS_NAME_FADE$1)) {
XhmikosR's avatar
XhmikosR committed
3650
      var transitionDuration = getTransitionDurationFromElement(tip);
XhmikosR's avatar
Dist.  
XhmikosR committed
3651
3652
3653
3654
3655
3656
3657
      EventHandler.one(tip, TRANSITION_END, complete);
      emulateTransitionEnd(tip, transitionDuration);
    } else {
      complete();
    }

    this._hoverState = '';
XhmikosR's avatar
XhmikosR committed
3658
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3659

XhmikosR's avatar
XhmikosR committed
3660
  _proto.update = function update() {
XhmikosR's avatar
Dist.  
XhmikosR committed
3661
3662
3663
3664
    if (this._popper !== null) {
      this._popper.scheduleUpdate();
    }
  } // Protected
XhmikosR's avatar
XhmikosR committed
3665
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
3666

XhmikosR's avatar
XhmikosR committed
3667
  _proto.isWithContent = function isWithContent() {
XhmikosR's avatar
Dist.  
XhmikosR committed
3668
    return Boolean(this.getTitle());
XhmikosR's avatar
XhmikosR committed
3669
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3670

XhmikosR's avatar
XhmikosR committed
3671
  _proto.getTipElement = function getTipElement() {
XhmikosR's avatar
Dist.  
XhmikosR committed
3672
3673
3674
3675
    if (this.tip) {
      return this.tip;
    }

XhmikosR's avatar
XhmikosR committed
3676
    var element = document.createElement('div');
XhmikosR's avatar
Dist.  
XhmikosR committed
3677
3678
3679
    element.innerHTML = this.config.template;
    this.tip = element.children[0];
    return this.tip;
XhmikosR's avatar
XhmikosR committed
3680
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3681

XhmikosR's avatar
XhmikosR committed
3682
3683
  _proto.setContent = function setContent() {
    var tip = this.getTipElement();
XhmikosR's avatar
XhmikosR committed
3684
    this.setElementContent(SelectorEngine.findOne(SELECTOR_TOOLTIP_INNER, tip), this.getTitle());
XhmikosR's avatar
XhmikosR committed
3685
    tip.classList.remove(CLASS_NAME_FADE$1, CLASS_NAME_SHOW$3);
XhmikosR's avatar
XhmikosR committed
3686
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3687

XhmikosR's avatar
XhmikosR committed
3688
  _proto.setElementContent = function setElementContent(element, content) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3689
3690
3691
3692
    if (element === null) {
      return;
    }

3693
    if (typeof content === 'object' && isElement(content)) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
      if (content.jquery) {
        content = content[0];
      } // content is a DOM node or a jQuery


      if (this.config.html) {
        if (content.parentNode !== element) {
          element.innerHTML = '';
          element.appendChild(content);
        }
      } else {
XhmikosR's avatar
XhmikosR committed
3705
        element.textContent = content.textContent;
XhmikosR's avatar
Dist.  
XhmikosR committed
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
      }

      return;
    }

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

      element.innerHTML = content;
    } else {
XhmikosR's avatar
XhmikosR committed
3718
      element.textContent = content;
XhmikosR's avatar
Dist.  
XhmikosR committed
3719
    }
XhmikosR's avatar
XhmikosR committed
3720
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3721

XhmikosR's avatar
XhmikosR committed
3722
3723
  _proto.getTitle = function getTitle() {
    var title = this.element.getAttribute('data-original-title');
XhmikosR's avatar
Dist.  
XhmikosR committed
3724
3725
3726
3727
3728
3729
3730

    if (!title) {
      title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;
    }

    return title;
  } // Private
XhmikosR's avatar
XhmikosR committed
3731
  ;
XhmikosR's avatar
Dist.  
XhmikosR committed
3732

XhmikosR's avatar
XhmikosR committed
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
  _proto._getPopperConfig = function _getPopperConfig(attachment) {
    var _this3 = this;

    var defaultBsConfig = {
      placement: attachment,
      modifiers: {
        offset: this._getOffset(),
        flip: {
          behavior: this.config.fallbackPlacement
        },
        arrow: {
          element: "." + this.constructor.NAME + "-arrow"
        },
        preventOverflow: {
          boundariesElement: this.config.boundary
        }
      },
      onCreate: function onCreate(data) {
        if (data.originalPlacement !== data.placement) {
          _this3._handlePopperPlacementChange(data);
        }
      },
      onUpdate: function onUpdate(data) {
        return _this3._handlePopperPlacementChange(data);
      }
    };
XhmikosR's avatar
XhmikosR committed
3759
    return _objectSpread2(_objectSpread2({}, defaultBsConfig), this.config.popperConfig);
XhmikosR's avatar
XhmikosR committed
3760
3761
  };

3762
3763
3764
3765
  _proto._addAttachmentClass = function _addAttachmentClass(attachment) {
    this.getTipElement().classList.add(CLASS_PREFIX + "-" + attachment);
  };

XhmikosR's avatar
XhmikosR committed
3766
  _proto._getOffset = function _getOffset() {
XhmikosR's avatar
XhmikosR committed
3767
    var _this4 = this;
XhmikosR's avatar
Dist.  
XhmikosR committed
3768

XhmikosR's avatar
XhmikosR committed
3769
    var offset = {};
XhmikosR's avatar
Dist.  
XhmikosR committed
3770
3771

    if (typeof this.config.offset === 'function') {
XhmikosR's avatar
XhmikosR committed
3772
      offset.fn = function (data) {
XhmikosR's avatar
XhmikosR committed
3773
        data.offsets = _objectSpread2(_objectSpread2({}, data.offsets), _this4.config.offset(data.offsets, _this4.element) || {});
XhmikosR's avatar
Dist.  
XhmikosR committed
3774
3775
3776
3777
3778
3779
3780
        return data;
      };
    } else {
      offset.offset = this.config.offset;
    }

    return offset;
XhmikosR's avatar
XhmikosR committed
3781
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3782

XhmikosR's avatar
XhmikosR committed
3783
  _proto._getContainer = function _getContainer() {
XhmikosR's avatar
Dist.  
XhmikosR committed
3784
3785
3786
3787
3788
3789
3790
3791
3792
    if (this.config.container === false) {
      return document.body;
    }

    if (isElement(this.config.container)) {
      return this.config.container;
    }

    return SelectorEngine.findOne(this.config.container);
XhmikosR's avatar
XhmikosR committed
3793
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3794

XhmikosR's avatar
XhmikosR committed
3795
  _proto._getAttachment = function _getAttachment(placement) {
XhmikosR's avatar
XhmikosR committed
3796
    return AttachmentMap[placement.toUpperCase()];
XhmikosR's avatar
XhmikosR committed
3797
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3798

XhmikosR's avatar
XhmikosR committed
3799
  _proto._setListeners = function _setListeners() {
XhmikosR's avatar
XhmikosR committed
3800
    var _this5 = this;
XhmikosR's avatar
XhmikosR committed
3801
3802
3803

    var triggers = this.config.trigger.split(' ');
    triggers.forEach(function (trigger) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3804
      if (trigger === 'click') {
XhmikosR's avatar
XhmikosR committed
3805
3806
        EventHandler.on(_this5.element, _this5.constructor.Event.CLICK, _this5.config.selector, function (event) {
          return _this5.toggle(event);
XhmikosR's avatar
XhmikosR committed
3807
        });
XhmikosR's avatar
XhmikosR committed
3808
3809
3810
      } else if (trigger !== TRIGGER_MANUAL) {
        var eventIn = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSEENTER : _this5.constructor.Event.FOCUSIN;
        var eventOut = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSELEAVE : _this5.constructor.Event.FOCUSOUT;
XhmikosR's avatar
XhmikosR committed
3811
3812
        EventHandler.on(_this5.element, eventIn, _this5.config.selector, function (event) {
          return _this5._enter(event);
XhmikosR's avatar
XhmikosR committed
3813
        });
XhmikosR's avatar
XhmikosR committed
3814
3815
        EventHandler.on(_this5.element, eventOut, _this5.config.selector, function (event) {
          return _this5._leave(event);
XhmikosR's avatar
XhmikosR committed
3816
        });
XhmikosR's avatar
Dist.  
XhmikosR committed
3817
3818
      }
    });
Mark Otto's avatar
dist v5    
Mark Otto committed
3819
3820

    this._hideModalHandler = function () {
XhmikosR's avatar
XhmikosR committed
3821
3822
      if (_this5.element) {
        _this5.hide();
XhmikosR's avatar
Dist.  
XhmikosR committed
3823
      }
Mark Otto's avatar
dist v5    
Mark Otto committed
3824
3825
    };

XhmikosR's avatar
XhmikosR committed
3826
    EventHandler.on(this.element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
XhmikosR's avatar
Dist.  
XhmikosR committed
3827
3828

    if (this.config.selector) {
XhmikosR's avatar
XhmikosR committed
3829
      this.config = _objectSpread2(_objectSpread2({}, this.config), {}, {
XhmikosR's avatar
Dist.  
XhmikosR committed
3830
3831
3832
3833
3834
3835
        trigger: 'manual',
        selector: ''
      });
    } else {
      this._fixTitle();
    }
XhmikosR's avatar
XhmikosR committed
3836
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3837

XhmikosR's avatar
XhmikosR committed
3838
3839
  _proto._fixTitle = function _fixTitle() {
    var titleType = typeof this.element.getAttribute('data-original-title');
XhmikosR's avatar
Dist.  
XhmikosR committed
3840
3841
3842
3843
3844

    if (this.element.getAttribute('title') || titleType !== 'string') {
      this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');
      this.element.setAttribute('title', '');
    }
XhmikosR's avatar
XhmikosR committed
3845
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3846

XhmikosR's avatar
XhmikosR committed
3847
3848
  _proto._enter = function _enter(event, context) {
    var dataKey = this.constructor.DATA_KEY;
XhmikosR's avatar
XhmikosR committed
3849
    context = context || Data.getData(event.target, dataKey);
XhmikosR's avatar
Dist.  
XhmikosR committed
3850
3851

    if (!context) {
XhmikosR's avatar
XhmikosR committed
3852
3853
      context = new this.constructor(event.target, this._getDelegateConfig());
      Data.setData(event.target, dataKey, context);
XhmikosR's avatar
Dist.  
XhmikosR committed
3854
3855
3856
    }

    if (event) {
XhmikosR's avatar
XhmikosR committed
3857
      context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;
XhmikosR's avatar
Dist.  
XhmikosR committed
3858
3859
    }

XhmikosR's avatar
XhmikosR committed
3860
3861
    if (context.getTipElement().classList.contains(CLASS_NAME_SHOW$3) || context._hoverState === HOVER_STATE_SHOW) {
      context._hoverState = HOVER_STATE_SHOW;
XhmikosR's avatar
Dist.  
XhmikosR committed
3862
3863
3864
3865
      return;
    }

    clearTimeout(context._timeout);
XhmikosR's avatar
XhmikosR committed
3866
    context._hoverState = HOVER_STATE_SHOW;
XhmikosR's avatar
Dist.  
XhmikosR committed
3867
3868
3869
3870
3871
3872

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

XhmikosR's avatar
XhmikosR committed
3873
    context._timeout = setTimeout(function () {
XhmikosR's avatar
XhmikosR committed
3874
      if (context._hoverState === HOVER_STATE_SHOW) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3875
3876
3877
        context.show();
      }
    }, context.config.delay.show);
XhmikosR's avatar
XhmikosR committed
3878
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3879

XhmikosR's avatar
XhmikosR committed
3880
3881
  _proto._leave = function _leave(event, context) {
    var dataKey = this.constructor.DATA_KEY;
XhmikosR's avatar
XhmikosR committed
3882
    context = context || Data.getData(event.target, dataKey);
XhmikosR's avatar
Dist.  
XhmikosR committed
3883
3884

    if (!context) {
XhmikosR's avatar
XhmikosR committed
3885
3886
      context = new this.constructor(event.target, this._getDelegateConfig());
      Data.setData(event.target, dataKey, context);
XhmikosR's avatar
Dist.  
XhmikosR committed
3887
3888
3889
    }

    if (event) {
XhmikosR's avatar
XhmikosR committed
3890
      context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = false;
XhmikosR's avatar
Dist.  
XhmikosR committed
3891
3892
3893
3894
3895
3896
3897
    }

    if (context._isWithActiveTrigger()) {
      return;
    }

    clearTimeout(context._timeout);
XhmikosR's avatar
XhmikosR committed
3898
    context._hoverState = HOVER_STATE_OUT;
XhmikosR's avatar
Dist.  
XhmikosR committed
3899
3900
3901
3902
3903
3904

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

XhmikosR's avatar
XhmikosR committed
3905
    context._timeout = setTimeout(function () {
XhmikosR's avatar
XhmikosR committed
3906
      if (context._hoverState === HOVER_STATE_OUT) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3907
3908
3909
        context.hide();
      }
    }, context.config.delay.hide);
XhmikosR's avatar
XhmikosR committed
3910
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3911

XhmikosR's avatar
XhmikosR committed
3912
3913
  _proto._isWithActiveTrigger = function _isWithActiveTrigger() {
    for (var trigger in this._activeTrigger) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3914
3915
3916
3917
3918
3919
      if (this._activeTrigger[trigger]) {
        return true;
      }
    }

    return false;
XhmikosR's avatar
XhmikosR committed
3920
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3921

XhmikosR's avatar
XhmikosR committed
3922
3923
3924
  _proto._getConfig = function _getConfig(config) {
    var dataAttributes = Manipulator.getDataAttributes(this.element);
    Object.keys(dataAttributes).forEach(function (dataAttr) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3925
3926
3927
3928
3929
3930
3931
3932
3933
      if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {
        delete dataAttributes[dataAttr];
      }
    });

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

XhmikosR's avatar
XhmikosR committed
3934
    config = _objectSpread2(_objectSpread2(_objectSpread2({}, this.constructor.Default), dataAttributes), typeof config === 'object' && config ? config : {});
XhmikosR's avatar
Dist.  
XhmikosR committed
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957

    if (typeof config.delay === 'number') {
      config.delay = {
        show: config.delay,
        hide: config.delay
      };
    }

    if (typeof config.title === 'number') {
      config.title = config.title.toString();
    }

    if (typeof config.content === 'number') {
      config.content = config.content.toString();
    }

    typeCheckConfig(NAME$6, config, this.constructor.DefaultType);

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

    return config;
XhmikosR's avatar
XhmikosR committed
3958
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3959

XhmikosR's avatar
XhmikosR committed
3960
3961
  _proto._getDelegateConfig = function _getDelegateConfig() {
    var config = {};
XhmikosR's avatar
Dist.  
XhmikosR committed
3962
3963

    if (this.config) {
XhmikosR's avatar
XhmikosR committed
3964
      for (var key in this.config) {
XhmikosR's avatar
Dist.  
XhmikosR committed
3965
3966
3967
3968
3969
3970
3971
        if (this.constructor.Default[key] !== this.config[key]) {
          config[key] = this.config[key];
        }
      }
    }

    return config;
XhmikosR's avatar
XhmikosR committed
3972
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3973

XhmikosR's avatar
XhmikosR committed
3974
3975
3976
  _proto._cleanTipClass = function _cleanTipClass() {
    var tip = this.getTipElement();
    var tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX);
XhmikosR's avatar
Dist.  
XhmikosR committed
3977

XhmikosR's avatar
XhmikosR committed
3978
    if (tabClass !== null && tabClass.length > 0) {
XhmikosR's avatar
XhmikosR committed
3979
3980
3981
3982
3983
      tabClass.map(function (token) {
        return token.trim();
      }).forEach(function (tClass) {
        return tip.classList.remove(tClass);
      });
XhmikosR's avatar
Dist.  
XhmikosR committed
3984
    }
XhmikosR's avatar
XhmikosR committed
3985
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3986

XhmikosR's avatar
XhmikosR committed
3987
3988
  _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) {
    var popperInstance = popperData.instance;
XhmikosR's avatar
Dist.  
XhmikosR committed
3989
3990
3991
3992
    this.tip = popperInstance.popper;

    this._cleanTipClass();

3993
    this._addAttachmentClass(this._getAttachment(popperData.placement));
XhmikosR's avatar
XhmikosR committed
3994
  };
XhmikosR's avatar
Dist.  
XhmikosR committed
3995

XhmikosR's avatar
XhmikosR committed
3996
3997
3998
  _proto._fixTransition = function _fixTransition() {
    var tip = this.getTipElement();
    var initConfigAnimation = this.config.animation;
XhmikosR's avatar
Dist.  
XhmikosR committed
3999
4000

    if (tip.getAttribute('x-placement') !== null) {
For faster browsing, not all history is shown. View entire blame