bootstrap.bundle.js 239 KB
Newer Older
Mark Otto's avatar
dist  
Mark Otto committed
6001

XhmikosR's avatar
Dist    
XhmikosR committed
6002
6003
6004
6005
    // Public
    _proto.enable = function enable() {
      this._isEnabled = true;
    };
Mark Otto's avatar
dist  
Mark Otto committed
6006

XhmikosR's avatar
Dist    
XhmikosR committed
6007
6008
6009
    _proto.disable = function disable() {
      this._isEnabled = false;
    };
Mark Otto's avatar
dist  
Mark Otto committed
6010

XhmikosR's avatar
Dist    
XhmikosR committed
6011
6012
6013
    _proto.toggleEnabled = function toggleEnabled() {
      this._isEnabled = !this._isEnabled;
    };
Mark Otto's avatar
dist  
Mark Otto committed
6014

XhmikosR's avatar
Dist    
XhmikosR committed
6015
6016
6017
6018
    _proto.toggle = function toggle(event) {
      if (!this._isEnabled) {
        return;
      }
Mark Otto's avatar
dist  
Mark Otto committed
6019

XhmikosR's avatar
Dist    
XhmikosR committed
6020
6021
      if (event) {
        var dataKey = this.constructor.DATA_KEY;
XhmikosR's avatar
XhmikosR committed
6022
        var context = Data.getData(event.delegateTarget, dataKey);
Mark Otto's avatar
dist  
Mark Otto committed
6023

XhmikosR's avatar
Dist    
XhmikosR committed
6024
        if (!context) {
XhmikosR's avatar
XhmikosR committed
6025
6026
          context = new this.constructor(event.delegateTarget, this._getDelegateConfig());
          Data.setData(event.delegateTarget, dataKey, context);
Mark Otto's avatar
dist  
Mark Otto committed
6027
6028
        }

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

XhmikosR's avatar
Dist    
XhmikosR committed
6031
6032
        if (context._isWithActiveTrigger()) {
          context._enter(null, context);
Mark Otto's avatar
dist  
Mark Otto committed
6033
        } else {
XhmikosR's avatar
Dist    
XhmikosR committed
6034
6035
6036
          context._leave(null, context);
        }
      } else {
XhmikosR's avatar
XhmikosR committed
6037
        if (this.getTipElement().classList.contains(CLASS_NAME_SHOW$3)) {
XhmikosR's avatar
Dist    
XhmikosR committed
6038
          this._leave(null, this);
Mark Otto's avatar
dist  
Mark Otto committed
6039

XhmikosR's avatar
Dist    
XhmikosR committed
6040
          return;
Mark Otto's avatar
dist    
Mark Otto committed
6041
        }
Mark Otto's avatar
dist  
Mark Otto committed
6042

XhmikosR's avatar
Dist    
XhmikosR committed
6043
6044
6045
        this._enter(null, this);
      }
    };
Mark Otto's avatar
dist  
Mark Otto committed
6046

XhmikosR's avatar
Dist    
XhmikosR committed
6047
6048
    _proto.dispose = function dispose() {
      clearTimeout(this._timeout);
XhmikosR's avatar
XhmikosR committed
6049
6050
      Data.removeData(this.element, this.constructor.DATA_KEY);
      EventHandler.off(this.element, this.constructor.EVENT_KEY);
XhmikosR's avatar
XhmikosR committed
6051
      EventHandler.off(this.element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
Mark Otto's avatar
dist  
Mark Otto committed
6052

XhmikosR's avatar
Dist    
XhmikosR committed
6053
      if (this.tip) {
XhmikosR's avatar
XhmikosR committed
6054
        this.tip.parentNode.removeChild(this.tip);
XhmikosR's avatar
Dist    
XhmikosR committed
6055
      }
Mark Otto's avatar
dist    
Mark Otto committed
6056

XhmikosR's avatar
Dist    
XhmikosR committed
6057
6058
6059
6060
      this._isEnabled = null;
      this._timeout = null;
      this._hoverState = null;
      this._activeTrigger = null;
Mark Otto's avatar
dist  
Mark Otto committed
6061

XhmikosR's avatar
XhmikosR committed
6062
      if (this._popper) {
XhmikosR's avatar
Dist    
XhmikosR committed
6063
6064
        this._popper.destroy();
      }
Mark Otto's avatar
dist  
Mark Otto committed
6065

XhmikosR's avatar
Dist    
XhmikosR committed
6066
6067
6068
6069
6070
      this._popper = null;
      this.element = null;
      this.config = null;
      this.tip = null;
    };
Mark Otto's avatar
dist  
Mark Otto committed
6071

XhmikosR's avatar
Dist    
XhmikosR committed
6072
6073
    _proto.show = function show() {
      var _this = this;
Mark Otto's avatar
dist  
Mark Otto committed
6074

XhmikosR's avatar
XhmikosR committed
6075
      if (this.element.style.display === 'none') {
XhmikosR's avatar
Dist    
XhmikosR committed
6076
6077
        throw new Error('Please use show on visible elements');
      }
Mark Otto's avatar
dist    
Mark Otto committed
6078

XhmikosR's avatar
Dist    
XhmikosR committed
6079
      if (this.isWithContent() && this._isEnabled) {
XhmikosR's avatar
XhmikosR committed
6080
6081
        var showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW);
        var shadowRoot = findShadowRoot(this.element);
XhmikosR's avatar
Dist.    
XhmikosR committed
6082
        var isInTheDom = shadowRoot === null ? this.element.ownerDocument.documentElement.contains(this.element) : shadowRoot.contains(this.element);
Mark Otto's avatar
dist  
Mark Otto committed
6083

XhmikosR's avatar
XhmikosR committed
6084
        if (showEvent.defaultPrevented || !isInTheDom) {
XhmikosR's avatar
Dist    
XhmikosR committed
6085
6086
          return;
        }
Mark Otto's avatar
dist  
Mark Otto committed
6087

XhmikosR's avatar
Dist    
XhmikosR committed
6088
        var tip = this.getTipElement();
XhmikosR's avatar
XhmikosR committed
6089
        var tipId = getUID(this.constructor.NAME);
XhmikosR's avatar
Dist    
XhmikosR committed
6090
6091
6092
        tip.setAttribute('id', tipId);
        this.element.setAttribute('aria-describedby', tipId);
        this.setContent();
Mark Otto's avatar
dist  
Mark Otto committed
6093

XhmikosR's avatar
Dist    
XhmikosR committed
6094
        if (this.config.animation) {
XhmikosR's avatar
XhmikosR committed
6095
          tip.classList.add(CLASS_NAME_FADE$1);
XhmikosR's avatar
Dist    
XhmikosR committed
6096
        }
Mark Otto's avatar
dist  
Mark Otto committed
6097

XhmikosR's avatar
Dist    
XhmikosR committed
6098
        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
6099

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

6102
        this._addAttachmentClass(attachment);
Mark Otto's avatar
dist    
Mark Otto committed
6103
6104
6105

        var container = this._getContainer();

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

XhmikosR's avatar
XhmikosR committed
6108
6109
        if (!this.element.ownerDocument.documentElement.contains(this.tip)) {
          container.appendChild(tip);
XhmikosR's avatar
Dist    
XhmikosR committed
6110
6111
        }

XhmikosR's avatar
XhmikosR committed
6112
        EventHandler.trigger(this.element, this.constructor.Event.INSERTED);
XhmikosR's avatar
XhmikosR committed
6113
        this._popper = new Popper(this.element, tip, this._getPopperConfig(attachment));
XhmikosR's avatar
XhmikosR committed
6114
        tip.classList.add(CLASS_NAME_SHOW$3); // If this is a touch-enabled device we add extra
XhmikosR's avatar
Dist    
XhmikosR committed
6115
6116
6117
        // 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
6118

XhmikosR's avatar
Dist    
XhmikosR committed
6119
        if ('ontouchstart' in document.documentElement) {
XhmikosR's avatar
XhmikosR committed
6120
6121
6122
          var _ref;

          (_ref = []).concat.apply(_ref, document.body.children).forEach(function (element) {
XhmikosR's avatar
XhmikosR committed
6123
6124
            EventHandler.on(element, 'mouseover', noop());
          });
XhmikosR's avatar
Dist    
XhmikosR committed
6125
        }
Mark Otto's avatar
dist  
Mark Otto committed
6126

XhmikosR's avatar
Dist    
XhmikosR committed
6127
6128
6129
6130
        var complete = function complete() {
          if (_this.config.animation) {
            _this._fixTransition();
          }
Mark Otto's avatar
dist    
Mark Otto committed
6131

XhmikosR's avatar
Dist    
XhmikosR committed
6132
6133
          var prevHoverState = _this._hoverState;
          _this._hoverState = null;
XhmikosR's avatar
XhmikosR committed
6134
          EventHandler.trigger(_this.element, _this.constructor.Event.SHOWN);
Mark Otto's avatar
dist  
Mark Otto committed
6135

XhmikosR's avatar
XhmikosR committed
6136
          if (prevHoverState === HOVER_STATE_OUT) {
XhmikosR's avatar
Dist    
XhmikosR committed
6137
            _this._leave(null, _this);
Mark Otto's avatar
dist  
Mark Otto committed
6138
          }
XhmikosR's avatar
Dist    
XhmikosR committed
6139
6140
        };

XhmikosR's avatar
XhmikosR committed
6141
        if (this.tip.classList.contains(CLASS_NAME_FADE$1)) {
XhmikosR's avatar
XhmikosR committed
6142
6143
6144
          var transitionDuration = getTransitionDurationFromElement(this.tip);
          EventHandler.one(this.tip, TRANSITION_END, complete);
          emulateTransitionEnd(this.tip, transitionDuration);
XhmikosR's avatar
Dist    
XhmikosR committed
6145
6146
        } else {
          complete();
Mark Otto's avatar
dist  
Mark Otto committed
6147
        }
XhmikosR's avatar
Dist    
XhmikosR committed
6148
6149
      }
    };
Mark Otto's avatar
dist  
Mark Otto committed
6150

6151
    _proto.hide = function hide() {
XhmikosR's avatar
Dist    
XhmikosR committed
6152
      var _this2 = this;
Mark Otto's avatar
dist  
Mark Otto committed
6153

XhmikosR's avatar
XhmikosR committed
6154
6155
6156
6157
      if (!this._popper) {
        return;
      }

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

XhmikosR's avatar
Dist    
XhmikosR committed
6160
      var complete = function complete() {
XhmikosR's avatar
XhmikosR committed
6161
        if (_this2._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {
XhmikosR's avatar
Dist    
XhmikosR committed
6162
6163
          tip.parentNode.removeChild(tip);
        }
Mark Otto's avatar
dist  
Mark Otto committed
6164

XhmikosR's avatar
Dist    
XhmikosR committed
6165
        _this2._cleanTipClass();
Mark Otto's avatar
dist    
Mark Otto committed
6166

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

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

6171
        _this2._popper.destroy();
XhmikosR's avatar
Dist    
XhmikosR committed
6172
      };
Mark Otto's avatar
dist  
Mark Otto committed
6173

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

XhmikosR's avatar
XhmikosR committed
6176
      if (hideEvent.defaultPrevented) {
XhmikosR's avatar
Dist    
XhmikosR committed
6177
6178
        return;
      }
Mark Otto's avatar
dist  
Mark Otto committed
6179

XhmikosR's avatar
XhmikosR committed
6180
      tip.classList.remove(CLASS_NAME_SHOW$3); // If this is a touch-enabled device we remove the extra
XhmikosR's avatar
Dist    
XhmikosR committed
6181
      // empty mouseover listeners we added for iOS support
Mark Otto's avatar
dist    
Mark Otto committed
6182

XhmikosR's avatar
Dist    
XhmikosR committed
6183
      if ('ontouchstart' in document.documentElement) {
XhmikosR's avatar
XhmikosR committed
6184
6185
6186
        var _ref2;

        (_ref2 = []).concat.apply(_ref2, document.body.children).forEach(function (element) {
XhmikosR's avatar
XhmikosR committed
6187
6188
          return EventHandler.off(element, 'mouseover', noop);
        });
XhmikosR's avatar
Dist    
XhmikosR committed
6189
      }
Mark Otto's avatar
dist  
Mark Otto committed
6190

XhmikosR's avatar
XhmikosR committed
6191
6192
6193
      this._activeTrigger[TRIGGER_CLICK] = false;
      this._activeTrigger[TRIGGER_FOCUS] = false;
      this._activeTrigger[TRIGGER_HOVER] = false;
Mark Otto's avatar
dist  
Mark Otto committed
6194

XhmikosR's avatar
XhmikosR committed
6195
      if (this.tip.classList.contains(CLASS_NAME_FADE$1)) {
XhmikosR's avatar
XhmikosR committed
6196
6197
6198
        var transitionDuration = getTransitionDurationFromElement(tip);
        EventHandler.one(tip, TRANSITION_END, complete);
        emulateTransitionEnd(tip, transitionDuration);
XhmikosR's avatar
Dist    
XhmikosR committed
6199
6200
6201
      } else {
        complete();
      }
Mark Otto's avatar
dist  
Mark Otto committed
6202

XhmikosR's avatar
Dist    
XhmikosR committed
6203
6204
      this._hoverState = '';
    };
Mark Otto's avatar
dist  
Mark Otto committed
6205

XhmikosR's avatar
Dist    
XhmikosR committed
6206
6207
6208
6209
    _proto.update = function update() {
      if (this._popper !== null) {
        this._popper.scheduleUpdate();
      }
Mark Otto's avatar
Mark Otto committed
6210
6211
    } // Protected
    ;
Mark Otto's avatar
dist  
Mark Otto committed
6212

XhmikosR's avatar
Dist    
XhmikosR committed
6213
6214
6215
    _proto.isWithContent = function isWithContent() {
      return Boolean(this.getTitle());
    };
Mark Otto's avatar
dist  
Mark Otto committed
6216

XhmikosR's avatar
Dist    
XhmikosR committed
6217
    _proto.getTipElement = function getTipElement() {
XhmikosR's avatar
XhmikosR committed
6218
6219
6220
6221
6222
6223
6224
      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
6225
6226
      return this.tip;
    };
Mark Otto's avatar
dist  
Mark Otto committed
6227

XhmikosR's avatar
Dist    
XhmikosR committed
6228
6229
    _proto.setContent = function setContent() {
      var tip = this.getTipElement();
XhmikosR's avatar
XhmikosR committed
6230
      this.setElementContent(SelectorEngine.findOne(SELECTOR_TOOLTIP_INNER, tip), this.getTitle());
XhmikosR's avatar
XhmikosR committed
6231
      tip.classList.remove(CLASS_NAME_FADE$1, CLASS_NAME_SHOW$3);
XhmikosR's avatar
Dist    
XhmikosR committed
6232
    };
Mark Otto's avatar
dist  
Mark Otto committed
6233

XhmikosR's avatar
XhmikosR committed
6234
6235
6236
6237
6238
    _proto.setElementContent = function setElementContent(element, content) {
      if (element === null) {
        return;
      }

6239
      if (typeof content === 'object' && isElement(content)) {
XhmikosR's avatar
XhmikosR committed
6240
6241
6242
6243
6244
        if (content.jquery) {
          content = content[0];
        } // content is a DOM node or a jQuery


XhmikosR's avatar
XhmikosR committed
6245
        if (this.config.html) {
XhmikosR's avatar
XhmikosR committed
6246
6247
6248
          if (content.parentNode !== element) {
            element.innerHTML = '';
            element.appendChild(content);
Mark Otto's avatar
dist  
Mark Otto committed
6249
6250
          }
        } else {
XhmikosR's avatar
XhmikosR committed
6251
          element.textContent = content.textContent;
Mark Otto's avatar
dist  
Mark Otto committed
6252
        }
XhmikosR's avatar
XhmikosR committed
6253
6254
6255
6256
6257
6258

        return;
      }

      if (this.config.html) {
        if (this.config.sanitize) {
XhmikosR's avatar
XhmikosR committed
6259
          content = sanitizeHtml(content, this.config.allowList, this.config.sanitizeFn);
XhmikosR's avatar
XhmikosR committed
6260
6261
        }

XhmikosR's avatar
XhmikosR committed
6262
        element.innerHTML = content;
XhmikosR's avatar
Dist    
XhmikosR committed
6263
      } else {
XhmikosR's avatar
XhmikosR committed
6264
        element.textContent = content;
XhmikosR's avatar
Dist    
XhmikosR committed
6265
6266
      }
    };
Mark Otto's avatar
dist  
Mark Otto committed
6267

XhmikosR's avatar
Dist    
XhmikosR committed
6268
    _proto.getTitle = function getTitle() {
XhmikosR's avatar
XhmikosR committed
6269
      var title = this.element.getAttribute('data-bs-original-title');
Mark Otto's avatar
dist  
Mark Otto committed
6270

XhmikosR's avatar
Dist    
XhmikosR committed
6271
6272
6273
      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
6274

XhmikosR's avatar
Dist    
XhmikosR committed
6275
      return title;
Mark Otto's avatar
Mark Otto committed
6276
6277
    } // Private
    ;
Mark Otto's avatar
dist  
Mark Otto committed
6278

XhmikosR's avatar
XhmikosR committed
6279
6280
6281
6282
6283
6284
6285
6286
6287
6288
6289
6290
6291
6292
6293
6294
6295
6296
6297
6298
6299
6300
6301
6302
6303
6304
    _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
6305
      return _extends({}, defaultBsConfig, this.config.popperConfig);
XhmikosR's avatar
XhmikosR committed
6306
6307
    };

6308
6309
6310
6311
    _proto._addAttachmentClass = function _addAttachmentClass(attachment) {
      this.getTipElement().classList.add(CLASS_PREFIX + "-" + attachment);
    };

Mark Otto's avatar
Mark Otto committed
6312
    _proto._getOffset = function _getOffset() {
XhmikosR's avatar
XhmikosR committed
6313
      var _this4 = this;
Mark Otto's avatar
Mark Otto committed
6314
6315
6316
6317
6318

      var offset = {};

      if (typeof this.config.offset === 'function') {
        offset.fn = function (data) {
XhmikosR's avatar
XhmikosR committed
6319
          data.offsets = _extends({}, data.offsets, _this4.config.offset(data.offsets, _this4.element) || {});
Mark Otto's avatar
Mark Otto committed
6320
6321
6322
6323
6324
6325
6326
6327
6328
          return data;
        };
      } else {
        offset.offset = this.config.offset;
      }

      return offset;
    };

Mark Otto's avatar
dist    
Mark Otto committed
6329
6330
6331
6332
6333
    _proto._getContainer = function _getContainer() {
      if (this.config.container === false) {
        return document.body;
      }

XhmikosR's avatar
XhmikosR committed
6334
6335
      if (isElement(this.config.container)) {
        return this.config.container;
Mark Otto's avatar
dist    
Mark Otto committed
6336
6337
      }

XhmikosR's avatar
XhmikosR committed
6338
      return SelectorEngine.findOne(this.config.container);
Mark Otto's avatar
dist    
Mark Otto committed
6339
6340
    };

XhmikosR's avatar
Dist    
XhmikosR committed
6341
    _proto._getAttachment = function _getAttachment(placement) {
XhmikosR's avatar
XhmikosR committed
6342
      return AttachmentMap[placement.toUpperCase()];
XhmikosR's avatar
Dist    
XhmikosR committed
6343
    };
Mark Otto's avatar
dist    
Mark Otto committed
6344

XhmikosR's avatar
Dist    
XhmikosR committed
6345
    _proto._setListeners = function _setListeners() {
XhmikosR's avatar
XhmikosR committed
6346
      var _this5 = this;
Mark Otto's avatar
dist  
Mark Otto committed
6347

XhmikosR's avatar
Dist    
XhmikosR committed
6348
6349
6350
      var triggers = this.config.trigger.split(' ');
      triggers.forEach(function (trigger) {
        if (trigger === 'click') {
XhmikosR's avatar
XhmikosR committed
6351
6352
          EventHandler.on(_this5.element, _this5.constructor.Event.CLICK, _this5.config.selector, function (event) {
            return _this5.toggle(event);
Mark Otto's avatar
dist  
Mark Otto committed
6353
          });
XhmikosR's avatar
XhmikosR committed
6354
6355
6356
        } 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
6357
6358
          EventHandler.on(_this5.element, eventIn, _this5.config.selector, function (event) {
            return _this5._enter(event);
XhmikosR's avatar
XhmikosR committed
6359
          });
XhmikosR's avatar
XhmikosR committed
6360
6361
          EventHandler.on(_this5.element, eventOut, _this5.config.selector, function (event) {
            return _this5._leave(event);
Mark Otto's avatar
dist  
Mark Otto committed
6362
6363
          });
        }
XhmikosR's avatar
Dist    
XhmikosR committed
6364
      });
Mark Otto's avatar
dist v5    
Mark Otto committed
6365
6366

      this._hideModalHandler = function () {
XhmikosR's avatar
XhmikosR committed
6367
6368
        if (_this5.element) {
          _this5.hide();
XhmikosR's avatar
Dist    
XhmikosR committed
6369
        }
Mark Otto's avatar
dist v5    
Mark Otto committed
6370
6371
      };

XhmikosR's avatar
XhmikosR committed
6372
      EventHandler.on(this.element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
Mark Otto's avatar
dist  
Mark Otto committed
6373

XhmikosR's avatar
Dist    
XhmikosR committed
6374
      if (this.config.selector) {
XhmikosR's avatar
XhmikosR committed
6375
        this.config = _extends({}, this.config, {
XhmikosR's avatar
Dist    
XhmikosR committed
6376
6377
6378
6379
6380
6381
6382
          trigger: 'manual',
          selector: ''
        });
      } else {
        this._fixTitle();
      }
    };
Mark Otto's avatar
dist  
Mark Otto committed
6383

XhmikosR's avatar
Dist    
XhmikosR committed
6384
    _proto._fixTitle = function _fixTitle() {
XhmikosR's avatar
XhmikosR committed
6385
6386
      var title = this.element.getAttribute('title');
      var originalTitleType = typeof this.element.getAttribute('data-bs-original-title');
Mark Otto's avatar
dist    
Mark Otto committed
6387

XhmikosR's avatar
XhmikosR committed
6388
6389
      if (title || originalTitleType !== 'string') {
        this.element.setAttribute('data-bs-original-title', title || '');
XhmikosR's avatar
Dist    
XhmikosR committed
6390
6391
6392
        this.element.setAttribute('title', '');
      }
    };
Mark Otto's avatar
dist  
Mark Otto committed
6393

XhmikosR's avatar
Dist    
XhmikosR committed
6394
6395
    _proto._enter = function _enter(event, context) {
      var dataKey = this.constructor.DATA_KEY;
XhmikosR's avatar
XhmikosR committed
6396
      context = context || Data.getData(event.delegateTarget, dataKey);
Mark Otto's avatar
dist  
Mark Otto committed
6397

XhmikosR's avatar
Dist    
XhmikosR committed
6398
      if (!context) {
XhmikosR's avatar
XhmikosR committed
6399
6400
        context = new this.constructor(event.delegateTarget, this._getDelegateConfig());
        Data.setData(event.delegateTarget, dataKey, context);
XhmikosR's avatar
Dist    
XhmikosR committed
6401
      }
Mark Otto's avatar
dist  
Mark Otto committed
6402

XhmikosR's avatar
Dist    
XhmikosR committed
6403
      if (event) {
XhmikosR's avatar
XhmikosR committed
6404
        context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;
XhmikosR's avatar
Dist    
XhmikosR committed
6405
      }
Mark Otto's avatar
dist  
Mark Otto committed
6406

XhmikosR's avatar
XhmikosR committed
6407
6408
      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
6409
6410
        return;
      }
Mark Otto's avatar
dist  
Mark Otto committed
6411

XhmikosR's avatar
Dist    
XhmikosR committed
6412
      clearTimeout(context._timeout);
XhmikosR's avatar
XhmikosR committed
6413
      context._hoverState = HOVER_STATE_SHOW;
XhmikosR's avatar
Dist    
XhmikosR committed
6414
6415
6416
6417
6418
6419
6420

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

      context._timeout = setTimeout(function () {
XhmikosR's avatar
XhmikosR committed
6421
        if (context._hoverState === HOVER_STATE_SHOW) {
Mark Otto's avatar
dist  
Mark Otto committed
6422
6423
          context.show();
        }
XhmikosR's avatar
Dist    
XhmikosR committed
6424
6425
      }, context.config.delay.show);
    };
Mark Otto's avatar
dist  
Mark Otto committed
6426

XhmikosR's avatar
Dist    
XhmikosR committed
6427
6428
    _proto._leave = function _leave(event, context) {
      var dataKey = this.constructor.DATA_KEY;
XhmikosR's avatar
XhmikosR committed
6429
      context = context || Data.getData(event.delegateTarget, dataKey);
Mark Otto's avatar
dist  
Mark Otto committed
6430

XhmikosR's avatar
Dist    
XhmikosR committed
6431
      if (!context) {
XhmikosR's avatar
XhmikosR committed
6432
6433
        context = new this.constructor(event.delegateTarget, this._getDelegateConfig());
        Data.setData(event.delegateTarget, dataKey, context);
XhmikosR's avatar
Dist    
XhmikosR committed
6434
      }
Mark Otto's avatar
dist  
Mark Otto committed
6435

XhmikosR's avatar
Dist    
XhmikosR committed
6436
      if (event) {
XhmikosR's avatar
XhmikosR committed
6437
        context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = false;
XhmikosR's avatar
Dist    
XhmikosR committed
6438
      }
Mark Otto's avatar
dist  
Mark Otto committed
6439

XhmikosR's avatar
Dist    
XhmikosR committed
6440
6441
6442
      if (context._isWithActiveTrigger()) {
        return;
      }
Mark Otto's avatar
dist  
Mark Otto committed
6443

XhmikosR's avatar
Dist    
XhmikosR committed
6444
      clearTimeout(context._timeout);
XhmikosR's avatar
XhmikosR committed
6445
      context._hoverState = HOVER_STATE_OUT;
Mark Otto's avatar
dist  
Mark Otto committed
6446

XhmikosR's avatar
Dist    
XhmikosR committed
6447
6448
6449
6450
      if (!context.config.delay || !context.config.delay.hide) {
        context.hide();
        return;
      }
Mark Otto's avatar
dist  
Mark Otto committed
6451

XhmikosR's avatar
Dist    
XhmikosR committed
6452
      context._timeout = setTimeout(function () {
XhmikosR's avatar
XhmikosR committed
6453
        if (context._hoverState === HOVER_STATE_OUT) {
Mark Otto's avatar
dist  
Mark Otto committed
6454
6455
          context.hide();
        }
XhmikosR's avatar
Dist    
XhmikosR committed
6456
6457
      }, context.config.delay.hide);
    };
Mark Otto's avatar
dist  
Mark Otto committed
6458

XhmikosR's avatar
Dist    
XhmikosR committed
6459
6460
6461
6462
    _proto._isWithActiveTrigger = function _isWithActiveTrigger() {
      for (var trigger in this._activeTrigger) {
        if (this._activeTrigger[trigger]) {
          return true;
Mark Otto's avatar
dist  
Mark Otto committed
6463
        }
XhmikosR's avatar
Dist    
XhmikosR committed
6464
      }
Mark Otto's avatar
dist  
Mark Otto committed
6465

XhmikosR's avatar
Dist    
XhmikosR committed
6466
6467
      return false;
    };
Mark Otto's avatar
dist  
Mark Otto committed
6468

XhmikosR's avatar
Dist    
XhmikosR committed
6469
    _proto._getConfig = function _getConfig(config) {
XhmikosR's avatar
XhmikosR committed
6470
      var dataAttributes = Manipulator.getDataAttributes(this.element);
XhmikosR's avatar
XhmikosR committed
6471
      Object.keys(dataAttributes).forEach(function (dataAttr) {
XhmikosR's avatar
XhmikosR committed
6472
        if (DISALLOWED_ATTRIBUTES.has(dataAttr)) {
XhmikosR's avatar
XhmikosR committed
6473
6474
6475
          delete dataAttributes[dataAttr];
        }
      });
XhmikosR's avatar
XhmikosR committed
6476
6477
6478
6479
6480

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

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

XhmikosR's avatar
Dist    
XhmikosR committed
6483
6484
6485
6486
6487
6488
      if (typeof config.delay === 'number') {
        config.delay = {
          show: config.delay,
          hide: config.delay
        };
      }
Mark Otto's avatar
dist  
Mark Otto committed
6489

XhmikosR's avatar
Dist    
XhmikosR committed
6490
6491
6492
      if (typeof config.title === 'number') {
        config.title = config.title.toString();
      }
Mark Otto's avatar
dist  
Mark Otto committed
6493

XhmikosR's avatar
Dist    
XhmikosR committed
6494
6495
6496
      if (typeof config.content === 'number') {
        config.content = config.content.toString();
      }
Mark Otto's avatar
dist  
Mark Otto committed
6497

XhmikosR's avatar
XhmikosR committed
6498
      typeCheckConfig(NAME$6, config, this.constructor.DefaultType);
XhmikosR's avatar
XhmikosR committed
6499
6500

      if (config.sanitize) {
XhmikosR's avatar
XhmikosR committed
6501
        config.template = sanitizeHtml(config.template, config.allowList, config.sanitizeFn);
XhmikosR's avatar
XhmikosR committed
6502
6503
      }

XhmikosR's avatar
Dist    
XhmikosR committed
6504
6505
      return config;
    };
Mark Otto's avatar
dist  
Mark Otto committed
6506

XhmikosR's avatar
Dist    
XhmikosR committed
6507
6508
    _proto._getDelegateConfig = function _getDelegateConfig() {
      var config = {};
Mark Otto's avatar
dist  
Mark Otto committed
6509

XhmikosR's avatar
Dist    
XhmikosR committed
6510
6511
6512
6513
      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
6514
6515
          }
        }
XhmikosR's avatar
Dist    
XhmikosR committed
6516
      }
Mark Otto's avatar
dist  
Mark Otto committed
6517

XhmikosR's avatar
Dist    
XhmikosR committed
6518
6519
      return config;
    };
Mark Otto's avatar
dist    
Mark Otto committed
6520

XhmikosR's avatar
Dist    
XhmikosR committed
6521
    _proto._cleanTipClass = function _cleanTipClass() {
XhmikosR's avatar
XhmikosR committed
6522
6523
      var tip = this.getTipElement();
      var tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX);
Mark Otto's avatar
dist  
Mark Otto committed
6524

XhmikosR's avatar
XhmikosR committed
6525
      if (tabClass !== null && tabClass.length > 0) {
XhmikosR's avatar
XhmikosR committed
6526
6527
6528
6529
6530
        tabClass.map(function (token) {
          return token.trim();
        }).forEach(function (tClass) {
          return tip.classList.remove(tClass);
        });
XhmikosR's avatar
Dist    
XhmikosR committed
6531
6532
      }
    };
Mark Otto's avatar
dist    
Mark Otto committed
6533

XhmikosR's avatar
Dist    
XhmikosR committed
6534
    _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) {
XhmikosR's avatar
XhmikosR committed
6535
      this.tip = popperData.instance.popper;
Mark Otto's avatar
dist    
Mark Otto committed
6536

XhmikosR's avatar
Dist    
XhmikosR committed
6537
      this._cleanTipClass();
Mark Otto's avatar
dist  
Mark Otto committed
6538

6539
      this._addAttachmentClass(this._getAttachment(popperData.placement));
XhmikosR's avatar
Dist    
XhmikosR committed
6540
    };
Mark Otto's avatar
dist    
Mark Otto committed
6541

XhmikosR's avatar
Dist    
XhmikosR committed
6542
6543
6544
    _proto._fixTransition = function _fixTransition() {
      var tip = this.getTipElement();
      var initConfigAnimation = this.config.animation;
Mark Otto's avatar
dist    
Mark Otto committed
6545

XhmikosR's avatar
Dist    
XhmikosR committed
6546
6547
6548
      if (tip.getAttribute('x-placement') !== null) {
        return;
      }
Mark Otto's avatar
dist    
Mark Otto committed
6549

XhmikosR's avatar
XhmikosR committed
6550
      tip.classList.remove(CLASS_NAME_FADE$1);
XhmikosR's avatar
Dist    
XhmikosR committed
6551
6552
6553
6554
      this.config.animation = false;
      this.hide();
      this.show();
      this.config.animation = initConfigAnimation;
Mark Otto's avatar
Mark Otto committed
6555
6556
    } // Static
    ;
Mark Otto's avatar
dist  
Mark Otto committed
6557

XhmikosR's avatar
XhmikosR committed
6558
    Tooltip.jQueryInterface = function jQueryInterface(config) {
XhmikosR's avatar
Dist    
XhmikosR committed
6559
      return this.each(function () {
XhmikosR's avatar
XhmikosR committed
6560
        var data = Data.getData(this, DATA_KEY$6);
Mark Otto's avatar
dist    
Mark Otto committed
6561

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

XhmikosR's avatar
Dist    
XhmikosR committed
6564
6565
6566
        if (!data && /dispose|hide/.test(config)) {
          return;
        }
Mark Otto's avatar
dist  
Mark Otto committed
6567

XhmikosR's avatar
Dist    
XhmikosR committed
6568
6569
6570
        if (!data) {
          data = new Tooltip(this, _config);
        }
Mark Otto's avatar
dist  
Mark Otto committed
6571

XhmikosR's avatar
Dist    
XhmikosR committed
6572
6573
6574
        if (typeof config === 'string') {
          if (typeof data[config] === 'undefined') {
            throw new TypeError("No method named \"" + config + "\"");
Mark Otto's avatar
dist  
Mark Otto committed
6575
          }
Mark Otto's avatar
dist    
Mark Otto committed
6576

XhmikosR's avatar
Dist    
XhmikosR committed
6577
          data[config]();
Mark Otto's avatar
dist    
Mark Otto committed
6578
        }
XhmikosR's avatar
Dist    
XhmikosR committed
6579
6580
      });
    };
Mark Otto's avatar
dist  
Mark Otto committed
6581

XhmikosR's avatar
XhmikosR committed
6582
    Tooltip.getInstance = function getInstance(element) {
XhmikosR's avatar
XhmikosR committed
6583
6584
6585
      return Data.getData(element, DATA_KEY$6);
    };

XhmikosR's avatar
Dist    
XhmikosR committed
6586
6587
6588
6589
6590
6591
6592
6593
6594
6595
6596
6597
6598
6599
6600
6601
6602
6603
6604
6605
6606
6607
6608
    _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
6609
        return Event$1;
XhmikosR's avatar
Dist    
XhmikosR committed
6610
6611
6612
6613
6614
6615
6616
6617
6618
6619
6620
6621
      }
    }, {
      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
6622

XhmikosR's avatar
Dist    
XhmikosR committed
6623
6624
6625
6626
6627
6628
    return Tooltip;
  }();
  /**
   * ------------------------------------------------------------------------
   * jQuery
   * ------------------------------------------------------------------------
XhmikosR's avatar
XhmikosR committed
6629
   * add .Tooltip to jQuery only if jQuery is present
XhmikosR's avatar
Dist    
XhmikosR committed
6630
   */
Mark Otto's avatar
dist    
Mark Otto committed
6631

6632

XhmikosR's avatar
XhmikosR committed
6633
6634
6635
  onDOMContentLoaded(function () {
    var $ = getjQuery();
    /* istanbul ignore if */
Mark Otto's avatar
dist  
Mark Otto committed
6636

XhmikosR's avatar
XhmikosR committed
6637
6638
6639
6640
6641
6642
6643
6644
6645
6646
6647
    if ($) {
      var JQUERY_NO_CONFLICT = $.fn[NAME$6];
      $.fn[NAME$6] = Tooltip.jQueryInterface;
      $.fn[NAME$6].Constructor = Tooltip;

      $.fn[NAME$6].noConflict = function () {
        $.fn[NAME$6] = JQUERY_NO_CONFLICT;
        return Tooltip.jQueryInterface;
      };
    }
  });
Mark Otto's avatar
dist  
Mark Otto committed
6648

XhmikosR's avatar
Dist    
XhmikosR committed
6649
6650
6651
6652
6653
6654
6655
  /**
   * ------------------------------------------------------------------------
   * Constants
   * ------------------------------------------------------------------------
   */

  var NAME$7 = 'popover';
XhmikosR's avatar
XhmikosR committed
6656
  var VERSION$7 = '5.0.0-alpha3';
XhmikosR's avatar
Dist    
XhmikosR committed
6657
6658
6659
6660
6661
  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');

XhmikosR's avatar
XhmikosR committed
6662
  var Default$5 = _extends({}, Tooltip.Default, {
XhmikosR's avatar
Dist    
XhmikosR committed
6663
6664
6665
    placement: 'right',
    trigger: 'click',
    content: '',
XhmikosR's avatar
XhmikosR committed
6666
    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
6667
6668
  });

XhmikosR's avatar
XhmikosR committed
6669
  var DefaultType$5 = _extends({}, Tooltip.DefaultType, {
XhmikosR's avatar
Dist    
XhmikosR committed
6670
6671
6672
    content: '(string|element|function)'
  });

XhmikosR's avatar
XhmikosR committed
6673
  var Event$2 = {
XhmikosR's avatar
Dist    
XhmikosR committed
6674
6675
6676
6677
6678
6679
6680
6681
6682
6683
6684
    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
  };
XhmikosR's avatar
XhmikosR committed
6685
6686
6687
6688
  var CLASS_NAME_FADE$2 = 'fade';
  var CLASS_NAME_SHOW$4 = 'show';
  var SELECTOR_TITLE = '.popover-header';
  var SELECTOR_CONTENT = '.popover-body';
XhmikosR's avatar
XhmikosR committed
6689
6690
6691
6692
6693
  /**
   * ------------------------------------------------------------------------
   * Class Definition
   * ------------------------------------------------------------------------
   */
Mark Otto's avatar
dist  
Mark Otto committed
6694

XhmikosR's avatar
XhmikosR committed
6695
  var Popover = /*#__PURE__*/function (_Tooltip) {
XhmikosR's avatar
Dist    
XhmikosR committed
6696
    _inheritsLoose(Popover, _Tooltip);
Mark Otto's avatar
dist  
Mark Otto committed
6697

XhmikosR's avatar
Dist    
XhmikosR committed
6698
6699
6700
    function Popover() {
      return _Tooltip.apply(this, arguments) || this;
    }
Mark Otto's avatar
Mark Otto committed
6701

XhmikosR's avatar
Dist    
XhmikosR committed
6702
    var _proto = Popover.prototype;
Mark Otto's avatar
Mark Otto committed
6703

XhmikosR's avatar
Dist    
XhmikosR committed
6704
6705
6706
6707
    // Overrides
    _proto.isWithContent = function isWithContent() {
      return this.getTitle() || this._getContent();
    };
Mark Otto's avatar
dist    
Mark Otto committed
6708

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

XhmikosR's avatar
XhmikosR committed
6712
      this.setElementContent(SelectorEngine.findOne(SELECTOR_TITLE, tip), this.getTitle());
Mark Otto's avatar
dist  
Mark Otto committed
6713

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

XhmikosR's avatar
Dist    
XhmikosR committed
6716
6717
6718
      if (typeof content === 'function') {
        content = content.call(this.element);
      }
Mark Otto's avatar
dist    
Mark Otto committed
6719

XhmikosR's avatar
XhmikosR committed
6720
      this.setElementContent(SelectorEngine.findOne(SELECTOR_CONTENT, tip), content);
XhmikosR's avatar
XhmikosR committed
6721
      tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$4);
XhmikosR's avatar
XhmikosR committed
6722
6723
    } // Private
    ;
XhmikosR's avatar
XhmikosR committed
6724
6725
6726

    _proto._addAttachmentClass = function _addAttachmentClass(attachment) {
      this.getTipElement().classList.add(CLASS_PREFIX$1 + "-" + attachment);
XhmikosR's avatar
XhmikosR committed
6727
    };
Mark Otto's avatar
dist  
Mark Otto committed
6728

XhmikosR's avatar
Dist    
XhmikosR committed
6729
    _proto._getContent = function _getContent() {
XhmikosR's avatar
XhmikosR committed
6730
      return this.element.getAttribute('data-bs-content') || this.config.content;
XhmikosR's avatar
Dist    
XhmikosR committed
6731
    };
Mark Otto's avatar
dist    
Mark Otto committed
6732

XhmikosR's avatar
Dist    
XhmikosR committed
6733
    _proto._cleanTipClass = function _cleanTipClass() {
XhmikosR's avatar
XhmikosR committed
6734
6735
      var tip = this.getTipElement();
      var tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX$1);
Mark Otto's avatar
dist  
Mark Otto committed
6736

XhmikosR's avatar
Dist    
XhmikosR committed
6737
      if (tabClass !== null && tabClass.length > 0) {
XhmikosR's avatar
XhmikosR committed
6738
6739
6740
6741
6742
        tabClass.map(function (token) {
          return token.trim();
        }).forEach(function (tClass) {
          return tip.classList.remove(tClass);
        });
XhmikosR's avatar
Dist    
XhmikosR committed
6743
      }
Mark Otto's avatar
Mark Otto committed
6744
6745
    } // Static
    ;
Mark Otto's avatar
dist    
Mark Otto committed
6746

XhmikosR's avatar
XhmikosR committed
6747
    Popover.jQueryInterface = function jQueryInterface(config) {
XhmikosR's avatar
Dist    
XhmikosR committed
6748
      return this.each(function () {
XhmikosR's avatar
XhmikosR committed
6749
        var data = Data.getData(this, DATA_KEY$7);
Mark Otto's avatar
dist    
Mark Otto committed
6750

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

XhmikosR's avatar
Dist    
XhmikosR committed
6753
6754
6755
        if (!data && /dispose|hide/.test(config)) {
          return;
        }
Mark Otto's avatar
dist  
Mark Otto committed
6756

XhmikosR's avatar
Dist    
XhmikosR committed
6757
6758
        if (!data) {
          data = new Popover(this, _config);
XhmikosR's avatar
XhmikosR committed
6759
          Data.setData(this, DATA_KEY$7, data);
XhmikosR's avatar
Dist    
XhmikosR committed
6760
        }
Mark Otto's avatar
dist  
Mark Otto committed
6761

XhmikosR's avatar
Dist    
XhmikosR committed
6762
6763
6764
        if (typeof config === 'string') {
          if (typeof data[config] === 'undefined') {
            throw new TypeError("No method named \"" + config + "\"");
Mark Otto's avatar
dist  
Mark Otto committed
6765
          }
Mark Otto's avatar
dist    
Mark Otto committed
6766

XhmikosR's avatar
Dist    
XhmikosR committed
6767
          data[config]();
Mark Otto's avatar
dist    
Mark Otto committed
6768
        }
XhmikosR's avatar
Dist    
XhmikosR committed
6769
6770
      });
    };
Mark Otto's avatar
dist  
Mark Otto committed
6771

XhmikosR's avatar
XhmikosR committed
6772
    Popover.getInstance = function getInstance(element) {
XhmikosR's avatar
XhmikosR committed
6773
6774
6775
      return Data.getData(element, DATA_KEY$7);
    };

XhmikosR's avatar
Dist    
XhmikosR committed
6776
6777
6778
6779
6780
6781
6782
6783
6784
6785
6786
6787
6788
6789
6790
6791
6792
6793
6794
6795
6796
6797
6798
6799
    _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;
      }
    }, {
      key: "DATA_KEY",
      get: function get() {
        return DATA_KEY$7;
      }
    }, {
      key: "Event",
      get: function get() {
XhmikosR's avatar
XhmikosR committed
6800
        return Event$2;
XhmikosR's avatar
Dist    
XhmikosR committed
6801
6802
6803
6804
6805
6806
6807
6808
6809
6810
6811
6812
      }
    }, {
      key: "EVENT_KEY",
      get: function get() {
        return EVENT_KEY$7;
      }
    }, {
      key: "DefaultType",
      get: function get() {
        return DefaultType$5;
      }
    }]);
Mark Otto's avatar
dist    
Mark Otto committed
6813

XhmikosR's avatar
Dist    
XhmikosR committed
6814
6815
6816
6817
6818
6819
    return Popover;
  }(Tooltip);
  /**
   * ------------------------------------------------------------------------
   * jQuery
   * ------------------------------------------------------------------------
XhmikosR's avatar
XhmikosR committed
6820
   * add .Popover to jQuery only if jQuery is present
XhmikosR's avatar
Dist    
XhmikosR committed
6821
   */
Mark Otto's avatar
dist    
Mark Otto committed
6822

6823

XhmikosR's avatar
XhmikosR committed
6824
6825
6826
  onDOMContentLoaded(function () {
    var $ = getjQuery();
    /* istanbul ignore if */
Mark Otto's avatar
dist  
Mark Otto committed
6827

XhmikosR's avatar
XhmikosR committed
6828
6829
6830
6831
6832
6833
6834
6835
6836
6837
6838
    if ($) {
      var JQUERY_NO_CONFLICT = $.fn[NAME$7];
      $.fn[NAME$7] = Popover.jQueryInterface;
      $.fn[NAME$7].Constructor = Popover;

      $.fn[NAME$7].noConflict = function () {
        $.fn[NAME$7] = JQUERY_NO_CONFLICT;
        return Popover.jQueryInterface;
      };
    }
  });
Mark Otto's avatar
dist  
Mark Otto committed
6839

XhmikosR's avatar
Dist    
XhmikosR committed
6840
6841
6842
6843
6844
6845
6846
  /**
   * ------------------------------------------------------------------------
   * Constants
   * ------------------------------------------------------------------------
   */

  var NAME$8 = 'scrollspy';
XhmikosR's avatar
XhmikosR committed
6847
  var VERSION$8 = '5.0.0-alpha3';
XhmikosR's avatar
Dist    
XhmikosR committed
6848
6849
6850
6851
6852
6853
6854
6855
6856
6857
6858
6859
6860
  var DATA_KEY$8 = 'bs.scrollspy';
  var EVENT_KEY$8 = "." + DATA_KEY$8;
  var DATA_API_KEY$6 = '.data-api';
  var Default$6 = {
    offset: 10,
    method: 'auto',
    target: ''
  };
  var DefaultType$6 = {
    offset: 'number',
    method: 'string',
    target: '(string|element)'
  };
XhmikosR's avatar
XhmikosR committed
6861
6862
6863
6864
6865
  var EVENT_ACTIVATE = "activate" + EVENT_KEY$8;
  var EVENT_SCROLL = "scroll" + EVENT_KEY$8;
  var EVENT_LOAD_DATA_API$1 = "load" + EVENT_KEY$8 + DATA_API_KEY$6;
  var CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';
  var CLASS_NAME_ACTIVE$2 = 'active';
XhmikosR's avatar
XhmikosR committed
6866
  var SELECTOR_DATA_SPY = '[data-bs-spy="scroll"]';
XhmikosR's avatar
XhmikosR committed
6867
6868
6869
6870
6871
6872
6873
6874
  var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';
  var SELECTOR_NAV_LINKS = '.nav-link';
  var SELECTOR_NAV_ITEMS = '.nav-item';
  var SELECTOR_LIST_ITEMS = '.list-group-item';
  var SELECTOR_DROPDOWN = '.dropdown';
  var SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';
  var METHOD_OFFSET = 'offset';
  var METHOD_POSITION = 'position';
XhmikosR's avatar
XhmikosR committed
6875
6876
6877
6878
6879
  /**
   * ------------------------------------------------------------------------
   * Class Definition
   * ------------------------------------------------------------------------
   */
XhmikosR's avatar
Dist    
XhmikosR committed
6880

XhmikosR's avatar
XhmikosR committed
6881
  var ScrollSpy = /*#__PURE__*/function () {
XhmikosR's avatar
Dist    
XhmikosR committed
6882
6883
6884
6885
6886
6887
    function ScrollSpy(element, config) {
      var _this = this;

      this._element = element;
      this._scrollElement = element.tagName === 'BODY' ? window : element;
      this._config = this._getConfig(config);
XhmikosR's avatar
XhmikosR committed
6888
      this._selector = this._config.target + " " + SELECTOR_NAV_LINKS + ", " + this._config.target + " " + SELECTOR_LIST_ITEMS + ", " + this._config.target + " ." + CLASS_NAME_DROPDOWN_ITEM;
XhmikosR's avatar
Dist    
XhmikosR committed
6889
6890
6891
6892
      this._offsets = [];
      this._targets = [];
      this._activeTarget = null;
      this._scrollHeight = 0;
XhmikosR's avatar
XhmikosR committed
6893
      EventHandler.on(this._scrollElement, EVENT_SCROLL, function (event) {
XhmikosR's avatar
Dist    
XhmikosR committed
6894
6895
6896
6897
6898
        return _this._process(event);
      });
      this.refresh();

      this._process();
XhmikosR's avatar
XhmikosR committed
6899
6900

      Data.setData(element, DATA_KEY$8, this);
XhmikosR's avatar
Dist    
XhmikosR committed
6901
6902
6903
6904
6905
6906
6907
6908
6909
    } // Getters


    var _proto = ScrollSpy.prototype;

    // Public
    _proto.refresh = function refresh() {
      var _this2 = this;

XhmikosR's avatar
XhmikosR committed
6910
      var autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION;
XhmikosR's avatar
Dist    
XhmikosR committed
6911
      var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
XhmikosR's avatar
XhmikosR committed
6912
      var offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0;
XhmikosR's avatar
Dist    
XhmikosR committed
6913
6914
6915
      this._offsets = [];
      this._targets = [];
      this._scrollHeight = this._getScrollHeight();
XhmikosR's avatar
XhmikosR committed
6916
      var targets = SelectorEngine.find(this._selector);
XhmikosR's avatar
Dist    
XhmikosR committed
6917
      targets.map(function (element) {
XhmikosR's avatar
XhmikosR committed
6918
        var targetSelector = getSelectorFromElement(element);
XhmikosR's avatar
XhmikosR committed
6919
        var target = targetSelector ? SelectorEngine.findOne(targetSelector) : null;
XhmikosR's avatar
Dist    
XhmikosR committed
6920
6921
6922
6923
6924

        if (target) {
          var targetBCR = target.getBoundingClientRect();

          if (targetBCR.width || targetBCR.height) {
XhmikosR's avatar
XhmikosR committed
6925
            return [Manipulator[offsetMethod](target).top + offsetBase, targetSelector];
XhmikosR's avatar
Dist    
XhmikosR committed
6926
6927
6928
6929
6930
6931
6932
6933
6934
6935
6936
6937
6938
          }
        }

        return null;
      }).filter(function (item) {
        return item;
      }).sort(function (a, b) {
        return a[0] - b[0];
      }).forEach(function (item) {
        _this2._offsets.push(item[0]);

        _this2._targets.push(item[1]);
      });
Mark Otto's avatar
dist    
Mark Otto committed
6939
    };
XhmikosR's avatar
Dist    
XhmikosR committed
6940
6941

    _proto.dispose = function dispose() {
XhmikosR's avatar
XhmikosR committed
6942
6943
      Data.removeData(this._element, DATA_KEY$8);
      EventHandler.off(this._scrollElement, EVENT_KEY$8);
XhmikosR's avatar
Dist    
XhmikosR committed
6944
6945
6946
6947
6948
6949
6950
6951
      this._element = null;
      this._scrollElement = null;
      this._config = null;
      this._selector = null;
      this._offsets = null;
      this._targets = null;
      this._activeTarget = null;
      this._scrollHeight = null;
Mark Otto's avatar
Mark Otto committed
6952
6953
    } // Private
    ;
XhmikosR's avatar
Dist    
XhmikosR committed
6954
6955

    _proto._getConfig = function _getConfig(config) {
XhmikosR's avatar
XhmikosR committed
6956
      config = _extends({}, Default$6, typeof config === 'object' && config ? config : {});
XhmikosR's avatar
Dist    
XhmikosR committed
6957

XhmikosR's avatar
XhmikosR committed
6958
      if (typeof config.target !== 'string' && isElement(config.target)) {
XhmikosR's avatar
XhmikosR committed
6959
        var id = config.target.id;
XhmikosR's avatar
Dist    
XhmikosR committed
6960
6961

        if (!id) {
XhmikosR's avatar
XhmikosR committed
6962
6963
          id = getUID(NAME$8);
          config.target.id = id;
XhmikosR's avatar
Dist    
XhmikosR committed
6964
6965
6966
6967
6968
        }

        config.target = "#" + id;
      }

XhmikosR's avatar
XhmikosR committed
6969
      typeCheckConfig(NAME$8, config, DefaultType$6);
XhmikosR's avatar
Dist    
XhmikosR committed
6970
      return config;
Mark Otto's avatar
dist    
Mark Otto committed
6971
    };
XhmikosR's avatar
Dist    
XhmikosR committed
6972
6973
6974

    _proto._getScrollTop = function _getScrollTop() {
      return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;
Mark Otto's avatar
dist    
Mark Otto committed
6975
    };
XhmikosR's avatar
Dist    
XhmikosR committed
6976
6977
6978

    _proto._getScrollHeight = function _getScrollHeight() {
      return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
Mark Otto's avatar
dist    
Mark Otto committed
6979
    };
Mark Otto's avatar
dist  
Mark Otto committed
6980

XhmikosR's avatar
Dist    
XhmikosR committed
6981
6982
    _proto._getOffsetHeight = function _getOffsetHeight() {
      return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;
Mark Otto's avatar
dist    
Mark Otto committed
6983
    };
Mark Otto's avatar
dist  
Mark Otto committed
6984

XhmikosR's avatar
Dist    
XhmikosR committed
6985
6986
    _proto._process = function _process() {
      var scrollTop = this._getScrollTop() + this._config.offset;
Mark Otto's avatar
dist    
Mark Otto committed
6987

XhmikosR's avatar
Dist    
XhmikosR committed
6988
6989
6990
6991
6992
      var scrollHeight = this._getScrollHeight();

      var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();

      if (this._scrollHeight !== scrollHeight) {
Mark Otto's avatar
dist    
Mark Otto committed
6993
        this.refresh();
XhmikosR's avatar
Dist    
XhmikosR committed
6994
      }
Mark Otto's avatar
dist    
Mark Otto committed
6995

XhmikosR's avatar
Dist    
XhmikosR committed
6996
6997
6998
6999
7000
      if (scrollTop >= maxScroll) {
        var target = this._targets[this._targets.length - 1];

        if (this._activeTarget !== target) {
          this._activate(target);
For faster browsing, not all history is shown. View entire blame