mirror of
https://bitbucket.org/wisemapping/wisemapping-frontend.git
synced 2024-11-29 09:04:55 +01:00
1187 lines
44 KiB
JavaScript
1187 lines
44 KiB
JavaScript
/*!
|
|
* Bootstrap v3.1.1 (http://getbootstrap.com)
|
|
* Copyright 2011-2014 Twitter, Inc.
|
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
|
*/
|
|
if (typeof jQuery === 'undefined') throw new Error("Bootstrap's JavaScript requires jQuery");
|
|
+(function (a) {
|
|
function b() {
|
|
const a = document.createElement('bootstrap');
|
|
const b = {
|
|
WebkitTransition: 'webkitTransitionEnd',
|
|
MozTransition: 'transitionend',
|
|
OTransition: 'oTransitionEnd otransitionend',
|
|
transition: 'transitionend',
|
|
};
|
|
for (const c in b) if (void 0 !== a.style[c]) return { end: b[c] };
|
|
return !1;
|
|
}
|
|
(a.fn.emulateTransitionEnd = function (b) {
|
|
let c = !1;
|
|
const d = this;
|
|
a(this).one(a.support.transition.end, () => {
|
|
c = !0;
|
|
});
|
|
const e = function () {
|
|
c || a(d).trigger(a.support.transition.end);
|
|
};
|
|
return setTimeout(e, b), this;
|
|
}),
|
|
a(() => {
|
|
a.support.transition = b();
|
|
});
|
|
})(jQuery),
|
|
+(function (a) {
|
|
const b = '[data-dismiss="alert"]';
|
|
const c = function (c) {
|
|
a(c).on('click', b, this.close);
|
|
};
|
|
c.prototype.close = function (b) {
|
|
function c() {
|
|
f.trigger('closed.bs.alert').remove();
|
|
}
|
|
const d = a(this);
|
|
let e = d.attr('data-target');
|
|
e || ((e = d.attr('href')), (e = e && e.replace(/.*(?=#[^\s]*$)/, '')));
|
|
var f = a(e);
|
|
b && b.preventDefault(),
|
|
f.length || (f = d.hasClass('alert') ? d : d.parent()),
|
|
f.trigger((b = a.Event('close.bs.alert'))),
|
|
b.isDefaultPrevented() ||
|
|
(f.removeClass('in'),
|
|
a.support.transition && f.hasClass('fade')
|
|
? f.one(a.support.transition.end, c).emulateTransitionEnd(150)
|
|
: c());
|
|
};
|
|
const d = a.fn.alert;
|
|
(a.fn.alert = function (b) {
|
|
return this.each(function () {
|
|
const d = a(this);
|
|
let e = d.data('bs.alert');
|
|
e || d.data('bs.alert', (e = new c(this))), typeof b === 'string' && e[b].call(d);
|
|
});
|
|
}),
|
|
(a.fn.alert.Constructor = c),
|
|
(a.fn.alert.noConflict = function () {
|
|
return (a.fn.alert = d), this;
|
|
}),
|
|
a(document).on('click.bs.alert.data-api', b, c.prototype.close);
|
|
})(jQuery),
|
|
+(function (a) {
|
|
var b = function (c, d) {
|
|
(this.$element = a(c)), (this.options = a.extend({}, b.DEFAULTS, d)), (this.isLoading = !1);
|
|
};
|
|
(b.DEFAULTS = { loadingText: 'loading...' }),
|
|
(b.prototype.setState = function (b) {
|
|
const c = 'disabled';
|
|
const d = this.$element;
|
|
const e = d.is('input') ? 'val' : 'html';
|
|
const f = d.data();
|
|
(b += 'Text'),
|
|
f.resetText || d.data('resetText', d[e]()),
|
|
d[e](f[b] || this.options[b]),
|
|
setTimeout(
|
|
a.proxy(function () {
|
|
b == 'loadingText'
|
|
? ((this.isLoading = !0), d.addClass(c).attr(c, c))
|
|
: this.isLoading && ((this.isLoading = !1), d.removeClass(c).removeAttr(c));
|
|
}, this),
|
|
0,
|
|
);
|
|
}),
|
|
(b.prototype.toggle = function () {
|
|
let a = !0;
|
|
const b = this.$element.closest('[data-toggle="buttons"]');
|
|
if (b.length) {
|
|
const c = this.$element.find('input');
|
|
c.prop('type') == 'radio' &&
|
|
(c.prop('checked') && this.$element.hasClass('active')
|
|
? (a = !1)
|
|
: b.find('.active').removeClass('active')),
|
|
a && c.prop('checked', !this.$element.hasClass('active')).trigger('change');
|
|
}
|
|
a && this.$element.toggleClass('active');
|
|
});
|
|
const c = a.fn.button;
|
|
(a.fn.button = function (c) {
|
|
return this.each(function () {
|
|
const d = a(this);
|
|
let e = d.data('bs.button');
|
|
const f = typeof c === 'object' && c;
|
|
e || d.data('bs.button', (e = new b(this, f))),
|
|
c == 'toggle' ? e.toggle() : c && e.setState(c);
|
|
});
|
|
}),
|
|
(a.fn.button.Constructor = b),
|
|
(a.fn.button.noConflict = function () {
|
|
return (a.fn.button = c), this;
|
|
}),
|
|
a(document).on('click.bs.button.data-api', '[data-toggle^=button]', (b) => {
|
|
let c = a(b.target);
|
|
c.hasClass('btn') || (c = c.closest('.btn')), c.button('toggle'), b.preventDefault();
|
|
});
|
|
})(jQuery),
|
|
+(function (a) {
|
|
const b = function (b, c) {
|
|
(this.$element = a(b)),
|
|
(this.$indicators = this.$element.find('.carousel-indicators')),
|
|
(this.options = c),
|
|
(this.paused = this.sliding = this.interval = this.$active = this.$items = null),
|
|
this.options.pause == 'hover' &&
|
|
this.$element
|
|
.on('mouseenter', a.proxy(this.pause, this))
|
|
.on('mouseleave', a.proxy(this.cycle, this));
|
|
};
|
|
(b.DEFAULTS = { interval: 5e3, pause: 'hover', wrap: !0 }),
|
|
(b.prototype.cycle = function (b) {
|
|
return (
|
|
b || (this.paused = !1),
|
|
this.interval && clearInterval(this.interval),
|
|
this.options.interval &&
|
|
!this.paused &&
|
|
(this.interval = setInterval(a.proxy(this.next, this), this.options.interval)),
|
|
this
|
|
);
|
|
}),
|
|
(b.prototype.getActiveIndex = function () {
|
|
return (
|
|
(this.$active = this.$element.find('.item.active')),
|
|
(this.$items = this.$active.parent().children()),
|
|
this.$items.index(this.$active)
|
|
);
|
|
}),
|
|
(b.prototype.to = function (b) {
|
|
const c = this;
|
|
const d = this.getActiveIndex();
|
|
return b > this.$items.length - 1 || b < 0
|
|
? void 0
|
|
: this.sliding
|
|
? this.$element.one('slid.bs.carousel', () => {
|
|
c.to(b);
|
|
})
|
|
: d == b
|
|
? this.pause().cycle()
|
|
: this.slide(b > d ? 'next' : 'prev', a(this.$items[b]));
|
|
}),
|
|
(b.prototype.pause = function (b) {
|
|
return (
|
|
b || (this.paused = !0),
|
|
this.$element.find('.next, .prev').length &&
|
|
a.support.transition &&
|
|
(this.$element.trigger(a.support.transition.end), this.cycle(!0)),
|
|
(this.interval = clearInterval(this.interval)),
|
|
this
|
|
);
|
|
}),
|
|
(b.prototype.next = function () {
|
|
return this.sliding ? void 0 : this.slide('next');
|
|
}),
|
|
(b.prototype.prev = function () {
|
|
return this.sliding ? void 0 : this.slide('prev');
|
|
}),
|
|
(b.prototype.slide = function (b, c) {
|
|
const d = this.$element.find('.item.active');
|
|
let e = c || d[b]();
|
|
const f = this.interval;
|
|
const g = b == 'next' ? 'left' : 'right';
|
|
const h = b == 'next' ? 'first' : 'last';
|
|
const i = this;
|
|
if (!e.length) {
|
|
if (!this.options.wrap) return;
|
|
e = this.$element.find('.item')[h]();
|
|
}
|
|
if (e.hasClass('active')) return (this.sliding = !1);
|
|
const j = a.Event('slide.bs.carousel', { relatedTarget: e[0], direction: g });
|
|
return (
|
|
this.$element.trigger(j),
|
|
j.isDefaultPrevented()
|
|
? void 0
|
|
: ((this.sliding = !0),
|
|
f && this.pause(),
|
|
this.$indicators.length &&
|
|
(this.$indicators.find('.active').removeClass('active'),
|
|
this.$element.one('slid.bs.carousel', () => {
|
|
const b = a(i.$indicators.children()[i.getActiveIndex()]);
|
|
b && b.addClass('active');
|
|
})),
|
|
a.support.transition && this.$element.hasClass('slide')
|
|
? (e.addClass(b),
|
|
e[0].offsetWidth,
|
|
d.addClass(g),
|
|
e.addClass(g),
|
|
d
|
|
.one(a.support.transition.end, () => {
|
|
e.removeClass([b, g].join(' ')).addClass('active'),
|
|
d.removeClass(['active', g].join(' ')),
|
|
(i.sliding = !1),
|
|
setTimeout(() => {
|
|
i.$element.trigger('slid.bs.carousel');
|
|
}, 0);
|
|
})
|
|
.emulateTransitionEnd(1e3 * d.css('transition-duration').slice(0, -1)))
|
|
: (d.removeClass('active'),
|
|
e.addClass('active'),
|
|
(this.sliding = !1),
|
|
this.$element.trigger('slid.bs.carousel')),
|
|
f && this.cycle(),
|
|
this)
|
|
);
|
|
});
|
|
const c = a.fn.carousel;
|
|
(a.fn.carousel = function (c) {
|
|
return this.each(function () {
|
|
const d = a(this);
|
|
let e = d.data('bs.carousel');
|
|
const f = a.extend({}, b.DEFAULTS, d.data(), typeof c === 'object' && c);
|
|
const g = typeof c === 'string' ? c : f.slide;
|
|
e || d.data('bs.carousel', (e = new b(this, f))),
|
|
typeof c === 'number' ? e.to(c) : g ? e[g]() : f.interval && e.pause().cycle();
|
|
});
|
|
}),
|
|
(a.fn.carousel.Constructor = b),
|
|
(a.fn.carousel.noConflict = function () {
|
|
return (a.fn.carousel = c), this;
|
|
}),
|
|
a(document).on('click.bs.carousel.data-api', '[data-slide], [data-slide-to]', function (b) {
|
|
let c;
|
|
const d = a(this);
|
|
const e = a(
|
|
d.attr('data-target') || ((c = d.attr('href')) && c.replace(/.*(?=#[^\s]+$)/, '')),
|
|
);
|
|
const f = a.extend({}, e.data(), d.data());
|
|
let g = d.attr('data-slide-to');
|
|
g && (f.interval = !1),
|
|
e.carousel(f),
|
|
(g = d.attr('data-slide-to')) && e.data('bs.carousel').to(g),
|
|
b.preventDefault();
|
|
}),
|
|
a(window).on('load', () => {
|
|
a('[data-ride="carousel"]').each(function () {
|
|
const b = a(this);
|
|
b.carousel(b.data());
|
|
});
|
|
});
|
|
})(jQuery),
|
|
+(function (a) {
|
|
var b = function (c, d) {
|
|
(this.$element = a(c)),
|
|
(this.options = a.extend({}, b.DEFAULTS, d)),
|
|
(this.transitioning = null),
|
|
this.options.parent && (this.$parent = a(this.options.parent)),
|
|
this.options.toggle && this.toggle();
|
|
};
|
|
(b.DEFAULTS = { toggle: !0 }),
|
|
(b.prototype.dimension = function () {
|
|
const a = this.$element.hasClass('width');
|
|
return a ? 'width' : 'height';
|
|
}),
|
|
(b.prototype.show = function () {
|
|
if (!this.transitioning && !this.$element.hasClass('in')) {
|
|
const b = a.Event('show.bs.collapse');
|
|
if ((this.$element.trigger(b), !b.isDefaultPrevented())) {
|
|
const c = this.$parent && this.$parent.find('> .panel > .in');
|
|
if (c && c.length) {
|
|
const d = c.data('bs.collapse');
|
|
if (d && d.transitioning) return;
|
|
c.collapse('hide'), d || c.data('bs.collapse', null);
|
|
}
|
|
const e = this.dimension();
|
|
this.$element.removeClass('collapse').addClass('collapsing')[e](0),
|
|
(this.transitioning = 1);
|
|
const f = function () {
|
|
this.$element.removeClass('collapsing').addClass('collapse in')[e]('auto'),
|
|
(this.transitioning = 0),
|
|
this.$element.trigger('shown.bs.collapse');
|
|
};
|
|
if (!a.support.transition) return f.call(this);
|
|
const g = a.camelCase(['scroll', e].join('-'));
|
|
this.$element
|
|
.one(a.support.transition.end, a.proxy(f, this))
|
|
.emulateTransitionEnd(350)
|
|
[e](this.$element[0][g]);
|
|
}
|
|
}
|
|
}),
|
|
(b.prototype.hide = function () {
|
|
if (!this.transitioning && this.$element.hasClass('in')) {
|
|
const b = a.Event('hide.bs.collapse');
|
|
if ((this.$element.trigger(b), !b.isDefaultPrevented())) {
|
|
const c = this.dimension();
|
|
this.$element[c](this.$element[c]())[0].offsetHeight,
|
|
this.$element.addClass('collapsing').removeClass('collapse').removeClass('in'),
|
|
(this.transitioning = 1);
|
|
const d = function () {
|
|
(this.transitioning = 0),
|
|
this.$element
|
|
.trigger('hidden.bs.collapse')
|
|
.removeClass('collapsing')
|
|
.addClass('collapse');
|
|
};
|
|
return a.support.transition
|
|
? void this.$element[c](0)
|
|
.one(a.support.transition.end, a.proxy(d, this))
|
|
.emulateTransitionEnd(350)
|
|
: d.call(this);
|
|
}
|
|
}
|
|
}),
|
|
(b.prototype.toggle = function () {
|
|
this[this.$element.hasClass('in') ? 'hide' : 'show']();
|
|
});
|
|
const c = a.fn.collapse;
|
|
(a.fn.collapse = function (c) {
|
|
return this.each(function () {
|
|
const d = a(this);
|
|
let e = d.data('bs.collapse');
|
|
const f = a.extend({}, b.DEFAULTS, d.data(), typeof c === 'object' && c);
|
|
!e && f.toggle && c == 'show' && (c = !c),
|
|
e || d.data('bs.collapse', (e = new b(this, f))),
|
|
typeof c === 'string' && e[c]();
|
|
});
|
|
}),
|
|
(a.fn.collapse.Constructor = b),
|
|
(a.fn.collapse.noConflict = function () {
|
|
return (a.fn.collapse = c), this;
|
|
}),
|
|
a(document).on('click.bs.collapse.data-api', '[data-toggle=collapse]', function (b) {
|
|
let c;
|
|
const d = a(this);
|
|
const e =
|
|
d.attr('data-target') ||
|
|
b.preventDefault() ||
|
|
((c = d.attr('href')) && c.replace(/.*(?=#[^\s]+$)/, ''));
|
|
const f = a(e);
|
|
const g = f.data('bs.collapse');
|
|
const h = g ? 'toggle' : d.data();
|
|
const i = d.attr('data-parent');
|
|
const j = i && a(i);
|
|
(g && g.transitioning) ||
|
|
(j && j.find(`[data-toggle=collapse][data-parent="${i}"]`).not(d).addClass('collapsed'),
|
|
d[f.hasClass('in') ? 'addClass' : 'removeClass']('collapsed')),
|
|
f.collapse(h);
|
|
});
|
|
})(jQuery),
|
|
+(function (a) {
|
|
function b(b) {
|
|
a(d).remove(),
|
|
a(e).each(function () {
|
|
const d = c(a(this));
|
|
const e = { relatedTarget: this };
|
|
d.hasClass('open') &&
|
|
(d.trigger((b = a.Event('hide.bs.dropdown', e))),
|
|
b.isDefaultPrevented() || d.removeClass('open').trigger('hidden.bs.dropdown', e));
|
|
});
|
|
}
|
|
function c(b) {
|
|
let c = b.attr('data-target');
|
|
c ||
|
|
((c = b.attr('href')), (c = c && /#[A-Za-z]/.test(c) && c.replace(/.*(?=#[^\s]*$)/, '')));
|
|
const d = c && a(c);
|
|
return d && d.length ? d : b.parent();
|
|
}
|
|
var d = '.dropdown-backdrop';
|
|
var e = '[data-toggle=dropdown]';
|
|
const f = function (b) {
|
|
a(b).on('click.bs.dropdown', this.toggle);
|
|
};
|
|
(f.prototype.toggle = function (d) {
|
|
const e = a(this);
|
|
if (!e.is('.disabled, :disabled')) {
|
|
const f = c(e);
|
|
const g = f.hasClass('open');
|
|
if ((b(), !g)) {
|
|
'ontouchstart' in document.documentElement &&
|
|
!f.closest('.navbar-nav').length &&
|
|
a('<div class="dropdown-backdrop"/>').insertAfter(a(this)).on('click', b);
|
|
const h = { relatedTarget: this };
|
|
if ((f.trigger((d = a.Event('show.bs.dropdown', h))), d.isDefaultPrevented())) return;
|
|
f.toggleClass('open').trigger('shown.bs.dropdown', h), e.focus();
|
|
}
|
|
return !1;
|
|
}
|
|
}),
|
|
(f.prototype.keydown = function (b) {
|
|
if (/(38|40|27)/.test(b.keyCode)) {
|
|
const d = a(this);
|
|
if ((b.preventDefault(), b.stopPropagation(), !d.is('.disabled, :disabled'))) {
|
|
const f = c(d);
|
|
const g = f.hasClass('open');
|
|
if (!g || (g && b.keyCode == 27)) return b.which == 27 && f.find(e).focus(), d.click();
|
|
const h = ' li:not(.divider):visible a';
|
|
const i = f.find(`[role=menu]${h}, [role=listbox]${h}`);
|
|
if (i.length) {
|
|
let j = i.index(i.filter(':focus'));
|
|
b.keyCode == 38 && j > 0 && j--,
|
|
b.keyCode == 40 && j < i.length - 1 && j++,
|
|
~j || (j = 0),
|
|
i.eq(j).focus();
|
|
}
|
|
}
|
|
}
|
|
});
|
|
const g = a.fn.dropdown;
|
|
(a.fn.dropdown = function (b) {
|
|
return this.each(function () {
|
|
const c = a(this);
|
|
let d = c.data('bs.dropdown');
|
|
d || c.data('bs.dropdown', (d = new f(this))), typeof b === 'string' && d[b].call(c);
|
|
});
|
|
}),
|
|
(a.fn.dropdown.Constructor = f),
|
|
(a.fn.dropdown.noConflict = function () {
|
|
return (a.fn.dropdown = g), this;
|
|
}),
|
|
a(document)
|
|
.on('click.bs.dropdown.data-api', b)
|
|
.on('click.bs.dropdown.data-api', '.dropdown form', (a) => {
|
|
a.stopPropagation();
|
|
})
|
|
.on('click.bs.dropdown.data-api', e, f.prototype.toggle)
|
|
.on(
|
|
'keydown.bs.dropdown.data-api',
|
|
`${e}, [role=menu], [role=listbox]`,
|
|
f.prototype.keydown,
|
|
);
|
|
})(jQuery),
|
|
+(function (a) {
|
|
const b = function (b, c) {
|
|
(this.options = c),
|
|
(this.$element = a(b)),
|
|
(this.$backdrop = this.isShown = null),
|
|
this.options.remote &&
|
|
this.$element.find('.modal-content').load(
|
|
this.options.remote,
|
|
a.proxy(function () {
|
|
this.$element.trigger('loaded.bs.modal');
|
|
}, this),
|
|
);
|
|
};
|
|
(b.DEFAULTS = { backdrop: !0, keyboard: !0, show: !0 }),
|
|
(b.prototype.toggle = function (a) {
|
|
return this[this.isShown ? 'hide' : 'show'](a);
|
|
}),
|
|
(b.prototype.show = function (b) {
|
|
const c = this;
|
|
const d = a.Event('show.bs.modal', { relatedTarget: b });
|
|
this.$element.trigger(d),
|
|
this.isShown ||
|
|
d.isDefaultPrevented() ||
|
|
((this.isShown = !0),
|
|
this.escape(),
|
|
this.$element.on(
|
|
'click.dismiss.bs.modal',
|
|
'[data-dismiss="modal"]',
|
|
a.proxy(this.hide, this),
|
|
),
|
|
this.backdrop(() => {
|
|
const d = a.support.transition && c.$element.hasClass('fade');
|
|
c.$element.parent().length || c.$element.appendTo(document.body),
|
|
c.$element.show().scrollTop(0),
|
|
d && c.$element[0].offsetWidth,
|
|
c.$element.addClass('in').attr('aria-hidden', !1),
|
|
c.enforceFocus();
|
|
const e = a.Event('shown.bs.modal', { relatedTarget: b });
|
|
d
|
|
? c.$element
|
|
.find('.modal-dialog')
|
|
.one(a.support.transition.end, () => {
|
|
c.$element.focus().trigger(e);
|
|
})
|
|
.emulateTransitionEnd(300)
|
|
: c.$element.focus().trigger(e);
|
|
}));
|
|
}),
|
|
(b.prototype.hide = function (b) {
|
|
b && b.preventDefault(),
|
|
(b = a.Event('hide.bs.modal')),
|
|
this.$element.trigger(b),
|
|
this.isShown &&
|
|
!b.isDefaultPrevented() &&
|
|
((this.isShown = !1),
|
|
this.escape(),
|
|
a(document).off('focusin.bs.modal'),
|
|
this.$element.removeClass('in').attr('aria-hidden', !0).off('click.dismiss.bs.modal'),
|
|
a.support.transition && this.$element.hasClass('fade')
|
|
? this.$element
|
|
.one(a.support.transition.end, a.proxy(this.hideModal, this))
|
|
.emulateTransitionEnd(300)
|
|
: this.hideModal());
|
|
}),
|
|
(b.prototype.enforceFocus = function () {
|
|
a(document)
|
|
.off('focusin.bs.modal')
|
|
.on(
|
|
'focusin.bs.modal',
|
|
a.proxy(function (a) {
|
|
this.$element[0] === a.target ||
|
|
this.$element.has(a.target).length ||
|
|
this.$element.focus();
|
|
}, this),
|
|
);
|
|
}),
|
|
(b.prototype.escape = function () {
|
|
this.isShown && this.options.keyboard
|
|
? this.$element.on(
|
|
'keyup.dismiss.bs.modal',
|
|
a.proxy(function (a) {
|
|
a.which == 27 && this.hide();
|
|
}, this),
|
|
)
|
|
: this.isShown || this.$element.off('keyup.dismiss.bs.modal');
|
|
}),
|
|
(b.prototype.hideModal = function () {
|
|
const a = this;
|
|
this.$element.hide(),
|
|
this.backdrop(() => {
|
|
a.removeBackdrop(), a.$element.trigger('hidden.bs.modal');
|
|
});
|
|
}),
|
|
(b.prototype.removeBackdrop = function () {
|
|
this.$backdrop && this.$backdrop.remove(), (this.$backdrop = null);
|
|
}),
|
|
(b.prototype.backdrop = function (b) {
|
|
const c = this.$element.hasClass('fade') ? 'fade' : '';
|
|
if (this.isShown && this.options.backdrop) {
|
|
const d = a.support.transition && c;
|
|
if (
|
|
((this.$backdrop = a(`<div class="modal-backdrop ${c}" />`).appendTo(document.body)),
|
|
this.$element.on(
|
|
'click.dismiss.bs.modal',
|
|
a.proxy(function (a) {
|
|
a.target === a.currentTarget &&
|
|
(this.options.backdrop == 'static'
|
|
? this.$element[0].focus.call(this.$element[0])
|
|
: this.hide.call(this));
|
|
}, this),
|
|
),
|
|
d && this.$backdrop[0].offsetWidth,
|
|
this.$backdrop.addClass('in'),
|
|
!b)
|
|
)
|
|
return;
|
|
d ? this.$backdrop.one(a.support.transition.end, b).emulateTransitionEnd(150) : b();
|
|
} else
|
|
!this.isShown && this.$backdrop
|
|
? (this.$backdrop.removeClass('in'),
|
|
a.support.transition && this.$element.hasClass('fade')
|
|
? this.$backdrop.one(a.support.transition.end, b).emulateTransitionEnd(150)
|
|
: b())
|
|
: b && b();
|
|
});
|
|
const c = a.fn.modal;
|
|
(a.fn.modal = function (c, d) {
|
|
return this.each(function () {
|
|
const e = a(this);
|
|
let f = e.data('bs.modal');
|
|
const g = a.extend({}, b.DEFAULTS, e.data(), typeof c === 'object' && c);
|
|
f || e.data('bs.modal', (f = new b(this, g))),
|
|
typeof c === 'string' ? f[c](d) : g.show && f.show(d);
|
|
});
|
|
}),
|
|
(a.fn.modal.Constructor = b),
|
|
(a.fn.modal.noConflict = function () {
|
|
return (a.fn.modal = c), this;
|
|
}),
|
|
a(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (b) {
|
|
const c = a(this);
|
|
const d = c.attr('href');
|
|
const e = a(c.attr('data-target') || (d && d.replace(/.*(?=#[^\s]+$)/, '')));
|
|
const f = e.data('bs.modal')
|
|
? 'toggle'
|
|
: a.extend({ remote: !/#/.test(d) && d }, e.data(), c.data());
|
|
c.is('a') && b.preventDefault(),
|
|
e.modal(f, this).one('hide', () => {
|
|
c.is(':visible') && c.focus();
|
|
});
|
|
}),
|
|
a(document)
|
|
.on('show.bs.modal', '.modal', () => {
|
|
a(document.body).addClass('modal-open');
|
|
})
|
|
.on('hidden.bs.modal', '.modal', () => {
|
|
a(document.body).removeClass('modal-open');
|
|
});
|
|
})(jQuery),
|
|
+(function (a) {
|
|
const b = function (a, b) {
|
|
(this.type =
|
|
this.options =
|
|
this.enabled =
|
|
this.timeout =
|
|
this.hoverState =
|
|
this.$element =
|
|
null),
|
|
this.init('tooltip', a, b);
|
|
};
|
|
(b.DEFAULTS = {
|
|
animation: !0,
|
|
placement: 'top',
|
|
selector: !1,
|
|
template:
|
|
'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
|
|
trigger: 'hover focus',
|
|
title: '',
|
|
delay: 0,
|
|
html: !1,
|
|
container: !1,
|
|
}),
|
|
(b.prototype.init = function (b, c, d) {
|
|
(this.enabled = !0),
|
|
(this.type = b),
|
|
(this.$element = a(c)),
|
|
(this.options = this.getOptions(d));
|
|
for (let e = this.options.trigger.split(' '), f = e.length; f--; ) {
|
|
const g = e[f];
|
|
if (g == 'click')
|
|
this.$element.on(
|
|
`click.${this.type}`,
|
|
this.options.selector,
|
|
a.proxy(this.toggle, this),
|
|
);
|
|
else if (g != 'manual') {
|
|
const h = g == 'hover' ? 'mouseenter' : 'focusin';
|
|
const i = g == 'hover' ? 'mouseleave' : 'focusout';
|
|
this.$element.on(`${h}.${this.type}`, this.options.selector, a.proxy(this.enter, this)),
|
|
this.$element.on(
|
|
`${i}.${this.type}`,
|
|
this.options.selector,
|
|
a.proxy(this.leave, this),
|
|
);
|
|
}
|
|
}
|
|
this.options.selector
|
|
? (this._options = a.extend({}, this.options, { trigger: 'manual', selector: '' }))
|
|
: this.fixTitle();
|
|
}),
|
|
(b.prototype.getDefaults = function () {
|
|
return b.DEFAULTS;
|
|
}),
|
|
(b.prototype.getOptions = function (b) {
|
|
return (
|
|
(b = a.extend({}, this.getDefaults(), this.$element.data(), b)),
|
|
b.delay && typeof b.delay === 'number' && (b.delay = { show: b.delay, hide: b.delay }),
|
|
b
|
|
);
|
|
}),
|
|
(b.prototype.getDelegateOptions = function () {
|
|
const b = {};
|
|
const c = this.getDefaults();
|
|
return (
|
|
this._options &&
|
|
a.each(this._options, (a, d) => {
|
|
c[a] != d && (b[a] = d);
|
|
}),
|
|
b
|
|
);
|
|
}),
|
|
(b.prototype.enter = function (b) {
|
|
const c =
|
|
b instanceof this.constructor
|
|
? b
|
|
: a(b.currentTarget)[this.type](this.getDelegateOptions()).data(`bs.${this.type}`);
|
|
return (
|
|
clearTimeout(c.timeout),
|
|
(c.hoverState = 'in'),
|
|
c.options.delay && c.options.delay.show
|
|
? void (c.timeout = setTimeout(() => {
|
|
c.hoverState == 'in' && c.show();
|
|
}, c.options.delay.show))
|
|
: c.show()
|
|
);
|
|
}),
|
|
(b.prototype.leave = function (b) {
|
|
const c =
|
|
b instanceof this.constructor
|
|
? b
|
|
: a(b.currentTarget)[this.type](this.getDelegateOptions()).data(`bs.${this.type}`);
|
|
return (
|
|
clearTimeout(c.timeout),
|
|
(c.hoverState = 'out'),
|
|
c.options.delay && c.options.delay.hide
|
|
? void (c.timeout = setTimeout(() => {
|
|
c.hoverState == 'out' && c.hide();
|
|
}, c.options.delay.hide))
|
|
: c.hide()
|
|
);
|
|
}),
|
|
(b.prototype.show = function () {
|
|
const b = a.Event(`show.bs.${this.type}`);
|
|
if (this.hasContent() && this.enabled) {
|
|
if ((this.$element.trigger(b), b.isDefaultPrevented())) return;
|
|
const c = this;
|
|
const d = this.tip();
|
|
this.setContent(), this.options.animation && d.addClass('fade');
|
|
let e =
|
|
typeof this.options.placement === 'function'
|
|
? this.options.placement.call(this, d[0], this.$element[0])
|
|
: this.options.placement;
|
|
const f = /\s?auto?\s?/i;
|
|
const g = f.test(e);
|
|
g && (e = e.replace(f, '') || 'top'),
|
|
d.detach().css({ top: 0, left: 0, display: 'block' }).addClass(e),
|
|
this.options.container
|
|
? d.appendTo(this.options.container)
|
|
: d.insertAfter(this.$element);
|
|
const h = this.getPosition();
|
|
const i = d[0].offsetWidth;
|
|
const j = d[0].offsetHeight;
|
|
if (g) {
|
|
const k = this.$element.parent();
|
|
const l = e;
|
|
const m = document.documentElement.scrollTop || document.body.scrollTop;
|
|
const n = this.options.container == 'body' ? window.innerWidth : k.outerWidth();
|
|
const o = this.options.container == 'body' ? window.innerHeight : k.outerHeight();
|
|
const p = this.options.container == 'body' ? 0 : k.offset().left;
|
|
(e =
|
|
e == 'bottom' && h.top + h.height + j - m > o
|
|
? 'top'
|
|
: e == 'top' && h.top - m - j < 0
|
|
? 'bottom'
|
|
: e == 'right' && h.right + i > n
|
|
? 'left'
|
|
: e == 'left' && h.left - i < p
|
|
? 'right'
|
|
: e),
|
|
d.removeClass(l).addClass(e);
|
|
}
|
|
const q = this.getCalculatedOffset(e, h, i, j);
|
|
this.applyPlacement(q, e), (this.hoverState = null);
|
|
const r = function () {
|
|
c.$element.trigger(`shown.bs.${c.type}`);
|
|
};
|
|
a.support.transition && this.$tip.hasClass('fade')
|
|
? d.one(a.support.transition.end, r).emulateTransitionEnd(150)
|
|
: r();
|
|
}
|
|
}),
|
|
(b.prototype.applyPlacement = function (b, c) {
|
|
let d;
|
|
const e = this.tip();
|
|
const f = e[0].offsetWidth;
|
|
const g = e[0].offsetHeight;
|
|
let h = parseInt(e.css('margin-top'), 10);
|
|
let i = parseInt(e.css('margin-left'), 10);
|
|
isNaN(h) && (h = 0),
|
|
isNaN(i) && (i = 0),
|
|
(b.top += h),
|
|
(b.left += i),
|
|
a.offset.setOffset(
|
|
e[0],
|
|
a.extend(
|
|
{
|
|
using(a) {
|
|
e.css({ top: Math.round(a.top), left: Math.round(a.left) });
|
|
},
|
|
},
|
|
b,
|
|
),
|
|
0,
|
|
),
|
|
e.addClass('in');
|
|
let j = e[0].offsetWidth;
|
|
let k = e[0].offsetHeight;
|
|
if ((c == 'top' && k != g && ((d = !0), (b.top = b.top + g - k)), /bottom|top/.test(c))) {
|
|
let l = 0;
|
|
b.left < 0 &&
|
|
((l = -2 * b.left),
|
|
(b.left = 0),
|
|
e.offset(b),
|
|
(j = e[0].offsetWidth),
|
|
(k = e[0].offsetHeight)),
|
|
this.replaceArrow(l - f + j, j, 'left');
|
|
} else this.replaceArrow(k - g, k, 'top');
|
|
d && e.offset(b);
|
|
}),
|
|
(b.prototype.replaceArrow = function (a, b, c) {
|
|
this.arrow().css(c, a ? `${50 * (1 - a / b)}%` : '');
|
|
}),
|
|
(b.prototype.setContent = function () {
|
|
const a = this.tip();
|
|
const b = this.getTitle();
|
|
a.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](b),
|
|
a.removeClass('fade in top bottom left right');
|
|
}),
|
|
(b.prototype.hide = function () {
|
|
function b() {
|
|
c.hoverState != 'in' && d.detach(), c.$element.trigger(`hidden.bs.${c.type}`);
|
|
}
|
|
var c = this;
|
|
var d = this.tip();
|
|
const e = a.Event(`hide.bs.${this.type}`);
|
|
return (
|
|
this.$element.trigger(e),
|
|
e.isDefaultPrevented()
|
|
? void 0
|
|
: (d.removeClass('in'),
|
|
a.support.transition && this.$tip.hasClass('fade')
|
|
? d.one(a.support.transition.end, b).emulateTransitionEnd(150)
|
|
: b(),
|
|
(this.hoverState = null),
|
|
this)
|
|
);
|
|
}),
|
|
(b.prototype.fixTitle = function () {
|
|
const a = this.$element;
|
|
(a.attr('title') || typeof a.attr('data-original-title') !== 'string') &&
|
|
a.attr('data-original-title', a.attr('title') || '').attr('title', '');
|
|
}),
|
|
(b.prototype.hasContent = function () {
|
|
return this.getTitle();
|
|
}),
|
|
(b.prototype.getPosition = function () {
|
|
const b = this.$element[0];
|
|
return a.extend(
|
|
{},
|
|
typeof b.getBoundingClientRect === 'function'
|
|
? b.getBoundingClientRect()
|
|
: { width: b.offsetWidth, height: b.offsetHeight },
|
|
this.$element.offset(),
|
|
);
|
|
}),
|
|
(b.prototype.getCalculatedOffset = function (a, b, c, d) {
|
|
return a == 'bottom'
|
|
? { top: b.top + b.height, left: b.left + b.width / 2 - c / 2 }
|
|
: a == 'top'
|
|
? { top: b.top - d, left: b.left + b.width / 2 - c / 2 }
|
|
: a == 'left'
|
|
? { top: b.top + b.height / 2 - d / 2, left: b.left - c }
|
|
: { top: b.top + b.height / 2 - d / 2, left: b.left + b.width };
|
|
}),
|
|
(b.prototype.getTitle = function () {
|
|
let a;
|
|
const b = this.$element;
|
|
const c = this.options;
|
|
return (a =
|
|
b.attr('data-original-title') ||
|
|
(typeof c.title === 'function' ? c.title.call(b[0]) : c.title));
|
|
}),
|
|
(b.prototype.tip = function () {
|
|
return (this.$tip = this.$tip || a(this.options.template));
|
|
}),
|
|
(b.prototype.arrow = function () {
|
|
return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'));
|
|
}),
|
|
(b.prototype.validate = function () {
|
|
this.$element[0].parentNode || (this.hide(), (this.$element = null), (this.options = null));
|
|
}),
|
|
(b.prototype.enable = function () {
|
|
this.enabled = !0;
|
|
}),
|
|
(b.prototype.disable = function () {
|
|
this.enabled = !1;
|
|
}),
|
|
(b.prototype.toggleEnabled = function () {
|
|
this.enabled = !this.enabled;
|
|
}),
|
|
(b.prototype.toggle = function (b) {
|
|
const c = b
|
|
? a(b.currentTarget)[this.type](this.getDelegateOptions()).data(`bs.${this.type}`)
|
|
: this;
|
|
c.tip().hasClass('in') ? c.leave(c) : c.enter(c);
|
|
}),
|
|
(b.prototype.destroy = function () {
|
|
clearTimeout(this.timeout),
|
|
this.hide().$element.off(`.${this.type}`).removeData(`bs.${this.type}`);
|
|
});
|
|
const c = a.fn.tooltip;
|
|
(a.fn.tooltip = function (c) {
|
|
return this.each(function () {
|
|
const d = a(this);
|
|
let e = d.data('bs.tooltip');
|
|
const f = typeof c === 'object' && c;
|
|
(e || c != 'destroy') &&
|
|
(e || d.data('bs.tooltip', (e = new b(this, f))), typeof c === 'string' && e[c]());
|
|
});
|
|
}),
|
|
(a.fn.tooltip.Constructor = b),
|
|
(a.fn.tooltip.noConflict = function () {
|
|
return (a.fn.tooltip = c), this;
|
|
});
|
|
})(jQuery),
|
|
+(function (a) {
|
|
const b = function (a, b) {
|
|
this.init('popover', a, b);
|
|
};
|
|
if (!a.fn.tooltip) throw new Error('Popover requires tooltip.js');
|
|
(b.DEFAULTS = a.extend({}, a.fn.tooltip.Constructor.DEFAULTS, {
|
|
placement: 'right',
|
|
trigger: 'click',
|
|
content: '',
|
|
template:
|
|
'<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>',
|
|
})),
|
|
(b.prototype = a.extend({}, a.fn.tooltip.Constructor.prototype)),
|
|
(b.prototype.constructor = b),
|
|
(b.prototype.getDefaults = function () {
|
|
return b.DEFAULTS;
|
|
}),
|
|
(b.prototype.setContent = function () {
|
|
const a = this.tip();
|
|
const b = this.getTitle();
|
|
const c = this.getContent();
|
|
a.find('.popover-title')[this.options.html ? 'html' : 'text'](b),
|
|
a
|
|
.find('.popover-content')
|
|
[this.options.html ? (typeof c === 'string' ? 'html' : 'append') : 'text'](c),
|
|
a.removeClass('fade top bottom left right in'),
|
|
a.find('.popover-title').html() || a.find('.popover-title').hide();
|
|
}),
|
|
(b.prototype.hasContent = function () {
|
|
return this.getTitle() || this.getContent();
|
|
}),
|
|
(b.prototype.getContent = function () {
|
|
const a = this.$element;
|
|
const b = this.options;
|
|
return (
|
|
a.attr('data-content') ||
|
|
(typeof b.content === 'function' ? b.content.call(a[0]) : b.content)
|
|
);
|
|
}),
|
|
(b.prototype.arrow = function () {
|
|
return (this.$arrow = this.$arrow || this.tip().find('.arrow'));
|
|
}),
|
|
(b.prototype.tip = function () {
|
|
return this.$tip || (this.$tip = a(this.options.template)), this.$tip;
|
|
});
|
|
const c = a.fn.popover;
|
|
(a.fn.popover = function (c) {
|
|
return this.each(function () {
|
|
const d = a(this);
|
|
let e = d.data('bs.popover');
|
|
const f = typeof c === 'object' && c;
|
|
(e || c != 'destroy') &&
|
|
(e || d.data('bs.popover', (e = new b(this, f))), typeof c === 'string' && e[c]());
|
|
});
|
|
}),
|
|
(a.fn.popover.Constructor = b),
|
|
(a.fn.popover.noConflict = function () {
|
|
return (a.fn.popover = c), this;
|
|
});
|
|
})(jQuery),
|
|
+(function (a) {
|
|
function b(c, d) {
|
|
let e;
|
|
const f = a.proxy(this.process, this);
|
|
(this.$element = a(a(c).is('body') ? window : c)),
|
|
(this.$body = a('body')),
|
|
(this.$scrollElement = this.$element.on('scroll.bs.scroll-spy.data-api', f)),
|
|
(this.options = a.extend({}, b.DEFAULTS, d)),
|
|
(this.selector = `${
|
|
this.options.target || ((e = a(c).attr('href')) && e.replace(/.*(?=#[^\s]+$)/, '')) || ''
|
|
} .nav li > a`),
|
|
(this.offsets = a([])),
|
|
(this.targets = a([])),
|
|
(this.activeTarget = null),
|
|
this.refresh(),
|
|
this.process();
|
|
}
|
|
(b.DEFAULTS = { offset: 10 }),
|
|
(b.prototype.refresh = function () {
|
|
const b = this.$element[0] == window ? 'offset' : 'position';
|
|
(this.offsets = a([])), (this.targets = a([]));
|
|
{
|
|
const c = this;
|
|
this.$body
|
|
.find(this.selector)
|
|
.map(function () {
|
|
const d = a(this);
|
|
const e = d.data('target') || d.attr('href');
|
|
const f = /^#./.test(e) && a(e);
|
|
return (
|
|
(f &&
|
|
f.length &&
|
|
f.is(':visible') && [
|
|
[
|
|
f[b]().top +
|
|
(!a.isWindow(c.$scrollElement.get(0)) && c.$scrollElement.scrollTop()),
|
|
e,
|
|
],
|
|
]) ||
|
|
null
|
|
);
|
|
})
|
|
.sort((a, b) => a[0] - b[0])
|
|
.each(function () {
|
|
c.offsets.push(this[0]), c.targets.push(this[1]);
|
|
});
|
|
}
|
|
}),
|
|
(b.prototype.process = function () {
|
|
let a;
|
|
const b = this.$scrollElement.scrollTop() + this.options.offset;
|
|
const c = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight;
|
|
const d = c - this.$scrollElement.height();
|
|
const e = this.offsets;
|
|
const f = this.targets;
|
|
const g = this.activeTarget;
|
|
if (b >= d) return g != (a = f.last()[0]) && this.activate(a);
|
|
if (g && b <= e[0]) return g != (a = f[0]) && this.activate(a);
|
|
for (a = e.length; a--; )
|
|
g != f[a] && b >= e[a] && (!e[a + 1] || b <= e[a + 1]) && this.activate(f[a]);
|
|
}),
|
|
(b.prototype.activate = function (b) {
|
|
(this.activeTarget = b),
|
|
a(this.selector).parentsUntil(this.options.target, '.active').removeClass('active');
|
|
const c = `${this.selector}[data-target="${b}"],${this.selector}[href="${b}"]`;
|
|
let d = a(c).parents('li').addClass('active');
|
|
d.parent('.dropdown-menu').length && (d = d.closest('li.dropdown').addClass('active')),
|
|
d.trigger('activate.bs.scrollspy');
|
|
});
|
|
const c = a.fn.scrollspy;
|
|
(a.fn.scrollspy = function (c) {
|
|
return this.each(function () {
|
|
const d = a(this);
|
|
let e = d.data('bs.scrollspy');
|
|
const f = typeof c === 'object' && c;
|
|
e || d.data('bs.scrollspy', (e = new b(this, f))), typeof c === 'string' && e[c]();
|
|
});
|
|
}),
|
|
(a.fn.scrollspy.Constructor = b),
|
|
(a.fn.scrollspy.noConflict = function () {
|
|
return (a.fn.scrollspy = c), this;
|
|
}),
|
|
a(window).on('load', () => {
|
|
a('[data-spy="scroll"]').each(function () {
|
|
const b = a(this);
|
|
b.scrollspy(b.data());
|
|
});
|
|
});
|
|
})(jQuery),
|
|
+(function (a) {
|
|
const b = function (b) {
|
|
this.element = a(b);
|
|
};
|
|
(b.prototype.show = function () {
|
|
const b = this.element;
|
|
const c = b.closest('ul:not(.dropdown-menu)');
|
|
let d = b.data('target');
|
|
if (
|
|
(d || ((d = b.attr('href')), (d = d && d.replace(/.*(?=#[^\s]*$)/, ''))),
|
|
!b.parent('li').hasClass('active'))
|
|
) {
|
|
const e = c.find('.active:last a')[0];
|
|
const f = a.Event('show.bs.tab', { relatedTarget: e });
|
|
if ((b.trigger(f), !f.isDefaultPrevented())) {
|
|
const g = a(d);
|
|
this.activate(b.parent('li'), c),
|
|
this.activate(g, g.parent(), () => {
|
|
b.trigger({ type: 'shown.bs.tab', relatedTarget: e });
|
|
});
|
|
}
|
|
}
|
|
}),
|
|
(b.prototype.activate = function (b, c, d) {
|
|
function e() {
|
|
f.removeClass('active').find('> .dropdown-menu > .active').removeClass('active'),
|
|
b.addClass('active'),
|
|
g ? (b[0].offsetWidth, b.addClass('in')) : b.removeClass('fade'),
|
|
b.parent('.dropdown-menu') && b.closest('li.dropdown').addClass('active'),
|
|
d && d();
|
|
}
|
|
var f = c.find('> .active');
|
|
var g = d && a.support.transition && f.hasClass('fade');
|
|
g ? f.one(a.support.transition.end, e).emulateTransitionEnd(150) : e(), f.removeClass('in');
|
|
});
|
|
const c = a.fn.tab;
|
|
(a.fn.tab = function (c) {
|
|
return this.each(function () {
|
|
const d = a(this);
|
|
let e = d.data('bs.tab');
|
|
e || d.data('bs.tab', (e = new b(this))), typeof c === 'string' && e[c]();
|
|
});
|
|
}),
|
|
(a.fn.tab.Constructor = b),
|
|
(a.fn.tab.noConflict = function () {
|
|
return (a.fn.tab = c), this;
|
|
}),
|
|
a(document).on(
|
|
'click.bs.tab.data-api',
|
|
'[data-toggle="tab"], [data-toggle="pill"]',
|
|
function (b) {
|
|
b.preventDefault(), a(this).tab('show');
|
|
},
|
|
);
|
|
})(jQuery),
|
|
+(function (a) {
|
|
var b = function (c, d) {
|
|
(this.options = a.extend({}, b.DEFAULTS, d)),
|
|
(this.$window = a(window)
|
|
.on('scroll.bs.affix.data-api', a.proxy(this.checkPosition, this))
|
|
.on('click.bs.affix.data-api', a.proxy(this.checkPositionWithEventLoop, this))),
|
|
(this.$element = a(c)),
|
|
(this.affixed = this.unpin = this.pinnedOffset = null),
|
|
this.checkPosition();
|
|
};
|
|
(b.RESET = 'affix affix-top affix-bottom'),
|
|
(b.DEFAULTS = { offset: 0 }),
|
|
(b.prototype.getPinnedOffset = function () {
|
|
if (this.pinnedOffset) return this.pinnedOffset;
|
|
this.$element.removeClass(b.RESET).addClass('affix');
|
|
const a = this.$window.scrollTop();
|
|
const c = this.$element.offset();
|
|
return (this.pinnedOffset = c.top - a);
|
|
}),
|
|
(b.prototype.checkPositionWithEventLoop = function () {
|
|
setTimeout(a.proxy(this.checkPosition, this), 1);
|
|
}),
|
|
(b.prototype.checkPosition = function () {
|
|
if (this.$element.is(':visible')) {
|
|
const c = a(document).height();
|
|
const d = this.$window.scrollTop();
|
|
const e = this.$element.offset();
|
|
const f = this.options.offset;
|
|
let g = f.top;
|
|
let h = f.bottom;
|
|
this.affixed == 'top' && (e.top += d),
|
|
typeof f !== 'object' && (h = g = f),
|
|
typeof g === 'function' && (g = f.top(this.$element)),
|
|
typeof h === 'function' && (h = f.bottom(this.$element));
|
|
const i =
|
|
this.unpin != null && d + this.unpin <= e.top
|
|
? !1
|
|
: h != null && e.top + this.$element.height() >= c - h
|
|
? 'bottom'
|
|
: g != null && g >= d
|
|
? 'top'
|
|
: !1;
|
|
if (this.affixed !== i) {
|
|
this.unpin && this.$element.css('top', '');
|
|
const j = `affix${i ? `-${i}` : ''}`;
|
|
const k = a.Event(`${j}.bs.affix`);
|
|
this.$element.trigger(k),
|
|
k.isDefaultPrevented() ||
|
|
((this.affixed = i),
|
|
(this.unpin = i == 'bottom' ? this.getPinnedOffset() : null),
|
|
this.$element
|
|
.removeClass(b.RESET)
|
|
.addClass(j)
|
|
.trigger(a.Event(j.replace('affix', 'affixed'))),
|
|
i == 'bottom' && this.$element.offset({ top: c - h - this.$element.height() }));
|
|
}
|
|
}
|
|
});
|
|
const c = a.fn.affix;
|
|
(a.fn.affix = function (c) {
|
|
return this.each(function () {
|
|
const d = a(this);
|
|
let e = d.data('bs.affix');
|
|
const f = typeof c === 'object' && c;
|
|
e || d.data('bs.affix', (e = new b(this, f))), typeof c === 'string' && e[c]();
|
|
});
|
|
}),
|
|
(a.fn.affix.Constructor = b),
|
|
(a.fn.affix.noConflict = function () {
|
|
return (a.fn.affix = c), this;
|
|
}),
|
|
a(window).on('load', () => {
|
|
a('[data-spy="affix"]').each(function () {
|
|
const b = a(this);
|
|
const c = b.data();
|
|
(c.offset = c.offset || {}),
|
|
c.offsetBottom && (c.offset.bottom = c.offsetBottom),
|
|
c.offsetTop && (c.offset.top = c.offsetTop),
|
|
b.affix(c);
|
|
});
|
|
});
|
|
})(jQuery);
|